diff --git a/_immobilisations.html b/_immobilisations.html index d78ca56..d287632 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"}}

@@ -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 @@ - + @@ -48,54 +48,72 @@ + {{* vérifier l'existence de la table du module *}} + {{#load limit="1"}} + {{:assign columns="$$.duration as duration, $$.status as status,"}} + {{:assign table_join="LEFT JOIN !table AS info ON $$.line = line.id"}} + {{:assign doc_condition1="($$.status == 'ignored')"}} + {{:assign doc_condition2="$$.status IS NULL"}} + {{else}} + {{:assign columns=""}} + {{:assign table_join=""}} + {{:assign doc_condition1="0"}} + {{:assign doc_condition2="1"}} + {{/load}} + {{* 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)"}} {{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="("|cat:$doc_condition2|cat:" 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_condition1|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, + !columns 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 + !table_join WHERE !condition ORDER BY trans.date DESC; + !columns=$columns + !table_join=$table_join + !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 +131,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/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}} +

+ Paramètres de l'immobilisation + #{{$ligne_immo.immo_trans_id}} +

+
+
+
Immobilisation
+
#{{$ligne_immo.immo_trans_id}} {{$ligne_immo.label}}{{if $ligne_immo.line_label != null && $ligne_immo.line_label != $ligne_immo.label}} — {{$ligne_immo.line_label}}{{/if}}
+
Montant
+
{{"%f"|math:$ligne_immo.montant|money_currency_html:false|raw}}
+
Date de l'écriture d'immobilisation
+
{{$ligne_immo.date_achat|date_short}}
+
+
+
Classement 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 @@ diff --git a/style.css b/style.css index fd5887b..6836da9 100644 --- a/style.css +++ b/style.css @@ -76,3 +76,7 @@ table.list tbody tr.ignored:nth-child(even) { font-style: italic; background: rgba(255, 255, 200, 0.5); } + +html.dialog.dark { + filter: none !important; +}
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}}