diff --git a/_common_attach.html b/_common_attach.html
new file mode 100644
index 0000000..f89b81f
--- /dev/null
+++ b/_common_attach.html
@@ -0,0 +1,39 @@
+{{* -*- 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}}
+{{:debug immo_doc_id=$immo_doc_id trans_id=$trans_id linked_transactions=$linked_transactions}}
+
+{{* ajouter la nouvelle liaison *}}
+{{:assign var="linked_transactions." value=$trans_id}}
+{{:debug ligne_immo=$ligne_immo linked_transactions=$linked_transactions}}
+{{* 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/attach_amort.html b/attach_amort.html
index adf9e5c..5c2951c 100644
--- a/attach_amort.html
+++ b/attach_amort.html
@@ -93,28 +93,8 @@
{{:error message="Le montant de l'amortissement (%s) dépasse la valeur résiduelle de l'immobilisation (%s)"|args:$ma:$vnc}}
{{/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=$amort_line.trans_id}}
- {{:api
- method="POST"
- path="accounting/transaction/%s/transactions"|args:$ligne_immo.trans_id
- assign="result"
- assign_code="result_code"
- transactions=$linked_transactions
- }}
+ {{* Lier l'écriture d'amortissement à l'écriture d'immobilisation *}}
+ {{:include file="_common_attach.html" immo_doc_id=$_GET.immo_doc_id trans_id=$amort_line.trans_id}}
{{* vérifier si cette liaison est déjà présente dans les documents pour éviter les doublons *}}
{{* TODO voir si nécessaire ? *}}
@@ -134,7 +114,7 @@
}}
{{/load}}
- {{* immo soldée ? *}}
+ {{* À VÉRIFIER immo soldée ? *}}
{{if $total_amort == $montant_immo}}
{{:assign status="amortized"}}
{{:save
diff --git a/attach_cession.html b/attach_cession.html
index 008a4b0..8ffe851 100644
--- a/attach_cession.html
+++ b/attach_cession.html
@@ -20,35 +20,13 @@
WHERE id = :line_id;
:line_id = $_GET.cession_line_id|intval
}}
- {{:assign rebut_id=$id_transaction}}
+ {{:assign cession_id=$id_transaction}}
{{else}}
{{:error message="Impossible de trouver l'écriture de cession de l'immobilisation"}}
{{/select}}
-{{* 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=$rebut_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
-}}
+{{* Lier l'écriture de cession à l'écriture d'immobilisation *}}
+{{:include file="_common_attach.html" immo_doc_id=$_GET.immo_doc_id trans_id=$cession_id}}
{{* enregistrer la liaison de l'écriture de cession *}}
{{:save
diff --git a/attach_credit.html b/attach_credit.html
index 5028718..1249328 100644
--- a/attach_credit.html
+++ b/attach_credit.html
@@ -79,30 +79,8 @@
{{/if}}
{{/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=$credit_line.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
-}}
+ {{* Lier l'écriture de crédit à l'écriture d'immobilisation *}}
+ {{:include file="_common_attach.html" immo_doc_id=$_GET.immo_doc_id trans_id=$credit_line.trans_id}}
{{*
TODO ? vérifier le succès avant d'enregistrer le doc ?
@@ -117,18 +95,19 @@
amount=$saved_credit
}}
+ {{*
{{if $montant_credit == $solde_immo}}
{{:save
id=$_GET.immo_doc_id
status="archived"
}}
{{/if}}
+*}}
{{if $_GET.from == "exit"}}
{{:redirect force="exit_step1.html?immo_doc_id=%s&ok=1&msg=attach_avoir"|args:$_GET.immo_doc_id}}
{{else}}
{{:redirect force="details_immo.html?immo_doc_id=%s&ok=1&msg=attach_credit"|args:$_GET.immo_doc_id}}
- {{*:redirect force="amortization.html?immo_doc_id=%s&ok=1&msg=attach_avoir"|args:$_GET.immo_doc_id*}}
{{/if}}
{{/form}}
diff --git a/attach_exit.html b/attach_exit.html
index d639722..2dda568 100644
--- a/attach_exit.html
+++ b/attach_exit.html
@@ -25,30 +25,8 @@
{{:error message="Impossible de trouver l'écriture de sortie d'immobilisation"}}
{{/select}}
-{{* 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=$rebut_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
-}}
+{{* Lier l'écriture de sortie à l'écriture d'immobilisation *}}
+{{:include file="_common_attach.html" immo_doc_id=$_GET.immo_doc_id trans_id=$rebut_id}}
{{* enregistrer la liaison de l'écriture de sortie *}}
{{:save