From 7364deda872471f6897d141862facbf95c853eca Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 10 Dec 2024 15:05:50 +0100 Subject: [PATCH] Simplification calcul dispo --- _calcul_dispo.html | 60 ++++++++++++++-------------- index.html | 6 +-- inventaire.html | 71 ++++++++++++++++------------------ inventaire_nonprop.html | 68 +++++++++++++++----------------- mouvements/entrees/retour.html | 21 +++++----- 5 files changed, 106 insertions(+), 120 deletions(-) diff --git a/_calcul_dispo.html b/_calcul_dispo.html index 6fa7189..7a0fbcb 100644 --- a/_calcul_dispo.html +++ b/_calcul_dispo.html @@ -3,35 +3,38 @@ {{* Calcul des entrées/sorties de matériels à une date donnée paramètres : - - category_keys : liste de clés de catégories - - date : date supérieure des mouvements - résultat : cumul_mvt,category_keys,equipments + - key : clé du matériel concerné + - cat_key : clé de la catégorie des matériels concernés + - date + résultat : + - categories : tableau clé => nom + - equipments : tableau clé => { clé cat, libellé mat, stock, exter, nonproprio } *}} -{{* liste des catégories *}} -{{if $category_keys === null}} - {{#load type="category"}} - {{:assign var="cumul_mvt.%s.name"|args:$key value=$name}} +{{* liste des matériels *}} +{{:assign equipments=null}} +{{if $_GET.key}} + {{* le matériel paramètre *}} + {{#load key=$_GET.key}} + {{:assign var="equipments.%s.category"|args:$key value=$category}} + {{:assign var="equipments.%s.designation"|args:$key value=$designation}} + {{:assign var="in_equipments." value="'%s'"|args:$key}} + {{/load}} +{{elseif $_GET.cat_key}} + {{* matériels de la catégorie paramètre *}} + {{#load type="equipment" where="$$.category = :category_key" :category_key=$_GET.cat_key}} + {{:assign var="equipments.%s.category"|args:$key value=$category}} + {{:assign var="equipments.%s.designation"|args:$key value=$designation}} + {{:assign var="in_equipments." value="'%s'"|args:$key}} {{/load}} {{else}} - {{#load type="category" where="key"|sql_where:'IN':$category_keys}} - {{:assign var="cumul_mvt.%s.name"|args:$key value=$name}} + {{* tous les matériels *}} + {{#load type="equipment"}} + {{:assign var="equipments.%s.category"|args:$key value=$category}} + {{:assign var="equipments.%s.designation"|args:$key value=$designation}} + {{:assign var="in_equipments." value="'%s'"|args:$key}} {{/load}} {{/if}} - -{{#foreach from=$cumul_mvt key="cat_key" item="elem"}} - {{:assign var="in_categories." value="'%s'"|args:$cat_key}} -{{/foreach}} - -{{:assign in_categories=$in_categories|implode:","}} -{{:assign in_categories="("|cat:$in_categories|cat:")"}} - -{{* liste des matériels dans les catégories passées en paramètre *}} -{{#load type="equipment" where="$$.category IN %s"|args:$in_categories}} - {{:assign var="equipments.%s.category"|args:$key value=$category}} - {{:assign var="equipments.%s.designation"|args:$key value=$designation}} - {{:assign var="in_equipments." value="'%s'"|args:$key}} -{{/load}} {{:assign in_equipments=$in_equipments|implode:","}} {{:assign in_equipments="("|cat:$in_equipments|cat:")"}} @@ -109,12 +112,9 @@ from=nonproprio}} {{/if}} {{/if}} - {{/load}} -{{* grouper les résultats par catégorie *}} -{{#foreach from=$equipments key="eqpmt_key" item="eqpmt"}} - {{:assign - var="cumul_mvt.%s.eqpmt.%s"|args:$eqpmt.category:$eqpmt_key - value=$eqpmt}} -{{/foreach}} +{{* catégories *}} +{{#load type="category" order="$$.name"}} + {{:assign var="categories.%s"|args:$key value=$name}} +{{/load}} diff --git a/index.html b/index.html index c2b5b9a..7b096c1 100644 --- a/index.html +++ b/index.html @@ -22,11 +22,9 @@

Modification refusée

{{/if}} -{{#load type="category"}} - {{:assign var="category_keys." value=$key}} -{{/load}} +{{#load type="category" count=true assign="result"}}{{/load}} -{{if $category_keys|count == 0}} +{{if $result.count == 0}}

Il n'y a aucune catégorie : vous devez en ajouter.

{{else}} {{if $_GET.prop == null || $_GET.prop}} diff --git a/inventaire.html b/inventaire.html index a9ad39b..2dff7d3 100644 --- a/inventaire.html +++ b/inventaire.html @@ -2,12 +2,28 @@ {{* inventaire des entrées/sorties des matériels permanents - paramètres - - category_keys : catégories dont on veut faire l'inventaire *}} {{* Extraire et compiler les infos de la base *}} -{{:include file="./_calcul_dispo.html" keep="cumul_mvt,equipments"}} +{{:include file="./_calcul_dispo.html" keep="categories,equipments"}} + +{{* Sélecteur catégories *}} +
+ Filtrer par catégorie + +
{{* Vérifier s'il y a au moins un matériel propriété de l'asso *}} {{:assign mat_present=false}} @@ -20,50 +36,29 @@ {{if $mat_present}} - {{* Sélecteur catégories *}} -
- Filtrer par catégorie - -
-

Matériels propriété de l'association

{{#list select=" - (SELECT $$.designation - FROM @TABLE AS b - WHERE b.key = @TABLE.$$.equipment) AS 'Matériel' ; - "" as 'Catégorie' ; + $$.designation AS 'Matériel' ; + "" AS 'Catégorie' ; "" AS 'Stock' ; "" AS 'Sorti' ; "" AS 'Dispo' " - type="movement" - group="$$.equipment" - direction="input" + type="equipment" order=1 }} + {{:assign var=eqpmt_key value=$key}} + {{:assign var=cat_key value=$category}} + {{:assign var=cat_name from=categories.%s|args:$cat_key}} - {{:assign var=cat_key from="equipments.%s.category"|args:$equipment}} {{if $_GET.cat_key != null && $_GET.cat_key != $cat_key}} {{:continue}} {{/if}} - {{:assign var=cat_name from="cumul_mvt.%s.name"|args:$cat_key}} - {{:assign var=stock from="equipments.%s.stock"|args:$equipment}} - {{:assign var=exterieur from="equipments.%s.exterieur"|args:$equipment}} + {{:assign var=stock from="equipments.%s.stock"|args:$eqpmt_key}} + {{:assign var=exterieur from="equipments.%s.exterieur"|args:$eqpmt_key}} {{:assign dispo="%d-%d"|math:$stock:$exterieur}} {{if $stock == null}} @@ -71,7 +66,7 @@ {{/if}} - {{$col1}} + {{$designation}} {{$cat_name}} {{$stock}} {{if $exterieur == null}}0{{else}}{{$exterieur}}{{/if}} @@ -80,7 +75,7 @@ {{if $exterieur > 0}} {{:linkbutton label="Retour" - href="mouvements/entrees/retour.html?key=%s"|args:$equipment + href="mouvements/entrees/retour.html?key=%s"|args:$eqpmt_key shape="history" target="_dialog"}} {{/if}} @@ -88,21 +83,21 @@ {{:linkbutton label="Sortie" shape="plus" - href="mouvements/sorties/stock_disponible.html?key=%s"|args:$equipment + href="mouvements/sorties/stock_disponible.html?key=%s"|args:$eqpmt_key target="_dialog"}} {{/if}} {{:linkbutton label="Entrée" shape="plus" - href="mouvements/entrees/repertorie.html?key=%s"|args:$equipment + href="mouvements/entrees/repertorie.html?key=%s"|args:$eqpmt_key target="_dialog"}} {{:linkbutton label="Mouvements" - href="historique.html?key=%s&prop=1"|args:$equipment + href="historique.html?key=%s&prop=1"|args:$eqpmt_key shape="table"}} {{:linkbutton label="Modifier" - href="modifier_materiel.html?key=%s&prop=1"|args:$equipment + href="modifier_materiel.html?key=%s&prop=1"|args:$eqpmt_key shape="edit" target="_dialog"}} diff --git a/inventaire_nonprop.html b/inventaire_nonprop.html index 5244b43..5e82697 100644 --- a/inventaire_nonprop.html +++ b/inventaire_nonprop.html @@ -2,12 +2,28 @@ {{* inventaire des entrées/sorties des matériels temporaires - paramètres - - category_keys : catégories dont on veut faire l'inventaire *}} {{* Extraire et compiler les infos de la base *}} -{{:include file="./_calcul_dispo.html" keep="cumul_mvt,equipments"}} +{{:include file="./_calcul_dispo.html" keep="categories,equipments"}} + +{{* Sélecteur catégories *}} +
+ Filtrer par catégorie + +
{{* Vérifier s'il y a au moins un matériel non propriété de l'asso *}} {{:assign mat_present=false}} @@ -20,75 +36,55 @@ {{if $mat_present}} - {{* Sélecteur catégories *}} -
- Filtrer par catégorie - -
-

Matériels temporairement dans l'association

{{#list select=" - (SELECT $$.designation - FROM @TABLE AS b - WHERE b.key = @TABLE.$$.equipment) AS 'Matériel' ; - "" as 'Catégorie' ; + $$.designation AS 'Matériel' ; + "" AS 'Catégorie' ; "" AS 'Quantité' " - type="movement" - group="$$.equipment" - direction="input" + type="equipment" order=1 }} + {{:assign var=eqpmt_key value=$key}} + {{:assign var=cat_key value=$category}} + {{:assign var=cat_name from=categories.%s|args:$cat_key}} - {{:assign var=cat_key from="equipments.%s.category"|args:$equipment}} {{if $_GET.cat_key != null && $_GET.cat_key != $cat_key}} {{:continue}} {{/if}} - {{:assign var=cat_name from="cumul_mvt.%s.name"|args:$cat_key}} - {{:assign var=qte from="equipments.%s.nonproprio"|args:$equipment}} + {{:assign var=qte from="equipments.%s.nonproprio"|args:$eqpmt_key}} {{if $qte == null}} {{:continue}} {{/if}} + - {{$col1}} + {{$designation}} {{$cat_name}} {{$qte}} {{if $qte > 0}} {{:linkbutton label="Retour" - href="mouvements/sorties/emprunte.html?key=%s"|args:$equipment + href="mouvements/sorties/emprunte.html?key=%s"|args:$eqpmt_key shape="history" target="_dialog"}} {{/if}} {{:linkbutton label="Entrée" shape="plus" - href="mouvements/entrees/repertorie.html?key=%s"|args:$equipment + href="mouvements/entrees/repertorie.html?key=%s"|args:$eqpmt_key target="_dialog"}} {{:linkbutton label="Mouvements" - href="historique.html?key=%s&prop=0"|args:$equipment + href="historique.html?key=%s&prop=0"|args:$eqpmt_key shape="table"}} {{:linkbutton label="Modifier" - href="modifier_materiel.html?key=%s&prop=0"|args:$equipment + href="modifier_materiel.html?key=%s&prop=0"|args:$eqpmt_key shape="edit" target="_dialog"}} diff --git a/mouvements/entrees/retour.html b/mouvements/entrees/retour.html index d7b25fa..6c71075 100644 --- a/mouvements/entrees/retour.html +++ b/mouvements/entrees/retour.html @@ -5,7 +5,7 @@ - key : clé du matériel qui revient *}} -{{:admin_header title="Entrée de matériel" current="module_equipment"}} +{{:admin_header title="Retour de matériel" current="module_equipment"}} {{* barre de navigation *}} {{if ! $dialog}} @@ -27,19 +27,18 @@ {{* récupérer les infos du matériel *}} {{#load type="equipment" key=$_GET.key assign="equipment"}} {{:assign designation=$equipment.designation}} - {{:assign var="categories." value=$equipment.category}} {{/load}} {{* Extraire et compiler les infos de la base *}} {{:include file="../../_calcul_dispo.html" - keep="cumul_mvt" + keep="equipments" date=$_POST.date|parse_date }} {{* déterminer la quantité sortie temporairement de ce matériel à la date donnée *}} - {{:assign var=sorti from="cumul_mvt.%s.eqpmt.%s.exterieur"|args:$equipment.category:$_GET.key}} -{{*:debug cumul_mvt=$cumul_mvt sorti=$sorti*}} + {{: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}} @@ -61,13 +60,12 @@ }} {{:redirect force="../../historique.html?ok=1&key=%s&prop=1&msg=retour"|args:$_GET.key}} - {{else}} {{:form_errors}} {{/form}} {{* Extraire et compiler les infos de la base *}} -{{:include file="../../_calcul_dispo.html" keep="cumul_mvt,equipments"}} +{{:include file="../../_calcul_dispo.html" keep="categories, equipments"}} {{:assign var=sorti from="equipments.%s.exterieur"|args:$_GET.key}} {{if $sorti > 0}} @@ -75,8 +73,7 @@ {{* déterminer le matériel concerné par le mouvement *}} {{#load key=$_GET.key assign="equipment"}} {{/load}} - {{#load key=$equipment.category assign="category"}} - {{/load}} + {{:assign var=cat_name from=categories.%s|args:$equipment.category}} {{* formulaire d'entrée de matériel *}}
@@ -86,9 +83,9 @@ {{: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}} {{:input type="text" name="equipment" label="Matériel" required=true disabled=true default=$equipment.designation}} - {{:input type="text" name="category" label="Catégorie" required=true disabled=true default=$category.name}} - {{:input type="text" name="sorti" label="Qté sortie" disabled=true default=$sorti}} -

La quantité indiquée est celle à la date du jour

+ {{:input type="text" name="category" label="Catégorie" required=true disabled=true default=$cat_name}} + {{:input type="text" name="sorti" label="Quantité sortie" disabled=true default=$sorti}} +

La quantité sortie est celle à la date du jour

{{:input type="number" name="quantite" label="Quantité" min=1 required=true default=1}} {{:input type="textarea" name="remarques" label="Remarques" cols="40", rows="3" required=false}}