// activer/désactiver les champs passés en paramètres function toggleInputs(idcb, idfields) { const noamort = document.getElementById(idcb); for (let id of idfields) { const field = document.getElementById(id); if (noamort.checked) { field.setAttribute("disabled","disabled"); } else { field.removeAttribute("disabled"); } } } // fixer l'exercice des sélecteurs de compte function setAccountYear(button_names, id_year) { for (const name of button_names) { const button = document.querySelector("button[data-name=" + name + "]"); const b_value = button.value; const new_value = b_value.replace(/id_year=\d+/, 'id_year=' + id_year); button.setAttribute('value', new_value); } } // renvoyer la valeur en millisecondes d'un champ date function getDate(idelem) { const elem = document.getElementById(idelem).value; const jma = elem.split('/'); const dd = new Date(jma[2], jma[1]-1, jma[0]); return dd.getTime(); } // 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]; if (! values.includes(choix.value)) { choix.setAttribute('disabled', 'true'); choix.removeAttribute('selected'); } } } // choisir les exercices affichés selon la date paramètre function chooseYears(id_date, id_exercices, id_years) { // masquer le message d'erreur document.getElementById('erreur').setAttribute('class', 'hidden'); // activer toutes les options const select_field = document.getElementById(id_exercices); for (const choix of select_field.options) { choix.removeAttribute('disabled'); choix.removeAttribute('selected'); } // voir dans quels exercices ouverts se situe la date d'acquisition const date_achat = getDate(id_date)/1000; const years_data = document.getElementById(id_years); let array_years = []; for (const choix of years_data.options) { if (choix.value != '') { const epox = choix.text.split(' '); if (epox[0] <= date_achat && date_achat <= epox[1]) { array_years.push(choix.value); } } } if (array_years.length == 0) { document.getElementById('erreur').setAttribute('class', ''); disableOptions(select_field, 1, array_years); select_field.value = ''; setAccountYear(['credit_account', 'debit_account'], 0); } else if (array_years.length == 1) { disableOptions(select_field, 0, array_years); select_field.value = array_years[0]; setAccountYear(['credit_account', 'debit_account'], array_years[0]); } else { disableOptions(select_field, 1, array_years); select_field.value = ''; setAccountYear(['credit_account', 'debit_account'], 0); } }