From 578450da42954e43098c82e38c35887f301b7ff4 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 20 Apr 2026 11:18:44 +0200 Subject: [PATCH 01/35] Corrections syntaxiques href --- _archives.html | 4 ++-- _immobilisations.html | 4 ++-- _immobilisations_autres.html | 4 ++-- _unfinished.html | 4 ++-- add_infos.html | 2 +- amortization.html | 6 +++--- ignore.html | 2 +- other_amortizations.html | 4 ++-- 8 files changed, 15 insertions(+), 15 deletions(-) diff --git a/_archives.html b/_archives.html index 56f6b14..9f06778 100644 --- a/_archives.html +++ b/_archives.html @@ -149,12 +149,12 @@ {{/select}} - #{{$trans_id}} + #{{$trans_id}} {{$trans_date|date_short}} {{$exit_date|date_short}} {{$trans_label}}{{if $line_label != null && $line_label != $trans_label}} — {{$line_label}}{{/if}} {{"%f"|math:$montant_immo|money_html:false|raw}} - {{$account_code}} + {{$account_code}} {{$account_label}} {{$project_label}} diff --git a/_immobilisations.html b/_immobilisations.html index d287632..9c4b6e6 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -193,14 +193,14 @@ {{:assign var="montant" from="sommes_immo.%s"|args:$account_code}} {{:assign var="sommes_immo.%s"|args:$account_code value="%d+%d"|math:$montant:$montant_immo}} - #{{$immo_trans_id}} + #{{$immo_trans_id}} {{$trans_date|date_short}} {{$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}} {{"%d-%d"|math:$montant_immo:$amort_amount|money_html:false|raw}} - {{$account_code}} + {{$account_code}} {{if ! $exist_amort || $status == "unknown"}} {{:linkbutton diff --git a/_immobilisations_autres.html b/_immobilisations_autres.html index 1f08e9b..5327a7b 100644 --- a/_immobilisations_autres.html +++ b/_immobilisations_autres.html @@ -172,11 +172,11 @@ {{:assign nb_immo="%d+1"|math:$nb_immo}} - #{{$immo_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}} - {{$account_code}} + {{$account_code}} {{$account_label}} {{:linkbutton diff --git a/_unfinished.html b/_unfinished.html index a222475..37ab4c9 100644 --- a/_unfinished.html +++ b/_unfinished.html @@ -154,11 +154,11 @@ {{:input type="checkbox" name="selected[]" value=$trans_id}} - #{{$trans_id}} + #{{$trans_id}} {{$trans_date|date_short}} {{$trans_label}} {{"%f"|math:$debit|money_html:false|raw}} - {{$account_code}} + {{$account_code}} {{$account_label}} {{:linkbutton diff --git a/add_infos.html b/add_infos.html index 1ee848b..718f8a1 100644 --- a/add_infos.html +++ b/add_infos.html @@ -172,7 +172,7 @@
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}}
+
#{{$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
diff --git a/amortization.html b/amortization.html index cf162a2..12df9fa 100644 --- a/amortization.html +++ b/amortization.html @@ -238,7 +238,7 @@
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}}
+
#{{$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
@@ -283,7 +283,7 @@ {{:assign compte_url="%s/acc/accounts/journal.php?id=%s&year=%s"|args:$admin_url:$line.account_id:$line.amort_year}} {{:assign solde="%f-%d"|math:$solde:$line.amort_amount}} - #{{$line.amort_trans_id}} + #{{$line.amort_trans_id}} {{$line.amort_date|date_short}} {{"%f"|math:$line.amort_amount|money_html:false|raw}} {{"%f"|math:$solde|money_html:false|raw}} @@ -293,7 +293,7 @@ — {{$line.amort_line_label}} {{/if}} - {{$line.account_code}} + {{$line.account_code}} {{$line.account_label}} {{: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"}} diff --git a/ignore.html b/ignore.html index e396a77..96254fd 100644 --- a/ignore.html +++ b/ignore.html @@ -62,7 +62,7 @@
Écriture
-
#{{$ligne_immo.trans_id}} {{$ligne_immo.label}}
+
#{{$ligne_immo.trans_id}} {{$ligne_immo.label}}
Montant
{{"%f"|math:$ligne_immo.amount|money_currency_html:false|raw}}
diff --git a/other_amortizations.html b/other_amortizations.html index 91b379a..632c37e 100644 --- a/other_amortizations.html +++ b/other_amortizations.html @@ -140,13 +140,13 @@ {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$line.amort_trans_id}} {{:assign compte_url="%s/acc/accounts/journal.php?id=%s&year=%s"|args:$admin_url:$line.account_id:$line.amort_year}} - #{{$line.amort_trans_id}} + #{{$line.amort_trans_id}} {{$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 != $line.trans_label}} - {{$line.line_label}}{{/if}} - {{$line.account_code}} + {{$line.account_code}} {{$line.account_label}} {{: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"}} From f34af9b3fdc24e713221bfb1f7613025e4923533 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 23 Apr 2026 11:32:29 +0200 Subject: [PATCH 02/35] Correction erreur sortie bilan --- balance_sheet_exit.html | 6 ++++-- write_exit.html | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/balance_sheet_exit.html b/balance_sheet_exit.html index e7d9ba7..c9a0c0d 100644 --- a/balance_sheet_exit.html +++ b/balance_sheet_exit.html @@ -77,9 +77,11 @@ WHERE l_immo.id = :line_id AND account.code LIKE '28%' ; :line_id = $_GET.immo_line_id|intval - assign="amort_line" + assign="amort_lines." }} +{{/select}} +{{#foreach from=$amort_lines item="amort_line"}} {{#load type="link" where="$$.immo_line_id = :immo_line_id AND $$.amort_trans_id = :amort_trans_id" assign="line" @@ -113,7 +115,7 @@ {{:assign last_amort_date=$amort_line.date}} {{/if}} {{/load}} -{{/select}} +{{/foreach}} {{if $total_amort == 0}} {{if $info_immo.status == "amortized"}} diff --git a/write_exit.html b/write_exit.html index a4de1cd..252a462 100644 --- a/write_exit.html +++ b/write_exit.html @@ -3,7 +3,7 @@ {{* Enregistrer les écritures de sortie du bilan paramètres : - - immo_line_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 @@ -30,6 +30,9 @@ }} {{/select}} +{{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_line_id|intval}} +{{/load}} + {{* chercher des écritures liées à l'immo courante au crédit du même compte et déduire leur montant de celui de l'immo *}} From f3ce9858ef5bb1e8a145369c1a0e3d95a92173ab Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Sat, 9 May 2026 10:51:45 +0200 Subject: [PATCH 03/35] Ajout affichage montant avoir --- add_infos.html | 11 ++++++++++- amortization.html | 20 +++++++++++++------- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/add_infos.html b/add_infos.html index 718f8a1..65eddda 100644 --- a/add_infos.html +++ b/add_infos.html @@ -27,11 +27,13 @@ {{/select}} {{* chercher les liaisons de l'écriture d'immobilisation *}} +{{:assign total_credits=0}} {{#select CASE links.id_related = :immo_trans_id WHEN true THEN links.id_transaction WHEN false THEN links.id_related END as linked_id, + line.credit, acc.code FROM acc_transactions_links as links INNER JOIN acc_transactions_lines AS line on line.id_transaction = linked_id @@ -41,6 +43,7 @@ ; :immo_trans_id = $ligne_immo.immo_trans_id }} + {{:assign total_credits="%d+%d"|math:$total_credits:$credit}} {{:assign var="linked_transactions.%d."|args:$code value=$linked_id}} {{/select}} {{:assign var="immo_transactions" from="linked_transactions.%d"|args:$ligne_immo.code}} @@ -173,8 +176,14 @@
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
+
Montant de l'immobilisation
{{"%f"|math:$ligne_immo.montant|money_currency_html:false|raw}}
+ {{if $total_credits > 0}} +
Montant des avoirs
+
{{"%f"|math:$total_credits|money_currency_html:false|raw}}
+
Montant à amortir
+
{{"%d-%d"|math:$ligne_immo.montant:$total_credits|money_currency_html:false|raw}}
+ {{/if}}
Date de l'écriture d'immobilisation
{{$ligne_immo.date_achat|date_short}}
diff --git a/amortization.html b/amortization.html index 12df9fa..3875a05 100644 --- a/amortization.html +++ b/amortization.html @@ -59,8 +59,8 @@ }} {{:assign total_credits="%d+%d"|math:$total_credits:$credit}} {{/select}} -{{:assign var="ligne_immo.montant" value="%d-%d"|math:$ligne_immo.montant:$total_credits}} -{{:assign solde=$ligne_immo.montant}} +{{:assign montant_amortissable="%d-%d"|math:$ligne_immo.montant:$total_credits}} +{{:assign solde=$montant_amortissable}} {{* lister les lignes des écritures d'amortissement liées à l'immobilisation *}} {{#select @@ -105,10 +105,10 @@ {{/select}} {{if $status == "amortized"}} - {{:assign amort_amount=$ligne_immo.montant}} + {{:assign amort_amount=$montant_amortissable}} {{:assign valeur_residuelle=0}} {{else}} - {{:assign valeur_residuelle=$ligne_immo.montant}} + {{:assign valeur_residuelle=$montant_amortissable}} {{#foreach from=$linked_amort}} {{:assign valeur_residuelle="%d-%d"|math:$valeur_residuelle:$amort_amount}} {{/foreach}} @@ -239,8 +239,14 @@
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
+
Montant de l'immobilisation
{{"%f"|math:$ligne_immo.montant|money_currency_html:false|raw}}
+ {{if $total_credits > 0}} +
Montant des avoirs
+
{{"%f"|math:$total_credits|money_currency_html:false|raw}}
+
Montant à amortir
+
{{"%f"|math:$montant_amortissable|money_currency_html:false|raw}}
+ {{/if}}
Début d'amortissement
{{$date_debut|date_short}}
{{if $duree != null}} @@ -249,13 +255,13 @@ {{/if}} {{if $valeur_residuelle > 0}}
Montant des amortissements
-
{{"%d-%d"|math:$ligne_immo.montant:$valeur_residuelle|money_currency_html:false|raw}}
+
{{"%d-%d"|math:$montant_amortissable:$valeur_residuelle|money_currency_html:false|raw}}
Valeur nette comptable
{{$valeur_residuelle|money_currency_html:false|raw}}
{{/if}} {{if $duree != null && $valeur_residuelle > 0}}
Annuité estimée
-
{{"min(%d, %f/%d)"|math:$valeur_residuelle:$ligne_immo.montant:$duree|money_currency_html:false|raw}}
+
{{"min(%d, %f/%d)"|math:$valeur_residuelle:$montant_amortissable:$duree|money_currency_html:false|raw}}
{{/if}}
From a89ec26574d3fa4b33e0dacd56e1521ec3dae930 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Sat, 9 May 2026 13:20:40 +0200 Subject: [PATCH 04/35] Version initiale aide --- aide.md | 145 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 aide.md diff --git a/aide.md b/aide.md new file mode 100644 index 0000000..9f020ad --- /dev/null +++ b/aide.md @@ -0,0 +1,145 @@ +# Module de gestion d'immobilisations et amortissements pour Paheko + +## Préambule +* Ce module recense les écritures d'immobilisation et d'amortissement + présentes dans la comptabilité et offre la possibilité de saisir de + nouvelles écritures d'immobilisation, de calculer et d'enregistrer + les écritures d'amortissement. +* Les écritures d'amortissement **liées à une écriture + d'immobilisation** lui sont automatiquement associées par le module + ; par contre, les écritures d'amortissement qui ne sont **pas liées + à une écriture d'immobilisation** sont détectées mais doivent être + associées manuellement à leur immobilisation. + +### Fonctionnalités + * créer une immobilisation + * créer des écritures d'amortissement pour une immobilisation + * associer une écriture d'amortissement « orpheline » à une écriture + d'immobilisation + * sortir une immobilisation du bilan en fin de de vie ou par cession + * réunir des écritures d'immobilisation en cours de constitution + pour créer une immobilisation amortissable + * filtrer les écritures d'immobilisation et d'amortissement par + libellé + * classer manuellement une écriture d'immobilisation (utile pour les + immobilisations créées avant la mise en service du module) + +## Comment faire pour ... + +### Enregistrer une écriture d'immobilisation +Il s'agit de créer une nouvelle écriture d'immobilisation ; pour cela, +cliquer le bouton « Ajouter une immobilisation » qui est présent sur +la plupart des onglets ; dans la fenêtre de saisie qui s'affiche il +suffit de saisir les données de l'immobilisation puis de cliquer +« Ajouter » : + * Exercice : sélectionner l'exercice dans lequel enregistrer l'écriture + * Date d'acquisition : doit être située dans l'exercice sélectionné + * Libellé + * Montant + * Compte de décaissement + * Compte d'immobilisation + * Projet + * case Amortir : laisser cochée pour amortir l'immobilisation, + dé-cocher pour ne pas l'amortir + * Durée d'amortissement en années : à saisir uniquement si + l'immobilisation doit être amortie + * Date de mise en service : c'est la date de première utilisation ; + à renseigner uniquement si différente de la date d'acquisition ; + doit être postérieure ou égale à la date d'acquisition + +### Enregistrer une écriture d'amortissement + * Il n'est possible d'enregistrer une nouvelle écriture + d'amortissement pour une immobilisation que si la date + d'acquisition et la durée d'immobilisation ont été préalablement + définies. + * À partir de l'onglet « Amortissables », cliquer le bouton + « Amortissements » en face de l'immobilisation choisie ; dans la + page suivante, cliquer le bouton « Enregistrer un amortissement » + ; dans la fenêtre de saisie qui s'affiche, il faut renseigner les + informations suivantes : + * Exercice : sélectionner l'exercice dans lequel enregistrer l'écriture + * Date de l'écriture : doit être située dans l'exercice + sélectionné et postérieure à la date de mise en service + * Libellé + * Montant : caclculé par le module ; il peut être modifié si + nécessaire, par exemple pour l'arrondir à un nombre entier + * Compte de débit : par défaut c'est le compte *6811 : Dotation + aux amortissements des immobilisations* + * Compte d'amortissement : par défaut c'est le compte qui + correspond au compte de l'immobilisation + +### Attacher une écriture d'amortissement à une immobilisation +* Il se peut qu'il existe des écritures d'amortissement qui ont été + saisies à l'extérieur du module et qui ne sont pas liées à une + écriture d'immobilisation : le module ne peut donc pas les associer + automatiquement à leur écriture d'immobilisation. +* Quand on affiche la liste des amortissements d'une immobilisation en + cliquant le bouton « Amortissements », on peut voir la liste des + écritures d'amortissements qui ne sont associées à aucune + immobilisation en cliquant le bouton « Rattacher une écriture » ; on + peut alors choisir d'en attacher certaines à l'immobilisation + courante. + +### Sortir une immobilisation du bilan + +### Incorporer une écriture d'immobilisation existante dans le module + +### Transformer des immobilisations en cours en immobilisation amortissable + +### Marquer « à ignorer » des écritures + +### Ignorer des écritures selon leur libellé + + + +## Description de l'interface + +Les écritures d'immobilisation sont réparties en plusieurs onglets. + +### Amortissables +Cet onglet liste les immobilisations en cours d'amortissement. + +##### bouton Paramètres + +Ce bouton affiche une page qui permet de modifier les caractéristiques +d'une immobilisation ; + +On peut décider de son classement : + * Amortir ; c'est le choix par défaut pour les immobilisations de + cet onglet + * Amortissement terminé : cette immobilisation sera alors classée + parmi les immobilisations amorties ; c'est le choix par défaut + pour les immobilisations de l'onglet Amorties + * Ignorer l'écriture : cette écriture n'apparaîtra plus dans la + liste des immobilisations + +Pour les immobilisations à amortir, on peut préciser : + * obligatoirement la durée d'amortissement en années + * optionnellement la date de mise en service si elle est différente + de la date d'acquisition + +###### bouton Amortissements + +Ce bouton affiche la liste des amortissements déjà réalisés pour une +immobilisation ; à partir de cette page, il est possible d'enregistrer +un nouvel amortissement ou bien d'attacher une écriture +d'amortissement à l'immobilisation + +### Amorties +Cet onglet liste les immobilisations dont l'amortissement est terminé +mais toujours en service dans l'association. + +### Sorties du bilan +Cette page liste les immobilisations sorties du bilan, donc qui ne sont +plus en service dans l'association, soit parce qu'elles sont hors +d'usage, soit parce qu'elles ont été cédées. + +### En cours +Cette page liste les immobilisations en cours de constitution, donc +non amortissables ; à terme, elles sont destinées à être regroupées +pour être transformées en immobilisation amortissable. + +### Autres +Cette page liste les écritures d'immobilisation pas (encore) prises en +charge par le module et sans écriture d'amortissement associée. + From 82d42352e61cb555ad9ae98327d90fd0a8e3f279 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 11 May 2026 09:07:13 +0200 Subject: [PATCH 05/35] =?UTF-8?q?Ajout=20Incorporer=20une=20=C3=A9criture?= =?UTF-8?q?=20d'immobilisation=20et=20modif=20Attacher=20une=20=C3=A9critu?= =?UTF-8?q?re=20d'amortissement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aide.md | 78 ++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 58 insertions(+), 20 deletions(-) diff --git a/aide.md b/aide.md index 9f020ad..90849fa 100644 --- a/aide.md +++ b/aide.md @@ -14,7 +14,7 @@ ### Fonctionnalités * créer une immobilisation * créer des écritures d'amortissement pour une immobilisation - * associer une écriture d'amortissement « orpheline » à une écriture + * associer une écriture d'amortissement *orpheline* à une écriture d'immobilisation * sortir une immobilisation du bilan en fin de de vie ou par cession * réunir des écritures d'immobilisation en cours de constitution @@ -26,12 +26,63 @@ ## Comment faire pour ... +### Incorporer une écriture d'immobilisation existante dans le module +Si on a créé des immobilisations et éventuellement des amortissements +avec Paheko *avant* la mise en service du module *Amortissements*, +il est possible de les prendre en charge avec le module. Les +immobilisations concernées sont regroupées dans l'onglet Autres. + +- cliquer le bouton *Paramètres* en face de l'immobilisation à prendre + en charge +- cocher *Immobilisation à amortir* pour spécifier qu'on veut amortir + l'immobilisation ; plusieurs champs d'informations s'affichennt : + - Durée d'amortissement : renseigner la durée (obligatoire) + - Écritures liées au crédit du compte d'immobilisation : lorsqu'on + acquiert une immobilisation, il se peut que par la suite on + obtienne une ristourne ou un avoir ; cet avoir est enregistré + dans Paheko par une écriture dont le montant est au crédit du + compte d'immobilisation ; le module offre la possibilité + d'associer cette écriture d'avoir à l'écriture + d'immobilisation. En effet, le montant amortissable est égal au + montant d'acquisition de l'immobilisation moins la somme des + avoirs. Pour cela, cliquer le bouton *Ajouter* puis sélectionner + une écriture : cette écriture sera associée à l'écriture + d'immobilisation et son montant déduit du montant de + l'immobilisation pour donner le montant à amortir + - Date de mise en service : c'est la date à laquelle + l'immobilisation est en état de fonctionner, qui peut être + postérieure à la date d'acquisition ; c'est cette date qui est + prise en compte dans le calcul des amortissements ; si elle + coïncide avec la date d'acquisition, inutile de la renseigner. +- L'immobilisation apparait ensuite dans l'onglet *Amortissables* ; on + peut vérifier et éventuellement modifier ses paramètres grâce au + bouton Paramètres + +### Attacher une écriture d'amortissement à une immobilisation +Si des écritures d'amortissement ont été saisies avec Paheko *avant* +la mise en service du module *Amortissements*, on peut les associer à +leur immobilisation : + +- cliquer le bouton *Amortissements* en face de l'immobilisation concernée ; si la mention + +> « Il existe des écritures d'amortissement qui ne sont pas rattachées à une immobilisation ! +> Utilisez le bouton « Rattacher une écriture » pour les afficher ; vous pourrez choisir d'en attacher certaines à cette immobilisation. » + +est présente, c'est qu'il existe des écritures d'amortissement saisies avec Paheko *avant* +la mise en service du module. + +- cliquer le bouton *Rattacher une écriture* pour en afficher la liste +- le cas échéant, cliquer *Attacher* en face de l'écriture à rattacher + +De retour sur la page des amortissements, on constate la présence de l'écriture d'amortissement qu'on vient d'attacher ; on peut répéter le processus plusieurs fois si nécessaire. On peut aussi détacher une écriture si on s'est trompé. + + ### Enregistrer une écriture d'immobilisation Il s'agit de créer une nouvelle écriture d'immobilisation ; pour cela, -cliquer le bouton « Ajouter une immobilisation » qui est présent sur +cliquer le bouton *Ajouter une immobilisation* qui est présent sur la plupart des onglets ; dans la fenêtre de saisie qui s'affiche il suffit de saisir les données de l'immobilisation puis de cliquer -« Ajouter » : +*Ajouter* : * Exercice : sélectionner l'exercice dans lequel enregistrer l'écriture * Date d'acquisition : doit être située dans l'exercice sélectionné * Libellé @@ -52,9 +103,9 @@ suffit de saisir les données de l'immobilisation puis de cliquer d'amortissement pour une immobilisation que si la date d'acquisition et la durée d'immobilisation ont été préalablement définies. - * À partir de l'onglet « Amortissables », cliquer le bouton - « Amortissements » en face de l'immobilisation choisie ; dans la - page suivante, cliquer le bouton « Enregistrer un amortissement » + * À partir de l'onglet *Amortissables*, cliquer le bouton + *Amortissements* en face de l'immobilisation choisie ; dans la + page suivante, cliquer le bouton *Enregistrer un amortissement* ; dans la fenêtre de saisie qui s'affiche, il faut renseigner les informations suivantes : * Exercice : sélectionner l'exercice dans lequel enregistrer l'écriture @@ -68,25 +119,12 @@ suffit de saisir les données de l'immobilisation puis de cliquer * Compte d'amortissement : par défaut c'est le compte qui correspond au compte de l'immobilisation -### Attacher une écriture d'amortissement à une immobilisation -* Il se peut qu'il existe des écritures d'amortissement qui ont été - saisies à l'extérieur du module et qui ne sont pas liées à une - écriture d'immobilisation : le module ne peut donc pas les associer - automatiquement à leur écriture d'immobilisation. -* Quand on affiche la liste des amortissements d'une immobilisation en - cliquant le bouton « Amortissements », on peut voir la liste des - écritures d'amortissements qui ne sont associées à aucune - immobilisation en cliquant le bouton « Rattacher une écriture » ; on - peut alors choisir d'en attacher certaines à l'immobilisation - courante. ### Sortir une immobilisation du bilan -### Incorporer une écriture d'immobilisation existante dans le module - ### Transformer des immobilisations en cours en immobilisation amortissable -### Marquer « à ignorer » des écritures +### Marquer *à ignorer* des écritures ### Ignorer des écritures selon leur libellé From 243441f4fa9d5c479bee93dd3d05a8ca604c2e14 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 12 May 2026 17:21:15 +0200 Subject: [PATCH 06/35] =?UTF-8?q?Am=C3=A9lioration=20pr=C3=A9sentation=20e?= =?UTF-8?q?t=20correction=20erreur=20libell=C3=A9=20nouvel=20amortissement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- amortization.html | 16 ++++++++-------- save_amort.html | 3 +-- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/amortization.html b/amortization.html index 3875a05..747ff8f 100644 --- a/amortization.html +++ b/amortization.html @@ -239,20 +239,20 @@
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 de l'immobilisation
-
{{"%f"|math:$ligne_immo.montant|money_currency_html:false|raw}}
- {{if $total_credits > 0}} -
Montant des avoirs
-
{{"%f"|math:$total_credits|money_currency_html:false|raw}}
-
Montant à amortir
-
{{"%f"|math:$montant_amortissable|money_currency_html:false|raw}}
- {{/if}}
Début d'amortissement
{{$date_debut|date_short}}
{{if $duree != null}}
Durée
{{$duree}} ans
{{/if}} +
Montant de l'immobilisation
+
{{"%f"|math:$ligne_immo.montant|money_currency_html:false|raw}}
+ {{if $total_credits > 0}} +
Montant des avoirs
+
{{"%f"|math:$total_credits|money_currency_html:false|raw}}
+
Montant à amortir
+
{{"%f"|math:$montant_amortissable|money_currency_html:false|raw}}
+ {{/if}} {{if $valeur_residuelle > 0}}
Montant des amortissements
{{"%d-%d"|math:$montant_amortissable:$valeur_residuelle|money_currency_html:false|raw}}
diff --git a/save_amort.html b/save_amort.html index 4aa8e64..3be761c 100644 --- a/save_amort.html +++ b/save_amort.html @@ -111,7 +111,6 @@ {{/load}} {{/select}} - {{:assign total_amort=0}} {{:assign valeur_residuelle=$ligne_immo.montant}} {{#foreach from=$linked_amort}} @@ -120,7 +119,7 @@ {{:assign date_debut=$amort_date}} {{:assign code_amort=$account_code}} {{:assign amort_account_label=$account_label}} - {{:assign amort_label=$amort_label}} + {{:assign amort_label=$trans_label}} {{/foreach}} {{if $valeur_residuelle == 0}} From 8c9893f9e4bbf993a4c15c2034a924744fd09a59 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 13 May 2026 09:16:17 +0200 Subject: [PATCH 07/35] =?UTF-8?q?Restauration=20d=C3=A9tection=20amortisse?= =?UTF-8?q?ments=20li=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _immobilisations.html | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/_immobilisations.html b/_immobilisations.html index 9c4b6e6..2bb7174 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -30,13 +30,18 @@ {{* vérifier l'existence de la table du module *}} - {{#load limit="1"}} - {{:assign table_presente=true}} + {{if $module.table != null}} + {{: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' AND $$.status <> 'archived')"}} + {{:assign doc_condition2="$$.status IS NULL"}} {{else}} - {{:assign table_presente=false}} - {{/load}} + {{:assign columns=""}} + {{:assign table_join=""}} + {{:assign doc_condition1="0"}} + {{:assign doc_condition2="1"}} + {{/if}} - {{if $table_presente}} {{* lister les immobilisations *}} {{:assign account_condition="("}} {{#foreach from=$module.config.prefixes item="code"}} @@ -44,7 +49,7 @@ {{: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 doc_condition="($$.status <> 'ignored' AND $$.status <> 'archived')"*}} {{:assign filter_condition="NOT ("}} {{#foreach from=$module.config.filters item="filter"}} @@ -52,9 +57,9 @@ {{: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 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}} {{:assign total_immo = 0}} @@ -67,16 +72,17 @@ line.label AS line_label, account.id as account_id, account.code as account_code, - 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 }} @@ -250,9 +256,9 @@ {{/if}} -{{/if}} +{{*/if*}} - {{if $nb_immo == 0 || ! $table_presente}} + {{if $nb_immo == 0}}

Aucune immobilisation

{{/if}} From 7903afbd0cabd92b8b08ae1fd84b3ba093cdbee6 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 15 Jun 2026 12:13:24 +0200 Subject: [PATCH 08/35] Simplification navigation --- _nav.html | 56 ++++++++++++---------------------------- add_asset.html | 2 +- add_infos.html | 2 +- amortization.html | 37 +++++++++++--------------- attach_amort.html | 2 +- attach_credit.html | 5 ++-- balance_sheet_exit.html | 8 +++++- compute_exit_data.html | 11 ++++++-- index.html | 2 +- link_immo.html | 5 ++-- modify_infos.html | 2 +- other_amortizations.html | 5 ++-- save_amort.html | 22 +++++++++++++--- transfer.html | 2 +- write_exit.html | 7 ++++- 15 files changed, 84 insertions(+), 84 deletions(-) diff --git a/_nav.html b/_nav.html index fac14e4..c81e1f3 100644 --- a/_nav.html +++ b/_nav.html @@ -1,55 +1,31 @@ {{* -*- brindille -*- *}} {{if $linked_amort != null}} diff --git a/attach_amort.html b/attach_amort.html index 5c2951c..738a3c0 100644 --- a/attach_amort.html +++ b/attach_amort.html @@ -134,7 +134,7 @@ {{* barre de navigation *}} {{if ! $dialog}} - {{:include file="_nav.html" current="config" subcurrent="init" subsubcurrent="parameter"}} + {{:include file="_nav.html" current="managed" subcurrent="attach_amort"}} {{/if}} {{:form_errors}} diff --git a/attach_credit.html b/attach_credit.html index 6e8d22a..276dc76 100644 --- a/attach_credit.html +++ b/attach_credit.html @@ -115,9 +115,8 @@ {{if ! $dialog}} {{:include file="_nav.html" - current="config" - subcurrent="other" - subsubcurrent="immo" + current="managed" + subcurrent="attach_credit" type_immo="other" }} {{/if}} diff --git a/balance_sheet_exit.html b/balance_sheet_exit.html index 2b4cf6b..d844c91 100644 --- a/balance_sheet_exit.html +++ b/balance_sheet_exit.html @@ -10,6 +10,12 @@ {{if $message != null}} {{:error message=$message}} {{/if}} +{{* TODO VÉRIFIER SI UTILE *}} +{{* +{{if $info_immo.duration == null || $info_immo.duration == 0}} + {{:error message="Vous devez renseigner la durée d'amortissement au préalable"}} +{{/if}} +*}} {{:assign label_immo=$info_immo.label|or:$ligne_immo.trans_label}} {{if $ligne_immo.line_label != null && $ligne_immo.line_label != $label_immo}} @@ -135,7 +141,7 @@ {{:admin_header title="Sortie de bilan" custom_css="./style.css" current="module_amortization"}} {{if ! $dialog}} - {{:include file="_nav.html" current="index" subcurrent="%s"|args:$_GET.type_immo subsubcurrent="balance_exit"}} + {{:include file="_nav.html" current="%s"|args:$_GET.type_immo subcurrent="balance_exit"}} {{/if}} {{:form_errors}} diff --git a/compute_exit_data.html b/compute_exit_data.html index 7caf90b..c824af5 100644 --- a/compute_exit_data.html +++ b/compute_exit_data.html @@ -9,7 +9,9 @@ @param date_debut : date de début de la période d'amortissement complémentaire @param exit_date : date de sortie de l'immobilisation *}} -{{* TODO *}} + +{{* TODO boutons de navigation avant-arrière*}} + {{* données de l'immobilisation *}} {{:include file="_get_immo_data.html" immo_doc_id=$_GET.immo_doc_id|intval keep="info_immo, ligne_immo, message"}} {{if $message != null}} @@ -58,7 +60,12 @@ {{* barre de navigation *}} {{if ! $dialog}} - {{:include file="_nav.html" current="index" subcurrent="balance_exit"}} + {{if $valeur_nette > 0}} + {{:assign type_immo="managed"}} + {{else}} + {{:assign type_immo="amortized"}} + {{/if}} + {{:include file="_nav.html" current="%s"|args:$type_immo subcurrent="balance_exit"}} {{/if}} {{:form_errors}} diff --git a/index.html b/index.html index 5007c48..f2fab2e 100644 --- a/index.html +++ b/index.html @@ -19,7 +19,7 @@ {{:admin_header title="Immobilisations en cours de constitution" custom_css="./style.css" current="module_amortization" subcurrent="unfinished"}} {{/if}} -{{:include file="_nav.html" current="index" subcurrent=$type_immo}} +{{:include file="_nav.html" current=$type_immo}} {{if $_GET.ok}} {{if $_GET.msg|match:"immobilisation"}} diff --git a/link_immo.html b/link_immo.html index 77f5cd1..ddee4dd 100644 --- a/link_immo.html +++ b/link_immo.html @@ -51,9 +51,8 @@ {{if ! $dialog}} {{:include file="_nav.html" - current="config" - subcurrent="other" - subsubcurrent="immo" + current="managed" + subcurrent="link_immo" type_immo="other" }} {{/if}} diff --git a/modify_infos.html b/modify_infos.html index 5b89e91..7694e83 100644 --- a/modify_infos.html +++ b/modify_infos.html @@ -153,7 +153,7 @@ {{:admin_header title="Modifier l'immobilisation" custom_css="./style.css" current="module_amortization"}} {{if ! $dialog}} - {{:include file="_nav.html" current="index" subcurrent="%s"|args:$_GET.type_immo subsubcurrent="parameter"}} + {{:include file="_nav.html" current="managed" subcurrent="modify_infos"}} {{/if}} {{:form_errors}} diff --git a/other_amortizations.html b/other_amortizations.html index bc5b2c5..8716a25 100644 --- a/other_amortizations.html +++ b/other_amortizations.html @@ -38,9 +38,8 @@ {{if ! $dialog}} {{:include file="_nav.html" - current="index" - subcurrent="managed" - subsubcurrent="amortization" + current="managed" + subcurrent="amortization" type_immo="managed" autres_amort=$free_amort_lines }} diff --git a/save_amort.html b/save_amort.html index 1705579..224d52e 100644 --- a/save_amort.html +++ b/save_amort.html @@ -65,7 +65,7 @@ *}} {{:assign msg_years=""}} {{#years closed=false order="start_date" where="start_date <= :debut AND :debut <= end_date" - :debut=$date_debut assign=years.}} + :debut=$date_debut assign="years."}} {{if $total_amort == 0}} {{:assign ts_debut=$date_debut|strtotime}} {{else}} @@ -178,6 +178,20 @@ {{* enregistrer la liaison des lignes *}} {{#foreach from=$result.lines item="line"}} {{if $line.account_code == $credit_account|keys|value:0}} + {{* TODO VOIR SI CORRECT ET UTILE *}} + {{* + vérifier la présence d'un doc avec cette ligne d'amortissement + (cas de la suppression manuelle d'un amortissement) + *}} + + {{#load type="amort_link" where="$$.amort_line_id = :amort_line_id" :amort_line_id=$line.id debug=true assign="info_amort"}} + {{:debug info_amort=$info_amort}} + {{:assign uuid=$key}} + {{:break}} + {{else}} + {{:assign uuid=""|uuid}} + {{/load}} +{{:debug uuid=$uuid}} {{:save key=""|uuid type="amort_link" @@ -205,12 +219,14 @@ {{* barre de navigation *}} {{if ! $dialog}} - {{:include file="_nav.html" current="index" subcurrent="managed" subsubcurrent="amortization"}} + {{:include file="_nav.html" current="managed" subcurrent="amortization"}} {{/if}} {{:form_errors}} -{{:assign var=selected_year value=$years.0.id}} +{{if $years|count == 1}} + {{:assign var=selected_year value=$years.0.id}} +{{/if}} {{:assign var=date_amort value=$years.0.end_date}} {{:include file="_calcul_dates.html" date_debut=$date_debut date_fin=$date_amort keep="nbjours"}} diff --git a/transfer.html b/transfer.html index a9c9f50..17d3b31 100644 --- a/transfer.html +++ b/transfer.html @@ -192,7 +192,7 @@ {{:admin_header title="Transfert d'immobilisation en cours" custom_css="./style.css" current="module_amortization"}} {{if ! $dialog}} - {{:include file="_nav.html" current="index" subcurrent="unfinished" subsubcurrent="transfer"}} + {{:include file="_nav.html" current="unfinished" subcurrent="transfer"}} {{/if}} {{:form_errors}} diff --git a/write_exit.html b/write_exit.html index 0a17d3b..beb6e68 100644 --- a/write_exit.html +++ b/write_exit.html @@ -267,7 +267,12 @@ {{:admin_header title="Sortie du bilan" custom_css="./style.css" current="module_amortization"}} {{if ! $dialog}} - {{:include file="_nav.html" current="index" subcurrent="balance_exit"}} + {{if $valeur_nette > 0}} + {{:assign type_immo="managed"}} + {{else}} + {{:assign type_immo="amortized"}} + {{/if}} + {{:include file="_nav.html" current="%s"|args:$type_immo subcurrent="balance_exit"}} {{/if}} {{* From 2af96b279673ac94703c4ff7d3bd07593eef5315 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 15 Jun 2026 12:27:16 +0200 Subject: [PATCH 09/35] =?UTF-8?q?Amortization=20:=20am=C3=A9lioration=20af?= =?UTF-8?q?fichage=20boutons?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- amortization.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/amortization.html b/amortization.html index 95939d4..a3378b2 100644 --- a/amortization.html +++ b/amortization.html @@ -45,11 +45,11 @@ {{:admin_header title="Détails de l'immobilisation" custom_css="./style.css" current="module_amortization"}} {{* barre de navigation *}} -{{if $_GET.type_immo == "amortized" || $valeur_residuelle == 0 }} +{{if $_GET.type_immo == "amortized" && $valeur_residuelle == 0}} {{:assign current="amortized"}} {{elseif $_GET.type_immo == "archived"}} {{:assign current="archived"}} -{{elseif $_GET.type_immo == null || $_GET.type_immo == "managed"}} +{{elseif $_GET.type_immo == null || $_GET.type_immo == "managed" || $valeur_residuelle > 0}} {{:assign current="managed"}} {{else}} {{:assign current="other"}} @@ -150,7 +150,7 @@

Avoirs

From d4743f36311ac1289668a71655d7efe0a412c685 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 16 Jun 2026 10:31:26 +0200 Subject: [PATCH 10/35] =?UTF-8?q?Harmonisation=20navigation=20et=20s=C3=A9?= =?UTF-8?q?lection=20comptes=20et=20sous-comptes=20cr=C3=A9dit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _archives.html | 2 +- exit_step1.html | 17 +++++++++-------- exit_step2.html | 2 +- exit_step3.html | 19 ++++++++++++++++++- exit_step4.html | 1 + link_immo.html | 12 ++++++++---- 6 files changed, 38 insertions(+), 15 deletions(-) diff --git a/_archives.html b/_archives.html index ce92aff..a4356d6 100644 --- a/_archives.html +++ b/_archives.html @@ -153,7 +153,7 @@ {{$account_code}} {{$account_label}} - {{:linkbutton label="Modifier" href="exit_step4.html?immo_doc_id=%s"|args:$info_immo.id shape="edit"}} + {{:linkbutton label="Modifier" href="exit_step1.html?immo_doc_id=%s"|args:$info_immo.id shape="edit"}} {{/select}} diff --git a/exit_step1.html b/exit_step1.html index 0fc2fb1..0b85eb9 100644 --- a/exit_step1.html +++ b/exit_step1.html @@ -32,6 +32,7 @@ - line.credit < ligne_immo.amount => peut-être un avoir - line.credit = ligne_immo.amount - avoirs => écriture de sortie du bilan *}} +{{:assign account_code=$ligne_immo.account_code|cat:"%"}} {{#select trans.id as trans_id, trans.label as trans_label, @@ -40,15 +41,15 @@ line.id as credit_line_id, line.label as line_label, line.credit as amount, - acc.id as account_id, - acc.code as account_code, - acc.label as account_label + account.id as account_id, + account.code as account_code, + account.label as account_label FROM acc_transactions AS trans 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 + INNER JOIN acc_accounts AS account ON line.id_account = account.id LEFT JOIN module_data_amortization AS mda ON json_extract(mda.document, '$.amort_line_id') = line.id WHERE - acc.code = :acc_code + account.code LIKE :account_code AND line.credit > 0 AND credit_line_id NOT IN ( SELECT json_extract(credit_link.document, '$.credit_line_id') AS line_id FROM !table as credit_link @@ -58,7 +59,7 @@ WHERE json_extract(exit_link.document, '$.type') == "exit_link" ) ; - :acc_code=$ligne_immo.account_code + :account_code=$account_code !table =$module.table assign="credit_line" }} @@ -75,7 +76,6 @@ }} {{* chercher des écritures d'amortissement correspondant au compte d'une immo sans doc associé *}} -{{* TODO écritures d'amort pas entièrement affectées *}} {{#select line.id as amort_line_id, line.credit as amort_amount, @@ -105,7 +105,7 @@ {{:assign keep_amort=true}} {{#load type="amort_link" where="$$.amort_line_id = :amort_line_id" - :amort_line_id=$amort_line.amort_line_id|intval + :amort_line_id=$amort_line.amort_line_id assign="amort_link" }} {{if $amort_link.amount == null || $amort_link.amount == 0}} @@ -123,6 +123,7 @@ {{/select}} {{:admin_header title="Immobilisation sortie du bilan" custom_css="./style.css" current="module_amortization"}} +{{:include file="_nav.html" current="archived" subcurrent="exit"}} {{if $_GET.ok}} {{if $_GET.msg|match:"attach_avoir"}} diff --git a/exit_step2.html b/exit_step2.html index 8199426..ee740ff 100644 --- a/exit_step2.html +++ b/exit_step2.html @@ -43,7 +43,6 @@ }} {{* chercher des écritures d'amortissement correspondant au compte d'une immo sans doc associé *}} -{{* TODO écritures d'amort pas entièrement affectées *}} {{#select line.id as amort_line_id, line.credit as amort_amount, @@ -91,6 +90,7 @@ {{/select}} {{:admin_header title="Immobilisation sortie du bilan" custom_css="./style.css" current="module_amortization"}} +{{:include file="_nav.html" current="archived" subcurrent="exit"}} {{if $_GET.ok}} {{if $_GET.msg|match:"attach_amort"}} diff --git a/exit_step3.html b/exit_step3.html index 5d8ff0d..458357c 100644 --- a/exit_step3.html +++ b/exit_step3.html @@ -1,6 +1,5 @@ {{* -*- brindille -*- *}} -{{:admin_header title="Immobilisation sortie du bilan" custom_css="./style.css" current="module_amortization"}} {{* Associer une écriture de cession à une immo créée et sortie du bilan avant la mise en service du module @@ -59,6 +58,21 @@ assign="line" }} {{* voir si l'écriture de cession est déjà liée à une immo *}} + {{* TODO VOIR SI TUTILE + {{#load type="cession_link" + where="$$.cession_line_id = :cession_line_id" + :cession_line_id = $line.line_id + assign="cession_link" + }} +{{:debug line=$line cession_link=$cession_link}} + {{:assign total_cession="%d+%d"|math:$total_cession:$line.amount}} + {{:assign var="line.linked_id" value=$linked_id}} + {{:assign var="linked_cessions." value=$line}} + {{else}} + {{:assign var="free_cessions." value=$line}} + {{/load}} +*}} + {{#select CASE WHEN links.id_related = :trans_id THEN links.id_transaction @@ -80,6 +94,9 @@ {{/select}} {{*:debug linked_cessions=$linked_cessions free_cessions=$free_cessions total_cession=$total_cession*}} +{{:admin_header title="Immobilisation sortie du bilan" custom_css="./style.css" current="module_amortization"}} +{{:include file="_nav.html" current="archived" subcurrent="exit"}} + {{if $_GET.ok}} {{if $_GET.msg|match:"attach_cession"}} {{:assign msg="Écriture de cession attachée"}} diff --git a/exit_step4.html b/exit_step4.html index ccb6d7f..8a2b51e 100644 --- a/exit_step4.html +++ b/exit_step4.html @@ -164,6 +164,7 @@ {{/select}} {{:admin_header title="Immobilisation sortie du bilan" custom_css="./style.css" current="module_amortization"}} +{{:include file="_nav.html" current="archived" subcurrent="exit"}} {{if $_GET.ok}} {{if $_GET.msg|match:"attach_exit"}} diff --git a/link_immo.html b/link_immo.html index ddee4dd..557b0e8 100644 --- a/link_immo.html +++ b/link_immo.html @@ -18,6 +18,7 @@ {{* lister les écritures au crédit du compte de l'immobilisation *}} +{{:assign account_code=$ligne_immo.account_code|cat:"%"}} {{#select line.id as credit_line_id, line.id_transaction as credit_trans_id, @@ -34,12 +35,15 @@ INNER JOIN acc_transactions AS trans ON trans.id = line.id_transaction INNER JOIN acc_accounts AS account ON account.id = line.id_account INNER JOIN acc_years AS y ON y.id = trans.id_year - WHERE account.code = :account_code AND credit > 0 + WHERE account.code LIKE :account_code AND credit > 0 AND credit_line_id NOT IN ( SELECT json_extract(link.document, '$.credit_line_id') AS credit_line_id FROM !table as link - WHERE json_extract(link.document, '$.type') == "credit_link") + WHERE json_extract(link.document, '$.type') == "credit_link" + UNION + SELECT json_extract(exit_link.document, '$.exit_line_id') AS line_id FROM !table as exit_link + WHERE json_extract(exit_link.document, '$.type') == "exit_link") ORDER BY trans.date, trans.label; - :account_code = $ligne_immo.account_code + :account_code = $account_code !table =$module.table assign="other_immos." }} @@ -60,7 +64,7 @@
- Écritures au crédit du compte d'immobilisation « {{$ligne_immo.account_code}} » + Écritures au crédit du compte d'immobilisation « {{$ligne_immo.account_code}} » et sous-comptes
From 003af639ea40d085f8f550801a443763b50607d3 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 16 Jun 2026 10:33:26 +0200 Subject: [PATCH 11/35] =?UTF-8?q?Modifications=20cosm=C3=A9tiques?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 ++++----- _common_detach.html | 3 ++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index e771e69..578af08 100644 --- a/README.md +++ b/README.md @@ -4,15 +4,14 @@ Ce module permet de gérer les écritures d'amortissements pour les immobilisati - lister les immobilisations - ajouter une nouvelle immobilisation -- lister les amortissements d'une immobilisation : - - amortissements déjà enregistrés - - amortissements à venir -- associer une écriture d'amortissement à une immobilisation +- lister les amortissements d'une immobilisation - enregistrer un nouvel amortissement +- incorporer d'anciennes immobilisations et leurs amortisements ## Installation - télécharger [l'archive zip](https://link.infini.fr/amortissement) - cliquer « Configuration » puis « Extensions » - en bas de la page, cliquer « Importer un module » - sélectionner l'archive téléchargée ci-dessus -- activer le module qui est maintenant présent dans la liste des extensions inactives +- activer le module + diff --git a/_common_detach.html b/_common_detach.html index b4e80d0..2c730c8 100644 --- a/_common_detach.html +++ b/_common_detach.html @@ -1,10 +1,11 @@ {{* -*- brindille -*- *}} {{* - Supprimer l'association entre deux lignes + Supprimer l'association entre une ligne d'immo et une autre ligne (amort, credit, cession, sortie) @param immo_doc_id : id du doc associé à la ligne d'immobilisation @param line_id : id de la ligne à détacher *}} + {{* données de l'immobilisation *}} {{:include file="_get_immo_data.html" immo_doc_id=$immo_doc_id|intval keep="ligne_immo, message"}} {{if $message != null}} From 77fa5f353ab5924ae8767228c2d25cfcde05a092 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 17 Jun 2026 11:25:42 +0200 Subject: [PATCH 12/35] Ajout suppression doc orphelins (attach_amort, save_amort) --- attach_amort.html | 8 +++++++- save_amort.html | 27 +++++++++------------------ 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/attach_amort.html b/attach_amort.html index 738a3c0..61a5a1a 100644 --- a/attach_amort.html +++ b/attach_amort.html @@ -93,6 +93,12 @@ {{:error message="Le montant de l'amortissement (%s) dépasse la valeur résiduelle de l'immobilisation (%s)"|args:$ma:$vnc}} {{/if}} + {{* + supprimer les documents qui pointent sur une ligne d'amortissement absente + cas de la suppression manuelle d'un amortissement + *}} + {{:include file="_remove_orphan_docs.tpl"}} + {{* Lier l'écriture d'amortissement à l'écriture d'immobilisation *}} {{:include file="_common_attach.html" immo_doc_id=$_GET.immo_doc_id trans_id=$amort_line.trans_id}} @@ -114,7 +120,7 @@ }} {{/load}} - {{* À VÉRIFIER immo soldée ? *}} + {{* immo soldée ? *}} {{if $total_amort == $montant_immo}} {{:assign status="amortized"}} {{:save diff --git a/save_amort.html b/save_amort.html index 224d52e..9705bf9 100644 --- a/save_amort.html +++ b/save_amort.html @@ -148,6 +148,12 @@ {{:error message="Le montant indiqué « %s » dépasse le solde à amortir « %s »"|args:$montant:$solde}} {{/if}} + {{* + supprimer les documents qui pointent sur une ligne d'amortissement absente + cas de la suppression manuelle d'un amortissement + *}} + {{:include file="_remove_orphan_docs.tpl"}} + {{* enregistrer l'écriture *}} {{:assign var="lines." @@ -161,7 +167,6 @@ account=$credit_account|keys|value:0 id_project=$ligne_immo.id_project }} - {{:api method="POST" path="accounting/transaction" @@ -178,20 +183,6 @@ {{* enregistrer la liaison des lignes *}} {{#foreach from=$result.lines item="line"}} {{if $line.account_code == $credit_account|keys|value:0}} - {{* TODO VOIR SI CORRECT ET UTILE *}} - {{* - vérifier la présence d'un doc avec cette ligne d'amortissement - (cas de la suppression manuelle d'un amortissement) - *}} - - {{#load type="amort_link" where="$$.amort_line_id = :amort_line_id" :amort_line_id=$line.id debug=true assign="info_amort"}} - {{:debug info_amort=$info_amort}} - {{:assign uuid=$key}} - {{:break}} - {{else}} - {{:assign uuid=""|uuid}} - {{/load}} -{{:debug uuid=$uuid}} {{:save key=""|uuid type="amort_link" @@ -205,14 +196,14 @@ {{* immo soldée ? *}} {{if $_POST.montant|trim|money_int == $solde}} - {{:assign var="info_immo.status" value="amortized"}} + {{:assign status="amortized"}} {{:save key=$info_immo.key - status=$info_immo.status + status=$status }} {{/if}} - {{:redirect force="amortization.html?immo_doc_id=%s&type_immo=%s&ok=1&msg=amortissement"|args:$_GET.immo_doc_id:$info_immo.status}} + {{:redirect force="amortization.html?immo_doc_id=%s&type_immo=%s&ok=1&msg=amortissement"|args:$_GET.immo_doc_id:$status}} {{/form}} {{:admin_header title="Ajout amortissement" custom_css="./style.css" current="module_amortization"}} From 74707a38c225c07807ce4582a4ef743f1577cafa Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 17 Jun 2026 13:40:09 +0200 Subject: [PATCH 13/35] =?UTF-8?q?S=C3=A9curisation=20contre=20fausse=20man?= =?UTF-8?q?ipe=20lors=20du=20classement=20immo=20sortie=20du=20bilan?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- add_infos.html | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/add_infos.html b/add_infos.html index 8b16f09..3d2182f 100644 --- a/add_infos.html +++ b/add_infos.html @@ -53,14 +53,22 @@ {{:assign date_mes=null}} {{:assign status="ignored"}} {{elseif $_POST.classify == "archived"}} + {{* voir s'il y a déjà un doc associé à cette immo *}} + {{#load type="immo" where="$$.line = :immo_line_id" :immo_line_id=$_GET.immo_line_id|intval}} + {{:assign uuid=$key}} + {{:assign immo_doc_id=$id}} + {{else}} + {{:assign uuid=""|uuid}} + {{/load}} + {{* immobilisation sortie du bilan *}} {{:save - key=""|uuid + key=$uuid validate_schema="asset.schema.json" type="immo" line=$_GET.immo_line_id|intval duration=0 - status="managed" + status=null assign_new_id="immo_doc_id" }} {{:redirect force="exit_step1.html?immo_doc_id=%s"|args:$immo_doc_id}} From 024d003696e8b956fd6b4906fd6014a8bbe5b080 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 17 Jun 2026 13:41:55 +0200 Subject: [PATCH 14/35] =?UTF-8?q?Am=C3=A9lioration=20navigation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- add_infos.html | 2 +- exit_step1.html | 9 +++++++-- exit_step2.html | 11 ++++++++--- exit_step3.html | 13 +++++++++---- exit_step4.html | 9 +++++++-- 5 files changed, 32 insertions(+), 12 deletions(-) diff --git a/add_infos.html b/add_infos.html index 3d2182f..7487634 100644 --- a/add_infos.html +++ b/add_infos.html @@ -71,7 +71,7 @@ status=null assign_new_id="immo_doc_id" }} - {{:redirect force="exit_step1.html?immo_doc_id=%s"|args:$immo_doc_id}} + {{:redirect force="exit_step1.html?immo_doc_id=%s&from=exit"|args:$immo_doc_id}} {{else}} {{* immobilisation amortissable *}} {{if $_POST.date_achat|parse_date > $ligne_immo.date_achat}} diff --git a/exit_step1.html b/exit_step1.html index 0b85eb9..1154fcb 100644 --- a/exit_step1.html +++ b/exit_step1.html @@ -123,7 +123,12 @@ {{/select}} {{:admin_header title="Immobilisation sortie du bilan" custom_css="./style.css" current="module_amortization"}} -{{:include file="_nav.html" current="archived" subcurrent="exit"}} +{{if $_GET.from == "exit"}} + {{:assign current="other"}} +{{else}} + {{:assign current="archived"}} +{{/if}} +{{:include file="_nav.html" current=$current subcurrent="exit"}} {{if $_GET.ok}} {{if $_GET.msg|match:"attach_avoir"}} @@ -233,7 +238,7 @@ {{/if}} -
+

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

diff --git a/exit_step2.html b/exit_step2.html index ee740ff..8235a02 100644 --- a/exit_step2.html +++ b/exit_step2.html @@ -13,11 +13,11 @@ {{/if}} {{#form on="backward"}} - {{:redirect to="exit_step1.html?immo_doc_id=%s"|args:$_GET.immo_doc_id}} + {{:redirect to="exit_step1.html?immo_doc_id=%s&from=%s"|args:$_GET.immo_doc_id:$_GET.from}} {{/form}} {{#form on="forward"}} - {{:redirect to="exit_step3.html?immo_doc_id=%s"|args:$_GET.immo_doc_id}} + {{:redirect to="exit_step3.html?immo_doc_id=%s&from=%s"|args:$_GET.immo_doc_id:$_GET.from}} {{/form}} {{:assign label_immo=$info_immo.label|or:$ligne_immo.trans_label}} @@ -90,7 +90,12 @@ {{/select}} {{:admin_header title="Immobilisation sortie du bilan" custom_css="./style.css" current="module_amortization"}} -{{:include file="_nav.html" current="archived" subcurrent="exit"}} +{{if $_GET.from == "exit"}} + {{:assign current="other"}} +{{else}} + {{:assign current="archived"}} +{{/if}} +{{:include file="_nav.html" current=$current subcurrent="exit"}} {{if $_GET.ok}} {{if $_GET.msg|match:"attach_amort"}} diff --git a/exit_step3.html b/exit_step3.html index 458357c..fca3fec 100644 --- a/exit_step3.html +++ b/exit_step3.html @@ -13,11 +13,11 @@ {{/if}} {{#form on="backward"}} - {{:redirect to="exit_step2.html?immo_doc_id=%s"|args:$_GET.immo_doc_id}} + {{:redirect to="exit_step2.html?immo_doc_id=%s&from=%s"|args:$_GET.immo_doc_id:$_GET.from}} {{/form}} {{#form on="forward"}} - {{:redirect to="exit_step4.html?immo_doc_id=%s"|args:$_GET.immo_doc_id}} + {{:redirect to="exit_step4.html?immo_doc_id=%s&from=%s"|args:$_GET.immo_doc_id:$_GET.from}} {{/form}} {{:assign label_immo=$info_immo.label|or:$ligne_immo.trans_label}} @@ -58,7 +58,7 @@ assign="line" }} {{* voir si l'écriture de cession est déjà liée à une immo *}} - {{* TODO VOIR SI TUTILE + {{* TODO VOIR SI UTILE {{#load type="cession_link" where="$$.cession_line_id = :cession_line_id" :cession_line_id = $line.line_id @@ -95,7 +95,12 @@ {{*:debug linked_cessions=$linked_cessions free_cessions=$free_cessions total_cession=$total_cession*}} {{:admin_header title="Immobilisation sortie du bilan" custom_css="./style.css" current="module_amortization"}} -{{:include file="_nav.html" current="archived" subcurrent="exit"}} +{{if $_GET.from == "exit"}} + {{:assign current="other"}} +{{else}} + {{:assign current="archived"}} +{{/if}} +{{:include file="_nav.html" current=$current subcurrent="exit"}} {{if $_GET.ok}} {{if $_GET.msg|match:"attach_cession"}} diff --git a/exit_step4.html b/exit_step4.html index 8a2b51e..f377496 100644 --- a/exit_step4.html +++ b/exit_step4.html @@ -13,7 +13,7 @@ {{/if}} {{#form on="backward"}} - {{:redirect to="exit_step3.html?immo_doc_id=%s"|args:$_GET.immo_doc_id}} + {{:redirect to="exit_step3.html?immo_doc_id=%s&from=%s"|args:$_GET.immo_doc_id:$_GET.from}} {{/form}} {{#form on="validate"}} @@ -164,7 +164,12 @@ {{/select}} {{:admin_header title="Immobilisation sortie du bilan" custom_css="./style.css" current="module_amortization"}} -{{:include file="_nav.html" current="archived" subcurrent="exit"}} +{{if $_GET.from == "exit"}} + {{:assign current="other"}} +{{else}} + {{:assign current="archived"}} +{{/if}} +{{:include file="_nav.html" current=$current subcurrent="exit"}} {{if $_GET.ok}} {{if $_GET.msg|match:"attach_exit"}} From 6ebfbe244ecd9078bb94430d95bf26fb3ef7f98a Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 17 Jun 2026 13:42:22 +0200 Subject: [PATCH 15/35] Correction erreur marquage immo amortie --- attach_amort.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/attach_amort.html b/attach_amort.html index 61a5a1a..a6d05bb 100644 --- a/attach_amort.html +++ b/attach_amort.html @@ -121,7 +121,7 @@ {{/load}} {{* immo soldée ? *}} - {{if $total_amort == $montant_immo}} + {{if $total_amort == $montant_immo && $_GET.from != "exit"}} {{:assign status="amortized"}} {{:save key=$info_immo.key From 32cb9e3b6b6aaeb24fe9c2552829db7589905b9d Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 17 Jun 2026 13:44:41 +0200 Subject: [PATCH 16/35] =?UTF-8?q?Inversion=20ordre=20tri=20immos=20=C3=A0?= =?UTF-8?q?=20classer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _immobilisations_autres.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_immobilisations_autres.html b/_immobilisations_autres.html index 0401feb..7a4b04c 100644 --- a/_immobilisations_autres.html +++ b/_immobilisations_autres.html @@ -86,7 +86,7 @@ !table_join WHERE !condition GROUP BY immo_line_id - ORDER BY trans.date DESC; + ORDER BY trans.date; !columns=$columns !table_join=$table_join !table=$module.table From 42a7432509b59eef2e264624bf044f754b4fd6ad Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 17 Jun 2026 17:43:06 +0200 Subject: [PATCH 17/35] =?UTF-8?q?Ne=20pas=20proposer=20de=20classer=20?= =?UTF-8?q?=C2=AB=20Sortie=20du=20bilan=20=C2=BB=20une=20immo=20cr=C3=A9?= =?UTF-8?q?=C3=A9e=20hors=20Paheko?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- add_infos.html | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/add_infos.html b/add_infos.html index 7487634..c4d5b39 100644 --- a/add_infos.html +++ b/add_infos.html @@ -38,7 +38,6 @@ {{/select}} {{:assign reste="%d-%d"|math:$ligne_immo.montant:$montant_affecte}} - {{#form on="save"}} {{if $_POST.classify == null}} {{:error message="Vous devez faire un choix de classement"}} @@ -163,6 +162,11 @@ {{/if}} {{:form_errors}} +{{* date de début du 1er exercice dans paheko *}} +{{#years order="start_date" limit=1}} + {{:assign first_date=$start_date}} +{{/years}} + {{* - classer l'immobilisation - renseigner ou modifier la date de mise en service, les écritures associées ou la durée d'amortissement @@ -194,9 +198,11 @@ Classement
(obligatoire)
- {{:input type="radio-btn" name="classify" value="managed" label="Immobilisation à amortir" help="Cette immobilisation sera classée parmi les immobilisations amortissables" default=$choix_defaut}} - {{:input type="radio-btn" name="classify" value="archived" label="Immobilisation sortie du bilan" help="Cette immobilisation sera classée parmi les immobilisations sorties du bilan" default=$choix_defaut}} - {{:input type="radio-btn" name="classify" value="ignored" label="Immobilisation à ignorer" help="Cette écriture n'apparaitra plus dans la liste des immobilisations" default=$choix_defaut}} + {{:input type="radio-btn" name="classify" value="managed" label="Immobilisation à amortir" help="L'immobilisation sera classée parmi les immobilisations amortissables" default=$choix_defaut}} + {{if $ligne_immo.date_achat > $first_date}} + {{:input type="radio-btn" name="classify" value="archived" label="Immobilisation sortie du bilan" help="L'immobilisation sera classée parmi les immobilisations sorties du bilan" default=$choix_defaut}} + {{/if}} + {{:input type="radio-btn" name="classify" value="ignored" label="Immobilisation à ignorer" help="L'écriture n'apparaitra plus dans la liste des immobilisations" default=$choix_defaut}}
From e6fb335e4c609c4e28741e89737759af21d17316 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 18 Jun 2026 10:46:54 +0200 Subject: [PATCH 18/35] =?UTF-8?q?Am=C3=A9lioration=20cosm=C3=A9tique?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- save_amort.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/save_amort.html b/save_amort.html index 9705bf9..2504ff8 100644 --- a/save_amort.html +++ b/save_amort.html @@ -206,7 +206,9 @@ {{:redirect force="amortization.html?immo_doc_id=%s&type_immo=%s&ok=1&msg=amortissement"|args:$_GET.immo_doc_id:$status}} {{/form}} -{{:admin_header title="Ajout amortissement" custom_css="./style.css" current="module_amortization"}} +{{:assign label_immo=$info_immo.label|or:$ligne_immo.trans_label}} + +{{:admin_header title="Amortissement pour « %s »"|args:$label_immo custom_css="./style.css" current="module_amortization"}} {{* barre de navigation *}} {{if ! $dialog}} From af24d6095e076fee5a448efd15270c08d8b5748d Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 18 Jun 2026 11:04:10 +0200 Subject: [PATCH 19/35] =?UTF-8?q?Correction=20erreur=20masquage=20dur?= =?UTF-8?q?=C3=A9e=20amortissement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/scripts.js b/scripts.js index c59df55..0521809 100644 --- a/scripts.js +++ b/scripts.js @@ -12,9 +12,10 @@ function toggleInputs(idcb, idfields) { } } -function toggleVisibility(idcheck, fields) { - const elem = document.getElementById(idcheck); - fields.forEach(function (field) { +function toggleVisibility(id_check, fields) { + const elem = document.getElementById(id_check); + fields.forEach(function (id_field) { + const field = document.getElementById(id_field); if (elem.checked) { field.classList.remove('hidden'); } else { From e2657f3b22b578e15838fa624995e982e6f640db Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 18 Jun 2026 14:15:21 +0200 Subject: [PATCH 20/35] Suppression fichiers inutiles --- aide.html | 163 ------------------------------------------------ aide.md | 183 ------------------------------------------------------ 2 files changed, 346 deletions(-) delete mode 100644 aide.html delete mode 100644 aide.md diff --git a/aide.html b/aide.html deleted file mode 100644 index e6855d7..0000000 --- a/aide.html +++ /dev/null @@ -1,163 +0,0 @@ -{{* -*- brindille -*- *}} - -{{:admin_header title="Aide" custom_css="./style.css" current="module_amortization"}} - -{{* barre de navigation *}} -{{:include file="_nav.html" current="aide"}} - -

- Ce module gère l'amortissement linéaire des immobilisations. -

- -

Immobilisations

-Elles sont classées dans plusieurs onglets : - -
    -
  • En cours : immobilisations en cours d'amortissement.
  • -
  • Terminées : immobilisations dont l'amortissement est terminé.
  • -
  • Archivées : immobilisations qui ont été sortie du bilan.
  • -
  • Autres : immobilisations pour lesquelles le module n'a pas - d'information ou qui ont été marquées non amortissables.
  • -
- -

Ajouter une immobilisation

- -
-

- Il faut renseigner les informations de l'immobilisation. - On peut indiquer qu'il s'agit d'une immobilisation qui ne doit - pas être amortie ; dans le cas contraire, il faut renseigner - les différents paramètres de l'immobilisation -

- -
- -

Amortissements

- -
-

- Le calcul de l'amortissement se fait par la méthode linéaire. -

-

- La date de début du calcul est par défaut la date d'achat ; si la - date de mise en service est postérieure à la date d'achat, c'est - celle-ci qui est prise en compte. -

-
- -

Liste des amortissements

- -
- On trouve ici de une à trois listes, selon la situation : -
    -
  • - Amortissements enregistrés -

    - Ce sont des écritures d'amortissement déjà - enregistrées et liées à l'écriture de - l'immobilisation courante. -

    -
  • -
  • - Amortissements futurs -

    - Ce sont les écritures amortissement de - l'immobilisation courante qui n'ont pas encore été - enregistrées ; seuls les amortissements d'un - exercice ouvert peuvent être enregistrés ; les - autres sont présents pour information et pourront - être enregistrés quand l'exercice correspondant - aura été ouvert. -

    -
  • -
  • - Autres amortissement non rattachés -

    - Ce sont des écritures passées sur un compte - d'amortissement (28xx) qui ne sont - associées à aucune écriture d'immobilisation ; en - cliquant le bouton « Attacher », on peut rattacher - l'écriture d'amortissement sélectionnée à - l'immobilisation courante. -

    -

    - Si on a rattaché par erreur une écriture - d'amortissement à une immobilisation, le bouton « - Détacher » en face de l'écriture permettra de - défaire l'opération. -

    -
  • -
-
- -

Créer une écriture d'amortissement

- -
-

- Il faut renseigner les différents paramètres de l'amortissement : -

    -
  • Date ; par défaut, il s'agit de la date de fin d'exercice
  • -
  • Libellé : déterminé à partir du libellé de l'immobilisation< ; il peut être modifié/li> -
  • Montant : sa valeur est calculée par le module ; elle peut être modifiée
  • -
  • - Compte de débit : à choisir dans la liste ; par défaut - c'est le compte 6811 : Dotation aux amortissements - des immobilisations -
  • -
  • - Compte d'amortissement : à choisir dans la liste ; par - défaut c'est le compte formé en intercalant un 8 après - le 2 initial du compte d'immobilisation (exemple : - 2183 => 28183) -
  • -
- -

-
- -

Remarques

- -
    -
  • - Les écritures d'immobilisation et d'amortissement créées en - dehors du module ne peuvent être associées automatiquement que - si leurs écritures ont été liées ; dans le cas contraire, il - faudra renseigner manuellement les infos de l'immobilisation. -
  • -
- - -

- Dans le deuxième cas, il faut cliquer sur le bouton « Ajouter - infos » puis : -

    -
  • soit indiquer que l'immobilisation ne doit pas être amortie
  • -
  • soit fournir la date de mise en service du bien (si différente de la date d'acquisition) ainsi - que la durée en années de l'amortissement
  • -
-

-

- Tant qu'une immobilisation ne possède pas d'amortissement, il est - possible de modifier ses informations à l'aide du bouton « - Modifier infos ». -

- diff --git a/aide.md b/aide.md deleted file mode 100644 index 90849fa..0000000 --- a/aide.md +++ /dev/null @@ -1,183 +0,0 @@ -# Module de gestion d'immobilisations et amortissements pour Paheko - -## Préambule -* Ce module recense les écritures d'immobilisation et d'amortissement - présentes dans la comptabilité et offre la possibilité de saisir de - nouvelles écritures d'immobilisation, de calculer et d'enregistrer - les écritures d'amortissement. -* Les écritures d'amortissement **liées à une écriture - d'immobilisation** lui sont automatiquement associées par le module - ; par contre, les écritures d'amortissement qui ne sont **pas liées - à une écriture d'immobilisation** sont détectées mais doivent être - associées manuellement à leur immobilisation. - -### Fonctionnalités - * créer une immobilisation - * créer des écritures d'amortissement pour une immobilisation - * associer une écriture d'amortissement *orpheline* à une écriture - d'immobilisation - * sortir une immobilisation du bilan en fin de de vie ou par cession - * réunir des écritures d'immobilisation en cours de constitution - pour créer une immobilisation amortissable - * filtrer les écritures d'immobilisation et d'amortissement par - libellé - * classer manuellement une écriture d'immobilisation (utile pour les - immobilisations créées avant la mise en service du module) - -## Comment faire pour ... - -### Incorporer une écriture d'immobilisation existante dans le module -Si on a créé des immobilisations et éventuellement des amortissements -avec Paheko *avant* la mise en service du module *Amortissements*, -il est possible de les prendre en charge avec le module. Les -immobilisations concernées sont regroupées dans l'onglet Autres. - -- cliquer le bouton *Paramètres* en face de l'immobilisation à prendre - en charge -- cocher *Immobilisation à amortir* pour spécifier qu'on veut amortir - l'immobilisation ; plusieurs champs d'informations s'affichennt : - - Durée d'amortissement : renseigner la durée (obligatoire) - - Écritures liées au crédit du compte d'immobilisation : lorsqu'on - acquiert une immobilisation, il se peut que par la suite on - obtienne une ristourne ou un avoir ; cet avoir est enregistré - dans Paheko par une écriture dont le montant est au crédit du - compte d'immobilisation ; le module offre la possibilité - d'associer cette écriture d'avoir à l'écriture - d'immobilisation. En effet, le montant amortissable est égal au - montant d'acquisition de l'immobilisation moins la somme des - avoirs. Pour cela, cliquer le bouton *Ajouter* puis sélectionner - une écriture : cette écriture sera associée à l'écriture - d'immobilisation et son montant déduit du montant de - l'immobilisation pour donner le montant à amortir - - Date de mise en service : c'est la date à laquelle - l'immobilisation est en état de fonctionner, qui peut être - postérieure à la date d'acquisition ; c'est cette date qui est - prise en compte dans le calcul des amortissements ; si elle - coïncide avec la date d'acquisition, inutile de la renseigner. -- L'immobilisation apparait ensuite dans l'onglet *Amortissables* ; on - peut vérifier et éventuellement modifier ses paramètres grâce au - bouton Paramètres - -### Attacher une écriture d'amortissement à une immobilisation -Si des écritures d'amortissement ont été saisies avec Paheko *avant* -la mise en service du module *Amortissements*, on peut les associer à -leur immobilisation : - -- cliquer le bouton *Amortissements* en face de l'immobilisation concernée ; si la mention - -> « Il existe des écritures d'amortissement qui ne sont pas rattachées à une immobilisation ! -> Utilisez le bouton « Rattacher une écriture » pour les afficher ; vous pourrez choisir d'en attacher certaines à cette immobilisation. » - -est présente, c'est qu'il existe des écritures d'amortissement saisies avec Paheko *avant* -la mise en service du module. - -- cliquer le bouton *Rattacher une écriture* pour en afficher la liste -- le cas échéant, cliquer *Attacher* en face de l'écriture à rattacher - -De retour sur la page des amortissements, on constate la présence de l'écriture d'amortissement qu'on vient d'attacher ; on peut répéter le processus plusieurs fois si nécessaire. On peut aussi détacher une écriture si on s'est trompé. - - -### Enregistrer une écriture d'immobilisation -Il s'agit de créer une nouvelle écriture d'immobilisation ; pour cela, -cliquer le bouton *Ajouter une immobilisation* qui est présent sur -la plupart des onglets ; dans la fenêtre de saisie qui s'affiche il -suffit de saisir les données de l'immobilisation puis de cliquer -*Ajouter* : - * Exercice : sélectionner l'exercice dans lequel enregistrer l'écriture - * Date d'acquisition : doit être située dans l'exercice sélectionné - * Libellé - * Montant - * Compte de décaissement - * Compte d'immobilisation - * Projet - * case Amortir : laisser cochée pour amortir l'immobilisation, - dé-cocher pour ne pas l'amortir - * Durée d'amortissement en années : à saisir uniquement si - l'immobilisation doit être amortie - * Date de mise en service : c'est la date de première utilisation ; - à renseigner uniquement si différente de la date d'acquisition ; - doit être postérieure ou égale à la date d'acquisition - -### Enregistrer une écriture d'amortissement - * Il n'est possible d'enregistrer une nouvelle écriture - d'amortissement pour une immobilisation que si la date - d'acquisition et la durée d'immobilisation ont été préalablement - définies. - * À partir de l'onglet *Amortissables*, cliquer le bouton - *Amortissements* en face de l'immobilisation choisie ; dans la - page suivante, cliquer le bouton *Enregistrer un amortissement* - ; dans la fenêtre de saisie qui s'affiche, il faut renseigner les - informations suivantes : - * Exercice : sélectionner l'exercice dans lequel enregistrer l'écriture - * Date de l'écriture : doit être située dans l'exercice - sélectionné et postérieure à la date de mise en service - * Libellé - * Montant : caclculé par le module ; il peut être modifié si - nécessaire, par exemple pour l'arrondir à un nombre entier - * Compte de débit : par défaut c'est le compte *6811 : Dotation - aux amortissements des immobilisations* - * Compte d'amortissement : par défaut c'est le compte qui - correspond au compte de l'immobilisation - - -### Sortir une immobilisation du bilan - -### Transformer des immobilisations en cours en immobilisation amortissable - -### Marquer *à ignorer* des écritures - -### Ignorer des écritures selon leur libellé - - - -## Description de l'interface - -Les écritures d'immobilisation sont réparties en plusieurs onglets. - -### Amortissables -Cet onglet liste les immobilisations en cours d'amortissement. - -##### bouton Paramètres - -Ce bouton affiche une page qui permet de modifier les caractéristiques -d'une immobilisation ; - -On peut décider de son classement : - * Amortir ; c'est le choix par défaut pour les immobilisations de - cet onglet - * Amortissement terminé : cette immobilisation sera alors classée - parmi les immobilisations amorties ; c'est le choix par défaut - pour les immobilisations de l'onglet Amorties - * Ignorer l'écriture : cette écriture n'apparaîtra plus dans la - liste des immobilisations - -Pour les immobilisations à amortir, on peut préciser : - * obligatoirement la durée d'amortissement en années - * optionnellement la date de mise en service si elle est différente - de la date d'acquisition - -###### bouton Amortissements - -Ce bouton affiche la liste des amortissements déjà réalisés pour une -immobilisation ; à partir de cette page, il est possible d'enregistrer -un nouvel amortissement ou bien d'attacher une écriture -d'amortissement à l'immobilisation - -### Amorties -Cet onglet liste les immobilisations dont l'amortissement est terminé -mais toujours en service dans l'association. - -### Sorties du bilan -Cette page liste les immobilisations sorties du bilan, donc qui ne sont -plus en service dans l'association, soit parce qu'elles sont hors -d'usage, soit parce qu'elles ont été cédées. - -### En cours -Cette page liste les immobilisations en cours de constitution, donc -non amortissables ; à terme, elles sont destinées à être regroupées -pour être transformées en immobilisation amortissable. - -### Autres -Cette page liste les écritures d'immobilisation pas (encore) prises en -charge par le module et sans écriture d'amortissement associée. - From f2778c42f4072409fc8cde9949d6d0f4a5247460 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Sat, 20 Jun 2026 19:13:00 +0200 Subject: [PATCH 21/35] Correction message erreur --- balance_sheet_exit.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/balance_sheet_exit.html b/balance_sheet_exit.html index d844c91..a561c80 100644 --- a/balance_sheet_exit.html +++ b/balance_sheet_exit.html @@ -77,7 +77,7 @@ {{:assign var="open_years.%d"|args:$id value=$label|cat:" (du "|cat:$debut|cat:" au "|cat:$fin|cat:")"}} {{else}} {{:assign debut=$date_debut|date_short}} - {{:error message="Aucun exercice ouvert pour enregistrer un amortissement à partir du %s"|args:$debut}} + {{:error message="Aucun exercice ouvert pour enregistrer la sortie de bilan à partir du %s"|args:$debut}} {{/years}} {{if $years|count == 1}} {{:assign default_year=$years.0.id}} From 3752fc52356b03507a17720a27f98a1786dfc7d7 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 22 Jun 2026 11:03:03 +0200 Subject: [PATCH 22/35] =?UTF-8?q?Mise-=C3=A0-jour=20module.ini?= 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 f3f13f1..aaeb203 100644 --- a/module.ini +++ b/module.ini @@ -1,5 +1,5 @@ name="Amortissements" -description="Immobilisations et amortissements\nversion 0.32" +description="Immobilisations et amortissements\nversion 0.33" author="Jean-Christophe Engel" author_url="https://gitea.zaclys.com/lesanges" home_button=false From b923ad1b85358e43e790fa53b71450b68d358ffc Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 23 Jun 2026 10:19:17 +0200 Subject: [PATCH 23/35] Ajout montant cession manquant --- exit_step4.html | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/exit_step4.html b/exit_step4.html index f377496..7868913 100644 --- a/exit_step4.html +++ b/exit_step4.html @@ -44,6 +44,24 @@ {{* lister les amortissements liés à l'immobilisation *}} {{:include file="./_get_amort_lines.html" immo_doc_id=$_GET.immo_doc_id keep="linked_amort, total_amort"}} +{{* chercher une écriture de cession associée *}} +{{#load type="cession_link" + where="$$.immo_doc_id = :immo_doc_id" + :immo_doc_id = $_GET.immo_doc_id|intval + }} + {{if $amount == null || $amount == 0}} + {{#select credit + FROM acc_transactions_lines + WHERE id = :cession_line_id; + :cession_line_id = $cession_line_id + }} + {{:assign montant_cession=$credit}} + {{/select}} + {{else}} + {{:assign montant_cession=$amount}} + {{/if}} +{{/load}} + {{* chercher une écriture de sortie de bilan associée *}} {{#load type="exit_link" where="$$.immo_doc_id = :immo_doc_id" :immo_doc_id=$info_immo.id assign="exit_info"}} {{/load}} @@ -200,6 +218,10 @@
Valeur nette résiduelle
{{"%d-%d"|math:$solde:$total_amort|money_currency_html:false|raw}}
{{/if}} + {{if $montant_cession > 0}} +
Montant de la cession
+
{{$montant_cession|money_currency_html:false|raw}}
+ {{/if}}
From 847a5f58ba442447c8f6358311eb345b6194948f Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 23 Jun 2026 11:11:12 +0200 Subject: [PATCH 24/35] =?UTF-8?q?Valeurs=20par=20d=C3=A9faut=20param=C3=A8?= =?UTF-8?q?tres=20immo=20=C3=A0=20classer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- add_infos.html | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/add_infos.html b/add_infos.html index c4d5b39..6e5fe46 100644 --- a/add_infos.html +++ b/add_infos.html @@ -9,14 +9,8 @@ {{:assign montant_affecte=0}} {{#load type="immo" where="$$.line = :line_id" :line_id=$_GET.immo_line_id|intval assign="info_immo"}} {{:assign montant_affecte="%d+%d"|math:$montant_affecte:$amount}} -{{/load}} -{{if $info_immo != null}} - {{:assign date_defaut=$info_immo.date}} - {{:assign duree_defaut=$info_immo.duration}} {{:assign choix_defaut=$info_immo.status}} -{{else}} - {{:assign duree_defaut=null}} -{{/if}} +{{/load}} {{#select trans.id as immo_trans_id, @@ -37,6 +31,12 @@ {{:error message="Immobilisation non trouvée"}} {{/select}} {{:assign reste="%d-%d"|math:$ligne_immo.montant:$montant_affecte}} +{{:assign date_achat_defaut=$info_immo.date_achat|or:$ligne_immo.date_achat}} +{{:assign date_mes_defaut=$info_immo.date_mes|or:$info_immo.date_achat|or:$ligne_immo.date_achat}} +{{:assign immo_label=$ligne_immo.trans_label}} +{{if $ligne_immo.line_label != null && $ligne_immo.line_label != $ligne_immo.trans_label}} + {{:assign immo_label=$immo_label|cat:" — "|cat:$ligne_immo.line_label}} +{{/if}} {{#form on="save"}} {{if $_POST.classify == null}} @@ -177,7 +177,9 @@
Immobilisation
-
#{{$ligne_immo.immo_trans_id}} {{$ligne_immo.trans_label}}{{if $ligne_immo.line_label != null && $ligne_immo.line_label != $ligne_immo.trans_label}} — {{$ligne_immo.line_label}}{{/if}}
+
+ #{{$ligne_immo.immo_trans_id}} {{$immo_label}} +
Montant
{{"%f"|math:$ligne_immo.montant|money_currency_html:false|raw}}
{{if $montant_affecte > 0}} @@ -211,9 +213,9 @@
{{:input type="number" name="duree" label="Durée d'amortissement" required=true min=1 suffix="année(s)"}} {{:input type="money" name="montant" label="Montant de l'immobilisation" required=true default=$reste help="à modifier si différent du montant de l'écriture d'immobilisation"}} - {{:input type="date" name="date_achat" label="Date d'acquisition" help="à renseigner uniquement si différente de la date de l'écriture d'immobilisation"}} - {{:input type="date" name="date_mes" label="Date de mise en service" help="à renseigner uniquement si différente de la date d'acquisition"}} - {{:input type="text" name="libelle" label="Libellé" help="à renseigner uniquement si différent du libellé de l'écriture d'immobilisation"}} + {{:input type="date" name="date_achat" label="Date d'acquisition" default=$date_achat_defaut help="à modifier si nécessaire"}} + {{:input type="date" name="date_mes" label="Date de mise en service" default=$date_mes_defaut help="à modifier si différente de la date d'acquisition"}} + {{:input type="text" name="libelle" label="Libellé" default=$immo_label help="à modifier si nécessaire"}}
From 1c08ddf4bcb6500638c996ca5d94d2c02a2d9feb Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 23 Jun 2026 11:42:16 +0200 Subject: [PATCH 25/35] =?UTF-8?q?Lister=20=C3=A9critures=20d'avoir=20par?= =?UTF-8?q?=20onglets=20et=20harmonisation=20pr=C3=A9sentation=20=C3=A9cri?= =?UTF-8?q?tures=20amortissement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- amortization.html | 2 +- link_immo.html | 31 ++++++++++++++++++++++--------- other_amortizations.html | 25 ++++++++++++++++++------- 3 files changed, 41 insertions(+), 17 deletions(-) diff --git a/amortization.html b/amortization.html index a3378b2..97ded50 100644 --- a/amortization.html +++ b/amortization.html @@ -151,7 +151,7 @@

Avoirs

diff --git a/link_immo.html b/link_immo.html index 557b0e8..43be090 100644 --- a/link_immo.html +++ b/link_immo.html @@ -18,7 +18,11 @@ {{* lister les écritures au crédit du compte de l'immobilisation *}} -{{:assign account_code=$ligne_immo.account_code|cat:"%"}} +{{if $_GET.filter}} + {{:assign account_code=$ligne_immo.account_code|cat:"%"}} +{{else}} + {{:assign account_code=$ligne_immo.account_code|substr:0:2|cat:"%"}} +{{/if}} {{#select line.id as credit_line_id, line.id_transaction as credit_trans_id, @@ -61,23 +65,32 @@ }} {{/if}} -
-
- - Écritures au crédit du compte d'immobilisation « {{$ligne_immo.account_code}} » et sous-comptes - + +
Immobilisation
#{{$ligne_immo.trans_id}} {{$label_immo}}
Montant
{{"%f"|math:$ligne_immo.amount|money_currency_html:false|raw}}
-
Date de l'écriture d'immobilisation
+
Date de l'immobilisation
{{$ligne_immo.date_achat|date_short}}
-
{{if $other_immos != null}} @@ -111,8 +124,8 @@ {{/foreach}} +

Sélectionner une écriture d'avoir ou autre réduction du montant de l'acquisition pour l'associer à l'immobilisation

-

Sélectionner une écriture d'avoir ou autre réduction du montant de l'acquisition pour l'associer à l'immobilisation

{{else}}

Aucune écriture au crédit du compte « {{$ligne_immo.account_code}} »

{{/if}} diff --git a/other_amortizations.html b/other_amortizations.html index 8716a25..45488ca 100644 --- a/other_amortizations.html +++ b/other_amortizations.html @@ -60,9 +60,19 @@ -{{if $free_amort_lines != null}} -
-

Immobilisation « {{$label_immo}} »

+
+
+
+
Immobilisation
+
#{{$ligne_immo.trans_id}} {{$label_immo}}
+
Montant
+
{{"%f"|math:$ligne_immo.amount|money_currency_html:false|raw}}
+
Date de l'immobilisation
+
{{$ligne_immo.date_achat|date_short}}
+
+
+ + {{if $free_amort_lines != null}} @@ -106,11 +116,12 @@ {{/foreach}} +

Sélectionner une écriture d'amortissement pour l'associer à l'immobilisation

-
-{{else}} -

Aucun amortissement pour le compte {{$code_amort}}

-{{/if}} + {{else}} +

Aucun amortissement pour le compte {{$code_amort}}

+ {{/if}} +
{{:form_errors}} From 98f4fa5330b74fbda8bb371877092f3dc5074b93 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 24 Jun 2026 09:03:13 +0200 Subject: [PATCH 26/35] =?UTF-8?q?Marquer=20immo=20non=20sold=C3=A9e=20si?= =?UTF-8?q?=20d=C3=A9tachement=20amortissement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _common_detach.html | 2 +- detach_amort.html | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/_common_detach.html b/_common_detach.html index 2c730c8..8c84736 100644 --- a/_common_detach.html +++ b/_common_detach.html @@ -7,7 +7,7 @@ *}} {{* données de l'immobilisation *}} -{{:include file="_get_immo_data.html" immo_doc_id=$immo_doc_id|intval keep="ligne_immo, message"}} +{{:include file="_get_immo_data.html" immo_doc_id=$immo_doc_id|intval keep="info_immo, ligne_immo, message"}} {{if $message != null}} {{:error message=$message}} {{/if}} diff --git a/detach_amort.html b/detach_amort.html index eba97ee..b058716 100644 --- a/detach_amort.html +++ b/detach_amort.html @@ -7,8 +7,7 @@ @param amort_line_id : id de la ligne d'amortissement *}} -{{:include file="_common_detach.html" immo_doc_id=$_GET.immo_doc_id line_id=$_GET.amort_line_id}} - +{{:include file="_common_detach.html" immo_doc_id=$_GET.immo_doc_id line_id=$_GET.amort_line_id keep="info_immo"}} {{* supprimer le doc de liaison entre les lignes *}} {{#load type="amort_link" where="$$.immo_doc_id = :immo_doc_id AND $$.amort_line_id = :amort_line_id" @@ -19,11 +18,12 @@ {{/load}} {{* marquer immo non soldée *}} -{{* TODO : À VÉRIFIER *}} -{{:save - key=$info_immo.key - status="managed" -}} +{{if $info_immo.status == "amortized"}} + {{:save + key=$info_immo.key + status="managed" + }} +{{/if}} {{if $_GET.from == "exit"}} {{:redirect force="exit_step2.html?immo_doc_id=%s&ok=1&msg=detach_amort"|args:$_GET.immo_doc_id}} From 4bdb38eca1745c18eb938eaf8b05c0339b25e6cb Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 24 Jun 2026 11:50:38 +0200 Subject: [PATCH 27/35] =?UTF-8?q?Config=20:=20s=C3=A9curisation=20comptes?= =?UTF-8?q?=20par=20d=C3=A9faut?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.html | 21 +++++++++++++-------- scripts.js | 46 +++++++++++++++++++++++++++++++++++----------- 2 files changed, 48 insertions(+), 19 deletions(-) diff --git a/config.html b/config.html index 50f295b..6021580 100644 --- a/config.html +++ b/config.html @@ -46,6 +46,7 @@ {{/form}} {{:admin_header title="Configuration" custom_css="./style.css" current="module_amortization"}} + {{:include file="_nav.html" current="config"}} {{if $_GET.ok == 1}}

Configuration enregistrée.

@@ -154,13 +155,14 @@ }} + {{if ! $code|in:$config_defaut.prefixes}} {{:button label="Enlever" - title="Enlever une ligne" shape="minus" min="1" name="remove_line" }} + {{/if}} {{/foreach}} @@ -187,6 +189,7 @@ + {{:assign unfinished_lines=$config_defaut.unfinished|map:implode:"-"|implode:","}} {{#foreach from=$unfinished_accounts key=code item=elem}} @@ -200,13 +203,15 @@ }} - {{:button - label="Enlever" - title="Enlever une ligne" - shape="minus" - min="1" - name="remove_line" - }} + {{if $unfinished_lines|strpos:$code === false}} + {{:button + label="Enlever" + title="Enlever une ligne" + shape="minus" + min="1" + name="remove_line" + }} + {{/if}} {{/foreach}} diff --git a/scripts.js b/scripts.js index 0521809..3def0ba 100644 --- a/scripts.js +++ b/scripts.js @@ -145,19 +145,21 @@ function setSelectorYear(button_names, f_years_selector) // Associer au bouton « Enlever » de chaque ligne l'action de suppression de la ligne function initLine(row) { - var removeBtn = row.querySelector('button[name="remove_line"]'); - removeBtn.onclick = () => { - let count = removeBtn.closest("table").querySelectorAll('tbody tr').length; - var min = removeBtn.getAttribute('min'); + let removeBtn = row.querySelector('button[name="remove_line"]'); + if (removeBtn != null) { + removeBtn.onclick = () => { + let count = removeBtn.closest("table").querySelectorAll('tbody tr').length; + var min = removeBtn.getAttribute('min'); - if (count <= min) { - alert("Il n'est pas possible d'avoir moins de " + min + " ligne(s)."); - return false; - } + if (count <= min) { + alert("Il n'est pas possible d'avoir moins de " + min + " ligne(s)."); + return false; + } - row.parentNode.removeChild(row); - return true; - }; + row.parentNode.removeChild(row); + return true; + }; + } } // Associer au bouton « Ajouter » de chaque table l'action d'ajouter une ligne @@ -185,6 +187,28 @@ function addLine(button, codes) { let lib = newNode.querySelector('.input-list span.label'); lib.innerText = ''; + // si besoin, ajouter le bouton de suppression + let action_cell = newNode.querySelector('td.actions'); + let removeBtn = newNode.querySelector('button[name="remove_line"]'); + if (removeBtn == null) { + const attributs = { + "title" : "Enlever une ligne", + "min": "1", + "name": "remove_line", + "data-icon": "➖", + "type": "button", + "class": "icn-btn", + "value": "1", + "aria-label": "Enlever une ligne" + }; + let new_button = document.createElement("button"); + new_button.appendChild(document.createTextNode("Enlever")); + for (let attr in attributs) { + new_button.setAttribute(attr, attributs[attr]); + } + action_cell.appendChild(new_button); + } + // ajouter la nouvelle ligne line.parentNode.appendChild(newNode); initLine(newNode); From 4ecd144593aa8e5b0817afed99356cff0eec62d9 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 24 Jun 2026 11:50:38 +0200 Subject: [PATCH 28/35] =?UTF-8?q?Config=20:=20s=C3=A9curisation=20comptes?= =?UTF-8?q?=20par=20d=C3=A9faut?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.html | 33 +++++++++++++++++++-------------- scripts.js | 46 +++++++++++++++++++++++++++++++++++----------- 2 files changed, 54 insertions(+), 25 deletions(-) diff --git a/config.html b/config.html index 50f295b..eec7baf 100644 --- a/config.html +++ b/config.html @@ -46,6 +46,7 @@ {{/form}} {{:admin_header title="Configuration" custom_css="./style.css" current="module_amortization"}} + {{:include file="_nav.html" current="config"}} {{if $_GET.ok == 1}}

Configuration enregistrée.

@@ -154,13 +155,14 @@ }} - {{:button - label="Enlever" - title="Enlever une ligne" - shape="minus" - min="1" - name="remove_line" - }} + {{if ! $code|in:$config_defaut.prefixes}} + {{:button + label="Enlever" + shape="minus" + min="1" + name="remove_line" + }} + {{/if}} {{/foreach}} @@ -187,6 +189,7 @@ + {{:assign unfinished_lines=$config_defaut.unfinished|map:implode:"-"|implode:","}} {{#foreach from=$unfinished_accounts key=code item=elem}} @@ -200,13 +203,15 @@ }} - {{:button - label="Enlever" - title="Enlever une ligne" - shape="minus" - min="1" - name="remove_line" - }} + {{if $unfinished_lines|strpos:$code === false}} + {{:button + label="Enlever" + title="Enlever une ligne" + shape="minus" + min="1" + name="remove_line" + }} + {{/if}} {{/foreach}} diff --git a/scripts.js b/scripts.js index 0521809..3def0ba 100644 --- a/scripts.js +++ b/scripts.js @@ -145,19 +145,21 @@ function setSelectorYear(button_names, f_years_selector) // Associer au bouton « Enlever » de chaque ligne l'action de suppression de la ligne function initLine(row) { - var removeBtn = row.querySelector('button[name="remove_line"]'); - removeBtn.onclick = () => { - let count = removeBtn.closest("table").querySelectorAll('tbody tr').length; - var min = removeBtn.getAttribute('min'); + let removeBtn = row.querySelector('button[name="remove_line"]'); + if (removeBtn != null) { + removeBtn.onclick = () => { + let count = removeBtn.closest("table").querySelectorAll('tbody tr').length; + var min = removeBtn.getAttribute('min'); - if (count <= min) { - alert("Il n'est pas possible d'avoir moins de " + min + " ligne(s)."); - return false; - } + if (count <= min) { + alert("Il n'est pas possible d'avoir moins de " + min + " ligne(s)."); + return false; + } - row.parentNode.removeChild(row); - return true; - }; + row.parentNode.removeChild(row); + return true; + }; + } } // Associer au bouton « Ajouter » de chaque table l'action d'ajouter une ligne @@ -185,6 +187,28 @@ function addLine(button, codes) { let lib = newNode.querySelector('.input-list span.label'); lib.innerText = ''; + // si besoin, ajouter le bouton de suppression + let action_cell = newNode.querySelector('td.actions'); + let removeBtn = newNode.querySelector('button[name="remove_line"]'); + if (removeBtn == null) { + const attributs = { + "title" : "Enlever une ligne", + "min": "1", + "name": "remove_line", + "data-icon": "➖", + "type": "button", + "class": "icn-btn", + "value": "1", + "aria-label": "Enlever une ligne" + }; + let new_button = document.createElement("button"); + new_button.appendChild(document.createTextNode("Enlever")); + for (let attr in attributs) { + new_button.setAttribute(attr, attributs[attr]); + } + action_cell.appendChild(new_button); + } + // ajouter la nouvelle ligne line.parentNode.appendChild(newNode); initLine(newNode); From 38aa042eb16966bf426ac3cea4edc8215c862d7e Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 25 Jun 2026 09:32:52 +0200 Subject: [PATCH 29/35] =?UTF-8?q?Ajout=20info=20cr=C3=A9ation=20nouvelles?= =?UTF-8?q?=20=C3=A9critures?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- transfer.html | 1 + write_exit.html | 3 +++ 2 files changed, 4 insertions(+) diff --git a/transfer.html b/transfer.html index 17d3b31..6a491b1 100644 --- a/transfer.html +++ b/transfer.html @@ -181,6 +181,7 @@ duration=$duration date_mes=null status=$status + created=true }} {{if $_POST.amortir}} {{:assign type_immo="managed"}} diff --git a/write_exit.html b/write_exit.html index beb6e68..cfd4a3a 100644 --- a/write_exit.html +++ b/write_exit.html @@ -142,6 +142,7 @@ type="amort_link" immo_doc_id=$info_immo.id amort_line_id=$line.id + created=true }} {{/if}} {{/foreach}} @@ -207,6 +208,7 @@ type="exit_link" immo_doc_id=$info_immo.id exit_line_id=$line.id + created=true }} {{:break}} {{/if}} @@ -252,6 +254,7 @@ type="cession_link" immo_doc_id=$info_immo.id cession_line_id=$line.id + created=true }} {{:break}} {{/if}} From 669f036071558aea11e0ad54ab264ee92aa3a30a Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 25 Jun 2026 09:48:55 +0200 Subject: [PATCH 30/35] Suppression 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}} From c394f1a89489e9b53adf2e8aecb5f14fa0a48205 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Fri, 26 Jun 2026 12:00:06 +0200 Subject: [PATCH 31/35] =?UTF-8?q?Am=C3=A9lioration=20pr=C3=A9sentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- amortization.html | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/amortization.html b/amortization.html index 97ded50..085edd3 100644 --- a/amortization.html +++ b/amortization.html @@ -148,12 +148,14 @@
-

Avoirs

- +{{if $valeur_residuelle > 0 || $linked_immos != null}} +

Avoirs

+ +{{/if}} {{if $linked_immos != null}} From 73b0dff14d32c2bc578efe92eb45afee6ba16dce Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 29 Jun 2026 10:48:21 +0200 Subject: [PATCH 32/35] =?UTF-8?q?Ajout=20valeurs=20par=20d=C3=A9faut=20mod?= =?UTF-8?q?ification=20immo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modify_infos.html | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modify_infos.html b/modify_infos.html index 7694e83..0378939 100644 --- a/modify_infos.html +++ b/modify_infos.html @@ -14,6 +14,8 @@ {{if $ligne_immo.line_label != null && $ligne_immo.line_label != $immo_label}} {{:assign immo_label=$immo_label|cat:" — "|cat:$ligne_immo.line_label}} {{/if}} +{{:assign date_achat_defaut=$info_immo.date_achat|or:$ligne_immo.date_achat}} +{{:assign date_mes_defaut=$info_immo.date_mes|or:$info_immo.date_achat|or:$ligne_immo.date_achat}} {{* déduire le montant des écritures liées à l'immo courante au crédit du même compte *}} {{:include file="_get_credit_lines.html" immo_doc_id=$_GET.immo_doc_id keep="linked_immos, total_credits"}} @@ -186,16 +188,16 @@
- Paramètres de l'amortissement + Informations
{{:input type="number" name="duree" label="Durée d'amortissement" min=1 default=$info_immo.duration suffix="année(s)"}} {{if $info_immo.amount != null}} {{:assign max_aff="%f"|math:$max_disponible|money_currency:false}} {{:input type="money" name="montant" label="Montant de l'immobilisation" default=$montant_immo help="Montant maximum : %s"|args:$max_aff}} {{/if}} - {{:input type="date" name="date_achat" label="Date d'acquisition" default=$info_immo.date_achat help="si différente de la date de l'écriture d'immobilisation"}} - {{:input type="date" name="date_mes" label="Date de mise en service" default=$info_immo.date_mes help="si différente de la date d'acquisition"}} - {{:input type="text" name="libelle" label="Libellé" default=$info_immo.label help="si différent du libellé de l'écriture d'immobilisation"}} + {{:input type="date" name="date_achat" label="Date d'acquisition" default=$date_achat_defaut help="si différente de la date de l'écriture d'immobilisation"}} + {{:input type="date" name="date_mes" label="Date de mise en service" default=$date_mes_defaut help="si différente de la date d'acquisition"}} + {{:input type="text" name="libelle" label="Libellé" default=$immo_label help="si différent du libellé de l'écriture d'immobilisation"}}

From 47a610db100dbda27c74376884e083cb5ab7bb09 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 29 Jun 2026 10:48:40 +0200 Subject: [PATCH 33/35] Correction erreur url immobilisation --- other_amortizations.html | 1 + 1 file changed, 1 insertion(+) diff --git a/other_amortizations.html b/other_amortizations.html index d606d87..5a69be2 100644 --- a/other_amortizations.html +++ b/other_amortizations.html @@ -60,6 +60,7 @@ +{{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$ligne_immo.trans_id}}

From f2d351d4bd31e9a89b5c3f43a1716c04a53fb765 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 29 Jun 2026 11:03:04 +0200 Subject: [PATCH 34/35] =?UTF-8?q?Correction=20valeurs=20immobilisation=20a?= =?UTF-8?q?ffich=C3=A9es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- other_amortizations.html | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/other_amortizations.html b/other_amortizations.html index 5a69be2..61f870f 100644 --- a/other_amortizations.html +++ b/other_amortizations.html @@ -11,10 +11,16 @@ {{:error message=$message}} {{/if}} +{{:assign montant_immo=$info_immo.amount|or:$ligne_immo.amount}} {{:assign label_immo=$info_immo.label|or:$ligne_immo.trans_label}} {{if $ligne_immo.line_label != null && $ligne_immo.line_label != $label_immo}} {{:assign label_immo=$label_immo|cat:" — "|cat:$ligne_immo.line_label}} {{/if}} +{{:assign date_mes=$info_immo.date_mes|or:$info_immo.date_achat|or:$ligne_immo.date_achat}} + +{{* déduire le montant des écritures liées à l'immo courante au crédit du même compte *}} +{{:include file="_get_credit_lines.html" immo_doc_id=$_GET.immo_doc_id keep="linked_immos, total_credits"}} +{{:assign montant_immo="%d-%d"|math:$montant_immo:$total_credits}} {{if $_GET.filter}} {{* déterminer le compte d'amortissement en fonction du compte d'immobilisation *}} @@ -67,9 +73,9 @@
Immobilisation
#{{$ligne_immo.trans_id}} {{$label_immo}}
Montant
-
{{"%f"|math:$ligne_immo.amount|money_currency_html:false|raw}}
-
Date de l'immobilisation
-
{{$ligne_immo.date_achat|date_short}}
+
{{"%f"|math:$montant_immo|money_currency_html:false|raw}}
+
Début d'amortissement
+
{{$date_mes|date_short}}
From 8a4ecc50c2fd189abfd7911899a68d7c244f2d9e Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 29 Jun 2026 11:04:02 +0200 Subject: [PATCH 35/35] =?UTF-8?q?Suppression=20code=20erron=C3=A9=20et=20i?= =?UTF-8?q?nutile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modify_infos.html | 39 --------------------------------------- 1 file changed, 39 deletions(-) diff --git a/modify_infos.html b/modify_infos.html index 0378939..174d1a4 100644 --- a/modify_infos.html +++ b/modify_infos.html @@ -95,44 +95,6 @@ {{:assign status="managed"}} - {{* écritures de crédit *}} - {{#foreach from=$linked_immos item="line"}} - {{if ! $_POST.credit_id|has:$line.trans_id}} - {{:assign var="docs_to_remove." value=$line.doc}} - {{:assign var="links_to_remove." value=$line.trans_id}} - {{/if}} - {{/foreach}} - - {{if $docs_to_remove != null}} - {{:assign remove_set=$docs_to_remove|implode:","}} - {{:assign remove_set="("|cat:$remove_set|cat:")"}} - {{:delete where="id IN %s"|args:$remove_set}} - - {{* idem avec acc_transactions_links *}} - {{#select - CASE links.id_related = :immo_trans_id - WHEN true THEN links.id_transaction - WHEN false THEN links.id_related - END as linked_id - FROM acc_transactions_links as links - WHERE id_transaction = :immo_trans_id or id_related = :immo_trans_id; - :immo_trans_id = $ligne_immo.trans_id - }} - {{if ! $linked_id|in:$links_to_remove}} - {{:assign var="linked_transactions." value=$linked_id}} - {{/if}} - {{/select}} - - {{* Enregistrer les liaisons *}} - {{:api - method="POST" - path="accounting/transaction/%s/transactions"|args:$ligne_immo.trans_id - assign="result" - assign_code="result_code" - transactions=$linked_transactions - }} - {{/if}} - {{* enregistrer les infos de l'immobilisation *}} {{:save key=$info_immo.key @@ -150,7 +112,6 @@ {{:assign type_immo="managed"}} {{:redirect force="amortization.html?immo_doc_id=%s&type_immo=%s&ok=1&msg=modif"|args:$_GET.immo_doc_id:$type_immo}} - {{/form}} {{:admin_header title="Modifier l'immobilisation" custom_css="./style.css" current="module_amortization"}}