Mutualisation infos immo, écritures crédit, amortissements liés et libres

This commit is contained in:
Jean-Christophe Engel 2026-06-02 14:25:30 +02:00
parent 91795c69a8
commit 780eb206ce
21 changed files with 410 additions and 879 deletions

View file

@ -11,85 +11,27 @@
- cession : montant de la cession (optionnel)
*}}
{{#load id=$_GET.immo_doc_id|intval assign="info_immo"}}
{{else}}
{{:error message="Immobilisation non trouvée"}}
{{/load}}
{{* données de l'immobilisation *}}
{{:include file="_get_immo_data.html" immo_doc_id=$_GET.immo_doc_id|intval keep="info_immo, ligne_immo, message"}}
{{if $message != null}}
{{:error message=$message}}
{{/if}}
{{#select
line.debit as montant,
line.id_transaction,
trans.id AS trans_id,
trans.date as date_achat,
trans.label,
acc.code as account_code,
id_project
FROM acc_transactions_lines AS line
INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id
INNER JOIN acc_accounts AS acc ON line.id_account = acc.id
WHERE line.id = :immo_line_id;
:immo_line_id = $info_immo.line
assign="ligne_immo"
}}
{{else}}
{{:error message="Immobilisation non trouvée"}}
{{/select}}
{{* chercher des écritures liées à l'immo courante au crédit du même compte
et déduire leur montant de celui de l'immo
*}}
{{:assign total_credits=0}}
{{#load
type="credit_link"
where="$$.immo_doc_id = :immo_doc_id"
:immo_doc_id = $info_immo.id
assign="credit_link"
}}
{{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}}
{{else}}
{{*
TODO : à garder ?
pas de doc => voir liaison écritures
*}}
{{#select
CASE links.id_related = :immo_trans_id
WHEN true THEN links.id_transaction
WHEN false THEN links.id_related
END as other_id,
line.credit
FROM acc_transactions AS trans
INNER JOIN acc_transactions_links as links
ON (trans.id = links.id_transaction OR trans.id = links.id_related)
INNER JOIN acc_transactions_lines AS line on line.id_transaction = other_id
INNER JOIN acc_accounts AS acc ON line.id_account = acc.id
WHERE trans.id = :immo_trans_id AND line.credit > 0 AND acc.code = :account;
:immo_trans_id=$ligne_immo.trans_id
:account=$ligne_immo.account_code
}}
{{:assign total_credits="%d+%d"|math:$total_credits:$credit}}
{{/select}}
{{/load}}
{{:assign var="ligne_immo.montant" value="%d-%d"|math:$ligne_immo.montant:$total_credits}}
{{:assign valeur_nette="%f-%f"|math:$ligne_immo.montant:$_GET.amort_amount}}
{{* déduire le montant des écritures liées à l'immo courante au crédit du même compte *}}
{{:include file="_get_credit_lines.html" immo_doc_id=$_GET.immo_doc_id keep="total_credits"}}
{{:assign var="ligne_immo.amount" value="%d-%d"|math:$ligne_immo.amount:$total_credits}}
{{:assign valeur_nette="%f-%f"|math:$ligne_immo.amount:$_GET.amort_amount}}
{{:assign amort_comp=0}} {{* amortissement complémentaire jqà date sortie *}}
{{:assign amort_except=0}} {{* amortissement exceptionnel jqà date fin amortissement *}}
{{if $valeur_nette > 0}}
{{:assign nbjours="1+(%d-%d)/(60*60*24)"|math:$_GET.exit_date:$_GET.date_debut}}
{{:assign annuite="%f/%f"|math:$ligne_immo.montant:$info_immo.duration}}
{{:assign annuite="%f/%f"|math:$ligne_immo.amount:$info_immo.duration}}
{{:assign amort_comp="round(%f/365*%f, 0)"|math:$annuite:$nbjours}}
{{:assign amort_comp="min(%f, %f)"|math:$valeur_nette:$amort_comp}}
{{if $_GET.cession == null}}
{{:assign amort_except="%f-%f-%f"|math:$ligne_immo.montant:$_GET.amort_amount:$amort_comp}}
{{:assign amort_except="%f-%f-%f"|math:$ligne_immo.amount:$_GET.amort_amount:$amort_comp}}
{{/if}}
{{/if}}
@ -132,7 +74,7 @@
}}
{{:assign comp_account_code=$account_code|keys|value:0}}
{{:assign libelle="Amortissement complémentaire "|cat:$ligne_immo.label}}
{{:assign libelle="Amortissement complémentaire "|cat:$ligne_immo.trans_label}}
{{:assign
var="lines."
debit="%f/100"|math:$amort_comp
@ -157,7 +99,7 @@
keep="account_code"
}}
{{:assign except_account_code=$account_code|keys|value:0}}
{{:assign libelle="Amortissement exceptionnel "|cat:$ligne_immo.label}}
{{:assign libelle="Amortissement exceptionnel "|cat:$ligne_immo.trans_label}}
{{:assign
var="lines."
debit="%f/100"|math:$amort_except
@ -183,9 +125,9 @@
id_year=$_GET.year
type="advanced"
date=$_GET.exit_date
label="Amortissement final "|cat:$ligne_immo.label
label="Amortissement final "|cat:$ligne_immo.trans_label
lines=$lines
linked_transactions=$ligne_immo.id_transaction
linked_transactions=$ligne_immo.trans_id
}}
{{* liaisons lignes d'amortissement *}}
@ -209,18 +151,18 @@
keep="account_code"
}}
{{:assign immo_account_code=$account_code|keys|value:0}}
{{:assign libelle="Sortie du bilan de "|cat:$ligne_immo.label}}
{{:assign libelle="Sortie du bilan de "|cat:$ligne_immo.trans_label}}
{{:assign
var="lines."
account=$immo_account_code
credit="%f/100"|math:$ligne_immo.montant
credit="%f/100"|math:$ligne_immo.amount
id_project=$ligne_immo.id_project
label=$libelle
}}
{{:assign
var="lines."
account=$amort_account_code
debit="(%f-%f)/100"|math:$ligne_immo.montant:$valeur_nette
debit="(%f-%f)/100"|math:$ligne_immo.amount:$valeur_nette
id_project=$ligne_immo.id_project
label=$libelle
}}
@ -250,7 +192,7 @@
date=$_GET.exit_date
label=$libelle
lines=$lines
linked_transactions=$ligne_immo.id_transaction
linked_transactions=$ligne_immo.trans_id
}}
{{* liaison écriture de sortie *}}
@ -268,7 +210,7 @@
{{if $montant_cession > 0}}
{{* Cession de l'immobilisation *}}
{{:assign libelle="Produit cession "|cat:$ligne_immo.label}}
{{:assign libelle="Produit cession "|cat:$ligne_immo.trans_label}}
{{:include
file="_get_codes.html"
account=$_POST.creance_account
@ -294,7 +236,7 @@
debit=$creance_account
credit=$cession_account
id_project=$ligne_immo.id_project
linked_transactions=$ligne_immo.id_transaction
linked_transactions=$ligne_immo.trans_id
}}
{{/if}}
@ -371,14 +313,14 @@
{{/foreach}}
{{:assign patterns=$pattern_array|implode:"|"}}
<h3>Sortir l'immobilisation « {{$ligne_immo.label}} » du bilan</h3>
<h3>Sortir l'immobilisation « {{$ligne_immo.trans_label}} » du bilan</h3>
<form method="post" action="">
<div class="informations">
<legend>Données de l'imobilisation</legend>
<dl class="describe">
<dt>Montant</dt>
<dd class="money">{{$ligne_immo.montant|money_currency_html:false|raw}}</dd>
<dd class="money">{{$ligne_immo.amount|money_currency_html:false|raw}}</dd>
<dt>Date d'acquisition</dt>
<dd >{{$ligne_immo.date_achat|date_short}}</dd>
{{if $info_immo.date_mes != null && $info_immo.date_mes != $ligne_immo.date_achat}}
@ -524,7 +466,7 @@
}}
</td>
{{if $montant_cession == 0}}
{{:assign montant=$ligne_immo.montant}}
{{:assign montant=$ligne_immo.amount}}
{{else}}
{{:assign montant="%f+%f"|math:$_GET.amort_amount:$amort_comp}}
{{/if}}
@ -555,7 +497,7 @@
}}
</td>
<td></td>
<td>{{$ligne_immo.montant|money_currency_html:false|raw}}</td>
<td>{{$ligne_immo.amount|money_currency_html:false|raw}}</td>
</tr>
</tbody>
</table>