diff --git a/_check_date.html b/_check_date.html
index 3dc1362..f68ec49 100644
--- a/_check_date.html
+++ b/_check_date.html
@@ -8,15 +8,11 @@
*}}
{{:assign open_years=""}}
-{{#years status=false order="start_date"}}
- {{:assign open_years=$open_years|cat:"\n"|cat:" - "|cat:$label|cat:" : "}}
- {{:assign debut=$start_date|date_short}}
- {{:assign fin=$end_date|date_short}}
- {{:assign open_years=$open_years|cat:$debut|cat:" à "|cat:$fin}}
+{{#years closed=false order="start_date" assign="open_years."}}
{{if
$start_date|strtotime <= $date|parse_date|strtotime &&
$end_date|strtotime >= $date|parse_date|strtotime
- }}
+ }}
{{:assign selected_year=$id}}
{{:assign selected_chart=$id_chart}}
{{/if}}
diff --git a/add_asset.html b/add_asset.html
index ba960df..bf97a82 100644
--- a/add_asset.html
+++ b/add_asset.html
@@ -14,7 +14,13 @@
keep="open_years, selected_year, selected_chart"
}}
{{if $selected_year == null}}
- {{:error message="La date choisie n'est dans aucun exercice ouvert !!\nExercices ouverts : %s"|args:$open_years}}
+ {{:assign msg_years=""}}
+ {{#foreach from=$open_years}}
+ {{:assign debut=$start_date|date_short}}
+ {{:assign fin=$end_date|date_short}}
+ {{:assign msg_years=$msg_years|cat:"\n"|cat:" - "|cat:$label|cat:" : "|cat:$debut|cat:" à "|cat:$fin}}
+ {{/foreach}}
+ {{:error message="La date choisie n'est dans aucun exercice ouvert !!\nExercices ouverts : %s"|args:$msg_years}}
{{/if}}
{{if $_POST.no_amort}}
@@ -116,13 +122,17 @@
{{:form_errors}}
{{* formulaire d'ajout d'immobilisation *}}
-{{:assign var="bank_account.512" value="512 — Banques"}}
-{{:assign var="immo_account.2" value="2 — Classe 2 — Comptes d'immobilisations"}}
+{{#years closed=false order="start_date"}}
+ {{:assign debut=$start_date|strtotime}}
+ {{:assign fin=$end_date|strtotime}}
+ {{:assign var="years_data.%d"|args:$id value=$debut|cat:" "|cat:$fin}}
+ {{:assign var="open_years.%d"|args:$id value=$label}}
+ {{if $start_date|strtotime <= $now && $end_date|strtotime >= $now}}
+ {{:assign selected_year=$id}}
+ {{/if}}
+{{/years}}
-{{* À TESTER : remplacer code compte par identifiant ?
-{{:assign var="bank_account.553" value="512A — Compte courant"}}
-{{:assign var="immo_account.2" value="Comptes d'immobilisations"}}
-*}}
+{{:assign var="immo_account.2" value="2 — Classe 2 — Comptes d'immobilisations"}}
{{#select id,label FROM acc_projects WHERE archived = 0;}}
{{:assign var="projects.%d"|args:$id value=$label}}
@@ -132,14 +142,18 @@
{{:assign var="pattern_array." value="%s*"|args:$code}}
{{/foreach}}
{{:assign patterns=$pattern_array|implode:"|"}}
-{{:assign date=$now|date:'Y-m-d'}}
+
+
+
La date choisie n'est dans aucun exercice ouvert
+
+
{{:admin_footer}}
diff --git a/scripts.js b/scripts.js
new file mode 100644
index 0000000..8dcde5f
--- /dev/null
+++ b/scripts.js
@@ -0,0 +1,83 @@
+// 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 d'acquisition
+function setYears(evt, id_date = 'f_date_achat', id_exercices = 'f_id_year', id_years = 'f_years_data')
+{
+ // 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);
+ }
+}