From b17a14526ecda6feddc83cb77fc963b63745ddae Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 17 Dec 2024 15:34:46 +0100 Subject: [PATCH] =?UTF-8?q?diff=C3=A9rentiation=20date=20d'acquisition=20e?= =?UTF-8?q?t=20date=20mise=20en=20service?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _check_date.html | 1 - add_asset.html | 23 +++++++++++++++-------- add_duration.html | 33 ++++++++++++++++++++++++++------- amortization.html | 9 ++++----- index.html | 4 ++-- save_amort.html | 3 +-- schema.json | 7 ++++++- 7 files changed, 54 insertions(+), 26 deletions(-) diff --git a/_check_date.html b/_check_date.html index 2645b7d..c28e087 100644 --- a/_check_date.html +++ b/_check_date.html @@ -7,7 +7,6 @@ résultat : open_years, selected_year, selected_chart *}} -{{*:debug check::date=$date*}} {{:assign open_years=""}} {{#years status=false}} {{:assign open_years=$open_years|cat:"\n"|cat:" - "|cat:$label|cat:" : "}} diff --git a/add_asset.html b/add_asset.html index da3a956..0f476b3 100644 --- a/add_asset.html +++ b/add_asset.html @@ -1,7 +1,6 @@ {{* -*- brindille -*- *}} {{:admin_header title="Ajout immobilisation" current="module_amortissement"}} - {{* barre de navigation *}} {{if ! $dialog}} {{:include file="_nav.html" current="index"}} @@ -9,18 +8,24 @@ {{* Traiter l'envoi du formulaire *}} {{#form on="add"}} -{{*:debug add::POST=$_POST*}} {{* vérifier que la date est située dans un exercice ouvert *}} {{:include file="_check_date.html" - date=$_POST.date + date=$_POST.date_achat keep="open_years, selected_year, selected_chart" }} + {{* vérifier que la date d'acquisition est antérieure à la date de mise en service *}} + {{:assign date_debut=$_POST.date_mes|or:$_POST.date_achat|parse_date}} + {{if $date_debut|strtotime < $_POST.date_achat|parse_date|strtotime}} + {{:assign dd=$date_debut|date_short}} + {{:assign da=$_POST.date_achat|date_short}} + {{:error message="Erreur : la date de mise en service (%s) ne peut être antérieure à la date d'acquisition (%s)"|args:$dd:$da}} + {{/if}} + {{if $selected_year == null}} - {{:assign message="La date choisie n'est dans aucun exercice ouvert !!\nExercices ouverts : %s"|args:$open_years}} - {{:error message=$message}} + {{:error message="La date choisie n'est dans aucun exercice ouvert !!\nExercices ouverts : %s"|args:$open_years}} {{/if}} {{* déterminer le numéro des comptes au cas où la clé serait un identifiant *}} @@ -63,7 +68,7 @@ assign="result" id_year=$selected_year type="revenue" - date=$_POST.date + date=$_POST.date_achat label=$_POST.designation amount=$_POST.montant debit=$debit_account|keys|key:0 @@ -71,7 +76,6 @@ id_project=$_POST.id_project }} - {{* enregistrer les infos de l'immobilisation *}} {{* vérifier s'il y a déjà un document avec le même numéro de ligne *}} {{:assign var="immo_id" value=$result.lines.1.id}} {{#load where="$$.line = :line_id" :line_id=$immo_id}} @@ -80,12 +84,14 @@ {{:assign key=""|uuid}} {{/load}} + {{* enregistrer les infos de l'immobilisation *}} {{:save key=$key validate_schema="schema.json" type="immo" line=$immo_id duration=$_POST.duree|intval + date=$date_debut }} {{:redirect force="index.html?ok=1&msg=immobilisation"}} @@ -105,7 +111,8 @@
Ajouter une immobilisation
- {{:input type="date" name="date" label="Date" required=true default=$now|date_short}} + {{:input type="date" name="date_achat" label="Date d'acquisition" required=true default=$now|date_short}} + {{:input type="date" name="date_mes" label="Date de mise en service" help="à renseigner uniquement si différente de la date d'acquisition"}} {{:input type="text" name="designation" label="Désignation" required=true}} {{:input type="money" name="montant" label="Montant" required=true}} {{:input type="number" name="duree" label="Durée d'amortissement" required=true default=1}} diff --git a/add_duration.html b/add_duration.html index 1d2ea13..8963b69 100644 --- a/add_duration.html +++ b/add_duration.html @@ -1,36 +1,54 @@ {{* -*- brindille -*- *}} -{{:admin_header title="Renseigner durée amortissement" custom_css=$custom_css current="module_amortissement"}} +{{:admin_header title="Renseigner informations amortissement" custom_css=$custom_css current="module_amortissement"}} {{* barre de navigation *}} {{if ! $dialog}} {{:include file="_nav.html" current="index"}} {{/if}} -{{* renseigner la durée d'amortissement *}} - -

Durée d'amortissement

- {{* Traiter l'envoi du formulaire *}} {{#form on="add"}} - {{* enregistrer les infos de l'immobilisation *}} + {{* chercher la date d'achat de l'immobilisation *}} {{:assign var="immo_id" value=$_GET.immo_id|intval}} + {{#select + trans.date as date_achat + from acc_transactions_lines as line + inner join acc_transactions as trans on line.id_transaction = trans.id + where line.id = :line_id; + :line_id = $immo_id + assign=ligne_immo + }} + {{/select}} + + {{* vérifier que la date d'acquisition est antérieure à la date de mise en service *}} + {{:assign date_debut=$_POST.date_mes|or:$ligne_immo.date_achat|parse_date}} + {{if $date_debut|strtotime < $ligne_immo.date_achat|strtotime}} + {{:assign dd=$date_debut|date_short}} + {{:assign da=$ligne_immo.date_achat|date_short}} + {{:error message="Erreur : la date de mise en service (%s) ne peut être antérieure à la date d'acquisition (%s)"|args:$dd:$da}} + {{/if}} + {{:assign key=""|uuid}} + {{* enregistrer les infos de l'immobilisation *}} {{:save key=$key validate_schema="schema.json" type="immo" line=$immo_id duration=$_POST.duree|intval + date=$date_debut }} {{:redirect force="index.html?ok=1&msg=durée"}} {{/form}} +{{* renseigner la date de mise en service et durée d'amortissement *}}
- Renseigner durée amortissement + Renseigner informations amortissement
+ {{:input type="date" name="date_mes" label="Date de mise en service" help="à renseigner uniquement si différente de la date d'acquisition"}} {{:input type="number" name="duree" label="Durée d'amortissement" required=true default=1}}
@@ -41,4 +59,5 @@
+{{:form_errors}} {{:admin_footer}} diff --git a/amortization.html b/amortization.html index d7f82a9..5d9d56f 100644 --- a/amortization.html +++ b/amortization.html @@ -29,6 +29,7 @@ {{:error message="Pas d'info concernant l'immobilisation %s"|args:$_GET.immo_id}} {{/load}} {{:assign var="duree" from="info_immo.duration"|args:$_GET.immo_id}} +{{:assign date_debut=$info_immo.date|date_short}} {{#select line.id as immo_id, @@ -37,7 +38,6 @@ line.debit as montant, trans.id as trans_id, trans.label as label, - trans.date as date_achat, y.id as year_id, y.end_date as date_amort, project.label as project_label @@ -49,7 +49,7 @@ :line_id = $_GET.immo_id|intval assign=ligne_immo }} -

Amortissement de « {{$label}} » d'un montant de {{"%f"|math:$montant|money_currency}} en date du {{$date_achat|date_short}} sur {{$duree}} ans

+

Amortissement de « {{$label}} » d'un montant de {{"%f"|math:$montant|money_currency}} en date du {{$date_debut}} sur {{$duree}} ans

{{else}} {{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}} {{/select}} @@ -97,9 +97,8 @@ {{:assign annuite="%f/%f"|math:$montant:$duree}} {{* première annuité *}} -{{:assign date_achat=$ligne_immo.date_achat|date_short}} {{:assign date_amort=$ligne_immo.date_amort|date_short}} -{{:include file="_calcul_dates.html" date_debut=$date_achat date_fin=$date_amort keep="nbjours"}} +{{:include file="_calcul_dates.html" date_debut=$date_debut date_fin=$date_amort keep="nbjours"}} {{:assign annuite_1="%f/360*%d"|math:$annuite:$nbjours|intval}} {{:assign annuite_courante=$annuite_1}} @@ -113,7 +112,7 @@ Amortissements attachés à « {{$ligne_immo.trans_id}} {{$ligne_immo.label}} » - ({{"%f"|math:$ligne_immo.montant|money_currency}}, {{$ligne_immo.date_achat|date_short}}) + ({{"%f"|math:$ligne_immo.montant|money_currency}}, {{$date_debut}}) diff --git a/index.html b/index.html index 5b28ffd..e6496c2 100644 --- a/index.html +++ b/index.html @@ -55,7 +55,7 @@ INNER JOIN acc_years AS years ON trans.id_year = years.id LEFT JOIN acc_projects AS project ON line.id_project = project.id WHERE - (account.code LIKE '21%' OR account.code LIKE '22%') + (account.code LIKE '21%' OR account.code LIKE '22%' OR account.code LIKE '27%') ORDER BY trans.date DESC }} {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$trans_id}} @@ -67,7 +67,7 @@ {{/load}} - + diff --git a/save_amort.html b/save_amort.html index 0422804..e46f32e 100644 --- a/save_amort.html +++ b/save_amort.html @@ -18,8 +18,7 @@ }} {{if $selected_year == null}} - {{:assign message="La date choisie n'est dans aucun exercice ouvert !!\nExercices ouverts : %s"|args:$open_years}} - {{:error message=$message}} + {{:error message="La date choisie n'est dans aucun exercice ouvert !!\nExercices ouverts : %s"|args:$open_years}} {{/if}} {{* déterminer le numéro des comptes au cas où la clé serait un identifiant *}} diff --git a/schema.json b/schema.json index c2e3b34..cd6a698 100644 --- a/schema.json +++ b/schema.json @@ -13,7 +13,12 @@ "duration" : { "description": "durée de l'amortissement en années", "type": "integer" + }, + "date" : { + "description" : "date de mise en service de l'immobilisation", + "type" : ["string", "null"], + "format" : "date" } }, - "required": ["type", "line", "duration"] + "required": ["type", "line", "duration", "date"] }
#{{$trans_id}}#{{$trans_id}} {{$trans_date|date_short}} {{$trans_label}} {{"%f"|math:$debit|money}}