diff --git a/README.md b/README.md
index 578af08..e771e69 100644
--- a/README.md
+++ b/README.md
@@ -4,14 +4,15 @@ Ce module permet de gérer les écritures d'amortissements pour les immobilisati
- lister les immobilisations
- ajouter une nouvelle immobilisation
-- lister les amortissements d'une immobilisation
+- lister les amortissements d'une immobilisation :
+ - amortissements déjà enregistrés
+ - amortissements à venir
+- associer une écriture d'amortissement à une immobilisation
- enregistrer un nouvel amortissement
-- incorporer d'anciennes immobilisations et leurs amortisements
## Installation
- télécharger [l'archive zip](https://link.infini.fr/amortissement)
- cliquer « Configuration » puis « Extensions »
- en bas de la page, cliquer « Importer un module »
- sélectionner l'archive téléchargée ci-dessus
-- activer le module
-
+- activer le module qui est maintenant présent dans la liste des extensions inactives
diff --git a/_archives.html b/_archives.html
index 7619bcb..8a8f8ad 100644
--- a/_archives.html
+++ b/_archives.html
@@ -1,226 +1,225 @@
{{* -*- brindille -*- *}}
{{* Liste des immobilisations sorties du bilan *}}
-
- Cet onglet liste les immobilisations sorties du bilan car elles ne
- sont plus utilisées dans l'association (vétusté, fin de vie,
- vente...).
+
+ Cette page liste les immobilisations sorties du bilan
{{:include file="_get_config.html" keep="module.config"}}
-{{if $module.table != null}}
+{{* 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)"}}
- {{* 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 status_condition="($$.status = 'archived')"}}
+{{: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 condition=$account_condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"|cat:$filter_condition}}
- {{:assign filter_condition=" ("}}
- {{#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=$account_condition|cat:" AND debit > 0 AND NOT (trans.status & 16) AND NOT "|cat:$filter_condition|cat:" AND "|cat:$status_condition}}
+
+
+
+
+
N°
+
Mise en service
+
Date sortie
+
Libellé
+
Montant
+
N° compte
+
Compte
+
+
+
+
- {{:assign total_cessions = 0}}
+ {{:assign nb_immo=0}}
+ {{:assign total_immo = 0}}
+ {{:assign total_cessions = 0}}
- {{#select
- trans.id as trans_id,
- 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.debit AS debit,
- account.id as account_id,
- account.code as account_code,
- account.label as account_label,
- info.id as immo_doc_id,
- $$.label as doc_label,
- $$.amount as doc_amount,
- $$.date_achat as doc_date_achat,
- $$.date_mes 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
- INNER JOIN !table AS info ON $$.line = line.id
- WHERE !condition
- ORDER BY trans.date DESC;
- !table=$module.table
- !condition=$condition
- assign="immo_line"
- }}
-
- {{:assign var="immo_line.date_mes" value=$doc_date_mes|or:$doc_date_achat|or:$trans_date}}
- {{:assign var="immo_line.montant_immo" value=$doc_amount|or:$debit}}
-
- {{* chercher le doc de sortie du bilan *}}
- {{:assign var="immo_line.exit_date" value=null}}
- {{#load type="exit_link" where="$$.immo_doc_id = :immo_doc_id" :immo_doc_id=$immo_doc_id}}
- {{:assign exit_line_id=$exit_line_id}}
- {{#select
- trans.date
- FROM acc_transactions_lines AS line
- INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id
- WHERE line.id = :exit_line_id;
- :exit_line_id=$exit_line_id
- }}
- {{:assign var="immo_line.exit_date" value=$date}}
- {{/select}}
- {{/load}}
-
- {{* déduire le montant des écritures liées à l'immo courante au crédit du même compte *}}
- {{:assign credit_immo=null}}
- {{:assign total_credits=0}}
- {{#load
- type="credit_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 total_credits="%d+%d"|math:$total_credits:$credit}}
- {{/select}}
- {{else}}
- {{:assign total_credits="%d+%d"|math:$total_credits:$amount}}
- {{/if}}
- {{/load}}
- {{:assign solde_immo="%d-%d"|math:$immo_line.montant_immo:$total_credits}}
- {{:assign var="montant" from="sommes_immo.%s"|args:$account_code}}
- {{:assign var="sommes_immo.%s"|args:$account_code value="%d+%d"|math:$montant:$immo_line.montant_immo}}
-
- {{* voir s'il y a une écriture de cession associée à cette immo *}}
{{#select
- trans.id as cession_id,
- trans.label,
- line.id as line_id,
- line.credit
- FROM acc_transactions_lines AS line
- INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id
- INNER JOIN !table AS cession_link ON json_extract(cession_link.document, '$.cession_line_id') = line.id
- INNER JOIN !table AS immo_doc ON json_extract(cession_link.document, '$.immo_doc_id') = immo_doc.id
- WHERE json_extract(immo_doc.document, '$.line') = :immo_line_id
- ;
- !table=$module.table
- :immo_line_id = $immo_line.immo_line_id
- assign="cession_line"
+ trans.id as trans_id,
+ 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.debit AS debit,
+ account.id as account_id,
+ account.code as account_code,
+ account.label as account_label
+ 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
+ WHERE !condition
+ ORDER BY trans.date DESC;
+ !condition=$condition
}}
- {{:assign var="montant" from="montant_cessions.%d"|args:$account_code}}
- {{:assign var="montant_cessions.%d"|args:$account_code value="%d+%d"|math:$montant:$credit}}
- {{:assign total_cessions="%d+%d"|math:$total_cessions:$credit}}
+
+ {{* voir si l'immo est prise en charge *}}
+ {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_line_id assign="info_immo"}}
+ {{:assign status=$status}}
+ {{else}}
+ {{:assign status=null}}
+ {{/load}}
+ {{if $status != "archived"}}
+ {{:continue}}
+ {{/if}}
+ {{:assign date_mes=$info_immo.date_mes|or:$trans_date}}
+ {{:assign montant_immo=$debit}}
+
+ {{* chercher le doc de sortie du bilan *}}
+ {{:assign exit_date=null}}
+ {{#load type="exit_link" where="$$.immo_doc_id = :immo_doc_id" :immo_doc_id=$info_immo.id}}
+ {{:assign exit_line_id=$exit_line_id}}
+ {{#select
+ trans.date
+ FROM acc_transactions_lines AS line
+ INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id
+ WHERE line.id = :exit_line_id;
+ :exit_line_id=$exit_line_id
+ }}
+ {{:assign exit_date=$date}}
+ {{/select}}
+ {{/load}}
+
+ {{* déduire le montant des écritures liées à l'immo courante au crédit du même compte *}}
+ {{:assign credit_immo=null}}
+ {{:assign total_credits=0}}
+ {{#load
+ type="credit_link"
+ where="$$.immo_doc_id = :immo_doc_id" :immo_doc_id = $info_immo.id
+ }}
+ {{if $amount == null}}
+ {{#select credit FROM acc_transactions_lines WHERE id = :credit_line_id;
+ :credit_line_id=$credit_line_id
+ }}
+ {{:assign total_credits="%d+%d"|math:$total_credits:$credit}}
+ {{/select}}
+ {{else}}
+ {{:assign total_credits="%d+%d"|math:$total_credits:$amount}}
+ {{/if}}
+ {{/load}}
+ {{:assign solde_immo="%d-%d"|math:$montant_immo:$total_credits}}
+
+ {{if $solde_immo == 0}}
+ {{:assign status="archived"}}
+ {{/if}}
+
+ {{if $status != "archived"}}
+ {{:continue}}
+ {{/if}}
+
+ {{: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}}
+ {{: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}}
+
+ {{* voir s'il y a une écriture de cession associée à cette immo *}}
+ {{#select
+ trans.id,
+ line.debit
+ 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 (link.id_transaction = :trans_id OR link.id_related = :trans_id) AND acc.code = 462
+ ;
+ :trans_id = $trans_id
+ }}
+ {{:assign var="montant" from="montant_cessions.%d"|args:$account_code}}
+ {{:assign var="montant_cessions.%d"|args:$account_code value="%d+%d"|math:$montant:$debit}}
+ {{:assign total_cessions="%d+%d"|math:$total_cessions:$debit}}
+ {{/select}}
+
+
-{{/if}}
+
diff --git a/_calcul_dates.html b/_calcul_dates.html
index ef868de..e4dd864 100644
--- a/_calcul_dates.html
+++ b/_calcul_dates.html
@@ -9,4 +9,4 @@
{{:assign ts_debut=$date_debut|strtotime}}
{{:assign ts_fin=$date_fin|strtotime}}
-{{:assign nbjours="round(1+abs(%d-%d)/(60*60*24), 0)"|math:$ts_fin:$ts_debut}}
+{{:assign nbjours="1+abs(%d-%d)/(60*60*24)"|math:$ts_fin:$ts_debut}}
diff --git a/_common_attach.html b/_common_attach.html
deleted file mode 100644
index 728ee1f..0000000
--- a/_common_attach.html
+++ /dev/null
@@ -1,37 +0,0 @@
-{{* -*- brindille -*- *}}
-
-{{*
- Enregistrer l'association entre une ligne d'immo et une autre ligne (amort, credit, cession, sortie)
- @param immo_doc_id : id du doc associé à la ligne d'immobilisation
- @param trans_id : id de l'écriture à attacher
-*}}
-{{* données de l'immobilisation *}}
-{{:include file="_get_immo_data.html" immo_doc_id=$immo_doc_id|intval keep="ligne_immo, message"}}
-{{if $message != null}}
- {{:error message=$message}}
-{{/if}}
-
-{{* chercher les liaisons de l'écriture d'immobilisation *}}
-{{#select
- CASE links.id_related = :immo_trans_id
- WHEN true THEN links.id_transaction
- WHEN false THEN links.id_related
- END as linked_id
- FROM acc_transactions_links as links
- WHERE id_transaction = :immo_trans_id or id_related = :immo_trans_id;
- :immo_trans_id = $ligne_immo.trans_id
-}}
- {{:assign var="linked_transactions." value=$linked_id}}
-{{/select}}
-
-{{* ajouter la nouvelle liaison *}}
-{{:assign var="linked_transactions." value=$trans_id}}
-{{* Enregistrer les liaisons *}}
-{{:api
- method="POST"
- path="accounting/transaction/%s/transactions"|args:$ligne_immo.trans_id
- assign="result"
- assign_code="result_code"
- transactions=$linked_transactions
-}}
-
diff --git a/_common_detach.html b/_common_detach.html
index e7b6c7a..b4e80d0 100644
--- a/_common_detach.html
+++ b/_common_detach.html
@@ -1,13 +1,12 @@
{{* -*- brindille -*- *}}
{{*
- Supprimer l'association entre une ligne d'immo et une autre ligne (amort, credit, cession, sortie)
+ Supprimer l'association entre deux lignes
@param immo_doc_id : id du doc associé à la ligne d'immobilisation
@param line_id : id de la ligne à détacher
*}}
-
{{* données de l'immobilisation *}}
-{{:include file="_get_immo_data.html" immo_doc_id=$immo_doc_id|intval keep="info_immo, ligne_immo, message"}}
+{{:include file="_get_immo_data.html" immo_doc_id=$immo_doc_id|intval keep="ligne_immo, message"}}
{{if $message != null}}
{{:error message=$message}}
{{/if}}
@@ -17,7 +16,7 @@
id_transaction
FROM acc_transactions_lines
WHERE id = :line_id;
- :line_id = $line_id
+ :line_id = $line_id|intval
}}
{{:assign trans_id=$id_transaction}}
{{else}}
diff --git a/_compare_version.tpl b/_compare_version.tpl
deleted file mode 100644
index 88d8a40..0000000
--- a/_compare_version.tpl
+++ /dev/null
@@ -1,34 +0,0 @@
-{{* -*- brindille -*- *}}
-
-{{*
- Comparer deux numéros de version n1.n2[.n3]
- @param nv1
- @param nv2
- @result comp : -1 si nv1 < nv2, 0 si nv1 = nv2, 1 si nv1 > nv2
-*}}
-
-{{:assign nv1=$nv1|cat:"."}}
-{{:assign nv2=$nv2|cat:"."}}
-{{:assign var="tv1" value=$nv1|explode:"."}}
-{{:assign var="tv2" value=$nv2|explode:"."}}
-
-{{:assign comp=0}}
-{{:assign i=0}}
-{{#foreach from=$tv1 item="e1"}}
- {{:assign var="e2" from="tv2.%d"|args:$i}}
- {{if $e1 < $e2}}
- {{:assign comp=-1}}
- {{:break}}
- {{elseif $e1 > $e2}}
- {{:assign comp=1}}
- {{:break}}
- {{/if}}
- {{:assign i="%d+1"|math:$i}}
-{{/foreach}}
-{{*
- cas où le premier tableau a moins d'éléments que le 2ème
- et où les éléments présents dans les deux tableaux sont identiques
- *}}
-{{if $comp == 0 && $tv1|count < $tv2|count}}
- {{:assign comp = -1}}
-{{/if}}
diff --git a/_get_amort_lines.html b/_get_amort_lines.html
index dd115e8..a985fa2 100644
--- a/_get_amort_lines.html
+++ b/_get_amort_lines.html
@@ -5,7 +5,6 @@
@param immo_doc_id : id du doc associé à l'immobilisation
@result linked_amort : lignes d'amortissement liées à la ligne d'immobilisation
@result total_amort : montant total des amortissements de l'immobilisation
- @result created_amort : vrai s'il y a au moins un amortissement créé par le module dans la liste
*}}
{{:assign total_amort=0}}
@@ -34,10 +33,6 @@
assign="amort_line"
}}
{{:assign var="amort_line.amount" value=$amort_info.amount|or:$amort_line.amount}}
- {{if $amort_info.created}}
- {{:assign var="amort_line.created" value=true}}
- {{:assign var="created_amort" value=true}}
- {{/if}}
{{:assign var="linked_amort.%s_%d"|args:$amort_line.date:$amort_info.id value=$amort_line}}
{{:assign total_amort="%d+%d"|math:$total_amort:$amort_line.amount}}
{{/select}}
diff --git a/_get_free_amort.html b/_get_free_amort.html
index b3b142f..a3373a4 100644
--- a/_get_free_amort.html
+++ b/_get_free_amort.html
@@ -2,7 +2,7 @@
{{*
lister les amortissement non rattachés à une immo
- @param condition
+ @param filter_condition
*}}
{{#select
line.id as line_id,
@@ -18,9 +18,9 @@
FROM acc_transactions_lines AS line
INNER JOIN acc_accounts AS account ON account.id = line.id_account
INNER JOIN acc_transactions AS trans ON trans.id = line.id_transaction
- WHERE credit > 0 AND (NOT trans.status & 16) AND !condition
+ WHERE account.code LIKE "28%" AND credit > 0 AND (NOT trans.status & 16) AND !filter_condition
ORDER BY trans.date, trans.label;
- !condition=$condition
+ !filter_condition=$filter_condition
assign="amort_line"
}}
{{* voir s'il existe des lignes d'immo liées à cette ligne d'amortissement *}}
@@ -41,7 +41,6 @@
{{* pas de ligne d'immo liée à cette ligne d'amort => garder cette ligne d'amortissement *}}
{{/load}}
{{if $keep_amort && $amort_amount < $amort_line.amount}}
- {{:assign var="amort_line.amount" value="%d-%d"|math:$amort_line.amount:$amort_amount}}
{{:assign var="free_amort_lines." value=$amort_line}}
{{/if}}
{{/select}}
diff --git a/_immobilisations.html b/_immobilisations.html
index cc0fc76..e78fbfd 100644
--- a/_immobilisations.html
+++ b/_immobilisations.html
@@ -4,177 +4,172 @@
{{:include file="_get_config.html" keep="module.config"}}
-
+
{{if $type_immo == "managed"}}
- Cet onglet liste les immobilisations en cours d'amortissement.
+ Cette page liste les immobilisations en cours d'amortissement
{{elseif $type_immo == "amortized"}}
- Cet onglet liste les
- immobilisations dont l'amortissement est terminé mais qui sont
- encore utilisées dans l'association, donc encore présentes au
- bilan.
+ Cette page liste les immobilisations dont l'amortissement est terminé
{{/if}}
{{if $module.table != null}}
- {{* 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 status_condition="($$.status = 'managed' OR $$.status = 'amortized')"}}
- {{:assign condition=$account_condition|cat:" AND line.debit > 0 AND "|cat:$status_condition}}
+
+
+
+
N°
+
Date
+
Libellé
+
Montant
+
Durée
+
Amortissements
+
Valeur nette
+
N° compte
+
+
+
+
- {{#select
- trans.id as immo_trans_id,
- trans.label as trans_label,
- trans.date as trans_date,
- line.id as immo_line_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,
- 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
- INNER JOIN !table AS info ON $$.line = line.id
- WHERE !condition
- ORDER BY COALESCE(doc_date_achat, trans_date) DESC;
- !table=$module.table
- !condition=$condition
- assign="immo_line"
- }}
- {{:assign montant_immo=$doc_amount|or:$debit}}
- {{* déduire le montant des écritures liées à l'immo courante au crédit du même compte *}}
- {{#load
- type="credit_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
+ {{* 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 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}}
+ {{#select
+ trans.id as immo_trans_id,
+ trans.label as trans_label,
+ trans.date as trans_date,
+ line.id as immo_line_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,
+ 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
+ INNER JOIN !table AS info ON $$.line = line.id
+ WHERE !condition
+ 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 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}}
+
+ {{* déduire le montant des écritures liées à l'immo courante au crédit du même compte *}}
+ {{#load
+ type="credit_link"
+ where="$$.immo_doc_id = :immo_doc_id" :immo_doc_id = $immo_doc_id
}}
- {{:assign montant_immo="%d-%d"|math:$montant_immo:$credit}}
- {{/select}}
- {{else}}
- {{:assign montant_immo="%d-%d"|math:$montant_immo:$amount}}
- {{/if}}
- {{/load}}
-
- {{if $montant_immo == 0}}
- {{* Immobilisation soldée *}}
- {{:continue}}
- {{else}}
- {{:assign var="immo_line.montant_immo" value=$montant_immo}}
- {{/if}}
-
- {{* montant des amortissements liés à l'immobilisation *}}
- {{:include file="./_get_amort_lines.html" immo_doc_id=$immo_doc_id keep="total_amort"}}
- {{:assign amort_amount=$total_amort}}
-
- {{* classement par onglet *}}
- {{if $type_immo == "managed" && $amort_amount >= $montant_immo}}{{:continue}}{{/if}}
- {{if $type_immo == "amortized" && $amort_amount < $montant_immo}}{{:continue}}{{/if}}
- {{:assign var="immo_line.amort_amount" value=$amort_amount}}
-
- {{:assign var="immo_lines." value=$immo_line}}
- {{/select}}
-
- {{if $immo_lines|count > 0}}
-
{{/if}}
diff --git a/_immobilisations_autres.html b/_immobilisations_autres.html
index 0dca07d..bacef59 100644
--- a/_immobilisations_autres.html
+++ b/_immobilisations_autres.html
@@ -3,11 +3,10 @@
{{* Liste des immobilisations non gérées ou non entièrement affectées *}}
{{:include file="_get_config.html" keep="module.config"}}
-
- Cet onglet liste les immobilisations créées en dehors du module et
- pas encore prises en charge par le module ou les écritures de la
- balance d'ouverture initiale dont le montant n'est pas encore
- totalement affecté
+
+ Cette page liste les immobilisations pas encore prises en charge
+ par le module ou les écritures de la balance d'ouverture initiale
+ dont le montant n'est pas encore totalement affecté
{{:assign saved_hides=$module.config.hides}}
@@ -33,7 +32,7 @@
{{if $module.table != null}}
{{:assign columns="$$.status as status, SUM($$.amount) as amount,"}}
{{:assign table_join="LEFT JOIN !table AS info ON $$.line = line.id"}}
- {{:assign doc_condition="($$.status IS NULL OR $$.status == 'managed' OR $$.status == 'ignored' OR $$.status == 'amortized')"}}
+ {{:assign doc_condition="($$.status IS NULL OR $$.status == 'managed' OR $$.status == 'ignored')"}}
{{else}}
{{:assign columns=""}}
{{:assign table_join=""}}
@@ -50,9 +49,24 @@
{{:assign account_condition=$account_condition|cat:" account.code LIKE "|cat:$code|cat:" OR "}}
{{/foreach}}
{{:assign account_condition=$account_condition|cat:"0)"}}
-{{:assign condition=$account_condition|cat:" AND debit > 0 AND NOT (trans.status & 16) AND "|cat:$doc_condition}}
+{{if $unhide == null}}
+ {{: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)"}}
+{{else}}
+ {{:assign filter_condition="1"}}
+{{/if}}
+
+{{:assign condition=$account_condition|cat:" AND debit > 0 AND NOT (trans.status & 16) AND "|cat:$filter_condition|cat:" AND "|cat:$doc_condition}}
+
+{{:assign nb_managed=0}}
{{:assign nb_ignored=0}}
+{{:assign nb_null=0}}
+{{:assign nb_other=0}}
{{#select
trans.id as immo_trans_id,
trans.label as trans_label,
@@ -72,92 +86,99 @@
!table_join
WHERE !condition
GROUP BY immo_line_id
- ORDER BY trans.date;
+ ORDER BY trans.date DESC;
!columns=$columns
!table_join=$table_join
!table=$module.table
!condition=$condition
assign="immo_line"
-}}
+ }}
+ {{*
+ parmi les immos gérées, ne conserver que celles dont le montant dans le doc est non nul
+ et inférieur au montant de l'écriture d'immo
+ *}}
{{if $immo_line.status == 'managed'}}
{{if $immo_line.amount == null || $immo_line.amount == 0 || $immo_line.amount == $immo_line.debit}}
{{:continue}}
{{/if}}
{{/if}}
-
- {{if $immo_line.status == 'ignored'}}
+ {{if $status == null}}
+ {{:assign nb_null="%d+1"|math:$nb_null}}
+ {{elseif $status == 'managed'}}
+ {{:assign nb_managed="%d+1"|math:$nb_managed}}
+ {{elseif $status == 'ignored'}}
{{:assign nb_ignored="%d+1"|math:$nb_ignored}}
+ {{else}}
+ {{:assign nb_other="%d+1"|math:$nb_other}}
{{/if}}
- {{if $unhide == null && $immo_line.status == "ignored"}}
- {{:continue}}
- {{/if}}
-
- {{* vérifier si le libellé aurait pu être filtré *}}
- {{#foreach from=$module.config.filters item="filter"}}
- {{if $trans_label|strpos:$filter !== false}}
- {{:assign var="immo_line.status" value="ignored"}}
- {{:assign nb_ignored="%d+1"|math:$nb_ignored}}
- {{/if}}
- {{/foreach}}
-
- {{if $unhide == null && $immo_line.status == "ignored"}}
- {{:continue}}
- {{/if}}
{{:assign var="immo_lines." value=$immo_line}}
{{/select}}
+{{*:debug lines=$immo_lines nb_lines=$immo_lines|count nb_null=$nb_null nb_managed=$nb_managed nb_ignored=$nb_ignored nb_other=$nb_other unhide=$unhide*}}
-{{if $nb_ignored > 0}}
-
-{{/if}}
+
{{if $immo_lines|count > 0}}
-