From 795e55e172866d027e1faaa4b8f04a3174b2561b Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 29 Oct 2024 11:57:14 +0100 Subject: [PATCH] =?UTF-8?q?v=C3=A9rification=20ajout=20mat=C3=A9riel=20en?= =?UTF-8?q?=20double?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modifier_materiel.html | 7 ++- mouvements/ajouter_entree.html | 93 ++++++++++++++++++++++------------ 2 files changed, 67 insertions(+), 33 deletions(-) diff --git a/modifier_materiel.html b/modifier_materiel.html index 1861be0..22022b3 100644 --- a/modifier_materiel.html +++ b/modifier_materiel.html @@ -1,5 +1,10 @@ {{* -*- brindille -*- *}} +{{* + Paramètres : + - key : clé du matériel à modifier +*}} + {{:admin_header title="Modifier matériel" current="module_equipment"}} {{:assign equipment_key=$_GET.key|trim}} @@ -49,7 +54,7 @@ category=$category.key designation=$_POST.designation|trim }} - {{:redirect force="index.html?ok=1"}} + {{:redirect force="index.html?ok=1&msg=modification"}} {{else}} {{:form_errors}} diff --git a/mouvements/ajouter_entree.html b/mouvements/ajouter_entree.html index 9d23b66..7c7d72b 100644 --- a/mouvements/ajouter_entree.html +++ b/mouvements/ajouter_entree.html @@ -17,6 +17,15 @@ {{/if}} {{/foreach}} +{{* lister les catégories et les matériels disponibles *}} +{{#load type="category" assign="category" order="$$.name"}} + {{:assign nom_cat=$category.name}} + {{:assign var="categories.%s"|args:$category.key value=$category.name}} + {{#load type="equipment" where="$$.category = :key" :key=$category.key assign="equipment"}} + {{:assign var="equipments.%s.%s"|args:$nom_cat:$equipment.key value=$equipment.designation}} + {{/load}} +{{/load}} + {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} @@ -42,26 +51,42 @@ {{if $_POST.equipment == null}} {{* récupérer les infos de la catégorie *}} - {{#load type="category" key=$_POST.category assign="category"}} + {{#load type="category" key=$_POST.category assign="post_category"}} {{/load}} {{* vérifier l'existence d'un matériel du même nom *}} - {{#load type="equipment" where="lower($$.designation) = :name" :name=$_POST.designation|trim|tolower}} + {{:assign post_mat=$_POST.designation|trim|tolower|ucfirst}} + {{:assign present=false}} + {{#foreach from=$equipments key=nom_cat item=eqpmt}} + {{#foreach from=$eqpmt key=key item=nom}} + {{if $_POST.designation|trim|tolower == $nom|tolower}} + {{:assign equipment_key=$key}} + {{:assign present=true}} + {{:break}} + {{/if}} + {{/foreach}} + {{if $present}}{{:break}}{{/if}} + {{/foreach}} + {{if $present}} + {{* voir si le matériel existe dans une autre catégorie *}} + {{if $nom_cat != $post_category.name}} + {{:assign message="Le matériel « %s » est déjà présent dans la catégorie « %s » ..."|args:$post_mat:$nom_cat}} + {{:error message=$message}} + {{/if}} {{* utiliser la clé du matériel trouvé *}} - {{:assign equipment_key=$key}} + {{else}} {{* nouveau matériel => nouvelle clé *}} {{:assign equipment_key=""|uuid}} - {{* enregistrer un nouveau matériel *}} {{:save - key=$equipment_key - validate_schema="../equipment.schema.json" - type="equipment" - category=$category.key - designation=$_POST.designation|trim + key=$equipment_key + validate_schema="../equipment.schema.json" + type="equipment" + category=$category.key + designation=$post_mat }} - {{/load}} + {{/if}} {{/if}} {{* Enregistrer le mouvement *}} @@ -80,28 +105,18 @@ comment=$_POST.remarques|trim }} - {{:assign msg="Ajout de l'entrée de « %s (%d) en date du %s » effectué"|args:$_POST.designation:$_POST.quantite:$_POST.date}} - {{:debug msg=$msg}} - {{*:redirect force="./index.html?ok=1&msg=%s"|args:$msg*}} + {{:assign msg="Ajout de l'entrée « %s (%d) en date du %s » effectué"|args:$post_mat:$_POST.quantite:$_POST.date}} + {{:redirect force="../index.html?ok=1&msg=%s"|args:$msg}} {{else}} {{:form_errors}} {{/form}} -{{* lister les catégories disponibles *}} -{{#load type="category" assign="category" order="$$.name"}} - {{:assign nom_cat=$category.name}} - {{:assign var="categories.%s"|args:$category.key value=$category.name}} - {{#load type="equipment" where="$$.category = :key" :key=$category.key assign="equipment"}} - {{:assign var="equipments.%s.%s"|args:$nom_cat:$equipment.key value=$equipment.designation}} - {{/load}} -{{/load}} - {{if $categories != null}} - {{* formulaire d'ajout de matériel *}} + {{* formulaire ajout matériel *}}
- Ajouter une entrée d'un matériel non répertorié + Ajouter une entrée de matériel
{{:input type="select" name="type_operation" label="Type" required=true options=$input_labels}} {{:input type="date" name="date" label="Date" required=true default=$now|date_short}} @@ -109,22 +124,36 @@
+ {{if $equipments != null}} +

Choisir un matériel dans la liste ou Sélectionner une catégorie et indiquer le nom du nouveau matériel

+ {{/if}}
- Choisir un matériel dans la liste ou sélectionner une catégorie et indiquer le nom du nouveau matériel -
+
{{if $equipments != null}}
-
+ Choisir un matériel dans la liste +
{{:input type="select_groups" name="equipment" label="Matériel" options=$equipments}} -
+
+

 

{{/if}}
-
- {{:input type="select" name="category" label="Catégorie" options=$categories}} - {{:input type="text" name="designation" label="Désignation"}} -
+ Sélectionner une catégorie et indiquer le nom du nouveau matériel +
+
+ {{if $equipments == null}} + {{:assign required=true}} + {{else}} + {{:assign required=false}} + {{/if}} + {{:input type="select" name="category" label="Catégorie" options=$categories required=$required}} + {{:input type="text" name="designation" label="Désignation" required=$required}} +
+
+ +
{{:input type="textarea" name="remarques" label="Remarques" cols="40", rows="3" required=false}}