diff --git a/README.md b/README.md index 578af08..e771e69 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,15 @@ 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 +- lister les amortissements d'une immobilisation : + - amortissements déjà enregistrés + - amortissements à venir +- associer une écriture d'amortissement à 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 - +- activer le module qui est maintenant présent dans la liste des extensions inactives diff --git a/_archives.html b/_archives.html index b5d2cc6..8a8f8ad 100644 --- a/_archives.html +++ b/_archives.html @@ -153,7 +153,7 @@ {{$account_code}} {{$account_label}} - {{:linkbutton label="Modifier" href="exit_step1.html?immo_doc_id=%s&from=exit"|args:$info_immo.id shape="edit"}} + {{:linkbutton label="Modifier" href="exit_step3.html?immo_doc_id=%s"|args:$info_immo.id shape="edit"}} {{/select}} @@ -172,6 +172,7 @@ {{$value|money_html:false|raw}} + {{/foreach}} @@ -183,6 +184,7 @@ {{$total_immo|money_html:false|raw}} + {{/if}} @@ -199,6 +201,7 @@ {{$value|money_html:false|raw}} + {{/foreach}} @@ -210,6 +213,7 @@ {{$total_cessions|money_html:false|raw}} + {{/if}} diff --git a/_common_attach.html b/_common_attach.html deleted file mode 100644 index 728ee1f..0000000 --- a/_common_attach.html +++ /dev/null @@ -1,37 +0,0 @@ -{{* -*- brindille -*- *}} - -{{* - Enregistrer l'association entre une ligne d'immo et une autre ligne (amort, credit, cession, sortie) - @param immo_doc_id : id du doc associé à la ligne d'immobilisation - @param trans_id : id de l'écriture à attacher -*}} -{{* données de l'immobilisation *}} -{{:include file="_get_immo_data.html" immo_doc_id=$immo_doc_id|intval keep="ligne_immo, message"}} -{{if $message != null}} - {{:error message=$message}} -{{/if}} - -{{* chercher les liaisons de l'écriture d'immobilisation *}} -{{#select - CASE links.id_related = :immo_trans_id - WHEN true THEN links.id_transaction - WHEN false THEN links.id_related - END as linked_id - FROM acc_transactions_links as links - WHERE id_transaction = :immo_trans_id or id_related = :immo_trans_id; - :immo_trans_id = $ligne_immo.trans_id -}} - {{:assign var="linked_transactions." value=$linked_id}} -{{/select}} - -{{* ajouter la nouvelle liaison *}} -{{:assign var="linked_transactions." value=$trans_id}} -{{* Enregistrer les liaisons *}} -{{:api - method="POST" - path="accounting/transaction/%s/transactions"|args:$ligne_immo.trans_id - assign="result" - assign_code="result_code" - transactions=$linked_transactions -}} - diff --git a/_common_detach.html b/_common_detach.html index 8c84736..b4e80d0 100644 --- a/_common_detach.html +++ b/_common_detach.html @@ -1,13 +1,12 @@ {{* -*- brindille -*- *}} {{* - Supprimer l'association entre une ligne d'immo et une autre ligne (amort, credit, cession, sortie) + Supprimer l'association entre deux lignes @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="info_immo, ligne_immo, message"}} +{{:include file="_get_immo_data.html" immo_doc_id=$immo_doc_id|intval keep="ligne_immo, message"}} {{if $message != null}} {{:error message=$message}} {{/if}} diff --git a/_compare_version.tpl b/_compare_version.tpl deleted file mode 100644 index 88d8a40..0000000 --- a/_compare_version.tpl +++ /dev/null @@ -1,34 +0,0 @@ -{{* -*- brindille -*- *}} - -{{* - Comparer deux numéros de version n1.n2[.n3] - @param nv1 - @param nv2 - @result comp : -1 si nv1 < nv2, 0 si nv1 = nv2, 1 si nv1 > nv2 -*}} - -{{:assign nv1=$nv1|cat:"."}} -{{:assign nv2=$nv2|cat:"."}} -{{:assign var="tv1" value=$nv1|explode:"."}} -{{:assign var="tv2" value=$nv2|explode:"."}} - -{{:assign comp=0}} -{{:assign i=0}} -{{#foreach from=$tv1 item="e1"}} - {{:assign var="e2" from="tv2.%d"|args:$i}} - {{if $e1 < $e2}} - {{:assign comp=-1}} - {{:break}} - {{elseif $e1 > $e2}} - {{:assign comp=1}} - {{:break}} - {{/if}} - {{:assign i="%d+1"|math:$i}} -{{/foreach}} -{{* - cas où le premier tableau a moins d'éléments que le 2ème - et où les éléments présents dans les deux tableaux sont identiques - *}} -{{if $comp == 0 && $tv1|count < $tv2|count}} - {{:assign comp = -1}} -{{/if}} diff --git a/_get_amort_lines.html b/_get_amort_lines.html index dd115e8..a985fa2 100644 --- a/_get_amort_lines.html +++ b/_get_amort_lines.html @@ -5,7 +5,6 @@ @param immo_doc_id : id du doc associé à l'immobilisation @result linked_amort : lignes d'amortissement liées à la ligne d'immobilisation @result total_amort : montant total des amortissements de l'immobilisation - @result created_amort : vrai s'il y a au moins un amortissement créé par le module dans la liste *}} {{:assign total_amort=0}} @@ -34,10 +33,6 @@ assign="amort_line" }} {{:assign var="amort_line.amount" value=$amort_info.amount|or:$amort_line.amount}} - {{if $amort_info.created}} - {{:assign var="amort_line.created" value=true}} - {{:assign var="created_amort" value=true}} - {{/if}} {{:assign var="linked_amort.%s_%d"|args:$amort_line.date:$amort_info.id value=$amort_line}} {{:assign total_amort="%d+%d"|math:$total_amort:$amort_line.amount}} {{/select}} diff --git a/_get_free_amort.html b/_get_free_amort.html index b3b142f..a3373a4 100644 --- a/_get_free_amort.html +++ b/_get_free_amort.html @@ -2,7 +2,7 @@ {{* lister les amortissement non rattachés à une immo - @param condition + @param filter_condition *}} {{#select line.id as line_id, @@ -18,9 +18,9 @@ FROM acc_transactions_lines AS line INNER JOIN acc_accounts AS account ON account.id = line.id_account INNER JOIN acc_transactions AS trans ON trans.id = line.id_transaction - WHERE credit > 0 AND (NOT trans.status & 16) AND !condition + WHERE account.code LIKE "28%" AND credit > 0 AND (NOT trans.status & 16) AND !filter_condition ORDER BY trans.date, trans.label; - !condition=$condition + !filter_condition=$filter_condition assign="amort_line" }} {{* voir s'il existe des lignes d'immo liées à cette ligne d'amortissement *}} @@ -41,7 +41,6 @@ {{* pas de ligne d'immo liée à cette ligne d'amort => garder cette ligne d'amortissement *}} {{/load}} {{if $keep_amort && $amort_amount < $amort_line.amount}} - {{:assign var="amort_line.amount" value="%d-%d"|math:$amort_line.amount:$amort_amount}} {{:assign var="free_amort_lines." value=$amort_line}} {{/if}} {{/select}} diff --git a/_immobilisations.html b/_immobilisations.html index 93648ec..e78fbfd 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -68,15 +68,12 @@ !table=$module.table !condition=$condition }} - {{if $status != "managed" && $status != "amortized"}} - {{:continue}} - {{/if}} {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$immo_trans_id}} {{:assign compte_url="%s/acc/accounts/journal.php?id=%s&year=%s"|args:$admin_url:$account_id:$trans_id_year}} {{:assign montant_immo=$doc_amount|or:$debit}} {{:assign immo_date = $doc_date_achat|or:$trans_date}} {{:assign label_immo=$doc_label|or:$trans_label}} - {{if $label_immo|strpos:$line_label === false}} + {{if $line_label != null && $line_label != $label_immo}} {{:assign label_immo=$label_immo|cat:" — "|cat:$line_label}} {{/if}} @@ -96,8 +93,9 @@ {{/if}} {{/load}} + {{* Immobilisation soldée ? *}} + {{* TODO ¿ marquer archivée ? *}} {{if $montant_immo == 0}} - {{* Immobilisation soldée *}} {{:continue}} {{/if}} @@ -123,9 +121,17 @@ {{"%d-%d"|math:$montant_immo:$amort_amount|money_html:false|raw}} {{$account_code}} + {{*if $amort_amount == 0*}} + {{:linkbutton + label="Détails" + href="details_immo.html?immo_doc_id=%s"|args:$immo_doc_id + shape="eye" + }} + {{* target="_dialog"*}} + {{*/if*}} {{:linkbutton - label="Détails" - href="amortization.html?immo_doc_id=%s&type_immo=%s"|args:$immo_doc_id:$type_immo shape="eye" + label="Amortissements" + href="amortization.html?immo_doc_id=%s&type_immo=%s"|args:$immo_doc_id:$type_immo shape="table" }} diff --git a/_immobilisations_autres.html b/_immobilisations_autres.html index 383ba12..bacef59 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; + ORDER BY trans.date DESC; !columns=$columns !table_join=$table_join !table=$module.table @@ -114,6 +114,7 @@ {{:assign var="immo_lines." value=$immo_line}} {{/select}} +{{*:debug lines=$immo_lines nb_lines=$immo_lines|count nb_null=$nb_null nb_managed=$nb_managed nb_ignored=$nb_ignored nb_other=$nb_other unhide=$unhide*}}
@@ -147,10 +148,8 @@ {{else}} {{* vérifier si le libellé aurait pu être filtré *}} {{#foreach from=$module.config.filters item="filter"}} - {{if $trans_label|strpos:$filter !== false}} + {{if $filter|strpos:$trans_label !== false}} {{:assign status="ignored"}} - {{else}} - {{:assign status=""}} {{/if}} {{/foreach}} {{/if}} diff --git a/_nav.html b/_nav.html index a3bf0b8..fac14e4 100644 --- a/_nav.html +++ b/_nav.html @@ -1,32 +1,55 @@ {{* -*- brindille -*- *}}
Informations
- {{:input type="date" name="date_achat" label="Date d'acquisition" default=$date_achat_defaut help="à modifier si nécessaire"}} - {{:input type="text" name="libelle" label="Libellé" default=$immo_label help="à modifier si nécessaire"}} - {{: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="number" name="duree" label="Durée d'amortissement" required=true min=1 suffix="année(s)"}} - {{: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="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"}}
@@ -236,6 +220,7 @@ function toggleInputs(event) { const managed = classement_immo.querySelector('input[type=radio][value=managed]'); if (managed.checked) { g.toggle('.masquable', true); + document.getElementById('f_duree').focus(); } else { g.toggle('.masquable', false); } @@ -247,9 +232,6 @@ toggleInputs(); radios.forEach(radio => { radio.addEventListener("change", toggleInputs); }); - document.getElementById('f_date_achat').addEventListener("change", (e) => { - document.getElementById('f_date_mes').value = document.getElementById('f_date_achat').value; - }); })(); diff --git a/aide.html b/aide.html index 0bf1430..e6855d7 100644 --- a/aide.html +++ b/aide.html @@ -1,12 +1,163 @@ {{* -*- brindille -*- *}} -{{:admin_header title="Aide" custom_css="./style_aide.css" current="module_amortization"}} +{{:admin_header title="Aide" custom_css="./style.css" current="module_amortization"}} {{* barre de navigation *}} {{:include file="_nav.html" current="aide"}} -
-
- {{:include file="doc/aide.html"}} -
-
+

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

+ +

Immobilisations

+Elles sont classées dans plusieurs onglets : + + + +

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 : + +
+ +

Créer une écriture d'amortissement

+ +
+

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

+ +

+
+ +

Remarques

+ + + + +

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

+

+

+ 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/amortization.html b/amortization.html index 7d73749..34e01b1 100644 --- a/amortization.html +++ b/amortization.html @@ -15,7 +15,7 @@ {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$ligne_immo.trans_id}} {{:assign date_debut=$info_immo.date_mes|or:$info_immo.date_achat|or:$ligne_immo.date_achat}} {{:assign label_immo=$info_immo.label|or:$ligne_immo.trans_label}} -{{if $label_immo|strpos:$ligne_immo.line_label === false}} +{{if $ligne_immo.line_label != null && $ligne_immo.line_label != $label_immo}} {{:assign label_immo=$label_immo|cat:" — "|cat:$ligne_immo.line_label}} {{/if}} {{if $info_immo.amount != null}} @@ -29,40 +29,41 @@ {{* déduire le montant des écritures liées à l'immo courante au crédit du même compte *}} {{:include file="_get_credit_lines.html" immo_doc_id=$_GET.immo_doc_id keep="linked_immos, total_credits"}} {{:assign solde="%d-%d"|math:$ligne_immo.amount:$total_credits}} -{{:assign valeur_residuelle=$solde}} + +{{if $info_immo.status == "amortized"}} + {{:assign amort_amount=$solde}} + {{:assign valeur_residuelle=0}} +{{else}} + {{:assign valeur_residuelle=$solde}} +{{/if}} {{* lister les amortissements liés à l'immobilisation *}} -{{:include file="./_get_amort_lines.html" immo_doc_id=$_GET.immo_doc_id keep="linked_amort, total_amort, created_amort"}} +{{:include file="./_get_amort_lines.html" immo_doc_id=$_GET.immo_doc_id keep="linked_amort, total_amort"}} {{:assign valeur_residuelle="%d-%d"|math:$valeur_residuelle:$total_amort}} {{if $valeur_residuelle > 0}} {{* lister les amortissements non attachés à une immo *}} - {{:assign account_filter="28%"|quote_sql}} - {{:assign filter_condition="account.code LIKE "|cat:$account_filter}} - - {{:assign date_amort=$date_debut|quote_sql}} - {{:assign date_condition="trans.date >= "|cat:$date_amort}} - {{:assign condition=$date_condition|cat:" AND "|cat:$filter_condition}} - {{:include file="./_get_free_amort.html" condition=$condition keep="free_amort_lines"}} + {{:include file="./_get_free_amort.html" filter_condition="1" keep="free_amort_lines"}} {{/if}} -{{:admin_header title="Détails de l'immobilisation" custom_css="./style.css" current="module_amortization"}} +{{:admin_header title="Liste des amortissements" custom_css="./style.css" current="module_amortization"}} {{* barre de navigation *}} -{{if $_GET.type_immo == "amortized" && $valeur_residuelle == 0}} - {{:assign current="amortized"}} +{{if $_GET.type_immo == "amortized" || $valeur_residuelle== 0 }} + {{:assign subcurrent="amortized"}} {{elseif $_GET.type_immo == "archived"}} - {{:assign current="archived"}} -{{elseif $_GET.type_immo == null || $_GET.type_immo == "managed" || $valeur_residuelle > 0}} - {{:assign current="managed"}} + {{:assign subcurrent="archived"}} +{{elseif $_GET.type_immo == null || $_GET.type_immo == "managed"}} + {{:assign subcurrent="managed"}} {{else}} - {{:assign current="other"}} + {{:assign subcurrent="other"}} {{/if}} {{:include file="_nav.html" - current="%s"|args:$current - subcurrent="details" + current="index" + subcurrent="%s"|args:$subcurrent + subsubcurrent="amortization" type_immo=$_GET.type_immo autres_amort=$free_amort_lines }} @@ -78,8 +79,6 @@ {{:assign msg="Détachement avoir affectué"}} {{elseif $_GET.msg|match:"amortissement"}} {{:assign msg="Amortissement enregistré"}} - {{elseif $_GET.msg|match:"modif"}} - {{:assign msg="Modifications enregistrées"}} {{/if}}

{{$msg}}

{{elseif $_GET.err}} @@ -109,16 +108,52 @@
-

Immobilisation

-