From 5c34c127eec55e44bb58413906cf0c770f99a735 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 26 Jun 2025 09:57:48 +0200 Subject: [PATCH 01/75] =?UTF-8?q?Harmonisation=20libell=C3=A9s=20pour=20cl?= =?UTF-8?q?assification?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _immobilisations.html | 2 +- _immobilisations_autres.html | 6 +++--- _nav.html | 2 +- add_asset.html | 6 +++--- add_infos.html | 2 +- amortization.html | 2 +- index.html | 2 +- write_exit.html | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/_immobilisations.html b/_immobilisations.html index 2d8281d..f59530c 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -1,6 +1,6 @@ {{* -*- brindille -*- *}} -{{* Liste des immobilisations amortissable ou à définir *}} +{{* Liste des immobilisations en cours ou amorties *}}
{{if $type_immo == "encours"}} diff --git a/_immobilisations_autres.html b/_immobilisations_autres.html index a24f4b7..0b3a22b 100644 --- a/_immobilisations_autres.html +++ b/_immobilisations_autres.html @@ -110,21 +110,21 @@ {{if $status == "nsp"}} {{:linkbutton label="Paramètres" - href="add_infos.html?immo_id=%s&amort=0&op=new&type_immo=autres"|args:$immo_id + href="add_infos.html?immo_id=%s&amort=0&op=new&type_immo=autre"|args:$immo_id shape="settings" target="_dialog" }} {{else}} {{:linkbutton label="Paramètres" - href="add_infos.html?immo_id=%s&amort=0&op=modif&type_immo=autres"|args:$immo_id + href="add_infos.html?immo_id=%s&amort=0&op=modif&type_immo=autre"|args:$immo_id shape="settings" target="_dialog" }} {{/if}} {{:linkbutton label="Amortissements" - href="amortization.html?immo_id=%s&type_immo=autres"|args:$immo_id + href="amortization.html?immo_id=%s&type_immo=autre"|args:$immo_id shape="table" }} diff --git a/_nav.html b/_nav.html index f847605..1ef59e0 100644 --- a/_nav.html +++ b/_nav.html @@ -20,7 +20,7 @@
  • En cours
  • Terminées
  • Archivées
  • -
  • Autres
  • +
  • Autres
  • {{/if}} diff --git a/add_asset.html b/add_asset.html index 06393f6..666df24 100644 --- a/add_asset.html +++ b/add_asset.html @@ -117,11 +117,11 @@ status=$status }} {{if $_POST.amortir}} - {{:assign amort="encours"}} + {{:assign type_immo="encours"}} {{else}} - {{:assign amort="autres"}} + {{:assign type_immo="autre"}} {{/if}} - {{:redirect force="index.html?ok=1&msg=immobilisation&amort=%s"|args:$amort}} + {{:redirect force="index.html?ok=1&msg=immobilisation&type_immo=%s"|args:$type_immo}} {{/form}} {{:admin_header title="Ajout immobilisation" current="module_amortissement"}} diff --git a/add_infos.html b/add_infos.html index a823e2e..455c690 100644 --- a/add_infos.html +++ b/add_infos.html @@ -63,7 +63,7 @@ }} {{if ! $_POST.amortir}} - {{:assign type_immo="autres"}} + {{:assign type_immo="autre"}} {{else}} {{:assign type_immo=$_GET.type_immo}} {{/if}} diff --git a/amortization.html b/amortization.html index 0e97af0..a3bcca2 100644 --- a/amortization.html +++ b/amortization.html @@ -75,7 +75,7 @@ {{elseif $_GET.type_immo == null || $_GET.type_immo == "encours"}} {{:assign subcurrent="encours"}} {{else}} - {{:assign subcurrent="autres"}} + {{:assign subcurrent="autre"}} {{/if}} {{:include file="_nav.html" current="index" subcurrent="%s"|args:$subcurrent subsubcurrent="amortization"}} diff --git a/index.html b/index.html index 9af0454..11373b9 100644 --- a/index.html +++ b/index.html @@ -34,7 +34,7 @@ {{/select}} {{/load}} -{{if $type_immo == "autres"}} +{{if $type_immo == "autre"}} {{:include file="_immobilisations_autres.html"}} {{elseif $type_immo == "archive"}} {{:include file="_archives.html"}} diff --git a/write_exit.html b/write_exit.html index 77acbb8..023fb14 100644 --- a/write_exit.html +++ b/write_exit.html @@ -260,7 +260,7 @@ }} {{/if}} - {{:redirect to="index.html?amort=archive"}} + {{:redirect to="index.html?type_immo=archive"}} {{/form}} {{:admin_header title="Sortie du bilan" custom_css="./style.css" current="module_amortissement"}} From ec94358f471b20949878e16ae61d597c67ad9289 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 1 Jul 2025 13:08:01 +0200 Subject: [PATCH 02/75] Classification manuelle des immobilisations --- _immobilisations.html | 26 ++++++------- _immobilisations_autres.html | 13 ++++--- add_infos.html | 75 +++++++++++++++++++++--------------- amortization.html | 14 +++++-- balance_sheet_exit.html | 9 ++++- compute_exit_data.html | 2 +- schema.json | 2 +- 7 files changed, 81 insertions(+), 60 deletions(-) diff --git a/_immobilisations.html b/_immobilisations.html index 64df5fb..2f28b30 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -58,18 +58,16 @@ {{: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 duration=null}} + {{* voir si l'immo est prise en charge *}} {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_id|intval}} {{:assign duration=$duration}} - {{if $status == "ignored"}} - {{:assign amortissable="non"}} - {{else}} - {{:assign amortissable="oui"}} - {{/if}} + {{:assign status=$status}} {{else}} {{:assign amortissable="nsp"}} + {{:assign status="unknown"}} {{/load}} - {{if $amortissable == "non"}} + {{if $status == "ignored"}} {{:continue}} {{/if}} @@ -93,8 +91,9 @@ :line_id = $immo_id|intval }} {{:assign ignore=true}} + {{:assign status="archived"}} {{/select}} - {{if $ignore}} + {{if $status == "archived"}} {{:continue}} {{/if}} @@ -132,13 +131,12 @@ {{/if}} {{/select}} + {{* classement par onglet *}} - {{if $type_immo == "encours" && $amort_amount >= $debit || - $type_immo == "amortie" && $amort_amount < $debit || - $amortissable == "nsp" && ! $exist_amort - }} - {{:continue}} - {{/if}} + {{if $type_immo == "encours" && $amort_amount >= $debit}}{{:continue}}{{/if}} + {{if $type_immo == "encours" && $status == "amortized"}}{{:continue}}{{/if}} + {{if $status == "unknown" && ! $exist_amort}}{{:continue}}{{/if}} + {{if $type_immo == "amortie" && $amort_amount < $debit && $status != "amortized"}}{{:continue}}{{/if}} {{:assign nb_immo="%d+1"|math:$nb_immo}} #{{$trans_id}} @@ -156,7 +154,7 @@ shape="settings" target="_dialog" }} - {{elseif $amortissable == "nsp"}} + {{elseif $status == "unknown"}} {{:linkbutton label="Paramètres" href="add_infos.html?immo_id=%s&amort=1&op=new&type_immo=%s"|args:$immo_id:$type_immo diff --git a/_immobilisations_autres.html b/_immobilisations_autres.html index 9924fed..76f9b0d 100644 --- a/_immobilisations_autres.html +++ b/_immobilisations_autres.html @@ -52,13 +52,14 @@ }} {{: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}} + {{* voir si l'immo est prise en charge *}} {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_id|intval}} {{:assign status=$status}} {{else}} - {{:assign status="nsp"}} + {{:assign status="unknown"}} {{/load}} - {{if $status != "ignored" && $status != "nsp"}} + {{if $status != "unknown"}} {{:continue}} {{/if}} @@ -87,7 +88,7 @@ account.code LIKE '28%'; :line_id = $immo_id|intval }} - {{if $status == "nsp" && $amort_amount != null}} + {{if $status == "unknown" && $amort_amount != null}} {{:assign ignore=true}} {{else}} {{:assign ignore=false}} @@ -107,16 +108,16 @@ {{$account_code}} {{$account_label}} - {{if $status == "nsp"}} + {{if $status == "unknown"}} {{:linkbutton - label="Amortir" + label="Paramètres" href="add_infos.html?immo_id=%s&amort=0&op=new&type_immo=autre"|args:$immo_id shape="settings" target="_dialog" }} {{else}} {{:linkbutton - label="Amortir" + label="Paramètres" href="add_infos.html?immo_id=%s&amort=0&op=modif&type_immo=autre"|args:$immo_id shape="settings" target="_dialog" diff --git a/add_infos.html b/add_infos.html index 706179f..fb5ccb0 100644 --- a/add_infos.html +++ b/add_infos.html @@ -4,7 +4,7 @@ @param immo_id @param amort = 1 si immo amortissable, 0 si non @param op = new ou modif - @param type_immo : encours, sortie, amortie, autre + @param type_immo : encours, amortie, sortie, autre *}} {{if $_GET.op == "modif"}} @@ -14,6 +14,9 @@ {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} + {{if $_POST.classify == null}} + {{:error message="Vous devez choisir une action"}} + {{/if}} {{* chercher la date d'acquisition de l'immobilisation *}} {{#select @@ -26,7 +29,7 @@ }} {{/select}} - {{if ! $_POST.amortir}} + {{if $_POST.classify == "ignored"}} {{* ne pas amortir *}} {{:assign duration=0}} {{:assign date_debut=$ligne_immo.date_achat|parse_date}} @@ -39,11 +42,16 @@ {{:assign da=$ligne_immo.date_achat|date_short}} {{:error message="Erreur : la date de mise en service (%s) ne peut être antérieure à la date d'acquisition (%s)"|args:$dd:$da}} {{/if}} - {{:assign duration=$_POST.duree|intval}} - {{if $duration <= 0}} - {{:error message="Erreur : la durée d'amortissement doit être strictement positive"}} + {{if $_POST.classify == "amortized"}} + {{:assign duration=0}} + {{:assign status="amortized"}} + {{else}} + {{:assign duration=$_POST.duree|intval}} + {{if $duration <= 0}} + {{:error message="Erreur : la durée d'amortissement doit être strictement positive"}} + {{/if}} + {{:assign status="managed"}} {{/if}} - {{:assign status="managed"}} {{/if}} {{* enregistrer les infos de l'immobilisation *}} @@ -62,8 +70,10 @@ status=$status }} - {{if ! $_POST.amortir}} - {{:assign type_immo="autre"}} + {{if $_POST.classify == "managed"}} + {{:assign type_immo="encours"}} + {{elseif $_POST.classify == "amortized"}} + {{:assign type_immo="amortie"}} {{else}} {{:assign type_immo=$_GET.type_immo}} {{/if}} @@ -81,31 +91,32 @@ {{* renseigner ou modifier la date de mise en service et la durée d'amortissement *}} {{if $_GET.amort == 0}} - {{:assign checked=0}} {{:assign disabled=1}} + {{:assign default=""}} {{else}} - {{:assign checked=1}} {{:assign disabled=0}} + {{:assign default="managed"}} {{/if}}
    - {{if $checked}} - {{:assign helptext = "Dé-cocher pour ne pas amortir"}} - {{else}} - {{:assign helptext = "Cocher pour amortir"}} - {{/if}} - {{:input id="amortir" type="checkbox" value=1 name="amortir" label="Amortir" default=$checked help=$helptext onclick="toggleInputs('infos_immo','f_amortir_1')"}} +
    (obligatoire)
    + {{:input type="radio" name="classify" value="managed" label="Amortir" help="Amortir cette immobilisation" default=$default onclick="toggleInputs('div_inputs','f_classify_managed', 'f_classify_amortized')"}} + {{:input type="radio" name="classify" value="amortized" label="Marquer amortie" help="Cette immobilisation sera classée parmi les immobilisations amorties" onclick="toggleInputs('div_inputs','f_classify_managed', 'f_classify_amortized')"}} + {{:input type="radio" name="classify" value="ignored" label="Ignorer l'écriture" help="Cette écriture n'apparaitra plus dans la liste des immobilisations" onclick="toggleInputs('div_inputs','f_classify_managed', 'f_classify_amortized')"}} + {{if $info_immo != null}} {{:assign date_defaut=$info_immo.date}} {{:assign duree_defaut=$info_immo.duration}} {{else}} - {{:assign duree_defaut=1}} + {{:assign duree_defaut=null}} {{/if}} - {{:input type="number" name="duree" label="Durée d'amortissement" default=$duree_defaut required=true min=1 disabled=$disabled}} - {{:input type="date" name="date_mes" label="Date de mise en service" default=$date_defaut disabled=$disabled help="à renseigner uniquement si différente de la date d'acquisition"}} +
    + {{:input type="number" name="duree" label="Durée d'amortissement" default=$duree_defaut required=true min=1 disabled=$disabled}} + {{:input type="date" name="date_mes" label="Date de mise en service" default=$date_defaut disabled=$disabled help="à renseigner uniquement si différente de la date d'acquisition"}} +
    @@ -117,19 +128,19 @@ {{* activer/désactiver les champs de saisie *}} {{:admin_footer}} diff --git a/amortization.html b/amortization.html index 1e12668..c8280c0 100644 --- a/amortization.html +++ b/amortization.html @@ -29,6 +29,7 @@ {{#load type="immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}} {{:assign duree=$duration}} {{:assign date_debut=$date}} + {{:assign status=$status}} {{/load}} {{* chercher des écritures d'amortissement liées à l'immobilisation *}} @@ -67,10 +68,15 @@ {{/if}} {{/select}} -{{:assign valeur_residuelle=$ligne_immo.montant}} -{{#foreach from=$linked_lines}} - {{:assign valeur_residuelle="%d-%d"|math:$valeur_residuelle:$amort_amount}} -{{/foreach}} +{{if $status == "amortized"}} + {{:assign amort_amount=$ligne_immo.montant}} + {{:assign valeur_residuelle=0}} +{{else}} + {{:assign valeur_residuelle=$ligne_immo.montant}} + {{#foreach from=$linked_lines}} + {{:assign valeur_residuelle="%d-%d"|math:$valeur_residuelle:$amort_amount}} + {{/foreach}} +{{/if}} {{* Autres amortissements non rattachés *}} {{#select diff --git a/balance_sheet_exit.html b/balance_sheet_exit.html index b557a8e..3a56e4a 100644 --- a/balance_sheet_exit.html +++ b/balance_sheet_exit.html @@ -57,7 +57,11 @@ {{/select}} {{if $amort_line.amort_number == 0}} - {{:assign amort_amount=0}} + {{if $info_immo.status == "amortized"}} + {{:assign amort_amount=$ligne_immo.montant}} + {{else}} + {{:assign amort_amount=0}} + {{/if}} {{else}} {{:assign amort_amount=$amort_line.amort_amount}} {{:assign date_debut=$amort_line.last_amort_date|strtotime}} @@ -153,8 +157,9 @@ lister les exercices ouverts : {{:break}} {{/if}} {{/if}} + {{* voir si des amortissements ont été oubliés *}} - {{if $start_date|strtotime > $amort_line.last_amort_date|strtotime && $end_date|strtotime < $now}} + {{if $info_immo.status != "amortized" && $start_date|strtotime > $amort_line.last_amort_date|strtotime && $end_date|strtotime < $now}} {{:assign debut=$start_date|date_short}} {{:assign fin=$end_date|date_short}} {{:assign msg_amort=$msg_amort|cat:"\n"|cat:" - "|cat:$label|cat:" : du "|cat:$debut|cat:" au "|cat:$fin}} diff --git a/compute_exit_data.html b/compute_exit_data.html index 6672a69..f046e77 100644 --- a/compute_exit_data.html +++ b/compute_exit_data.html @@ -69,7 +69,7 @@
    Date de mise en service
    {{$_GET.date_mes|date:"d/m/Y"}}
    {{/if}} - {{if $_GET.duree_amort != null}} + {{if $_GET.duree_amort != null && $_GET.duree_amort != 0}}
    Durée de l'amortissement
    {{$_GET.duree_amort}} ans
    {{/if}} diff --git a/schema.json b/schema.json index ea8e31c..4279385 100644 --- a/schema.json +++ b/schema.json @@ -21,7 +21,7 @@ }, "status" : { "type" : ["string", "null"], - "enum" : ["managed", "archived", "ignored"] + "enum" : ["managed", "amortized", "archived", "ignored"] } }, "required": ["type", "line", "duration", "date"] From bb7cbc9d3b31a4eed19f4711d875247be94bb8f7 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 30 Jun 2025 21:06:47 +0200 Subject: [PATCH 03/75] Classification des immobilisations par lot --- _immobilisations.html | 26 ++++++------ _immobilisations_autres.html | 46 ++++++++++++++++++--- add_infos.html | 78 +++++++++++++++++++++--------------- amortization.html | 14 +++++-- balance_sheet_exit.html | 9 ++++- compute_exit_data.html | 2 +- confirm_action.html | 50 +++++++++++++++++++++++ schema.json | 2 +- 8 files changed, 167 insertions(+), 60 deletions(-) create mode 100644 confirm_action.html diff --git a/_immobilisations.html b/_immobilisations.html index 64df5fb..2f28b30 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -58,18 +58,16 @@ {{: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 duration=null}} + {{* voir si l'immo est prise en charge *}} {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_id|intval}} {{:assign duration=$duration}} - {{if $status == "ignored"}} - {{:assign amortissable="non"}} - {{else}} - {{:assign amortissable="oui"}} - {{/if}} + {{:assign status=$status}} {{else}} {{:assign amortissable="nsp"}} + {{:assign status="unknown"}} {{/load}} - {{if $amortissable == "non"}} + {{if $status == "ignored"}} {{:continue}} {{/if}} @@ -93,8 +91,9 @@ :line_id = $immo_id|intval }} {{:assign ignore=true}} + {{:assign status="archived"}} {{/select}} - {{if $ignore}} + {{if $status == "archived"}} {{:continue}} {{/if}} @@ -132,13 +131,12 @@ {{/if}} {{/select}} + {{* classement par onglet *}} - {{if $type_immo == "encours" && $amort_amount >= $debit || - $type_immo == "amortie" && $amort_amount < $debit || - $amortissable == "nsp" && ! $exist_amort - }} - {{:continue}} - {{/if}} + {{if $type_immo == "encours" && $amort_amount >= $debit}}{{:continue}}{{/if}} + {{if $type_immo == "encours" && $status == "amortized"}}{{:continue}}{{/if}} + {{if $status == "unknown" && ! $exist_amort}}{{:continue}}{{/if}} + {{if $type_immo == "amortie" && $amort_amount < $debit && $status != "amortized"}}{{:continue}}{{/if}} {{:assign nb_immo="%d+1"|math:$nb_immo}} #{{$trans_id}} @@ -156,7 +154,7 @@ shape="settings" target="_dialog" }} - {{elseif $amortissable == "nsp"}} + {{elseif $status == "unknown"}} {{:linkbutton label="Paramètres" href="add_infos.html?immo_id=%s&amort=1&op=new&type_immo=%s"|args:$immo_id:$type_immo diff --git a/_immobilisations_autres.html b/_immobilisations_autres.html index 9924fed..4444ac8 100644 --- a/_immobilisations_autres.html +++ b/_immobilisations_autres.html @@ -6,9 +6,14 @@

    Autres immobilisations

    {{:assign nb_immo=0}} + + @@ -52,13 +57,14 @@ }} {{: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}} + {{* voir si l'immo est prise en charge *}} {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_id|intval}} {{:assign status=$status}} {{else}} - {{:assign status="nsp"}} + {{:assign status="unknown"}} {{/load}} - {{if $status != "ignored" && $status != "nsp"}} + {{if $status != "unknown"}} {{:continue}} {{/if}} @@ -87,7 +93,7 @@ account.code LIKE '28%'; :line_id = $immo_id|intval }} - {{if $status == "nsp" && $amort_amount != null}} + {{if $status == "unknown" && $amort_amount != null}} {{:assign ignore=true}} {{else}} {{:assign ignore=false}} @@ -100,6 +106,11 @@ {{:assign nb_immo="%d+1"|math:$nb_immo}} + @@ -107,16 +118,16 @@ {{/select}} + + {{:assign var="actions.amortize" value="Marquer l'immobilisation amortie"}} + {{:assign var="actions.ignore" value="Ignorer l'écriture"}} + + + + + + + +
    + + + Date Libellé
    + {{:input type="checkbox" name="check[%s]"|args:$immo_id value=$immo_id default=0}} + + + #{{$trans_id}} {{$trans_date|date_short}} {{$trans_label}}{{$account_code}} {{$account_label}} - {{if $status == "nsp"}} + {{if $status == "unknown"}} {{:linkbutton - label="Amortir" + label="Paramètres" href="add_infos.html?immo_id=%s&amort=0&op=new&type_immo=autre"|args:$immo_id shape="settings" target="_dialog" }} {{else}} {{:linkbutton - label="Amortir" + label="Paramètres" href="add_infos.html?immo_id=%s&amort=0&op=modif&type_immo=autre"|args:$immo_id shape="settings" target="_dialog" @@ -131,7 +142,30 @@
    + + + Pour les écritures cochées : +{{* + + + {csrf_field key="projects_action"} +*}} + + {{:input type="select" name="actions" options=$actions default_empty="— Choisir une action à effectuer —"}} +
    + {{if $nb_immo == 0}}

    Aucune immobilisation

    {{/if}} diff --git a/add_infos.html b/add_infos.html index 706179f..3008736 100644 --- a/add_infos.html +++ b/add_infos.html @@ -4,7 +4,7 @@ @param immo_id @param amort = 1 si immo amortissable, 0 si non @param op = new ou modif - @param type_immo : encours, sortie, amortie, autre + @param type_immo : encours, amortie, sortie, autre *}} {{if $_GET.op == "modif"}} @@ -14,6 +14,10 @@ {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} + {{:debug post=$_POST}} + {{if $_POST.classify == null}} + {{:error message="Vous devez choisir une action"}} + {{/if}} {{* chercher la date d'acquisition de l'immobilisation *}} {{#select @@ -26,7 +30,7 @@ }} {{/select}} - {{if ! $_POST.amortir}} + {{if $_POST.classify == "ignored"}} {{* ne pas amortir *}} {{:assign duration=0}} {{:assign date_debut=$ligne_immo.date_achat|parse_date}} @@ -39,11 +43,16 @@ {{:assign da=$ligne_immo.date_achat|date_short}} {{:error message="Erreur : la date de mise en service (%s) ne peut être antérieure à la date d'acquisition (%s)"|args:$dd:$da}} {{/if}} - {{:assign duration=$_POST.duree|intval}} - {{if $duration <= 0}} - {{:error message="Erreur : la durée d'amortissement doit être strictement positive"}} + {{if $_POST.classify == "amortized"}} + {{:assign duration=0}} + {{:assign status="amortized"}} + {{else}} + {{:assign duration=$_POST.duree|intval}} + {{if $duration <= 0}} + {{:error message="Erreur : la durée d'amortissement doit être strictement positive"}} + {{/if}} + {{:assign status="managed"}} {{/if}} - {{:assign status="managed"}} {{/if}} {{* enregistrer les infos de l'immobilisation *}} @@ -52,6 +61,8 @@ {{else}} {{:assign key=$info_immo.key}} {{/if}} +{{:debug duree=$duration date=$date_debut classif=$_POST.classify status=$status}} + {{:save key=$key validate_schema="schema.json" @@ -62,8 +73,10 @@ status=$status }} - {{if ! $_POST.amortir}} - {{:assign type_immo="autre"}} + {{if $_POST.classify == "managed"}} + {{:assign type_immo="encours"}} + {{elseif $_POST.classify == "amortized"}} + {{:assign type_immo="amortie"}} {{else}} {{:assign type_immo=$_GET.type_immo}} {{/if}} @@ -81,31 +94,32 @@ {{* renseigner ou modifier la date de mise en service et la durée d'amortissement *}} {{if $_GET.amort == 0}} - {{:assign checked=0}} {{:assign disabled=1}} + {{:assign default=""}} {{else}} - {{:assign checked=1}} {{:assign disabled=0}} + {{:assign default="managed"}} {{/if}}
    - {{if $checked}} - {{:assign helptext = "Dé-cocher pour ne pas amortir"}} - {{else}} - {{:assign helptext = "Cocher pour amortir"}} - {{/if}} - {{:input id="amortir" type="checkbox" value=1 name="amortir" label="Amortir" default=$checked help=$helptext onclick="toggleInputs('infos_immo','f_amortir_1')"}} +
    (obligatoire)
    + {{:input type="radio" name="classify" value="managed" label="Amortir" help="Amortir cette immobilisation" default=$default onclick="toggleInputs('div_inputs','f_classify_managed', 'f_classify_amortized')"}} + {{:input type="radio" name="classify" value="amortized" label="Marquer amortie" help="Cette immobilisation sera classée parmi les immobilisations amorties" onclick="toggleInputs('div_inputs','f_classify_managed', 'f_classify_amortized')"}} + {{:input type="radio" name="classify" value="ignored" label="Ignorer l'écriture" help="Cette écriture n'apparaitra plus dans la liste des immobilisations" onclick="toggleInputs('div_inputs','f_classify_managed', 'f_classify_amortized')"}} + {{if $info_immo != null}} {{:assign date_defaut=$info_immo.date}} {{:assign duree_defaut=$info_immo.duration}} {{else}} - {{:assign duree_defaut=1}} + {{:assign duree_defaut=null}} {{/if}} - {{:input type="number" name="duree" label="Durée d'amortissement" default=$duree_defaut required=true min=1 disabled=$disabled}} - {{:input type="date" name="date_mes" label="Date de mise en service" default=$date_defaut disabled=$disabled help="à renseigner uniquement si différente de la date d'acquisition"}} +
    + {{:input type="number" name="duree" label="Durée d'amortissement" default=$duree_defaut required=true min=1 disabled=$disabled}} + {{:input type="date" name="date_mes" label="Date de mise en service" default=$date_defaut disabled=$disabled help="à renseigner uniquement si différente de la date d'acquisition"}} +
    @@ -117,19 +131,19 @@ {{* activer/désactiver les champs de saisie *}} {{:admin_footer}} diff --git a/amortization.html b/amortization.html index 1e12668..c8280c0 100644 --- a/amortization.html +++ b/amortization.html @@ -29,6 +29,7 @@ {{#load type="immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}} {{:assign duree=$duration}} {{:assign date_debut=$date}} + {{:assign status=$status}} {{/load}} {{* chercher des écritures d'amortissement liées à l'immobilisation *}} @@ -67,10 +68,15 @@ {{/if}} {{/select}} -{{:assign valeur_residuelle=$ligne_immo.montant}} -{{#foreach from=$linked_lines}} - {{:assign valeur_residuelle="%d-%d"|math:$valeur_residuelle:$amort_amount}} -{{/foreach}} +{{if $status == "amortized"}} + {{:assign amort_amount=$ligne_immo.montant}} + {{:assign valeur_residuelle=0}} +{{else}} + {{:assign valeur_residuelle=$ligne_immo.montant}} + {{#foreach from=$linked_lines}} + {{:assign valeur_residuelle="%d-%d"|math:$valeur_residuelle:$amort_amount}} + {{/foreach}} +{{/if}} {{* Autres amortissements non rattachés *}} {{#select diff --git a/balance_sheet_exit.html b/balance_sheet_exit.html index b557a8e..3a56e4a 100644 --- a/balance_sheet_exit.html +++ b/balance_sheet_exit.html @@ -57,7 +57,11 @@ {{/select}} {{if $amort_line.amort_number == 0}} - {{:assign amort_amount=0}} + {{if $info_immo.status == "amortized"}} + {{:assign amort_amount=$ligne_immo.montant}} + {{else}} + {{:assign amort_amount=0}} + {{/if}} {{else}} {{:assign amort_amount=$amort_line.amort_amount}} {{:assign date_debut=$amort_line.last_amort_date|strtotime}} @@ -153,8 +157,9 @@ lister les exercices ouverts : {{:break}} {{/if}} {{/if}} + {{* voir si des amortissements ont été oubliés *}} - {{if $start_date|strtotime > $amort_line.last_amort_date|strtotime && $end_date|strtotime < $now}} + {{if $info_immo.status != "amortized" && $start_date|strtotime > $amort_line.last_amort_date|strtotime && $end_date|strtotime < $now}} {{:assign debut=$start_date|date_short}} {{:assign fin=$end_date|date_short}} {{:assign msg_amort=$msg_amort|cat:"\n"|cat:" - "|cat:$label|cat:" : du "|cat:$debut|cat:" au "|cat:$fin}} diff --git a/compute_exit_data.html b/compute_exit_data.html index 6672a69..f046e77 100644 --- a/compute_exit_data.html +++ b/compute_exit_data.html @@ -69,7 +69,7 @@
    Date de mise en service
    {{$_GET.date_mes|date:"d/m/Y"}}
    {{/if}} - {{if $_GET.duree_amort != null}} + {{if $_GET.duree_amort != null && $_GET.duree_amort != 0}}
    Durée de l'amortissement
    {{$_GET.duree_amort}} ans
    {{/if}} diff --git a/confirm_action.html b/confirm_action.html new file mode 100644 index 0000000..ee82683 --- /dev/null +++ b/confirm_action.html @@ -0,0 +1,50 @@ +{{* -*- brindille -*- *}} + +{{#form on="validate"}} + {{:debug get=$_GET post=$_POST}} +{{/form}} + +{{:admin_header title="Confirmer"}} +{{:assign .="infos"}} +{{*:debug post=$_POST*}} +{{if $_POST.actions == "amortize"}} + {{:assign action="Marquer l'immobilisation amortie"}} +{{elseif $_POST.actions == "ignore"}} + {{:assign action="Ignorer l'écriture"}} +{{/if}} +{{:assign msg_titre="Appliquer l'opération « %s » sur les écritures : "|args:$action}} + +{{:assign msg_lines=""}} + +{{:admin_header title="Confirmer l'opération" custom_css="./style.css" current="module_amortissement"*}} + + +
    +

    Appliquer l'opération « {{$action}} » sur les écritures :

    +
    + + + + + + + + + {{#foreach from=$_POST.check item="line"}} + + {{:assign var="label" from="_POST.label.%s"|args:$line}} + {{:assign var="trans_id" from="_POST.trans.%s"|args:$line}} + {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$trans_id}} + + + + + {{/foreach}} + +
    Libellé
    #{{$trans_id}}{{$label}}
    +

    + {{:button type="submit" name="validate" label="Confirmer" shape="right" class="main"}} +

    +
    + +{{:admin_footer}} diff --git a/schema.json b/schema.json index ea8e31c..4279385 100644 --- a/schema.json +++ b/schema.json @@ -21,7 +21,7 @@ }, "status" : { "type" : ["string", "null"], - "enum" : ["managed", "archived", "ignored"] + "enum" : ["managed", "amortized", "archived", "ignored"] } }, "required": ["type", "line", "duration", "date"] From eae9a2f31c7a798a02079cfe0d14aa3c9aba70ef Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 2 Jul 2025 10:00:48 +0200 Subject: [PATCH 04/75] Correction typo --- add_asset.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/add_asset.html b/add_asset.html index 666df24..0c2a654 100644 --- a/add_asset.html +++ b/add_asset.html @@ -182,7 +182,7 @@
    Amortissement
    - {{:input id="amortir" type="checkbox" value=1 name="amortir" label="Amortir cette immobilisation sur plusieurs années" checked="cheched" help="Dé-cocher pour ne pas amortir"}} + {{:input id="amortir" type="checkbox" value=1 name="amortir" label="Amortir cette immobilisation sur 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"}} From 61b900751400935aa51aafa8ba18d975ed5efd4e Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 2 Jul 2025 10:05:14 +0200 Subject: [PATCH 05/75] Correction typo --- add_asset.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/add_asset.html b/add_asset.html index 666df24..0c2a654 100644 --- a/add_asset.html +++ b/add_asset.html @@ -182,7 +182,7 @@
    Amortissement
    - {{:input id="amortir" type="checkbox" value=1 name="amortir" label="Amortir cette immobilisation sur plusieurs années" checked="cheched" help="Dé-cocher pour ne pas amortir"}} + {{:input id="amortir" type="checkbox" value=1 name="amortir" label="Amortir cette immobilisation sur 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"}} From 688cada3e83e717dbbfeeb6091ee6db4b0b995fb Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 3 Jul 2025 10:42:45 +0200 Subject: [PATCH 06/75] Harmonisation types immo --- _immobilisations.html | 15 ++++++++------- _nav.html | 18 +++++++++--------- add_asset.html | 4 ++-- amortization.html | 18 +++++++++--------- index.html | 8 ++++---- other_amortizations.html | 4 ++-- save_amort.html | 2 +- 7 files changed, 35 insertions(+), 34 deletions(-) diff --git a/_immobilisations.html b/_immobilisations.html index 2f28b30..8765d7f 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -3,9 +3,9 @@ {{* Liste des immobilisations en cours ou amorties *}}
    - {{if $type_immo == "encours"}} + {{if $type_immo == "managed"}}

    Immobilisations en cours

    - {{elseif $type_immo == "amortie"}} + {{elseif $type_immo == "amortized"}}

    Immobilisations amorties

    {{/if}} {{:assign nb_immo=0}} @@ -133,10 +133,11 @@ {{* classement par onglet *}} - {{if $type_immo == "encours" && $amort_amount >= $debit}}{{:continue}}{{/if}} - {{if $type_immo == "encours" && $status == "amortized"}}{{:continue}}{{/if}} + {{if $type_immo == "managed" && $amort_amount >= $debit}}{{:continue}}{{/if}} + {{if $type_immo == "managed" && $status == "amortized"}}{{:continue}}{{/if}} {{if $status == "unknown" && ! $exist_amort}}{{:continue}}{{/if}} - {{if $type_immo == "amortie" && $amort_amount < $debit && $status != "amortized"}}{{:continue}}{{/if}} + {{if $type_immo == "amortized" && $amort_amount < $debit && $status != "amortized"}}{{:continue}}{{/if}} + {{:assign nb_immo="%d+1"|math:$nb_immo}} #{{$trans_id}} @@ -150,14 +151,14 @@ {{if ! $exist_amort}} {{:linkbutton label="Paramètres" - href="add_infos.html?immo_id=%s&amort=1&op=modif&type_immo=%s"|args:$immo_id:$type_immo + href="add_infos.html?immo_id=%s&op=modif&type_immo=%s"|args:$immo_id:$type_immo shape="settings" target="_dialog" }} {{elseif $status == "unknown"}} {{:linkbutton label="Paramètres" - href="add_infos.html?immo_id=%s&amort=1&op=new&type_immo=%s"|args:$immo_id:$type_immo + href="add_infos.html?immo_id=%s&op=new&type_immo=%s"|args:$immo_id:$type_immo shape="settings" target="_dialog" }} diff --git a/_nav.html b/_nav.html index f5c6b94..fc5c3c3 100644 --- a/_nav.html +++ b/_nav.html @@ -1,11 +1,11 @@ {{* -*- brindille -*- *}}
    -
    -
    Immobilisation
    -
    #{{$ligne_immo.trans_id}} {{$ligne_immo.label}}
    -
    Montant
    -
    {{"%f"|math:$ligne_immo.montant|money_currency}}
    -
    Début d'amortissement
    -
    {{$date_debut|date_short}}
    - {{if $duree != null}} -
    Durée
    -
    {{$duree}} ans
    - {{/if}} - {{if $valeur_residuelle > 0}} -
    Montant déjà amorti
    -
    {{"%d-%d"|math:$ligne_immo.montant:$valeur_residuelle|money_currency:false}}
    -
    Valeur résiduelle
    -
    {{$valeur_residuelle|money_currency}}
    - {{/if}} - {{if $duree != null && $valeur_residuelle > 0}} -
    Annuité estimée
    -
    {{"%f/%d"|math:$ligne_immo.montant:$duree|money_currency}}
    - {{/if}} -
    +
    +
    +
    Immobilisation
    +
    #{{$ligne_immo.trans_id}} {{$ligne_immo.label}}
    +
    Montant
    +
    {{"%f"|math:$ligne_immo.montant|money_currency}}
    +
    Début d'amortissement
    +
    {{$date_debut|date_short}}
    + {{if $duree != null}} +
    Durée
    +
    {{$duree}} ans
    + {{/if}} + {{if $valeur_residuelle > 0}} +
    Montant déjà amorti
    +
    {{"%d-%d"|math:$ligne_immo.montant:$valeur_residuelle|money_currency:false}}
    +
    Valeur résiduelle
    +
    {{$valeur_residuelle|money_currency}}
    + {{/if}} + {{if $duree != null && $valeur_residuelle > 0}} +
    Annuité estimée
    +
    {{"%f/%d"|math:$ligne_immo.montant:$duree|money_currency}}
    + {{/if}} +
    +

    Amortissements enregistrés

    {{if $linked_lines != null}} diff --git a/style.css b/style.css index fd1cbfb..c9c23f9 100644 --- a/style.css +++ b/style.css @@ -41,7 +41,3 @@ h2[class="aide"], h3[class="aide"] { nav.amort aside { margin-top : 0; } - -.describe dt::after { - content: ' :'; -} From 9bfc389fa222f6086fd3822e48d762a08c1e2a99 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 12 Nov 2025 20:38:24 +0100 Subject: [PATCH 25/75] Correction typos --- add_asset.html | 4 ++-- config.html | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/add_asset.html b/add_asset.html index c5f7756..898042d 100644 --- a/add_asset.html +++ b/add_asset.html @@ -153,7 +153,7 @@
    {{:input type="select" name="id_year" label="Exercice" default=$selected_year required=true default_empty="— Faire un choix —" options=$open_years}} {{:input type="date" name="date_achat" label="Date d'acquisition" required=true default=$now|date_short}} - {{:input type="text" name="designation" label="Désignation" required=true}} + {{:input type="text" name="designation" label="Libellé" required=true}} {{:input type="money" name="montant" label="Montant" required=true}} {{:input type="list" @@ -180,7 +180,7 @@
    Amortissement
    - {{:input id="amortir" type="checkbox" value=1 name="amortir" label="Amortir cette immobilisation sur 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/config.html b/config.html index 624a4ba..25b2dc3 100644 --- a/config.html +++ b/config.html @@ -188,11 +188,10 @@ {{:assign var="unfinished_account.%s.%s"|args:$code:$code value="%s — "|args:$code|cat:$elem.label}} {{:assign var="current_account" from="unfinished_account.%s"|args:$code}} - {{:input type="list" name="unfinished_accounts[]" - target="!acc/charts/accounts/selector.php?codes=%s*&id_year=%d"|args:$code::$selected_year + target="!acc/charts/accounts/selector.php?codes=%s*&id_year=%d"|args:$code:$selected_year default=$current_account }} @@ -226,7 +225,7 @@ + diff --git a/scripts.js b/scripts.js index 9764bcc..818d3ed 100644 --- a/scripts.js +++ b/scripts.js @@ -119,7 +119,6 @@ function displayAmort(id_immo, id_duree, id_amort, id_years, id_exercices, id_mo } if (id_date != null) { const date_choisie = str2sec(document.getElementById(id_date).value); - console.log("date_choisie = " + date_choisie + ", date_debut=" + date_debut + ", date_fin = " + date_fin); if (date_debut <= date_choisie && date_choisie <= date_fin) { date_fin = date_choisie; } else { @@ -161,7 +160,6 @@ function initLine(row) { // Associer au bouton « Ajouter » de chaque table l'action d'ajouter une ligne function addLine(button, codes) { - console.log("codes=" + JSON.stringify(codes)); button.onclick = () => { let lines = button.closest("table").querySelectorAll('tbody tr'); let line = lines[lines.length - 1]; @@ -190,3 +188,50 @@ function addLine(button, codes) { initLine(newNode); }; } + +// calculer et afficher le total des lignes sélectionnées +function computeTotal(id_total, id_url) { + + // calculer le total par compte + let total = new Object; + const transactions = []; + let lines = document.querySelectorAll('.list tbody tr'); + for (const line of lines) { + let button = line.querySelector('input[type=checkbox]'); + if (button.checked) { + let money = line.querySelector('.money'); + let code = line.querySelector('.account_code a').innerText; + if (code in total) { + total[code] += getNumber(money.innerText) * 100; + } else { + total[code] = getNumber(money.innerText) * 100; + } + const number = line.querySelector('.num a').innerText.slice(1); + transactions.push(number); + } + } + // afficher les totaux + const liste = document.getElementById(id_total).querySelector('ul'); + while (liste.firstChild) { + liste.removeChild(liste.firstChild); + } + for (const code in total) { + const node = document.createElement("li"); + const para = document.createElement("p"); + const libelle = document.createTextNode("Compte " + code + " : "); + const span = document.createElement("strong"); + span.classList.add("money"); + const montant = document.createTextNode(new Intl.NumberFormat("fr-FR", { style: "currency", currency: "EUR" }).format(total[code] / 100., )); + + span.appendChild(montant); + para.appendChild(libelle); + para.appendChild(span); + node.appendChild(para); + liste.appendChild(node); + } + + // mettre à jour les paramètres de l'url + let url = document.getElementById(id_url); + let new_href = url.href.replace(/trans=.*/, 'trans=' + Object.values(transactions)); + url.href = new_href; +} diff --git a/style.css b/style.css index c9c23f9..40922ee 100644 --- a/style.css +++ b/style.css @@ -41,3 +41,9 @@ h2[class="aide"], h3[class="aide"] { nav.amort aside { margin-top : 0; } + +fieldset.shortFormLeft div.informations { + border: 1px solid var(--gLightBorderColor); + background: rgba(var(--gSecondColor), 0.2); + border-radius: .5em; +} diff --git a/transfer.html b/transfer.html new file mode 100644 index 0000000..c7f5dfc --- /dev/null +++ b/transfer.html @@ -0,0 +1,317 @@ +{{* -*- brindille -*- *}} + +{{:admin_header title="Transfert d'immobilisation en cours" current="module_amortissement"}} +{{:include file="_get_config.html" keep="module.config.prefixes"}} + +{{#years closed=false order="start_date" assign=years.}} + {{:assign ts_debut=$start_date|strtotime}} + {{:assign ts_fin=$end_date|strtotime}} + {{:assign debut=$start_date|date_short}} + {{:assign fin=$end_date|date_short}} + {{:assign var="years_data.%d"|args:$id value=$ts_debut|cat:" "|cat:$ts_fin}} + {{:assign var="open_years.%d"|args:$id value=$label|cat:" ("|cat:$debut|cat:" - "|cat:$fin|cat:")"}} + {{if $ts_debut <= $now && $now <= $ts_fin}} + {{:assign selected_year=$id}} + {{/if}} +{{else}} + {{:error message="Aucun exercice ouvert"}} +{{/years}} + +{{* Traiter l'envoi du formulaire *}} +{{#form on="transfer"}} + {{* vérifier que la date de mise en service est située dans l'exercice sélectionné *}} + {{:assign ts_date = $_POST.date_mes|parse_date|strtotime}} + {{:assign ok=false}} + {{#foreach from=$years}} + {{if $id == $_POST.id_year}} + {{:assign selected_chart=$id_chart}} + {{if $start_date|strtotime <= $ts_date && $ts_date <= $end_date|strtotime}} + {{:assign ok=true}} + {{:break}} + {{/if}} + {{/if}} + {{/foreach}} + {{if ! $ok}} + {{:error message="La date saisie n'est pas dans l'exercice choisi !"}} + {{/if}} + + {{if ! $_POST.amortir}} + {{* ne pas amortir *}} + {{:assign duration=0}} + {{:assign date_debut=$_POST.date_achat|parse_date}} + {{:assign status="ignored"}} + {{else}} + {{* vérifier que la date d'acquisition est antérieure à la date de mise en service *}} + {{:assign date_debut=$_POST.date_mes|parse_date}} + {{:assign duration=$_POST.duree|intval}} + {{:assign status="managed"}} + {{/if}} + + {{* comptes de débit *}} + {{#foreach from=$_POST.credit_accounts key="rang" item="elem"}} + {{:include + file="_get_codes.html" + account=$elem + keep="account_code" + }} + {{:assign debit_account=$account_code|keys|key:0}} + {{:assign var="amount" from="_POST.credit_lines.%s"|args:$rang}} + {{:assign var="label" from="_POST.line_labels.%s"|args:$rang}} + {{:assign + var="lines." + account=$debit_account + credit=$amount + label=$label + }} + {{/foreach}} + + {{* compte de crédit *}} + {{:include + file="_get_codes.html" + account=$_POST.debit_account + keep="account_code" + }} + {{:assign credit_account=$account_code|keys|key:0}} + {{:assign var="amount" from="_POST.debit_lines.%s"|args:0}} + {{:assign count=$_POST.line_labels|count}} + {{:assign count="%d-1"|math:$count}} + {{:assign var="label" from="_POST.line_labels.%s"|args:$count}} + {{:assign + var="lines." + account=$credit_account + debit=$amount + label=$label + }} + + {{* vérifier : + - que le compte d'immo débute par un préfixe correct (20, 21, ...) + - est présent dans le PC de l'exercice correspondant à la date + *}} + + {{:include + file="_check_account.html" + account=$account_code + chart_id=$selected_chart + prefix_array=$module.config.prefixes + keep="account_ok" + }} + + {{if $account_ok == null}} + {{:assign compte=$credit_account|implode:""}} + {{:error message="Le compte « %s » n'est pas un compte d'immobilisation ou n'est pas dans le plan comptable de l'exercice choisi"|args:$compte}} + {{/if}} + + {{* écritures liées *}} + {{:assign var="linked_transactions" value=$_GET.trans|explode:","}} + + {{* enregistrer l'écriture *}} + {{:api + method="POST" + path="accounting/transaction" + assign="result" + id_year=$_POST.id_year + type="advanced" + date=$_POST.date_mes + label=$_POST.designation|trim + lines=$lines + linked_transactions=$linked_transactions + }} + + {{:assign lines_count=$lines|count}} + {{:assign lines_count="%d-1"|math:$lines_count}} + {{:assign var="immo_id" from="result.lines.%s.id"|args:$lines_count}} + + {{* enregistrer les infos de l'immobilisation *}} + {{:save + key=""|uuid + validate_schema="schema.json" + type="immo" + line=$immo_id + duration=$duration + date=$date_debut + status=$status + }} + {{if $_POST.amortir}} + {{:assign type_immo="managed"}} + {{else}} + {{:assign type_immo="other"}} + {{/if}} + {{:redirect force="index.html?ok=1&msg=immobilisation&type_immo=%s"|args:$type_immo}} + +{{/form}} + +{{* barre de navigation *}} +{{if ! $dialog}} + {{:include file="_nav.html" current="index"}} +{{/if}} + +{{:form_errors}} + +{{* formulaire d'ajout d'immobilisation *}} + +{{#select id,label FROM acc_projects WHERE archived = 0;}} + {{:assign var="projects.%d"|args:$id value=$label}} +{{/select}} + +{{#foreach from=$module.config.prefixes item="code"}} + {{:assign var="pattern_array." value="%s*"|args:$code}} +{{/foreach}} +{{:assign var="patterns" value=$pattern_array|implode:"|"}} + + + +{{if $_GET.trans == null}} + {{:error message="Vous n'avez sélectionné aucune écriture !"}} +{{/if}} + +{{* déterminer les comptes d'immo en cours *}} +{{:include file="_get_config.html" keep="module.config.unfinished"}} +{{:assign condition="("}} +{{#foreach from=$module.config.unfinished item="elem"}} + {{:assign code=$elem.code|cat:"%"|quote_sql}} + {{:assign condition=$condition|cat:" account.code LIKE "|cat:$code|cat:" OR "}} +{{/foreach}} +{{:assign condition=$condition|cat:"0)"}} + +{{* détails des écritures paramètres *}} +{{:assign trans=$_GET.trans|explode:","}} +{{:assign var="trans_list" value=$trans|map:quote_sql}} +{{:assign trans_list=$trans_list|implode:","}} +{{:assign trans_list="("|cat:$trans_list|cat:")"}} +{{:assign condition=$condition|cat:" AND trans.id IN "|cat:$trans_list}} +{{:assign condition=$condition|cat:" AND NOT (trans.status & 16)"}} + +{{#select + trans.id as trans_id, + trans.label AS trans_label, + trans.date AS trans_date, + SUM(line.debit) AS line_debit, + account.code AS account_code, + account.label AS account_label, + line.id_project as project_id + 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 + WHERE !condition + GROUP BY trans.id + ; + !condition=$condition +}} + {{:assign var="transactions.%s"|args:$trans_id amount=$line_debit date=$trans_date code=$account_code label=$account_label project=$project_id}} +{{/select}} + +
    +
    + Données de l'immobilisation +
    + {{:input type="select" name="id_year" label="Exercice" default=$selected_year required=true + default_empty="— Faire un choix —" options=$open_years}} + {{:input type="date" name="date_mes" label="Date de mise en service" required=true default=$now|date_short}} + {{:input type="text" name="designation" label="Libellé" required=true}} +
    +
    + +
    + Comptes +
    + + + + + + + + + + + + {{:assign total=0}} + {{#foreach from=$transactions key="id"}} + {{:assign total="%f+%f"|math:$total:$amount}} + {{:assign current_account=null}} + {{:assign var="current_account.%s"|args:$code value="%s — %s"|args:$code:$label}} + + + + + + + + {{/foreach}} + + + + + + + + + + +
    CompteDébitCréditLibellé ligneProjet
    + {{:input + type="list" + name="credit_accounts[]" + required=true + target="!acc/charts/accounts/selector.php?codes=%s&id_year=%d"|args:$code:$selected_year + default=$current_account + }} + {{:input name="credit_lines[]" type="text" class="money" size="8" default=$amount|money}}{{:input name="debit_lines[]" type="text" class="money" size="8" disabled=true}}{{:input type="text" name="line_labels[]" size="40"}} + {{if $projects != null}} + {{:input type="select" name="id_project" options=$projects default_empty="— Aucun —"}} + {{/if}} +
    + {{:input + type="list" + name="debit_account" + label="Compte d'immobilisation amortissable" + required=true + target="!acc/charts/accounts/selector.php?codes=%s&id_year=%d"|args:$patterns:$selected_year + }} + {{:input name="credit_lines[]" type="text" class="money" size="8" disabled=true}}{{:input name="debit_lines[]" type="text" class="money" size="8" default=$total|money}}{{:input type="text" name="line_labels[]" size="40"}} + {{if $projects != null}} + {{:input type="select" name="id_project" options=$projects default_empty="— Aucun —"}} + {{/if}} +
    + + +
    +
    + +
    + 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)"}} +
    +
    +
    + +

    + {{:button type="submit" name="transfer" label="Transférer" shape="right" class="main"}} +

    + +
    +{{:admin_footer}} + + + From 262b25889bab8ab3be00ead50e596f98039ec03f Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 18 Nov 2025 12:03:38 +0100 Subject: [PATCH 27/75] =?UTF-8?q?Classer=20ou=20d=C3=A9classer=20manuellem?= =?UTF-8?q?ent=20une=20=C3=A9criture=20=C2=AB=20=C3=A0=20ignorer=20=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _unfinished.html | 31 +++++++++++++++++- ignore.html | 85 ++++++++++++++++++++++++++++++++++++++++++++++++ style.css | 5 +++ 3 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 ignore.html diff --git a/_unfinished.html b/_unfinished.html index 5db1083..3565470 100644 --- a/_unfinished.html +++ b/_unfinished.html @@ -31,6 +31,9 @@

    +
    + {{:input type="checkbox" value=1 name="unhide" label="Afficher les écritures marquées ignorées" }} +
    @@ -79,6 +82,15 @@ ORDER BY trans.date DESC; !condition=$condition }} + {{* voir si l'écriture a été marquée ignorée *}} + {{:assign ignore=false}} + {{#load type="immo" assign="info_immo" where="$$.line = :line_id AND $$.status = 'ignored'" :line_id=$immo_id|intval}} + {{:assign ignore=true}} + {{/load}} + {{if $ignore && $_POST.unhide == null}} + {{:continue}} + {{/if}} + {{* voir s'il existe une écriture qui solde l'immobilisation *}} {{#select count(*) AS count @@ -92,6 +104,7 @@ }} {{:assign count=$count}} {{/select}} + {{* S'il y a plus d'une écriture de même montant on ne peut pas décider *}} {{if $count == 1}} {{:continue}} @@ -109,7 +122,14 @@ - + {{/select}} @@ -132,4 +152,13 @@ } +function changeVisibility(evt, idcheck = 'f_unhide_1') { + this.form.dispatchEvent(new Event('submit')); + this.form.submit(); +} + +(function () { + document.getElementById('f_unhide_1').onclick = changeVisibility; +})(); + diff --git a/ignore.html b/ignore.html new file mode 100644 index 0000000..a8d4ec6 --- /dev/null +++ b/ignore.html @@ -0,0 +1,85 @@ +{{* -*- brindille -*- *}} + +{{* + Marquer la ligne d'écriture « à ignorer » + @param immo_id : numéro de ligne +*}} + +{{#select + trans.id AS trans_id, + trans.date AS date, + trans.label AS label, + line.debit AS amount + FROM acc_transactions_lines AS line + INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id + WHERE line.id = :line_id + ; + :line_id = $_GET.immo_id + assign=ligne_immo +}} +{{else}} + {{:error message="Il n'y a aucune écriture avec le numéro de ligne %s !"|args:$_GET.immo_id}} +{{/select}} +{{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}}{{/load}} + +{{* Traiter l'envoi du formulaire *}} +{{#form on="proceed"}} + {{if $_POST.ignore != null && $info_immo == null}} + {{* ignorer l'écriture *}} + {{:assign duration=0}} + {{:assign status="ignored"}} + {{:save + key=""|uuid + validate_schema="schema.json" + type="immo" + line=$_GET.immo_id|intval + duration=$duration + date=$ligne_immo.date + status=$status + }} + {{:redirect force="index.html?ok=1&msg=infos&type_immo=unfinished"}} + {{elseif $_POST.ignore == null && $info_immo != null}} + {{* dés-ignorer l'écriture *}} + {{:delete id=$info_immo.id}} + {{:redirect force="index.html?ok=1&msg=infos&type_immo=unfinished"}} + {{else}} + {{:redirect force="index.html?type_immo=unfinished"}} + {{/if}} +{{else}} + {{:form_errors}} +{{/form}} + +{{:admin_header title="Ignorer l'écriture" custom_css="./style.css" current="module_amortissement"}} + +{{* barre de navigation *}} +{{if ! $dialog}} + {{:include file="_nav.html" current="index"}} +{{/if}} + + +
    + Ignorer +
    +
    +
    Écriture
    +
    #{{$ligne_immo.trans_id}} {{$ligne_immo.label}}
    +
    Montant
    +
    {{"%f"|math:$ligne_immo.amount|money_currency}}
    +
    +
    +
    + {{if $info_immo != null && $info_immo.status == "ignored"}} + {{:input type="checkbox" name="ignore" checked="checked" value="1" label="Ignoré" help="Décocher pour ne plus ignorer l'écriture"}} + {{else}} + {{:input type="checkbox" name="ignore" value="1" label="Ignoré" help="Cocher pour ignorer l'écriture ; elle n'apparaitra plus dans la liste des immobilisations"}} + {{/if}} +
    +
    + +

    + {{:button type="submit" name="proceed" label="Confirmer" shape="right" class="main"}} +

    + + + +{{:admin_footer}} diff --git a/style.css b/style.css index 40922ee..5c0e9c6 100644 --- a/style.css +++ b/style.css @@ -38,6 +38,11 @@ h2[class="aide"], h3[class="aide"] { margin-right: 0; } +.informations dl.describe > dd { + margin-left: 0; + margin-right: 0; +} + nav.amort aside { margin-top : 0; } From 900b0f5a4751209995f0a663f484ac118cc2f084 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 19 Nov 2025 11:27:59 +0100 Subject: [PATCH 28/75] =?UTF-8?q?Filtrer=20les=20libell=C3=A9s=20des=20?= =?UTF-8?q?=C3=A9critures?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _immobilisations.html | 10 +++- _immobilisations_autres.html | 12 ++++- _nav.html | 8 +++ _unfinished.html | 13 ++++- amortization.html | 11 ++++- config.html | 6 +-- filters.html | 94 ++++++++++++++++++++++++++++++++++++ other_amortizations.html | 11 ++++- scripts.js | 17 ++++++- 9 files changed, 171 insertions(+), 11 deletions(-) create mode 100644 filters.html diff --git a/_immobilisations.html b/_immobilisations.html index 57ca24e..337fc0b 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -37,8 +37,16 @@ {{/foreach}} {{:assign condition=$condition|cat:"0)"}} {{:assign condition=$condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"}} - {{:assign nb_immo=0}} + {{: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)"}} + {{:assign condition=$condition|cat:" AND "|cat:$filter_condition}} + + {{:assign nb_immo=0}} {{#select trans.id as trans_id, trans.label as trans_label, diff --git a/_immobilisations_autres.html b/_immobilisations_autres.html index fb1970b..41a547f 100644 --- a/_immobilisations_autres.html +++ b/_immobilisations_autres.html @@ -29,7 +29,7 @@ {{* lister les immobilisations *}} - {{:include file="_get_config.html" keep="module.config.prefixes"}} + {{:include file="_get_config.html" keep="module.config"}} {{:assign condition="("}} {{#foreach from=$module.config.prefixes item="code"}} @@ -38,8 +38,16 @@ {{/foreach}} {{:assign condition=$condition|cat:"0)"}} {{:assign condition=$condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"}} - {{:assign nb_immo=0}} + {{: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)"}} + {{:assign condition=$condition|cat:" AND "|cat:$filter_condition}} + + {{:assign nb_immo=0}} {{#select trans.id as trans_id, trans.label as trans_label, diff --git a/_nav.html b/_nav.html index 1cc3608..9c56bfb 100644 --- a/_nav.html +++ b/_nav.html @@ -33,4 +33,12 @@
  • Sortie de bilan
  • {{/if}} + + {{if $current == "config"}} + + {{/if}} diff --git a/_unfinished.html b/_unfinished.html index 3565470..ab7e1e0 100644 --- a/_unfinished.html +++ b/_unfinished.html @@ -52,7 +52,7 @@ {{* lister les immobilisations en cours de constitution *}} - {{:include file="_get_config.html" keep="module.config.unfinished"}} + {{:include file="_get_config.html" keep="module.config"}} {{:assign accounts_condition="("}} {{#foreach from=$module.config.unfinished item="elem"}} @@ -61,8 +61,17 @@ {{/foreach}} {{:assign accounts_condition=$accounts_condition|cat:"0)"}} {{:assign condition=$accounts_condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"}} - {{:assign nb_immo=0}} + {{: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)"}} + {{:assign condition=$condition|cat:" AND "|cat:$filter_condition}} + {{*:debug condition=$condition*}} + + {{:assign nb_immo=0}} {{#select trans.id as trans_id, trans.label as trans_label, diff --git a/amortization.html b/amortization.html index 1801ea8..9eb9874 100644 --- a/amortization.html +++ b/amortization.html @@ -79,6 +79,14 @@ {{/if}} {{* Autres amortissements non rattachés *}} +{{:include file="_get_config.html" keep="module.config"}} +{{: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)"}} + {{#select line.id as l_id, line.id_transaction as t_id, @@ -94,8 +102,9 @@ INNER JOIN acc_accounts AS account ON account.id = line.id_account INNER JOIN acc_transactions AS trans ON trans.id = line.id_transaction INNER JOIN acc_years AS y ON y.id = trans.id_year - WHERE account.code LIKE "28%" AND credit > 0 AND (NOT trans.status & 16) + WHERE account.code LIKE "28%" AND credit > 0 AND (NOT trans.status & 16) AND !filter_condition ORDER BY trans.date, trans.label; + !filter_condition=$filter_condition assign=autre_amort }} {{#select diff --git a/config.html b/config.html index 25b2dc3..7695c17 100644 --- a/config.html +++ b/config.html @@ -1,8 +1,5 @@ {{* -*- brindille -*- *}} -{{:admin_header title="Configuration" custom_css="./style.css" current="module_amortissement"}} -{{:include file="_nav.html" current="config"}} - {{if $_GET.ok == 1}}

    Configuration enregistrée.

    {{/if}} @@ -52,6 +49,9 @@ {{:form_errors}} {{/form}} +{{:admin_header title="Configuration" custom_css="./style.css" current="module_amortissement"}} +{{:include file="_nav.html" current="config"}} + {{* récupérer l'exercice courant ou sinon le plus récent *}} {{:assign var="selected_year" from="logged_user.preferences.accounting_year"}} {{if $selected_year == null}} diff --git a/filters.html b/filters.html new file mode 100644 index 0000000..36228af --- /dev/null +++ b/filters.html @@ -0,0 +1,94 @@ +{{* -*- brindille -*- *}} + +{{:admin_header title="Configuration" custom_css="./style.css" current="module_amortissement"}} +{{:include file="_nav.html" current="config" subcurrent="filters"}} + +{{if $_GET.ok == 1}} +

    Configuration enregistrée.

    +{{/if}} + +{{* lecture config *}} +{{:include file="./_get_config.html" keep="module.config"}} + +{{#form on="save"}} + {{* enregistrer les filtres dans la config *}} + {{#foreach from=$_POST.filters item="filter"}} + {{if $filter != ""}} + {{:assign var="filters." value=$filter}} + {{/if}} + {{/foreach}} + {{:save key="config" filters=$filters}} + {{:redirect to="./filters.html"}} +{{/form}} + + +

    Liste de libellés à ignorer

    +

    + Les écritures dont le libellé contient un des textes ci-dessous seront ignorées +

    + +
    {{"%f"|math:$debit|money:false}} {{$account_label}} + {{:linkbutton + label="Modifier" + href="ignore.html?immo_id=%s"|args:$immo_id + shape="edit" + target="_dialog" + }} +
    + + + + + + + + {{if $module.config.filters == null}} + + + + + {{else}} + {{#foreach from=$module.config.filters item="filter"}} + + + + + {{/foreach}} + {{/if}} + + + + + + + +
    Libellé
    + {{:input type="text" name="filters[]" required=false}} + + {{:button + label="Enlever" + title="Enlever une ligne" + shape="minus" + name="remove_line" + }} +
    + {{:input type="text" name="filters[]" default=$filter required=false}} + + {{:button + label="Enlever" + title="Enlever une ligne" + shape="minus" + name="remove_line" + }} +
    {{:button shape="plus" label="Ajouter" title="Ajouter un libellé"}}
    +

    + {{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}} +

    + + + + diff --git a/other_amortizations.html b/other_amortizations.html index 84d6eaa..a3758d9 100644 --- a/other_amortizations.html +++ b/other_amortizations.html @@ -23,6 +23,14 @@ {{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}} {{/select}} +{{:include file="_get_config.html" keep="module.config"}} +{{: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)"}} + {{#select line.id as l_id, line.id_transaction as t_id, @@ -38,8 +46,9 @@ INNER JOIN acc_accounts AS account ON account.id = line.id_account INNER JOIN acc_transactions AS trans ON trans.id = line.id_transaction INNER JOIN acc_years AS y ON y.id = trans.id_year - WHERE account.code LIKE "28%" AND credit > 0 AND (NOT trans.status & 16) + WHERE account.code LIKE "28%" AND credit > 0 AND (NOT trans.status & 16) AND !filter_condition ORDER BY trans.date, trans.label; + !filter_condition=$filter_condition assign=autre_amort }} {{#select diff --git a/scripts.js b/scripts.js index 818d3ed..15369ff 100644 --- a/scripts.js +++ b/scripts.js @@ -149,7 +149,7 @@ function initLine(row) { var min = removeBtn.getAttribute('min'); if (count <= min) { - alert("Il n'est pas possible d'avoir moins de " + min + " compte(s)."); + alert("Il n'est pas possible d'avoir moins de " + min + " ligne(s)."); return false; } @@ -235,3 +235,18 @@ function computeTotal(id_total, id_url) { let new_href = url.href.replace(/trans=.*/, 'trans=' + Object.values(transactions)); url.href = new_href; } + +// dupliquer la dernière ligne d'une table +function copyLine(button) { + button.onclick = () => { + let lines = button.closest("table").querySelectorAll('tbody tr'); + let line = lines[lines.length - 1]; + let newNode = line.cloneNode(true); + let libelle = newNode.querySelector('input'); + libelle.value = ''; + + // ajouter la nouvelle ligne + line.parentNode.appendChild(newNode); + initLine(newNode); + }; +} From 3e9f215816b62d8c481b26b8202be80214a6adff Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 25 Nov 2025 13:53:21 +0100 Subject: [PATCH 29/75] Ajout totaux dans les onglets Amortissables, Amorties et En cours --- _archives.html | 54 ++++++++++++++++++++++++++++++++++++++++++- _immobilisations.html | 20 +++++++++++++++- _unfinished.html | 18 +++++++++++++++ style.css | 31 +++++++++++++++++++++++-- 4 files changed, 119 insertions(+), 4 deletions(-) diff --git a/_archives.html b/_archives.html index 22ce879..4385dff 100644 --- a/_archives.html +++ b/_archives.html @@ -31,7 +31,6 @@ 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 acc_transactions_lines AS line2 ON line.debit = line2.credit INNER JOIN acc_transactions AS trans2 ON trans2.id = line2.id_transaction INNER JOIN acc_accounts AS acc2 ON acc2.id = line2.id_account @@ -61,10 +60,15 @@ {{:assign nb_immo=0}} + {{:assign total_immo = 0}} + {{:assign total_cessions = 0}} {{#foreach from=$immo_archivees}} {{: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:$debit}} + {{:assign var="montant" from="sommes_immo.%s"|args:$account_code}} + {{:assign var="sommes_immo.%s"|args:$account_code value="%d+%d"|math:$montant:$debit}} #{{$trans_id}} {{$trans_date|date_short}} @@ -77,10 +81,58 @@ + {{* voir s'il y a une écriture de cession associée à cette immo *}} + {{#select + trans.id, + trans.label, + trans.date, + line.id, + line.debit, + acc.code, + acc.label + 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}} {{/foreach}} {{if $nb_immo == 0}}

    Aucune immobilisation

    + {{else}} + {{/if}}
    diff --git a/_immobilisations.html b/_immobilisations.html index 337fc0b..d823bc6 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -47,6 +47,7 @@ {{:assign condition=$condition|cat:" AND "|cat:$filter_condition}} {{:assign nb_immo=0}} + {{:assign total_immo = 0}} {{#select trans.id as trans_id, trans.label as trans_label, @@ -148,11 +149,14 @@ {{if $type_immo == "amortized" && $amort_amount < $debit && $status != "amortized"}}{{:continue}}{{/if}} {{:assign nb_immo="%d+1"|math:$nb_immo}} + {{:assign total_immo="%d+%d"|math:$total_immo:$debit}} + {{:assign var="montant" from="sommes_immo.%s"|args:$account_code}} + {{:assign var="sommes_immo.%s"|args:$account_code value="%d+%d"|math:$montant:$debit}} #{{$trans_id}} {{$trans_date|date_short}} {{$trans_label}} - {{"%f"|math:$debit|money}} + {{$debit|money}} {{if $duration != null}}{{$duration}}{{/if}} {{$account_code}} {{$account_label}} @@ -184,5 +188,19 @@ {{if $nb_immo == 0}}

    Aucune immobilisation

    + {{else}} + {{/if}} diff --git a/_unfinished.html b/_unfinished.html index ab7e1e0..68feff2 100644 --- a/_unfinished.html +++ b/_unfinished.html @@ -72,6 +72,7 @@ {{*:debug condition=$condition*}} {{:assign nb_immo=0}} + {{:assign total_immo = 0}} {{#select trans.id as trans_id, trans.label as trans_label, @@ -122,6 +123,9 @@ {{: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:$debit}} + {{:assign var="montant" from="sommes_immo.%s"|args:$account_code}} + {{:assign var="sommes_immo.%s"|args:$account_code value="%d+%d"|math:$montant:$debit}} {{:input type="checkbox" name="selected[]" value=$trans_id}} @@ -145,6 +149,20 @@ {{if $nb_immo == 0}}

    Aucune immobilisation

    + {{else}} + {{/if}} diff --git a/style.css b/style.css index 5c0e9c6..3f65a59 100644 --- a/style.css +++ b/style.css @@ -31,7 +31,7 @@ h2[class="aide"], h3[class="aide"] { } .informations dt::after { - content: ' :'; + content: ' : '; } .informations dl.describe > dt { @@ -39,7 +39,6 @@ h2[class="aide"], h3[class="aide"] { } .informations dl.describe > dd { - margin-left: 0; margin-right: 0; } @@ -52,3 +51,31 @@ fieldset.shortFormLeft div.informations { background: rgba(var(--gSecondColor), 0.2); border-radius: .5em; } + +span.strong { + font-weight: bold; +} + +aside.totals { + float : left; + width : 30em; +} + +aside.totals dl.describe { + display: flex; +} + +aside.totals dl.describe dt { + text-align : right; + flex : 0 0 20rem; +} + +aside.totals dl.describe dt::after { + content: ' : '; +} + +aside.totals dl.describe dd { + flex : 0 0 calc(100% - 25rem); + text-align : right; +} + From 79d5afc1472fbae36575e044bcb3bd2e7d155217 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 26 Nov 2025 11:52:07 +0100 Subject: [PATCH 30/75] =?UTF-8?q?module.ini=20:=20ajout=20num=C3=A9ro=20ve?= =?UTF-8?q?rsion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module.ini b/module.ini index 89362b0..5027cdf 100644 --- a/module.ini +++ b/module.ini @@ -1,5 +1,5 @@ name="Amortissements" -description="Immobilisations et amortissements" +description="Immobilisations et amortissements\nversion 0.23" author="Jean-Christophe Engel" author_url="https://gitea.zaclys.com/lesanges" home_button=false From 018ee5583ce2d42e9911b4a9361478523bacd6b9 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 27 Nov 2025 12:02:26 +0100 Subject: [PATCH 31/75] Ajout colonnes Amortissements et Valeur nette dans tables des immos --- _immobilisations.html | 8 +++++--- _unfinished.html | 2 +- amortization.html | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/_immobilisations.html b/_immobilisations.html index d823bc6..ee13934 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -15,13 +15,14 @@ - + + + - @@ -158,8 +159,9 @@ + + - - + diff --git a/amortization.html b/amortization.html index 9eb9874..fc6aa7c 100644 --- a/amortization.html +++ b/amortization.html @@ -192,9 +192,9 @@
    {{$duree}} ans
    {{/if}} {{if $valeur_residuelle > 0}} -
    Montant déjà amorti
    +
    Montant des amortissements
    {{"%d-%d"|math:$ligne_immo.montant:$valeur_residuelle|money_currency:false}}
    -
    Valeur résiduelle
    +
    Valeur nette comptable
    {{$valeur_residuelle|money_currency}}
    {{/if}} {{if $duree != null && $valeur_residuelle > 0}} From a9fdb1a1950dd1def69dc82a4ba442b30e26d1ec Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 2 Dec 2025 14:43:10 +0100 Subject: [PATCH 32/75] =?UTF-8?q?Modification=20pr=C3=A9sentation=20totaux?= =?UTF-8?q?=20(fin=20tableau)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _archives.html | 82 ++++++++++++++++++++++++++++++------------- _immobilisations.html | 42 ++++++++++++++-------- _nav.html | 1 - _unfinished.html | 40 +++++++++++++-------- style.css | 24 ------------- 5 files changed, 112 insertions(+), 77 deletions(-) diff --git a/_archives.html b/_archives.html index 4385dff..0eed040 100644 --- a/_archives.html +++ b/_archives.html @@ -107,32 +107,66 @@ {{/select}} {{/foreach}} + + + {{if $total_immo != 0}} + {{#foreach from=$sommes_immo|ksort key="code" item="value"}} + + + + + + + + + + + + {{/foreach}} + + + + + + + + + + + + {{/if}} + {{if $total_cessions != 0}} + + + {{#foreach from=$montant_cessions|ksort key="code" item="value"}} + + + + + + + + + + + + {{/foreach}} + + + + + + + + + + + + {{/if}} +
    Date Libellé Montant DuréeAmortissementsValeur nette N° compteCompte
    {{$trans_label}} {{$debit|money}} {{if $duration != null}}{{$duration}}{{/if}}{{$amort_amount|money|or:"0,00"}}{{"%d-%d"|math:$debit:$amort_amount|money|or:"0,00"}} {{$account_code}}{{$account_label}} {{if ! $exist_amort}} {{:linkbutton diff --git a/_unfinished.html b/_unfinished.html index 68feff2..7e8ae46 100644 --- a/_unfinished.html +++ b/_unfinished.html @@ -43,7 +43,7 @@ Date LibelléMontantMontant N° compte Compte
    Total du compte {{$code}}{{$value|money}}
    Total des immobilisations{{$total_immo|money}}
    +
    Cessions du compte {{$code}}{{$value|money}}
    Total des cessions{{$total_cessions|money}}
    {{if $nb_immo == 0}}

    Aucune immobilisation

    - {{else}} - {{/if}} diff --git a/_immobilisations.html b/_immobilisations.html index ee13934..d27239d 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -187,22 +187,36 @@ {{/select}} + + {{if $total_immo != 0}} + {{#foreach from=$sommes_immo|ksort key="code" item="value"}} + + + + Total du compte {{$code}} + {{$value|money}} + + + + + + + {{/foreach}} + + + + Total des immobilisations + {{$total_immo|money}} + + + + + + + {{/if}} + {{if $nb_immo == 0}}

    Aucune immobilisation

    - {{else}} - {{/if}} diff --git a/_nav.html b/_nav.html index 9c56bfb..979bbb4 100644 --- a/_nav.html +++ b/_nav.html @@ -37,7 +37,6 @@ {{if $current == "config"}} {{/if}} diff --git a/_unfinished.html b/_unfinished.html index 7e8ae46..3e41d55 100644 --- a/_unfinished.html +++ b/_unfinished.html @@ -146,23 +146,35 @@ {{/select}} + + {{if $total_immo != 0}} + {{#foreach from=$sommes_immo|ksort key="code" item="value"}} + + + + + Total du compte {{$code}} + {{$value|money}} + + + + + {{/foreach}} + + + + + Total des immobilisations + {{$total_immo|money}} + + + + + {{/if}} + {{if $nb_immo == 0}}

    Aucune immobilisation

    - {{else}} - {{/if}} diff --git a/style.css b/style.css index 3f65a59..55f8cdd 100644 --- a/style.css +++ b/style.css @@ -55,27 +55,3 @@ fieldset.shortFormLeft div.informations { span.strong { font-weight: bold; } - -aside.totals { - float : left; - width : 30em; -} - -aside.totals dl.describe { - display: flex; -} - -aside.totals dl.describe dt { - text-align : right; - flex : 0 0 20rem; -} - -aside.totals dl.describe dt::after { - content: ' : '; -} - -aside.totals dl.describe dd { - flex : 0 0 calc(100% - 25rem); - text-align : right; -} - From c6e344fb80770b51e98b20e669c847832eda1e2b Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 2 Dec 2025 14:44:12 +0100 Subject: [PATCH 33/75] Sortie du bilan : utilisation comptes PC 2025 --- write_exit.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/write_exit.html b/write_exit.html index 340d5fa..168a776 100644 --- a/write_exit.html +++ b/write_exit.html @@ -270,8 +270,8 @@ Utilisation des « anciens » numéros de comptes because conflit avec les nouveaux numéros ; voir info.org *}} -{{:assign vnc_code="675"}} -{{:assign cession_code="775"}} +{{:assign vnc_code="652"}} +{{:assign cession_code="757"}} {{:assign var="liste_codes.6811" name="comp_account"}} {{:assign var="liste_codes.687" name="except_account"}} From b4096821e7a911b49ad9a1a76c3dfa59606fb5e1 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 2 Dec 2025 14:47:24 +0100 Subject: [PATCH 34/75] =?UTF-8?q?Mise-=C3=A0-jour=20num=C3=A9ro=20version?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module.ini b/module.ini index 5027cdf..fdd92e7 100644 --- a/module.ini +++ b/module.ini @@ -1,5 +1,5 @@ name="Amortissements" -description="Immobilisations et amortissements\nversion 0.23" +description="Immobilisations et amortissements\nversion 0.24" author="Jean-Christophe Engel" author_url="https://gitea.zaclys.com/lesanges" home_button=false From b8ff2136452bfa27b374b8adf586221c57927790 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 2 Dec 2025 16:51:20 +0100 Subject: [PATCH 35/75] =?UTF-8?q?Compl=C3=A9ment=20filtrage=20des=20libell?= =?UTF-8?q?=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _archives.html | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/_archives.html b/_archives.html index 0eed040..717e710 100644 --- a/_archives.html +++ b/_archives.html @@ -8,13 +8,21 @@ {{* Immobilisation avec une écriture de sortie de bilan *}} {{:include file="_get_config.html" keep="module.config"}} -{{:assign condition="("}} +{{:assign accounts_condition="("}} {{#foreach from=$module.config.prefixes item="code"}} {{:assign code=$code|cat:"%"|quote_sql}} - {{:assign condition=$condition|cat:"account.code LIKE "|cat:$code|cat:" OR "}} + {{:assign accounts_condition=$accounts_condition|cat:"account.code LIKE "|cat:$code|cat:" OR "}} {{/foreach}} -{{:assign condition=$condition|cat:"0)"}} -{{:assign condition=$condition|cat:" AND acc2.code = account.code AND line.debit > 0 AND line.debit = line2.credit AND NOT (trans.status & 16)"}} +{{:assign accounts_condition=$accounts_condition|cat:"0)"}} +{{:assign condition=$accounts_condition|cat:" AND acc2.code = account.code AND line.debit > 0 AND line.debit = line2.credit AND NOT (trans.status & 16)"}} + +{{: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)"}} +{{:assign condition=$condition|cat:" AND "|cat:$filter_condition}} {{#select trans.id as trans_id, From ec54c9044065ad096d53b71132d9c8e3b27f24ef Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 15 Dec 2025 15:59:18 +0100 Subject: [PATCH 36/75] Changement filtre brindille : key => value --- _check_account.html | 2 +- _get_codes.html | 6 +++++- add_asset.html | 4 ++-- save_amort.html | 4 ++-- transfer.html | 4 ++-- write_exit.html | 14 +++++++------- 6 files changed, 19 insertions(+), 15 deletions(-) diff --git a/_check_account.html b/_check_account.html index 06e1108..ce6816e 100644 --- a/_check_account.html +++ b/_check_account.html @@ -19,7 +19,7 @@ {{/foreach}} {{:assign condition=$condition|cat:"0)"}} -{{:assign account_code=$account|keys|key:0}} +{{:assign account_code=$account|keys|value:0}} {{#sql select="code" tables="acc_accounts" diff --git a/_get_codes.html b/_get_codes.html index a780b40..0373085 100644 --- a/_get_codes.html +++ b/_get_codes.html @@ -2,9 +2,13 @@ {{* déterminer le numéro du compte passé en paramètre dans un tableau + la clé est parfois l'identifiant du compte, parfois son code... + d'où l'obligation d'extraire le code de la valeur qui a toujours + la forme : code — libellé *}} -{{:assign label=$account|values|key:0}} +{{:assign values=$account|values}} +{{:assign label=$values.0}} {{:assign pos=$label|strpos:" "}} {{:assign account_code=$label|substr:0:$pos}} {{:assign var="account_code.%s"|args:$account_code value=$label}} diff --git a/add_asset.html b/add_asset.html index 898042d..39c8b00 100644 --- a/add_asset.html +++ b/add_asset.html @@ -93,8 +93,8 @@ date=$_POST.date_achat label=$_POST.designation amount=$_POST.montant - debit=$debit_account|keys|key:0 - credit=$credit_account|keys|key:0 + debit=$debit_account|keys|value:0 + credit=$credit_account|keys|value:0 id_project=$_POST.id_project }} diff --git a/save_amort.html b/save_amort.html index 8fc110d..2872348 100644 --- a/save_amort.html +++ b/save_amort.html @@ -181,14 +181,14 @@ {{:assign var="lines." debit=$_POST.montant - account=$debit_account|keys|key:0 + account=$debit_account|keys|value:0 id_project=$_GET.project_id label=$_POST.designation }} {{:assign var="lines." credit=$_POST.montant - account=$credit_account|keys|key:0 + account=$credit_account|keys|value:0 id_project=$_GET.project_id label=$_POST.designation }} diff --git a/transfer.html b/transfer.html index c7f5dfc..6756386 100644 --- a/transfer.html +++ b/transfer.html @@ -54,7 +54,7 @@ account=$elem keep="account_code" }} - {{:assign debit_account=$account_code|keys|key:0}} + {{:assign debit_account=$account_code|keys|value:0}} {{:assign var="amount" from="_POST.credit_lines.%s"|args:$rang}} {{:assign var="label" from="_POST.line_labels.%s"|args:$rang}} {{:assign @@ -71,7 +71,7 @@ account=$_POST.debit_account keep="account_code" }} - {{:assign credit_account=$account_code|keys|key:0}} + {{:assign credit_account=$account_code|keys|value:0}} {{:assign var="amount" from="_POST.debit_lines.%s"|args:0}} {{:assign count=$_POST.line_labels|count}} {{:assign count="%d-1"|math:$count}} diff --git a/write_exit.html b/write_exit.html index 168a776..1e5d067 100644 --- a/write_exit.html +++ b/write_exit.html @@ -73,7 +73,7 @@ account=$account keep="account_code" }} - {{:assign amort_account_code=$account_code|keys|key:0}} + {{:assign amort_account_code=$account_code|keys|value:0}} {{if $valeur_nette > 0}} {{* immo non totalement amortie *}} @@ -84,7 +84,7 @@ account=$_POST.comp_account keep="account_code" }} - {{:assign comp_account_code=$account_code|keys|key:0}} + {{:assign comp_account_code=$account_code|keys|value:0}} {{:assign libelle="Amortissement complémentaire "|cat:$ligne_immo.label}} {{:assign @@ -110,7 +110,7 @@ account=$_POST.except_account keep="account_code" }} - {{:assign except_account_code=$account_code|keys|key:0}} + {{:assign except_account_code=$account_code|keys|value:0}} {{:assign libelle="Amortissement exceptionnel "|cat:$ligne_immo.label}} {{:assign var="lines." @@ -150,7 +150,7 @@ account=$_POST.immo_account keep="account_code" }} - {{:assign immo_account_code=$account_code|keys|key:0}} + {{:assign immo_account_code=$account_code|keys|value:0}} {{:assign libelle="Sortie du bilan de "|cat:$ligne_immo.label}} {{:assign var="lines." @@ -172,7 +172,7 @@ account=$_POST.vnc_account keep="account_code" }} - {{:assign vnc_account_code=$account_code|keys|key:0}} + {{:assign vnc_account_code=$account_code|keys|value:0}} {{:assign var="lines." account=$vnc_account_code @@ -203,13 +203,13 @@ account=$_POST.creance_account keep="account_code" }} - {{:assign creance_account=$account_code|keys|key:0}} + {{:assign creance_account=$account_code|keys|value:0}} {{:include file="_get_codes.html" account=$_POST.cession_account keep="account_code" }} - {{:assign cession_account=$account_code|keys|key:0}} + {{:assign cession_account=$account_code|keys|value:0}} {{:api method="POST" path="accounting/transaction" From 6fe88739c19725c5deb8abb5d241fe83329575b1 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 15 Dec 2025 19:21:17 +0100 Subject: [PATCH 37/75] Correction bug classement manuel immobilisation --- add_infos.html | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/add_infos.html b/add_infos.html index a147948..8001254 100644 --- a/add_infos.html +++ b/add_infos.html @@ -104,9 +104,9 @@ Classement
    (obligatoire)
    - {{:input type="radio-btn" name="classify" value="managed" label="Amortir" default=$default onclick="toggleInputs('div_inputs','f_classify_managed', 'f_classify_amortized')"}} - {{:input type="radio-btn" name="classify" value="amortized" label="Amortissement terminé" help="Cette immobilisation sera classée parmi les immobilisations amorties" default=$default onclick="toggleInputs('div_inputs','f_classify_managed', 'f_classify_amortized')"}} - {{:input type="radio-btn" name="classify" value="ignored" label="Ignorer l'écriture" help="Cette écriture n'apparaitra plus dans la liste des immobilisations" default=$default onclick="toggleInputs('div_inputs','f_classify_managed', 'f_classify_amortized')"}} + {{:input type="radio-btn" name="classify" value="managed" label="Amortir" default=$default}} + {{:input type="radio-btn" name="classify" value="amortized" label="Amortissement terminé" help="Cette immobilisation sera classée parmi les immobilisations amorties" default=$default}} + {{:input type="radio-btn" name="classify" value="ignored" label="Ignorer l'écriture" help="Cette écriture n'apparaitra plus dans la liste des immobilisations" default=$default}}
    @@ -132,11 +132,12 @@ +{{:admin_footer}} + {{* activer/désactiver les champs de saisie *}} -{{:admin_footer}} +function toggleInputs(event) { + toggleInputFields('div_inputs', 'f_classify_managed'); +} + +(function () { + const radios = document.querySelectorAll('input[name="classify"]'); + radios.forEach(radio => { + radio.addEventListener("change", toggleInputs); + }); +})(); + + From b50de139f8b8c7b3b82c4905964f4582e51cd26e Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 15 Dec 2025 19:22:25 +0100 Subject: [PATCH 38/75] Correction bug sortie bilan si date sortie dans aucun exercice ouvert --- balance_sheet_exit.html | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/balance_sheet_exit.html b/balance_sheet_exit.html index 3a56e4a..3d19e35 100644 --- a/balance_sheet_exit.html +++ b/balance_sheet_exit.html @@ -71,18 +71,13 @@ {{:assign valeur_nette="%f-%f"|math:$ligne_immo.montant:$amort_amount}} {{* -lister les exercices ouverts : - - dont la date de fin est postérieure à la date du dernier amortissment - - dont la date de début est antérieure ou égale à la date du jour + lister les exercices ouverts dont la date de fin est postérieure à la date du dernier amortissment *}} {{:assign default_exit_date=""}} {{#years closed=false order="start_date" where=":debut <= end_date" :debut=$date_debut}} {{if $start_date|strtotime <= $now && $now <= $end_date|strtotime}} {{:assign default_exit_date=$now|date_short}} {{/if}} - {{if $start_date|strtotime > $now}} - {{:break}} - {{/if}} {{:assign var="years." id=$id label=$label start_date=$start_date end_date=$end_date}} {{:assign debut=$start_date|date_short}} {{:assign fin=$end_date|date_short}} From bdef57545cc6f73f842810b4374632eee6cb55c6 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 16 Dec 2025 10:11:01 +0100 Subject: [PATCH 39/75] =?UTF-8?q?V=C3=A9rification=20date=20transfert=20im?= =?UTF-8?q?mo=20en=20cours?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- transfer.html | 104 +++++++++++++++++++++++++++++--------------------- 1 file changed, 61 insertions(+), 43 deletions(-) diff --git a/transfer.html b/transfer.html index 6756386..71f123e 100644 --- a/transfer.html +++ b/transfer.html @@ -17,8 +17,59 @@ {{:error message="Aucun exercice ouvert"}} {{/years}} +{{* déterminer les comptes d'immo en cours *}} +{{:include file="_get_config.html" keep="module.config.unfinished"}} +{{:assign condition="("}} +{{#foreach from=$module.config.unfinished item="elem"}} + {{:assign code=$elem.code|cat:"%"|quote_sql}} + {{:assign condition=$condition|cat:" account.code LIKE "|cat:$code|cat:" OR "}} +{{/foreach}} +{{:assign condition=$condition|cat:"0)"}} + +{{* détails des écritures paramètres *}} +{{:assign trans=$_GET.trans|explode:","}} +{{:assign var="trans_list" value=$trans|map:quote_sql}} +{{:assign trans_list=$trans_list|implode:","}} +{{:assign trans_list="("|cat:$trans_list|cat:")"}} +{{:assign condition=$condition|cat:" AND trans.id IN "|cat:$trans_list}} +{{:assign condition=$condition|cat:" AND NOT (trans.status & 16)"}} + +{{#select + trans.id as trans_id, + trans.label AS trans_label, + trans.date AS trans_date, + SUM(line.debit) AS line_debit, + account.code AS account_code, + account.label AS account_label, + line.id_project as project_id + 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 + WHERE !condition + GROUP BY trans.id + ; + !condition=$condition +}} + {{:assign var="transactions.%s"|args:$trans_id + amount=$line_debit + date=$trans_date + code=$account_code + label=$account_label + project=$project_id + }} + {{if $max_date == null || $trans_date > $max_date}} + {{:assign max_date=$trans_date}} + {{/if}} +{{/select}} + {{* Traiter l'envoi du formulaire *}} {{#form on="transfer"}} + {{* vérifier que la date de mise en service est postérieure aux dates d'acquisition *}} + {{if $_POST.date_mes|parse_date < $max_date}} + {{:assign dacq=$max_date|date_short}} + {{:error message="La date de mise en service (%s) doit être postérieure à la date d'acquisition d'immobilisation la plus récente (%s) !"|args:$_POST.date_mes:$dacq}} + {{/if}} + {{* vérifier que la date de mise en service est située dans l'exercice sélectionné *}} {{:assign ts_date = $_POST.date_mes|parse_date|strtotime}} {{:assign ok=false}} @@ -120,7 +171,6 @@ {{:assign lines_count=$lines|count}} {{:assign lines_count="%d-1"|math:$lines_count}} {{:assign var="immo_id" from="result.lines.%s.id"|args:$lines_count}} - {{* enregistrer les infos de l'immobilisation *}} {{:save key=""|uuid @@ -137,7 +187,6 @@ {{:assign type_immo="other"}} {{/if}} {{:redirect force="index.html?ok=1&msg=immobilisation&type_immo=%s"|args:$type_immo}} - {{/form}} {{* barre de navigation *}} @@ -148,6 +197,15 @@ {{:form_errors}} {{* formulaire d'ajout d'immobilisation *}} +{{if $_GET.trans == null}} + {{:error message="Vous n'avez sélectionné aucune écriture !"}} +{{/if}} + +{{if $max_date|strtotime > $now}} + {{:assign default_date=$max_date}} +{{else}} + {{:assign default_date=$now|date_short}} +{{/if}} {{#select id,label FROM acc_projects WHERE archived = 0;}} {{:assign var="projects.%d"|args:$id value=$label}} @@ -162,53 +220,13 @@

    La date choisie n'est dans aucun exercice ouvert !

    -{{if $_GET.trans == null}} - {{:error message="Vous n'avez sélectionné aucune écriture !"}} -{{/if}} - -{{* déterminer les comptes d'immo en cours *}} -{{:include file="_get_config.html" keep="module.config.unfinished"}} -{{:assign condition="("}} -{{#foreach from=$module.config.unfinished item="elem"}} - {{:assign code=$elem.code|cat:"%"|quote_sql}} - {{:assign condition=$condition|cat:" account.code LIKE "|cat:$code|cat:" OR "}} -{{/foreach}} -{{:assign condition=$condition|cat:"0)"}} - -{{* détails des écritures paramètres *}} -{{:assign trans=$_GET.trans|explode:","}} -{{:assign var="trans_list" value=$trans|map:quote_sql}} -{{:assign trans_list=$trans_list|implode:","}} -{{:assign trans_list="("|cat:$trans_list|cat:")"}} -{{:assign condition=$condition|cat:" AND trans.id IN "|cat:$trans_list}} -{{:assign condition=$condition|cat:" AND NOT (trans.status & 16)"}} - -{{#select - trans.id as trans_id, - trans.label AS trans_label, - trans.date AS trans_date, - SUM(line.debit) AS line_debit, - account.code AS account_code, - account.label AS account_label, - line.id_project as project_id - 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 - WHERE !condition - GROUP BY trans.id - ; - !condition=$condition -}} - {{:assign var="transactions.%s"|args:$trans_id amount=$line_debit date=$trans_date code=$account_code label=$account_label project=$project_id}} -{{/select}} -
    Données de l'immobilisation
    {{:input type="select" name="id_year" label="Exercice" default=$selected_year required=true default_empty="— Faire un choix —" options=$open_years}} - {{:input type="date" name="date_mes" label="Date de mise en service" required=true default=$now|date_short}} + {{:input type="date" name="date_mes" label="Date de mise en service" required=true default=$default_date}} {{:input type="text" name="designation" label="Libellé" required=true}}
    From 4ac6cbb1a6528f905216dfbb197653ccd963343c Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 16 Dec 2025 11:58:07 +0100 Subject: [PATCH 40/75] =?UTF-8?q?Immo=20en=20cours=20:=20ajout=20total=20g?= =?UTF-8?q?=C3=A9n=C3=A9ral=20+=20modif=20pr=C3=A9sentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _unfinished.html | 25 +++++++++++----------- scripts.js | 55 +++++++++++++++++++++++++++++++++--------------- style.css | 5 +++++ 3 files changed, 56 insertions(+), 29 deletions(-) diff --git a/_unfinished.html b/_unfinished.html index 3e41d55..60ac42b 100644 --- a/_unfinished.html +++ b/_unfinished.html @@ -16,9 +16,12 @@

    Montants sélectionnés -
      -
    •  
    • -
    + + + + + +

    @@ -181,15 +184,13 @@ From 217534668def7a3f807cdbbb3d33c0dd164657c6 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 18 Mar 2026 09:31:04 +0100 Subject: [PATCH 67/75] =?UTF-8?q?Harmonisation=20libell=C3=A9=20affichage?= =?UTF-8?q?=20toutes=20=C3=A9critures?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _immobilisations_autres.html | 4 +--- _unfinished.html | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/_immobilisations_autres.html b/_immobilisations_autres.html index 8d82edf..5308366 100644 --- a/_immobilisations_autres.html +++ b/_immobilisations_autres.html @@ -30,7 +30,7 @@

    - {{:input type="checkbox" value=1 name="unhide" checked="%s"|args:$checked label="Afficher les écritures marquées ignorées" }} + {{:input type="checkbox" value=1 name="unhide" checked="%s"|args:$checked label="Afficher toutes les écritures" }}
    @@ -58,8 +58,6 @@ {{:assign condition=$condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"}} {{if $unhide == null}} - {{*:assign condition=$condition|cat:" AND NOT (trans.status & 16)"*}} - {{:assign filter_condition=" NOT ("}} {{#foreach from=$module.config.filters item="filter"}} {{:assign filter="%"|cat:$filter|cat:"%"|quote_sql}} diff --git a/_unfinished.html b/_unfinished.html index cdf42af..359877a 100644 --- a/_unfinished.html +++ b/_unfinished.html @@ -55,7 +55,7 @@
    - {{:input type="checkbox" value=1 name="unhide" checked="%s"|args:$checked label="Afficher les écritures marquées ignorées" }} + {{:input type="checkbox" value=1 name="unhide" checked="%s"|args:$checked label="Afficher toutes les écritures" }}
    From a66aeb69ba879cc62a9210e0983f67bbeeeda879 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 18 Mar 2026 09:33:03 +0100 Subject: [PATCH 68/75] =?UTF-8?q?Am=C3=A9lioration=20recherche=20=C3=A9cri?= =?UTF-8?q?tures=20immobilisation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _immobilisations.html | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/_immobilisations.html b/_immobilisations.html index fc44739..3bc7f54 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -38,14 +38,16 @@ {{/foreach}} {{:assign account_condition=$account_condition|cat:"0)"}} - {{:assign filter_condition=" AND NOT ("}} + {{: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)"}} + {{:assign filter_condition="($$.status IS NULL AND NOT (trans.status & 16) AND "|cat:$filter_condition|cat:")"}} + {{:assign doc_condition="($$.status <> 'ignored' AND $$.status <> 'archived')"}} - {{:assign condition=$account_condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"|cat:$filter_condition}} + {{:assign condition=$account_condition|cat:" AND debit > 0 AND ("|cat:$filter_condition|cat:" OR "|cat:$doc_condition|cat:")"}} {{:assign nb_immo=0}} {{:assign total_immo = 0}} {{#select @@ -57,30 +59,25 @@ line.label AS line_label, account.id as account_id, account.code as account_code, - trans.id_year as trans_id_year + trans.id_year as trans_id_year, + $$.duration as duration, + $$.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 + LEFT JOIN !table AS info ON $$.line = line.id WHERE !condition ORDER BY 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 duration=null}} + {{:assign duration=$duration}} {{:assign montant_immo=$debit}} - - {{* voir si l'immo est prise en charge *}} - {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_line_id|intval}} - {{:assign duration=$duration}} - {{:assign status=$status}} - {{else}} - {{:assign amortissable="nsp"}} + {{if $status == null}} {{:assign status="unknown"}} - {{/load}} - {{if $status == "ignored"}} - {{:continue}} {{/if}} {{* chercher des écritures liées à l'immo courante au crédit du même compte @@ -104,9 +101,6 @@ {{:assign montant_immo="%d-%d"|math:$montant_immo:$credit}} {{/select}} {{if $montant_immo == 0}} - {{:assign status="archived"}} - {{/if}} - {{if $status == "archived"}} {{:continue}} {{/if}} @@ -130,10 +124,9 @@ assign="amort_lines." }} {{/select}} - {{:assign amort_amount=0}} {{#foreach from=$amort_lines item="elem"}} - {{* voir s'il existe un doc associé *}} + {{* voir s'il existe un doc associé à l'écriture d'amortissement *}} {{#load type="link" where="$$.immo_line_id = :immo_line_id AND $$.amort_trans_id = :amort_trans_id" :immo_line_id = $immo_line_id @@ -157,9 +150,8 @@ {{* classement par onglet *}} {{if $type_immo == "managed" && $amort_amount >= $montant_immo}}{{:continue}}{{/if}} - {{if $type_immo == "managed" && $status == "amortized"}}{{:continue}}{{/if}} {{if $status == "unknown" && ! $exist_amort}}{{:continue}}{{/if}} - {{if $type_immo == "amortized" && $amort_amount < $montant_immo && $status != "amortized"}}{{:continue}}{{/if}} + {{if $type_immo == "amortized" && $amort_amount < $montant_immo}}{{:continue}}{{/if}} {{* ?? *}} {{:assign nb_immo="%d+1"|math:$nb_immo}} {{:assign total_immo="%d+%d"|math:$total_immo:$montant_immo}} From 8295cfa09d6434f7c2ce07b14a645ceda0f6d465 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 18 Mar 2026 09:34:26 +0100 Subject: [PATCH 69/75] =?UTF-8?q?Am=C3=A9lioration=20affichage=20libell?= =?UTF-8?q?=C3=A9=20et=20correction=20oubli?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _archives.html | 6 ++++-- _immobilisations.html | 8 +++++--- _immobilisations_autres.html | 2 +- amortization.html | 9 ++++----- other_amortizations.html | 4 ++-- save_amort.html | 6 +++++- 6 files changed, 21 insertions(+), 14 deletions(-) diff --git a/_archives.html b/_archives.html index 9252b3b..4a679bf 100644 --- a/_archives.html +++ b/_archives.html @@ -89,7 +89,8 @@ WHEN true THEN links.id_transaction WHEN false THEN links.id_related END as other_id, - line.credit + line.credit, + MAX(trans2.date) as exit_date FROM acc_transactions AS trans INNER JOIN acc_transactions_links as links ON (trans.id = links.id_transaction OR trans.id = links.id_related) @@ -104,6 +105,7 @@ assign="credit_immo." }} {{:assign solde_immo="%d-%d"|math:$solde_immo:$credit}} + {{:assign exit_date=$exit_date}} {{/select}} {{if $solde_immo == 0}} @@ -150,7 +152,7 @@ #{{$trans_id}} {{$trans_date|date_short}} {{$exit_date|date_short}} - {{$trans_label}}{{if $line_label != null}} — {{$line_label}}{{/if}} + {{$trans_label}}{{if $line_label != null && $line_label != $trans_label}} — {{$line_label}}{{/if}} {{"%f"|math:$montant_immo|money_html:false|raw}} {{$account_code}} {{$account_label}} diff --git a/_immobilisations.html b/_immobilisations.html index 3bc7f54..92a6022 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -1,6 +1,6 @@ {{* -*- brindille -*- *}} -{{* Liste des immobilisations en cours ou amorties *}} +{{* Liste des immobilisations en cours d'amortissement ou amorties *}}
    @@ -100,6 +100,7 @@ }} {{:assign montant_immo="%d-%d"|math:$montant_immo:$credit}} {{/select}} + {{* Immobilisation soldée ? *}} {{if $montant_immo == 0}} {{:continue}} {{/if}} @@ -107,7 +108,7 @@ {{* voir s'il existe des écritures d'amortissement associées *}} {{:assign amort_lines=null}} {{#select - (l_amort.credit) as amount, + l_amort.credit as amount, CASE links.id_related = t_immo.id WHEN true THEN links.id_transaction WHEN false THEN links.id_related @@ -124,6 +125,7 @@ assign="amort_lines." }} {{/select}} + {{:assign amort_amount=0}} {{#foreach from=$amort_lines item="elem"}} {{* voir s'il existe un doc associé à l'écriture d'amortissement *}} @@ -160,7 +162,7 @@ #{{$immo_trans_id}} {{$trans_date|date_short}} - {{$trans_label}}{{if $line_label != null}} — {{$line_label}}{{/if}} + {{$trans_label}}{{if $line_label != null && $line_label != $trans_label}} — {{$line_label}}{{/if}} {{$montant_immo|money_html:false|raw}} {{if $duration != null}}{{$duration}}{{/if}} {{$amort_amount|money_html:false|raw}} diff --git a/_immobilisations_autres.html b/_immobilisations_autres.html index 5308366..05849bb 100644 --- a/_immobilisations_autres.html +++ b/_immobilisations_autres.html @@ -153,7 +153,7 @@ #{{$trans_id}} {{$trans_date|date_short}} - {{$trans_label}}{{if $line_label != null}} — {{$line_label}}{{/if}} + {{$trans_label}}{{if $line_label != null && $line_label != $trans_label}} — {{$line_label}}{{/if}} {{"%f"|math:$debit|money_html:false|raw}} {{$account_code}} {{$account_label}} diff --git a/amortization.html b/amortization.html index 86da589..4edf953 100644 --- a/amortization.html +++ b/amortization.html @@ -242,7 +242,7 @@
    Immobilisation
    -
    #{{$ligne_immo.trans_id}} {{$ligne_immo.label}}{{if $ligne_immo.line_label != null}} — {{$ligne_immo.line_label}}{{/if}}
    +
    #{{$ligne_immo.trans_id}} {{$ligne_immo.label}}{{if $ligne_immo.line_label != null && $ligne_immo.line_label != $ligne_immo.label}} — {{$ligne_immo.line_label}}{{/if}}
    Montant
    {{"%f"|math:$ligne_immo.montant|money_currency_html:false|raw}}
    Début d'amortissement
    @@ -292,10 +292,9 @@ {{"%f"|math:$line.amort_amount|money_html:false|raw}} {{"%f"|math:$solde|money_html:false|raw}} - {{if $line.amort_label == null}} - {{$line.trans_label}} - {{else}} - {{$line.amort_label}} + {{$line.trans_label}} + {{if $line.amort_label != null && $line.amort_label != $line.trans_label}} + — {{$line.amort_label}} {{/if}} {{$line.account_code}} diff --git a/other_amortizations.html b/other_amortizations.html index 84ac835..7018b2e 100644 --- a/other_amortizations.html +++ b/other_amortizations.html @@ -122,7 +122,7 @@ {{if $autres_amortissements != null}}
    -

    Immobilisation « {{$ligne_immo.label}}{{if $ligne_immo.line_label != null}} — {{$ligne_immo.line_label}}{{/if}} »

    +

    Immobilisation « {{$ligne_immo.label}}{{if $ligne_immo.line_label != null && $ligne_immo.line_label != $ligne_immo.label}} — {{$ligne_immo.line_label}}{{/if}} »

    @@ -144,7 +144,7 @@ diff --git a/save_amort.html b/save_amort.html index 5a509a8..d34e8c0 100644 --- a/save_amort.html +++ b/save_amort.html @@ -10,6 +10,7 @@ line.id_account as account_id, line.debit as montant, line.id_project as project_id, + line.label as line_label, trans.id as trans_id, trans.label, trans.date, @@ -27,6 +28,9 @@ {{/select}} {{:assign date_debut=$ligne_immo.date}} {{:assign var="amort_label" value="Amortissement %s"|args:$ligne_immo.label}} +{{if $ligne_immo.line_label != null && $ligne_immo.line_label != $ligne_immo.label}} + {{:assign amort_label=$amort_label|cat:" — "|cat:$ligne_immo.line_label}} +{{/if}} {{#load type="immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}} {{:assign duree=$duration}} @@ -289,7 +293,7 @@
    {{:input type="select" default=$selected_year name="id_year" label="Exercice" required=true default_empty="— Faire un choix —" options=$open_years}} {{:input type="date" name="date_amort" label="Date" required=true default=$date_amort|date_short}} - {{:input type="text" name="designation" label="Libellé" required=true default=$amort_label}} + {{:input type="text" name="designation" label="Libellé" required=true default=$amort_label size="50"}} {{:input type="money" name="montant" label="Montant" required=true default=$montant_amort}} {{:input type="list" From 8357b39d39551f0e1b3262cd84479e04e4848620 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 19 Mar 2026 10:22:40 +0100 Subject: [PATCH 70/75] =?UTF-8?q?transfert=20:=20s=C3=A9curisation=20?= =?UTF-8?q?=C3=A9critures=20li=C3=A9es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- transfer.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transfer.html b/transfer.html index c855750..02a6f5d 100644 --- a/transfer.html +++ b/transfer.html @@ -157,7 +157,7 @@ {{/if}} {{* écritures liées *}} - {{:assign var="linked_transactions" value=$_GET.trans|explode:","}} + {{:assign var="linked_transactions" value=$transactions|keys}} {{* enregistrer l'écriture *}} {{:api From 92c47983e55881aac29c6b91ec0265a398a32007 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Fri, 20 Mar 2026 12:12:02 +0100 Subject: [PATCH 71/75] Harmonisation identifiants immobilisations et amortissements --- _archives.html | 10 +++++----- _immobilisations.html | 6 +++--- _immobilisations_autres.html | 8 ++++---- _nav.html | 4 ++-- _unfinished.html | 6 +++--- add_asset.html | 8 ++++---- add_infos.html | 8 ++++---- amortization.html | 37 ++++++++++++++++++------------------ attach_amort.html | 26 ++++++++++++------------- balance_sheet_exit.html | 20 +++++++++---------- compute_exit_data.html | 14 +++++++------- detach_amort.html | 14 +++++++------- ignore.html | 10 +++++----- other_amortizations.html | 8 ++++---- save_amort.html | 22 ++++++++++----------- transfer.html | 4 ++-- write_exit.html | 14 +++++++------- 17 files changed, 109 insertions(+), 110 deletions(-) diff --git a/_archives.html b/_archives.html index 4a679bf..56f6b14 100644 --- a/_archives.html +++ b/_archives.html @@ -50,7 +50,7 @@ trans.label as trans_label, trans.date as trans_date, trans.id_year as trans_id_year, - line.id as immo_id, + line.id as immo_line_id, line.label as line_label, line.debit AS debit, account.id as account_id, @@ -69,7 +69,7 @@ {{:assign montant_immo=$debit}} {{* voir si l'immo est prise en charge *}} - {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_id|intval}} + {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_line_id|intval}} {{:assign status=$status}} {{else}} {{:assign amortissable="nsp"}} @@ -85,7 +85,7 @@ {{:assign solde_immo=$montant_immo}} {{:assign credit_immo=null}} {{#select - CASE links.id_related = :immo_id + CASE links.id_related = :immo_trans_id WHEN true THEN links.id_transaction WHEN false THEN links.id_related END as other_id, @@ -97,10 +97,10 @@ INNER JOIN acc_transactions_lines AS line on line.id_transaction = other_id INNER JOIN acc_accounts AS acc ON line.id_account = acc.id INNER JOIN acc_transactions AS trans2 ON trans2.id = other_id - WHERE trans.id = :immo_id AND line.credit > 0 AND acc.code = :account + WHERE trans.id = :immo_trans_id AND line.credit > 0 AND acc.code = :account ORDER BY trans2.date, trans2.id ; - :immo_id=$trans_id + :immo_trans_id=$trans_id :account=$account_code assign="credit_immo." }} diff --git a/_immobilisations.html b/_immobilisations.html index 92a6022..d78ca56 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -131,9 +131,9 @@ {{* voir s'il existe un doc associé à l'écriture d'amortissement *}} {{#load type="link" where="$$.immo_line_id = :immo_line_id AND $$.amort_trans_id = :amort_trans_id" + assign="link" :immo_line_id = $immo_line_id :amort_trans_id = $elem.amort_trans_id - assign="link" }} {{if $link.amort_line_id == $elem.amort_line_id}} {{:assign amort_amount="%d+%d"|math:$amort_amount:$amount}} @@ -172,14 +172,14 @@ {{if ! $exist_amort || $status == "unknown"}} {{:linkbutton label="Paramètres" - href="add_infos.html?immo_id=%s&type_immo=%s"|args:$immo_line_id:$type_immo + href="add_infos.html?immo_line_id=%s&type_immo=%s"|args:$immo_line_id:$type_immo shape="settings" target="_dialog" }} {{/if}} {{:linkbutton label="Amortissements" - href="amortization.html?immo_id=%s&type_immo=%s"|args:$immo_line_id:$type_immo + href="amortization.html?immo_line_id=%s&type_immo=%s"|args:$immo_line_id:$type_immo shape="table" }} diff --git a/_immobilisations_autres.html b/_immobilisations_autres.html index 05849bb..80b91d0 100644 --- a/_immobilisations_autres.html +++ b/_immobilisations_autres.html @@ -72,7 +72,7 @@ trans.id as trans_id, trans.label as trans_label, trans.date as trans_date, - line.id as immo_id, + line.id as immo_line_id, line.label as line_label, account.id as account_id, account.code as account_code, @@ -91,7 +91,7 @@ {{:assign compte_url="%s/acc/accounts/journal.php?id=%s&year=%s"|args:$admin_url:$account_id:$trans_id_year}} {{* voir si l'immo est prise en charge *}} - {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_id|intval}} + {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_line_id|intval}} {{:assign status=$status}} {{else}} {{:assign status="unknown"}} @@ -136,7 +136,7 @@ l_amort.credit <> 0 AND account.code LIKE '28%'; - :line_id = $immo_id|intval + :line_id = $immo_line_id|intval }} {{if $amort_amount != null}} {{:assign ignore=true}} @@ -160,7 +160,7 @@
    {{/foreach}} diff --git a/attach_amort.html b/attach_amort.html index 5d910cb..4770afa 100644 --- a/attach_amort.html +++ b/attach_amort.html @@ -10,11 +10,11 @@ id_transaction FROM acc_transactions_lines WHERE id = :line_id; - :line_id = $_GET.immo_id|intval + :line_id = $_GET.immo_line_id|intval }} {{:assign immo_trans_id=$id_transaction}} {{else}} - {{:error message="Impossible de trouver l'écriture d'immobilisation de la ligne « %s »"|args:$_GET.immo_id}} + {{:error message="Impossible de trouver l'écriture d'immobilisation de la ligne « %s »"|args:$_GET.immo_line_id}} {{/select}} {{* chercher l'écriture d'amortissement *}} @@ -22,11 +22,11 @@ id_transaction FROM acc_transactions_lines WHERE id = :line_id; - :line_id = $_GET.amort_id|intval + :line_id = $_GET.amort_line_id|intval }} - {{:assign amort_id=$id_transaction}} + {{:assign amort_trans_id=$id_transaction}} {{else}} - {{:error message="Impossible de trouver l'écriture d'amortissement de la ligne « %s »"|args:$_GET.amort_id}} + {{:error message="Impossible de trouver l'écriture d'amortissement de la ligne « %s »"|args:$_GET.amort_line_id}} {{/select}} {{* chercher les liaisons de l'écriture d'immobilisation *}} @@ -43,7 +43,7 @@ {{/select}} {{* ajouter la nouvelle liaison *}} -{{:assign var="linked_transactions." value=$amort_id}} +{{:assign var="linked_transactions." value=$amort_trans_id}} {{:api method="POST" path="accounting/transaction/%s/transactions"|args:$immo_trans_id @@ -57,18 +57,18 @@ where="$$.immo_line_id = :immo_line_id AND $$.amort_trans_id = :amort_trans_id AND $$.amort_line_id = :amort_line_id" - :immo_line_id=$_GET.immo_id|intval - :amort_trans_id = $amort_id - :amort_line_id = $_GET.amort_id|intval + :immo_line_id=$_GET.immo_line_id|intval + :amort_trans_id = $amort_trans_id + :amort_line_id = $_GET.amort_line_id|intval limit=1 }} {{else}} {{:save key=""|uuid type="link" - immo_line_id=$_GET.immo_id|intval - amort_line_id=$_GET.amort_id|intval - amort_trans_id=$amort_id + immo_line_id=$_GET.immo_line_id|intval + amort_line_id=$_GET.amort_line_id|intval + amort_trans_id=$amort_trans_id }} {{/load}} -{{:redirect force="amortization.html?immo_id=%s&ok=1&msg=attach&trans_id=%s"|args:$_GET.immo_id:$amort_id}} +{{:redirect force="amortization.html?immo_line_id=%s&ok=1&msg=attach&trans_id=%s"|args:$_GET.immo_line_id:$amort_trans_id}} diff --git a/balance_sheet_exit.html b/balance_sheet_exit.html index e06588f..e7d9ba7 100644 --- a/balance_sheet_exit.html +++ b/balance_sheet_exit.html @@ -2,7 +2,7 @@ {{* Sortir une immobilisation du bilan - @param immo_id : id de la ligne d'immobilisation + @param immo_line_id : id de la ligne d'immobilisation *}} {{* Infos de l'immobilisation *}} @@ -16,17 +16,17 @@ INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id INNER JOIN acc_accounts AS account ON line.id_account = account.id WHERE line.id = :line_id; - :line_id = $_GET.immo_id|intval + :line_id = $_GET.immo_line_id|intval assign="ligne_immo" }} {{else}} - {{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}} + {{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_line_id}} {{/select}} {{:assign date_debut=$ligne_immo.date_achat}} {{:assign ts_mes=$ligne_immo.date_achat|strtotime}} -{{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}} +{{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_line_id|intval}} {{:assign ts_mes=$date|strtotime}} {{:assign date_debut=$date}} {{:assign duree_amort=$duration}} @@ -37,7 +37,7 @@ *}} {{:assign total_credits=0}} {{#select - CASE links.id_related = :immo_id + CASE links.id_related = :immo_trans_id WHEN true THEN links.id_transaction WHEN false THEN links.id_related END as other_id, @@ -47,8 +47,8 @@ ON (trans.id = links.id_transaction OR trans.id = links.id_related) INNER JOIN acc_transactions_lines AS line on line.id_transaction = other_id INNER JOIN acc_accounts AS acc ON line.id_account = acc.id - WHERE trans.id = :immo_id AND line.credit > 0 AND acc.code = :account; - :immo_id=$ligne_immo.trans_id + WHERE trans.id = :immo_trans_id AND line.credit > 0 AND acc.code = :account; + :immo_trans_id=$ligne_immo.trans_id :account=$ligne_immo.account_code }} {{:assign total_credits="%d+%d"|math:$total_credits:$credit}} @@ -76,14 +76,14 @@ INNER JOIN acc_accounts AS account ON l_amort.id_account = account.id WHERE l_immo.id = :line_id AND account.code LIKE '28%' ; - :line_id = $_GET.immo_id|intval + :line_id = $_GET.immo_line_id|intval assign="amort_line" }} {{#load type="link" where="$$.immo_line_id = :immo_line_id AND $$.amort_trans_id = :amort_trans_id" assign="line" - :immo_line_id=$_GET.immo_id|intval :amort_trans_id=$amort_line.amort_trans_id + :immo_line_id=$_GET.immo_line_id|intval :amort_trans_id=$amort_line.amort_trans_id }} {{if $line.amort_line_id == $amort_line.amort_line_id}} {{:assign amort_number="%d+1"|math:$amort_number}} @@ -223,7 +223,7 @@ {{:error message="Vous devez d'abord enregistrer les amortissements des exercices suivants : %s"|args:$msg_amort}} {{/if}} - {{:redirect to="compute_exit_data.html?immo_id=%s&amort_amount=%s&year=%s&date_mes=%s&date_debut=%s&exit_date=%s&duree_amort=%s"|args:$_GET.immo_id:$total_amort:$selected_year:$ts_mes:$ts_debut:$ts_exit:$duree_amort}} + {{:redirect to="compute_exit_data.html?immo_line_id=%s&amort_amount=%s&year=%s&date_mes=%s&date_debut=%s&exit_date=%s&duree_amort=%s"|args:$_GET.immo_line_id:$total_amort:$selected_year:$ts_mes:$ts_debut:$ts_exit:$duree_amort}} {{/form}} {{:admin_header title="Sortie de bilan" custom_css="./style.css" current="module_amortization"}} diff --git a/compute_exit_data.html b/compute_exit_data.html index a0fc557..25231bd 100644 --- a/compute_exit_data.html +++ b/compute_exit_data.html @@ -3,7 +3,7 @@ {{* Calculer les valeurs de la sortie et saisir le montant de la cession (optionnel) paramètres : - - immo_id : numéro de ligne de l'écriture d'immobilisation + - immo_line_id : numéro de ligne de l'écriture d'immobilisation - amort_amount : montant des amortissements - year : exercice de la date de sortie de l'immobilisation - date_mes : datede mise en service de l'immobilisation @@ -22,11 +22,11 @@ INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id INNER JOIN acc_accounts AS account ON line.id_account = account.id WHERE line.id = :line_id; - :line_id = $_GET.immo_id|intval + :line_id = $_GET.immo_line_id|intval assign="ligne_immo" }} {{else}} - {{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}} + {{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_line_id}} {{/select}} {{* chercher des écritures liées à l'immo courante au crédit du même compte @@ -34,7 +34,7 @@ *}} {{:assign total_credits=0}} {{#select - CASE links.id_related = :immo_id + CASE links.id_related = :immo_trans_id WHEN true THEN links.id_transaction WHEN false THEN links.id_related END as other_id, @@ -44,8 +44,8 @@ ON (trans.id = links.id_transaction OR trans.id = links.id_related) INNER JOIN acc_transactions_lines AS line on line.id_transaction = other_id INNER JOIN acc_accounts AS acc ON line.id_account = acc.id - WHERE trans.id = :immo_id AND line.credit > 0 AND acc.code = :account; - :immo_id=$ligne_immo.trans_id + WHERE trans.id = :immo_trans_id AND line.credit > 0 AND acc.code = :account; + :immo_trans_id=$ligne_immo.trans_id :account=$ligne_immo.account_code }} {{:assign total_credits="%d+%d"|math:$total_credits:$credit}} @@ -69,7 +69,7 @@ {{/if}} {{/if}} - {{:redirect to="write_exit.html?immo_id=%s&amort_amount=%s&year=%s&date_mes=%s&date_debut=%s&exit_date=%s&duree_amort=%s&cession=%s"|args:$_GET.immo_id:$_GET.amort_amount:$_GET.year:$_GET.date_mes:$_GET.date_debut:$_GET.exit_date:$_GET.duree_amort:$_POST.montant_cession}} + {{:redirect to="write_exit.html?immo_line_id=%s&amort_amount=%s&year=%s&date_mes=%s&date_debut=%s&exit_date=%s&duree_amort=%s&cession=%s"|args:$_GET.immo_line_id:$_GET.amort_amount:$_GET.year:$_GET.date_mes:$_GET.date_debut:$_GET.exit_date:$_GET.duree_amort:$_POST.montant_cession}} {{/form}} {{:admin_header title="Sortie du bilan" custom_css="./style.css" current="module_amortization"}} diff --git a/detach_amort.html b/detach_amort.html index 04495dc..c078c3f 100644 --- a/detach_amort.html +++ b/detach_amort.html @@ -10,11 +10,11 @@ id_transaction FROM acc_transactions_lines WHERE id = :line_id; - :line_id = $_GET.immo_id|intval + :line_id = $_GET.immo_line_id|intval }} {{:assign immo_trans_id=$id_transaction}} {{else}} - {{:error message="Impossible de trouver l'écriture d'immobilisation de la ligne « %s »"|args:$_GET.immo_id}} + {{:error message="Impossible de trouver l'écriture d'immobilisation de la ligne « %s »"|args:$_GET.immo_line_id}} {{/select}} {{* chercher l'écriture d'amortissement *}} @@ -22,11 +22,11 @@ id_transaction FROM acc_transactions_lines WHERE id = :line_id; - :line_id = $_GET.amort_id|intval + :line_id = $_GET.amort_line_id|intval }} {{:assign amort_id=$id_transaction}} {{else}} - {{:error message="Impossible de trouver l'écriture d'amortissement de la ligne « %s »"|args:$_GET.amort_id}} + {{:error message="Impossible de trouver l'écriture d'amortissement de la ligne « %s »"|args:$_GET.amort_line_id}} {{/select}} {{* @@ -61,11 +61,11 @@ where="$$.immo_line_id = :immo_line_id AND $$.amort_trans_id = :amort_trans_id AND $$.amort_line_id = :amort_line_id" - :immo_line_id=$_GET.immo_id|intval + :immo_line_id=$_GET.immo_line_id|intval :amort_trans_id = $amort_id|intval - :amort_line_id = $_GET.amort_id|intval + :amort_line_id = $_GET.amort_line_id|intval }} {{:delete id=$id}} {{/load}} -{{:redirect to="amortization.html?immo_id=%s&ok=1&msg=detach&trans_id=%s"|args:$_GET.immo_id:$amort_id}} +{{:redirect to="amortization.html?immo_line_id=%s&ok=1&msg=detach&trans_id=%s"|args:$_GET.immo_line_id:$amort_id}} diff --git a/ignore.html b/ignore.html index 7cd4cb1..e396a77 100644 --- a/ignore.html +++ b/ignore.html @@ -2,7 +2,7 @@ {{* Marquer la ligne d'écriture « à ignorer » - @param immo_id : numéro de ligne + @param immo_line_id : numéro de ligne *}} {{#select @@ -14,13 +14,13 @@ INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id WHERE line.id = :line_id ; - :line_id = $_GET.immo_id + :line_id = $_GET.immo_line_id assign=ligne_immo }} {{else}} - {{:error message="Il n'y a aucune écriture avec le numéro de ligne %s !"|args:$_GET.immo_id}} + {{:error message="Il n'y a aucune écriture avec le numéro de ligne %s !"|args:$_GET.immo_line_id}} {{/select}} -{{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}}{{/load}} +{{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_line_id|intval}}{{/load}} {{* Traiter l'envoi du formulaire *}} {{#form on="proceed"}} @@ -32,7 +32,7 @@ key=""|uuid validate_schema="schema.json" type="immo" - line=$_GET.immo_id|intval + line=$_GET.immo_line_id|intval duration=$duration date=$ligne_immo.date status=$status diff --git a/other_amortizations.html b/other_amortizations.html index 7018b2e..91b379a 100644 --- a/other_amortizations.html +++ b/other_amortizations.html @@ -3,7 +3,7 @@ {{* Lister les écritures d'amortissement indépendantes et proposer des les attacher à l'immo sélectionnée - @param immo_id = id de la ligne d'immo + @param immo_line_id = id de la ligne d'immo *}} {{* récupérer les infos de l'immobilisation *}} @@ -13,11 +13,11 @@ FROM acc_transactions_lines AS line INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id WHERE line.id = :line_id; - :line_id = $_GET.immo_id|intval + :line_id = $_GET.immo_line_id|intval assign=ligne_immo }} {{else}} - {{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}} + {{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_line_id}} {{/select}} {{:include file="_get_config.html" keep="module.config"}} @@ -149,7 +149,7 @@ {{/foreach}} diff --git a/save_amort.html b/save_amort.html index d34e8c0..f03de67 100644 --- a/save_amort.html +++ b/save_amort.html @@ -2,7 +2,7 @@ {{* Créer une écriture d'amortissement - @param immo_id : id de la ligne d'immobilisation + @param immo_line_id : id de la ligne d'immobilisation *}} {{* Infos de l'immobilisation *}} @@ -20,11 +20,11 @@ INNER JOIN acc_accounts AS account ON line.id_account = account.id LEFT JOIN acc_projects AS project ON line.id_project = project.id WHERE line.id = :line_id; - :line_id = $_GET.immo_id|intval + :line_id = $_GET.immo_line_id|intval assign=ligne_immo }} {{else}} - {{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}} + {{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_line_id}} {{/select}} {{:assign date_debut=$ligne_immo.date}} {{:assign var="amort_label" value="Amortissement %s"|args:$ligne_immo.label}} @@ -32,7 +32,7 @@ {{:assign amort_label=$amort_label|cat:" — "|cat:$ligne_immo.line_label}} {{/if}} -{{#load type="immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}} +{{#load type="immo" where="$$.line = :line_id" :line_id=$_GET.immo_line_id|intval}} {{:assign duree=$duration}} {{:assign date_debut=$date}} {{:assign status=$status}} @@ -49,7 +49,7 @@ *}} {{:assign total_credits=0}} {{#select - CASE links.id_related = :immo_id + CASE links.id_related = :immo_trans_id WHEN true THEN links.id_transaction WHEN false THEN links.id_related END as other_id, @@ -59,8 +59,8 @@ ON (trans.id = links.id_transaction OR trans.id = links.id_related) INNER JOIN acc_transactions_lines AS line on line.id_transaction = other_id INNER JOIN acc_accounts AS acc ON line.id_account = acc.id - WHERE trans.id = :immo_id AND line.credit > 0 AND acc.code = :account; - :immo_id=$ligne_immo.trans_id + WHERE trans.id = :immo_trans_id AND line.credit > 0 AND acc.code = :account; + :immo_trans_id=$ligne_immo.trans_id :account=$ligne_immo.account_code }} {{:assign total_credits="%d+%d"|math:$total_credits:$credit}} @@ -94,14 +94,14 @@ l_immo.id = :line_id AND account.code LIKE '28%' ORDER BY trans.date; - :line_id = $_GET.immo_id|intval + :line_id = $_GET.immo_line_id|intval assign="amort_line" }} {{#load type="link" where="$$.immo_line_id = :immo_line_id AND $$.amort_trans_id = :amort_trans_id" order="$$.date" assign="line" - :immo_line_id=$_GET.immo_id|intval :amort_trans_id=$amort_line.amort_trans_id + :immo_line_id=$_GET.immo_line_id|intval :amort_trans_id=$amort_line.amort_trans_id }} {{if $line.amort_line_id == $amort_line.amort_line_id}} {{:assign var="linked_amort." value=$amort_line}} @@ -221,7 +221,7 @@ }} {{if $account_ok == null}} {{:assign compte=$credit_account|implode:""}} - {{:redirect url="add_account.html?account=%s&chart=%s&immo_id=%s"|args:$compte:$selected_chart:$_GET.immo_id}} + {{:redirect url="add_account.html?account=%s&chart=%s&immo_line_id=%s"|args:$compte:$selected_chart:$_GET.immo_line_id}} {{/if}} {{* vérifier que le montant ne dépasse pas le solde restant *}} @@ -259,7 +259,7 @@ linked_transactions=$ligne_immo.trans_id|intval }} - {{:redirect force="amortization.html?immo_id=%s&ok=1&msg=amortissement"|args:$_GET.immo_id}} + {{:redirect force="amortization.html?immo_line_id=%s&ok=1&msg=amortissement"|args:$_GET.immo_line_id}} {{/form}} {{:admin_header title="Ajout amortissement" custom_css="./style.css" current="module_amortization"}} diff --git a/transfer.html b/transfer.html index 02a6f5d..6f5bbcb 100644 --- a/transfer.html +++ b/transfer.html @@ -174,13 +174,13 @@ {{:assign lines_count=$lines|count}} {{:assign lines_count="%d-1"|math:$lines_count}} - {{:assign var="immo_id" from="result.lines.%s.id"|args:$lines_count}} + {{:assign var="immo_line_id" from="result.lines.%s.id"|args:$lines_count}} {{* enregistrer les infos de l'immobilisation *}} {{:save key=""|uuid validate_schema="schema.json" type="immo" - line=$immo_id + line=$immo_line_id duration=$duration date=$date_debut status=$status diff --git a/write_exit.html b/write_exit.html index 60f8be2..a4de1cd 100644 --- a/write_exit.html +++ b/write_exit.html @@ -3,7 +3,7 @@ {{* Enregistrer les écritures de sortie du bilan paramètres : - - immo_id : numéro de ligne de l'écriture d'immobilisation + - immo_line_id : numéro de ligne de l'écriture d'immobilisation - amort_amount : montant des amortissements - year : exercice de la date de sortie de l'immobilisation - date_mes : date de mise en service de l'immobilisation @@ -24,8 +24,8 @@ FROM acc_transactions_lines AS line INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id INNER JOIN acc_accounts AS acc ON line.id_account = acc.id - WHERE line.id = :immo_id; - :immo_id = $_GET.immo_id|intval + WHERE line.id = :immo_line_id; + :immo_line_id = $_GET.immo_line_id|intval assign="ligne_immo" }} {{/select}} @@ -35,7 +35,7 @@ *}} {{:assign total_credits=0}} {{#select - CASE links.id_related = :immo_id + CASE links.id_related = :immo_trans_id WHEN true THEN links.id_transaction WHEN false THEN links.id_related END as other_id, @@ -45,8 +45,8 @@ ON (trans.id = links.id_transaction OR trans.id = links.id_related) INNER JOIN acc_transactions_lines AS line on line.id_transaction = other_id INNER JOIN acc_accounts AS acc ON line.id_account = acc.id - WHERE trans.id = :immo_id AND line.credit > 0 AND acc.code = :account; - :immo_id=$ligne_immo.trans_id + WHERE trans.id = :immo_trans_id AND line.credit > 0 AND acc.code = :account; + :immo_trans_id=$ligne_immo.trans_id :account=$ligne_immo.account_code }} {{:assign total_credits="%d+%d"|math:$total_credits:$credit}} @@ -258,7 +258,7 @@ key=""|uuid validate_schema="schema.json" type="immo" - line=$_GET.immo_id|intval + line=$_GET.immo_line_id|intval duration=$_GET.duree_amort|intval date=$_GET.date_mes|date:"Y-m-d" status="archived" From ac3b1e818d17397794d7bbbe76edda200cac957e Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Fri, 20 Mar 2026 12:17:15 +0100 Subject: [PATCH 72/75] =?UTF-8?q?Lier=20les=20lignes=20=C3=A0=20la=20cr?= =?UTF-8?q?=C3=A9ation=20d'un=20amortissement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- save_amort.html | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/save_amort.html b/save_amort.html index f03de67..4aa8e64 100644 --- a/save_amort.html +++ b/save_amort.html @@ -259,6 +259,29 @@ linked_transactions=$ligne_immo.trans_id|intval }} + {{* enregistrer la liaison des lignes *}} + {{#select + trans.id AS trans_id, + line.id AS line_id + FROM acc_transactions AS trans + INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id + WHERE trans.id = :trans_id + ; + :trans_id = $result.id + }} + {{:assign amort_trans_id=$trans_id}} + {{:assign amort_line_id=$line_id}} + {{/select}} + {{if $amort_trans_id != null}} + {{:save + key=""|uuid + type="link" + immo_line_id=$_GET.immo_line_id|intval + amort_line_id=$amort_line_id|intval + amort_trans_id=$result.id + }} + {{/if}} + {{:redirect force="amortization.html?immo_line_id=%s&ok=1&msg=amortissement"|args:$_GET.immo_line_id}} {{/form}} From f1ca740464d632de569ff07389c271ff5576e60f Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 24 Mar 2026 11:53:34 +0100 Subject: [PATCH 73/75] =?UTF-8?q?Am=C3=A9lioration=20conditions=20s=C3=A9l?= =?UTF-8?q?ection=20lignes=20immo=20et=20amortissement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _immobilisations.html | 55 +++++++++++++++------ _immobilisations_autres.html | 96 +++++++++++++++++++----------------- amortization.html | 21 ++++---- 3 files changed, 101 insertions(+), 71 deletions(-) diff --git a/_immobilisations.html b/_immobilisations.html index d78ca56..f4843cb 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -2,6 +2,7 @@ {{* Liste des immobilisations en cours d'amortissement ou amorties *}} +{{:include file="_get_config.html" keep="module.config"}}

    @@ -29,25 +30,24 @@

    {{* lister les immobilisations *}} - {{:include file="_get_config.html" keep="module.config"}} - {{: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 doc_condition="($$.status <> 'ignored' AND $$.status <> 'archived')"}} - {{:assign filter_condition=" NOT ("}} + {{: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)"}} {{:assign filter_condition="($$.status IS NULL AND NOT (trans.status & 16) AND "|cat:$filter_condition|cat:")"}} - {{:assign doc_condition="($$.status <> 'ignored' AND $$.status <> 'archived')"}} {{:assign condition=$account_condition|cat:" AND debit > 0 AND ("|cat:$filter_condition|cat:" OR "|cat:$doc_condition|cat:")"}} + {{:assign nb_immo=0}} {{:assign total_immo = 0}} {{#select @@ -100,12 +100,14 @@ }} {{:assign montant_immo="%d-%d"|math:$montant_immo:$credit}} {{/select}} + {{* Immobilisation soldée ? *}} + {{* TODO marquer archivée *}} {{if $montant_immo == 0}} {{:continue}} {{/if}} - {{* voir s'il existe des écritures d'amortissement associées *}} + {{* lister les lignes des écritures d'amortissement liées à l'immobilisation *}} {{:assign amort_lines=null}} {{#select l_amort.credit as amount, @@ -122,25 +124,48 @@ INNER JOIN acc_accounts AS account ON l_amort.id_account = account.id WHERE l_immo.id = :line_id AND l_amort.credit <> 0 AND account.code LIKE '28%'; :line_id = $immo_line_id|intval - assign="amort_lines." + assign="line" }} + {{:assign var="amort_lines.%d."|args:$amort_trans_id value=$line}} {{/select}} {{:assign amort_amount=0}} - {{#foreach from=$amort_lines item="elem"}} - {{* voir s'il existe un doc associé à l'écriture d'amortissement *}} + {{#foreach from=$amort_lines key="amort_trans_id" item="lines"}} + {{:assign nb=$lines|count}} + {{* lister les docs de liaison de l'écriture d'amortissement *}} + {{:assign links=null}} {{#load type="link" where="$$.immo_line_id = :immo_line_id AND $$.amort_trans_id = :amort_trans_id" - assign="link" :immo_line_id = $immo_line_id - :amort_trans_id = $elem.amort_trans_id + :amort_trans_id = $amort_trans_id + assign="links." }} - {{if $link.amort_line_id == $elem.amort_line_id}} - {{:assign amort_amount="%d+%d"|math:$amort_amount:$amount}} - {{/if}} - {{else}} - {{:assign amort_amount="%d+%d"|math:$amort_amount:$amount}} {{/load}} + + {{#foreach from=$lines item="line"}} + {{* voir s'il existe une ligne associée à l'écriture d'amortissement *}} + {{:assign line_link_exist=false}} + {{#foreach from=$links item="link"}} + {{if $link.amort_line_id == $line.amort_line_id}} + {{:assign amort_amount="%d+%d"|math:$amort_amount:$line.amount}} + {{:assign line_link_exist=true}} + {{/if}} + {{/foreach}} + {{if ! $line_link_exist}} + {{if $nb == 1}} + {{* créer la liaison ligne immo <-> ligne amort *}} +{{*:debug lier_immo_line_id=$immo_line_id lier_amort_trans_id=$amort_trans_id avec_amort_line_id=$amort_line_id*}} + {{:save + key=""|uuid + type="link" + immo_line_id=$immo_line_id + amort_line_id=$amort_line_id + amort_trans_id=$amort_trans_id + }} + {{:assign amort_amount="%d+%d"|math:$amort_amount:$line.amount}} + {{/if}} + {{/if}} + {{/foreach}} {{/foreach}} {{if $amort_amount == 0}} diff --git a/_immobilisations_autres.html b/_immobilisations_autres.html index 80b91d0..69f2603 100644 --- a/_immobilisations_autres.html +++ b/_immobilisations_autres.html @@ -2,13 +2,13 @@ {{* Liste des immobilisations non amortissables ou non (encore) gérées *}} +{{:include file="_get_config.html" keep="module.config"}}

    Cette page liste les écritures pas (encore) prises en charge par le module et sans écriture d'amortissement associée.

    - {{:include file="_get_config.html" keep="module.config"}} {{:assign saved_hides=$module.config.hides}} {{:assign var="user_hides" from="saved_hides.%s"|args:$logged_user.id}} @@ -37,7 +37,7 @@
    {{$line.trans_date|date_short}} {{"%f"|math:$line.amort_amount|money_html:false|raw}} {{$line.trans_label}} - {{if $line.line_label != null}} - {{$line.line_label}}{{/if}} + {{if $line.line_label != null && $line.line_label != $line.trans_label}} - {{$line.line_label}}{{/if}} {{$line.account_code}} {{$line.account_label}} {{:linkbutton label="Paramètres" - href="add_infos.html?immo_id=%s&type_immo=other"|args:$immo_id + href="add_infos.html?immo_line_id=%s&type_immo=other"|args:$immo_line_id shape="settings" target="_dialog" }} diff --git a/_nav.html b/_nav.html index 2192b2e..57b9dee 100644 --- a/_nav.html +++ b/_nav.html @@ -8,10 +8,10 @@ {{elseif $subsubcurrent == "amortization" && $type_immo == null || $type_immo == "managed" || $type_immo == "other"}} {{/if}} diff --git a/_unfinished.html b/_unfinished.html index 359877a..a222475 100644 --- a/_unfinished.html +++ b/_unfinished.html @@ -102,7 +102,7 @@ trans.id as trans_id, trans.label as trans_label, trans.date as trans_date, - line.id as immo_id, + line.id as immo_line_id, account.id as account_id, account.code as account_code, account.label as account_label, @@ -119,7 +119,7 @@ }} {{* voir si l'écriture a été marquée ignorée *}} {{:assign ignore=false}} - {{#load type="immo" assign="info_immo" where="$$.line = :line_id AND $$.status = 'ignored'" :line_id=$immo_id|intval}} + {{#load type="immo" assign="info_immo" where="$$.line = :line_id AND $$.status = 'ignored'" :line_id=$immo_line_id|intval}} {{:assign ignore=true}} {{/load}} {{if $ignore && $unhide == null}} @@ -163,7 +163,7 @@ {{:linkbutton label="Modifier" - href="ignore.html?immo_id=%s"|args:$immo_id + href="ignore.html?immo_line_id=%s"|args:$immo_line_id shape="edit" target="_dialog" }} diff --git a/add_asset.html b/add_asset.html index a1f0c10..5cbe061 100644 --- a/add_asset.html +++ b/add_asset.html @@ -75,7 +75,7 @@ {{if $account_ok == null}} {{:assign compte=$debit_account|implode:""}} - {{:redirect url="add_account.html?account=%s&chart=%s&immo_id=%s"|args:$compte:$selected_chart:$_GET.immo_id}} + {{:redirect url="add_account.html?account=%s&chart=%s&immo_line_id=%s"|args:$compte:$selected_chart:$_GET.immo_line_id}} {{/if}} {{:assign debit_account=$debit_account|keys|value:0}} @@ -127,8 +127,8 @@ {{if $status != "unfinished"}} {{* vérifier s'il y a déjà un document avec le même numéro de ligne *}} - {{:assign var="immo_id" value=$result.lines.1.id}} - {{#load where="$$.line = :line_id" :line_id=$immo_id}} + {{:assign var="immo_line_id" value=$result.lines.1.id}} + {{#load where="$$.line = :line_id" :line_id=$immo_line_id}} {{:assign key=$key}} {{else}} {{:assign key=""|uuid}} @@ -139,7 +139,7 @@ key=$key validate_schema="schema.json" type="immo" - line=$immo_id + line=$immo_line_id duration=$duration date=$date_debut status=$status diff --git a/add_infos.html b/add_infos.html index 7b3b924..bf0b6be 100644 --- a/add_infos.html +++ b/add_infos.html @@ -1,12 +1,12 @@ {{* -*- brindille -*- *}} {{* - @param immo_id + @param immo_line_id @param type_immo : managed, amortized, archived, other *}} {{* données de l'immobilisaion *}} -{{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}} +{{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_line_id|intval}} {{/load}} {{#select trans.id, @@ -17,7 +17,7 @@ INNER join acc_transactions AS trans ON line.id_transaction = trans.id INNER JOIN acc_accounts AS acc ON line.id_account = acc.id WHERE line.id = :line_id; - :line_id = $_GET.immo_id + :line_id = $_GET.immo_line_id assign=ligne_immo }} {{else}} @@ -97,7 +97,7 @@ key=$key validate_schema="schema.json" type="immo" - line=$_GET.immo_id|intval + line=$_GET.immo_line_id|intval duration=$duration date=$date_debut status=$status diff --git a/amortization.html b/amortization.html index 4edf953..342abf3 100644 --- a/amortization.html +++ b/amortization.html @@ -2,16 +2,16 @@ {{* Lister les écritures d'amortissement associées à une immobilisation - @param immo_id : id de la ligne d'immo + @param immo_line_id : id de la ligne d'immo @param type_immo : managed, amortized, archived, others *}} {{* récupérer les infos de l'immobilisation *}} {{#select - line.id as immo_id, + line.id as immo_line_id, line.debit as montant, line.label as line_label, - trans.id as trans_id, + trans.id as immo_trans_id, trans.label as label, trans.date, account.code as account_code @@ -19,16 +19,16 @@ INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id INNER JOIN acc_accounts AS account ON line.id_account = account.id WHERE line.id = :line_id; - :line_id = $_GET.immo_id|intval + :line_id = $_GET.immo_line_id|intval assign=ligne_immo }} {{else}} - {{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}} + {{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_line_id}} {{/select}} {{:assign date_debut=$ligne_immo.date}} -{{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$ligne_immo.trans_id}} +{{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$ligne_immo.immo_trans_id}} -{{#load type="immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}} +{{#load type="immo" where="$$.line = :line_id" :line_id=$_GET.immo_line_id|intval}} {{:assign duree=$duration}} {{:assign date_debut=$date}} {{:assign status=$status}} @@ -43,7 +43,7 @@ *}} {{:assign total_credits=0}} {{#select - CASE links.id_related = :immo_id + CASE links.id_related = :immo_trans_id WHEN true THEN links.id_transaction WHEN false THEN links.id_related END as other_id, @@ -53,8 +53,8 @@ ON (trans.id = links.id_transaction OR trans.id = links.id_related) INNER JOIN acc_transactions_lines AS line on line.id_transaction = other_id INNER JOIN acc_accounts AS acc ON line.id_account = acc.id - WHERE trans.id = :immo_id AND line.credit > 0 AND acc.code = :account; - :immo_id=$ligne_immo.trans_id + WHERE trans.id = :immo_trans_id AND line.credit > 0 AND acc.code = :account; + :immo_trans_id=$ligne_immo.immo_trans_id :account=$ligne_immo.account_code }} {{:assign total_credits="%d+%d"|math:$total_credits:$credit}} @@ -62,7 +62,7 @@ {{:assign var="ligne_immo.montant" value="%d-%d"|math:$ligne_immo.montant:$total_credits}} {{:assign solde=$ligne_immo.montant}} -{{* chercher des écritures d'amortissement liées à l'immobilisation *}} +{{* lister les lignes des écritures d'amortissement liées à l'immobilisation *}} {{#select l_amort.credit as amort_amount, l_amort.label as amort_label, @@ -84,18 +84,17 @@ INNER JOIN acc_transactions_lines as l_amort on amort_trans_id = l_amort.id_transaction INNER join acc_transactions as trans on l_amort.id_transaction = trans.id INNER join acc_accounts as account on l_amort.id_account = account.id - WHERE - l_immo.id = :line_id - AND account.code LIKE '28%' + WHERE l_immo.id = :line_id AND account.code LIKE '28%' ORDER BY trans.date; - :line_id = $_GET.immo_id|intval + :line_id = $_GET.immo_line_id|intval assign="amort_line" }} {{#load type="link" where="$$.immo_line_id = :immo_line_id AND $$.amort_trans_id = :amort_trans_id" assign="line" - :immo_line_id=$_GET.immo_id|intval :amort_trans_id=$amort_line.amort_trans_id + :immo_line_id=$_GET.immo_line_id|intval + :amort_trans_id=$amort_line.amort_trans_id }} {{if $line.amort_line_id == $amort_line.amort_line_id}} {{:assign var="linked_amort." value=$amort_line}} @@ -226,7 +225,7 @@

    {{:linkbutton label="Sortir du bilan" - href="balance_sheet_exit.html?immo_id=%s&type_immo=%s"|args:$_GET.immo_id:$_GET.type_immo + href="balance_sheet_exit.html?immo_line_id=%s&type_immo=%s"|args:$_GET.immo_line_id:$_GET.type_immo shape="export" class="main" }} @@ -242,7 +241,7 @@

    Immobilisation
    -
    #{{$ligne_immo.trans_id}} {{$ligne_immo.label}}{{if $ligne_immo.line_label != null && $ligne_immo.line_label != $ligne_immo.label}} — {{$ligne_immo.line_label}}{{/if}}
    +
    #{{$ligne_immo.immo_trans_id}} {{$ligne_immo.label}}{{if $ligne_immo.line_label != null && $ligne_immo.line_label != $ligne_immo.label}} — {{$ligne_immo.line_label}}{{/if}}
    Montant
    {{"%f"|math:$ligne_immo.montant|money_currency_html:false|raw}}
    Début d'amortissement
    @@ -300,7 +299,7 @@
    {{$line.account_code}} {{$line.account_label}} - {{:linkbutton label="Détacher" href="detach_amort.html?amort_id=%d&immo_id=%d"|args:$line.amort_line_id:$ligne_immo.immo_id shape="minus"}} + {{:linkbutton label="Détacher" href="detach_amort.html?amort_line_id=%d&immo_line_id=%d"|args:$line.amort_line_id:$ligne_immo.immo_line_id shape="minus"}}
    {{$line.account_code}} {{$line.account_label}} - {{:linkbutton label="Attacher" href="attach_amort.html?amort_id=%d&immo_id=%d"|args:$line.amort_line_id:$_GET.immo_id shape="plus"}} + {{:linkbutton label="Attacher" href="attach_amort.html?amort_line_id=%d&immo_line_id=%d"|args:$line.amort_line_id:$_GET.immo_line_id shape="plus"}}
    - + @@ -49,53 +49,58 @@ {{* lister les immobilisations *}} - {{:assign condition="("}} + {{:assign account_condition="("}} {{#foreach from=$module.config.prefixes item="code"}} {{:assign code=$code|cat:"%"|quote_sql}} - {{:assign condition=$condition|cat:" account.code LIKE "|cat:$code|cat:" OR "}} + {{:assign account_condition=$account_condition|cat:" account.code LIKE "|cat:$code|cat:" OR "}} {{/foreach}} - {{:assign condition=$condition|cat:"0)"}} - {{:assign condition=$condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"}} + {{:assign account_condition=$account_condition|cat:"0)"}} + {{:assign doc_condition="($$.status == 'ignored')" }} {{if $unhide == null}} - {{:assign filter_condition=" NOT ("}} + {{: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)"}} - {{:assign condition=$condition|cat:" AND "|cat:$filter_condition}} + {{else}} + {{:assign filter_condition="1"}} {{/if}} + {{:assign filter_condition="($$.status IS NULL AND NOT (trans.status & 16) AND "|cat:$filter_condition|cat:")"}} + + {{:assign condition=$account_condition|cat:" AND debit > 0 AND ("|cat:$filter_condition|cat:" OR "|cat:$doc_condition|cat:")"}} {{:assign nb_immo=0}} {{#select - trans.id as trans_id, + trans.id as immo_trans_id, trans.label as trans_label, trans.date as trans_date, line.id as immo_line_id, - line.label as line_label, + line.debit AS debit, + line.label AS line_label, account.id as account_id, account.code as account_code, account.label as account_label, - line.debit AS debit, - trans.id_year as trans_id_year + trans.id_year as trans_id_year, + $$.duration as duration, + $$.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 + LEFT JOIN !table AS info ON $$.line = line.id WHERE !condition ORDER BY trans.date DESC; + !table=$module.table !condition=$condition }} - {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$trans_id}} + {{: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}} - {{* voir si l'immo est prise en charge *}} - {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_line_id|intval}} - {{:assign status=$status}} - {{else}} + {{if $status == null}} {{:assign status="unknown"}} - {{/load}} + {{/if}} {{if $unhide == null}} {{if $status != "unknown"}} @@ -113,45 +118,48 @@ {{/foreach}} {{/if}} - {{* voir s'il existe des écritures d'amortissement associées *}} + {{* lister les lignes des écritures d'amortissement liées à l'immobilisation *}} + {{:assign amort_lines=null}} {{#select - sum(l_amort.credit) as amort_amount, + l_amort.credit as amort_amount, CASE links.id_related = t_immo.id WHEN true THEN links.id_transaction WHEN false THEN links.id_related - END as amort_trans_id + END as amort_trans_id, + l_amort.id AS amort_line_id FROM acc_transactions_lines as l_immo INNER JOIN acc_transactions as t_immo on t_immo.id = l_immo.id_transaction INNER JOIN acc_transactions_links as links - ON ( - t_immo.id = links.id_transaction - OR - t_immo.id = links.id_related - ) + ON (t_immo.id = links.id_transaction OR t_immo.id = links.id_related) INNER JOIN acc_transactions_lines as l_amort on amort_trans_id = l_amort.id_transaction INNER JOIN acc_accounts AS account ON l_amort.id_account = account.id - WHERE - l_immo.id = :line_id - AND - l_amort.credit <> 0 - AND - account.code LIKE '28%'; + WHERE l_immo.id = :line_id AND l_amort.credit <> 0 AND account.code LIKE '28%'; :line_id = $immo_line_id|intval + assign="amort_lines." }} - {{if $amort_amount != null}} - {{:assign ignore=true}} - {{else}} - {{:assign ignore=false}} - {{/if}} - {{/select}} - - {{if $ignore}} - {{:continue}} - {{/if}} - {{:assign nb_immo="%d+1"|math:$nb_immo}} + {{/select}} + {{:assign amort_amount=0}} + {{#foreach from=$amort_lines item="line"}} + {{* voir s'il existe un doc associé à l'écriture d'amortissement *}} + {{#load type="link" + where="$$.immo_line_id = :immo_line_id AND $$.amort_trans_id = :amort_trans_id AND $$.amort_line_id = :amort_line_id" + :immo_line_id = $immo_line_id + :amort_trans_id = $line.amort_trans_id + :amort_line_id = $line.amort_line_id + }} + {{:assign amort_amount="%d+%d"|math:$amort_amount:$line.amount}} + {{else}} + {{* TODO À VÉRIFIER (cas multi-lignes) *}} + {{:assign amort_amount="%d+%d"|math:$amort_amount:$line.amount}} + {{/load}} + {{/foreach}} + {{if $amort_amount != 0}} + {{:continue}} + {{/if}} + {{:assign nb_immo="%d+1"|math:$nb_immo}} - + diff --git a/amortization.html b/amortization.html index 342abf3..cf162a2 100644 --- a/amortization.html +++ b/amortization.html @@ -65,14 +65,14 @@ {{* lister les lignes des écritures d'amortissement liées à l'immobilisation *}} {{#select l_amort.credit as amort_amount, - l_amort.label as amort_label, + l_amort.label as amort_line_label, l_amort.id as amort_line_id, CASE WHEN links.id_related = t_immo.id THEN links.id_transaction ELSE links.id_related END as amort_trans_id, trans.date as amort_date, - trans.label as trans_label, + trans.label as amort_trans_label, trans.id_year as amort_year, account.id as account_id, account.code as account_code, @@ -89,17 +89,14 @@ :line_id = $_GET.immo_line_id|intval assign="amort_line" }} - + {{* lister les lignes d'amortissement liées à la ligne d'immobilisation *}} {{#load type="link" - where="$$.immo_line_id = :immo_line_id AND $$.amort_trans_id = :amort_trans_id" + where="$$.immo_line_id = :immo_line_id AND $$.amort_trans_id = :amort_trans_id AND $$.amort_line_id = :amort_line_id" assign="line" :immo_line_id=$_GET.immo_line_id|intval :amort_trans_id=$amort_line.amort_trans_id + :amort_line_id = $amort_line.amort_line_id }} - {{if $line.amort_line_id == $amort_line.amort_line_id}} - {{:assign var="linked_amort." value=$amort_line}} - {{/if}} - {{else}} {{:assign var="linked_amort." value=$amort_line}} {{/load}} {{if $date_debut == null}} @@ -269,7 +266,7 @@
    Date Libellé Montant
    #{{$trans_id}}#{{$immo_trans_id}} {{$trans_date|date_short}} {{$trans_label}}{{if $line_label != null && $line_label != $trans_label}} — {{$line_label}}{{/if}} {{"%f"|math:$debit|money_html:false|raw}}
    - + @@ -291,9 +288,9 @@ From 6ac081a7fd0798877e3d41eca7ac87e89dbfa30c Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 1 Apr 2026 11:01:25 +0200 Subject: [PATCH 74/75] =?UTF-8?q?Am=C3=A9lioration=20pr=C3=A9sentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- add_infos.html | 29 ++++++++++++++++++++++++----- style.css | 4 ++++ 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/add_infos.html b/add_infos.html index bf0b6be..1ee848b 100644 --- a/add_infos.html +++ b/add_infos.html @@ -9,9 +9,11 @@ {{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_line_id|intval}} {{/load}} {{#select - trans.id, + trans.id as immo_trans_id, + trans.label, trans.date as date_achat, line.debit as montant, + line.label as line_label, acc.code FROM acc_transactions_lines AS line INNER join acc_transactions AS trans ON line.id_transaction = trans.id @@ -37,7 +39,7 @@ WHERE (links.id_transaction = :immo_trans_id or links.id_related = :immo_trans_id) AND line.credit > 0 ; - :immo_trans_id = $ligne_immo.id + :immo_trans_id = $ligne_immo.immo_trans_id }} {{:assign var="linked_transactions.%d."|args:$code value=$linked_id}} {{/select}} @@ -122,7 +124,7 @@ {{if $new_transactions != null}} {{:api method="POST" - path="accounting/transaction/%s/transactions"|args:$ligne_immo.id + path="accounting/transaction/%s/transactions"|args:$ligne_immo.immo_trans_id assign="result" assign_code="result_code" transactions=$new_transactions @@ -140,11 +142,11 @@ {{/form}} {{:form_errors}} -{{:admin_header title="Classer l'immobilisation" custom_css=$custom_css current="module_amortization"}} +{{:admin_header title="Classer l'immobilisation" custom_css="./style.css" current="module_amortization"}} {{* barre de navigation *}} {{if ! $dialog}} - {{:include file="_nav.html" current="index"}} + {{:include file="_nav.html" current="index" subcurrent="%s"|args:$_GET.type_immo subsubcurrent="parameter"}} {{/if}} {{:assign choix_defaut=$_GET.type_immo}} @@ -161,6 +163,23 @@ - classer l'immobilisation - renseigner ou modifier la date de mise en service, les écritures associées ou la durée d'amortissement *}} + +{{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$ligne_immo.immo_trans_id}} +

    + Paramètres de l'immobilisation + #{{$ligne_immo.immo_trans_id}} +

    +
    +
    +
    Immobilisation
    +
    #{{$ligne_immo.immo_trans_id}} {{$ligne_immo.label}}{{if $ligne_immo.line_label != null && $ligne_immo.line_label != $ligne_immo.label}} — {{$ligne_immo.line_label}}{{/if}}
    +
    Montant
    +
    {{"%f"|math:$ligne_immo.montant|money_currency_html:false|raw}}
    +
    Date de l'écriture d'immobilisation
    +
    {{$ligne_immo.date_achat|date_short}}
    +
    +
    +
    Classement diff --git a/style.css b/style.css index fd5887b..6836da9 100644 --- a/style.css +++ b/style.css @@ -76,3 +76,7 @@ table.list tbody tr.ignored:nth-child(even) { font-style: italic; background: rgba(255, 255, 200, 0.5); } + +html.dialog.dark { + filter: none !important; +} From 0b41a5f9c7526e50662d5481a2fbe19b98d4cf8c Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 1 Apr 2026 11:03:11 +0200 Subject: [PATCH 75/75] =?UTF-8?q?V=C3=A9rification=20existence=20table=20m?= =?UTF-8?q?odule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _immobilisations.html | 13 +++++++++++-- _immobilisations_autres.html | 27 ++++++++++++++++++++------- module.ini | 2 +- 3 files changed, 32 insertions(+), 10 deletions(-) diff --git a/_immobilisations.html b/_immobilisations.html index f4843cb..d287632 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -29,6 +29,14 @@
    + {{* vérifier l'existence de la table du module *}} + {{#load limit="1"}} + {{:assign table_presente=true}} + {{else}} + {{:assign table_presente=false}} + {{/load}} + + {{if $table_presente}} {{* lister les immobilisations *}} {{:assign account_condition="("}} {{#foreach from=$module.config.prefixes item="code"}} @@ -199,8 +207,8 @@ label="Paramètres" href="add_infos.html?immo_line_id=%s&type_immo=%s"|args:$immo_line_id:$type_immo shape="settings" - target="_dialog" }} +{{* target="_dialog"*}} {{/if}} {{:linkbutton label="Amortissements" @@ -242,8 +250,9 @@ {{/if}} +{{/if}}
    Date Montant Valeur nette{{"%f"|math:$line.amort_amount|money_html:false|raw}} {{"%f"|math:$solde|money_html:false|raw}} - {{$line.trans_label}} - {{if $line.amort_label != null && $line.amort_label != $line.trans_label}} - — {{$line.amort_label}} + {{$line.amort_trans_label}} + {{if $line.amort_line_label != null && $line.amort_line_label != $line.amort_trans_label}} + — {{$line.amort_line_label}} {{/if}} {{$line.account_code}}
    - {{if $nb_immo == 0}} + {{if $nb_immo == 0 || ! $table_presente}}

    Aucune immobilisation

    {{/if}}
    diff --git a/_immobilisations_autres.html b/_immobilisations_autres.html index 69f2603..1f08e9b 100644 --- a/_immobilisations_autres.html +++ b/_immobilisations_autres.html @@ -48,6 +48,19 @@ + {{* vérifier l'existence de la table du module *}} + {{#load limit="1"}} + {{:assign columns="$$.duration as duration, $$.status as status,"}} + {{:assign table_join="LEFT JOIN !table AS info ON $$.line = line.id"}} + {{:assign doc_condition1="($$.status == 'ignored')"}} + {{:assign doc_condition2="$$.status IS NULL"}} + {{else}} + {{:assign columns=""}} + {{:assign table_join=""}} + {{:assign doc_condition1="0"}} + {{:assign doc_condition2="1"}} + {{/load}} + {{* lister les immobilisations *}} {{:assign account_condition="("}} {{#foreach from=$module.config.prefixes item="code"}} @@ -55,7 +68,6 @@ {{:assign account_condition=$account_condition|cat:" account.code LIKE "|cat:$code|cat:" OR "}} {{/foreach}} {{:assign account_condition=$account_condition|cat:"0)"}} - {{:assign doc_condition="($$.status == 'ignored')" }} {{if $unhide == null}} {{:assign filter_condition="NOT ("}} @@ -67,9 +79,9 @@ {{else}} {{:assign filter_condition="1"}} {{/if}} - {{:assign filter_condition="($$.status IS NULL AND NOT (trans.status & 16) AND "|cat:$filter_condition|cat:")"}} + {{:assign filter_condition="("|cat:$doc_condition2|cat:" AND NOT (trans.status & 16) AND "|cat:$filter_condition|cat:")"}} - {{:assign condition=$account_condition|cat:" AND debit > 0 AND ("|cat:$filter_condition|cat:" OR "|cat:$doc_condition|cat:")"}} + {{:assign condition=$account_condition|cat:" AND debit > 0 AND ("|cat:$filter_condition|cat:" OR "|cat:$doc_condition1|cat:")"}} {{:assign nb_immo=0}} {{#select @@ -82,16 +94,17 @@ account.id as account_id, account.code as account_code, account.label as account_label, - trans.id_year as trans_id_year, - $$.duration as duration, - $$.status as status + !columns + trans.id_year as trans_id_year 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 - LEFT JOIN !table AS info ON $$.line = line.id + !table_join WHERE !condition ORDER BY trans.date DESC; + !columns=$columns + !table_join=$table_join !table=$module.table !condition=$condition }} diff --git a/module.ini b/module.ini index 3198f3c..f3f13f1 100644 --- a/module.ini +++ b/module.ini @@ -1,5 +1,5 @@ name="Amortissements" -description="Immobilisations et amortissements\nversion 0.31" +description="Immobilisations et amortissements\nversion 0.32" author="Jean-Christophe Engel" author_url="https://gitea.zaclys.com/lesanges" home_button=false