@@ -28,26 +29,33 @@
- {{* lister les immobilisations *}} - {{:include file="_get_config.html" keep="module.config"}} + {{* 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"}} {{: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 +108,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 +132,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}} @@ -174,8 +207,8 @@ label="Paramètres" href="add_infos.html?immo_line_id=%s&type_immo=%s"|args:$immo_line_id:$type_immo shape="settings" - target="_dialog" }} +{{* target="_dialog"*}} {{/if}} {{:linkbutton label="Amortissements" @@ -217,8 +250,9 @@ {{/if}} +{{/if}} - {{if $nb_immo == 0}} + {{if $nb_immo == 0 || ! $table_presente}}Aucune immobilisation
{{/if}} diff --git a/_immobilisations_autres.html b/_immobilisations_autres.html index 80b91d0..1f08e9b 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 @@| N° | +N° | Date | Libellé | Montant | @@ -48,54 +48,72 @@
|---|---|---|---|---|
| #{{$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}} | diff --git a/add_infos.html b/add_infos.html index bf0b6be..1ee848b 100644 --- a/add_infos.html +++ b/add_infos.html @@ -9,9 +9,11 @@ {{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_line_id|intval}} {{/load}} {{#select - trans.id, + trans.id as immo_trans_id, + trans.label, trans.date as date_achat, line.debit as montant, + line.label as line_label, acc.code FROM acc_transactions_lines AS line INNER join acc_transactions AS trans ON line.id_transaction = trans.id @@ -37,7 +39,7 @@ WHERE (links.id_transaction = :immo_trans_id or links.id_related = :immo_trans_id) AND line.credit > 0 ; - :immo_trans_id = $ligne_immo.id + :immo_trans_id = $ligne_immo.immo_trans_id }} {{:assign var="linked_transactions.%d."|args:$code value=$linked_id}} {{/select}} @@ -122,7 +124,7 @@ {{if $new_transactions != null}} {{:api method="POST" - path="accounting/transaction/%s/transactions"|args:$ligne_immo.id + path="accounting/transaction/%s/transactions"|args:$ligne_immo.immo_trans_id assign="result" assign_code="result_code" transactions=$new_transactions @@ -140,11 +142,11 @@ {{/form}} {{:form_errors}} -{{:admin_header title="Classer l'immobilisation" custom_css=$custom_css current="module_amortization"}} +{{:admin_header title="Classer l'immobilisation" custom_css="./style.css" current="module_amortization"}} {{* barre de navigation *}} {{if ! $dialog}} - {{:include file="_nav.html" current="index"}} + {{:include file="_nav.html" current="index" subcurrent="%s"|args:$_GET.type_immo subsubcurrent="parameter"}} {{/if}} {{:assign choix_defaut=$_GET.type_immo}} @@ -161,6 +163,23 @@ - classer l'immobilisation - renseigner ou modifier la date de mise en service, les écritures associées ou la durée d'amortissement *}} + +{{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$ligne_immo.immo_trans_id}} +