From 03d278ab2c8826b31fd6300f979db5f086c35255 Mon Sep 17 00:00:00 2001
From: Jean-Christophe Engel
Date: Mon, 9 Feb 2026 14:49:28 +0100
Subject: [PATCH 1/2] =?UTF-8?q?Interdire=20la=20modification=20et=20la=20s?=
=?UTF-8?q?uppression=20des=20types=20de=20mouvement=20pr=C3=A9d=C3=A9fini?=
=?UTF-8?q?s?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
_nav.html | 2 --
config.html | 18 +++++++++++-----
config/delete_movement_type.html | 20 ++++++++++++++----
config/modify_movement_type.html | 35 ++++++++++++++++++++++----------
4 files changed, 53 insertions(+), 22 deletions(-)
diff --git a/_nav.html b/_nav.html
index dfdf9ef..e2e6170 100644
--- a/_nav.html
+++ b/_nav.html
@@ -60,9 +60,7 @@
{{/if}}
diff --git a/config.html b/config.html
index 9927c5e..f5bb3ec 100644
--- a/config.html
+++ b/config.html
@@ -12,14 +12,21 @@
{{/if}}
{{* lecture config (défaut ou enregistrée) *}}
-{{:include file="./_get_config.html" keep="config, directions"}}
+{{:include file="./_get_config.html" keep="config_defaut, config, directions"}}
+
+{{* interdire la modification et la suppression des types de mouvement prédéfinis *}}
+{{#foreach from=$directions key="direction"}}
+ {{:assign var="nature" from="config_defaut.%ss"|args:$direction}}
+ {{#foreach from=$nature item="elem"}}
+ {{:assign var="default_keys." value=$key}}
+ {{/foreach}}
+{{/foreach}}
{{#foreach from=$directions key="direction" item="item"}}
{{* types de mouvements qui ne peuvent être supprimés *}}
{{#load type="movement" where="$$.direction='%s'"|args:$direction group="$$.operation"}}
- {{:assign var="op_label" from="config.%s_nature.%s.label"|args:$direction:$operation}}
- {{:assign var="locked_%ss."|args:$direction value=$op_label}}
+ {{:assign var="locked." value=$operation}}
{{/load}}
{{$item|ucfirst}}s
@@ -38,11 +45,12 @@
{{$label}} |
{{$type}} |
- {{:assign var="locked" from="locked_%ss"|args:$direction}}
- {{if ! $locked|has:$label}}
+ {{if ! $default_keys|has:$key && ! $locked|has:$key}}
{{:linkbutton label="Supprimer" shape="delete" href="config/delete_movement_type.html?dir=%s&op_key=%s"|args:$direction:$key target="_dialog"}}
{{/if}}
+ {{if ! $default_keys|has:$key}}
{{:linkbutton label="Modifier" shape="edit" href="config/modify_movement_type.html?dir=%s&op_key=%s"|args:$direction:$key target="_dialog"}}
+ {{/if}}
|
{{/foreach}}
diff --git a/config/delete_movement_type.html b/config/delete_movement_type.html
index 4f0ddaa..801f821 100644
--- a/config/delete_movement_type.html
+++ b/config/delete_movement_type.html
@@ -10,16 +10,28 @@
{{* lecture config (défaut ou enregistrée) *}}
-{{:include file="../_get_config.html" keep="config, directions"}}
+{{:include file="../_get_config.html" keep="config_defaut, config, directions"}}
+
+{{if ! $directions|has_key:$_GET.dir}}
+ {{:error message="Direction « %s » inconnue !"|args:$_GET.dir}}
+{{/if}}
+
+{{* interdire la suppression des types de mouvement prédéfinis *}}
+{{:assign var="nature" from="config_defaut.%ss"|args:$_GET.dir}}
+{{#foreach from=$nature item="elem"}}
+ {{:assign var="default_keys." value=$key}}
+{{/foreach}}
+{{if $default_keys|has:$_GET.op_key}}
+ {{:error message="Ce type de mouvement ne peut être supprimé"}}
+{{/if}}
{{#form on="delete"}}
{{#foreach from=$directions key="direction"}}
{{:assign var="nature" from="config.%s_nature"|args:$direction}}
- {{#foreach from=$nature key="key"}}
+ {{#foreach from=$nature key="key" item="elem"}}
{{if $_GET.dir == $direction && $key != $_GET.op_key || $_GET.dir != $direction}}
+ {{:assign var="%s_nature"|args:$direction value=$elem}}
{{:assign var="%s_nature.key"|args:$direction value=$key}}
- {{:assign var="%s_nature.label"|args:$direction value=$label}}
- {{:assign var="%s_nature.type"|args:$direction value=$type}}
{{:assign var="%s_natures."|args:$direction from="%s_nature"|args:$direction}}
{{/if}}
{{/foreach}}
diff --git a/config/modify_movement_type.html b/config/modify_movement_type.html
index 89d9970..5d99d4d 100644
--- a/config/modify_movement_type.html
+++ b/config/modify_movement_type.html
@@ -11,21 +11,34 @@
{{* lecture config (défaut ou enregistrée) *}}
{{:include file="../_get_config.html" keep="config, directions"}}
+{{if ! $directions|has_key:$_GET.dir}}
+ {{:error message="Direction « %s » inconnue !"|args:$_GET.dir}}
+{{/if}}
+
+{{* interdire la modification des types de mouvement prédéfinis *}}
+{{:assign var="nature" from="config_defaut.%ss"|args:$_GET.dir}}
+{{#foreach from=$nature item="elem"}}
+ {{:assign var="default_keys." value=$key}}
+{{/foreach}}
+{{if $default_keys|has:$_GET.op_key}}
+ {{:error message="Ce type de mouvement ne peut être modifié"}}
+{{/if}}
+
{{#form on="save"}}
{{#foreach from=$directions key="direction"}}
{{:assign var="nature" from="config.%s_nature"|args:$direction}}
- {{#foreach from=$nature key="key"}}
- {{:assign var="%s_nature.key"|args:$direction value=$key}}
- {{if $_GET.dir == $direction}}
- {{if $key == $_GET.op_key}}
- {{:assign var="%s_nature.label"|args:$direction value=$_POST.name|trim}}
- {{else}}
- {{:assign var="%s_nature.label"|args:$direction value=$label}}
- {{/if}}
- {{else}}
- {{:assign var="%s_nature.label"|args:$direction value=$label}}
+ {{#foreach from=$nature key="key" item="elem"}}
+ {{if $_GET.dir == $direction && $_POST.name|trim|tolower == $elem.label|trim|tolower}}
+ {{:error message="Le libellé « %s » est déjà présent"|args:$_POST.name}}
{{/if}}
- {{:assign var="%s_nature.type"|args:$direction value=$type}}
+ {{if $_GET.dir == $direction && $key == $_GET.op_key}}
+ {{:assign label=$_POST.name|trim}}
+ {{else}}
+ {{:assign label=$elem.label}}
+ {{/if}}
+ {{:assign var="%s_nature"|args:$direction value=$elem}}
+ {{:assign var="%s_nature.label"|args:$direction value=$label}}
+ {{:assign var="%s_nature.key"|args:$direction value=$key}}
{{:assign var="%s_natures."|args:$direction from="%s_nature"|args:$direction}}
{{/foreach}}
{{/foreach}}
From bc2aefe26acf99d45b7b2ec821d6d091d353a9b6 Mon Sep 17 00:00:00 2001
From: Jean-Christophe Engel
Date: Mon, 9 Feb 2026 14:50:04 +0100
Subject: [PATCH 2/2] Ajout saisie tarif des sorties temporaires
---
config/add_movement_type.html | 79 ++++++++++++++++++++++++---------
config/misc.html | 42 ++++++++++++++----
movements/output_equipment.html | 63 ++++++++++++++++++++++----
3 files changed, 146 insertions(+), 38 deletions(-)
diff --git a/config/add_movement_type.html b/config/add_movement_type.html
index 06881dc..c5e827f 100644
--- a/config/add_movement_type.html
+++ b/config/add_movement_type.html
@@ -12,18 +12,28 @@
{{* lecture config *}}
{{:include file="../_get_config.html" keep="config, directions, config_defaut"}}
+{{if ! $directions|has_key:$_GET.dir}}
+ {{:error message="Direction « %s » inconnue !"|args:$_GET.dir}}
+{{/if}}
+
{{#form on="save"}}
+ {{if $_POST.output_fields.type == "temporaire"}}
+ {{* vérifier si le tarif a été choisi *}}
+ {{if $_POST.tarif == null}}
+ {{:error message="Vous n'avez pas choisi le tarif"}}
+ {{/if}}
+ {{/if}}
+
{{* vérifier s'il existe un libellé de même nom dans la même direction *}}
{{#foreach from=$directions key="direction"}}
{{:assign var="nature" from="config.%s_nature"|args:$direction}}
- {{#foreach from=$nature key="key"}}
+ {{#foreach from=$nature key="key" item="elem"}}
{{:assign var="fields" from="_POST.%s_fields"|args:$_GET.dir}}
- {{if $_GET.dir == $direction && $label|trim|tolower == $fields.label|trim|tolower}}
- {{:error message="Ce libellé est déjà présent"}}
+ {{if $_GET.dir == $direction && $fields.label|trim|tolower == $elem.label|trim|tolower}}
+ {{:error message="Le libellé « %s » est déjà présent"|args:$fields.label}}
{{/if}}
+ {{:assign var="%s_nature"|args:$direction value=$elem}}
{{:assign var="%s_nature.key"|args:$direction value=$key}}
- {{:assign var="%s_nature.label"|args:$direction value=$label}}
- {{:assign var="%s_nature.type"|args:$direction value=$type}}
{{:assign var="%s_natures."|args:$direction from="%s_nature"|args:$direction}}
{{/foreach}}
@@ -34,6 +44,13 @@
{{:assign var="%s_nature.key"|args:$direction value=""|uuid}}
{{:assign var="%s_nature.label"|args:$direction value=$newlabel}}
{{:assign var="%s_nature.type"|args:$direction from="_POST.%s_fields.type"|args:$direction}}
+ {{if $_POST.output_fields != null}}
+ {{if $_POST.output_fields.type == "temporaire"}}
+ {{:assign var="output_nature.fee" value=$_POST.tarif}}
+ {{else}}
+ {{:assign var="output_nature.fee" value=null}}
+ {{/if}}
+ {{/if}}
{{:assign var="%s_natures."|args:$direction from="%s_nature"|args:$direction}}
{{/if}}
{{/foreach}}
@@ -104,28 +121,28 @@
{{/if}}
+
+
diff --git a/config/misc.html b/config/misc.html
index d49ef65..f58c655 100644
--- a/config/misc.html
+++ b/config/misc.html
@@ -2,27 +2,53 @@
{{#restrict block=true section="accounting" level="write"}}{{/restrict}}
-{{:admin_header title="Configuration" current="module_equipment"}}
+{{* lecture config (défaut ou enregistrée) *}}
+{{:include file="../_get_config.html" keep="loan_duration"}}
{{#form on="save"}}
+ {{* vérifier si les boutons ont été cochés *}}
+ {{#foreach from=$module.config.output_nature item="elem"}}
+ {{if $elem.type == 'temporaire'}}
+ {{if $_POST|has_key:$elem.key}}
+ {{:assign var="fee" from="_POST.%s"|args:$elem.key}}
+ {{:assign var="elem" key=$elem.key label=$elem.label type=$elem.type fee=$fee}}
+ {{else}}
+ {{:error message="Vous n'avez pas fait de choix pour la sortie « %s »"|args:$elem.label}}
+ {{/if}}
+ {{/if}}
+ {{:assign var="output_nature." value=$elem}}
+ {{/foreach}}
+
{{:save
- key="config"
- loan_duration=$_POST.loan_duration
+ key="config"
+ output_nature=$output_nature
+ loan_duration=$_POST.loan_duration
}}
+
{{/form}}
-{{* barre de navigation *}}
{{:include file="../_nav.html" current="config" subcurrent="divers"}}
+{{:admin_header title="Configuration" current="module_equipment"}}
+{{:form_errors}}
{{if $_GET.ok}}
Configuration enregistrée.
{{/if}}
-{{* lecture config (défaut ou enregistrée) *}}
-{{:include file="../_get_config.html" keep="loan_duration"}}
-