From 794094b7124cdb8f9cff4ca0ab899181383cc2e6 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 30 Nov 2023 18:14:46 +0100 Subject: [PATCH] =?UTF-8?q?Gestion=20config=20par=20d=C3=A9faut=20+=20ajou?= =?UTF-8?q?t=20contr=C3=B4les?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _calcul_dispo.html | 7 +- _get_config.html | 36 +++++++++ mouvements/entrees/delete_entree.html | 7 +- mouvements/entrees/non_repertorie.html | 5 +- mouvements/entrees/repertorie.html | 56 +++++++------- mouvements/entrees/retour.html | 99 +++++++++++------------- mouvements/modifier_mouvement.html | 7 +- mouvements/sorties/delete_sortie.html | 9 ++- mouvements/sorties/emprunte.html | 79 ++++++++++--------- mouvements/sorties/stock_disponible.html | 75 ++++++++++-------- mouvements/valider_modification.html | 7 +- 11 files changed, 226 insertions(+), 161 deletions(-) create mode 100644 _get_config.html diff --git a/_calcul_dispo.html b/_calcul_dispo.html index 9e015a0..f4f46e9 100644 --- a/_calcul_dispo.html +++ b/_calcul_dispo.html @@ -82,9 +82,12 @@ {{:assign nonproprio=0}} {{/if}} + {{* récupérer la config des entrées/sorties *}} + {{:include file="/%s/_get_config.html"|args:$module.name keep="config"}} + {{if $direction === 'entrée'}} {{* chercher le type d'entrée parmi les types de la config *}} - {{#foreach from=$module.config.inputNature item="elem"}} + {{#foreach from=$config.inputNature item="elem"}} {{if $operation == $elem.label}} {{if $elem.type == 'définitif'}} {{:assign stock="%d+%d"|math:$stock:$nombre}} @@ -107,7 +110,7 @@ {{/foreach}} {{elseif $direction === 'sortie'}} {{* chercher le type de sortie parmi les types de la config *}} - {{#foreach from=$module.config.outputNature item="elem"}} + {{#foreach from=$config.outputNature item="elem"}} {{if $operation == $elem.label}} {{if $elem.type == 'définitif'}} {{:assign stock="%d-%d"|math:$stock:$nombre}} diff --git a/_get_config.html b/_get_config.html new file mode 100644 index 0000000..95304cf --- /dev/null +++ b/_get_config.html @@ -0,0 +1,36 @@ +{{* + Récupérer soit la config enregistrée, soit la config par défaut + résultat : config.inputNature et config.outputNature +*}} + +{{* config par défaut *}} +{{:read file="/%s/defaut.json"|args:$module.name assign="config_defaut"}} +{{:assign config_defaut=$config_defaut|json_decode}} + +{{if $module.config.inputNature != null}} + {{:assign var=config.inputNature value=$module.config.inputNature}} +{{else}} + {{* pas de config enregistrée : utiliser la config par défaut *}} + {{#foreach from=$config_defaut.entrées item="elem"}} + {{#foreach from=$elem key=label item=value}} + {{:assign var="item.label" value=$label}} + {{:assign var="item.type" value=$value}} + {{:assign var="config.inputNature." value=$item}} + {{/foreach}} + {{/foreach}} +{{/if}} + +{{if $module.config.outputNature != null}} + {{:assign var=config.outputNature value=$module.config.outputNature}} +{{else}} + {{* pas de config enregistrée : utiliser la config par défaut *}} + {{#foreach from=$config_defaut.sorties item="elem"}} + {{#foreach from=$elem key=label item=value}} + {{:assign var="item.label" value=$label}} + {{:assign var="item.type" value=$value}} + {{:assign var="config.outputNature." value=$item}} + {{/foreach}} + {{/foreach}} +{{/if}} + + diff --git a/mouvements/entrees/delete_entree.html b/mouvements/entrees/delete_entree.html index ed0711f..cf94703 100644 --- a/mouvements/entrees/delete_entree.html +++ b/mouvements/entrees/delete_entree.html @@ -18,6 +18,9 @@ {{#form on="delete"}} + {{* récupérer la config des entrées/sorties *}} + {{:include file="/%s/_get_config.html"|args:$module.name keep="config"}} + {{* vérifier s'il est possible de supprimer l'entrée *}} {{:assign dispo=0}} {{:assign nonprop=0}} @@ -33,7 +36,7 @@ {{* ce n'est pas le mouvement à supprimer : cumuler les entrées/sorties *}} {{if $movement.direction == 'entrée'}} {{* chercher le type d'entrée parmi les types de la config *}} - {{#foreach from=$module.config.inputNature item="elem"}} + {{#foreach from=$config.inputNature item="elem"}} {{if $movement.inputNature == $elem.label}} {{if $elem.type == 'temporaire'}} {{:assign nonprop="%d+%d"|math:$nonprop:$movement.amount}} @@ -44,7 +47,7 @@ {{/foreach}} {{elseif $movement.direction == 'sortie'}} {{* chercher le type de sortie parmi les types de la config *}} - {{#foreach from=$module.config.outputNature item="elem"}} + {{#foreach from=$config.outputNature item="elem"}} {{if $movement.outputNature == $elem.label}} {{if $elem.type == 'retour'}} {{:assign nonprop="%d-%d"|math:$nonprop:$movement.amount}} diff --git a/mouvements/entrees/non_repertorie.html b/mouvements/entrees/non_repertorie.html index 6626d64..be08ae6 100644 --- a/mouvements/entrees/non_repertorie.html +++ b/mouvements/entrees/non_repertorie.html @@ -10,8 +10,11 @@ {{/if}} +{{* récupérer la config des entrées/sorties *}} +{{:include file="/%s/_get_config.html"|args:$module.name keep="config"}} + {{* types d'entrées *}} -{{#foreach from=$module.config.inputNature item="elem"}} +{{#foreach from=$config.inputNature item="elem"}} {{if $elem.type != 'retour'}} {{:assign var='types_entrees.' value="%s"|args:$elem.label}} {{/if}} diff --git a/mouvements/entrees/repertorie.html b/mouvements/entrees/repertorie.html index 8e8865f..e047aa3 100644 --- a/mouvements/entrees/repertorie.html +++ b/mouvements/entrees/repertorie.html @@ -10,8 +10,11 @@ {{/if}} +{{* récupérer la config des entrées/sorties *}} +{{:include file="/%s/_get_config.html"|args:$module.name keep="config"}} + {{* types d'entrées *}} -{{#foreach from=$module.config.inputNature item="elem"}} +{{#foreach from=$config.inputNature item="elem"}} {{if $elem.type != 'retour'}} {{:assign var='types_entrees.' value="%s"|args:$elem.label}} {{/if}} @@ -53,31 +56,32 @@ {{/load}} {{* Vérifier s'il y a au moins un matériel enregistré *}} -{{if $equipments|count == 0}} - {{:error message="Erreur : il n'y a aucun matériel"}} +{{if $equipments != null}} + + {{* formulaire d'entrée de matériel *}} + +
+ +
+ Ajouter une entrée d'un matériel répertorié + {{:input type="select" name="type_operation" label="Type" required=true options=$types_entrees}} + {{:input type="date" name="date" label="Date" required=true default=$now|date_short}} + {{:input type="number" name="quantite" label="Quantité" required=true default=1}} + +
+ Matériel + {{:input type="select_groups" name="equipment" label="Matériel" required=true options=$equipments}} + {{:input type="textarea" name="remarques" label="Remarques" cols="40", rows="3" required=false}} +
+
+ +

+ {{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}} +

+ +
+{{else}} +

Il n'y a aucun matériel

{{/if}} -{{* formulaire d'entrée de matériel *}} - -
- -
- Ajouter une entrée d'un matériel répertorié - {{:input type="select" name="type_operation" label="Type" required=true options=$types_entrees}} - {{:input type="date" name="date" label="Date" required=true default=$now|date_short}} - {{:input type="number" name="quantite" label="Quantité" required=true default=1}} - -
- Matériel - {{:input type="select_groups" name="equipment" label="Matériel" required=true options=$equipments}} - {{:input type="textarea" name="remarques" label="Remarques" cols="40", rows="3" required=false}} -
-
- -

- {{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}} -

- -
- {{:admin_footer}} diff --git a/mouvements/entrees/retour.html b/mouvements/entrees/retour.html index 3961961..5bc47a0 100644 --- a/mouvements/entrees/retour.html +++ b/mouvements/entrees/retour.html @@ -10,8 +10,11 @@ {{/if}} +{{* récupérer la config des entrées/sorties *}} +{{:include file="/%s/_get_config.html"|args:$module.name keep="config"}} + {{* types d'entrées *}} -{{#foreach from=$module.config.inputNature item="elem"}} +{{#foreach from=$config.inputNature item="elem"}} {{if $elem.type == 'retour'}} {{:assign var='types_entrees.' value="%s"|args:$elem.label}} {{/if}} @@ -63,59 +66,49 @@ {{* Extraire et compiler les infos de la base *}} {{:include file="/%s/_calcul_dispo.html"|args:$module.name keep="equipments"}} -{{* déterminer la quantité des matériels sortis temporairement *}} -{{#foreach from=$equipments key="cat_key" item="category"}} - {{#foreach from=$category.eqpmt key="eqpmt_key" item="eqpmt"}} - {{:assign quantite=$eqpmt.exterieur}} - {{if $quantite != 0}} - {{:assign - var="temporaire.%s.%s"|args:$category.name:$eqpmt_key - value="%s (quantité : %d)"|args:$eqpmt.designation:$quantite - }} - {{/if}} +{{if $equipments !== null}} + + {{* déterminer la quantité des matériels sortis temporairement *}} + {{#foreach from=$equipments key="cat_key" item="category"}} + {{#foreach from=$category.eqpmt key="eqpmt_key" item="eqpmt"}} + {{:assign quantite=$eqpmt.exterieur}} + {{if $quantite != 0}} + {{:assign + var="temporaire.%s.%s"|args:$category.name:$eqpmt_key + value="%s (quantité : %d)"|args:$eqpmt.designation:$quantite + }} + {{/if}} + {{/foreach}} {{/foreach}} -{{/foreach}} -{{if $temporaire === null}} - {{:error message="Le matériel choisi (%s) n'est pas sorti à la date du %s"|args:$designation:$_POST.date}} + + {{if $temporaire != null}} + + {{* formulaire d'entrée de matériel *}} +
+ +
+ Ajouter une entrée pour un retour de matériel + {{:input type="select" name="type_operation" label="Type" required=true options=$types_entrees}} + {{:input type="date" name="date" label="Date" required=true default=$now|date_short}} + {{:input type="number" name="quantite" label="Quantité" required=true default=1}} + +
+ Matériel + {{:input type="select_groups" name="equipment" label="Matériel" required=true options=$temporaire}} + {{:input type="textarea" name="remarques" label="Remarques" cols="40", rows="3" required=false}} +
+
+ +

+ {{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}} +

+ +
+ {{else}} +

Il n'y a aucun matériel

+ {{/if}} +{{else}} +

Il n'y a aucun matériel

{{/if}} -{{* lister les catégories et matériels associés *}} -{{* -{{#load type="category" assign="category" order="$$.name"}} - {{:assign nom_cat=$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}} -*}} - -{{* Vérifier s'il y a au moins un matériel enregistré *}} -{{* -{{if $equipments|count == 0}} - {{:error message="Erreur : il n'y a aucun matériel"}} -{{/if}} -*}} -{{* formulaire d'entrée de matériel *}} - -
- -
- Ajouter une entrée pour un retour de matériel - {{:input type="select" name="type_operation" label="Type" required=true options=$types_entrees}} - {{:input type="date" name="date" label="Date" required=true default=$now|date_short}} - {{:input type="number" name="quantite" label="Quantité" required=true default=1}} - -
- Matériel - {{:input type="select_groups" name="equipment" label="Matériel" required=true options=$temporaire}} - {{:input type="textarea" name="remarques" label="Remarques" cols="40", rows="3" required=false}} -
-
- -

- {{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}} -

- -
- {{:admin_footer}} diff --git a/mouvements/modifier_mouvement.html b/mouvements/modifier_mouvement.html index 7f8e306..6c7b588 100644 --- a/mouvements/modifier_mouvement.html +++ b/mouvements/modifier_mouvement.html @@ -25,9 +25,12 @@ {{:assign date_init=$mvt_modif.date|date_short}} {{:assign key_eqpmt_init=$mvt_modif.equipment}} +{{* récupérer la config des entrées/sorties *}} +{{:include file="/%s/_get_config.html"|args:$module.name keep="config"}} + {{if $direction == "entrée"}} {{* types d'entrées *}} - {{#foreach from=$module.config.inputNature key="rang" item="elem"}} + {{#foreach from=$config.inputNature key="rang" item="elem"}} {{:assign var='types_entrees.' value="%s"|args:$elem.label}} {{if $elem.label == $mvt_modif.inputNature}} {{:assign type_defaut=$rang}} @@ -35,7 +38,7 @@ {{/foreach}} {{else}} {{* types de sorties *}} - {{#foreach from=$module.config.outputNature key="rang" item="elem"}} + {{#foreach from=$config.outputNature key="rang" item="elem"}} {{:assign var='types_sorties.' value="%s"|args:$elem.label}} {{if $elem.label == $mvt_modif.outputNature}} {{:assign type_defaut=$rang}} diff --git a/mouvements/sorties/delete_sortie.html b/mouvements/sorties/delete_sortie.html index 33de9d8..9c3dc21 100644 --- a/mouvements/sorties/delete_sortie.html +++ b/mouvements/sorties/delete_sortie.html @@ -18,9 +18,12 @@ {{#form on="delete"}} + {{* récupérer la config des entrées/sorties *}} + {{:include file="/%s/_get_config.html"|args:$module.name keep="config"}} + {{* déterminer s'il s'agit d'une sortie temporaire *}} {{:assign temporaire=false}} - {{#foreach from=$module.config.outputNature item="elem"}} + {{#foreach from=$config.outputNature item="elem"}} {{if $mvt_suppr.outputNature == $elem.label && $elem.type == 'temporaire'}} {{:assign temporaire=true}} {{:break}} @@ -40,14 +43,14 @@ {{* ce n'est pas le mouvement à supprimer : cumuler les entrées/sorties *}} {{if $movement.direction == 'entrée'}} {{* chercher le type d'entrée parmi les types de la config *}} - {{#foreach from=$module.config.inputNature item="elem"}} + {{#foreach from=$config.inputNature item="elem"}} {{if $movement.inputNature == $elem.label && $elem.type == 'retour'}} {{:assign exterieur="%d-%d"|math:$exterieur:$movement.amount}} {{/if}} {{/foreach}} {{elseif $movement.direction == 'sortie'}} {{* chercher le type de sortie parmi les types de la config *}} - {{#foreach from=$module.config.outputNature item="elem"}} + {{#foreach from=$config.outputNature item="elem"}} {{if $movement.outputNature == $elem.label && $elem.type == 'temporaire'}} {{:assign exterieur="%d+%d"|math:$exterieur:$movement.amount}} {{/if}} diff --git a/mouvements/sorties/emprunte.html b/mouvements/sorties/emprunte.html index 6d1076e..edfb52d 100644 --- a/mouvements/sorties/emprunte.html +++ b/mouvements/sorties/emprunte.html @@ -10,8 +10,11 @@ {{/if}} +{{* récupérer la config des entrées/sorties *}} +{{:include file="/%s/_get_config.html"|args:$module.name keep="config"}} + {{* types de sorties *}} -{{#foreach from=$module.config.outputNature item="elem"}} +{{#foreach from=$config.outputNature item="elem"}} {{if $elem.type == 'retour'}} {{:assign var='types_sorties.' value="%s"|args:$elem.label}} {{/if}} @@ -62,44 +65,48 @@ {{* Extraire et compiler les infos de la base *}} {{:include file="/%s/_calcul_dispo.html"|args:$module.name keep="equipments"}} -{{* calculer les quantité de matériels dont l'asso n'est pas propriétaire *}} -{{#foreach from=$equipments key="cat_key" item="category"}} - {{#foreach from=$category.eqpmt key="eqpmt_key" item="eqpmt"}} - {{:assign quantite="%d-%d"|math:$eqpmt.nonproprio:$eqpmt.retour}} - {{if $quantite != 0}} - {{:assign - var="temporaire.%s.%s"|args:$category.name:$eqpmt_key - value="%s (quantité : %d)"|args:$eqpmt.designation:$quantite - }} - {{/if}} +{{if $equipments !== null}} + {{* calculer les quantité de matériels dont l'asso n'est pas propriétaire *}} + {{#foreach from=$equipments key="cat_key" item="category"}} + {{#foreach from=$category.eqpmt key="eqpmt_key" item="eqpmt"}} + {{:assign quantite="%d-%d"|math:$eqpmt.nonproprio:$eqpmt.retour}} + {{if $quantite != 0}} + {{:assign + var="temporaire.%s.%s"|args:$category.name:$eqpmt_key + value="%s (quantité : %d)"|args:$eqpmt.designation:$quantite + }} + {{/if}} + {{/foreach}} {{/foreach}} -{{/foreach}} -{{if $temporaire === null}} - {{:error message="Le matériel choisi (%s) n'est pas présent à la date du %s"|args:$designation:$_POST.date}} + + {{if $temporaire != null}} + {{* formulaire de sortie de matériel *}} +
+ +
+ Ajouter une sortie d'un matériel disponible en stock + {{:input type="select" name="type_operation" label="Type" required=true options=$types_sorties}} + {{:input type="date" name="date" label="Date de sortie" required=true default=$now|date_short}} + {{:input type="number" name="quantite" label="Quantité" required=true default=1 min=1}} +
+ Matériel +

La quantité disponible est celle à la date du jour

+ {{:input type="select_groups" name="equipment" label="Matériel" required=true options=$temporaire onchange="fixerValeurMax('f_equipment', 'f_quantite')"}} + {{:input type="textarea" name="remarques" label="Remarques" cols="40" rows="3" required=false}} +
+
+ +

+ {{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}} +

+
+ {{else}} +

Il n'y a aucun matériel

+ {{/if}} +{{else}} +

Il n'y a aucun matériel

{{/if}} -{{* formulaire de sortie de matériel *}} -
- -
- Ajouter une sortie d'un matériel disponible en stock - {{:input type="select" name="type_operation" label="Type" required=true options=$types_sorties}} - {{:input type="date" name="date" label="Date de sortie" required=true default=$now|date_short}} - {{:input type="number" name="quantite" label="Quantité" required=true default=1 min=1}} -
- Matériel -

La quantité disponible est celle à la date du jour

- {{:input type="select_groups" name="equipment" label="Matériel" required=true options=$temporaire onchange="fixerValeurMax('f_equipment', 'f_quantite')"}} - {{:input type="textarea" name="remarques" label="Remarques" cols="40" rows="3" required=false}} -
-
- -

- {{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}} -

- -
-