Liaison immo avec écritures de crédits sur compte d'immobilisation

This commit is contained in:
Jean-Christophe Engel 2026-02-13 14:52:00 +01:00
parent 53695b6547
commit 310aa8cd07
7 changed files with 225 additions and 101 deletions

View file

@ -12,9 +12,11 @@
line.debit as montant,
trans.id as trans_id,
trans.label as label,
trans.date
trans.date,
account.code as account_code
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 = :line_id;
:line_id = $_GET.immo_id|intval
assign=ligne_immo
@ -29,10 +31,30 @@
{{:assign duree=$duration}}
{{:assign date_debut=$date}}
{{:assign status=$status}}
{{if $amount != null}}
{{:assign var="ligne_immo.montant" value=$amount}}
{{/if}}
{{/load}}
{{* 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}}
{{#select
CASE links.id_related = :immo_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_id AND line.credit > 0 AND acc.code = :account;
:immo_id=$ligne_immo.trans_id
:account=$ligne_immo.account_code
}}
{{:assign total_credits="%d+%d"|math:$total_credits:$credit}}
{{/select}}
{{:assign var="ligne_immo.montant" value="%d-%d"|math:$ligne_immo.montant:$total_credits}}
{{:assign solde=$ligne_immo.montant}}
{{* chercher des écritures d'amortissement liées à l'immobilisation *}}
@ -53,9 +75,7 @@
FROM acc_transactions_lines as l_immo
INNER JOIN acc_transactions as t_immo on t_immo.id = l_immo.id_transaction
INNER JOIN acc_transactions_links as links
ON (t_immo.id = links.id_transaction
OR
t_immo.id = links.id_related)
ON (t_immo.id = links.id_transaction OR t_immo.id = links.id_related)
INNER JOIN acc_transactions_lines as l_amort on amort_trans_id = l_amort.id_transaction
INNER join acc_transactions as trans on l_amort.id_transaction = trans.id
INNER join acc_accounts as account on l_amort.id_account = account.id
@ -90,17 +110,9 @@
{{/foreach}}
{{:assign filter_condition=$filter_condition|cat:"0)"}}
{{:assign autres_amortissements=false}}
{{#select
line.id as l_id,
line.id_transaction as t_id,
line.credit as amort_amount,
line.label as l_label,
trans.date as t_date,
trans.label as t_label,
trans.id_year as amort_year,
account.id as account_id,
account.code as account_code,
account.label as account_label
line.id_transaction as t_id
FROM acc_transactions_lines AS line
INNER JOIN acc_accounts AS account ON account.id = line.id_account
INNER JOIN acc_transactions AS trans ON trans.id = line.id_transaction
@ -108,17 +120,18 @@
WHERE account.code LIKE "28%" AND credit > 0 AND (NOT trans.status & 16) AND !filter_condition
ORDER BY trans.date, trans.label;
!filter_condition=$filter_condition
assign=autre_amort
}}
{{#select
id_transaction,
id_related
FROM acc_transactions_links
WHERE id_transaction = :id_amort OR id_related = :id_amort;
WHERE id_transaction = :id_amort OR id_related = :id_amort
LIMIT 1
;
:id_amort=$t_id
}}
{{else}}
{{:assign var="autres_amortissements." value=$autre_amort}}
{{:assign autres_amortissements=true}}
{{/select}}
{{/select}}
@ -258,7 +271,7 @@
{{* Autres amortissements non rattachés *}}
{{if $autres_amortissements != null}}
{{if $autres_amortissements}}
<p class="block alert">
Il existe des écritures d'amortissement qui ne sont pas rattachés à une immobilisation ! <br />
Utilisez le bouton « Rattacher une écriture » pour les afficher ; vous pourrez choisir d'en attacher certaines à cette immobilisation.