diff --git a/_archives.html b/_archives.html index 56f6b14..fafad3b 100644 --- a/_archives.html +++ b/_archives.html @@ -50,8 +50,7 @@ trans.label as trans_label, trans.date as trans_date, trans.id_year as trans_id_year, - line.id as immo_line_id, - line.label as line_label, + line.id as immo_id, line.debit AS debit, account.id as account_id, account.code as account_code, @@ -67,10 +66,12 @@ !condition=$condition }} {{:assign montant_immo=$debit}} - {{* voir si l'immo est prise en charge *}} - {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_line_id|intval}} + {{#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"}} @@ -79,48 +80,32 @@ {{:continue}} {{/if}} - {{* 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}} + {{* voir s'il existe une écriture liée qui solde l'immobilisation *}} {{#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, - MAX(trans2.date) as exit_date - 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_trans_id AND line.credit > 0 AND acc.code = :account - ORDER BY trans2.date, trans2.id + 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 ; - :immo_trans_id=$trans_id - :account=$account_code - assign="credit_immo." + :trans_id = $trans_id + :montant_immo = $montant_immo + :account_code = $account_code }} - {{:assign solde_immo="%d-%d"|math:$solde_immo:$credit}} + {{:assign status="archived"}} {{:assign exit_date=$exit_date}} {{/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}} @@ -131,7 +116,12 @@ {{* voir s'il y a une écriture de cession associée à cette immo *}} {{#select trans.id, - line.debit + trans.label, + trans.date, + line.id, + line.debit, + acc.code, + acc.label FROM acc_transactions_links AS link INNER JOIN acc_transactions AS trans ON (CASE WHEN link.id_transaction = :trans_id THEN link.id_related @@ -152,7 +142,7 @@
@@ -29,190 +28,145 @@
- {{* 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 *}} + {{: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=" AND 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 condition=$account_condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"|cat:$filter_condition}} {{:assign nb_immo=0}} {{:assign total_immo = 0}} {{#select - trans.id as immo_trans_id, + trans.id as trans_id, trans.label as trans_label, trans.date as trans_date, - line.id as immo_line_id, + line.id as immo_id, line.debit AS debit, - line.label AS line_label, account.id as account_id, account.code as account_code, - trans.id_year as trans_id_year, - $$.duration as duration, - $$.status as status + 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 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:$immo_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 duration=$duration}} + {{:assign duration=null}} {{:assign montant_immo=$debit}} - {{if $status == null}} + + {{* voir si l'immo est prise en charge *}} + {{#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"}} - {{/if}} - - {{* 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}} - - {{* Immobilisation soldée ? *}} - {{* TODO marquer archivée *}} - {{if $montant_immo == 0}} + {{/load}} + {{if $status == "ignored"}} {{:continue}} {{/if}} - {{* lister les lignes des écritures d'amortissement liées à l'immobilisation *}} - {{:assign amort_lines=null}} + {{* voir s'il existe une écriture qui solde l'immobilisation *}} {{#select - l_amort.credit as amount, + 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"}} + {{/select}} + {{if $status == "archived"}} + {{:continue}} + {{/if}} + + {{* voir s'il existe des écritures d'amortissement associées *}} + {{#select + sum(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, - l_amort.id AS amort_line_id + END as amort_trans_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%'; - :line_id = $immo_line_id|intval - assign="line" + WHERE + l_immo.id = :line_id + AND + l_amort.credit <> 0 + AND + account.code LIKE '28%'; + :line_id = $immo_id|intval }} - {{:assign var="amort_lines.%d."|args:$amort_trans_id value=$line}} + {{if $amort_amount == null}} + {{:assign exist_amort=false}} + {{:assign amort_amount=0}} + {{else}} + {{:assign exist_amort=true}} + {{:assign amort_amount=$amort_amount}} + {{/if}} {{/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}} - - {{#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}} - {{* classement par onglet *}} {{if $type_immo == "managed" && $amort_amount >= $montant_immo}}{{:continue}}{{/if}} + {{if $type_immo == "managed" && $status == "amortized"}}{{: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 && $status != "amortized"}}{{: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}}Aucune immobilisation
{{/if}}Cette page liste les écritures pas (encore) prises en charge par le module et sans écriture d'amortissement associée.
- {{:assign saved_hides=$module.config.hides}} - {{:assign var="user_hides" from="saved_hides.%s"|args:$logged_user.id}} - + {{:include file="_get_config.html" keep="module.config"}} {{if $_POST|count == 0}} - {{:assign unhide=$user_hides.unhide_other}} + {{:assign unhide=$module.config.unhide_other}} {{else}} {{if $_POST.unhide == null}} {{:assign unhide=0}} {{else}} {{:assign unhide=1}} {{/if}} - {{:assign var="user_hides.unhide_other" value=$unhide"}} - {{:assign var="saved_hides.%s"|args:$logged_user.id value=$user_hides}} - {{:save key="config" hides=$saved_hides}} + {{:save key="config" unhide_other=$unhide}} {{/if}} {{if $unhide}} {{:assign checked="checked"}} @@ -30,14 +25,14 @@| N° | +N° | Date | Libellé | Montant | @@ -48,72 +43,55 @@||||
|---|---|---|---|---|---|---|---|---|
| #{{$immo_trans_id}} | +#{{$trans_id}} | {{$trans_date|date_short}} | -{{$trans_label}}{{if $line_label != null && $line_label != $trans_label}} — {{$line_label}}{{/if}} | +{{$trans_label}} | {{"%f"|math:$debit|money_html:false|raw}} | {{$account_code}} | {{$account_label}} | {{:linkbutton label="Paramètres" - href="add_infos.html?immo_line_id=%s&type_immo=other"|args:$immo_line_id + href="add_infos.html?immo_id=%s&type_immo=other"|args:$immo_id shape="settings" target="_dialog" }} + {{:linkbutton + label="Amortissements" + href="amortization.html?immo_id=%s&type_immo=other"|args:$immo_id + shape="table" + }} |