Mutualisation liaison écritures

This commit is contained in:
Jean-Christophe Engel 2026-06-09 10:44:14 +02:00
parent 6f2750d248
commit 0cf2a3f7e9
5 changed files with 51 additions and 97 deletions

39
_common_attach.html Normal file
View file

@ -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
}}

View file

@ -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}} {{:error message="Le montant de l'amortissement (%s) dépasse la valeur résiduelle de l'immobilisation (%s)"|args:$ma:$vnc}}
{{/if}} {{/if}}
{{* chercher les liaisons de l'écriture d'immobilisation *}} {{* Lier l'écriture d'amortissement à l'écriture d'immobilisation *}}
{{#select {{:include file="_common_attach.html" immo_doc_id=$_GET.immo_doc_id trans_id=$amort_line.trans_id}}
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
}}
{{* vérifier si cette liaison est déjà présente dans les documents pour éviter les doublons *}} {{* vérifier si cette liaison est déjà présente dans les documents pour éviter les doublons *}}
{{* TODO voir si nécessaire ? *}} {{* TODO voir si nécessaire ? *}}
@ -134,7 +114,7 @@
}} }}
{{/load}} {{/load}}
{{* immo soldée ? *}} {{* À VÉRIFIER immo soldée ? *}}
{{if $total_amort == $montant_immo}} {{if $total_amort == $montant_immo}}
{{:assign status="amortized"}} {{:assign status="amortized"}}
{{:save {{:save

View file

@ -20,35 +20,13 @@
WHERE id = :line_id; WHERE id = :line_id;
:line_id = $_GET.cession_line_id|intval :line_id = $_GET.cession_line_id|intval
}} }}
{{:assign rebut_id=$id_transaction}} {{:assign cession_id=$id_transaction}}
{{else}} {{else}}
{{:error message="Impossible de trouver l'écriture de cession de l'immobilisation"}} {{:error message="Impossible de trouver l'écriture de cession de l'immobilisation"}}
{{/select}} {{/select}}
{{* chercher les liaisons de l'écriture d'immobilisation *}} {{* Lier l'écriture de cession à l'écriture d'immobilisation *}}
{{#select {{:include file="_common_attach.html" immo_doc_id=$_GET.immo_doc_id trans_id=$cession_id}}
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
}}
{{* enregistrer la liaison de l'écriture de cession *}} {{* enregistrer la liaison de l'écriture de cession *}}
{{:save {{:save

View file

@ -79,30 +79,8 @@
{{/if}} {{/if}}
{{/if}} {{/if}}
{{* chercher les liaisons de l'écriture d'immobilisation *}} {{* Lier l'écriture de crédit à l'écriture d'immobilisation *}}
{{#select {{:include file="_common_attach.html" immo_doc_id=$_GET.immo_doc_id trans_id=$credit_line.trans_id}}
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
}}
{{* {{*
TODO ? vérifier le succès avant d'enregistrer le doc ? TODO ? vérifier le succès avant d'enregistrer le doc ?
@ -117,18 +95,19 @@
amount=$saved_credit amount=$saved_credit
}} }}
{{*
{{if $montant_credit == $solde_immo}} {{if $montant_credit == $solde_immo}}
{{:save {{:save
id=$_GET.immo_doc_id id=$_GET.immo_doc_id
status="archived" status="archived"
}} }}
{{/if}} {{/if}}
*}}
{{if $_GET.from == "exit"}} {{if $_GET.from == "exit"}}
{{:redirect force="exit_step1.html?immo_doc_id=%s&ok=1&msg=attach_avoir"|args:$_GET.immo_doc_id}} {{:redirect force="exit_step1.html?immo_doc_id=%s&ok=1&msg=attach_avoir"|args:$_GET.immo_doc_id}}
{{else}} {{else}}
{{:redirect force="details_immo.html?immo_doc_id=%s&ok=1&msg=attach_credit"|args:$_GET.immo_doc_id}} {{: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}} {{/if}}
{{/form}} {{/form}}

View file

@ -25,30 +25,8 @@
{{:error message="Impossible de trouver l'écriture de sortie d'immobilisation"}} {{:error message="Impossible de trouver l'écriture de sortie d'immobilisation"}}
{{/select}} {{/select}}
{{* chercher les liaisons de l'écriture d'immobilisation *}} {{* Lier l'écriture de sortie à l'écriture d'immobilisation *}}
{{#select {{:include file="_common_attach.html" immo_doc_id=$_GET.immo_doc_id trans_id=$rebut_id}}
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
}}
{{* enregistrer la liaison de l'écriture de sortie *}} {{* enregistrer la liaison de l'écriture de sortie *}}
{{:save {{:save