diff --git a/add_asset.html b/add_asset.html index 8815c09..78db190 100644 --- a/add_asset.html +++ b/add_asset.html @@ -9,6 +9,46 @@ {{* Traiter l'envoi du formulaire *}} {{#form on="add"}} + {{* vérifier que la date est située dans un exercice ouvert *}} + {{:assign open_years=""}} + {{#years closed=false}} + {{:assign open_years=$open_years|cat:"\n"|cat:" - "|cat:$label|cat:" : "}} + {{:assign debut=$start_date|date_short}} + {{:assign fin=$end_date|date_short}} + {{:assign open_years=$open_years|cat:$debut|cat:" à "|cat:$fin}} + {{if $start_date|strtotime <= $_POST.date|parse_date|strtotime && $end_date|strtotime >= $_POST.date|parse_date|strtotime}} + {{:assign selected_year=$id}} + {{:assign selected_chart=$id_chart}} + {{/if}} + {{/years}} + {{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}} + + {{* 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 + *}} + {{#select + code + FROM acc_accounts + WHERE id_chart =:id_chart + AND + (code LIKE "20%" OR code LIKE "21%"); + :id_chart = $selected_chart|intval + }} + {{if $_POST.debit_account|has_key:$code}} + {{:assign account_ok=1}} + {{:break}} + {{/if}} + {{/select}} + + {{if $account_ok == null}} + {{:assign compte=$_POST.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}} @@ -19,7 +59,7 @@ method="POST" path="accounting/transaction" assign="result" - id_year=$_POST.id_year + id_year=$selected_year type="revenue" date=$_POST.date label=$_POST.designation @@ -43,17 +83,10 @@ {{:redirect force="index.html?ok=1&msg=immobilisation"}} {{/form}} -{{* Préparer les infos pour le formulaire *}} - -{{:assign var="bank_account.512A" value="512A — Compte courant"}} -{{#years closed=false}} - {{:assign var="open_years.%d"|args:$id value=$label}} - {{if $start_date|strtotime <= $now && $end_date|strtotime >= $now}} - {{:assign best_year=$id}} - {{/if}} -{{/years}} +{{:form_errors}} {{* formulaire d'ajout d'immobilisation *}} +{{:assign var="bank_account.512A" value="512A — Compte courant"}} {{* TODO @@ -68,7 +101,6 @@
Ajouter une immobilisation
- {{:input type="select" default=$best_year name="id_year" label="Exercice" required=true options=$open_years}} {{:input type="date" name="date" label="Date" required=true default=$now|date_short}} {{:input type="text" name="designation" label="Désignation" required=true}} {{:input type="money" name="montant" label="Montant" required=true}} @@ -78,7 +110,7 @@ name="credit_account" label="Compte de décaissement" required=true - target="!acc/charts/accounts/selector.php?targets=1:2:3&key=code&year=%d"|args:$best_year + target="!acc/charts/accounts/selector.php?targets=1:2:3&key=code" default=$bank_account }} {{:input @@ -86,7 +118,7 @@ name="debit_account" label="Compte d'immobilisation (20xx ou 21xx)" required=true - target="!acc/charts/accounts/selector.php?key=code&year=%d"|args:$best_year + target="!acc/charts/accounts/selector.php?key=code" }} {{if $projects != null}} {{:input type="select" name="id_project" label="Projet (analytique)" options=$projects default_empty="— Aucun —"}} diff --git a/aide.html b/aide.html index 34e63a7..103482e 100644 --- a/aide.html +++ b/aide.html @@ -33,7 +33,7 @@
  • Montant
  • Durée d'amortissement en années
  • Compte de décaissement : à choisir dans la liste
  • -
  • Compte d'immobilisation : idem
  • +
  • Compte d'immobilisation : doit débuter par 20 ou 21
  • Projet analytique (optionnel)