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
}}