From b00c05021c6da2072a7c216f43a09264f2d1cdf8 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Fri, 16 Feb 2024 11:54:50 +0100 Subject: [PATCH] amortization.html : restructuration --- amortization.html | 211 +++++++++++++++++++++++++++------------------- 1 file changed, 126 insertions(+), 85 deletions(-) diff --git a/amortization.html b/amortization.html index 765de72..3e30292 100644 --- a/amortization.html +++ b/amortization.html @@ -1,7 +1,7 @@ {{:admin_header title="Gestion des amortissements" custom_css=$custom_css current="module_amortissement"}} {{* barre de navigation *}} -{{:include file="_nav.html" current="amortissements"}} +{{:include file="_nav.html" current="amortization"}} {{* récupérer les infos de l'immobilisation *}} {{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.line|intval}} @@ -10,22 +10,14 @@ {{:error message=$message}} {{/load}} -{{* - ["info_immo"]=> array(5) { - ["id"]=> int(3) - ["key"]=> string(36) "e0b5a8ab-b123-48ca-9a4c-8f623315818b" - ["type"]=> string(4) "immo" - ["line"]=> int(3890) - ["duration"]=> int(5) - } -*}} - {{#select line.id as line_id, + line.id_account as account_id, trans.id as trans_id, line.debit as montant, trans.label as label, trans.date as date_achat, + y.id as year_id, y.end_date as date_fin from acc_transactions_lines as line inner join acc_transactions as trans on line.id_transaction = trans.id @@ -40,63 +32,81 @@ {{:error message=$message}} {{/select}} +{{*:debug ligne_immo=$ligne_immo*}} + +{{* lister les écritures d'amortissement *}} +{{#select + line.id as l_immo, + line.id_account as ammort_account, + line2.debit as montant, + line2.label as libelle, + links.id_transaction as t_amort, + line2.id as l_amort, + line2.id_transaction as trans_id, + line2.id_project as projet, + line2.id_account as account_id, + trans.date as date_immo, + acc.code as account_code, + acc.label as nom_compte, + acc.id_chart as PC + from acc_transactions_lines as line + inner JOIN acc_transactions_links as links on line.id_transaction = links.id_related + inner JOIN acc_transactions_lines as line2 on links.id_transaction = line2.id_transaction + inner join acc_accounts as acc on line2.id_account = acc.id + inner join acc_transactions as trans on line2.id_transaction = trans.id + where line.id = :line_id and line2.debit <> 0 + order by trans.date; + :line_id = $info_immo.line|intval + assign=lines. +}} + {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$trans_id}} +{{/select}} +{{*:debug lines=$lines*}} +{{*:debug line=$lines.0*}} +{{*:debug line=$lines.1*}} + {{* calculer les amortissements *}} -{{* :debug montant=$ligne_immo.montant *}} {{* montant de l'annuité normale *}} -{{:assign montant="%d"|math:$ligne_immo.montant|money}} -{{:assign annuite="%d/%d"|math:$montant:$info_immo.duration|intval}} -{{* :debug annuite=$annuite *}} +{{:assign montant="%f"|math:$ligne_immo.montant}} +{{:assign annuite="%f/%f"|math:$montant:$info_immo.duration|intval}} +{{*:debug montant=$montant *}} +{{*:debug annuite=$annuite *}} + +{{* liste des exercices *}} +{{#years}} + {{:assign var="all_years.%d.label"|args:$id value=$label}} + {{:assign var="all_years.%d.end_date"|args:$id value=$end_date}} + {{:assign var="all_years.%d.closed"|args:$id value=$closed}} +{{/years}} + +{{* +{{:debug all_years=$all_years}} +{{:assign current_year=8}} +{{:assign var="date_immo" from="all_years.%s.end_date"|args:$current_year}} +{{:debug date_immo=$date_immo}} +*}} {{* première annuité *}} {{:assign date_achat=$ligne_immo.date_achat|date_short}} {{:assign date_fin=$ligne_immo.date_fin|date_short}} {{:include file="_calcul_dates.html" date_debut=$date_achat date_fin=$date_fin keep="nbjours"}} -{{:assign annuite_1="%d/360*%d"|math:$annuite:$nbjours|intval}} -{{* :debug annuite1=$annuite_1 *}} +{{:assign annuite_1="%f/360*%d"|math:$annuite:$nbjours|intval}} +{{*:debug annuite1=$annuite_1 *}} {{:assign date_immo=$date_fin}} {{:assign annuite_courante=$annuite_1}} {{:assign solde=$montant}} - - - - - - - - - - - - - {{#foreach count="%d+1"|math:$info_immo.duration|intval key="num"}} - {{:assign solde="%d-%d"|math:$solde:$annuite_courante}} - - - - - - - {{:assign annuite_courante="min(%d,%d)"|math:$annuite:$solde}} - {{:assign jour=$date_immo|date:"d"}} - {{:assign mois=$date_immo|date:"m"}} - {{:assign annee=$date_immo|date:"Y"}} - {{:assign annee="%d+1"|math:$annee}} - {{:assign date_immo="%s/%s/%s"|args:$jour:$mois:$annee|parse_date|date_short}} - {{* :debug date_immo=$date_immo *}} - {{/foreach}} - -
DateAnnuitéSolde
{{"%d+1"|math:$num}}{{$date_immo}}{{"%f*100"|math:$annuite_courante|money}}{{"%f*100"|math:$solde|money}}
+{{:assign current_year=$ligne_immo.year_id}}

Liste des amortissements

- + @@ -105,44 +115,75 @@ - {{#select - line.id as l_immo, - line2.debit as montant, - line2.label as libelle, - links.id_transaction as t_amort, - line2.id as l_amort, - line2.id_transaction as trans_id, - line2.id_project as projet, - line2.id_account as compte, - trans.date as date_achat, - acc.code, - acc.label as nom_compte, - acc.id_chart as PC - from acc_transactions_lines as line - inner JOIN acc_transactions_links as links on line.id_transaction = links.id_related - inner JOIN acc_transactions_lines as line2 on links.id_transaction = line2.id_transaction - inner join acc_accounts as acc on line2.id_account = acc.id - inner join acc_transactions as trans on line2.id_transaction = trans.id - where line.id = :line_id and line2.debit <> 0 - order by trans.date; - :line_id = $info_immo.line|intval - assign=lines. - }} - {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$trans_id}} - - - - - - - - - - - {{/select}} + {{#foreach count="%d+1"|math:$info_immo.duration|intval key="num"}} + {{:assign var="line" from="lines.%s"|args:$num}} + {{*:debug line=$line*}} + + {{if $line != null}} + {{* données de l'écriture *}} + {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$line.t_amort}} + {{:assign solde="%f-%d"|math:$solde:$line.montant}} + + + + + + + + + + + + {{:assign libelle=$line.libelle}} + {{:assign ammort_account=$line.ammort_account}} + {{:assign annuite_courante="min(%f,%f)"|math:$annuite:$solde}} + {{:assign current_year="%d+1"|math:$current_year}} + {{:assign date_immo=$line.date_immo}} + + {{else}} + {{* pas d'écriture *}} + + {{:assign solde="%f-%d"|math:$solde:$annuite_courante}} + {{if $all_years|keys|has:$current_year}} + {{:assign var="date_immo" from="all_years.%s.end_date"|args:$current_year}} + {{:assign date_immo=$date_immo|date_short}} + {{else}} + {{:assign jour=$date_immo|date:"d"}} + {{:assign mois=$date_immo|date:"m"}} + {{:assign annee=$date_immo|date:"Y"}} + {{:assign annee="%d+1"|math:$annee}} + {{:assign date_immo="%s/%s/%s"|args:$jour:$mois:$annee|parse_date|date_short}} + {{/if}} + + + + + + + + + + + + {{:assign current_year="%d+1"|math:$current_year}} + {{:assign annuite_courante="min(%f,%f)"|math:$annuite:$solde}} + {{/if}} + {{/foreach}}
Date MontantSolde Libellé ligne amort Compte
#{{$trans_id}}{{$date_achat|date_short}}{{"%f"|math:$montant|money}}{{$libelle}}{{$l_amort}}{{$compte}}{{$nom_compte}}
#{{$line.t_amort}}{{$line.date_immo|date_short}}{{"%f"|math:$line.montant|money}}{{"%f"|math:$solde|money}}{{$line.libelle}}{{$line.l_amort}}{{$line.account_code}}{{$line.nom_compte}}
{{"%d+1"|math:$num}}{{$date_immo}}{{"%f"|math:$annuite_courante|money}}{{if $solde == 0}}0,00{{else}}{{"%f"|math:$solde|money}}{{/if}} + {{if $libelle == null}} + {{:assign libelle="Amortissement "|cat:$ligne_immo.label}} + {{/if}} + {{$libelle}} + + {{if $all_years|keys|has:$current_year}} + {{:linkbutton + label="Enregistrer" + href="save_amort.html?amount=%d&account=%s&year=%s&label=%s"|args:$annuite_courante:$ligne_immo.account_id:$current_year:$libelle + shape="right" + }} + {{/if}} +
-{{* :debug lines=$lines *}} -{{* :form_errors *}} +{{:form_errors}} {{:admin_footer}}