From 0cf2a3f7e9f5ea7259926ef97735b0a5b2d83fa2 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 9 Jun 2026 10:44:14 +0200 Subject: [PATCH 01/10] =?UTF-8?q?Mutualisation=20liaison=20=C3=A9critures?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _common_attach.html | 39 +++++++++++++++++++++++++++++++++++++++ attach_amort.html | 26 +++----------------------- attach_cession.html | 28 +++------------------------- attach_credit.html | 29 ++++------------------------- attach_exit.html | 26 ++------------------------ 5 files changed, 51 insertions(+), 97 deletions(-) create mode 100644 _common_attach.html 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 From 420b91265ce16c1c13d0ee2fcc306c0a711bd3aa Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 10 Jun 2026 10:46:10 +0200 Subject: [PATCH 02/10] =?UTF-8?q?Ajout=20info=20cr=C3=A9ation=20nouvelle?= =?UTF-8?q?=20immobilisation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- add_asset.html | 19 ++++++++----------- add_infos.html | 4 ++-- schema.json => asset.schema.json | 5 +++++ ignore.html | 2 +- modify_infos.html | 2 +- transfer.html | 2 +- 6 files changed, 18 insertions(+), 16 deletions(-) rename schema.json => asset.schema.json (85%) diff --git a/add_asset.html b/add_asset.html index 97eeeb6..6dce231 100644 --- a/add_asset.html +++ b/add_asset.html @@ -93,12 +93,7 @@ {{/if}} {{/foreach}} - {{if $status != "unfinished" && ! $_POST.amortir}} - {{* ne pas amortir *}} - {{:assign duration=0}} - {{:assign date_debut=$_POST.date_achat|parse_date}} - {{:assign status="ignored"}} - {{elseif $status != "unfinished"}} + {{if $status != "unfinished"}} {{* vérifier que la date d'acquisition est antérieure à la date de mise en service *}} {{:assign date_debut=$_POST.date_mes|or:$_POST.date_achat|parse_date}} {{if $date_debut|strtotime < $_POST.date_achat|parse_date|strtotime}} @@ -111,7 +106,7 @@ {{if $_POST.date_mes == null || $_POST.date_mes == $_POST.date_achat}} {{:assign date_mes=null}} {{else}} - {{:assign date_mes=$_POST.date_mes|date_short}} + {{:assign date_mes=$_POST.date_mes|parse_date}} {{/if}} {{/if}} @@ -142,18 +137,19 @@ {{* enregistrer les infos de l'immobilisation *}} {{:save key=$key - validate_schema="schema.json" + validate_schema="asset.schema.json" type="immo" line=$immo_line_id duration=$duration date_mes=$date_mes status=$status + created=true }} {{/if}} {{if $status == "unfinished"}} {{:assign type_immo="unfinished"}} - {{elseif $_POST.amortir}} + {{elseif $status == "managed"}} {{:assign type_immo="managed"}} {{else}} {{:assign type_immo="other"}} @@ -206,8 +202,9 @@ name="credit_account" label="Compte de décaissement" required=true - target="!acc/charts/accounts/selector.php?types=%s&id_year=%d"|args:"1|2|3|4":$selected_year + target="!acc/charts/accounts/selector.php?codes=%s&id_year=%d"|args:"512*|530*|404*":$selected_year }} +{{* target="!acc/charts/accounts/selector.php?types=%s&id_year=%d"|args:"1|2|3|4":$selected_year*}} {{:input type="list" name="debit_account" @@ -226,7 +223,7 @@
Amortissement
- {{:input id="amortir" type="checkbox" value=1 name="amortir" label="Amortir cette immobilisation sur une ou plusieurs années" checked="checked" help="Dé-cocher pour ne pas amortir"}} + {{*:input id="amortir" type="checkbox" value=1 name="amortir" label="Amortir cette immobilisation sur une ou plusieurs années" checked="checked" help="Dé-cocher pour ne pas amortir"*}}
{{:input type="number" name="duree" label="Durée d'amortissement" required=true min=0 default=1 suffix="année(s)"}} {{:input type="date" name="date_mes" label="Date de mise en service" help="C'est la date de première utilisation ; à renseigner uniquement si différente de la date d'acquisition"}} diff --git a/add_infos.html b/add_infos.html index d78097c..699888f 100644 --- a/add_infos.html +++ b/add_infos.html @@ -56,7 +56,7 @@ {{* immobilisation sortie du bilan *}} {{:save key=""|uuid - validate_schema="schema.json" + validate_schema="asset.schema.json" type="immo" line=$_GET.immo_line_id|intval duration=0 @@ -129,7 +129,7 @@ {{/if}} {{:save key=$key - validate_schema="schema.json" + validate_schema="asset.schema.json" type="immo" line=$_GET.immo_line_id|intval duration=$duration diff --git a/schema.json b/asset.schema.json similarity index 85% rename from schema.json rename to asset.schema.json index 23a924b..4391dd5 100644 --- a/schema.json +++ b/asset.schema.json @@ -1,5 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Donnée d'une immobilisation", "type": "object", "properties": { "type": { @@ -35,6 +36,10 @@ "status" : { "type" : ["string", "null"], "enum" : ["managed", "amortized", "archived", "ignored"] + }, + "created" : { + "description" : "vrai si immobilisation créée dans le module", + "type" : ["boolean", "null"] } }, "required": ["type", "line", "duration", "status"] diff --git a/ignore.html b/ignore.html index 96254fd..4c1b760 100644 --- a/ignore.html +++ b/ignore.html @@ -30,7 +30,7 @@ {{:assign status="ignored"}} {{:save key=""|uuid - validate_schema="schema.json" + validate_schema="asset.schema.json" type="immo" line=$_GET.immo_line_id|intval duration=$duration diff --git a/modify_infos.html b/modify_infos.html index 1b6d615..2486f45 100644 --- a/modify_infos.html +++ b/modify_infos.html @@ -151,7 +151,7 @@ {{* enregistrer les infos de l'immobilisation *}} {{:save key=$info_immo.key - validate_schema="schema.json" + validate_schema="asset.schema.json" type="immo" line=$info_immo.line duration=$duration diff --git a/transfer.html b/transfer.html index cb6643c..1cbce9c 100644 --- a/transfer.html +++ b/transfer.html @@ -175,7 +175,7 @@ {{* enregistrer les infos de l'immobilisation *}} {{:save key=""|uuid - validate_schema="schema.json" + validate_schema="asset.schema.json" type="immo" line=$immo_line_id duration=$duration From d6868c681305c434ab4796c9409174fef7bfadd8 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 10 Jun 2026 10:47:46 +0200 Subject: [PATCH 03/10] =?UTF-8?q?Inhibition=20s=C3=A9lecteurs=20comptes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- save_amort.html | 2 ++ write_exit.html | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/save_amort.html b/save_amort.html index 2b5c044..a891138 100644 --- a/save_amort.html +++ b/save_amort.html @@ -240,6 +240,7 @@ name="debit_account" label="Compte de débit" required=true + readonly=true target="!acc/charts/accounts/selector.php?codes=%s&id_year=%d"|args:"68*":$selected_year default=$debit_account }} @@ -248,6 +249,7 @@ name="credit_account" label="Compte d'amortissement (28xx)" required=true + readonly=true target="!acc/charts/accounts/selector.php?codes=%s&id_year=%d"|args:"28*":$selected_year default=$credit_account }} diff --git a/write_exit.html b/write_exit.html index abbf883..0a17d3b 100644 --- a/write_exit.html +++ b/write_exit.html @@ -392,6 +392,7 @@ type="list" name="comp_account" target="!acc/charts/accounts/selector.php?codes=%s&id_chart=%s"|args:"68*":$chart_id + readonly=true default=$comp_account }} @@ -404,6 +405,7 @@ type="list" name="amort_comp_account" target="!acc/charts/accounts/selector.php?codes=%s&id_chart=%s"|args:"28*":$chart_id + readonly=true default=$amort_account }} @@ -436,6 +438,7 @@ type="list" name="except_account" target="!acc/charts/accounts/selector.php?codes=%s&id_chart=%s"|args:"687*":$chart_id + readonly=true default=$except_account }} @@ -448,6 +451,7 @@ type="list" name="amort_except_account" target="!acc/charts/accounts/selector.php?codes=%s&id_chart=%s"|args:"28*":$chart_id + readonly=true default=$amort_account }} @@ -474,6 +478,7 @@ type="list" name="amort_sortie_account" target="!acc/charts/accounts/selector.php?codes=%s&id_chart=%s"|args:"28*":$chart_id + readonly=true default=$amort_account }} @@ -492,6 +497,7 @@ type="list" name="vnc_account" target="!acc/charts/accounts/selector.php?codes=%s*&id_chart=%s"|args:$vnc_code:$chart_id + readonly=true default=$vnc_account }} @@ -505,6 +511,7 @@ type="list" name="immo_account" target="!acc/charts/accounts/selector.php?codes=%s&id_chart=%s"|args:$patterns:$chart_id + readonly=true default=$immo_account }} @@ -531,6 +538,7 @@ type="list" name="creance_account" target="!acc/charts/accounts/selector.php?codes=%s&id_chart=%s"|args:"462*":$chart_id + readonly=true default=$creance_account }} @@ -543,6 +551,7 @@ type="list" name="cession_account" target="!acc/charts/accounts/selector.php?codes=%s*&id_chart=%s"|args:$cession_code:$chart_id + readonly=true default=$cession_account }} From 2acb6304b6ae8b63c13e2ed8dd6555810178bb2f Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 10 Jun 2026 10:58:33 +0200 Subject: [PATCH 04/10] =?UTF-8?q?Ne=20pas=20cr=C3=A9er=20d'immobilisation?= =?UTF-8?q?=20non=20amortissable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- add_asset.html | 8 -------- 1 file changed, 8 deletions(-) diff --git a/add_asset.html b/add_asset.html index 6dce231..8e18363 100644 --- a/add_asset.html +++ b/add_asset.html @@ -204,7 +204,6 @@ required=true target="!acc/charts/accounts/selector.php?codes=%s&id_year=%d"|args:"512*|530*|404*":$selected_year }} -{{* target="!acc/charts/accounts/selector.php?types=%s&id_year=%d"|args:"1|2|3|4":$selected_year*}} {{:input type="list" name="debit_account" @@ -223,7 +222,6 @@
Amortissement
- {{*:input id="amortir" type="checkbox" value=1 name="amortir" label="Amortir cette immobilisation sur une ou plusieurs années" checked="checked" help="Dé-cocher pour ne pas amortir"*}}
{{:input type="number" name="duree" label="Durée d'amortissement" required=true min=0 default=1 suffix="année(s)"}} {{:input type="date" name="date_mes" label="Date de mise en service" help="C'est la date de première utilisation ; à renseigner uniquement si différente de la date d'acquisition"}} @@ -245,13 +243,7 @@ function changeYear(evt, f_accounts = ['credit_account', 'debit_account'], f_yea setSelectorYear(f_accounts, f_years_select); } -function changeVisibility(evt, idcheck = 'f_amortir_1', iddiv = 'div_amort') -{ - toggleVisibility(idcheck, document.querySelectorAll('#' + iddiv)); -} - (function () { document.getElementById('f_id_year').onchange = changeYear; - document.getElementById('f_amortir_1').onclick = changeVisibility; })(); From 33c65388f95e27e50b5513a1f311fac309b82735 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 10 Jun 2026 11:16:01 +0200 Subject: [PATCH 05/10] =?UTF-8?q?Ajout=20info=20cr=C3=A9ation=20nouvel=20a?= =?UTF-8?q?mortissement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- link.schema.json | 8 ++++++-- save_amort.html | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/link.schema.json b/link.schema.json index 111d1bc..0160ff2 100644 --- a/link.schema.json +++ b/link.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "description": "Schéma des liens entre documents", + "description": "Schéma des liens entre écritures", "type": "object", "properties": { "type": { @@ -23,7 +23,7 @@ "exclusiveMinimum": 0 }, "exit_line_id": { - "description": "ligne d'amortissement de sortie du bilan de l'immobilisation", + "description": "ligne de sortie du bilan de l'immobilisation", "type": "integer", "exclusiveMinimum": 0 }, @@ -35,6 +35,10 @@ "amount": { "description": "montant de la ligne d'amortissement ou de crédit", "type": ["number", "null"] + }, + "created" : { + "description" : "vrai si amortissement créé dans le module", + "type" : ["boolean", "null"] } }, "required": ["type", "immo_doc_id"], diff --git a/save_amort.html b/save_amort.html index a891138..0886c08 100644 --- a/save_amort.html +++ b/save_amort.html @@ -185,6 +185,7 @@ type="amort_link" immo_doc_id=$_GET.immo_doc_id|intval amort_line_id=$line.id + created=true }} {{:break}} {{/if}} From 54603e9142a4875b76bbcb0fa82cb0adc20d05a6 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 10 Jun 2026 14:24:49 +0200 Subject: [PATCH 06/10] =?UTF-8?q?S=C3=A9paration=20amortissements=20=C3=A0?= =?UTF-8?q?=20rattacher=20en=20deux=20onglets=20(compte,=20tous)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _get_amort_lines.html | 5 ++++ _get_free_amort.html | 2 +- amortization.html | 16 +++++++---- other_amortizations.html | 60 +++++++++++++++++++++++----------------- 4 files changed, 51 insertions(+), 32 deletions(-) diff --git a/_get_amort_lines.html b/_get_amort_lines.html index a985fa2..dd115e8 100644 --- a/_get_amort_lines.html +++ b/_get_amort_lines.html @@ -5,6 +5,7 @@ @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}} @@ -33,6 +34,10 @@ 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 a3373a4..1e9809e 100644 --- a/_get_free_amort.html +++ b/_get_free_amort.html @@ -18,7 +18,7 @@ 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 account.code LIKE "28%" AND credit > 0 AND (NOT trans.status & 16) AND !filter_condition + WHERE credit > 0 AND (NOT trans.status & 16) AND !filter_condition ORDER BY trans.date, trans.label; !filter_condition=$filter_condition assign="amort_line" diff --git a/amortization.html b/amortization.html index 2613641..f80b761 100644 --- a/amortization.html +++ b/amortization.html @@ -38,12 +38,14 @@ {{/if}} {{* lister les amortissements liés à l'immobilisation *}} -{{:include file="./_get_amort_lines.html" immo_doc_id=$_GET.immo_doc_id keep="linked_amort, total_amort"}} +{{:include file="./_get_amort_lines.html" immo_doc_id=$_GET.immo_doc_id keep="linked_amort, total_amort, created_amort"}} {{:assign valeur_residuelle="%d-%d"|math:$valeur_residuelle:$total_amort}} {{if $valeur_residuelle > 0}} {{* lister les amortissements non attachés à une immo *}} - {{:include file="./_get_free_amort.html" filter_condition="1" keep="free_amort_lines"}} + {{:assign account_filter="28%"|quote_sql}} + {{:assign filter_condition="account.code LIKE "|cat:$account_filter}} + {{:include file="./_get_free_amort.html" filter_condition=$filter_condition keep="free_amort_lines"}} {{/if}} {{:admin_header title="Liste des amortissements" custom_css="./style.css" current="module_amortization"}} @@ -110,11 +112,11 @@
- +

-{{if $linked_immos != null}} - -{{/if}}
@@ -186,7 +156,24 @@
-

Amortissements enregistrés

+

Amortissements

+

+ {{if $free_amort_lines && ! $created_amort}} + {{:linkbutton + label="Attacher un amortissement" + title="Attacher un amortissement existant" + href="other_amortizations.html?immo_doc_id=%s&filter=true"|args:$_GET.immo_doc_id + shape="link" + target="_dialog"}} + {{/if}} + {{:linkbutton + label="Enregistrer un amortissement" + title="Enregistrer un nouvel amortissement" + href="save_amort.html?immo_doc_id=%s"|args:$_GET.immo_doc_id target="_dialog" + shape="plus" + }} +

+ {{if $linked_amort != null}}
@@ -243,5 +230,41 @@ {{if $linked_amort == null}}

Aucun amortissement enregistré pour cette immobilisation ; utilisez le bouton « Enregistrer un amortissement » pour enregistrer un nouvel amortissement

{{/if}} + +

Avoirs

+

+ {{if $total_amort == 0}} + {{:linkbutton label="Attacher une écriture d'avoir" href="link_immo.html?immo_doc_id=%s"|args:$_GET.immo_doc_id shape="link" target="_dialog"}} + {{/if}} +

+ +{{if $linked_immos != null}} +
+ + + + + + + + + {{#foreach from=$linked_immos item="line"}} + {{:assign url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$line.trans_id}} + + + + + + + + {{/foreach}} + +
DateLibelléMontant
#{{$line.trans_id}}{{$line.date|date_short}}{{$line.label}}{{"%f"|math:$line.amount|money_currency_html:false|raw}} + {{if $total_amort == 0}} + {{:linkbutton label="Détacher" href="detach_credit.html?immo_doc_id=%s&credit_line_id=%s"|args:$_GET.immo_doc_id:$line.credit_line_id shape="minus"}} + {{/if}} +
+{{/if}} + {{:form_errors}} {{:admin_footer}} diff --git a/attach_credit.html b/attach_credit.html index 1249328..721278d 100644 --- a/attach_credit.html +++ b/attach_credit.html @@ -107,7 +107,7 @@ {{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_credit"|args:$_GET.immo_doc_id}} {{/if}} {{/form}} diff --git a/detach_credit.html b/detach_credit.html index 1abc8d9..9665e85 100644 --- a/detach_credit.html +++ b/detach_credit.html @@ -18,15 +18,8 @@ {{:delete id=$id}} {{/load}} -{{* TODO : À VÉRIFIER *}} -{{:save - id=$_GET.immo_doc_id|intval - status="managed" -}} - {{if $_GET.from == "exit"}} {{:redirect force="exit_step1.html?immo_doc_id=%s&ok=1&msg=detach_avoir"|args:$_GET.immo_doc_id}} {{else}} - {{:redirect force="details_immo.html?immo_doc_id=%s&ok=1&msg=detach&"|args:$_GET.immo_doc_id}} - {{*:redirect force="amortization.html?immo_doc_id=%s&ok=1&msg=detach_avoir"|args:$_GET.immo_doc_id*}} + {{:redirect force="amortization.html?immo_doc_id=%s&ok=1&msg=detach_avoir"|args:$_GET.immo_doc_id}} {{/if}} diff --git a/details_immo.html b/details_immo.html deleted file mode 100644 index ca3d93b..0000000 --- a/details_immo.html +++ /dev/null @@ -1,145 +0,0 @@ -{{* -*- brindille -*- *}} - - -{{* - Afficher les détails d'une immmo - - permettre l'association d'une immo au crédit du compte de l'immo - - permettre de modifier les paramètres de l'immo - @param immo_doc_id : numéro du doc d'immo -*}} - -{{* données de l'immobilisation *}} -{{:include file="_get_immo_data.html" immo_doc_id=$_GET.immo_doc_id|intval keep="info_immo, ligne_immo, message"}} -{{if $message != null}} - {{:error message=$message}} -{{/if}} - -{{:assign var="info_immo.amount" value=$info_immo.amount|or:$ligne_immo.amount}} -{{:assign var="info_immo.date_achat" value=$info_immo.date_achat|or:$ligne_immo.date_achat}} -{{:assign var="info_immo.date_mes" value=$info_immo.date_mes|or:$info_immo.date_achat|or:$ligne_immo.date_achat}} -{{:assign var="info_immo.label" value=$info_immo.label|or:$ligne_immo.trans_label}} -{{if $ligne_immo.line_label != null && $ligne_immo.line_label != $info_immo.label}} - {{:assign var="info_immo.label" value=$info_immo.label|cat:" — "|cat:$ligne_immo.line_label}} -{{/if}} - -{{* déduire le montant des écritures liées à l'immo courante au crédit du même compte *}} -{{:include file="_get_credit_lines.html" immo_doc_id=$_GET.immo_doc_id keep="linked_immos, total_credits"}} -{{:assign solde="%d-%d"|math:$info_immo.amount:$total_credits}} - -{{* lister les amortissements liés à l'immobilisation *}} -{{:include file="./_get_amort_lines.html" immo_doc_id=$_GET.immo_doc_id keep="total_amort"}} - -{{:admin_header title="Détails de l'immobilisation" custom_css="./style.css" current="module_amortization"}} - -{{if ! $dialog}} - {{:assign subsubcurrent=null}} - {{if $total_amort == 0}} - {{:assign subsubcurrent="credit"}} - {{/if}} - {{:include file="_nav.html" current="index" subcurrent="details" subsubcurrent=$subsubcurrent}} -{{/if}} -{{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$ligne_immo.trans_id}} - -{{* - -*}} - -{{if $_GET.ok}} - {{if $_GET.msg|match:"attach_amort"}} - {{:assign msg="Écriture d'amortissement attachée"}} - {{elseif $_GET.msg|match:"attach_credit"}} - {{:assign msg="Écriture au crédit attachée"}} - {{elseif $_GET.msg|match:"info"}} - {{:assign msg="Données de l'immobilisation enregistrées"}} - {{elseif $_GET.msg|match:"detach"}} - {{:assign msg="Écriture au crédit détachée"}} - {{else}} - {{:assign msg="Opération effectuée avec succès"}} - {{/if}} -

{{$msg}}

-{{elseif $_GET.err}} - {{:assign msg="L'opération a échoué"}} -

{{$msg}}

-{{/if}} - -

- Immobilisation - #{{$ligne_immo.trans_id}} - {{$info_immo.label}} -

-{{if $linked_immos != null}} - -{{/if}} - -
-
-{{* -
Immobilisation
-
#{{$ligne_immo.trans_id}} {{$info_immo.label}}
-*}} -
Compte d'immobilisation
-
{{$ligne_immo.account_code}} — {{$ligne_immo.account_label}}
-
Date d'acquisition
-
{{$info_immo.date_achat|date_short}}
- {{if $info_immo.date_mes != null && $info_immo.date_mes != $info_immo.date_achat}} -
Date de mise en service
-
{{$info_immo.date_mes|date_short}}
- {{/if}} -
Durée d'amortissement
-
{{$info_immo.duration}} ans
-
Montant de l'immobilisation
-
{{"%f"|math:$info_immo.amount|money_currency_html:false|raw}}
- {{if $total_credits > 0}} -
Montant des avoirs
-
{{"%f"|math:$total_credits|money_currency_html:false|raw}}
-{{* -
Écritures d'avoir
-
- {{#foreach from=$linked_immos item="line"}} - {{:assign url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$line.id}} - #{{$line.id}} - {{/foreach}} -
-*}} -
Montant à amortir
-
{{"%f"|math:$solde|money_currency_html:false|raw}}
- {{/if}} - {{if $total_amort > 0}} -
Montant des amortissements
-
{{$total_amort|money_currency_html:false|raw}}
-
Valeur nette résiduelle
-
{{"%d-%d-%d"|math:$info_immo.amount:$total_credits:$total_amort|money_currency_html:false|raw}}
- {{/if}} -
-
From 65112720ba200828cd78329cb514964b8c63b08b Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 11 Jun 2026 09:44:45 +0200 Subject: [PATCH 08/10] =?UTF-8?q?Supprimer=20les=20documents=20sans=20?= =?UTF-8?q?=C3=A9criture=20associ=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _remove_orphan_docs.tpl | 28 ++++++++++++++++++++++++++++ index.html | 19 +++---------------- 2 files changed, 31 insertions(+), 16 deletions(-) create mode 100644 _remove_orphan_docs.tpl diff --git a/_remove_orphan_docs.tpl b/_remove_orphan_docs.tpl new file mode 100644 index 0000000..4799e33 --- /dev/null +++ b/_remove_orphan_docs.tpl @@ -0,0 +1,28 @@ +{{* -*- brindille -*- *}} + +{{* supprimer les documents sans écriture associée *}} +{{:assign var="docs." type="amort_link" field="amort_line_id"}} +{{:assign var="docs." type="credit_link" field="credit_line_id"}} +{{:assign var="docs." type="cession_link" field="cession_line_id"}} +{{:assign var="docs." type="exit_link" field="exit_line_id"}} +{{:assign var="docs." type="immo" field="line"}} + +{{#foreach from=$docs}} + + {{:assign join_field="$$."|cat:$field}} + {{:assign type_name=$type|quote_sql}} + {{:assign type_cond="$$.type"|cat:" = "|cat:$type_name}} + + {{#select + info.id + FROM !table AS info + LEFT JOIN acc_transactions_lines as line ON !join_field = line.id + WHERE !type_cond AND line.id IS NULL + ; + !table=$module.table + !type_cond = $type_cond + !join_field = $join_field + }} + {{:delete id=$id}} + {{/select}} +{{/foreach}} diff --git a/index.html b/index.html index 234de28..5007c48 100644 --- a/index.html +++ b/index.html @@ -19,7 +19,7 @@ {{:admin_header title="Immobilisations en cours de constitution" custom_css="./style.css" current="module_amortization" subcurrent="unfinished"}} {{/if}} -{{:include file="_nav.html" current="index" subcurrent="%s"|args:$type_immo}} +{{:include file="_nav.html" current="index" subcurrent=$type_immo}} {{if $_GET.ok}} {{if $_GET.msg|match:"immobilisation"}} @@ -34,21 +34,8 @@

Échec enregistrement immobilisation

{{/if}} -{{#load type="immo"}} - {{* supprimer les documents sans écriture associée *}} - {{#select - line.id as line_id - FROM acc_transactions_lines as line - WHERE line.id = :line_id; - :line_id = $line - }} - {{else}} - {{:delete key=$key}} - {{/select}} -{{/load}} - -{{* chercher des immos antérieures à la date de début du 1er exercice *}} -{{*:include file="_old_assets.html"*}} +{{* supprimer les documents sans écriture associée *}} +{{:include file="_remove_orphan_docs.tpl"}} {{if $type_immo == "other"}} {{:include file="_immobilisations_autres.html"}} From 6befac8578aec7e25729c0fffed7d561c0c3d559 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 11 Jun 2026 10:08:23 +0200 Subject: [PATCH 09/10] modify_info : ne pas permettre de rendre l'immo non amortissable --- modify_infos.html | 192 +++++++++++++++++----------------------------- 1 file changed, 69 insertions(+), 123 deletions(-) diff --git a/modify_infos.html b/modify_infos.html index 2486f45..f430bbd 100644 --- a/modify_infos.html +++ b/modify_infos.html @@ -2,13 +2,6 @@ {{* @param immo_doc_id - - TODO ? : - - séparer les cas des immo simples et complexes (BOI) - par exemple pour la durée d'amort par défaut {{:input ...}} - - prise en charge immo => param = immo_line_id - - modif param immo => param = immo_doc_id - - DONE possibilité supprimer liaison écriture avoir *}} {{:include file="_get_immo_data.html" immo_doc_id=$_GET.immo_doc_id|intval keep="info_immo, ligne_immo, message"}} @@ -39,77 +32,67 @@ {{* traiter la saisie *}} {{#form on="save"}} - {{if ! $_POST.amortir}} - {{* ne pas amortir *}} - {{:assign duration=0}} - {{:assign libelle=null}} - {{:assign montant=null}} - {{:assign date_achat=null}} - {{:assign date_mes=null}} - {{:assign status="ignored"}} - {{else}} - {{if $_POST.date_achat|parse_date > $ligne_immo.date_achat}} - {{:assign da=$ligne_immo.date_achat|date_short}} - {{:error message="Erreur : la date d'achat (%s) ne peut être postérieure à la date de l'écriture d'immobilisation (%s)"|args:$_POST.date_achat:$da}} - {{/if}} - - {{if $_POST.date_achat == null || $_POST.date_achat|parse_date == $info_immo.date_achat}} - {{:assign date_achat=$info_immo.date_achat}} - {{elseif $_POST.date_achat|parse_date == $ligne_immo.date_achat}} - {{:assign date_achat=null}} - {{else}} - {{:assign date_achat=$_POST.date_achat|parse_date}} - {{/if}} - - {{* TODO : simplifier ? *}} - {{if $_POST.date_mes == null || $_POST.date_mes|parse_date == $info_immo.date_mes}} - {{:assign date_mes=$info_immo.date_mes}} - {{elseif $_POST.date_mes|parse_date == $info_immo.date_achat}} - {{:assign date_mes=null}} - {{elseif $_POST.date_mes|parse_date == $ligne_immo.date_achat}} - {{if $info_immo.date_achat == null}} - {{:assign date_mes=null}} - {{else}} - {{:assign date_mes=$ligne_immo.date_achat}} - {{/if}} - {{else}} - {{:assign date_mes=$_POST.date_mes|parse_date}} - {{:assign date_achat_comp=$ligne_immo.date_achat}} - {{if $date_achat != null}} - {{:assign date_achat_comp=$date_achat}} - {{/if}} - {{if $date_mes < $date_achat_comp}} - {{:assign da=$date_achat_comp|date_short}} - {{:error message="Erreur : la date de mise en service (%s) ne peut être antérieure à la date d'acquisition (%s)"|args:$_POST.date_mes:$da}} - {{/if}} - {{/if}} - - {{:assign duration=$_POST.duree|intval}} - {{if $duration <= 0}} - {{:error message="Erreur : la durée d'amortissement doit être strictement positive"}} - {{/if}} - - {{if $_POST.libelle != $ligne_immo.line_label && $_POST.libelle != $ligne_immo.trans_label}} - {{:assign libelle=$_POST.libelle}} - {{else}} - {{:assign libelle=null}} - {{/if}} - - {{:assign montant=null}} - {{if $_POST.montant == null || $_POST.montant|money_int == 0 || $_POST.montant|money_int == $info_immo.amount}} - {{:assign montant=$info_immo.amount}} - {{else}} - {{:assign montant=$_POST.montant|money_int}} - {{if $montant < 0 || $montant > $max_disponible}} - {{:assign montant_aff="%f"|math:$montant|money_currency:false}} - {{:assign max_aff="%f"|math:$max_disponible|money_currency:false}} - {{:error message="Le montant (%s) doit être positif et ne peut être supérieur à %s"|args:$montant_aff:$max_aff}} - {{/if}} - {{/if}} - - {{:assign status="managed"}} + {{if $_POST.date_achat|parse_date > $ligne_immo.date_achat}} + {{:assign da=$ligne_immo.date_achat|date_short}} + {{:error message="Erreur : la date d'achat (%s) ne peut être postérieure à la date de l'écriture d'immobilisation (%s)"|args:$_POST.date_achat:$da}} {{/if}} + {{if $_POST.date_achat == null || $_POST.date_achat|parse_date == $info_immo.date_achat}} + {{:assign date_achat=$info_immo.date_achat}} + {{elseif $_POST.date_achat|parse_date == $ligne_immo.date_achat}} + {{:assign date_achat=null}} + {{else}} + {{:assign date_achat=$_POST.date_achat|parse_date}} + {{/if}} + + {{* TODO : simplifier ? *}} + {{if $_POST.date_mes == null || $_POST.date_mes|parse_date == $info_immo.date_mes}} + {{:assign date_mes=$info_immo.date_mes}} + {{elseif $_POST.date_mes|parse_date == $info_immo.date_achat}} + {{:assign date_mes=null}} + {{elseif $_POST.date_mes|parse_date == $ligne_immo.date_achat}} + {{if $info_immo.date_achat == null}} + {{:assign date_mes=null}} + {{else}} + {{:assign date_mes=$ligne_immo.date_achat}} + {{/if}} + {{else}} + {{:assign date_mes=$_POST.date_mes|parse_date}} + {{:assign date_achat_comp=$ligne_immo.date_achat}} + {{if $date_achat != null}} + {{:assign date_achat_comp=$date_achat}} + {{/if}} + {{if $date_mes < $date_achat_comp}} + {{:assign da=$date_achat_comp|date_short}} + {{:error message="Erreur : la date de mise en service (%s) ne peut être antérieure à la date d'acquisition (%s)"|args:$_POST.date_mes:$da}} + {{/if}} + {{/if}} + + {{:assign duration=$_POST.duree|intval}} + {{if $duration <= 0}} + {{:error message="Erreur : la durée d'amortissement doit être strictement positive"}} + {{/if}} + + {{if $_POST.libelle != $ligne_immo.line_label && $_POST.libelle != $ligne_immo.trans_label}} + {{:assign libelle=$_POST.libelle}} + {{else}} + {{:assign libelle=null}} + {{/if}} + + {{:assign montant=null}} + {{if $_POST.montant == null || $_POST.montant|money_int == 0 || $_POST.montant|money_int == $info_immo.amount}} + {{:assign montant=$info_immo.amount}} + {{else}} + {{:assign montant=$_POST.montant|money_int}} + {{if $montant < 0 || $montant > $max_disponible}} + {{:assign montant_aff="%f"|math:$montant|money_currency:false}} + {{:assign max_aff="%f"|math:$max_disponible|money_currency:false}} + {{:error message="Le montant (%s) doit être positif et ne peut être supérieur à %s"|args:$montant_aff:$max_aff}} + {{/if}} + {{/if}} + + {{:assign status="managed"}} + {{* écritures de crédit *}} {{#foreach from=$linked_immos item="line"}} {{if ! $_POST.credit_id|has:$line.trans_id}} @@ -163,12 +146,8 @@ assign_new_id="new_id" }} - {{if $_POST.amortir}} - {{:assign type_immo="managed"}} - {{else}} - {{:assign type_immo="other"}} - {{/if}} - {{:redirect force="details_immo.html?immo_doc_id=%s&type_immo=%s&ok=1&msg=infos"|args:$_GET.immo_doc_id:$type_immo}} + {{:assign type_immo="managed"}} + {{:redirect force="amortization.html?immo_doc_id=%s&type_immo=%s&ok=1&msg=modif"|args:$_GET.immo_doc_id:$type_immo}} {{/form}} @@ -209,33 +188,14 @@
Paramètres de l'amortissement
- {{:input id="amortir" type="checkbox" value=1 name="amortir" label="Amortir cette immobilisation sur une ou plusieurs années" checked="checked" help="Dé-cocher pour ne pas amortir"}} -
- {{:input type="number" name="duree" label="Durée d'amortissement" min=1 default=$info_immo.duration}} - {{:input type="text" name="libelle" label="Libellé" default=$info_immo.label}} - {{if $info_immo.amount != null}} - {{:assign max_aff="%f"|math:$max_disponible|money_currency:false}} - {{:input type="money" name="montant" label="Montant de l'immobilisation" default=$montant_immo help="Montant maximum : %s"|args:$max_aff}} - {{/if}} - {{:input type="date" name="date_achat" label="Date d'acquisition" default=$info_immo.date_achat}} - {{:input type="date" name="date_mes" label="Date de mise en service" default=$info_immo.date_mes}} -{{* - {{if $linked_immos != null}} -
-
- - - {{#foreach from=$linked_immos item="line"}} - - {{$line.trans_id}} - - - {{/foreach}} - -
- {{/if}} -*}} -
+ {{:input type="number" name="duree" label="Durée d'amortissement" min=1 default=$info_immo.duration}} + {{:input type="text" name="libelle" label="Libellé" default=$info_immo.label}} + {{if $info_immo.amount != null}} + {{:assign max_aff="%f"|math:$max_disponible|money_currency:false}} + {{:input type="money" name="montant" label="Montant de l'immobilisation" default=$montant_immo help="Montant maximum : %s"|args:$max_aff}} + {{/if}} + {{:input type="date" name="date_achat" label="Date d'acquisition" default=$info_immo.date_achat}} + {{:input type="date" name="date_mes" label="Date de mise en service" default=$info_immo.date_mes}}

@@ -244,17 +204,3 @@ {{:admin_footer}} - - - From 50ea449dad892d236478b0ce30f4b888e11a26ff Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 11 Jun 2026 14:05:36 +0200 Subject: [PATCH 10/10] =?UTF-8?q?Correction=20interaction=20s=C3=A9lecteur?= =?UTF-8?q?s=20inhib=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- save_amort.html | 2 +- scripts.js | 12 ++++++++---- transfer.html | 1 + 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/save_amort.html b/save_amort.html index 0886c08..c5c8c7b 100644 --- a/save_amort.html +++ b/save_amort.html @@ -289,8 +289,8 @@ function redisplayData(evt, ) { setDateEnd(f_years_select, f_date, f_years_data); - setSelectorYear(['credit_account', 'debit_account'], f_years_select); displayAmort(f_immo, f_duree, f_amort, f_years_data, f_years_select, f_montant, f_erreur); + setSelectorYear(['credit_account', 'debit_account'], f_years_select); } function redisplayAmort(evt, diff --git a/scripts.js b/scripts.js index e6298ca..c59df55 100644 --- a/scripts.js +++ b/scripts.js @@ -27,9 +27,11 @@ function toggleVisibility(idcheck, fields) { function setAccountYear(button_names, id_year) { for (const name of button_names) { const button = document.querySelector("button[data-name=" + name + "]"); - const b_value = button.value; - const new_value = b_value.replace(/id_year=\d+/, 'id_year=' + id_year); - button.setAttribute('value', new_value); + if (button != null) { + const b_value = button.value; + const new_value = b_value.replace(/id_year=\d+/, 'id_year=' + id_year); + button.setAttribute('value', new_value); + } } } @@ -131,7 +133,9 @@ function displayAmort(id_immo, id_duree, id_amort, id_years, id_exercices, id_mo case_montant.innerText = montant_amort; } -function setSelectorYear(button_names, f_years_selector) { +function setSelectorYear(button_names, f_years_selector) +{ + const selector = document.getElementById(f_years_selector); const selected_year = document.getElementById(f_years_selector).value; setAccountYear(button_names, selected_year); } diff --git a/transfer.html b/transfer.html index 1cbce9c..a9c9f50 100644 --- a/transfer.html +++ b/transfer.html @@ -257,6 +257,7 @@ type="list" name="credit_accounts[]" required=true + readonly=true target="!acc/charts/accounts/selector.php?codes=%s&id_year=%d"|args:$code:$selected_year default=$current_account }}