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/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"}}
diff --git a/amortization.html b/amortization.html index a3378b2..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}} 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 @@ }} {{/foreach}} @@ -187,6 +189,7 @@ + {{:assign unfinished_lines=$config_defaut.unfinished|map:implode:"-"|implode:","}} {{#foreach from=$unfinished_accounts key=code item=elem}} {{/foreach}} 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}} 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}} 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}}
- {{: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}}
@@ -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}}
@@ -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/modify_infos.html b/modify_infos.html index 7694e83..174d1a4 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"}} @@ -93,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 @@ -148,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"}} @@ -186,16 +149,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"}}

diff --git a/other_amortizations.html b/other_amortizations.html index 8716a25..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 *}} @@ -60,9 +66,20 @@ -{{if $free_amort_lines != null}} -

-

Immobilisation « {{$label_immo}} »

+{{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$ligne_immo.trans_id}} +
+
+
+
Immobilisation
+
#{{$ligne_immo.trans_id}} {{$label_immo}}
+
Montant
+
{{"%f"|math:$montant_immo|money_currency_html:false|raw}}
+
Début d'amortissement
+
{{$date_mes|date_short}}
+
+
+ + {{if $free_amort_lines != null}} @@ -77,11 +94,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}} @@ -106,11 +118,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}} 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); 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}}