Utiliser selector avec patterns

This commit is contained in:
Jean-Christophe Engel 2025-01-17 14:47:46 +01:00
parent a604a86a3f
commit 993ded84d3
2 changed files with 33 additions and 13 deletions

View File

@ -55,10 +55,6 @@
- est présent dans le PC de l'exercice correspondant à la date
*}}
{{:read file="./defaut.json" assign="config_json"}}
{{:assign config_defaut=$config_json|json_decode}}
{{:assign var="prefix_array" value=$config_defaut.prefixes|keys}}
{{:include
file="_check_account.html"
account=$debit_account
@ -123,12 +119,21 @@
{{:assign var="projects.%d"|args:$id value=$label}}
{{/select}}
{{:read file="./defaut.json" assign="config_json"}}
{{:assign config_defaut=$config_json|json_decode}}
{{:assign var="prefix_array" value=$config_defaut.prefixes|keys}}
{{#foreach from=$prefix_array item="code"}}
{{:assign var="pattern_array." value="%s*"|args:$code}}
{{/foreach}}
{{:assign patterns=$pattern_array|implode:"|"}}
{{:assign date=$now|date:'Y-m-d'}}
<form method="post" action="">
<fieldset>
<legend>Ajouter une immobilisation</legend>
<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="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 onchange="setDate('date_achat', ['credit_account', 'debit_account'])"}}
{{: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}}
@ -138,7 +143,7 @@
name="credit_account"
label="Compte de décaissement"
required=true
target="!acc/charts/accounts/selector.php?targets=1:2:3&key=code"
target="!acc/charts/accounts/selector.php?targets=%s&date=%s"|args:"1:2:3":$date
default=$bank_account
}}
{{:input
@ -146,7 +151,7 @@
name="debit_account"
label="Compte d'immobilisation (20xx, 21xx, ...)"
required=true
target="!acc/charts/accounts/selector.php?key=code"
target="!acc/charts/accounts/selector.php?date=%s&patterns=%s"|args:$date:$patterns
default=$immo_account
}}
{{if $projects != null}}
@ -161,8 +166,8 @@
</form>
{{* activer/désactiver les champs passés en paramètres *}}
<script type="text/javascript">
{{* activer/désactiver les champs passés en paramètres *}}
function toggleInputs(idcb, idfields) {
const noamort = document.getElementById(idcb);
for (let id of idfields) {
@ -175,6 +180,21 @@
}
}
}
{{* fixer la date des sélecteurs *}}
function setDate(b_date, button_names) {
const elem_date = document.querySelector("input[name=" + b_date + "]");
const date_fr = elem_date.value;
const new_date = date_fr.replace(/([0-9]+)\/([0-9]+)\/([0-9]+)/, "$3-$2-$1");
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(/date=[0-9]+-[0-9]+-[0-9]+/, 'date=' + new_date);
console.log(" date = " + new_date + " old_val = " + b_value + " new_val = " + new_value);
button.setAttribute('value', new_value);
console.log("button_value = " + button.value);
}
}
</script>
{{:admin_footer}}

View File

@ -147,7 +147,7 @@
name="debit_account"
label="Compte de débit"
required=true
target="!acc/charts/accounts/selector.php?&key=code&year=%d"|args:$year.id
target="!acc/charts/accounts/selector.php?patterns=%s&year=%d"|args:"68*":$year.id
default=$debit_account
}}
{{:input
@ -155,7 +155,7 @@
name="credit_account"
label="Compte d'amortissement (280xx ou 281xx)"
required=true
target="!acc/charts/accounts/selector.php?key=code&year=%d"|args:$year.id
target="!acc/charts/accounts/selector.php?patterns=%s&year=%d"|args:"28*":$year.id
default=$credit_account
}}
</dl>