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

@@ -29,25 +30,24 @@ {{* lister les immobilisations *}} - {{:include file="_get_config.html" keep="module.config"}} - {{:assign account_condition="("}} {{#foreach from=$module.config.prefixes item="code"}} {{:assign code=$code|cat:"%"|quote_sql}} {{: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 ("}} + {{: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 doc_condition="($$.status <> 'ignored' AND $$.status <> 'archived')"}} {{:assign condition=$account_condition|cat:" AND debit > 0 AND ("|cat:$filter_condition|cat:" OR "|cat:$doc_condition|cat:")"}} + {{:assign nb_immo=0}} {{:assign total_immo = 0}} {{#select @@ -100,12 +100,14 @@ }} {{:assign montant_immo="%d-%d"|math:$montant_immo:$credit}} {{/select}} + {{* Immobilisation soldée ? *}} + {{* TODO marquer archivée *}} {{if $montant_immo == 0}} {{:continue}} {{/if}} - {{* voir s'il existe des écritures d'amortissement associées *}} + {{* lister les lignes des écritures d'amortissement liées à l'immobilisation *}} {{:assign amort_lines=null}} {{#select l_amort.credit as amount, @@ -122,25 +124,48 @@ 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="amort_lines." + assign="line" }} + {{:assign var="amort_lines.%d."|args:$amort_trans_id value=$line}} {{/select}} {{:assign amort_amount=0}} - {{#foreach from=$amort_lines item="elem"}} - {{* voir s'il existe un doc associé à l'écriture d'amortissement *}} + {{#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" - assign="link" :immo_line_id = $immo_line_id - :amort_trans_id = $elem.amort_trans_id + :amort_trans_id = $amort_trans_id + assign="links." }} - {{if $link.amort_line_id == $elem.amort_line_id}} - {{:assign amort_amount="%d+%d"|math:$amort_amount:$amount}} - {{/if}} - {{else}} - {{:assign amort_amount="%d+%d"|math:$amort_amount:$amount}} {{/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}} diff --git a/_immobilisations_autres.html b/_immobilisations_autres.html index 80b91d0..69f2603 100644 --- a/_immobilisations_autres.html +++ b/_immobilisations_autres.html @@ -2,13 +2,13 @@ {{* Liste des immobilisations non amortissables ou non (encore) gérées *}} +{{:include file="_get_config.html" keep="module.config"}}

Cette page liste les écritures pas (encore) prises en charge par le module et sans écriture d'amortissement associée.

- {{:include file="_get_config.html" keep="module.config"}} {{:assign saved_hides=$module.config.hides}} {{:assign var="user_hides" from="saved_hides.%s"|args:$logged_user.id}} @@ -37,7 +37,7 @@ - + @@ -49,53 +49,58 @@ {{* lister les immobilisations *}} - {{:assign condition="("}} + {{:assign account_condition="("}} {{#foreach from=$module.config.prefixes item="code"}} {{:assign code=$code|cat:"%"|quote_sql}} - {{:assign condition=$condition|cat:" account.code LIKE "|cat:$code|cat:" OR "}} + {{:assign account_condition=$account_condition|cat:" account.code LIKE "|cat:$code|cat:" OR "}} {{/foreach}} - {{:assign condition=$condition|cat:"0)"}} - {{:assign condition=$condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"}} + {{:assign account_condition=$account_condition|cat:"0)"}} + {{:assign doc_condition="($$.status == 'ignored')" }} {{if $unhide == null}} - {{:assign filter_condition=" NOT ("}} + {{: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 condition=$condition|cat:" AND "|cat:$filter_condition}} + {{else}} + {{:assign filter_condition="1"}} {{/if}} + {{: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 nb_immo=0}} {{#select - trans.id as trans_id, + trans.id as immo_trans_id, trans.label as trans_label, trans.date as trans_date, line.id as immo_line_id, - line.label as line_label, + line.debit AS debit, + line.label AS line_label, account.id as account_id, account.code as account_code, account.label as account_label, - line.debit AS debit, - trans.id_year as trans_id_year + trans.id_year as trans_id_year, + $$.duration as duration, + $$.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 WHERE !condition ORDER BY trans.date DESC; + !table=$module.table !condition=$condition }} - {{: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:$immo_trans_id}} {{:assign compte_url="%s/acc/accounts/journal.php?id=%s&year=%s"|args:$admin_url:$account_id:$trans_id_year}} - {{* voir si l'immo est prise en charge *}} - {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_line_id|intval}} - {{:assign status=$status}} - {{else}} + {{if $status == null}} {{:assign status="unknown"}} - {{/load}} + {{/if}} {{if $unhide == null}} {{if $status != "unknown"}} @@ -113,45 +118,48 @@ {{/foreach}} {{/if}} - {{* voir s'il existe des écritures d'amortissement associées *}} + {{* lister les lignes des écritures d'amortissement liées à l'immobilisation *}} + {{:assign amort_lines=null}} {{#select - sum(l_amort.credit) as amort_amount, + l_amort.credit as amort_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 + 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 - ) + 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%'; + WHERE l_immo.id = :line_id AND l_amort.credit <> 0 AND account.code LIKE '28%'; :line_id = $immo_line_id|intval + assign="amort_lines." }} - {{if $amort_amount != null}} - {{:assign ignore=true}} - {{else}} - {{:assign ignore=false}} - {{/if}} - {{/select}} - - {{if $ignore}} - {{:continue}} - {{/if}} - {{:assign nb_immo="%d+1"|math:$nb_immo}} + {{/select}} + {{:assign amort_amount=0}} + {{#foreach from=$amort_lines item="line"}} + {{* voir s'il existe un doc associé à l'écriture d'amortissement *}} + {{#load type="link" + where="$$.immo_line_id = :immo_line_id AND $$.amort_trans_id = :amort_trans_id AND $$.amort_line_id = :amort_line_id" + :immo_line_id = $immo_line_id + :amort_trans_id = $line.amort_trans_id + :amort_line_id = $line.amort_line_id + }} + {{:assign amort_amount="%d+%d"|math:$amort_amount:$line.amount}} + {{else}} + {{* TODO À VÉRIFIER (cas multi-lignes) *}} + {{:assign amort_amount="%d+%d"|math:$amort_amount:$line.amount}} + {{/load}} + {{/foreach}} + {{if $amort_amount != 0}} + {{:continue}} + {{/if}} + {{:assign nb_immo="%d+1"|math:$nb_immo}} - + diff --git a/amortization.html b/amortization.html index 342abf3..cf162a2 100644 --- a/amortization.html +++ b/amortization.html @@ -65,14 +65,14 @@ {{* lister les lignes des écritures d'amortissement liées à l'immobilisation *}} {{#select l_amort.credit as amort_amount, - l_amort.label as amort_label, + l_amort.label as amort_line_label, l_amort.id as amort_line_id, CASE WHEN links.id_related = t_immo.id THEN links.id_transaction ELSE links.id_related END as amort_trans_id, trans.date as amort_date, - trans.label as trans_label, + trans.label as amort_trans_label, trans.id_year as amort_year, account.id as account_id, account.code as account_code, @@ -89,17 +89,14 @@ :line_id = $_GET.immo_line_id|intval assign="amort_line" }} - + {{* lister les lignes d'amortissement liées à la ligne d'immobilisation *}} {{#load type="link" - where="$$.immo_line_id = :immo_line_id AND $$.amort_trans_id = :amort_trans_id" + where="$$.immo_line_id = :immo_line_id AND $$.amort_trans_id = :amort_trans_id AND $$.amort_line_id = :amort_line_id" assign="line" :immo_line_id=$_GET.immo_line_id|intval :amort_trans_id=$amort_line.amort_trans_id + :amort_line_id = $amort_line.amort_line_id }} - {{if $line.amort_line_id == $amort_line.amort_line_id}} - {{:assign var="linked_amort." value=$amort_line}} - {{/if}} - {{else}} {{:assign var="linked_amort." value=$amort_line}} {{/load}} {{if $date_debut == null}} @@ -269,7 +266,7 @@
Date Libellé Montant
#{{$trans_id}}#{{$immo_trans_id}} {{$trans_date|date_short}} {{$trans_label}}{{if $line_label != null && $line_label != $trans_label}} — {{$line_label}}{{/if}} {{"%f"|math:$debit|money_html:false|raw}}
- + @@ -291,9 +288,9 @@
Date Montant Valeur nette{{"%f"|math:$line.amort_amount|money_html:false|raw}} {{"%f"|math:$solde|money_html:false|raw}} - {{$line.trans_label}} - {{if $line.amort_label != null && $line.amort_label != $line.trans_label}} - — {{$line.amort_label}} + {{$line.amort_trans_label}} + {{if $line.amort_line_label != null && $line.amort_line_label != $line.amort_trans_label}} + — {{$line.amort_line_label}} {{/if}} {{$line.account_code}}