From 4e131e1f5b4b4647b30f67d44bd259723fe63be5 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 6 May 2026 09:52:35 +0200 Subject: [PATCH 1/3] =?UTF-8?q?Suppression=20libell=C3=A9=20ligne=20=C3=A9?= =?UTF-8?q?criture=20amortissement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- save_amort.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/save_amort.html b/save_amort.html index 5b852bc..5f20c53 100644 --- a/save_amort.html +++ b/save_amort.html @@ -222,14 +222,12 @@ debit=$_POST.montant account=$debit_account|keys|value:0 id_project=$ligne_immo.project_id - label=$_POST.designation }} {{:assign var="lines." credit=$_POST.montant account=$credit_account|keys|value:0 id_project=$ligne_immo.project_id - label=$_POST.designation }} {{:api method="POST" From a1ce03a7b444f27e4060f2eb7ed320d76040742d Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 6 May 2026 10:32:09 +0200 Subject: [PATCH 2/3] =?UTF-8?q?Marquer=20immo=20sold=C3=A9e=20apr=C3=A8s?= =?UTF-8?q?=20enregistrement=20dernier=20amortissement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- attach_amort.html | 80 ++++++++++++++++++++++++++++++++++++++++++----- detach_amort.html | 7 +++++ save_amort.html | 39 ++++++++++++----------- 3 files changed, 99 insertions(+), 27 deletions(-) diff --git a/attach_amort.html b/attach_amort.html index f643f9a..f369cd4 100644 --- a/attach_amort.html +++ b/attach_amort.html @@ -11,6 +11,7 @@ {{* chercher l'écriture d'immobilisation *}} {{#select line.id_transaction as immo_trans_id, + line.debit as montant, trans.label as trans_label, line.label as line_label FROM acc_transactions_lines as line @@ -24,11 +25,12 @@ {{/select}} {{* chercher le doc associé à l'immo *}} -{{#load id=$_GET.immo_doc_id|intval}} +{{#load id=$_GET.immo_doc_id|intval assign="info_immo"}} {{:assign label_immo=$label|or:$ligne_immo.trans_label}} {{else}} {{:error message="Immobilisation non trouvée"}} {{/load}} +{{:assign montant_immo=$info_immo.amount|or:$ligne_immo.montant}} {{if $ligne_immo.line_label != null && $ligne_immo.line_label != $label_immo}} {{:assign label_immo=$label_immo|cat:" — "|cat:$ligne_immo.line_label}} @@ -67,9 +69,9 @@ {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} - {{* vérifier que le montant saisi est inférieur au reste *}} - {{if $_POST.montant == null}} + {{if $_POST.montant == null || $_POST.montant == 0}} + {{:assign montant_amort=$reste}} {{if $montant_affecte == 0}} {{:assign saved_amount=null}} {{else}} @@ -88,6 +90,57 @@ {{/if}} {{/if}} + {{* vérifier que le montant total des amortissements ne dépasse pas la valeur de l'immo *}} + {{* montant de l'immo *}} + {{:assign total_credits=0}} + {{#load + type="credit_link" + where="$$.immo_doc_id = :immo_doc_id" :immo_doc_id = $_GET.immo_doc_id|intval + }} + {{if $amount == null}} + {{#select credit FROM acc_transactions_lines WHERE id = :credit_line_id; + :credit_line_id=$credit_line_id + }} + {{:assign total_credits="%d+%d"|math:$total_credits:$credit}} + {{/select}} + {{else}} + {{:assign total_credits="%d+%d"|math:$total_credits:$amount}} + {{/if}} + {{/load}} + {{:assign montant_immo="%d-%d"|math:$montant_immo:$total_credits}} + + {{* montant des amortissements *}} + {{:assign total_amort=0}} + {{#load + type="amort_link" + where="$$.immo_doc_id = :immo_doc_id" + :immo_doc_id=$_GET.immo_doc_id|intval + }} + {{if $amount == null || $amount == 0}} + {{#select + line.credit + FROM acc_transactions_lines AS line + INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id + INNER join acc_accounts AS account on line.id_account = account.id + WHERE line.id = :amort_line_id + ; + :amort_line_id = $amort_line_id + }} + {{:assign total_amort="%d+%d"|math:$total_amort:$credit}} + {{/select}} + {{else}} + {{:assign total_amort="%d+%d"|math:$total_amort:$amount}} + {{/if}} + {{/load}} + + {{:assign vnc="%d-%d"|math:$montant_immo:$total_amort}} + {{:assign total_amort="%d+%d"|math:$total_amort:$montant_amort}} + {{if $total_amort > $montant_immo}} + {{:assign ma="%f"|math:$montant_amort|money_currency:false}} + {{:assign vnc="%f"|math:$vnc|money_currency:false}} + {{:error message="Le montant de l'amortissement (%s) dépasse la valeur résiduelle de l'immobilisation (%s)"|args:$ma:$vnc}} + {{/if}} + {{* chercher les liaisons de l'écriture d'immobilisation *}} {{#select CASE links.id_related = :immo_trans_id @@ -129,7 +182,16 @@ }} {{/load}} - {{:redirect force="amortization.html?immo_line_id=%s&immo_doc_id=%s&ok=1&msg=attach_amort"|args:$_GET.immo_line_id:$_GET.immo_doc_id}} + {{* immo soldée ? *}} + {{if $total_amort == $montant_immo}} + {{:assign status="amortized"}} + {{:save + key=$info_immo.key + status=$status + }} + {{/if}} + + {{:redirect force="amortization.html?immo_line_id=%s&immo_doc_id=%s&type_immo=%s&ok=1&msg=attach_amort"|args:$_GET.immo_line_id:$_GET.immo_doc_id:$status}} {{/form}} {{:admin_header title="Amortir l'immobilisation" custom_css="./style.css" current="module_amortization"}} @@ -148,10 +210,12 @@
#{{$amort_line.trans_id}} {{$label_immo}}
Montant de l'écriture d'amortissement
{{$amort_line.amount|money_currency_html:false|raw}}
-
Montant déjà affecté
-
{{"%f"|math:$montant_affecte|money_currency_html:false|raw}}
-
Montant restant à affecter
-
{{"%f"|math:$reste|money_currency_html:false|raw}}
+ {{if $montant_affecte > 0}} +
Montant déjà affecté
+
{{"%f"|math:$montant_affecte|money_currency_html:false|raw}}
+
Montant restant à affecter
+
{{"%f"|math:$reste|money_currency_html:false|raw}}
+ {{/if}} diff --git a/detach_amort.html b/detach_amort.html index caae1a0..06b99ff 100644 --- a/detach_amort.html +++ b/detach_amort.html @@ -68,5 +68,12 @@ {{:delete id=$id}} {{/load}} +{{* marquer immo non soldée *}} +{{#load id=$_GET.immo_doc_id|intval assign="info_immo"}}{{/load}} +{{:save + key=$info_immo.key + status="managed" +}} + {{:redirect to="amortization.html?immo_line_id=%s&ok=1&msg=detach&immo_doc_id=%s"|args:$_GET.immo_line_id:$_GET.immo_doc_id}} diff --git a/save_amort.html b/save_amort.html index 5f20c53..1b199c0 100644 --- a/save_amort.html +++ b/save_amort.html @@ -29,7 +29,7 @@ {{/select}} {{:assign date_debut=$ligne_immo.date}} -{{#load id=$_GET.immo_doc_id|intval}} +{{#load id=$_GET.immo_doc_id|intval assign="info_immo"}} {{:assign duree=$duration}} {{if $date_mes != null}} {{:assign date_debut=$date_mes}} @@ -229,6 +229,7 @@ account=$credit_account|keys|value:0 id_project=$ligne_immo.project_id }} + {{:api method="POST" path="accounting/transaction" @@ -243,28 +244,28 @@ }} {{* enregistrer la liaison des lignes *}} - {{#select - trans.id AS trans_id, - line.id AS line_id - FROM acc_transactions AS trans - INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id - WHERE trans.id = :trans_id - ; - :trans_id = $result.id - }} - {{:assign amort_trans_id=$trans_id}} - {{:assign amort_line_id=$line_id}} - {{/select}} - {{if $amort_trans_id != null}} + {{#foreach from=$result.lines item="line"}} + {{if $line.account_code == $credit_account|keys|value:0}} + {{:save + key=""|uuid + type="amort_link" + immo_doc_id=$_GET.immo_doc_id|intval + amort_line_id=$line.id + }} + {{:break}} + {{/if}} + {{/foreach}} + + {{* immo soldée ? *}} + {{if $_POST.montant|trim|money_int == $solde}} + {{:assign status="amortized"}} {{:save - key=""|uuid - type="amort_link" - immo_doc_id=$_GET.immo_doc_id|intval - amort_line_id=$amort_line_id|intval + key=$info_immo.key + status=$status }} {{/if}} - {{:redirect force="amortization.html?immo_line_id=%s&immo_doc_id=%s&ok=1&msg=amortissement"|args:$_GET.immo_line_id:$_GET.immo_doc_id}} + {{:redirect force="amortization.html?immo_line_id=%s&immo_doc_id=%s&type_immo=%s&ok=1&msg=amortissement"|args:$_GET.immo_line_id:$_GET.immo_doc_id:$status}} {{/form}} {{:admin_header title="Ajout amortissement" custom_css="./style.css" current="module_amortization"}} From c07b77e942f0764d73cc34ddf79a6b945d884bf4 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 6 May 2026 13:09:11 +0200 Subject: [PATCH 3/3] Correction erreur solde immo --- amortization.html | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/amortization.html b/amortization.html index 0caed6c..237ee0c 100644 --- a/amortization.html +++ b/amortization.html @@ -63,15 +63,14 @@ {{:assign total_credits="%d+%d"|math:$total_credits:$amount}} {{/if}} {{/load}} -{{:assign var="ligne_immo.montant" value="%d-%d"|math:$ligne_immo.montant:$total_credits}} -{{:assign solde=$ligne_immo.montant}} +{{:assign solde="%d-%d"|math:$ligne_immo.montant:$total_credits}} {{*:debug info_immo=$info_immo ligne_immo=$ligne_immo total_credits=$total_credits solde=$solde*}} {{if $info_immo.status == "amortized"}} - {{:assign amort_amount=$ligne_immo.montant}} + {{:assign amort_amount=$solde}} {{:assign valeur_residuelle=0}} {{else}} - {{:assign valeur_residuelle=$ligne_immo.montant}} + {{:assign valeur_residuelle=$solde}} {{/if}} {{* lister les lignes des écritures d'amortissement liées à l'immobilisation *}} @@ -208,13 +207,13 @@ {{/if}} {{if $valeur_residuelle > 0}}
Montant des amortissements
-
{{"%d-%d"|math:$ligne_immo.montant:$valeur_residuelle|money_currency_html:false|raw}}
+
{{"%d-%d"|math:$solde:$valeur_residuelle|money_currency_html:false|raw}}
Valeur nette comptable
{{$valeur_residuelle|money_currency_html:false|raw}}
{{/if}} {{if $info_immo.duration != null && $valeur_residuelle > 0}}
Annuité estimée
-
{{"min(%d, %f/%d)"|math:$valeur_residuelle:$ligne_immo.montant:$info_immo.duration|money_currency_html:false|raw}}
+
{{"min(%d, %f/%d)"|math:$valeur_residuelle:solde:$info_immo.duration|money_currency_html:false|raw}}
{{/if}}