From 1478f7dbdcf943e036889947b5b13d056d63dba7 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Fri, 28 Feb 2025 22:33:37 +0100 Subject: [PATCH 1/3] suppression fichiers inutiles --- mouvements/entrees/_temporaire.html | 14 -------------- mouvements/sorties/_temporaire.html | 14 -------------- 2 files changed, 28 deletions(-) delete mode 100644 mouvements/entrees/_temporaire.html delete mode 100644 mouvements/sorties/_temporaire.html diff --git a/mouvements/entrees/_temporaire.html b/mouvements/entrees/_temporaire.html deleted file mode 100644 index e2b2001..0000000 --- a/mouvements/entrees/_temporaire.html +++ /dev/null @@ -1,14 +0,0 @@ -{{* -*- brindille -*- *}} - -{{* déterminer la quantité des matériels sortis temporairement *}} -{{#foreach from=$cumul_mvt key="cat_key" item="cat_elem"}} - {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} - {{:assign quantite=$eqpmt.exterieur}} - {{if $quantite != 0}} - {{:assign - var="temporaire.%s.%s"|args:$cat_elem.name:$eqpmt_key - value="%s (quantité : %d)"|args:$eqpmt.name:$quantite - }} - {{/if}} - {{/foreach}} -{{/foreach}} diff --git a/mouvements/sorties/_temporaire.html b/mouvements/sorties/_temporaire.html deleted file mode 100644 index ccc4377..0000000 --- a/mouvements/sorties/_temporaire.html +++ /dev/null @@ -1,14 +0,0 @@ -{{* -*- brindille -*- *}} - -{{* calculer les quantité de matériels dont l'asso n'est pas propriétaire *}} -{{#foreach from=$cumul_mvt key="cat_key" item="cat_elem"}} - {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} - {{:assign quantite="%d-%d"|math:$eqpmt.nonproprio:$eqpmt.retour}} - {{if $quantite != 0}} - {{:assign - var="temporaire.%s.%s"|args:$cat_elem.name:$eqpmt_key - value="%s (quantité : %d)"|args:$eqpmt.name:$quantite - }} - {{/if}} - {{/foreach}} -{{/foreach}} From d241546371c6c860bfa24bc8f2bf97842b1a642d Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 5 Mar 2025 20:26:33 +0100 Subject: [PATCH 2/3] modification affichage suppression --- mouvements/supprimer_mouvement.html | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mouvements/supprimer_mouvement.html b/mouvements/supprimer_mouvement.html index 25f6404..75c63c2 100644 --- a/mouvements/supprimer_mouvement.html +++ b/mouvements/supprimer_mouvement.html @@ -17,9 +17,10 @@ {{:error message="Aucun matériel avec la clé « %s »"|args:$mvt_suppr.equipment}} {{/load}} +{{* récupérer la config des entrées/sorties *}} +{{:include file="../_get_config.html" keep="config"}} + {{#form on="delete"}} - {{* récupérer la config des entrées/sorties *}} - {{:include file="../_get_config.html" keep="config"}} {{* vérifier s'il est possible de supprimer le mouvement *}} {{if $mvt_suppr.direction == 'input'}} @@ -115,10 +116,11 @@ {{:form_errors}} {{:assign var="date_suppr" value="%s"|args:$mvt_suppr.date|date_short}} +{{:assign var="mvt_label" from="config.%s_nature.%s.label"|args:$mvt_suppr.direction:$mvt_suppr.operation}} {{:delete_form legend="Supprimer ?" - warning="Supprimer « %s (%d) en date du %s » ?"|args:$equipment.name:$mvt_suppr.amount:$date_suppr + warning="Supprimer le mouvement « %s de %s (quantité : %d) en date du %s » ?"|args:$mvt_label:$equipment.name:$mvt_suppr.amount:$date_suppr }} From ea57338cb82843eac2fbb8218c24e5388731b778 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 6 Mar 2025 10:05:30 +0100 Subject: [PATCH 3/3] Correction erreur validation retour --- mouvements/entrees/retour.html | 127 +++++++++++++++++---------- mouvements/valider_modification.html | 1 + 2 files changed, 83 insertions(+), 45 deletions(-) diff --git a/mouvements/entrees/retour.html b/mouvements/entrees/retour.html index 9f6daf4..347b8fd 100644 --- a/mouvements/entrees/retour.html +++ b/mouvements/entrees/retour.html @@ -13,55 +13,89 @@ {{* récupérer la config des entrées/sorties *}} {{:include file="../../_get_config.html" keep="config"}} -{{* types d'entrées *}} -{{#foreach from=$config.input_nature key=key}} - {{if $type == 'retour'}} - {{:assign var="input_labels.%s"|args:$key value=$label}} - {{/if}} -{{/foreach}} +{{* déterminer le matériel concerné par le mouvement *}} +{{#load key=$_GET.key assign="equipment"}}{{/load}} -{{* Traiter l'envoi du formulaire *}} +{{* + -------------------- Traiter l'envoi du formulaire -------------------- +*}} {{#form on="save"}} - {{* interdire date dans le futur *}} + {{* vérifier les données saisies *}} + {{if $_POST.amount <= 0}} + {{:error message="La quantité (%s) doit être strictement positive !!"|args:$_POST.amount}} + {{/if}} + {{if $_POST.date|parse_date|strtotime > $now}} {{:error message="Impossible de saisir une date dans le futur (%s)"|args:$_POST.date}} {{/if}} - {{* récupérer les infos du matériel *}} - {{#load type="equipment" key=$_GET.key assign="equipment"}} - {{:assign name=$equipment.name}} - {{/load}} + {{* préparer le nouveau mouvement *}} + {{:assign var="mvt_new.key" value=""|uuid}} + {{:assign var="mvt_new.direction" value="input"}} + {{:assign var="mvt_new.date" value=$_POST.date|parse_date}} + {{:assign var="mvt_new.operation" value=$_POST.operation}} + {{:assign var="mvt_new.amount" value=$_POST.amount}} - {{* Extraire et compiler les infos de la base *}} - {{:include - file="../../_calcul_dispo.html" - keep="equipments" - eqpmt_key=$_GET.key - date=$_POST.date|parse_date + {{* + lister les mouvements + - insérer le nouveau mvt à sa place par date croissante + *}} + {{:assign insere=false}} + {{#load + where=" + $$.type = 'movement' + AND + $$.equipment = :eqpmt_key" + :eqpmt_key=$equipment.key + order="$$.date" + assign="movement" }} - - {{* déterminer la quantité sortie temporairement de ce matériel à la date donnée *}} - {{:assign var=sorti from="equipments.%s.exterieur"|args:$_GET.key}} - - {{if $_POST.quantite|intval > $sorti}} - {{:error message="Erreur : la quantité indiquée (%s) est supérieure à celle sortie (%d) à la date du %s"|args:$_POST.quantite:$sorti:$_POST.date}} + {{if! $insere}} + {{if + $mvt_new.direction == "input" && $date >= $mvt_new.date || + $mvt_new.direction == "output" && $date > $mvt_new.date + }} + {{:assign var="movements_new." from=mvt_new}} + {{:assign insere=true}} + {{/if}} + {{/if}} + {{:assign var="movements_new." from=movement}} + {{/load}} + {{if ! $insere}} + {{:assign var="movements_new." from=mvt_new}} {{/if}} - {{* Enregistrer le mouvement *}} - {{:assign mvt_key=""|uuid}} - {{:save - key=$mvt_key - validate_schema="../movement.schema.json" - type="movement" - direction="input" - operation=$_POST.operation - amount=$_POST.quantite|intval - equipment=$equipment.key - date=$_POST.date|parse_date - comment=$_POST.remarques|trim + {{* Vérifier la cohérence des mouvements du matériel *}} + {{:include + file="../valider_modification.html" + keep="erreur, pb" + movements=$movements_new }} - {{:redirect force="../../historique.html?ok=1&key=%s&prop=1&msg=retour"|args:$_GET.key}} + {{if $erreur}} +

Impossible d'enregistrer ce mouvement. + {{if $pb.mvt.key != $mvt_new.key}} + {{:assign var="err_mvt_label" from="config.input_nature.%s.label"|args:$pb.mvt.operation}} +
Mouvement incompatible avec + « {{$err_mvt_label}} de {{$equipment.name}} (qté : {{$pb.mvt.amount}}) + en date du {{$pb.mvt.date|date_short}} ». + {{/if}} +

+ {{else}} + {{* vérification réussie : enregistrer le mouvement modifié *}} + {{:save + key=""|uuid + validate_schema="../movement.schema.json" + type="movement" + direction="input" + operation=$_POST.operation + amount=$_POST.amount|intval + equipment=$equipment.key + date=$_POST.date|parse_date + comment=$_POST.comment|trim + }} + {{:redirect force="../../historique.html?ok=1&key=%s&prop=1&msg=retour"|args:$_GET.key}} +{{/if}} {{/form}} {{:admin_header title="Retour de matériel" custom_css="./../../style.css" current="module_equipment"}} @@ -71,13 +105,16 @@ {{:include file="../../_calcul_dispo.html" eqpmt_key=$_GET.key keep="categories, equipments"}} {{:assign var=sorti from="equipments.%s.exterieur"|args:$_GET.key}} +{{* types d'entrées *}} +{{#foreach from=$config.input_nature key=key}} + {{if $type == 'retour'}} + {{:assign var="input_labels.%s"|args:$key value=$label}} + {{/if}} +{{/foreach}} + + {{if $sorti > 0}} - - {{* déterminer le matériel concerné par le mouvement *}} - {{#load key=$_GET.key assign="equipment"}} - {{/load}} {{:assign var=cat_name from=categories.%s|args:$equipment.category}} - {{* formulaire d'entrée de matériel *}}
@@ -88,7 +125,7 @@
Catégorie
{{$cat_name}}
Quantité sortie
-
{{$sorti}}
+
{{$sorti}} (à la date du {{$now|date_short}})
@@ -96,8 +133,8 @@
{{:input type="select" name="operation" label="Type" required=true options=$input_labels|sort}} {{:input type="date" name="date" label="Date" required=true default=$now|date_short}} - {{:input type="number" name="quantite" label="Quantité" min=1 required=true default=$sorti max=$sorti}} - {{:input type="textarea" name="remarques" label="Remarques" cols="40", rows="3" required=false}} + {{:input type="number" name="amount" label="Quantité" min=1 required=true default=$sorti max=$sorti}} + {{:input type="textarea" name="comment" label="Remarques" cols="40", rows="3" required=false}}

diff --git a/mouvements/valider_modification.html b/mouvements/valider_modification.html index 753fbd8..52b1253 100644 --- a/mouvements/valider_modification.html +++ b/mouvements/valider_modification.html @@ -38,6 +38,7 @@ {{:assign dispo="%d-%d"|math:$stock:$exterieur}} {{if $dispo < 0 || $stock < 0 || $exterieur < 0 || $nonprop < 0}} {{:assign erreur=true}} + {{:assign var="pb.mvt" value=$mvt}} {{:break}} {{/if}} {{/foreach}}