Simplification et prise en compte identifiant ou numéro de compte

dans sélecteur
This commit is contained in:
Jean-Christophe Engel 2024-03-25 19:15:04 +01:00
parent e00b9b0a7e
commit 46f203a89c
4 changed files with 67 additions and 22 deletions

View File

@ -3,7 +3,6 @@
{{*
vérifier :
- que le compte débute par le préfixe corect
(20 ou 21 pour un compte d'immo, 280 ou 281 pour un compte d'amortissement)
- est présent dans le PC indiqué
paramètres :
- account : tableau avec un identifiant de compte
@ -13,10 +12,7 @@
- account_ok
*}}
{{#foreach from=$account key="account_code"}}
{{:assign account_code=$account_code}}
{{/foreach}}
{{:assign account_code=$account|keys|key:0}}
{{:assign condition=" AND ("}}
{{#foreach from=$prefix_array item="code"}}
{{:assign condition=$condition|cat:" code LIKE "|cat:$code|cat:" OR "}}
@ -34,3 +30,4 @@
{{:break}}
{{/if}}
{{/sql}}

15
_get_codes.html Normal file
View File

@ -0,0 +1,15 @@
{{* -*- brindille -*- *}}
{{*
déterminer le numéro du compte passé en paramètre dans un tableau
*}}
{{:assign key=$account|keys|key:0}}
{{:assign label=$account|values|key:0}}
{{:assign pos=$label|strpos:$key}}
{{if $pos == false}}
{{:assign pos=$label|strpos:" "}}
{{:assign account_code=$label|substr:0:$pos}}
{{/if}}
{{:assign var="account_code.%s"|args:$account_code value=$label}}

View File

@ -10,13 +10,31 @@
{{#form on="add"}}
{{* vérifier que la date est située dans un exercice ouvert *}}
{{:include file="_check_date.html" date=$_POST.date keep="open_years, selected_year, selected_chart"}}
{{:include
file="_check_date.html"
date=$_POST.date
keep="open_years, selected_year, selected_chart"
}}
{{if $selected_year == null}}
{{:assign message="La date choisie n'est dans aucun exercice ouvert !!\nExercices ouverts : %s"|args:$open_years}}
{{:error message=$message}}
{{/if}}
{{* déterminer le numéro des comptes au cas où la clé serait un identifiant *}}
{{:include
file="_get_codes.html"
account=$_POST.debit_account
keep="account_code"
}}
{{:assign debit_account=$account_code}}
{{:include
file="_get_codes.html"
account=$_POST.credit_account
keep="account_code"
}}
{{:assign credit_account=$account_code}}
{{* vérifier :
- que le compte d'immo débute par 20 ou 21
- est présent dans le PC de l'exercice correspondant à la date
@ -25,23 +43,18 @@
{{:assign var="prefix_array." value="'21%'"}}
{{:include
file="_check_account.html"
account=$_POST.debit_account
account=$debit_account
chart_id=$selected_chart
prefix_array=$prefix_array
keep="account_ok"
}}
{{if $account_ok == null}}
{{:assign compte=$_POST.debit_account|implode:""}}
{{:assign compte=$debit_account|implode:""}}
{{:error message="Le compte « %s » n'est pas un compte d'immobilisation ou n'est pas dans le plan comptable de l'exercice choisi"|args:$compte}}
{{/if}}
{{* enregistrer l'écriture *}}
{{:assign var="credit_accounts" value=$_POST.credit_account|keys}}
{{:assign var="credit_account" value=$credit_accounts.0}}
{{:assign var="debit_accounts" value=$_POST.debit_account|keys}}
{{:assign var="debit_account" value=$debit_accounts.0}}
{{:api
method="POST"
path="accounting/transaction"
@ -51,8 +64,8 @@
date=$_POST.date
label=$_POST.designation
amount=$_POST.montant
debit=$debit_account
credit=$credit_account
debit=$debit_account|keys|key:0
credit=$credit_account|keys|key:0
id_project=$_POST.id_project
}}
@ -72,14 +85,15 @@
line=$immo_id
duration=$_POST.duree|intval
}}
{{:redirect force="index.html?ok=1&msg=immobilisation"}}
{{/form}}
{{:form_errors}}
{{* formulaire d'ajout d'immobilisation *}}
{{:assign var="bank_account.512" value="512 — Banques"}}
{{:assign var="immo_account.2" value="2 — Classe 2 — Comptes d'immobilisations"}}
{{#select id,label FROM acc_projects WHERE archived = 0;}}
{{:assign var="projects.%d"|args:$id value=$label}}
@ -107,6 +121,7 @@
label="Compte d'immobilisation (20xx ou 21xx)"
required=true
target="!acc/charts/accounts/selector.php?key=code"
default=$immo_account
}}
{{if $projects != null}}
{{:input type="select" name="id_project" label="Projet (analytique)" options=$projects default_empty="— Aucun —"}}

View File

@ -11,13 +11,31 @@
{{#form on="save"}}
{{* vérifier que la date est située dans un exercice ouvert *}}
{{:include file="_check_date.html" date=$_POST.date keep="open_years, selected_year, selected_chart"}}
{{:include
file="_check_date.html"
date=$_POST.date
keep="open_years, selected_year, selected_chart"
}}
{{if $selected_year == null}}
{{:assign message="La date choisie n'est dans aucun exercice ouvert !!\nExercices ouverts : %s"|args:$open_years}}
{{:error message=$message}}
{{/if}}
{{* déterminer le numéro des comptes au cas où la clé serait un identifiant *}}
{{:include
file="_get_codes.html"
account=$_POST.debit_account
keep="account_code"
}}
{{:assign debit_account=$account_code}}
{{:include
file="_get_codes.html"
account=$_POST.credit_account
keep="account_code"
}}
{{:assign credit_account=$account_code}}
{{* vérifier :
- que le compte d'amortissement débute par 280 ou 281
- est présent dans le PC de l'exercice correspondant à la date
@ -26,15 +44,15 @@
{{:assign var="prefix_array." value="'281%'"}}
{{:include
file="_check_account.html"
account=$_POST.credit_account
account=$credit_account
chart_id=$selected_chart
prefix_array=$prefix_array
keep="account_ok"
}}
{{if $account_ok == null}}
{{:assign compte=$_POST.credit_account|implode:""}}
{{:error message="Le compte « %s » n'est pas un compte d'immobilisation ou n'est pas dans le plan comptable de l'exercice choisi"|args:$compte}}
{{:assign compte=$credit_account|implode:""}}
{{:error message="Le compte « %s » n'est pas un compte d'amortissement ou n'est pas dans le plan comptable de l'exercice choisi"|args:$compte}}
{{/if}}
{{* vérifier que le montant ne dépasse pas le solde restant *}}
@ -49,14 +67,14 @@
{{:assign
var="lines."
debit=$_POST.montant
account=$_POST.debit_account|keys|key:0
account=$debit_account|keys|key:0
id_project=$_GET.project_id
label=$_POST.designation
}}
{{:assign
var="lines."
credit=$_POST.montant
account=$_POST.credit_account|keys|key:0
account=$credit_account|keys|key:0
id_project=$_GET.project_id
label=$_POST.designation
}}