From 3738ea07219e5b787d19f9157a39f4a639403a82 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Fri, 27 Dec 2024 20:46:53 +0100 Subject: [PATCH] =?UTF-8?q?am=C3=A9lioration=20+=20correction=20calcul=20d?= =?UTF-8?q?ates?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _calcul_dates.html | 21 +++++++-------------- _next_year.html | 13 +++++++++++++ amortization.html | 31 +++++++++++++------------------ 3 files changed, 33 insertions(+), 32 deletions(-) create mode 100644 _next_year.html diff --git a/_calcul_dates.html b/_calcul_dates.html index c359432..6ccc98b 100644 --- a/_calcul_dates.html +++ b/_calcul_dates.html @@ -6,23 +6,16 @@ - date_fin résultat : nbjours *}} -{{* pour simplifier : 30 jours par mois et 360 jours par an *}} -{{:assign jour_debut=$date_debut|date:"d"}} -{{:assign jour_debut="min(%d, 30)"|math:$jour_debut}} -{{:assign mois_debut=$date_debut|date:"m"}} -{{:assign annee_debut=$date_debut|date:"Y"}} - -{{:assign jour_fin=$date_fin|date:"d"}} -{{:assign jour_fin="min(%d, 30)"|math:$jour_fin}} -{{:assign mois_fin=$date_fin|date:"m"}} -{{:assign annee_fin=$date_fin|date:"Y"}} - -{{:assign nbjours="%d-%d"|math:$jour_fin:$jour_debut}} -{{:assign nbjours="%d+(%d-%d)*30"|math:$nbjours:$mois_fin:$mois_debut}} -{{:assign nbjours="%d+(%d-%d)*360"|math:$nbjours:$annee_fin:$annee_debut}} +{{:assign ts_debut=$date_debut|strtotime}} +{{:assign ts_fin=$date_fin|strtotime}} +{{:assign nbjours="1+(%d-%d)/(60*60*24)"|math:$ts_fin:$ts_debut}} {{* au cas où les deux dates seraient inversées ... *}} {{if $nbjours < 0}} {{:assign nbjours="-1*%d"|math:$nbjours}} {{/if}} +{{* pour simplifier : 360 jours par an *}} +{{if $nbjours > 360}} + {{:assign nbjours=360}} +{{/if}} diff --git a/_next_year.html b/_next_year.html new file mode 100644 index 0000000..0de8dea --- /dev/null +++ b/_next_year.html @@ -0,0 +1,13 @@ +{{* -*- brindille -*- *}} +{{* + Rend une date située un an après la date paramètre + paramètres : + - date + résultat : date_amort +*}} + +{{:assign jour=$date|date:"d"}} +{{:assign mois=$date|date:"m"}} +{{:assign annee=$date|date:"Y"}} +{{:assign annee="%d+1"|math:$annee}} +{{:assign date_amort="%s/%s/%s"|args:$jour:$mois:$annee}} diff --git a/amortization.html b/amortization.html index 59eb21d..466eb19 100644 --- a/amortization.html +++ b/amortization.html @@ -29,7 +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}} +{{:assign date_debut=$info_immo.date}} {{#select line.id as immo_id, @@ -48,8 +48,8 @@ where line.id = :line_id; :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_debut}} sur {{$duree}} ans

+ }} +

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

{{else}} {{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}} {{/select}} @@ -95,12 +95,15 @@ {{* montant de l'annuité théorique *}} {{:assign montant="%f"|math:$ligne_immo.montant}} {{:assign annuite="%f/%f"|math:$montant:$duree}} - {{* première annuité *}} -{{:assign date_amort=$ligne_immo.date_amort|date_short}} +{{:assign date_amort=$ligne_immo.date_amort}} +{{if $date_amort|strtotime < $date_debut|strtotime}} + {{* changer d'exercice *}} + {{:include file="_next_year.html" date=$date_amort keep="date_amort"}} + {{:assign date_amort=$date_amort|parse_date}} +{{/if}} {{: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}} {{:assign current_year=$ligne_immo.year_id}} {{:assign solde=$ligne_immo.montant}} @@ -112,7 +115,7 @@ Amortissements attachés à « {{$ligne_immo.trans_id}} {{$ligne_immo.label}} » - ({{"%f"|math:$ligne_immo.montant|money_currency}}, {{$date_debut}}) + ({{"%f"|math:$ligne_immo.montant|money_currency}}, {{$date_debut|date_short}}) @@ -154,11 +157,7 @@ {{:assign annuite_courante=$annuite}} - {{:assign jour=$date_amort|date:"d"}} - {{:assign mois=$date_amort|date:"m"}} - {{:assign annee=$date_amort|date:"Y"}} - {{:assign annee="%d+1"|math:$annee}} - {{:assign date_amort="%s/%s/%s"|args:$jour:$mois:$annee|parse_date|date_short}} + {{:include file="_next_year.html" date=$date_amort keep="date_amort"}} {{:assign nbamort="%d+1"|math:$nbamort}} {{/foreach}} @@ -196,7 +195,7 @@ {{/select}} - + - {{:assign jour=$date_amort|date:"d"}} - {{:assign mois=$date_amort|date:"m"}} - {{:assign annee=$date_amort|date:"Y"}} - {{:assign annee="%d+1"|math:$annee}} - {{:assign date_amort="%s/%s/%s"|args:$jour:$mois:$annee|parse_date|date_short}} + {{:include file="_next_year.html" date=$date_amort keep="date_amort"}} {{:assign annuite_courante="min(%f,%f)"|math:$annuite:$solde}} {{if $solde == 0}}{{:break}}{{/if}} {{/foreach}}
{{"%d+1"|math:$num}}{{$date_amort}}{{$date_amort|date_short}} {{"%f"|math:$annuite_courante|money}} {{if $solde == 0}}0,00{{else}}{{"%f"|math:$solde|money}}{{/if}} @@ -216,11 +215,7 @@ {{/if}}