diff --git a/_check_account.html b/_check_account.html index ccf54e1..8e841fc 100644 --- a/_check_account.html +++ b/_check_account.html @@ -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}} + diff --git a/_get_codes.html b/_get_codes.html new file mode 100644 index 0000000..93c615b --- /dev/null +++ b/_get_codes.html @@ -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}} diff --git a/add_asset.html b/add_asset.html index f2711c5..42e50e2 100644 --- a/add_asset.html +++ b/add_asset.html @@ -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 —"}} diff --git a/save_amort.html b/save_amort.html index b824363..c641716 100644 --- a/save_amort.html +++ b/save_amort.html @@ -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 }}