From 56e7703859f2c0fd2ce5357a610f4d0f9a59c63f Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 24 Jun 2026 15:01:37 +0200 Subject: [PATCH 1/4] =?UTF-8?q?Ajout=20mise=20=C3=A0=20niveau=20module?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _upgrade_to031.tpl | 99 ++++++++++++++++++++++++++++++++++++++++++++++ _upgrade_to033.tpl | 64 ++++++++++++++++++++++++++++++ config.html | 21 ++++++++++ index.html | 30 +++++++++----- upgrade.html | 50 +++++++++++++++++++++++ 5 files changed, 255 insertions(+), 9 deletions(-) create mode 100644 _upgrade_to031.tpl create mode 100644 _upgrade_to033.tpl create mode 100644 upgrade.html diff --git a/_upgrade_to031.tpl b/_upgrade_to031.tpl new file mode 100644 index 0000000..1efe934 --- /dev/null +++ b/_upgrade_to031.tpl @@ -0,0 +1,99 @@ +{{* -*- brindille -*- *}} + +{{* + Mettre à niveau vers v0.31 + - créer un doc de liaison pour chaque amortissement lié à une immobilisation + mais uniquement pour les immo déjà gérées, sinon l'upgrade + vers 0.33 ne fonctionnera pas car on pourrait se retrouver avec + des liaisons immo <-> amort sans doc associé à l'immo donc la + transformation de link vers amort_link ne pourra se faire + + - id ligne d'immobilisation + - id ligne d'amortissement + - id écriture d'amortissement +*}} + +{{* 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 filter_condition=" AND 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=$account_condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"|cat:$filter_condition}} + +{{#select + line.id as immo_line_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 + INNER JOIN acc_years AS years ON trans.id_year = years.id + WHERE !condition + ORDER BY trans.date DESC; + !condition=$condition +}} + {{* 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}} + {{:assign status="unknown"}} + {{/load}} + + {{* ne pas faire la liaison si pas de doc *}} + {{if $status == "ignored" || $status == "unknown"}} + {{:continue}} + {{/if}} + + {{* lister les écritures d'amortissement liées *}} + {{:assign amort_lines=null}} + {{#select + CASE links.id_related = t_immo.id + WHEN true THEN links.id_transaction + WHEN false THEN links.id_related + 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) + 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%'; + :line_id = $immo_line_id|intval + assign="amort_lines." + }} + {{/select}} + + {{#foreach from=$amort_lines item="line"}} + {{* chercher un doc associé *}} + {{#load type="link" + where="$$.immo_line_id = :immo_line_id + AND $$.amort_line_id = :amort_line_id + AND $$.amort_trans_id = :amort_trans_id" + :immo_line_id = $immo_line_id + :amort_line_id = $line.amort_line_id + :amort_trans_id = $line.amort_trans_id + assign="link" + }} + {{else}} + {{* pas de doc => le créer *}} + {{:save + key=""|uuid + type="link" + immo_line_id=$immo_line_id + amort_line_id=$line.amort_line_id + amort_trans_id=$line.amort_trans_id + }} + {{/load}} + {{/foreach}} +{{/select}} diff --git a/_upgrade_to033.tpl b/_upgrade_to033.tpl new file mode 100644 index 0000000..b1104a7 --- /dev/null +++ b/_upgrade_to033.tpl @@ -0,0 +1,64 @@ +{{* -*- brindille -*- *}} + +{{* + Mettre à niveau vers v0.33, pour gérer les écritures du bilan d'ouverture + où le montant d'une ligne d'immo ou d'une ligne d'amort peut être + réparti entre plusieurs immo et plusieurs amort + + - modifier le doc d'immo + - date => date_mes (date mise en service) + + - modifier le doc de liaison d'amortissement + - id ligne d'immobilisation => id doc immobilisation + - id ligne d'amortissement + - id écriture d'amortissement + - ajouter montant amortissement +*}} + +{{* doc immo *}} +{{#load type="immo" assign="elem"}} + {{if $elem.date != null}} + {{:assign var="elem.date_mes" value=$elem.date}} + {{:assign var="docs." value=$elem}} + {{:delete id=$elem.id}} + {{/if}} +{{/load}} + +{{* créer les nouveaux documents *}} +{{#foreach from=$docs item="doc"}} + {{:save + key=""|uuid + type=$doc.type + line=$doc.line + duration=$doc.duration + label=$doc.label + amount=$doc.amount + date_achat=$doc.date_achat + date_mes=$doc.date_mes + status=$doc.status + }} +{{/foreach}} + +{{* lister les liaisons actuelles ligne amort => ligne immo *}} +{{#load type="link" assign="link"}} + {{#load type="immo" where="$$.line = :immo_line_id" :immo_line_id=$link.immo_line_id assign="immo"}} + {{:assign link_doc=null}} + {{:assign var="link_doc.immo_doc_id" value=$immo.id}} + {{:assign var="link_doc.amort_line_id" value=$link.amort_line_id}} + {{:assign var="link_docs." value=$link_doc}} + {{else}} + {{* liaison orpheline : ignorer *}} + {{/load}} + {{:delete id=$link.id}} +{{/load}} + +{{* créer les nouvelles liaisons *}} +{{#foreach from=$link_docs item="link"}} + {{:save + key=""|uuid + type="amort_link" + immo_doc_id=$link.immo_doc_id + amort_line_id=$link.amort_line_id + amount=null + }} +{{/foreach}} diff --git a/config.html b/config.html index eec7baf..1f29927 100644 --- a/config.html +++ b/config.html @@ -129,6 +129,27 @@ {{/if}}
+ {{:include file="_check_version.html" keep="new_version"}} + + {{if $new_version}} +
+ Mettre à niveau le module +

+ Pour que la mise à niveau soit effective, il faut d'abord + aller sur la + page du module {{$module.label}}, cliquer le bouton « Configurer » et enfin + cliquer le bouton « Mettre à niveau le module » +

+ {{:linkbutton + label="Mettre à niveau le module" + href="upgrade.html" + shape="reset" + class="main" + }} +
+ {{/if}} +

Comptes d'immobilisation amortissables

Les immobilisations amortissables sont cherchées dans les comptes sélectionnés et leurs sous-comptes. diff --git a/index.html b/index.html index f2fab2e..54040d2 100644 --- a/index.html +++ b/index.html @@ -37,14 +37,26 @@ {{* supprimer les documents sans écriture associée *}} {{:include file="_remove_orphan_docs.tpl"}} -{{if $type_immo == "other"}} - {{:include file="_immobilisations_autres.html"}} -{{elseif $type_immo == "archived"}} - {{:include file="_archives.html"}} -{{elseif $type_immo == "unfinished"}} - {{:include file="_unfinished.html"}} -{{elseif $type_immo == "managed" || $type_immo == "amortized"}} - {{:include file="_immobilisations.html"}} -{{/if}} +{{* vérifier si une nouvelle version du module est installée *}} +{{:include file="_check_version.html" keep="new_version"}} +{{if $new_version}} +

+ Une nouvelle version du module est disponible.
+ Pour effectuer la mise à niveau, il faut d'abord aller sur la + + page du module {{$module.label}}, cliquer le bouton « Configurer » et enfin cliquer le bouton + « Mettre à niveau le module » +

+{{else}} + {{if $type_immo == "other"}} + {{:include file="_immobilisations_autres.html"}} + {{elseif $type_immo == "archived"}} + {{:include file="_archives.html"}} + {{elseif $type_immo == "unfinished"}} + {{:include file="_unfinished.html"}} + {{elseif $type_immo == "managed" || $type_immo == "amortized"}} + {{:include file="_immobilisations.html"}} + {{/if}} +{{/if}} {{:admin_footer}} diff --git a/upgrade.html b/upgrade.html new file mode 100644 index 0000000..8ecfe75 --- /dev/null +++ b/upgrade.html @@ -0,0 +1,50 @@ +{{* -*- brindille -*- *}} + +{{* + mise à niveau des documents selon version +*}} + +{{:admin_header title="Mise à niveau" custom_css="./style.css" current="module_amortization"}} + +{{* numéro de version du module *}} +{{:include file="_get_module_version.tpl" keep="module_version"}} + +{{* version 0.31 *}} +{{:assign tag="0.31"}} + +{{:include file="_compare_version.tpl" nv1=$module_version nv2=$tag keep="comp"}} +{{:assign module_comp=$comp}} +{{:include file="_compare_version.tpl" nv1=$module.config.version nv2=$tag keep="comp"}} +{{:assign config_comp=$comp}} + +{{if $module_comp >= 0 && $config_comp < 0}} +{{* $module_version >= '0.31' && $module.config.version < '0.31' *}} + + {{:include file="_upgrade_to031.tpl"}} +

Mise à jour vers version {{$tag}} terminée

+{{/if}} + +{{* version 0.33 *}} +{{:assign tag="0.33"}} + +{{:include file="_compare_version.tpl" nv1=$module_version nv2=$tag keep="comp"}} +{{:assign module_comp=$comp}} +{{:include file="_compare_version.tpl" nv1=$module.config.version nv2=$tag keep="comp"}} +{{:assign config_comp=$comp}} + +{{if $module_comp >= 0 && $config_comp < 0}} +{{* $module_version >= '0.33' && $module.config.version < '0.33' *}} + + {{:include file="_upgrade_to033.tpl"}} +

Mise à jour vers version {{$tag}} terminée

+{{/if}} + +{{* enregistrer le nouveau numéro de version dans la config du module *}} +{{:include file="_compare_version.tpl" nv1=$module_version nv2=$module.config.version keep="comp"}} +{{if $comp > 0}} + {{:save key="config" version=$module_version}} +

Nouvelle version enregistrée : {{$module_version}}

+{{/if}} + +{{:linkbutton label="Revenir à la page d'accueil du module" href="index.html" shape="right"}} + From 8f09359180804a45632add6c4d87ae2b3d7473a2 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 25 Jun 2026 13:41:48 +0200 Subject: [PATCH 2/4] Suppresion code inutile --- config.html | 7 ------- index.html | 29 ++++++++--------------------- 2 files changed, 8 insertions(+), 28 deletions(-) diff --git a/config.html b/config.html index 1f29927..5dd1abb 100644 --- a/config.html +++ b/config.html @@ -134,13 +134,6 @@ {{if $new_version}}
Mettre à niveau le module -

- Pour que la mise à niveau soit effective, il faut d'abord - aller sur la - page du module {{$module.label}}, cliquer le bouton « Configurer » et enfin - cliquer le bouton « Mettre à niveau le module » -

{{:linkbutton label="Mettre à niveau le module" href="upgrade.html" diff --git a/index.html b/index.html index 54040d2..ad62fa4 100644 --- a/index.html +++ b/index.html @@ -37,26 +37,13 @@ {{* supprimer les documents sans écriture associée *}} {{:include file="_remove_orphan_docs.tpl"}} -{{* vérifier si une nouvelle version du module est installée *}} -{{:include file="_check_version.html" keep="new_version"}} - -{{if $new_version}} -

- Une nouvelle version du module est disponible.
- Pour effectuer la mise à niveau, il faut d'abord aller sur la - - page du module {{$module.label}}, cliquer le bouton « Configurer » et enfin cliquer le bouton - « Mettre à niveau le module » -

-{{else}} - {{if $type_immo == "other"}} - {{:include file="_immobilisations_autres.html"}} - {{elseif $type_immo == "archived"}} - {{:include file="_archives.html"}} - {{elseif $type_immo == "unfinished"}} - {{:include file="_unfinished.html"}} - {{elseif $type_immo == "managed" || $type_immo == "amortized"}} - {{:include file="_immobilisations.html"}} - {{/if}} +{{if $type_immo == "other"}} + {{:include file="_immobilisations_autres.html"}} +{{elseif $type_immo == "archived"}} + {{:include file="_archives.html"}} +{{elseif $type_immo == "unfinished"}} + {{:include file="_unfinished.html"}} +{{elseif $type_immo == "managed" || $type_immo == "amortized"}} + {{:include file="_immobilisations.html"}} {{/if}} {{:admin_footer}} From 515d24a0047860ac0780f326f5851cb1b464c165 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 25 Jun 2026 13:57:58 +0200 Subject: [PATCH 3/4] =?UTF-8?q?Ajout=20fichier=20oubli=C3=A9=20+=20simplif?= =?UTF-8?q?ication=20comparaison=20versions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _compare_version.tpl | 34 ++++++++++++++++++++++++++++++++++ config.html | 12 ++++++++++-- 2 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 _compare_version.tpl diff --git a/_compare_version.tpl b/_compare_version.tpl new file mode 100644 index 0000000..88d8a40 --- /dev/null +++ b/_compare_version.tpl @@ -0,0 +1,34 @@ +{{* -*- brindille -*- *}} + +{{* + Comparer deux numéros de version n1.n2[.n3] + @param nv1 + @param nv2 + @result comp : -1 si nv1 < nv2, 0 si nv1 = nv2, 1 si nv1 > nv2 +*}} + +{{:assign nv1=$nv1|cat:"."}} +{{:assign nv2=$nv2|cat:"."}} +{{:assign var="tv1" value=$nv1|explode:"."}} +{{:assign var="tv2" value=$nv2|explode:"."}} + +{{:assign comp=0}} +{{:assign i=0}} +{{#foreach from=$tv1 item="e1"}} + {{:assign var="e2" from="tv2.%d"|args:$i}} + {{if $e1 < $e2}} + {{:assign comp=-1}} + {{:break}} + {{elseif $e1 > $e2}} + {{:assign comp=1}} + {{:break}} + {{/if}} + {{:assign i="%d+1"|math:$i}} +{{/foreach}} +{{* + cas où le premier tableau a moins d'éléments que le 2ème + et où les éléments présents dans les deux tableaux sont identiques + *}} +{{if $comp == 0 && $tv1|count < $tv2|count}} + {{:assign comp = -1}} +{{/if}} diff --git a/config.html b/config.html index 5dd1abb..ec47093 100644 --- a/config.html +++ b/config.html @@ -129,11 +129,19 @@ {{/if}} - {{:include file="_check_version.html" keep="new_version"}} + {{* Nouvelle version ? *}} + {{:include file="_get_module_version.tpl" keep="module_version"}} + {{:include file="_compare_version.tpl" nv1=$module_version nv2=$module.config.version keep="comp"}} - {{if $new_version}} + {{if $comp > 0}}
Mettre à niveau le module +

+ Une nouvelle version du module {{$module.label}} + est disponible ; veuillez cliquer sur le buton + « Mettre à niveau le module » pour effectuer la + mise à niveau +

{{:linkbutton label="Mettre à niveau le module" href="upgrade.html" From d344334179e7cf20a4b6d04ffb8b4563f9fb7cd4 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 25 Jun 2026 14:09:21 +0200 Subject: [PATCH 4/4] Suppresion code inutile --- other_amortizations.html | 5 ----- 1 file changed, 5 deletions(-) diff --git a/other_amortizations.html b/other_amortizations.html index 45488ca..d606d87 100644 --- a/other_amortizations.html +++ b/other_amortizations.html @@ -87,11 +87,6 @@ {{#foreach from=$free_amort_lines item="line"}} -{{* - {{if $_GET.filter && $line.account_code != $code_amort}} - {{:continue}} - {{/if}} -*}} {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$line.trans_id}} {{:assign compte_url="%s/acc/accounts/journal.php?id=%s&year=%s"|args:$admin_url:$line.account_id:$line.year}}