From 1aa1e65b61111d6055fb60c14f0ac2ad98bb9cd5 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 12 May 2025 16:21:15 +0200 Subject: [PATCH] =?UTF-8?q?R=C3=A9organisation=20formulaire=20ajout=20immo?= =?UTF-8?q?bilisation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- add_asset.html | 32 ++++++++++++++++++++++---------- scripts.js | 25 ++++++++++++++++++++----- 2 files changed, 42 insertions(+), 15 deletions(-) diff --git a/add_asset.html b/add_asset.html index bddb73a..051d7ba 100644 --- a/add_asset.html +++ b/add_asset.html @@ -18,7 +18,7 @@ {{* Traiter l'envoi du formulaire *}} {{#form on="add"}} - {{* vérifier que la date d'achat est située dans un exercice ouvert *}} + {{* vérifier que la date d'achat est située dans un l'exercice sélectionné *}} {{:assign ts_date = $_POST.date_achat|parse_date|strtotime}} {{:assign ok=false}} {{#foreach from=$years}} @@ -34,10 +34,10 @@ {{:error message="La date saisie n'est pas dans l'exercice choisi !"}} {{/if}} - {{if $_POST.no_amort}} + {{if ! $_POST.amortir}} {{* ne pas amortir *}} {{:assign duration=0}} - {{:assign date_debut=$ligne_immo.date_achat|parse_date}} + {{:assign date_debut=$_POST.date_achat|parse_date}} {{:assign status="ignored"}} {{else}} {{* vérifier que la date d'acquisition est antérieure à la date de mise en service *}} @@ -116,10 +116,10 @@ date=$date_debut status=$status }} - {{if $_POST.no_amort}} - {{:assign amort="autres"}} - {{else}} + {{if $_POST.amortir}} {{:assign amort="encours"}} + {{else}} + {{:assign amort="autres"}} {{/if}} {{:redirect force="index.html?ok=1&msg=immobilisation&amort=%s"|args:$amort}} {{/form}} @@ -151,15 +151,12 @@
- Ajouter une immobilisation + Données de l'immobilisation
- {{:input id="no_amort" type="checkbox" value=1 name="no_amort" label="Ne pas amortir" help="Cocher pour ne pas amortir" onclick="toggleInputs('f_no_amort_1', ['f_date_mes','f_duree'])"}} {{:input type="select" name="id_year" label="Exercice" required=true default_empty="— Faire un choix —" options=$open_years}} {{:input type="date" name="date_achat" label="Date d'acquisition" required=true default=$now|date_short}} - {{:input type="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="designation" label="Désignation" required=true}} {{:input type="money" name="montant" label="Montant" required=true}} - {{:input type="number" name="duree" label="Durée d'amortissement" required=true min=0 default=1 suffix="année(s)"}} {{:input type="list" name="credit_account" @@ -183,6 +180,16 @@
+
+ Amortissement +
+ {{:input id="amortir" type="checkbox" value=1 name="amortir" label="Amortir cette immobilisation sur plusieurs années" checked="cheched" help="Dé-cocher pour ne pas amortir"}} +
+ {{:input type="date" name="date_mes" label="Date de mise en service" help="C'est la date de première utilisation ; à renseigner uniquement si différente de la date d'acquisition"}} + {{:input type="number" name="duree" label="Durée d'amortissement" required=true min=0 default=1 suffix="année(s)"}} +
+
+

{{:button type="submit" name="add" label="Ajouter" shape="right" class="main"}} @@ -198,7 +205,12 @@ function changeYear(evt, f_accounts = ['credit_account', 'debit_account'], f_yea setSelectorYear(f_accounts, f_years_select); } +function changeVisibility(evt, idcheck = 'f_amortir_1', fields = ['div_amort']) { + toggleVisibility(idcheck, fields); +} + (function () { document.getElementById('f_id_year').onchange = changeYear; + document.getElementById('f_amortir_1').onclick = changeVisibility; })(); diff --git a/scripts.js b/scripts.js index 5dccdcd..9d56f87 100644 --- a/scripts.js +++ b/scripts.js @@ -4,10 +4,22 @@ function toggleInputs(idcb, idfields) { for (let id of idfields) { const field = document.getElementById(id); if (noamort.checked) { - field.setAttribute("disabled","disabled"); + field.removeAttribute("disabled"); } else { - field.removeAttribute("disabled"); + field.setAttribute("disabled","disabled"); + } + } +} + +function toggleVisibility(idcheck, fields) { + const amortcb = document.getElementById(idcheck); + for (let id of fields) { + const field = document.getElementById(id); + if (amortcb.checked) { + field.setAttribute('class', ''); + } else { + field.setAttribute('class', 'hidden'); } } } @@ -37,7 +49,7 @@ function getDate(idelem) { return str2sec(document.getElementById(idelem).value); } -// désactiver les options du sélecteur qui ne sont pas dans un tableau de valeurs +// (unused) désactiver les options du sélecteur qui ne sont pas dans un tableau de valeurs function disableOptions(idSelect, init, values) { for (let i = init; i < idSelect.options.length; ++i) { const choix = idSelect.options[i]; @@ -86,7 +98,9 @@ function computeAmort(montant_immo, duree_immo, somme_amort, date_debut, date_fi // calculer et afficher le montant de l'amortissement function displayAmort(id_immo, id_duree, id_amort, id_years, id_exercices, id_montant, id_erreur, id_date=null) { - document.getElementById(id_erreur).setAttribute('class', 'hidden'); + const div_erreur = document.getElementById(id_erreur); + div_erreur.setAttribute('class', 'hidden'); +// document.getElementById(id_erreur).setAttribute('class', 'hidden'); let case_montant = document.getElementById(id_montant); const selected_year = document.getElementById(id_exercices).value; if (selected_year == '') { @@ -109,7 +123,8 @@ function displayAmort(id_immo, id_duree, id_amort, id_years, id_exercices, id_mo if (date_debut <= date_choisie && date_choisie <= date_fin) { date_fin = date_choisie; } else { - document.getElementById(id_erreur).setAttribute('class', ''); + div_erreur.setAttribute('class', ''); +// document.getElementById(id_erreur).setAttribute('class', ''); } } const montant_immo = Number(document.getElementById(id_immo).value);