diff --git a/_amort_exclus.html b/_amort_exclus.html
new file mode 100644
index 0000000..00f1b91
--- /dev/null
+++ b/_amort_exclus.html
@@ -0,0 +1,69 @@
+{{* -*- brindille -*- *}}
+
+{{*
+ Trouver les lignes d'amortissement et d'immobilisation qui sont dans la même écriture
+ - param : aucun
+ - résultat : amort_exclus = tableau des amortissements à exclure
+ *}}
+
+{{* lignes des immo non amorties *}}
+{{#load type="immo" where="$$.noamort = true"}}
+ {{:assign var="lines." value="'%s'"|args:$line}}
+{{/load}}
+{{:assign lines=$lines|implode:","}}
+{{:assign lines="("|cat:$lines|cat:")"}}
+{{:assign condition="line.id IN %s"|args:$lines}}
+{{*:debug condition=$condition*}}
+
+{{* écritures et comptes associés *}}
+{{#select
+ line.id as line_id,
+ line.id_transaction as trans_id,
+ account.id as account_id,
+ account.code as account_code,
+ account.id_chart as id_chart
+ FROM acc_transactions_lines AS line
+ INNER JOIN acc_transactions AS trans on trans.id = line.id_transaction
+ 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;
+ !condition=$condition
+ assign="ecriture"
+}}
+ {{:assign var="ecritures." value="'%s'"|args:$trans_id}}
+ {{* déterminer le numéro du compte d'amortissement associé au compte d'immobilisation *}}
+ {{:include
+ file="./_get_amort_code.html"
+ code_immo=$account_code
+ keep="code_amort"
+ }}
+ {{:assign var="accounts." value="'%s'"|args:$code_amort}}
+{{/select}}
+{{*:debug ecritures=$ecritures accounts=$accounts*}}
+
+{{* écritures d'amortissement avec :
+ - numéro d'écritures obtenus ci-dessus
+ - numéros de comptes d'amortissement déduits des comptes d'immo ci-dessus
+*}}
+
+{{:assign ecritures=$ecritures|implode:","}}
+{{:assign ecritures="("|cat:$ecritures|cat:")"}}
+{{:assign accounts=$accounts|implode:","}}
+{{:assign accounts="("|cat:$accounts|cat:")"}}
+{{:assign condition="line.id_transaction IN %s AND account.code IN %s"|args:$ecritures:$accounts}}
+
+{{#select
+ line.id as line_id,
+ line.id_transaction as trans_id,
+ account.id as account_id,
+ account.code as account_code
+ FROM acc_transactions_lines AS line
+ INNER JOIN acc_transactions AS trans on trans.id = line.id_transaction
+ 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;
+ !condition=$condition
+ assign="amort"
+}}
+ {{:assign var="amort_exclus." value=$trans_id}}
+{{/select}}
diff --git a/_get_amort_code.html b/_get_amort_code.html
new file mode 100644
index 0000000..ae59ca2
--- /dev/null
+++ b/_get_amort_code.html
@@ -0,0 +1,14 @@
+{{* -*- brindille -*- *}}
+
+{{*
+ déterminer le numéro du compte d'amortissement associé à un compte d'immobilisation
+ - param :
+ - code_immo : numéro du compte d'immobilisation
+ - résultat :
+ - code_amort : numéro du compte d'amortissement
+*}}
+
+{{:assign code_s=$code_immo|strval}}
+{{:assign ch1=$code_s|substr:0:1}}
+{{:assign reste=$code_s|substr:1}}
+{{:assign code_amort=$ch1|cat:"8"|cat:$reste}}
diff --git a/amortization.html b/amortization.html
index e2af8ff..59eb21d 100644
--- a/amortization.html
+++ b/amortization.html
@@ -229,6 +229,12 @@
{{/if}}
+{{* amortissement à exclure *}}
+{{:include
+ file="_amort_exclus.html"
+ keep="amort_exclus"
+}}
+
{{* Autres amortissements non rattachés *}}
{{#select
li.id as l_id,
@@ -257,7 +263,10 @@
:id_amort=$t_id
}}
{{else}}
- {{:assign var="autres_amortissements." value=$autre_amort}}
+ {{if $autre_amort.t_id|in:$amort_exclus}}
+ {{else}}
+ {{:assign var="autres_amortissements." value=$autre_amort}}
+ {{/if}}
{{/select}}
{{/select}}
diff --git a/save_amort.html b/save_amort.html
index 89d827d..c6ed1ea 100644
--- a/save_amort.html
+++ b/save_amort.html
@@ -43,11 +43,13 @@
{{:assign config_defaut=$config_json|json_decode}}
{{:assign var="prefix_array" value=$config_defaut.prefixes|keys}}
{{#foreach from=$prefix_array item="code"}}
- {{:assign code_s=$code|strval}}
- {{:assign ch1=$code_s|substr:0:1}}
- {{:assign reste=$code_s|substr:1}}
- {{:assign code=$ch1|cat:"8"|cat:$reste}}
- {{:assign var="amort_array." value=$code|intval}}
+ {{* déterminer le numéro du compte d'amortissement associé au compte d'immobilisation *}}
+ {{:include
+ file="./_get_amort_code.html"
+ code_immo=$code
+ keep="code_amort"
+ }}
+ {{:assign var="amort_array." value=$code_amort|intval}}
{{/foreach}}
{{:include
@@ -113,10 +115,12 @@
d'immobilisation => ajouter un 8 après le 2 de tête
*}}
{{#select code, label from acc_accounts where id = :id; :id=$_GET.account assign=amort_account}}{{/select}}
-{{:assign c1=$amort_account.code|substr:0:1}}
-{{:assign reste=$amort_account.code|substr:1}}
-{{:assign amort_code=$c1|cat:8|cat:$reste}}
-{{:assign var="credit_account.%s"|args:$amort_code value="%s — Amortissements "|args:$amort_code|cat:$amort_account.label}}
+{{:include
+ file="./_get_amort_code.html"
+ code_immo=$amort_account.code
+ keep="code_amort"
+}}
+{{:assign var="credit_account.%s"|args:$code_amort value="%s — Amortissements "|args:$code_amort|cat:$amort_account.label}}
{{#select
id,