Simplification et prise en compte identifiant ou numéro de compte
dans sélecteur
This commit is contained in:
parent
e00b9b0a7e
commit
46f203a89c
@ -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
15
_get_codes.html
Normal 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}}
|
@ -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 —"}}
|
||||
|
@ -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
|
||||
}}
|
||||
|
Loading…
Reference in New Issue
Block a user