Correction erreur traitement sortie du bilan des immo importées de la balance initiale

This commit is contained in:
Jean-Christophe Engel 2026-09-11 15:33:34 +02:00
parent 4f1b0ffead
commit 75cb25fbb9
3 changed files with 186 additions and 189 deletions

View file

@ -4,31 +4,33 @@
<p class="block help"> <p class="block help">
Cet onglet liste les immobilisations sorties du bilan car elles ne Cet onglet liste les immobilisations sorties du bilan car elles ne
sont plus utilisées dans l'association (vétusté, fin de vie, sont plus utilisées dans l'association (vétusté, fin de vie,
vente, cession...). vente...).
</p> </p>
{{:include file="_get_config.html" keep="module.config"}} {{:include file="_get_config.html" keep="module.config"}}
{{* lister les immobilisations *}} {{if $module.table != null}}
{{:assign account_condition="("}}
{{#foreach from=$module.config.prefixes item="code"}} {{* lister les immobilisations *}}
{{:assign account_condition="("}}
{{#foreach from=$module.config.prefixes item="code"}}
{{:assign code=$code|cat:"%"|quote_sql}} {{:assign code=$code|cat:"%"|quote_sql}}
{{:assign account_condition=$account_condition|cat:"account.code LIKE "|cat:$code|cat:" OR "}} {{:assign account_condition=$account_condition|cat:"account.code LIKE "|cat:$code|cat:" OR "}}
{{/foreach}} {{/foreach}}
{{:assign account_condition=$account_condition|cat:"0)"}} {{:assign account_condition=$account_condition|cat:"0)"}}
{{:assign status_condition="($$.status = 'archived')"}}
{{:assign filter_condition=" AND NOT ("}} {{:assign filter_condition=" ("}}
{{#foreach from=$module.config.filters item="filter"}} {{#foreach from=$module.config.filters item="filter"}}
{{:assign filter="%"|cat:$filter|cat:"%"|quote_sql}} {{:assign filter="%"|cat:$filter|cat:"%"|quote_sql}}
{{:assign filter_condition=$filter_condition|cat:" trans_label LIKE "|cat:$filter|cat:" OR "}} {{:assign filter_condition=$filter_condition|cat:" trans_label LIKE "|cat:$filter|cat:" OR "}}
{{/foreach}} {{/foreach}}
{{:assign filter_condition=$filter_condition|cat:"0)"}} {{:assign filter_condition=$filter_condition|cat:"0)"}}
{{:assign condition=$account_condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"|cat:$filter_condition}} {{:assign condition=$account_condition|cat:" AND debit > 0 AND NOT (trans.status & 16) AND NOT "|cat:$filter_condition|cat:" AND "|cat:$status_condition}}
{{:assign nb_immo=0}} {{:assign total_cessions = 0}}
{{:assign total_cessions = 0}}
{{#select {{#select
trans.id as trans_id, trans.id as trans_id,
trans.label as trans_label, trans.label as trans_label,
trans.date as trans_date, trans.date as trans_date,
@ -38,32 +40,31 @@
line.debit AS debit, line.debit AS debit,
account.id as account_id, account.id as account_id,
account.code as account_code, account.code as account_code,
account.label as account_label account.label as account_label,
info.id as immo_doc_id,
$$.label as doc_label,
$$.amount as doc_amount,
$$.date_achat as doc_date_achat,
$$.date_mes as doc_date_mes,
$$.status as status
FROM acc_transactions AS trans FROM acc_transactions AS trans
INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id
INNER JOIN acc_accounts AS account ON line.id_account = account.id INNER JOIN acc_accounts AS account ON line.id_account = account.id
INNER JOIN acc_years AS years ON trans.id_year = years.id INNER JOIN acc_years AS years ON trans.id_year = years.id
INNER JOIN !table AS info ON $$.line = line.id
WHERE !condition WHERE !condition
ORDER BY trans.date DESC; ORDER BY trans.date DESC;
!table=$module.table
!condition=$condition !condition=$condition
assign="immo_line" assign="immo_line"
}} }}
{{* voir si l'immo est prise en charge *}} {{:assign var="immo_line.date_mes" value=$doc_date_mes|or:$doc_date_achat|or:$trans_date}}
{{#load type="immo" where="$$.line = :line_id" :line_id=$immo_line_id assign="info_immo"}} {{:assign var="immo_line.montant_immo" value=$doc_amount|or:$debit}}
{{:assign status=$status}}
{{else}}
{{:assign status=null}}
{{/load}}
{{if $status != "archived"}}
{{:continue}}
{{/if}}
{{:assign var="immo_line.date_mes" value=$info_immo.date_mes|or:$trans_date}}
{{:assign var="immo_line.montant_immo" value=$debit}}
{{* chercher le doc de sortie du bilan *}} {{* chercher le doc de sortie du bilan *}}
{{:assign var="immo_line.exit_date" value=null}} {{:assign var="immo_line.exit_date" value=null}}
{{#load type="exit_link" where="$$.immo_doc_id = :immo_doc_id" :immo_doc_id=$info_immo.id}} {{#load type="exit_link" where="$$.immo_doc_id = :immo_doc_id" :immo_doc_id=$immo_doc_id}}
{{:assign exit_line_id=$exit_line_id}} {{:assign exit_line_id=$exit_line_id}}
{{#select {{#select
trans.date trans.date
@ -81,7 +82,7 @@
{{:assign total_credits=0}} {{:assign total_credits=0}}
{{#load {{#load
type="credit_link" type="credit_link"
where="$$.immo_doc_id = :immo_doc_id" :immo_doc_id = $info_immo.id where="$$.immo_doc_id = :immo_doc_id" :immo_doc_id = $immo_doc_id
}} }}
{{if $amount == null}} {{if $amount == null}}
{{#select credit FROM acc_transactions_lines WHERE id = :credit_line_id; {{#select credit FROM acc_transactions_lines WHERE id = :credit_line_id;
@ -94,42 +95,33 @@
{{/if}} {{/if}}
{{/load}} {{/load}}
{{:assign solde_immo="%d-%d"|math:$immo_line.montant_immo:$total_credits}} {{:assign solde_immo="%d-%d"|math:$immo_line.montant_immo:$total_credits}}
{{if $solde_immo == 0}}
{{:assign status="archived"}}
{{/if}}
{{if $status != "archived"}}
{{:continue}}
{{/if}}
{{:assign nb_immo="%d+1"|math:$nb_immo}}
{{:assign var="montant" from="sommes_immo.%s"|args:$account_code}} {{:assign var="montant" from="sommes_immo.%s"|args:$account_code}}
{{:assign var="sommes_immo.%s"|args:$account_code value="%d+%d"|math:$montant:$immo_line.montant_immo}} {{:assign var="sommes_immo.%s"|args:$account_code value="%d+%d"|math:$montant:$immo_line.montant_immo}}
{{* voir s'il y a une écriture de cession associée à cette immo *}} {{* voir s'il y a une écriture de cession associée à cette immo *}}
{{#select {{#select
trans.id, trans.id as cession_id,
line.debit trans.label,
FROM acc_transactions_links AS link line.id as line_id,
INNER JOIN acc_transactions AS trans ON (CASE line.credit
WHEN link.id_transaction = :trans_id THEN link.id_related FROM acc_transactions_lines AS line
WHEN link.id_related = :trans_id THEN link.id_transaction INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id
END) = trans.id INNER JOIN !table AS cession_link ON json_extract(cession_link.document, '$.cession_line_id') = line.id
INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id INNER JOIN !table AS immo_doc ON json_extract(cession_link.document, '$.immo_doc_id') = immo_doc.id
INNER JOIN acc_accounts AS acc ON line.id_account = acc.id WHERE json_extract(immo_doc.document, '$.line') = :immo_line_id
WHERE (link.id_transaction = :trans_id OR link.id_related = :trans_id) AND acc.code = 462
; ;
:trans_id = $trans_id !table=$module.table
:immo_line_id = $immo_line.immo_line_id
assign="cession_line"
}} }}
{{:assign var="montant" from="montant_cessions.%d"|args:$account_code}} {{:assign var="montant" from="montant_cessions.%d"|args:$account_code}}
{{:assign var="montant_cessions.%d"|args:$account_code value="%d+%d"|math:$montant:$debit}} {{:assign var="montant_cessions.%d"|args:$account_code value="%d+%d"|math:$montant:$credit}}
{{:assign total_cessions="%d+%d"|math:$total_cessions:$debit}} {{:assign total_cessions="%d+%d"|math:$total_cessions:$credit}}
{{/select}} {{/select}}
{{:assign var="immo_lines." value=$immo_line}} {{:assign var="immo_lines." value=$immo_line}}
{{/select}} {{/select}}
{{if $immo_lines|count > 0}} {{if $immo_lines|count > 0}}
<section class="immobilisation"> <section class="immobilisation">
<table class="list"> <table class="list">
<thead> <thead>
@ -151,17 +143,20 @@
{{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$trans_id}} {{: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 compte_url="%s/acc/accounts/journal.php?id=%s&year=%s"|args:$admin_url:$account_id:$trans_id_year}}
{{:assign total_immo="%d+%d"|math:$total_immo:$montant_immo}} {{:assign total_immo="%d+%d"|math:$total_immo:$montant_immo}}
{{:assign label_immo=$doc_label|or:$trans_label}}
{{if $label_immo|strpos:$line_label === false}}
{{:assign label_immo=$label_immo|cat:" — "|cat:$line_label}}
{{/if}}
<tr> <tr>
<td class="num"><a href="{{$trans_url}}">#{{$trans_id}}</a></td> <td class="num"><a href="{{$trans_url}}">#{{$trans_id}}</a></td>
<td>{{$date_mes|date_short}}</td> <td>{{$date_mes|date_short}}</td>
<td>{{$exit_date|date_short}}</td> <td>{{$exit_date|date_short}}</td>
<td>{{$trans_label}}{{if $line_label != null && $line_label != $trans_label}} — {{$line_label}}{{/if}}</td> <td>{{$label_immo}}</td>
<td class="money">{{"%f"|math:$montant_immo|money_html:false|raw}}</td> <td class="money">{{"%f"|math:$montant_immo|money_html:false|raw}}</td>
<td><a href="{{$compte_url}}">{{$account_code}}</a></td> <td><a href="{{$compte_url}}">{{$account_code}}</a></td>
<td>{{$account_label}}</td> <td>{{$account_label}}</td>
<td class="actions"> <td class="actions">
{{:linkbutton label="Modifier" href="exit_step1.html?immo_doc_id=%s&from=exit"|args:$info_immo.id shape="edit"}} {{:linkbutton label="Modifier" href="exit_step1.html?immo_doc_id=%s&from=exit"|args:$immo_doc_id shape="edit"}}
</td> </td>
</tr> </tr>
{{/foreach}} {{/foreach}}
@ -224,6 +219,8 @@
</tfoot> </tfoot>
</table> </table>
</section> </section>
{{else}} {{/if}}
{{/if}}
{{if $immo_lines|count == 0 || $module.table == null}}
<p class="block alert">Aucune immobilisation</p> <p class="block alert">Aucune immobilisation</p>
{{/if}} {{/if}}

View file

@ -21,7 +21,7 @@
{{:include file="_nav.html" current=$type_immo}} {{:include file="_nav.html" current=$type_immo}}
{{* Mise à niveau *}} {{* Mise à niveau *}}
{{:assign module_version="0.40.3"}} {{:assign module_version="0.40.4"}}
{{:include file="upgrade.html" module_version=$module_version}} {{:include file="upgrade.html" module_version=$module_version}}
{{* supprimer les documents sans écriture associée *}} {{* supprimer les documents sans écriture associée *}}

View file

@ -1,5 +1,5 @@
name="Amortissements" name="Amortissements"
description="Immobilisations et amortissements\nversion 0.40.3" description="Immobilisations et amortissements\nversion 0.40.4"
author="Jean-Christophe Engel" author="Jean-Christophe Engel"
author_url="https://gitea.zaclys.com/lesanges" author_url="https://gitea.zaclys.com/lesanges"
home_button=false home_button=false