diff --git a/_archives.html b/_archives.html index fafad3b..37b5a13 100644 --- a/_archives.html +++ b/_archives.html @@ -66,12 +66,10 @@ !condition=$condition }} {{:assign montant_immo=$debit}} + {{* voir si l'immo est prise en charge *}} {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_id|intval}} {{:assign status=$status}} - {{if $amount != null}} - {{:assign montant_immo=$amount}} - {{/if}} {{else}} {{:assign amortissable="nsp"}} {{:assign status="unknown"}} @@ -80,32 +78,46 @@ {{:continue}} {{/if}} - {{* voir s'il existe une écriture liée qui solde l'immobilisation *}} + {{* 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 solde_immo=$montant_immo}} + {{:assign credit_immo=null}} {{#select - trans.date as exit_date - FROM acc_transactions_links AS link - INNER JOIN acc_transactions AS trans ON - (CASE - WHEN link.id_transaction = :trans_id THEN link.id_related - WHEN link.id_related = :trans_id THEN link.id_transaction - END) = trans.id - INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id - INNER JOIN acc_accounts AS acc on line.id_account=acc.id - WHERE line.credit = :montant_immo - AND acc.code = :account_code + 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 + INNER JOIN acc_transactions AS trans2 ON trans2.id = other_id + WHERE trans.id = :immo_id AND line.credit > 0 AND acc.code = :account + ORDER BY trans2.date, trans2.id ; - :trans_id = $trans_id - :montant_immo = $montant_immo - :account_code = $account_code + :immo_id=$trans_id + :account=$account_code + assign="credit_immo." }} - {{:assign status="archived"}} - {{:assign exit_date=$exit_date}} + {{:assign solde_immo="%d-%d"|math:$solde_immo:$credit}} {{/select}} + {{if $solde_immo == 0}} + {{:assign status="archived"}} + {{/if}} + {{if $status != "archived"}} {{:continue}} {{/if}} + {{:assign nb=$credit_immo|count}} + {{:assign nb="%d-1"|math:$nb}} + {{:assign var="last_credit" from="credit_immo.%d"|args:$nb}} + {{:assign montant_immo=$last_credit.credit}} + {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$trans_id}} {{:assign compte_url="%s/acc/accounts/journal.php?id=%s&year=%s"|args:$admin_url:$account_id:$trans_id_year}} {{:assign nb_immo="%d+1"|math:$nb_immo}} @@ -116,12 +128,7 @@ {{* voir s'il y a une écriture de cession associée à cette immo *}} {{#select trans.id, - trans.label, - trans.date, - line.id, - line.debit, - acc.code, - acc.label + line.debit FROM acc_transactions_links AS link INNER JOIN acc_transactions AS trans ON (CASE WHEN link.id_transaction = :trans_id THEN link.id_related diff --git a/_immobilisations.html b/_immobilisations.html index aacdc34..d8a88f3 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -56,7 +56,6 @@ line.debit AS debit, account.id as account_id, account.code as account_code, - account.label as account_label, trans.id_year as trans_id_year FROM acc_transactions AS trans INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id @@ -75,9 +74,6 @@ {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_id|intval}} {{:assign duration=$duration}} {{:assign status=$status}} - {{if $amount != null}} - {{:assign montant_immo=$amount}} - {{/if}} {{else}} {{:assign amortissable="nsp"}} {{:assign status="unknown"}} @@ -86,20 +82,30 @@ {{:continue}} {{/if}} - {{* voir s'il existe une écriture qui solde l'immobilisation *}} + {{* 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 + *}} {{#select - line.id AS line - FROM acc_transactions_lines AS line - INNER JOIN acc_accounts AS acc ON acc.id = line.id_account - INNER JOIN acc_transactions_lines AS line2 ON line2.id_account = acc.id - WHERE - line.id = :line_id - AND line2.credit = :montant_immo; - :line_id = $immo_id|intval - :montant_immo = $montant_immo - }} - {{:assign status="archived"}} + 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=$trans_id + :account=$account_code + }} + {{:assign montant_immo="%d-%d"|math:$montant_immo:$credit}} + {{*:debug ligne=$ligne montant_immo=$montant_immo*}} {{/select}} + {{if $montant_immo == 0}} + {{:assign status="archived"}} + {{/if}} {{if $status == "archived"}} {{:continue}} {{/if}} diff --git a/_nav.html b/_nav.html index 57a6f51..a7894b5 100644 --- a/_nav.html +++ b/_nav.html @@ -7,7 +7,7 @@ {{elseif $subsubcurrent == "amortization" && $type_immo == null || $type_immo == "managed" || $type_immo == "other"}}