Réorganisation formulaire ajout immobilisation

This commit is contained in:
Jean-Christophe Engel 2025-05-12 16:21:15 +02:00
parent 9f8660a51f
commit 1aa1e65b61
2 changed files with 42 additions and 15 deletions

View file

@ -18,7 +18,7 @@
{{* Traiter l'envoi du formulaire *}} {{* Traiter l'envoi du formulaire *}}
{{#form on="add"}} {{#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 ts_date = $_POST.date_achat|parse_date|strtotime}}
{{:assign ok=false}} {{:assign ok=false}}
{{#foreach from=$years}} {{#foreach from=$years}}
@ -34,10 +34,10 @@
{{:error message="La date saisie n'est pas dans l'exercice choisi !"}} {{:error message="La date saisie n'est pas dans l'exercice choisi !"}}
{{/if}} {{/if}}
{{if $_POST.no_amort}} {{if ! $_POST.amortir}}
{{* ne pas amortir *}} {{* ne pas amortir *}}
{{:assign duration=0}} {{:assign duration=0}}
{{:assign date_debut=$ligne_immo.date_achat|parse_date}} {{:assign date_debut=$_POST.date_achat|parse_date}}
{{:assign status="ignored"}} {{:assign status="ignored"}}
{{else}} {{else}}
{{* vérifier que la date d'acquisition est antérieure à la date de mise en service *}} {{* vérifier que la date d'acquisition est antérieure à la date de mise en service *}}
@ -116,10 +116,10 @@
date=$date_debut date=$date_debut
status=$status status=$status
}} }}
{{if $_POST.no_amort}} {{if $_POST.amortir}}
{{:assign amort="autres"}}
{{else}}
{{:assign amort="encours"}} {{:assign amort="encours"}}
{{else}}
{{:assign amort="autres"}}
{{/if}} {{/if}}
{{:redirect force="index.html?ok=1&msg=immobilisation&amort=%s"|args:$amort}} {{:redirect force="index.html?ok=1&msg=immobilisation&amort=%s"|args:$amort}}
{{/form}} {{/form}}
@ -151,15 +151,12 @@
<form method="post" action=""> <form method="post" action="">
<fieldset> <fieldset>
<legend>Ajouter une immobilisation</legend> <legend>Données de l'immobilisation</legend>
<dl> <dl>
{{: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="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_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="text" name="designation" label="Désignation" required=true}}
{{:input type="money" name="montant" label="Montant" 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 {{:input
type="list" type="list"
name="credit_account" name="credit_account"
@ -183,6 +180,16 @@
</div> </div>
</dl> </dl>
</fieldset> </fieldset>
<fieldset>
<legend>Amortissement</legend>
<dl>
{{: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"}}
<div id="div_amort">
{{: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)"}}
</div>
</dl>
</fieldset>
<p class="submit"> <p class="submit">
{{:button type="submit" name="add" label="Ajouter" shape="right" class="main"}} {{: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); setSelectorYear(f_accounts, f_years_select);
} }
function changeVisibility(evt, idcheck = 'f_amortir_1', fields = ['div_amort']) {
toggleVisibility(idcheck, fields);
}
(function () { (function () {
document.getElementById('f_id_year').onchange = changeYear; document.getElementById('f_id_year').onchange = changeYear;
document.getElementById('f_amortir_1').onclick = changeVisibility;
})(); })();
</script> </script>

View file

@ -4,10 +4,22 @@ function toggleInputs(idcb, idfields) {
for (let id of idfields) { for (let id of idfields) {
const field = document.getElementById(id); const field = document.getElementById(id);
if (noamort.checked) { if (noamort.checked) {
field.setAttribute("disabled","disabled"); field.removeAttribute("disabled");
} }
else { 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); 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) { function disableOptions(idSelect, init, values) {
for (let i = init; i < idSelect.options.length; ++i) { for (let i = init; i < idSelect.options.length; ++i) {
const choix = idSelect.options[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 // 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) 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); let case_montant = document.getElementById(id_montant);
const selected_year = document.getElementById(id_exercices).value; const selected_year = document.getElementById(id_exercices).value;
if (selected_year == '') { 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) { if (date_debut <= date_choisie && date_choisie <= date_fin) {
date_fin = date_choisie; date_fin = date_choisie;
} else { } 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); const montant_immo = Number(document.getElementById(id_immo).value);