diff --git a/_immobilisations.html b/_immobilisations.html index d287632..fa31b31 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -3,16 +3,16 @@ {{* Liste des immobilisations en cours d'amortissement ou amorties *}} {{:include file="_get_config.html" keep="module.config"}} -
-

- {{if $type_immo == "managed"}} - Cette page liste les immobilisations en cours d'amortissement - {{elseif $type_immo == "amortized"}} - Cette page liste les immobilisations dont l'amortissement est terminé - {{/if}} -

+

+ {{if $type_immo == "managed"}} + Cette page liste les immobilisations en cours d'amortissement + {{elseif $type_immo == "amortized"}} + Cette page liste les immobilisations dont l'amortissement est terminé + {{/if}} +

+{{if $module.table != null}} @@ -29,14 +29,6 @@ - {{* vérifier l'existence de la table du module *}} - {{#load limit="1"}} - {{:assign table_presente=true}} - {{else}} - {{:assign table_presente=false}} - {{/load}} - - {{if $table_presente}} {{* lister les immobilisations *}} {{:assign account_condition="("}} {{#foreach from=$module.config.prefixes item="code"}} @@ -44,17 +36,8 @@ {{:assign account_condition=$account_condition|cat:" account.code LIKE "|cat:$code|cat:" OR "}} {{/foreach}} {{:assign account_condition=$account_condition|cat:"0)"}} - {{:assign doc_condition="($$.status <> 'ignored' AND $$.status <> 'archived')"}} - - {{:assign filter_condition="NOT ("}} - {{#foreach from=$module.config.filters item="filter"}} - {{:assign filter="%"|cat:$filter|cat:"%"|quote_sql}} - {{:assign filter_condition=$filter_condition|cat:" trans_label LIKE "|cat:$filter|cat:" OR "}} - {{/foreach}} - {{:assign filter_condition=$filter_condition|cat:"0)"}} - {{:assign filter_condition="($$.status IS NULL AND NOT (trans.status & 16) AND "|cat:$filter_condition|cat:")"}} - - {{:assign condition=$account_condition|cat:" AND debit > 0 AND ("|cat:$filter_condition|cat:" OR "|cat:$doc_condition|cat:")"}} + {{:assign status_condition="($$.status = 'managed' OR $$.status = 'amortized')"}} + {{:assign condition=$account_condition|cat:" AND line.debit > 0 AND "|cat:$status_condition}} {{:assign nb_immo=0}} {{:assign total_immo = 0}} @@ -68,152 +51,105 @@ account.id as account_id, account.code as account_code, trans.id_year as trans_id_year, + info.id as immo_doc_id, $$.duration as duration, + $$.label as doc_label, + $$.amount as doc_amount, + $$.date_achat as doc_date_achat, + $$.date as doc_date_mes, $$.status as status FROM acc_transactions AS trans 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_years AS years ON trans.id_year = years.id - LEFT JOIN !table AS info ON $$.line = line.id + INNER JOIN !table AS info ON $$.line = line.id WHERE !condition - ORDER BY trans.date DESC; + ORDER BY COALESCE(doc_date_achat, trans_date) DESC; !table=$module.table !condition=$condition }} {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$immo_trans_id}} {{:assign compte_url="%s/acc/accounts/journal.php?id=%s&year=%s"|args:$admin_url:$account_id:$trans_id_year}} - {{:assign duration=$duration}} - {{:assign montant_immo=$debit}} - {{if $status == null}} - {{:assign status="unknown"}} + {{:assign montant_immo=$doc_amount|or:$debit}} + {{:assign immo_date = $doc_date_achat|or:$trans_date}} + {{:assign label_immo=$doc_label|or:$trans_label}} + {{if $line_label != null && $line_label != $label_immo}} + {{:assign label_immo=$label_immo|cat:" — "|cat:$line_label}} {{/if}} - {{* chercher des écritures liées à l'immo courante au crédit du même compte + {{* + 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 - 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=$immo_trans_id - :account=$account_code - }} - {{:assign montant_immo="%d-%d"|math:$montant_immo:$credit}} - {{/select}} + {{#load + type="immo_link" + where="$$.immo_doc_id = :immo_doc_id" :immo_doc_id = $immo_doc_id + }} + {{if $amount == null}} + {{#select credit FROM acc_transactions_lines WHERE id = :credit_line_id; + :credit_line_id=$credit_line_id + }} + {{:assign montant_immo="%d-%d"|math:$montant_immo:$credit}} + {{/select}} + {{else}} + {{:assign montant_immo="%d-%d"|math:$montant_immo:$amount}} + {{/if}} + {{/load}} {{* Immobilisation soldée ? *}} - {{* TODO marquer archivée *}} + {{* TODO ¿ marquer archivée ? *}} {{if $montant_immo == 0}} {{:continue}} {{/if}} - {{* lister les lignes des écritures d'amortissement liées à l'immobilisation *}} + {{* chercher des lignes des écritures d'amortissement liées à la ligne d'immobilisation *}} {{:assign amort_lines=null}} - {{#select - l_amort.credit as amount, - CASE links.id_related = t_immo.id - WHEN true THEN links.id_transaction - WHEN false THEN links.id_related - END as amort_trans_id, - l_amort.id AS amort_line_id - 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) - INNER JOIN acc_transactions_lines as l_amort on amort_trans_id = l_amort.id_transaction - INNER JOIN acc_accounts AS account ON l_amort.id_account = account.id - WHERE l_immo.id = :line_id AND l_amort.credit <> 0 AND account.code LIKE '28%'; - :line_id = $immo_line_id|intval - assign="line" - }} - {{:assign var="amort_lines.%d."|args:$amort_trans_id value=$line}} - {{/select}} - {{:assign amort_amount=0}} - {{#foreach from=$amort_lines key="amort_trans_id" item="lines"}} - {{:assign nb=$lines|count}} - {{* lister les docs de liaison de l'écriture d'amortissement *}} - {{:assign links=null}} - {{#load type="link" - where="$$.immo_line_id = :immo_line_id AND $$.amort_trans_id = :amort_trans_id" - :immo_line_id = $immo_line_id - :amort_trans_id = $amort_trans_id - assign="links." + {{#load type="amort_link" + where="$$.immo_doc_id = :immo_doc_id" + :immo_doc_id = $immo_doc_id + assign="amort_link" }} - {{/load}} - - {{#foreach from=$lines item="line"}} - {{* voir s'il existe une ligne associée à l'écriture d'amortissement *}} - {{:assign line_link_exist=false}} - {{#foreach from=$links item="link"}} - {{if $link.amort_line_id == $line.amort_line_id}} - {{:assign amort_amount="%d+%d"|math:$amort_amount:$line.amount}} - {{:assign line_link_exist=true}} - {{/if}} - {{/foreach}} - {{if ! $line_link_exist}} - {{if $nb == 1}} - {{* créer la liaison ligne immo <-> ligne amort *}} -{{*:debug lier_immo_line_id=$immo_line_id lier_amort_trans_id=$amort_trans_id avec_amort_line_id=$amort_line_id*}} - {{:save - key=""|uuid - type="link" - immo_line_id=$immo_line_id - amort_line_id=$amort_line_id - amort_trans_id=$amort_trans_id - }} - {{:assign amort_amount="%d+%d"|math:$amort_amount:$line.amount}} - {{/if}} - {{/if}} - {{/foreach}} - {{/foreach}} - - {{if $amort_amount == 0}} - {{:assign exist_amort=false}} - {{else}} - {{:assign exist_amort=true}} - {{:assign amort_amount=$amort_amount}} - {{/if}} + {{if $amount == null}} + {{#select credit FROM acc_transactions_lines WHERE id = :amort_line_id; + :amort_line_id = $amort_line_id + }} + {{:assign amort_amount="%d+%d"|math:$amort_amount:$credit}} + {{/select}} + {{else}} + {{:assign amort_amount="%d+%d"|math:$amort_amount:$amount}} + {{/if}} + {{/load}} {{* classement par onglet *}} {{if $type_immo == "managed" && $amort_amount >= $montant_immo}}{{:continue}}{{/if}} - {{if $status == "unknown" && ! $exist_amort}}{{:continue}}{{/if}} - {{if $type_immo == "amortized" && $amort_amount < $montant_immo}}{{:continue}}{{/if}} {{* ?? *}} + {{if $type_immo == "amortized" && $amort_amount < $montant_immo}}{{:continue}}{{/if}} {{:assign nb_immo="%d+1"|math:$nb_immo}} {{:assign total_immo="%d+%d"|math:$total_immo:$montant_immo}} {{:assign var="montant" from="sommes_immo.%s"|args:$account_code}} {{:assign var="sommes_immo.%s"|args:$account_code value="%d+%d"|math:$montant:$montant_immo}} - - - + + + - + @@ -250,9 +186,8 @@ {{/if}} -{{/if}}
#{{$immo_trans_id}}{{$trans_date|date_short}}{{$trans_label}}{{if $line_label != null && $line_label != $trans_label}} — {{$line_label}}{{/if}}#{{$immo_trans_id}}{{$immo_date|date_short}}{{$label_immo}} {{$montant_immo|money_html:false|raw}} {{if $duration != null}}{{$duration}}{{/if}} {{$amort_amount|money_html:false|raw}} {{"%d-%d"|math:$montant_immo:$amort_amount|money_html:false|raw}}{{$account_code}}{{$account_code}} - {{if ! $exist_amort || $status == "unknown"}} + {{*if $amort_amount == 0*}} {{:linkbutton - label="Paramètres" - href="add_infos.html?immo_line_id=%s&type_immo=%s"|args:$immo_line_id:$type_immo - shape="settings" + label="Détails" + href="details_immo.html?immo_doc_id=%s"|args:$immo_doc_id + shape="search" }} -{{* target="_dialog"*}} - {{/if}} + {{* target="_dialog"*}} + {{*/if*}} {{:linkbutton label="Amortissements" - href="amortization.html?immo_line_id=%s&type_immo=%s"|args:$immo_line_id:$type_immo - shape="table" + href="amortization.html?immo_line_id=%s&type_immo=%s&immo_doc_id=%s"|args:$immo_line_id:$type_immo:$immo_doc_id shape="table" }}
- {{if $nb_immo == 0 || ! $table_presente}} -

Aucune immobilisation

- {{/if}} -
+{{/if}} +{{if $nb_immo == 0 || $module.table == null}} +

Aucune immobilisation

+{{/if}}