From 84fb29c15dc6948268b27017771a36ad43b9470c Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 24 Oct 2024 10:15:56 +0200 Subject: [PATCH 01/54] =?UTF-8?q?Ajout=20op=C3=A9rations=20lignes=20histor?= =?UTF-8?q?ique?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- historique.html | 68 ++++++++++++++++- inventaire.html | 190 ++++++++++++++++++++++++++---------------------- 2 files changed, 166 insertions(+), 92 deletions(-) diff --git a/historique.html b/historique.html index d716b0f..0f4f783 100644 --- a/historique.html +++ b/historique.html @@ -1,3 +1,5 @@ +{{* -*- brindille -*- *}} + {{:assign equipment_key=$_GET.key|trim}} {{#load key=$_GET.key assign="equipment"}} {{else}} @@ -46,14 +48,16 @@ type="movement" select="$$.date AS 'Date'; CASE $$.direction WHEN 'input' THEN 'Entrée' WHEN 'output' THEN 'Sortie' END AS 'Mvt'; - CASE $$.direction WHEN 'input' THEN $$.input_nature WHEN 'output' THEN $$.output_nature END AS 'Type'; + CASE $$.direction WHEN 'input' THEN $$.input_nature WHEN 'output' THEN $$.output_nature END AS 'operation'; $$.amount AS 'Nombre'; $$.comment AS 'Commentaire'" equipment=$equipment_key order=1 }} - {{if $direction === "input" && $input_nature|in:$input_types || - $direction === "output" && $output_nature|in:$output_types + {{:assign var="type_mvt" from="config.%s_nature.%s"|args:$direction:$col3}} + + {{if $direction === "input" && $input_nature|in:$input_types || + $direction === "output"&& $output_nature|in:$output_types }} {{$date|date_short}} @@ -61,7 +65,63 @@ {{$col3}} {{$amount}} {{$comment}} - + + {{if $direction === "input"}} + {{* entrée *}} + {{if $type_mvt == 'temporaire'}} + {{:linkbutton + label="Retour" + href="mouvements/sorties/emprunte.html?key=%s"|args:$key + shape="history" + target="_dialog"}} + {{elseif $type_mvt == 'définitif'}} + {{:linkbutton + label="Sortir" + href="mouvements/sorties/stock_disponible.html?key=%s"|args:$key + shape="minus" + target="_dialog"}} + {{/if}} + {{:linkbutton + label="Dupliquer" + href="mouvements/dupliquer_mouvement.html?mvt_key=%s&direction=input"|args:$key + shape="plus" + target="_dialog"}} + {{:linkbutton + label="Modifier" + href="mouvements/modifier_mouvement.html?key=%s&direction=input"|args:$key + shape="edit" + target="_dialog"}} + {{:linkbutton + label="Supprimer" + href="mouvements/entrees/delete_entree.html?key=%s"|args:$key + shape="delete" + target="_dialog"}} + {{else}} + {{* sortie *}} + {{if $type_mvt == 'temporaire'}} + {{:linkbutton + label="Retour" + href="mouvements/entrees/retour.html?key=%s"|args:key + shape="history" + target="_dialog"}} + {{/if}} + {{:linkbutton + label="Dupliquer" + href="mouvements/dupliquer_mouvement.html?mvt_key=%s&direction=output"|args:$key + shape="plus" + target="_dialog"}} + {{:linkbutton + label="Modifier" + href="mouvements/modifier_mouvement.html?key=%s&direction=output"|args:$key + shape="edit" + target="_dialog"}} + {{:linkbutton + label="Supprimer" + href="mouvements/sorties/delete_sortie.html?key=%s"|args:$key + shape="delete" + target="_dialog"}} + {{/if}} + {{/if}} {{/list}} diff --git a/inventaire.html b/inventaire.html index 8014583..cfa28be 100644 --- a/inventaire.html +++ b/inventaire.html @@ -7,10 +7,12 @@ {{* Afficher les résultats *}} {{if $equipments === null}} -

Aucun matériel.

+

Aucun matériel.

{{else}} -
-

Matériels dont l'association est propriétaire

+
+ +

Matériels dont l'association est propriétaire

+
{{* itérer sur les catégories *}} {{#foreach from=$cumul_mvt key="cat_key" item="cat_elem"}} @@ -25,62 +27,71 @@ {{/if}} {{/foreach}} {{/if}} + {{if $present}} {{if $print_cat_name}} -

{{$cat_elem.name}}

+
+ +

{{$cat_elem.name}}

{{/if}} +
- - - - - - - - - - - - - {{* itérer sur les matériels de la catégorie *}} - {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} - {{:assign keys=$eqpmt|keys}} - {{if "stock"|in:$keys && $eqpmt.stock !== 0}} - {{if "exterieur"|in:$keys}} - {{:assign dispo="%d-%d"|math:$eqpmt.stock:$eqpmt.exterieur}} - {{:assign exterieur=$eqpmt.exterieur}} - {{else}} - {{:assign dispo=$eqpmt.stock}} - {{:assign exterieur=0}} - {{/if}} +
DésignationStockSortieDisponible
+ - - - - - + + + + + - {{/if}} + + + + {{* itérer sur les matériels de la catégorie *}} + {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} + {{:assign keys=$eqpmt|keys}} + {{if "stock"|in:$keys && $eqpmt.stock !== 0}} + {{if "exterieur"|in:$keys}} + {{:assign dispo="%d-%d"|math:$eqpmt.stock:$eqpmt.exterieur}} + {{:assign exterieur=$eqpmt.exterieur}} {{else}} -

Il n'y a aucun matériel dans cette catégorie.

- {{/foreach}} - -
{{$eqpmt.designation}}{{$eqpmt.stock}}{{$exterieur}}{{$dispo}} - {{:linkbutton - label="Historique des mouvements" - href="%shistorique.html?key=%s&prop=1"|args:$module.url:$eqpmt_key - shape="table" - target="_dialog"}} - {{:linkbutton - label="Modifier" - href="%smodifier_materiel.html?key=%s"|args:$module.url:$eqpmt_key - shape="edit" - target="_dialog"}} - DésignationStockSortieDisponible
+ {{:assign dispo=$eqpmt.stock}} + {{:assign exterieur=0}} + {{/if}} + + {{$eqpmt.designation}} + {{$eqpmt.stock}} + {{$exterieur}} + {{$dispo}} + + {{:linkbutton + label="Mouvements" + href="%shistorique.html?key=%s&prop=1"|args:$module.url:$eqpmt_key + shape="table" + target="_dialog"}} + {{:linkbutton + label="Modifier" + href="%smodifier_materiel.html?key=%s"|args:$module.url:$eqpmt_key + shape="edit" + target="_dialog"}} + + + {{/if}} + {{else}} +

Il n'y a aucun matériel dans cette catégorie.

+ {{/foreach}} + + +
{{/if}} {{/foreach}} +
-

Matériels dont l'association n'est pas propriétaire

+
+ +

Matériels dont l'association n'est pas propriétaire

+
{{* itérer sur les catégories *}} {{#foreach from=$cumul_mvt key="cat_key" item="cat_elem"}} @@ -95,51 +106,54 @@ {{/if}} {{/foreach}} {{/if}} + {{if $present}} - {{if $print_cat_name}} -

{{$cat_elem.name}}

+
+ +

{{$cat_elem.name}}

{{/if}} +
- - - - - - - - - - - {{* itérer sur les matériels de la catégorie *}} - {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} - - {{:assign keys=$eqpmt|keys}} - {{if "nonproprio"|in:$keys && $eqpmt.nonproprio !== 0}} - {{:assign dispo="%d-%d"|math:$eqpmt.stock:$eqpmt.exterieur}} +
DésignationQuantité
+ - - - + + + - {{/if}} - {{else}} -

Il n'y a aucun matériel dans cette catégorie.

- {{/foreach}} - -
{{$eqpmt.designation}}{{$eqpmt.nonproprio}} - {{:linkbutton - label="Historique des mouvements" - href="%shistorique.html?key=%s"|args:$module.url:$eqpmt_key - shape="table" - target="_dialog"}} - {{:linkbutton - label="Modifier" - href="%smodifier_materiel.html?key=%s"|args:$module.url:$eqpmt_key - shape="edit" - target="_dialog"}} - DésignationQuantité
+ + + + {{* itérer sur les matériels de la catégorie *}} + {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} + {{:assign keys=$eqpmt|keys}} + {{if "nonproprio"|in:$keys && $eqpmt.nonproprio !== 0}} + {{:assign dispo="%d-%d"|math:$eqpmt.stock:$eqpmt.exterieur}} + + {{$eqpmt.designation}} + {{$eqpmt.nonproprio}} + + {{:linkbutton + label="Mouvements" + href="%shistorique.html?key=%s"|args:$module.url:$eqpmt_key + shape="table" + target="_dialog"}} + {{:linkbutton + label="Modifier" + href="%smodifier_materiel.html?key=%s"|args:$module.url:$eqpmt_key + shape="edit" + target="_dialog"}} + + + {{/if}} + {{else}} +

Il n'y a aucun matériel dans cette catégorie.

+ {{/foreach}} + + +
{{/if}} {{/foreach}} -
+ {{/if}} From 553cbdf9789bcfb41f9e91b9a68df134ecd5e427 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 28 Oct 2024 09:53:29 +0100 Subject: [PATCH 02/54] =?UTF-8?q?R=C3=A9organisation=20module?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _calcul_dispo.html | 2 + _get_config.html | 2 + _nav.html | 3 +- categories/delete_category.html | 2 + categories/index.html | 2 + categories/list_equipment.html | 2 + categories/modify_category.html | 2 + historique.html | 103 +++++---- index.html | 8 +- inventaire.html | 262 ++++++++++++----------- modifier_materiel.html | 2 + mouvements/ajouter_entree.html | 140 ++++++++++++ mouvements/dupliquer_mouvement.html | 159 ++++++++++++++ mouvements/entrees/_temporaire.html | 24 ++- mouvements/entrees/non_repertorie.html | 2 + mouvements/entrees/retour.html | 11 +- mouvements/modifier_mouvement.html | 32 ++- mouvements/sorties/_temporaire.html | 2 + mouvements/sorties/emprunte.html | 9 +- mouvements/sorties/stock_disponible.html | 15 +- mouvements/supprimer_mouvement.html | 135 ++++++++++++ 21 files changed, 718 insertions(+), 201 deletions(-) create mode 100644 mouvements/ajouter_entree.html create mode 100644 mouvements/dupliquer_mouvement.html create mode 100644 mouvements/supprimer_mouvement.html diff --git a/_calcul_dispo.html b/_calcul_dispo.html index a1115e1..bcd6997 100644 --- a/_calcul_dispo.html +++ b/_calcul_dispo.html @@ -1,3 +1,5 @@ +{{* -*- brindille -*- *}} + {{* Calcul des entrées/sorties de matériels à une date donnée paramètres : diff --git a/_get_config.html b/_get_config.html index 83771df..469fabf 100644 --- a/_get_config.html +++ b/_get_config.html @@ -1,3 +1,5 @@ +{{* -*- brindille -*- *}} + {{* Récupérer soit la config enregistrée, soit la config par défaut résultat : config.input_nature et config.output_nature diff --git a/_nav.html b/_nav.html index 4aab958..1628ea4 100644 --- a/_nav.html +++ b/_nav.html @@ -1,9 +1,8 @@ diff --git a/categories/delete_category.html b/categories/delete_category.html index b0ab888..feab947 100644 --- a/categories/delete_category.html +++ b/categories/delete_category.html @@ -1,3 +1,5 @@ +{{* -*- brindille -*- *}} + {{:admin_header title="Supprimer une catégorie" current="module_equipment"}} {{#load key=$_GET.key assign="category"}} diff --git a/categories/index.html b/categories/index.html index 30591ff..97c41bc 100644 --- a/categories/index.html +++ b/categories/index.html @@ -1,3 +1,5 @@ +{{* -*- brindille -*- *}} + {{:admin_header title="Gestion des matériels" current="module_equipment"}} {{* barre de navigation *}} diff --git a/categories/list_equipment.html b/categories/list_equipment.html index 90a67f3..89fcd24 100644 --- a/categories/list_equipment.html +++ b/categories/list_equipment.html @@ -1,3 +1,5 @@ +{{* -*- brindille -*- *}} + {{#load key=$_GET.key}} {{:assign cat_name=$name}} {{/load}} diff --git a/categories/modify_category.html b/categories/modify_category.html index 9522111..3c78235 100644 --- a/categories/modify_category.html +++ b/categories/modify_category.html @@ -1,3 +1,5 @@ +{{* -*- brindille -*- *}} + {{:admin_header title="Modifier une catégorie" current="module_equipment"}} {{#load key=$_GET.key assign="category"}} diff --git a/historique.html b/historique.html index 0f4f783..d4f3f30 100644 --- a/historique.html +++ b/historique.html @@ -1,5 +1,6 @@ {{* -*- brindille -*- *}} + {{:assign equipment_key=$_GET.key|trim}} {{#load key=$_GET.key assign="equipment"}} {{else}} @@ -10,7 +11,28 @@ {{else}} {{:error message="Le matériel %s n'appartient à aucune catégorie"|args:$equipment.designation}} {{/load}} -{{:admin_header title="Historique des mouvements de %s (%s)"|args:$equipment.designation:$category.name current="module_equipment"}} +{{:admin_header title="Gestion des matériels" current="module_equipment"}} + +{{if $_GET.ok}} + {{if $_GET.msg == "modification"}} +

Modification enregistrée

+ {{elseif $_GET.msg == "suppression"}} +

Mouvement supprimé

+ {{else}} +

{{$_GET.msg}}

+ {{/if}} +{{elseif $_GET.err}} + {{if $_GET.msg == "suppression"}} +

Ce mouvement ne peut être supprimé

+ {{else}} +

{{$_GET.msg}}

+ {{/if}} +{{/if}} + +{{* barre de navigation *}} +{{if ! $dialog}} + {{:include file="./_nav.html" current="mouvements"}} +{{/if}} {{* récupérer la config des entrées/sorties *}} {{:include file="./_get_config.html" keep="config"}} @@ -29,6 +51,7 @@ {{/if}} {{/if}} {{/foreach}} + {{#foreach from=$config.output_nature key=mvt item=type_mvt}} {{if $_GET.prop}} {{* matériel propriété de l'asso *}} @@ -44,6 +67,8 @@ {{/foreach}} {{* lister tous les mouvements du matériel passé en paramètre *}} +

Mouvements de {{$equipment.designation}} ({{$category.name}})

+ {{#list type="movement" select="$$.date AS 'Date'; @@ -55,6 +80,11 @@ order=1 }} {{:assign var="type_mvt" from="config.%s_nature.%s"|args:$direction:$col3}} + {{if $direction == 'input'}} + {{:assign sens="entree"}} + {{else}} + {{:assign sens="sortie"}} + {{/if}} {{if $direction === "input" && $input_nature|in:$input_types || $direction === "output"&& $output_nature|in:$output_types @@ -66,61 +96,40 @@ {{$amount}} {{$comment}} - {{if $direction === "input"}} - {{* entrée *}} - {{if $type_mvt == 'temporaire'}} - {{:linkbutton + {{if $direction === "input" && $type_mvt == 'temporaire'}} + {{:linkbutton label="Retour" - href="mouvements/sorties/emprunte.html?key=%s"|args:$key + href="mouvements/sorties/emprunte.html?key=%s&prop=%s"|args:$key:$_GET.prop shape="history" target="_dialog"}} - {{elseif $type_mvt == 'définitif'}} - {{:linkbutton + {{elseif $direction === "input" && $type_mvt == 'définitif'}} + {{:linkbutton label="Sortir" - href="mouvements/sorties/stock_disponible.html?key=%s"|args:$key + href="mouvements/sorties/stock_disponible.html?key=%s&prop=%s"|args:$key:$_GET.prop shape="minus" target="_dialog"}} - {{/if}} + {{elseif $direction === "output" && $type_mvt == 'temporaire'}} {{:linkbutton - label="Dupliquer" - href="mouvements/dupliquer_mouvement.html?mvt_key=%s&direction=input"|args:$key - shape="plus" - target="_dialog"}} - {{:linkbutton - label="Modifier" - href="mouvements/modifier_mouvement.html?key=%s&direction=input"|args:$key - shape="edit" - target="_dialog"}} - {{:linkbutton - label="Supprimer" - href="mouvements/entrees/delete_entree.html?key=%s"|args:$key - shape="delete" - target="_dialog"}} - {{else}} - {{* sortie *}} - {{if $type_mvt == 'temporaire'}} - {{:linkbutton - label="Retour" - href="mouvements/entrees/retour.html?key=%s"|args:key - shape="history" - target="_dialog"}} - {{/if}} - {{:linkbutton - label="Dupliquer" - href="mouvements/dupliquer_mouvement.html?mvt_key=%s&direction=output"|args:$key - shape="plus" - target="_dialog"}} - {{:linkbutton - label="Modifier" - href="mouvements/modifier_mouvement.html?key=%s&direction=output"|args:$key - shape="edit" - target="_dialog"}} - {{:linkbutton - label="Supprimer" - href="mouvements/sorties/delete_sortie.html?key=%s"|args:$key - shape="delete" + label="Retour" + href="mouvements/entrees/retour.html?key=%s&prop=%s"|args:$key:$_GET.prop + shape="history" target="_dialog"}} {{/if}} + {{:linkbutton + label="Dupliquer" + href="mouvements/dupliquer_mouvement.html?key=%s&direction=%s&prop=%s"|args:$key:$direction:$_GET.prop + shape="plus" + target="_dialog"}} + {{:linkbutton + label="Modifier" + href="mouvements/modifier_mouvement.html?key=%s&direction=%s&prop=%s"|args:$key:$direction:$_GET.prop + shape="edit" + target="_dialog"}} + {{:linkbutton + label="Supprimer" + href="mouvements/supprimer_mouvement.html?key=%s&direction=%s&prop=%s"|args:$key:$direction:$_GET.prop + shape="delete" + target="_dialog"}} {{/if}} diff --git a/index.html b/index.html index 8616e35..84b8050 100644 --- a/index.html +++ b/index.html @@ -1,10 +1,16 @@ +{{* -*- brindille -*- *}} + {{:admin_header title="Gestion des matériels" custom_css=$custom_css current="module_equipment"}} {{* barre de navigation *}} {{:include file="_nav.html" current="index"}} {{if $_GET.ok}} -

Modification effectuée

+ {{if $_GET.msg == "ajout" }} +

Ajout effectué

+ {{else}} +

{{$_GET.msg}}

+ {{/if}} {{elseif $_GET.err}}

Modification refusée

{{/if}} diff --git a/inventaire.html b/inventaire.html index cfa28be..d4c4057 100644 --- a/inventaire.html +++ b/inventaire.html @@ -2,10 +2,15 @@ {{* inventaire des entrées/sorties des matériels des catégories de la variable category_keys *}} +
+ {{:linkbutton label="Ajouter un nouveau matériel" shape="plus" href="mouvements/ajouter_entree.html" target="_dialog"}} +
+ {{* Extraire et compiler les infos de la base *}} {{:include file="./_calcul_dispo.html" keep="cumul_mvt,category_keys,equipments"}} {{* Afficher les résultats *}} + {{if $equipments === null}}

Aucun matériel.

{{else}} @@ -13,147 +18,150 @@

Matériels dont l'association est propriétaire

+
- {{* itérer sur les catégories *}} - {{#foreach from=$cumul_mvt key="cat_key" item="cat_elem"}} + {{* itérer sur les catégories *}} + {{#foreach from=$cumul_mvt key="cat_key" item="cat_elem"}} - {{* vérifier s'il y a des matériels dans cette catégorie *}} - {{:assign present=false}} - {{if $cat_elem|keys|has:"eqpmt"}} - {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} - {{if $eqpmt.stock !== null && $eqpmt.stock !== 0}} - {{:assign present=true}} - {{:break}} - {{/if}} - {{/foreach}} - {{/if}} - - {{if $present}} - {{if $print_cat_name}} -
- -

{{$cat_elem.name}}

- {{/if}} -
- - - - - - - - - - - - - - {{* itérer sur les matériels de la catégorie *}} - {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} - {{:assign keys=$eqpmt|keys}} - {{if "stock"|in:$keys && $eqpmt.stock !== 0}} - {{if "exterieur"|in:$keys}} - {{:assign dispo="%d-%d"|math:$eqpmt.stock:$eqpmt.exterieur}} - {{:assign exterieur=$eqpmt.exterieur}} - {{else}} - {{:assign dispo=$eqpmt.stock}} - {{:assign exterieur=0}} + {{* vérifier s'il y a des matériels dans cette catégorie *}} + {{:assign present=false}} + {{if $cat_elem|keys|has:"eqpmt"}} + {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} + {{if $eqpmt.stock !== null && $eqpmt.stock !== 0}} + {{:assign present=true}} + {{:break}} {{/if}} - - - - - - - + {{/foreach}} + {{/if}} + + {{if $present}} + {{if $print_cat_name}} +
+ +

{{$cat_elem.name}}

{{/if}} - {{else}} -

Il n'y a aucun matériel dans cette catégorie.

- {{/foreach}} -
-
DésignationStockSortieDisponible
{{$eqpmt.designation}}{{$eqpmt.stock}}{{$exterieur}}{{$dispo}} - {{:linkbutton - label="Mouvements" - href="%shistorique.html?key=%s&prop=1"|args:$module.url:$eqpmt_key - shape="table" - target="_dialog"}} - {{:linkbutton - label="Modifier" - href="%smodifier_materiel.html?key=%s"|args:$module.url:$eqpmt_key - shape="edit" - target="_dialog"}} -
-
- {{/if}} - {{/foreach}} + + + + + + + + + + + + + + + {{* itérer sur les matériels de la catégorie *}} + {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} + {{:assign keys=$eqpmt|keys}} + {{if "stock"|in:$keys && $eqpmt.stock !== 0}} + {{if "exterieur"|in:$keys}} + {{:assign dispo="%d-%d"|math:$eqpmt.stock:$eqpmt.exterieur}} + {{:assign exterieur=$eqpmt.exterieur}} + {{else}} + {{:assign dispo=$eqpmt.stock}} + {{:assign exterieur=0}} + {{/if}} + + + + + + + + {{/if}} + {{else}} +

Il n'y a aucun matériel dans cette catégorie.

+ {{/foreach}} + +
DésignationStockSortieDisponible
{{$eqpmt.designation}}{{$eqpmt.stock}}{{$exterieur}}{{$dispo}} + {{:linkbutton + label="Mouvements" + href="historique.html?key=%s&prop=1"|args:$eqpmt_key + shape="table"}} + {{:linkbutton + label="Modifier" + href="modifier_materiel.html?key=%s"|args:$eqpmt_key + shape="edit" + target="_dialog"}} +
+ + {{/if}} + {{/foreach}} +

Matériels dont l'association n'est pas propriétaire

+
- {{* itérer sur les catégories *}} - {{#foreach from=$cumul_mvt key="cat_key" item="cat_elem"}} + {{* itérer sur les catégories *}} + {{#foreach from=$cumul_mvt key="cat_key" item="cat_elem"}} - {{* vérifier s'il y a des matériels dans cette catégorie *}} - {{:assign present=false}} - {{if $cat_elem|keys|has:"eqpmt"}} - {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} - {{if $eqpmt.nonproprio !== null && $eqpmt.nonproprio !== 0}} - {{:assign present=true}} - {{:break}} - {{/if}} - {{/foreach}} - {{/if}} - - {{if $present}} - {{if $print_cat_name}} -
- -

{{$cat_elem.name}}

+ {{* vérifier s'il y a des matériels dans cette catégorie *}} + {{:assign present=false}} + {{if $cat_elem|keys|has:"eqpmt"}} + {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} + {{if $eqpmt.nonproprio !== null && $eqpmt.nonproprio !== 0}} + {{:assign present=true}} + {{:break}} + {{/if}} + {{/foreach}} {{/if}} -
- - - - - - - - - - - {{* itérer sur les matériels de la catégorie *}} - {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} - {{:assign keys=$eqpmt|keys}} - {{if "nonproprio"|in:$keys && $eqpmt.nonproprio !== 0}} - {{:assign dispo="%d-%d"|math:$eqpmt.stock:$eqpmt.exterieur}} - - - - - + {{if $present}} + {{if $print_cat_name}} +
+ +

{{$cat_elem.name}}

{{/if}} - {{else}} -

Il n'y a aucun matériel dans cette catégorie.

- {{/foreach}} -
-
DésignationQuantité
{{$eqpmt.designation}}{{$eqpmt.nonproprio}} - {{:linkbutton - label="Mouvements" - href="%shistorique.html?key=%s"|args:$module.url:$eqpmt_key - shape="table" - target="_dialog"}} - {{:linkbutton - label="Modifier" - href="%smodifier_materiel.html?key=%s"|args:$module.url:$eqpmt_key - shape="edit" - target="_dialog"}} -
-
- {{/if}} - {{/foreach}} + + + + + + + + + + + + + {{* itérer sur les matériels de la catégorie *}} + {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} + {{:assign keys=$eqpmt|keys}} + {{if "nonproprio"|in:$keys && $eqpmt.nonproprio !== 0}} + {{:assign dispo="%d-%d"|math:$eqpmt.stock:$eqpmt.exterieur}} + + + + + + {{/if}} + {{else}} +

Il n'y a aucun matériel dans cette catégorie.

+ {{/foreach}} + +
DésignationQuantité
{{$eqpmt.designation}}{{$eqpmt.nonproprio}} + {{:linkbutton + label="Mouvements" + href="historique.html?key=%s"|args:$eqpmt_key + shape="table" + target="_dialog"}} + {{:linkbutton + label="Modifier" + href="modifier_materiel.html?key=%s"|args:$eqpmt_key + shape="edit" + target="_dialog"}} +
+
+ {{/if}} + {{/foreach}} + {{/if}} diff --git a/modifier_materiel.html b/modifier_materiel.html index e81099d..1861be0 100644 --- a/modifier_materiel.html +++ b/modifier_materiel.html @@ -1,3 +1,5 @@ +{{* -*- brindille -*- *}} + {{:admin_header title="Modifier matériel" current="module_equipment"}} {{:assign equipment_key=$_GET.key|trim}} diff --git a/mouvements/ajouter_entree.html b/mouvements/ajouter_entree.html new file mode 100644 index 0000000..9d23b66 --- /dev/null +++ b/mouvements/ajouter_entree.html @@ -0,0 +1,140 @@ +{{* -*- brindille -*- *}} + +{{:admin_header title="Entrée de matériel" current="module_equipment"}} + +{{* barre de navigation *}} +{{if ! $dialog}} + {{:include file="../_nav.html" current="entrees"}} +{{/if}} + +{{* 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="label" item="type"}} + {{if $type != 'retour'}} + {{:assign var='input_labels.' value="%s"|args:$label}} + {{/if}} +{{/foreach}} + +{{* Traiter l'envoi du formulaire *}} +{{#form on="save"}} + + {{* vérifier les infos saisies *}} + {{if $_POST.equipment == null && + $_POST.category == null && $_POST.designation == null}} + {{:error message="Il faut choisir un matériel existant ou sélectionner une catégorie et indiquer le nom du nouveau matériel"}} + {{elseif $_POST.category == null && $_POST.designation != null}} + {{:error message="Vous devez aussi sélectionner une catégorie"}} + {{/if}} + + {{if $_POST.equipment != null}} + {{:assign equipment_key=$_POST.equipment}} + {{#load key=$_POST.equipment assign=equipment}} + {{/load}} + {{if $_POST.designation != null}} + {{:assign message="Vous avez choisi un matériel dans la liste (%s) et indiqué le nom d'un nouveau matériel (%s) : l'un des deux est de trop"|args:$equipment.designation:$_POST.designation}} + {{:error message=$message}} + {{/if}} + {{/if}} + + {{* infos saisies valides *}} + + {{if $_POST.equipment == null}} + {{* récupérer les infos de la catégorie *}} + {{#load type="category" key=$_POST.category assign="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}} + {{* 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 + }} + {{/load}} + {{/if}} + + {{* Enregistrer le mouvement *}} + {{:assign mvt_key=""|uuid}} + {{:assign var="operation" from="input_labels.%d"|args:$_POST.type_operation}} + + {{:save + key=$mvt_key + validate_schema="./movement.schema.json" + type="movement" + direction="input" + input_nature=$operation + amount=$_POST.quantite|intval + equipment=$equipment_key + date=$_POST.date|parse_date + 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*}} +{{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 *}} +
+ +
+ Ajouter une entrée d'un matériel non répertorié +
+ {{: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="number" name="quantite" label="Quantité" required=true default=1}} +
+
+ +
+ Choisir un matériel dans la liste ou sélectionner une catégorie et indiquer le nom du nouveau matériel +
+ {{if $equipments != null}} +
+
+ {{: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"}} +
+
+ {{: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 aucune catégorie, il faut en créer au moins une

+{{/if}} +{{:admin_footer}} diff --git a/mouvements/dupliquer_mouvement.html b/mouvements/dupliquer_mouvement.html new file mode 100644 index 0000000..7bb73d8 --- /dev/null +++ b/mouvements/dupliquer_mouvement.html @@ -0,0 +1,159 @@ +{{* -*- brindille -*- *}} + + +{{if $_GET.direction == "input"}} + {{:assign msg_direction="entrée"}} +{{else}} + {{:assign msg_direction="sortie"}} +{{/if}} +{{:admin_header title="Dupliquer une %s"|args:$msg_direction current="module_equipment"}} + +{{:assign direction=$_GET.direction}} +{{:assign mvt_key=$_GET.key}} + +{{* récupérer les infos du mouvement à dupliquer *}} +{{#load key=$mvt_key assign="mvt_copie"}} +{{else}} + {{:error message="Aucune %s avec la clé %s"|args:$msg_direction:$mvt_key}} +{{/load}} +{{if $direction == "input"}} + {{:assign input_init=$mvt_copie.input_nature}} + {{:assign url="entrees/index.html"}} +{{else}} + {{:assign output_init=$mvt_copie.output_nature}} + {{:assign url="sorties/index.html"}} +{{/if}} +{{:assign amount_init=$mvt_copie.amount}} +{{:assign date_init=$mvt_copie.date|date_short}} +{{:assign key_eqpmt_init=$mvt_copie.equipment}} + +{{* récupérer la config des entrées/sorties *}} +{{:include file="../_get_config.html" keep="config"}} + +{{if $direction == "input"}} + {{* types d'entrées *}} + {{#foreach from=$config.input_nature key="label" item="type"}} + {{:assign var="input_labels.%s"|args:$label value="%s"|args:$label}} + {{if $label == $mvt_copie.input_nature}} + {{:assign type_defaut=$label}} + {{/if}} + {{/foreach}} +{{else}} + {{* types de sorties *}} + {{#foreach from=$config.output_nature key="label" item="type"}} + {{:assign var="output_labels.%s"|args:$label value="%s"|args:$label}} + {{if $label == $mvt_copie.output_nature}} + {{:assign type_defaut=$label}} + {{/if}} + {{/foreach}} +{{/if}} + +{{* récupérer les infos du matériel associé *}} +{{#load key=$key_eqpmt_init assign="eqpmt_init"}} +{{else}} + {{:error message="Aucun matériel avec la clé « %s »"|args:$key_eqpmt_init}} +{{/load}} + +{{* + -------------------- Traiter la saisie -------------------- +*}} +{{#form on="save"}} + {{* récupérer les infos de la catégorie *}} + {{#load type="category" key=$_POST.category assign="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}} + {{* 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 *}} + {{*:debug key=$equipment_key category=$category.key designation=$_POST.designation|trim*}} + {{:save + key=$equipment_key + validate_schema="../equipment.schema.json" + type="equipment" + category=$category.key + designation=$_POST.designation|trim + }} + {{/load}} + + {{* préparer le mouvement copié *}} + {{if $direction == "input"}} + {{:assign var="mvt_copie.input_nature" from="input_labels.%s"|args:$_POST.type_operation}} + {{else}} + {{:assign var="mvt_copie.output_nature" from="output_labels.%s"|args:$_POST.type_operation}} + {{/if}} + {{:assign var="mvt_copie.amount" value=$_POST.amount}} + {{:assign var="mvt_copie.date" value=$_POST.date|parse_date}} + {{:assign var="mvt_copie.comment" value=$_POST.comment}} + + {{* Enregistrer le mouvement *}} + {{:assign mvt_key=""|uuid}} + {{:save + key=$mvt_key + validate_schema="movement.schema.json" + type="movement" + direction=$direction + input_nature=$mvt_copie.input_nature + output_nature=$mvt_copie.output_nature + amount=$mvt_copie.amount|intval + equipment=$equipment_key + date=$mvt_copie.date + comment=$mvt_copie.comment + }} + {{:redirect force="../historique.html?ok=1&key=%s&prop=%s&msg=%s"|args:$key_eqpmt_init:$_GET.prop:$msg_direction}} +{{/form}} + +{{:form_errors}} + +{{* + -------------------- Préparer la saisie -------------------- +*}} + +{{* lister les catégories et matériels associés *}} +{{#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}} + +{{* formulaire de copie du mouvement *}} +
+ +
+ {{if $direction == "input"}} + Créer une copie de l'entrée « {{$input_init}} {{$eqpmt_init.designation}} ({{$amount_init}}) en date du {{$date_init}} » +
+ {{:input type="select" name="type_operation" label="Type" required=true options=$input_labels default=$type_defaut}} + {{else}} + Créer une copie de la sortie « {{$output_init}} {{$eqpmt_init.designation}} ({{$amount_init}}) en date du {{$date_init}} » +
+ {{:input type="select" name="type_operation" label="Type" required=true options=$output_labels default=$type_defaut}} + {{/if}} + {{:input type="date" name="date" label="Date" required=true default=$mvt_copie.date}} + {{:input type="number" name="amount" label="Quantité" required=true default=$mvt_copie.amount}} +
+
+ +
+ Matériel +
+ {{:input type="select" name="category" label="Catégorie" required=true options=$categories default=$eqpmt_init.category}} + {{:input type="text" name="designation" label="Désignation" required=true default=$eqpmt_init.designation}} + {{:input type="textarea" name="comment" label="Remarques" cols="40", rows="3" required=false default=$mvt_copie.comment}} +
+
+ +

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

+ +
+ +{{:admin_footer}} diff --git a/mouvements/entrees/_temporaire.html b/mouvements/entrees/_temporaire.html index 236b2b0..f8d9e80 100644 --- a/mouvements/entrees/_temporaire.html +++ b/mouvements/entrees/_temporaire.html @@ -1,12 +1,14 @@ - {{* 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.designation:$quantite - }} - {{/if}} - {{/foreach}} +{{* -*- 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.designation:$quantite + }} + {{/if}} {{/foreach}} +{{/foreach}} diff --git a/mouvements/entrees/non_repertorie.html b/mouvements/entrees/non_repertorie.html index 6ca311f..26bc3a1 100644 --- a/mouvements/entrees/non_repertorie.html +++ b/mouvements/entrees/non_repertorie.html @@ -1,3 +1,5 @@ +{{* -*- brindille -*- *}} + {{:admin_header title="Entrée de matériel" current="module_equipment"}} {{* barre de navigation *}} diff --git a/mouvements/entrees/retour.html b/mouvements/entrees/retour.html index d0f92e4..8c9e688 100644 --- a/mouvements/entrees/retour.html +++ b/mouvements/entrees/retour.html @@ -1,3 +1,11 @@ +{{* -*- brindille -*- *}} + +{{* + paramètres : + - key : clé du mouvement à modifier + - prop : = 1 si matériel propriété +*}} + {{:admin_header title="Entrée de matériel" current="module_equipment"}} {{* barre de navigation *}} @@ -53,7 +61,8 @@ comment=$_POST.remarques|trim }} - {{:redirect force="index.html?ok=1&msg=entrée"}} + {{*:redirect force="index.html?ok=1&msg=entrée"*}} + {{:redirect force="../../historique.html?ok=1&key=%s&prop=%s&msg=retour"|args:$_POST.equipment:$_GET.prop}} {{else}} {{:form_errors}} {{/form}} diff --git a/mouvements/modifier_mouvement.html b/mouvements/modifier_mouvement.html index 6bdacc1..652d086 100644 --- a/mouvements/modifier_mouvement.html +++ b/mouvements/modifier_mouvement.html @@ -1,5 +1,12 @@ {{* -*- brindille -*- *}} +{{* + paramètres : + - direction : du mouvement à modifier + - key : clé du mouvement à modifier + - prop : = 1 si matériel propriété +*}} + {{if $_GET.direction == "input"}} {{:assign msg_direction="entrée"}} {{else}} @@ -7,7 +14,7 @@ {{/if}} {{:admin_header title="Modifier une %s"|args:$msg_direction current="module_equipment"}} -{{:assign direction=$_GET.direction}} +{{:assign direction_mvt=$_GET.direction}} {{:assign key_mvt=$_GET.key}} {{* récupérer les infos du mouvement à modifier *}} @@ -16,7 +23,7 @@ {{:error message="Aucune %s avec la clé %s"|args:$msg_direction:$key_mvt}} {{/load}} -{{if $direction == "input"}} +{{if $direction_mvt == "input"}} {{:assign input_init=$mvt_modif.input_nature}} {{:assign url="entrees/index.html"}} {{else}} @@ -37,7 +44,7 @@ {{* récupérer la config des entrées/sorties *}} {{:include file="../_get_config.html" keep="config"}} -{{if $direction == "input"}} +{{if $direction_mvt == "input"}} {{* types d'entrées *}} {{#foreach from=$config.input_nature key="label" item="type"}} {{:assign var="input_labels.%s"|args:$label value="%s"|args:$label}} @@ -60,7 +67,7 @@ *}} {{#form on="change"}} {{* préparer le mouvement modifié *}} - {{if $direction == "input"}} + {{if $direction_mvt == "input"}} {{:assign var="mvt_modif.input_nature" from="input_labels.%s"|args:$_POST.type_operation}} {{else}} {{:assign var="mvt_modif.output_nature" from="output_labels.%s"|args:$_POST.type_operation}} @@ -86,7 +93,10 @@ assign="movement" }} {{if $key != $key_mvt}} - {{if $date > $mvt_modif.date && ! $insere}} + {{if $direction_mvt == "input" && ! $insere && $date >= $mvt_modif.date}} + {{:assign var="movements_modif." from=mvt_modif}} + {{:assign insere=true}} + {{elseif $direction_mvt == "output" && ! $insere && $date > $mvt_modif.date}} {{:assign var="movements_modif." from=mvt_modif}} {{:assign insere=true}} {{/if}} @@ -119,7 +129,7 @@ {{if $erreur}}

Modification demandée impossible : - {{if $direction == "input"}} + {{if $direction_mvt == "input"}} « {{$input_init}} de {{$eqpmt_init.designation}} (qté : {{$amount_init}}) en date du {{$date_init}} » vers « {{$mvt_modif.input_nature}} de {{$eqpmt.designation}} (qté : {{$mvt_modif.amount}}) à la date du {{$mvt_modif.date|date_short}} » {{else}} @@ -133,7 +143,7 @@ key=$key_mvt validate_schema="./movement.schema.json" type="movement" - direction=$direction + direction=$direction_mvt input_nature=$mvt_modif.input_nature output_nature=$mvt_modif.output_nature amount=$mvt_modif.amount|intval @@ -141,7 +151,11 @@ date=$mvt_modif.date comment=$mvt_modif.comment }} - {{:redirect force="%s?ok=1&msg=modification"|args:$url}} + {{if $key_eqpmt_init == $_POST.equipment}} + {{:redirect force="../historique.html?ok=1&key=%s&prop=%smsg=modification"|args:$_POST.equipment:$_GET.prop}} + {{else}} + {{:redirect force="../index.html?ok=1&msg=modification"}} + {{/if}} {{/if}} {{/form}} @@ -162,7 +176,7 @@

- {{if $direction == "input"}} + {{if $direction_mvt == "input"}} Modifier l'entrée « {{$input_init}} {{$eqpmt_init.designation}} ({{$amount_init}}) en date du {{$date_init}} »
{{:input type="select" name="type_operation" label="Type" required=true options=$input_labels default=$type_defaut}} diff --git a/mouvements/sorties/_temporaire.html b/mouvements/sorties/_temporaire.html index 51bf870..9732a2e 100644 --- a/mouvements/sorties/_temporaire.html +++ b/mouvements/sorties/_temporaire.html @@ -1,3 +1,5 @@ +{{* -*- 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"}} diff --git a/mouvements/sorties/emprunte.html b/mouvements/sorties/emprunte.html index f574b23..945934a 100644 --- a/mouvements/sorties/emprunte.html +++ b/mouvements/sorties/emprunte.html @@ -1,5 +1,11 @@ {{* -*- brindille -*- *}} +{{* + paramètres : + - key : clé du mouvement à modifier + - prop : = 1 si matériel propriété +*}} + {{:admin_header title="Sortie de matériel" current="module_equipment"}} {{if ! $dialog}} @@ -100,7 +106,8 @@ date=$_POST.date|parse_date comment=$_POST.remarques|trim }} - {{:redirect force="index.html?ok=1&msg=sortie"}} + {{*:redirect force="index.html?ok=1&msg=sortie"*}} + {{:redirect force="../../historique.html?ok=1&key=%s&prop=%s&msg=sortie"|args:$_POST.equipment:$_GET.prop}} {{else}} {{:form_errors}} {{/form}} diff --git a/mouvements/sorties/stock_disponible.html b/mouvements/sorties/stock_disponible.html index 0f955d3..8ccc989 100644 --- a/mouvements/sorties/stock_disponible.html +++ b/mouvements/sorties/stock_disponible.html @@ -1,5 +1,11 @@ {{* -*- brindille -*- *}} +{{* + paramètres : + - key : clé du mouvement à modifier + - prop : = 1 si matériel propriété +*}} + {{:admin_header title="Sortie de matériel" current="module_equipment"}} {{if ! $dialog}} @@ -100,7 +106,7 @@ date=$_POST.date|parse_date comment=$_POST.remarques|trim }} - {{:redirect force="index.html?ok=1&msg=sortie"}} + {{:redirect force="../../historique.html?ok=1&key=%s&prop=%s&msg=sortie"|args:$_POST.equipment:$_GET.prop}} {{else}} {{:form_errors}} {{/form}} @@ -123,6 +129,11 @@ {{/foreach}} {{if $disponibilites != null}} + {{* déterminer le matériel concerné par le mouvement *}} + {{#load key=$_GET.key}} + {{:assign eqpmt_key=$equipment}} + {{/load}} + {{* formulaire de sortie de matériel *}}
@@ -137,7 +148,7 @@ Matériel

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

- {{:input type="select_groups" name="equipment" label="Matériel" required=true options=$disponibilites onchange="fixerValeurMax('f_equipment', 'f_quantite')"}} + {{:input type="select_groups" name="equipment" label="Matériel" required=true options=$disponibilites default=$eqpmt_key onchange="fixerValeurMax('f_equipment', 'f_quantite')"}} {{:input type="textarea" name="remarques" label="Remarques" cols="40" rows="3" required=false}}
diff --git a/mouvements/supprimer_mouvement.html b/mouvements/supprimer_mouvement.html new file mode 100644 index 0000000..9574ed7 --- /dev/null +++ b/mouvements/supprimer_mouvement.html @@ -0,0 +1,135 @@ +{{* -*- brindille -*-}} + +{{* + paramètres GET : + - key : clé du mouvement à supprimer +*}} + +{{:assign var="libelles.input" value="entrée"}} +{{:assign var="libelles.output" value="sortie"}} + +{{#load key=$_GET.key assign="mvt_suppr"}} +{{else}} + {{:error message="Aucun mouvement avec la clé « %s »"|args:$_GET.key}} +{{/load}} + +{{:assign var="libelle" from="libelles.%s"|args:$mvt_suppr.direction}} +{{:assign key_eqpmt_suppr=$mvt_suppr.equipment}} +{{:assign var="date_suppr" value="%s"|args:$mvt_suppr.date|date_short}} + +{{* trouver le matériel concerné par ce mouvement *}} +{{#load type="equipment" where="key = :key" :key=$mvt_suppr.equipment assign="equipment"}} +{{else}} + {{:error message="Aucun matériel avec la clé « %s »"|args:$mvt_suppr.equipment}} +{{/load}} + + +{{:admin_header title="Supprimer une %s"|args:$libelle current="module_equipment"}} + +{{#form on="delete"}} + {{* récupérer la config des entrées/sorties *}} + {{:include file="../_get_config.html" keep="config"}} + + {{* TODO vérifier s'il est possible de supprimer le mouvement *}} + {{if $mvt_suppr.direction == 'input'}} + {{:assign dispo=0}} + {{:assign nonprop=0}} + + {{#load + type="movement" + where="$$.equipment = :key" :key=$mvt_suppr.equipment + assign="mvt" + order="$$.date"}} + + {{* déterminer le type de mouvement *}} + {{:assign var="mvt_nature" from="mvt.%s_nature"|args:$mvt.direction}} + {{:assign var="type_mvt" from="config.%s_nature.%s"|args:$mvt.direction:$mvt_nature}} + + {{if $key != $_GET.key}} + {{* ce n'est pas le mouvement à supprimer : cumuler les entrées/sorties *}} + {{if $mvt.direction == 'input'}} + {{if $type_mvt == 'temporaire'}} + {{:assign nonprop="%d+%d"|math:$nonprop:$mvt.amount}} + {{else}} + {{:assign dispo="%d+%d"|math:$dispo:$mvt.amount}} + {{/if}} + {{elseif $mvt.direction == 'output'}} + {{if $type_mvt == 'retour'}} + {{:assign nonprop="%d-%d"|math:$nonprop:$mvt.amount}} + {{else}} + {{:assign dispo="%d-%d"|math:$dispo:$mvt.amount}} + {{/if}} + {{/if}} + + {{* problème ? *}} + {{if $dispo < 0 || $nonprop < 0}} + {{:redirect force="../historique.html?key=%s&prop=%s&err=1&msg=suppression"|args:$mvt_suppr.equipment:$_GET.prop}} + {{/if}} + + {{/if}} + {{/load}} + + {{else}} + {{* sortie *}} + {{:assign temporaire=false}} + {{:assign var="output_nature" from="config.output_nature.%s"|args:$mvt_suppr.output_nature}} + + {{if $output_nature == 'temporaire'}} + {{:assign exterieur=0}} + {{#load + type="movement" + where="$$.equipment = :key" :key=$mvt_suppr.equipment + assign="mvt" + order="$$.date"}} + + {{* déterminer le type de mouvement *}} + {{:assign var="mvt_nature" from="mvt.%s_nature"|args:$mvt.direction}} + {{:assign var="type_mvt" from="config.%s_nature.%s"|args:$mvt.direction:$mvt_nature}} + + {{if $key != $_GET.key}} + {{* ce n'est pas le mouvement à supprimer : cumuler les entrées/sorties *}} + {{if $mvt.direction == 'input'}} + {{if $type_mvt == 'retour'}} + {{:assign exterieur="%d-%d"|math:$exterieur:$mvt.amount}} + {{/if}} + {{elseif $mvt.direction == 'output'}} + {{if $type_mvt == 'temporaire'}} + {{:assign exterieur="%d+%d"|math:$exterieur:$mvt.amount}} + {{/if}} + {{/if}} + + {{* problème ? *}} + {{if $exterieur < 0}} + {{:redirect force="../historique.html?key=%s&prop=%s&err=1&msg=suppression"|args:$mvt_suppr.equipment:$_GET.prop}} + {{/if}} + {{/if}} + {{/load}} + {{/if}} + {{/if}} + + {{* vérification réussie : supprimer le mouvement *}} + {{:delete key=$_GET.key}} + {{:assign libelle=$libelle|ucfirst}} + {{:assign var="msg" value="%s « %s (%d) en date du %s » supprimée"|args:$libelle:$equipment.designation:$mvt_suppr.amount:$date_suppr}} + + {{* voir s'il reste des mouvements pour le matériel concerné par le mouvement supprimé *}} + {{#load type="movement" where="$$.equipment = :eqpmt_key" :eqpmt_key=$equipment.key}} + {{else}} + {{* supprimer le matériel *}} + {{:delete key=$equipment.key}} + {{:assign var="msg" value="%s - Matériel « %s » supprimé"|args:$msg:$equipment.designation}} + {{:redirect force="../index.html?ok=1&msg=%s"|args:$msg}} + {{/load}} + + {{:redirect force="../historique.html?ok=1&key=%s&prop=%s&msg=%s"|args:$mvt_suppr.equipment:$_GET.prop:$msg}} +{{/form}} + +{{:delete_form + legend="Supprimer cette %s ?"|args:$libelle + warning="Supprimer « %s (%d) en date du %s » ?"|args:$equipment.designation:$mvt_suppr.amount:$date_suppr + info="S'il ne reste aucun mouvement pour ce matériel, le matériel sera supprimé" +}} + +{{:form_errors}} + +{{:admin_footer}} From 9a11e55ad70ced9427c34cad55910ebc9f8368c6 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 28 Oct 2024 13:41:19 +0100 Subject: [PATCH 03/54] =?UTF-8?q?Suppression=20fichiers=20inutilis=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mouvements/entrees/delete_entree.html | 85 -------------------- mouvements/entrees/index.html | 103 ------------------------- mouvements/entrees/non_repertorie.html | 101 ------------------------ mouvements/entrees/repertorie.html | 83 -------------------- mouvements/sorties/delete_sortie.html | 87 --------------------- mouvements/sorties/index.html | 101 ------------------------ 6 files changed, 560 deletions(-) delete mode 100644 mouvements/entrees/delete_entree.html delete mode 100644 mouvements/entrees/index.html delete mode 100644 mouvements/entrees/non_repertorie.html delete mode 100644 mouvements/entrees/repertorie.html delete mode 100644 mouvements/sorties/delete_sortie.html delete mode 100644 mouvements/sorties/index.html diff --git a/mouvements/entrees/delete_entree.html b/mouvements/entrees/delete_entree.html deleted file mode 100644 index b098cae..0000000 --- a/mouvements/entrees/delete_entree.html +++ /dev/null @@ -1,85 +0,0 @@ -{{:admin_header title="Supprimer une entrée" current="module_equipment"}} - -{{* récupérer les infos du mouvement à supprimer et du matériel associé *}} -{{#load key=$_GET.key assign="mvt_suppr"}} -{{else}} - {{:error message="Aucune entrée avec la clé « %s »"|args:$_GET.key}} -{{/load}} - -{{:assign amount_suppr=$mvt_suppr.amount}} -{{:assign date_suppr=$mvt_suppr.date|date_short}} -{{:assign key_eqpmt_suppr=$mvt_suppr.equipment}} - -{{#load key=$key_eqpmt_suppr assign="eqpmt_suppr"}} -{{else}} - {{:error message="Aucun matériel avec la clé « %s »"|args:$key_eqpmt_suppr}} -{{/load}} - -{{#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 l'entrée *}} - {{:assign dispo=0}} - {{:assign nonprop=0}} - {{* parcourir la liste des mouvements du matériel *}} - - {{#load - type="movement" - where="$$.equipment = :key" :key=$key_eqpmt_suppr - assign="mvt" - order="$$.date"}} - - {{* déterminer le type de mouvement *}} - {{:assign var="mvt_nature" from="mvt.%s_nature"|args:$mvt.direction}} - {{:assign var="type_mvt" from="config.%s_nature.%s"|args:$mvt.direction:$mvt_nature}} - - {{if $key != $_GET.key}} - {{* ce n'est pas le mouvement à supprimer : cumuler les entrées/sorties *}} - {{if $mvt.direction == 'input'}} - {{if $type_mvt == 'temporaire'}} - {{:assign nonprop="%d+%d"|math:$nonprop:$mvt.amount}} - {{else}} - {{:assign dispo="%d+%d"|math:$dispo:$mvt.amount}} - {{/if}} - {{elseif $mvt.direction == 'output'}} - {{if $type_mvt == 'retour'}} - {{:assign nonprop="%d-%d"|math:$nonprop:$mvt.amount}} - {{else}} - {{:assign dispo="%d-%d"|math:$dispo:$mvt.amount}} - {{/if}} - {{/if}} - - {{* problème ? *}} - {{if $dispo < 0 || $nonprop < 0}} - {{:redirect force="./index.html?err=1&msg=suppression"}} - {{/if}} - - {{/if}} - {{/load}} - - {{* vérification réussie : supprimer l'entrée *}} - {{:delete key=$_GET.key}} - {{:assign var="msg" value="suppression"}} - - {{* voir s'il reste des mouvements pour le matériel concerné par le mouvement supprimé *}} - {{#load type="movement" where="$$.equipment = :eqpmt_key" :eqpmt_key=$key_eqpmt_suppr}} - {{else}} - {{* supprimer le matériel *}} - {{:delete key=$key_eqpmt_suppr}} - {{:assign var="msg" value="%s - matériel"|args:$msg}} - {{/load}} - - {{:redirect force="./index.html?ok=1&msg=%s"|args:$msg}} -{{/form}} - -{{:delete_form - legend="Supprimer cette entrée ?" - warning="Supprimer l'entrée « %s %s (%d) en date du %s » ?"|args:$mvt_suppr.input_nature:$eqpmt_suppr.designation:$amount_suppr:$date_suppr - info="S'il ne reste aucun mouvement pour ce matériel, le matériel sera supprimé" -}} - -{{:form_errors}} - -{{:admin_footer}} diff --git a/mouvements/entrees/index.html b/mouvements/entrees/index.html deleted file mode 100644 index a824cf3..0000000 --- a/mouvements/entrees/index.html +++ /dev/null @@ -1,103 +0,0 @@ -{{:admin_header title="Gestion des matériels" current="module_equipment"}} - -{{* barre de navigation *}} -{{:include file="../../_nav.html" current="entrees"}} - -{{if $_GET.ok}} - {{if $_GET.msg|match:"suppression"}} - {{:assign msg="Entrée supprimée"}} - {{if $_GET.msg|match:"matériel"}} - {{:assign var="msg" value="%s - Matériel supprimé"|args:$msg}} - {{/if}} - {{elseif $_GET.msg == "entrée"}} - {{:assign msg="Entrée enregistrée"}} - {{elseif $_GET.msg == "modification"}} - {{:assign msg="Entrée modifiée"}} - {{/if}} -

{{$msg}}

-{{elseif $_GET.err}} - {{if $_GET.msg == "suppression"}} -

Impossible de supprimer l'entrée

- {{/if}} -{{/if}} - -{{* vérifier s'il existe des catégories *}} -{{#load type="category"}} - {{:assign categories_exist=true}} -{{else}} -

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

-{{/load}} - -{{if $categories_exist}} - - {{#load type="equipment"}} - {{:assign disabled=false}} - {{else}} - {{:assign disabled=true}} - {{/load}} - - {{* vérifier s'il y a des sorties temporaires *}} - {{if ! $disabled}} - {{:include file="../../_calcul_dispo.html" keep="cumul_mvt"}} - {{:include file="_temporaire.html" keep="temporaire"}} - {{/if}} - - -
- Ajouter une entrée -
- {{if ! $disabled}} - {{:linkbutton label="Matériel répertorié" shape="plus" href="repertorie.html" target="_dialog"}} - {{/if}} - {{:linkbutton label="Matériel non répertorié" shape="plus" href="non_repertorie.html" target="_dialog"}} - {{if ! $disabled && $temporaire != null}} - {{:linkbutton label="Retour de sortie temporaire" shape="plus" href="retour.html" target="_dialog"}} - {{/if}} -
-
- - - {{* lister les entrées *}} -
-

Liste des entrées

- - {{#list - select=" - $$.date AS 'Date' ; - $$.input_nature AS 'Type' ; - $$.amount AS 'Nombre' ; - (SELECT $$.designation - FROM @TABLE AS b - WHERE b.key = @TABLE.$$.equipment) AS 'Matériel' ; - $$.comment AS 'Remarques'" - type="movement" - direction="input" - order=1}} - - {{:assign var='mvt_key' value=$key}} - - {{$date|date_short}} - {{$input_nature}} - {{$amount}} - {{$col4}} - {{$comment}} - - {{:linkbutton - label="Supprimer" - href="delete_entree.html?key=%s"|args:$mvt_key - shape="delete" - target="_dialog"}} - {{:linkbutton - label="Modifier" - href="../modifier_mouvement.html?key=%s&direction=input"|args:$mvt_key - shape="edit" - target="_dialog"}} - - - {{else}} -

Il n'y a aucune entrée.

- {{/list}} -
-{{/if}} - -{{:admin_footer}} diff --git a/mouvements/entrees/non_repertorie.html b/mouvements/entrees/non_repertorie.html deleted file mode 100644 index 26bc3a1..0000000 --- a/mouvements/entrees/non_repertorie.html +++ /dev/null @@ -1,101 +0,0 @@ -{{* -*- brindille -*- *}} - -{{:admin_header title="Entrée de matériel" current="module_equipment"}} - -{{* barre de navigation *}} -{{if ! $dialog}} - {{:include file="../../_nav.html" current="entrees"}} -{{/if}} - -{{* 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="label" item="type"}} - {{if $type != 'retour'}} - {{:assign var='input_labels.' value="%s"|args:$label}} - {{/if}} -{{/foreach}} - -{{* Traiter l'envoi du formulaire *}} -{{#form on="save"}} - - {{* récupérer les infos de la catégorie *}} - {{#load type="category" key=$_POST.category assign="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}} - {{* 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 - }} - {{/load}} - - {{* Enregistrer le mouvement *}} - {{:assign mvt_key=""|uuid}} - {{:assign var="operation" from="input_labels.%d"|args:$_POST.type_operation}} - - {{:save - key=$mvt_key - validate_schema="../movement.schema.json" - type="movement" - direction="input" - input_nature=$operation - amount=$_POST.quantite|intval - equipment=$equipment_key - date=$_POST.date|parse_date - comment=$_POST.remarques|trim - }} - - {{:redirect force="index.html?ok=1&msg=entrée"}} -{{else}} - {{:form_errors}} -{{/form}} - -{{* lister les catégories disponibles *}} -{{#load type="category" assign="category" order="$$.name"}} -{{:assign var="categories.%s"|args:$category.key value=$category.name}} -{{/load}} - -{{if $categories != null}} - {{* formulaire d'ajout de matériel *}} -
- -
- Ajouter une entrée d'un matériel non répertorié -
- {{: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="number" name="quantite" label="Quantité" required=true default=1}} -
-
- -
- Matériel -
- {{:input type="select" name="category" label="Catégorie" required=true options=$categories}} - {{:input type="text" name="designation" label="Désignation" required=true}} - {{: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 aucune catégorie, il faut en créer au moins une

-{{/if}} -{{:admin_footer}} diff --git a/mouvements/entrees/repertorie.html b/mouvements/entrees/repertorie.html deleted file mode 100644 index 484d5cb..0000000 --- a/mouvements/entrees/repertorie.html +++ /dev/null @@ -1,83 +0,0 @@ -{{:admin_header title="Entrée de matériel" current="module_equipment"}} - -{{* barre de navigation *}} -{{if ! $dialog}} - {{:include file="../../_nav.html" current="entrees"}} -{{/if}} - -{{* 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="label" item="type"}} - {{if $type != 'retour'}} - {{:assign var='input_labels.' value="%s"|args:$label}} - {{/if}} -{{/foreach}} - -{{* Traiter l'envoi du formulaire *}} -{{#form on="save"}} - - {{* récupérer les infos du matériel *}} - {{#load type="equipment" key=$_POST.equipment assign="equipment"}} - {{/load}} - - {{* Enregistrer le mouvement *}} - {{:assign mvt_key=""|uuid}} - {{:assign var="operation" from="input_labels.%d|args:$_POST.type_operation}} - - {{:save - key=$mvt_key - validate_schema="../movement.schema.json" - type="movement" - direction="input" - input_nature=$operation - amount=$_POST.quantite|intval - equipment=$equipment.key - date=$_POST.date|parse_date - comment=$_POST.remarques|trim - }} - - {{:redirect force="index.html?ok=1&msg=entrée"}} -{{else}} - {{:form_errors}} -{{/form}} - -{{* 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 != 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=$input_labels}} - {{: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 déjà répertorié

-{{/if}} - -{{:admin_footer}} diff --git a/mouvements/sorties/delete_sortie.html b/mouvements/sorties/delete_sortie.html deleted file mode 100644 index 37e316a..0000000 --- a/mouvements/sorties/delete_sortie.html +++ /dev/null @@ -1,87 +0,0 @@ -{{:admin_header title="Supprimer une sortie" current="module_equipment"}} - -{{* récupérer les infos du mouvement à supprimer et du matériel associé *}} -{{#load key=$_GET.key assign="mvt_suppr"}} -{{else}} - {{:error message="Aucune sortie avec la clé « %s »"|args:$_GET.key}} -{{/load}} - -{{:assign amount_suppr=$mvt_suppr.amount}} -{{:assign date_suppr=$mvt_suppr.date|date_short}} -{{:assign key_eqpmt_suppr=$mvt_suppr.equipment}} - -{{#load key=$key_eqpmt_suppr assign="eqpmt_suppr"}} -{{else}} - {{:error message="Aucun matériel avec la clé « %s »"|args:$key_eqpmt_suppr}} -{{/load}} - -{{#form on="delete"}} - - {{* récupérer la config des entrées/sorties *}} - {{:include file="../../_get_config.html" keep="config"}} - - {{* déterminer s'il s'agit d'une sortie temporaire *}} - {{:assign temporaire=false}} - {{:assign var="output_nature" from="config.output_nature.%s"|args:$mvt_suppr.output_nature}} - - {{if $output_nature == 'temporaire'}} - {{:assign temporaire=true}} - {{/if}} - - {{* dans le cas d'une sortie temporaire, vérifier s'il est possible de la supprimer *}} - {{if $temporaire}} - {{:assign exterieur=0}} - {{#load - type="movement" - where="$$.equipment = :key" :key=$key_eqpmt_suppr - assign="mvt" - order="$$.date"}} - - {{* déterminer le type de mouvement *}} - {{:assign var="mvt_nature" from="mvt.%s_nature"|args:$mvt.direction}} - {{:assign var="type_mvt" from="config.%s_nature.%s"|args:$mvt.direction:$mvt_nature}} - - {{if $key != $_GET.key}} - {{* ce n'est pas le mouvement à supprimer : cumuler les entrées/sorties *}} - {{if $mvt.direction == 'input'}} - {{if $type_mvt == 'retour'}} - {{:assign exterieur="%d-%d"|math:$exterieur:$mvt.amount}} - {{/if}} - {{elseif $mvt.direction == 'output'}} - {{if $type_mvt == 'temporaire'}} - {{:assign exterieur="%d+%d"|math:$exterieur:$mvt.amount}} - {{/if}} - {{/if}} - - {{* problème ? *}} - {{if $exterieur < 0}} - {{:redirect force="./index.html?err=1&msg=suppression"}} - {{/if}} - {{/if}} - {{/load}} - {{/if}} - - {{* vérification réussie : supprimer la sortie *}} - {{:delete key=$_GET.key}} - {{:assign var="msg" value="suppression"}} - - {{* voir s'il reste des mouvements pour le matériel concerné par le mouvement supprimé *}} - {{#load type="movement" where="$$.equipment = :eqpmt_key" :eqpmt_key=$key_eqpmt_suppr}} - {{else}} - {{* supprimer le matériel *}} - {{:delete key=$key_eqpmt_suppr}} - {{:assign var="msg" value="%s - matériel"|args:$msg}} - {{/load}} - - {{:redirect force="./index.html?ok=1&msg=%s"|args:$msg}} -{{/form}} - -{{:delete_form - legend="Supprimer cette sortie ?" - warning="Supprimer la sortie « %s %s (%d) en date du %s » ?"|args:$mvt_suppr.output_nature:$eqpmt_suppr.designation:$amount_suppr:$date_suppr - info="S'il ne reste aucun mouvement pour ce matériel, le matériel sera supprimé" -}} - -{{:form_errors}} - -{{:admin_footer}} diff --git a/mouvements/sorties/index.html b/mouvements/sorties/index.html deleted file mode 100644 index 513dfc1..0000000 --- a/mouvements/sorties/index.html +++ /dev/null @@ -1,101 +0,0 @@ -{{:admin_header title="Gestion des matériels" current="module_equipment"}} - -{{* barre de navigation *}} -{{:include file="../../_nav.html" current="sorties"}} - -{{if $_GET.ok}} - {{if $_GET.msg|match:"suppression"}} - {{:assign msg="Sortie supprimée"}} - {{if $_GET.msg|match:"matériel"}} - {{:assign var="msg" value="%s - Matériel supprimé"|args:$msg}} - {{/if}} - {{elseif $_GET.msg == "sortie"}} - {{:assign msg="Sortie enregistrée"}} - {{elseif $_GET.msg == "modification"}} - {{:assign msg="Sortie modifiée"}} - {{/if}} -

{{$msg}}

-{{elseif $_GET.err}} - {{if $_GET.msg == "suppression"}} -

Impossible de supprimer la sortie

- {{/if}} -{{/if}} - -{{* vérifier s'il existe des catégories *}} -{{#load type="category"}} - {{:assign categories_exist=true}} -{{else}} -

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

-{{/load}} - -{{if $categories_exist}} - - {{* vérifier s'il y a eu des entrées de matériel *}} - {{#load type="equipment"}} - {{:assign disabled=false}} - {{else}} - {{:assign disabled=true}} - {{/load}} - - {{* vérifier s'il y a des entrées temporaires *}} - {{if ! $disabled}} - {{:include file="../../_calcul_dispo.html" keep="cumul_mvt"}} - {{:include file="_temporaire.html" keep="temporaire"}} - -
-
- Ajouter une sortie -
- {{:linkbutton label="Matériel en stock disponible" shape="plus" href="stock_disponible.html" target="_dialog"}} - {{if $temporaire != null}} - {{:linkbutton label="Matériel emprunté" shape="plus" href="emprunte.html" target="_dialog"}} - {{/if}} -
-
-
- {{/if}} - - {{* lister les sorties *}} -
-

Liste des sorties

- - {{#list - select=" - $$.date AS 'Date' ; - $$.output_nature AS 'Type' ; - $$.amount AS 'Nombre' ; - (SELECT $$.designation - FROM @TABLE AS b - WHERE b.key = @TABLE.$$.equipment) AS 'Matériel' ; - $$.comment AS 'Remarques'" - type="movement" - direction="output" - order=1}} - - {{:assign var='mvt_key' value=$key}} - - {{$date|date_short}} - {{$output_nature}} - {{$amount}} - {{$col4}} - {{$comment}} - - {{:linkbutton - label="Supprimer" - href="delete_sortie.html?key=%s"|args:$mvt_key - shape="delete" - target="_dialog"}} - {{:linkbutton - label="Modifier" - href="../modifier_mouvement.html?key=%s&direction=output"|args:$mvt_key - shape="edit" - target="_dialog"}} - - - {{else}} -

Il n'y a aucune sortie.

- {{/list}} -
-{{/if}} - -{{:admin_footer}} From 5307a847b9cbe56738808caf9b9c27ae3ba5202e Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 29 Oct 2024 10:24:50 +0100 Subject: [PATCH 04/54] =?UTF-8?q?modification=20url=20et=20d=C3=A9placemen?= =?UTF-8?q?t=20bouton=20cr=C3=A9er=20nouveau=20mat=C3=A9riel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- historique.html | 12 ++++++------ index.html | 5 +++++ inventaire.html | 10 +++------- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/historique.html b/historique.html index d4f3f30..0d307cf 100644 --- a/historique.html +++ b/historique.html @@ -99,35 +99,35 @@ {{if $direction === "input" && $type_mvt == 'temporaire'}} {{:linkbutton label="Retour" - href="mouvements/sorties/emprunte.html?key=%s&prop=%s"|args:$key:$_GET.prop + href="%smouvements/sorties/emprunte.html?key=%s&prop=%s"|args:$module.url:$key:$_GET.prop shape="history" target="_dialog"}} {{elseif $direction === "input" && $type_mvt == 'définitif'}} {{:linkbutton label="Sortir" - href="mouvements/sorties/stock_disponible.html?key=%s&prop=%s"|args:$key:$_GET.prop + href="%smouvements/sorties/stock_disponible.html?key=%s&prop=%s"|args:$module.url:$key:$_GET.prop shape="minus" target="_dialog"}} {{elseif $direction === "output" && $type_mvt == 'temporaire'}} {{:linkbutton label="Retour" - href="mouvements/entrees/retour.html?key=%s&prop=%s"|args:$key:$_GET.prop + href="%smouvements/entrees/retour.html?key=%s&prop=%s"|args:$module.url:$key:$_GET.prop shape="history" target="_dialog"}} {{/if}} {{:linkbutton label="Dupliquer" - href="mouvements/dupliquer_mouvement.html?key=%s&direction=%s&prop=%s"|args:$key:$direction:$_GET.prop + href="%smouvements/dupliquer_mouvement.html?key=%s&direction=%s&prop=%s"|args:$module.url:$key:$direction:$_GET.prop shape="plus" target="_dialog"}} {{:linkbutton label="Modifier" - href="mouvements/modifier_mouvement.html?key=%s&direction=%s&prop=%s"|args:$key:$direction:$_GET.prop + href="%smouvements/modifier_mouvement.html?key=%s&direction=%s&prop=%s"|args:$module.url:$key:$direction:$_GET.prop shape="edit" target="_dialog"}} {{:linkbutton label="Supprimer" - href="mouvements/supprimer_mouvement.html?key=%s&direction=%s&prop=%s"|args:$key:$direction:$_GET.prop + href="%smouvements/supprimer_mouvement.html?key=%s&direction=%s&prop=%s"|args:$module.url:$key:$direction:$_GET.prop shape="delete" target="_dialog"}} diff --git a/index.html b/index.html index 84b8050..98b824d 100644 --- a/index.html +++ b/index.html @@ -8,6 +8,8 @@ {{if $_GET.ok}} {{if $_GET.msg == "ajout" }}

Ajout effectué

+ {{elseif $_GET.msg == "modification" }} +

Modification effectuée

{{else}}

{{$_GET.msg}}

{{/if}} @@ -22,6 +24,9 @@ {{if $category_keys|count == 0}}

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

{{else}} +
+ {{:linkbutton label="Ajouter un nouveau matériel" shape="plus" href="mouvements/ajouter_entree.html" target="_dialog"}} +
{{:include file="./inventaire.html" print_cat_name=true}} {{/if}} diff --git a/inventaire.html b/inventaire.html index d4c4057..431b8d0 100644 --- a/inventaire.html +++ b/inventaire.html @@ -2,10 +2,6 @@ {{* inventaire des entrées/sorties des matériels des catégories de la variable category_keys *}} -
- {{:linkbutton label="Ajouter un nouveau matériel" shape="plus" href="mouvements/ajouter_entree.html" target="_dialog"}} -
- {{* Extraire et compiler les infos de la base *}} {{:include file="./_calcul_dispo.html" keep="cumul_mvt,category_keys,equipments"}} @@ -57,7 +53,7 @@ {{* itérer sur les matériels de la catégorie *}} {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} {{:assign keys=$eqpmt|keys}} - {{if "stock"|in:$keys && $eqpmt.stock !== 0}} + {{if "stock"|in:$keys}} {{* && $eqpmt.stock !== 0}}*}} {{if "exterieur"|in:$keys}} {{:assign dispo="%d-%d"|math:$eqpmt.stock:$eqpmt.exterieur}} {{:assign exterieur=$eqpmt.exterieur}} @@ -73,11 +69,11 @@ {{:linkbutton label="Mouvements" - href="historique.html?key=%s&prop=1"|args:$eqpmt_key + href="%shistorique.html?key=%s&prop=1"|args:$module.url:$eqpmt_key shape="table"}} {{:linkbutton label="Modifier" - href="modifier_materiel.html?key=%s"|args:$eqpmt_key + href="%smodifier_materiel.html?key=%s"|args:$module.url:$eqpmt_key shape="edit" target="_dialog"}} From 4a24ea40db31dd66dbaba90fbc02638647e34e29 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 29 Oct 2024 11:55:10 +0100 Subject: [PATCH 05/54] =?UTF-8?q?am=C3=A9lioration=20comparaison=20nom=20c?= =?UTF-8?q?at=C3=A9gorie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- categories/index.html | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/categories/index.html b/categories/index.html index 97c41bc..5bab274 100644 --- a/categories/index.html +++ b/categories/index.html @@ -41,8 +41,11 @@ {{#form on="save"}} {{* Vérifier s'il existe déjà une catégorie avec le même nom *}} - {{#load type="category" where="lower($$.name) = :name" :name=$_POST.name|trim|tolower}} - {{:error message="Impossible d'ajouter la catégorie « %s » car elle existe déjà !"|args:$name|trim}} + {{#load type="category"}} + {{if $name|tolower == $_POST.name|trim|tolower}} + {{:error message="Impossible d'ajouter la catégorie « %s » car elle existe déjà !"|args:$name|trim}} + {{:break}} + {{/if}} {{/load}} {{:assign key=""|uuid}} @@ -50,7 +53,7 @@ key=$key validate_schema="./category.schema.json" type="category" - name=$_POST.name|trim + name=$_POST.name|trim|tolower|ucfirst }} {{:redirect to="./index.html?ok=1&msg=Catégorie enregistrée"}} {{/form}} From 795e55e172866d027e1faaa4b8f04a3174b2561b Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 29 Oct 2024 11:57:14 +0100 Subject: [PATCH 06/54] =?UTF-8?q?v=C3=A9rification=20ajout=20mat=C3=A9riel?= =?UTF-8?q?=20en=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}}
From 86443b9bb028340d7e225b03ba1e755b9add1450 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 29 Oct 2024 14:20:06 +0100 Subject: [PATCH 07/54] =?UTF-8?q?test=20pr=C3=A9sence=20mat=C3=A9riel=20da?= =?UTF-8?q?ns=20cat=C3=A9gorie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- categories/index.html | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/categories/index.html b/categories/index.html index 5bab274..3540ad5 100644 --- a/categories/index.html +++ b/categories/index.html @@ -24,10 +24,19 @@ {{* afficher les catégories déjà enregistrées *}}
{{#list select="$$.name AS 'Catégorie'" order="1" where="$$.type = 'category'"}} + {{:assign category_key=$key}} + {{* voir s'il y a des matériels dans cette catégorie *}} + {{:assign materiel_present=true}} + {{#load type="equipment" where="$$.category = :category_key" :category_key=$category_key}} + {{else}} + {{:assign materiel_present=false}} + {{/load}} {{$name}} - {{:linkbutton label="Liste des matériels" href="list_equipment.html?key=%s&dialog"|args:$key shape="search" target="_dialog"}} + {{if $materiel_present}} + {{:linkbutton label="Liste des matériels" href="list_equipment.html?key=%s&dialog"|args:$key shape="search" target="_dialog"}} + {{/if}} {{:linkbutton label="Modifier" href="modify_category.html?key=%s"|args:$key shape="edit" target="_dialog"}} {{:linkbutton label="Supprimer" href="delete_category.html?key=%s"|args:$key shape="delete" target="_dialog"}} From c2844a17bfab51a9ce1bd675bbcc4aa6cdc89ad8 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 29 Oct 2024 14:52:34 +0100 Subject: [PATCH 08/54] =?UTF-8?q?ajout=20contr=C3=B4le=20quantit=C3=A9=20p?= =?UTF-8?q?ositive?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mouvements/ajouter_entree.html | 10 ++++++---- mouvements/modifier_mouvement.html | 7 ++++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/mouvements/ajouter_entree.html b/mouvements/ajouter_entree.html index 7c7d72b..7f7a5d0 100644 --- a/mouvements/ajouter_entree.html +++ b/mouvements/ajouter_entree.html @@ -30,6 +30,10 @@ {{#form on="save"}} {{* vérifier les infos saisies *}} + {{if $_POST.quantite <= 0}} + {{:error message="La quantité (%s) doit être strictement positive !!"|args:$_POST.quantite}} + {{/if}} + {{if $_POST.equipment == null && $_POST.category == null && $_POST.designation == null}} {{:error message="Il faut choisir un matériel existant ou sélectionner une catégorie et indiquer le nom du nouveau matériel"}} @@ -42,8 +46,7 @@ {{#load key=$_POST.equipment assign=equipment}} {{/load}} {{if $_POST.designation != null}} - {{:assign message="Vous avez choisi un matériel dans la liste (%s) et indiqué le nom d'un nouveau matériel (%s) : l'un des deux est de trop"|args:$equipment.designation:$_POST.designation}} - {{:error message=$message}} + {{:error message="Vous avez choisi un matériel dans la liste (%s) et indiqué le nom d'un nouveau matériel (%s) : l'un des deux est de trop"|args:$equipment.designation:$_POST.designation}} {{/if}} {{/if}} @@ -70,8 +73,7 @@ {{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}} + {{:error message="Le matériel « %s » est déjà présent dans la catégorie « %s » ..."|args:$post_mat:$nom_cat}} {{/if}} {{* utiliser la clé du matériel trouvé *}} diff --git a/mouvements/modifier_mouvement.html b/mouvements/modifier_mouvement.html index 652d086..70c5f8e 100644 --- a/mouvements/modifier_mouvement.html +++ b/mouvements/modifier_mouvement.html @@ -66,6 +66,10 @@ -------------------- Traiter la saisie -------------------- *}} {{#form on="change"}} + {{if $_POST.amount <= 0}} + {{:error message="La quantité (%s) doit être strictement positive !!"|args:$_POST.amount}} + {{/if}} + {{* préparer le mouvement modifié *}} {{if $direction_mvt == "input"}} {{:assign var="mvt_modif.input_nature" from="input_labels.%s"|args:$_POST.type_operation}} @@ -157,7 +161,8 @@ {{:redirect force="../index.html?ok=1&msg=modification"}} {{/if}} {{/if}} - +{{else}} + {{:form_errors}} {{/form}} {{* From cdb7b83325be8e651e2add6310acc2cf62b5b66d Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 29 Oct 2024 14:56:05 +0100 Subject: [PATCH 09/54] =?UTF-8?q?inventaire=20:=20ajout=20pr=C3=A9sence=20?= =?UTF-8?q?mat=C3=A9riel=20propri=C3=A9t=C3=A9=20ou=20non?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inventaire.html | 303 +++++++++++++++++++++++++----------------------- 1 file changed, 159 insertions(+), 144 deletions(-) diff --git a/inventaire.html b/inventaire.html index 431b8d0..c5680f9 100644 --- a/inventaire.html +++ b/inventaire.html @@ -6,158 +6,173 @@ {{:include file="./_calcul_dispo.html" keep="cumul_mvt,category_keys,equipments"}} {{* Afficher les résultats *}} - {{if $equipments === null}}

Aucun matériel.

{{else}} -
- -

Matériels dont l'association est propriétaire

-
-
+ {{* Vérifier s'il y a au moins un matériel propriété ou non de l'asso *}} + {{:assign mat_prop=false}} + {{:assign mat_non_prop=false}} + {{#foreach from=$equipments key=key item=eqpmt}} + {{if $eqpmt|has_key:"stock"}} + {{:assign mat_prop=true}} + {{/if}} + {{if $eqpmt|has_key:"nonproprio"}} + {{:assign mat_non_prop=true}} + {{/if}} + {{/foreach}} - {{* itérer sur les catégories *}} - {{#foreach from=$cumul_mvt key="cat_key" item="cat_elem"}} + {{if $mat_prop}} +
+ +

Matériels dont l'association est propriétaire

+
- {{* vérifier s'il y a des matériels dans cette catégorie *}} - {{:assign present=false}} - {{if $cat_elem|keys|has:"eqpmt"}} - {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} - {{if $eqpmt.stock !== null && $eqpmt.stock !== 0}} - {{:assign present=true}} - {{:break}} - {{/if}} - {{/foreach}} - {{/if}} +
+ {{* itérer sur les catégories *}} + {{#foreach from=$cumul_mvt key="cat_key" item="cat_elem"}} - {{if $present}} - {{if $print_cat_name}} -
- -

{{$cat_elem.name}}

- {{/if}} -
- - - - - - - - - - - - - - {{* itérer sur les matériels de la catégorie *}} - {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} - {{:assign keys=$eqpmt|keys}} - {{if "stock"|in:$keys}} {{* && $eqpmt.stock !== 0}}*}} - {{if "exterieur"|in:$keys}} - {{:assign dispo="%d-%d"|math:$eqpmt.stock:$eqpmt.exterieur}} - {{:assign exterieur=$eqpmt.exterieur}} - {{else}} - {{:assign dispo=$eqpmt.stock}} - {{:assign exterieur=0}} + {{* vérifier s'il y a des matériels dans cette catégorie *}} + {{:assign present=false}} + {{if $cat_elem|keys|has:"eqpmt"}} + {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} + {{if $eqpmt.stock !== null && $eqpmt.stock !== 0}} + {{:assign present=true}} + {{:break}} {{/if}} - - - - - - - - {{/if}} - {{else}} -

Il n'y a aucun matériel dans cette catégorie.

- {{/foreach}} - -
DésignationStockSortieDisponible
{{$eqpmt.designation}}{{$eqpmt.stock}}{{$exterieur}}{{$dispo}} - {{:linkbutton - label="Mouvements" - href="%shistorique.html?key=%s&prop=1"|args:$module.url:$eqpmt_key - shape="table"}} - {{:linkbutton - label="Modifier" - href="%smodifier_materiel.html?key=%s"|args:$module.url:$eqpmt_key - shape="edit" - target="_dialog"}} -
-
- {{/if}} - {{/foreach}} -
-
- -
- -

Matériels dont l'association n'est pas propriétaire

-
-
- - {{* itérer sur les catégories *}} - {{#foreach from=$cumul_mvt key="cat_key" item="cat_elem"}} - - {{* vérifier s'il y a des matériels dans cette catégorie *}} - {{:assign present=false}} - {{if $cat_elem|keys|has:"eqpmt"}} - {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} - {{if $eqpmt.nonproprio !== null && $eqpmt.nonproprio !== 0}} - {{:assign present=true}} - {{:break}} - {{/if}} - {{/foreach}} - {{/if}} - - {{if $present}} - {{if $print_cat_name}} -
- -

{{$cat_elem.name}}

+ {{/foreach}} {{/if}} -
- - - - - - - - - - - {{* itérer sur les matériels de la catégorie *}} - {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} - {{:assign keys=$eqpmt|keys}} - {{if "nonproprio"|in:$keys && $eqpmt.nonproprio !== 0}} - {{:assign dispo="%d-%d"|math:$eqpmt.stock:$eqpmt.exterieur}} - - - - - + {{if $present}} + {{if $print_cat_name}} +
+ +

{{$cat_elem.name}}

{{/if}} - {{else}} -

Il n'y a aucun matériel dans cette catégorie.

- {{/foreach}} -
-
DésignationQuantité
{{$eqpmt.designation}}{{$eqpmt.nonproprio}} - {{:linkbutton - label="Mouvements" - href="historique.html?key=%s"|args:$eqpmt_key - shape="table" - target="_dialog"}} - {{:linkbutton - label="Modifier" - href="modifier_materiel.html?key=%s"|args:$eqpmt_key - shape="edit" - target="_dialog"}} -
-
- {{/if}} - {{/foreach}} -
-
+ + + + + + + + + + + + + + + {{* itérer sur les matériels de la catégorie *}} + {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} + {{:assign keys=$eqpmt|keys}} + {{if "stock"|in:$keys}} {{* && $eqpmt.stock !== 0}}*}} + {{if "exterieur"|in:$keys}} + {{:assign dispo="%d-%d"|math:$eqpmt.stock:$eqpmt.exterieur}} + {{:assign exterieur=$eqpmt.exterieur}} + {{else}} + {{:assign dispo=$eqpmt.stock}} + {{:assign exterieur=0}} + {{/if}} + + + + + + + + {{/if}} + {{else}} +

Il n'y a aucun matériel dans cette catégorie.

+ {{/foreach}} + +
DésignationStockSortieDisponible
{{$eqpmt.designation}}{{$eqpmt.stock}}{{$exterieur}}{{$dispo}} + {{:linkbutton + label="Mouvements" + href="%shistorique.html?key=%s&prop=1"|args:$module.url:$eqpmt_key + shape="table"}} + {{:linkbutton + label="Modifier" + href="%smodifier_materiel.html?key=%s"|args:$module.url:$eqpmt_key + shape="edit" + target="_dialog"}} +
+
+ {{/if}} + {{/foreach}} + + + {{/if}} + + {{if $mat_non_prop}} +
+ +

Matériels dont l'association n'est pas propriétaire

+
+ +
+ {{* itérer sur les catégories *}} + {{#foreach from=$cumul_mvt key="cat_key" item="cat_elem"}} + + {{* vérifier s'il y a des matériels dans cette catégorie *}} + {{:assign present=false}} + {{if $cat_elem|keys|has:"eqpmt"}} + {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} + {{if $eqpmt.nonproprio !== null && $eqpmt.nonproprio !== 0}} + {{:assign present=true}} + {{:break}} + {{/if}} + {{/foreach}} + {{/if}} + + {{if $present}} + {{if $print_cat_name}} +
+ +

{{$cat_elem.name}}

+ {{/if}} +
+ + + + + + + + + + + + {{* itérer sur les matériels de la catégorie *}} + {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} + {{:assign keys=$eqpmt|keys}} + {{if "nonproprio"|in:$keys && $eqpmt.nonproprio !== 0}} + {{:assign dispo="%d-%d"|math:$eqpmt.stock:$eqpmt.exterieur}} + + + + + + {{/if}} + {{else}} +

Il n'y a aucun matériel dans cette catégorie.

+ {{/foreach}} + +
DésignationQuantité
{{$eqpmt.designation}}{{$eqpmt.nonproprio}} + {{:linkbutton + label="Mouvements" + href="historique.html?key=%s"|args:$eqpmt_key + shape="table" + target="_dialog"}} + {{:linkbutton + label="Modifier" + href="modifier_materiel.html?key=%s"|args:$eqpmt_key + shape="edit" + target="_dialog"}} +
+
+ {{/if}} + {{/foreach}} +
+
+ {{/if}} {{/if}} From 0b8e9e8f6952bd032537f0fcaf8aa0542e596110 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 29 Oct 2024 15:19:04 +0100 Subject: [PATCH 10/54] =?UTF-8?q?garantir=20quantit=C3=A9=20saisie=20posit?= =?UTF-8?q?ive?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _calcul_dispo.html | 6 +++--- mouvements/ajouter_entree.html | 2 +- mouvements/dupliquer_mouvement.html | 7 +++++-- mouvements/entrees/retour.html | 2 +- mouvements/modifier_mouvement.html | 2 +- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/_calcul_dispo.html b/_calcul_dispo.html index bcd6997..6fa7189 100644 --- a/_calcul_dispo.html +++ b/_calcul_dispo.html @@ -3,9 +3,9 @@ {{* Calcul des entrées/sorties de matériels à une date donnée paramètres : - - liste de clés de catégories - - date - résultat : cumul_mvt + - category_keys : liste de clés de catégories + - date : date supérieure des mouvements + résultat : cumul_mvt,category_keys,equipments *}} {{* liste des catégories *}} diff --git a/mouvements/ajouter_entree.html b/mouvements/ajouter_entree.html index 7f7a5d0..a4ba084 100644 --- a/mouvements/ajouter_entree.html +++ b/mouvements/ajouter_entree.html @@ -122,7 +122,7 @@
{{: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="number" name="quantite" label="Quantité" required=true default=1}} + {{:input type="number" name="quantite" label="Quantité" min=1 required=true default=1}}
diff --git a/mouvements/dupliquer_mouvement.html b/mouvements/dupliquer_mouvement.html index 7bb73d8..d58e73e 100644 --- a/mouvements/dupliquer_mouvement.html +++ b/mouvements/dupliquer_mouvement.html @@ -1,6 +1,5 @@ {{* -*- brindille -*- *}} - {{if $_GET.direction == "input"}} {{:assign msg_direction="entrée"}} {{else}} @@ -58,6 +57,10 @@ -------------------- Traiter la saisie -------------------- *}} {{#form on="save"}} + {{if $_POST.amount <= 0}} + {{:error message="La quantité (%s) doit être strictement positive !!"|args:$_POST.amount}} + {{/if}} + {{* récupérer les infos de la catégorie *}} {{#load type="category" key=$_POST.category assign="category"}} {{/load}} @@ -137,7 +140,7 @@ {{:input type="select" name="type_operation" label="Type" required=true options=$output_labels default=$type_defaut}} {{/if}} {{:input type="date" name="date" label="Date" required=true default=$mvt_copie.date}} - {{:input type="number" name="amount" label="Quantité" required=true default=$mvt_copie.amount}} + {{:input type="number" name="amount" label="Quantité" min=1 required=true default=$mvt_copie.amount}} diff --git a/mouvements/entrees/retour.html b/mouvements/entrees/retour.html index 8c9e688..5fbbd43 100644 --- a/mouvements/entrees/retour.html +++ b/mouvements/entrees/retour.html @@ -84,7 +84,7 @@
{{: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="number" name="quantite" label="Quantité" required=true default=1}} + {{:input type="number" name="quantite" label="Quantité" min=1 required=true default=1}}
diff --git a/mouvements/modifier_mouvement.html b/mouvements/modifier_mouvement.html index 70c5f8e..96b44c7 100644 --- a/mouvements/modifier_mouvement.html +++ b/mouvements/modifier_mouvement.html @@ -191,7 +191,7 @@ {{:input type="select" name="type_operation" label="Type" required=true options=$output_labels default=$type_defaut}} {{/if}} {{:input type="date" name="date" label="Date" required=true default=$mvt_modif.date}} - {{:input type="number" name="amount" label="Quantité" required=true default=$mvt_modif.amount}} + {{:input type="number" name="amount" label="Quantité" min=1 required=true default=$mvt_modif.amount}}
From 34f3328f12ad5577ce89facafaa7647bd242fc1b Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Fri, 8 Nov 2024 11:58:59 +0100 Subject: [PATCH 11/54] =?UTF-8?q?suppression=20ajout=20mat=C3=A9riel=20exi?= =?UTF-8?q?stant=20dans=20ajouter=5Fentree?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mouvements/ajouter_entree.html | 115 ++++++++++----------------------- 1 file changed, 34 insertions(+), 81 deletions(-) diff --git a/mouvements/ajouter_entree.html b/mouvements/ajouter_entree.html index a4ba084..022f71e 100644 --- a/mouvements/ajouter_entree.html +++ b/mouvements/ajouter_entree.html @@ -29,66 +29,44 @@ {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} - {{* vérifier les infos saisies *}} + {{* vérifier la quantité saisie (UTILE ? : fait par la navigateur) *}} {{if $_POST.quantite <= 0}} {{:error message="La quantité (%s) doit être strictement positive !!"|args:$_POST.quantite}} {{/if}} - {{if $_POST.equipment == null && - $_POST.category == null && $_POST.designation == null}} - {{:error message="Il faut choisir un matériel existant ou sélectionner une catégorie et indiquer le nom du nouveau matériel"}} - {{elseif $_POST.category == null && $_POST.designation != null}} - {{:error message="Vous devez aussi sélectionner une catégorie"}} - {{/if}} + {{:assign var=post_cat from="categories.%s"|args:$_POST.category}} - {{if $_POST.equipment != null}} - {{:assign equipment_key=$_POST.equipment}} - {{#load key=$_POST.equipment assign=equipment}} - {{/load}} - {{if $_POST.designation != null}} - {{:error message="Vous avez choisi un matériel dans la liste (%s) et indiqué le nom d'un nouveau matériel (%s) : l'un des deux est de trop"|args:$equipment.designation:$_POST.designation}} - {{/if}} - {{/if}} - - {{* infos saisies valides *}} - - {{if $_POST.equipment == null}} - {{* récupérer les infos de la catégorie *}} - {{#load type="category" key=$_POST.category assign="post_category"}} - {{/load}} - - {{* vérifier l'existence d'un matériel du même nom *}} - {{: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}} - {{:error message="Le matériel « %s » est déjà présent dans la catégorie « %s » ..."|args:$post_mat:$nom_cat}} + {{* vérifier l'existence d'un matériel de même nom *}} + {{: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}} - {{* utiliser la clé du matériel trouvé *}} - - {{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_mat - }} + {{/foreach}} + {{if $present}}{{:break}}{{/if}} + {{/foreach}} + {{if $present}} + {{* voir si le matériel existe dans une autre catégorie *}} + {{if $nom_cat != $post_cat}} + {{:error message="Le matériel « %s » est déjà présent dans la catégorie « %s » ..."|args:$post_mat:$nom_cat}} {{/if}} + {{* utiliser la clé du matériel trouvé *}} + + {{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_mat + }} {{/if}} {{* Enregistrer le mouvement *}} @@ -126,36 +104,11 @@ - {{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}}
-
- {{if $equipments != null}} -
- Choisir un matériel dans la liste -
- {{:input type="select_groups" name="equipment" label="Matériel" options=$equipments}} -
-
-

 

- {{/if}} -
- 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}} -
-
-
-
+ Sélectionner une catégorie et indiquer le nom du nouveau matériel
+ {{:input type="select" name="category" label="Catégorie" options=$categories required=true}} + {{:input type="text" name="designation" label="Désignation" required=true}} {{:input type="textarea" name="remarques" label="Remarques" cols="40", rows="3" required=false}}
From 528120d3a0e66ccef9ce9d6cbe734b46d1503db8 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Fri, 8 Nov 2024 19:49:23 +0100 Subject: [PATCH 12/54] =?UTF-8?q?ajout=20entr=C3=A9e=20sur=20page=20invent?= =?UTF-8?q?aire?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inventaire.html | 18 +++++-- mouvements/entrees/repertorie.html | 80 ++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+), 4 deletions(-) create mode 100644 mouvements/entrees/repertorie.html diff --git a/inventaire.html b/inventaire.html index c5680f9..6f58693 100644 --- a/inventaire.html +++ b/inventaire.html @@ -43,11 +43,11 @@ {{/if}} {{if $present}} - {{if $print_cat_name}} + {{*if $print_cat_name*}}

{{$cat_elem.name}}

- {{/if}} + {{*/if*}}
@@ -79,6 +79,11 @@
{{$exterieur}} {{$dispo}} + {{:linkbutton + label="Ajouter entrée" + shape="plus" + href="mouvements/entrees/repertorie.html?key=%s"|args:$eqpmt_key + target="_dialog"}} {{:linkbutton label="Mouvements" href="%shistorique.html?key=%s&prop=1"|args:$module.url:$eqpmt_key @@ -125,11 +130,11 @@ {{/if}} {{if $present}} - {{if $print_cat_name}} + {{*if $print_cat_name*}}

{{$cat_elem.name}}

- {{/if}} + {{*/if*}}
@@ -151,6 +156,11 @@ @@ -156,19 +163,26 @@ diff --git a/mouvements/sorties/stock_disponible.html b/mouvements/sorties/stock_disponible.html index 8ccc989..fea90c8 100644 --- a/mouvements/sorties/stock_disponible.html +++ b/mouvements/sorties/stock_disponible.html @@ -2,8 +2,10 @@ {{* paramètres : - - key : clé du mouvement à modifier - - prop : = 1 si matériel propriété + - key : clé du matériel à modifier + - prop : = 1 si matériel propriété de l'asso + + TODO : simplifier *}} {{:admin_header title="Sortie de matériel" current="module_equipment"}} @@ -26,9 +28,8 @@ {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} {{* récupérer les infos du matériel *}} - {{#load type="equipment" key=$_POST.equipment assign="equipment"}} + {{#load type="equipment" key=$_GET.key assign="equipment"}} {{:assign designation=$equipment.designation}} - {{:assign var="category_keys." value=$equipment.category}} {{/load}} {{:assign stock=0}} @@ -37,7 +38,7 @@ {{:assign insere=false}} {{* lister tous les mouvements du matériel *}} - {{#load type="movement" where="$$.equipment = '%s'"|args:$_POST.equipment assign="mvt" order="$$.date ASC"}} + {{#load type="movement" where="$$.equipment = '%s'"|args:$_GET.key assign="mvt" order="$$.date ASC"}} {{* traiter le nouveau mouvement *}} {{if ! $insere && $mvt.date > $_POST.date|parse_date}} @@ -106,75 +107,65 @@ date=$_POST.date|parse_date comment=$_POST.remarques|trim }} - {{:redirect force="../../historique.html?ok=1&key=%s&prop=%s&msg=sortie"|args:$_POST.equipment:$_GET.prop}} + {{:redirect force="../../historique.html?ok=1&key=%s&prop=%s&msg=sortie"|args:$_GET.key:$_GET.prop}} {{else}} {{:form_errors}} {{/form}} {{* Extraire et compiler les infos de la base *}} -{{:include file="../../_calcul_dispo.html" keep="cumul_mvt"}} +{{* TODO simplifier et peut-être mutualiser *}} -{{if $cumul_mvt !== null}} - {{* calculer les disponibilités *}} - {{#foreach from=$cumul_mvt key="cat_key" item="cat_elem"}} - {{#foreach from=$cat_elem.eqpmt key="eqpmt_key" item="eqpmt"}} - {{:assign dispo="%d-%d"|math:$eqpmt.stock:$eqpmt.exterieur}} - {{if $dispo != 0}} - {{:assign - var="disponibilites.%s.%s"|args:$cat_elem.name:$eqpmt_key - value="%s (dispo : %d)"|args:$eqpmt.designation:$dispo - }} - {{/if}} - {{/foreach}} - {{/foreach}} +{{:include file="../../_calcul_dispo.html" keep="cumul_mvt,equipments"}} - {{if $disponibilites != null}} - {{* déterminer le matériel concerné par le mouvement *}} - {{#load key=$_GET.key}} - {{:assign eqpmt_key=$equipment}} - {{/load}} +{{:assign var=stock from="equipments.%s.stock"|args:$_GET.key}} +{{:assign var=exterieur from="equipments.%s.exterieur"|args:$_GET.key}} +{{:assign dispo="%d-%d"|math:$stock:$exterieur}} +{{:assign var=category_key from="equipments.%s.category"|args:$_GET.key}} +{{:assign var=category from="cumul_mvt.%s.name"|args:$category_key}} - {{* formulaire de sortie de matériel *}} - -
- Ajouter une sortie d'un matériel disponible en stock -
+{{if $dispo > 0}} + {{* déterminer le matériel concerné par le mouvement *}} + {{#load key=$_GET.key assign="equipment"}} + {{/load}} + + {{* 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=$output_labels}} {{: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 + {{:input type="text" name="category" label="Catégorie" required=true disabled=true default=$category.name}} + {{:input type="text" name="equipment" label="Matériel" required=true disabled=true default=$equipment.designation}} + {{:input type="text" name="dispo" label="Qté disponible" disabled=true default=$dispo}}

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

-
- {{:input type="select_groups" name="equipment" label="Matériel" required=true options=$disponibilites default=$eqpmt_key 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}} - {{:assign date_err=$now|date:'d/m/Y'}} -

Il n'y a aucun matériel disponible à la date du {{$date_err}}

- {{/if}} + {{:input type="number" name="quantite" label="Quantité" required=true default=1 min=1}} + {{: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 en stock

+ {{:assign date_err=$now|date:'d/m/Y'}} +

Il n'y a aucun matériel disponible à la date du {{$date_err}}

{{/if}} {{:admin_footer}} From ebda00d5904a434bf50d9b00dd8266ff126552a9 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 11 Nov 2024 14:23:58 +0100 Subject: [PATCH 14/54] ajout retour sur page inventaire --- inventaire.html | 14 +++++-- mouvements/entrees/repertorie.html | 9 +--- mouvements/entrees/retour.html | 52 ++++++++++++++++-------- mouvements/sorties/emprunte.html | 47 ++++++++++----------- mouvements/sorties/stock_disponible.html | 3 +- 5 files changed, 70 insertions(+), 55 deletions(-) diff --git a/inventaire.html b/inventaire.html index 9bcbed0..8a73880 100644 --- a/inventaire.html +++ b/inventaire.html @@ -79,6 +79,13 @@ - - + diff --git a/inventaire_nonprop.html b/inventaire_nonprop.html index e468028..dc3eeeb 100644 --- a/inventaire_nonprop.html +++ b/inventaire_nonprop.html @@ -42,17 +42,16 @@ {{#list select=" - $$.date AS 'Date' ; - (SELECT $$.designation - FROM @TABLE AS b - WHERE b.key = @TABLE.$$.equipment) AS 'Matériel' ; - "" as 'Catégorie' ; - "" AS 'Quantité' + (SELECT $$.designation + FROM @TABLE AS b + WHERE b.key = @TABLE.$$.equipment) AS 'Matériel' ; + "" as 'Catégorie' ; + "" AS 'Quantité' " type="movement" group="$$.equipment" direction="input" - order=2 + order=1 }} {{:assign var=cat_key from="equipments.%s.category"|args:$equipment}} @@ -67,8 +66,7 @@ {{:continue}} {{/if}} - - + diff --git a/inventaire.html b/inventaire.html index 84bc683..8b4c541 100644 --- a/inventaire.html +++ b/inventaire.html @@ -98,11 +98,11 @@ target="_dialog"}} {{:linkbutton label="Mouvements" - href="%shistorique.html?key=%s&prop=1"|args:$module.url:$equipment + href="historique.html?key=%s&prop=1"|args:$equipment shape="table"}} {{:linkbutton label="Modifier" - href="%smodifier_materiel.html?key=%s&prop=1"|args:$module.url:$equipment + href="modifier_materiel.html?key=%s&prop=1"|args:$equipment shape="edit" target="_dialog"}} diff --git a/inventaire_nonprop.html b/inventaire_nonprop.html index dc3eeeb..26172c9 100644 --- a/inventaire_nonprop.html +++ b/inventaire_nonprop.html @@ -84,11 +84,11 @@ target="_dialog"}} {{:linkbutton label="Mouvements" - href="%shistorique.html?key=%s&prop=0"|args:$module.url:$equipment + href="historique.html?key=%s&prop=0"|args:$equipment shape="table"}} {{:linkbutton label="Modifier" - href="%smodifier_materiel.html?key=%s&prop=0"|args:$module.url:$equipment + href="modifier_materiel.html?key=%s&prop=0"|args:$equipment shape="edit" target="_dialog"}} diff --git a/mouvements/entrees/repertorie.html b/mouvements/entrees/repertorie.html index 2cc72ca..6b04071 100644 --- a/mouvements/entrees/repertorie.html +++ b/mouvements/entrees/repertorie.html @@ -59,7 +59,7 @@ {{else}} {{:assign prop=1}} {{/if}} - {{:redirect force="%sindex.html?ok=1&msg=entrée&prop=%s"|args:$module.url:$prop}} + {{:redirect force="../../index.html?ok=1&msg=entrée&prop=%s"|args:$prop}} {{else}} {{:form_errors}} {{/form}} From 75447396c491d87e4de0fa9d5a88ce8cb694063d Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 9 Dec 2024 16:50:09 +0100 Subject: [PATCH 38/54] =?UTF-8?q?Suppression=20param=C3=A8tre=20prop=20inu?= =?UTF-8?q?tile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- historique.html | 4 ++-- inventaire.html | 6 +++--- inventaire_nonprop.html | 4 ++-- modifier_materiel.html | 1 + mouvements/dupliquer_mouvement.html | 1 - mouvements/entrees/retour.html | 3 +-- mouvements/modifier_mouvement.html | 1 - mouvements/sorties/emprunte.html | 3 +-- mouvements/sorties/stock_disponible.html | 3 +-- mouvements/supprimer_mouvement.html | 1 + 10 files changed, 12 insertions(+), 15 deletions(-) diff --git a/historique.html b/historique.html index de59331..eb649bb 100644 --- a/historique.html +++ b/historique.html @@ -114,12 +114,12 @@ - + @@ -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}} + - + 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}} From 11806b11dae5890b62d8e9ebf2053146379a5bf7 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 11 Dec 2024 15:42:11 +0100 Subject: [PATCH 41/54] simplification retour emprunt --- mouvements/sorties/emprunte.html | 38 ++++++++++++++------------------ 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/mouvements/sorties/emprunte.html b/mouvements/sorties/emprunte.html index 4162728..951fff7 100644 --- a/mouvements/sorties/emprunte.html +++ b/mouvements/sorties/emprunte.html @@ -2,9 +2,7 @@ {{* paramètres : - - key : clé du matériel à modifier - - TODO : simplifier + - key : clé du matériel à rendre *}} {{:admin_header title="Sortie de matériel" current="module_equipment"}} @@ -28,7 +26,6 @@ {{#form on="save"}} {{* récupérer les infos du matériel *}} {{#load type="equipment" key=$_GET.key assign="equipment"}} - {{:assign designation=$equipment.designation}} {{/load}} {{:assign stock=0}} @@ -41,22 +38,11 @@ {{* traiter le nouveau mouvement *}} {{if ! $insere && $mvt.date > $_POST.date|parse_date}} - {{:assign var="operation" from="output_labels.%s|args:$_POST.type_operation}} - {{:assign var="type_mvt" from="config.output_nature.%s"|args:$operation}} - {{:assign dispo_old=$nonproprio}} - - {{if $type_mvt == 'définitif'}} - {{:assign stock="%d-%d"|math:$stock:$_POST.quantite}} - {{elseif $type_mvt == 'temporaire'}} - {{:assign exterieur="%d+%d"|math:$exterieur:$_POST.quantite}} - {{elseif $type_mvt == 'retour'}} - {{:assign nonproprio="%d-%d"|math:$nonproprio:$_POST.quantite}} - {{/if}} - {{:assign insere=true}} - {{:assign dispo="%d-%d"|math:$stock:$exterieur}} + {{:assign dispo_old=$nonproprio}} + {{:assign nonproprio="%d-%d"|math:$nonproprio:$_POST.quantite}} - {{if $dispo < 0 || $stock < 0 || $exterieur < 0 || $nonproprio < 0}} + {{if $nonproprio < 0}} {{:assign date_err=$_POST.date|date:"d/m/Y"}} {{:error message="Erreur : la quantité indiquée (%s) est supérieure à celle disponible (%d) à la date du %s"|args:$_POST.quantite:$dispo_old:$date_err}} {{/if}} @@ -85,14 +71,22 @@ {{/if}} {{:assign dispo="%d-%d"|math:$stock:$exterieur}} + {{if $dispo < 0 || $stock < 0 || $exterieur < 0 || $nonproprio < 0}} {{:assign date_err=$mvt.date|date:"d/m/Y"}} - {{:error message="Erreur : la quantité indiquée (%s) est incompatible avec la sortie « %s : %s » à la date du %s"|args:$_POST.quantite:$designation:$mvt.amount:$date_err}} + {{:error message="Erreur : la quantité indiquée (%s) est incompatible avec la sortie de %s unités à la date du %s"|args:$_POST.quantite:$mvt.amount:$date_err}} {{/if}} {{/load}} + {{if ! $insere}} + {{:assign dispo_old=$nonproprio}} + {{:assign nonproprio="%d-%d"|math:$nonproprio:$_POST.quantite}} + {{if $nonproprio < 0}} + {{:assign date_err=$_POST.date|date:"d/m/Y"}} + {{:error message="Erreur : la quantité indiquée (%s) est supérieure à celle disponible (%d) à la date du %s"|args:$_POST.quantite:$dispo_old:$date_err}} + {{/if}} + {{/if}} {{* Enregistrer le mouvement *}} - {{:assign mvt_key=""|uuid}} {{:assign var="operation" from="output_labels.%d|args:$_POST.type_operation}} {{:save @@ -112,7 +106,7 @@ {{/form}} {{* Extraire et compiler les infos de la base *}} -{{:include file="../../_calcul_dispo.html" keep="cumul_mvt,equipments"}} +{{:include file="../../_calcul_dispo.html" keep="equipments"}} {{:assign var=present from="equipments.%s.nonproprio"|args:$_GET.key}} {{if $present > 0}} @@ -129,7 +123,7 @@ {{:input type="date" name="date" label="Date de sortie" 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="present" label="Qté présente" disabled=true default=$present}} -

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

+

La quantité présente est celle à la date du jour

{{:input type="number" name="quantite" label="Quantité" required=true default=1 min=1}} {{:input type="textarea" name="remarques" label="Remarques" cols="40" rows="3" required=false}} From 1c395c48e0d4be6cb570d27f8c82ec84e5193aaa Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 11 Dec 2024 16:39:46 +0100 Subject: [PATCH 42/54] simplification et correction erreur stock_disponible --- mouvements/sorties/stock_disponible.html | 52 +++++++++++++----------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/mouvements/sorties/stock_disponible.html b/mouvements/sorties/stock_disponible.html index 2348ad6..8fdda08 100644 --- a/mouvements/sorties/stock_disponible.html +++ b/mouvements/sorties/stock_disponible.html @@ -2,9 +2,7 @@ {{* paramètres : - - key : clé du matériel à modifier - - TODO : simplifier + - key : clé du matériel à sortir *}} {{:admin_header title="Sortie de matériel" current="module_equipment"}} @@ -28,7 +26,6 @@ {{#form on="save"}} {{* récupérer les infos du matériel *}} {{#load type="equipment" key=$_GET.key assign="equipment"}} - {{:assign designation=$equipment.designation}} {{/load}} {{:assign stock=0}} @@ -41,22 +38,19 @@ {{* traiter le nouveau mouvement *}} {{if ! $insere && $mvt.date > $_POST.date|parse_date}} + {{:assign insere=true}} + {{:assign dispo_old="%d-%d"|math:$stock:$exterieur}} {{:assign var="operation" from="output_labels.%s|args:$_POST.type_operation}} {{:assign var="type_mvt" from="config.output_nature.%s"|args:$operation}} - {{:assign dispo_old="%d-%d"|math:$stock:$exterieur}} {{if $type_mvt == 'définitif'}} {{:assign stock="%d-%d"|math:$stock:$_POST.quantite}} {{elseif $type_mvt == 'temporaire'}} {{:assign exterieur="%d+%d"|math:$exterieur:$_POST.quantite}} - {{elseif $type_mvt == 'retour'}} - {{:assign nonproprio="%d-%d"|math:$nonproprio:$_POST.quantite}} {{/if}} - {{:assign insere=true}} {{:assign dispo="%d-%d"|math:$stock:$exterieur}} - - {{if $dispo < 0 || $stock < 0 || $exterieur < 0 || $nonproprio < 0}} + {{if $dispo < 0 || $stock < 0 || $exterieur < 0}} {{:assign date_err=$_POST.date|date:"d/m/Y"}} {{:error message="Erreur : la quantité indiquée (%s) est supérieure à celle disponible (%d) à la date du %s"|args:$_POST.quantite:$dispo_old:$date_err}} {{/if}} @@ -85,14 +79,31 @@ {{/if}} {{:assign dispo="%d-%d"|math:$stock:$exterieur}} + {{if $dispo < 0 || $stock < 0 || $exterieur < 0 || $nonproprio < 0}} {{:assign date_err=$mvt.date|date:"d/m/Y"}} - {{:error message="Erreur : la quantité indiquée (%s) est incompatible avec la sortie « %s : %s » à la date du %s"|args:$_POST.quantite:$designation:$mvt.amount:$date_err}} + {{:error message="Erreur : la quantité indiquée (%s) est incompatible avec la sortie de %s unités à la date du %s"|args:$_POST.quantite:$mvt.amount:$date_err}} {{/if}} {{/load}} + {{if ! $insere}} + {{:assign dispo_old="%d-%d"|math:$stock:$exterieur}} + {{:assign var="operation" from="output_labels.%s|args:$_POST.type_operation}} + {{:assign var="type_mvt" from="config.output_nature.%s"|args:$operation}} + + {{if $type_mvt == 'définitif'}} + {{:assign stock="%d-%d"|math:$stock:$_POST.quantite}} + {{elseif $type_mvt == 'temporaire'}} + {{:assign exterieur="%d+%d"|math:$exterieur:$_POST.quantite}} + {{/if}} + + {{:assign dispo="%d-%d"|math:$stock:$exterieur}} + {{if $dispo < 0 || $stock < 0 || $exterieur < 0}} + {{:assign date_err=$_POST.date|date:"d/m/Y"}} + {{:error message="Erreur : la quantité indiquée (%s) est supérieure à celle disponible (%d) à la date du %s"|args:$_POST.quantite:$dispo_old:$date_err}} + {{/if}} + {{/if}} {{* Enregistrer le mouvement *}} - {{:assign mvt_key=""|uuid}} {{:assign var="operation" from="output_labels.%d|args:$_POST.type_operation}} {{:save @@ -112,20 +123,16 @@ {{/form}} {{* Extraire et compiler les infos de la base *}} -{{* TODO simplifier et peut-être mutualiser *}} - -{{:include file="../../_calcul_dispo.html" keep="cumul_mvt,equipments"}} - +{{:include file="../../_calcul_dispo.html" keep="categories,equipments"}} {{:assign var=stock from="equipments.%s.stock"|args:$_GET.key}} {{:assign var=exterieur from="equipments.%s.exterieur"|args:$_GET.key}} {{:assign dispo="%d-%d"|math:$stock:$exterieur}} -{{:assign var=category_key from="equipments.%s.category"|args:$_GET.key}} -{{:assign var=category from="cumul_mvt.%s.name"|args:$category_key}} {{if $dispo > 0}} + {{* déterminer le matériel concerné par le mouvement *}} - {{#load key=$_GET.key assign="equipment"}} - {{/load}} + {{#load key=$_GET.key assign="equipment"}}{{/load}} + {{:assign var=cat_name from=categories.%s|args:$equipment.category}} {{* formulaire de sortie de matériel *}} @@ -135,7 +142,7 @@ {{:input type="select" name="type_operation" label="Type" required=true options=$output_labels}} {{:input type="date" name="date" label="Date de sortie" 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="category" label="Catégorie" required=true disabled=true default=$cat_name}} {{:input type="text" name="dispo" label="Qté disponible" disabled=true default=$dispo}}

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

{{:input type="number" name="quantite" label="Quantité" required=true default=1 min=1}} @@ -147,8 +154,7 @@

{{else}} - {{:assign date_err=$now|date:'d/m/Y'}} -

Il n'y a aucun matériel disponible à la date du {{$date_err}}

+

Il y a 0 unité de ce matériel disponible à la date du {{$now|date_short}}

{{/if}}
{{$eqpmt.designation}} {{$eqpmt.nonproprio}} + {{:linkbutton + label="Ajouter entrée" + shape="plus" + href="mouvements/entrees/repertorie.html?key=%s"|args:$eqpmt_key + target="_dialog"}} {{:linkbutton label="Mouvements" href="historique.html?key=%s"|args:$eqpmt_key diff --git a/mouvements/entrees/repertorie.html b/mouvements/entrees/repertorie.html new file mode 100644 index 0000000..e2666df --- /dev/null +++ b/mouvements/entrees/repertorie.html @@ -0,0 +1,80 @@ +{{* -*- brindille -*- *}} + +{{* + Ajouter une entrée de matériel + paramètres : + - key : clé du matériel à ajouter +*}} + + +{{:admin_header title="Entrée de matériel" current="module_equipment"}} + +{{* barre de navigation *}} +{{if ! $dialog}} + {{:include file="../../_nav.html" current="entrees"}} +{{/if}} + +{{* 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="label" item="type"}} + {{if $type != 'retour'}} + {{:assign var='input_labels.' value="%s"|args:$label}} + {{/if}} +{{/foreach}} + +{{* récupérer les informations du matériel et de sa catégorie *}} +{{#load key=$_GET.key assign="equipment"}} +{{/load}} +{{#load where="key = :key" :key=$equipment.category assign="category"}} +{{/load}} +{{*:debug equipment=$equipment category=$category*}} + +{{* Traiter l'envoi du formulaire *}} +{{#form on="save"}} + {{* Enregistrer le mouvement *}} + {{:assign mvt_key=""|uuid}} + {{:assign var="operation" from="input_labels.%d|args:$_POST.type_operation}} + + {{:save + key=$mvt_key + validate_schema="../movement.schema.json" + type="movement" + direction="input" + input_nature=$operation + amount=$_POST.quantite|intval + equipment=$equipment.key + date=$_POST.date|parse_date + comment=$_POST.remarques|trim + }} + {{:redirect force="%sindex.html?ok=1&msg=entrée"|args:$module.url}} +{{else}} + {{:form_errors}} +{{/form}} + + +{{* formulaire de saisie d'une entrée de matériel *}} + +
+ Ajouter une entrée d'un 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}} + {{:input type="number" name="quantite" label="Quantité" required=true default=1}} +
+
+
+ Matériel +
+ {{:input type="text" name="category" label="Catégorie" required=true disabled=true default=$category.name}} + {{:input type="text" name="equipment" label="Matériel" required=true disabled=true default=$equipment.designation}} + {{: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}} From e7538a11c8b16ad5a9bc101e4b7b38075de9082e Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Sat, 9 Nov 2024 09:58:50 +0100 Subject: [PATCH 13/54] ajout sortie sur page inventaire --- inventaire.html | 30 ++++++-- mouvements/sorties/stock_disponible.html | 93 +++++++++++------------- 2 files changed, 64 insertions(+), 59 deletions(-) diff --git a/inventaire.html b/inventaire.html index 6f58693..9bcbed0 100644 --- a/inventaire.html +++ b/inventaire.html @@ -79,10 +79,17 @@
{{$exterieur}} {{$dispo}} - {{:linkbutton - label="Ajouter entrée" + {{if $dispo > 0}} + {{:linkbutton + label="Sortie" shape="plus" - href="mouvements/entrees/repertorie.html?key=%s"|args:$eqpmt_key + href="mouvements/sorties/stock_disponible.html?key=%s&prop=1"|args:$eqpmt_key + target="_dialog"}} + {{/if}} + {{:linkbutton + label="Entrée" + shape="plus" + href="mouvements/entrees/repertorie.html?key=%s&prop=1"|args:$eqpmt_key target="_dialog"}} {{:linkbutton label="Mouvements" @@ -90,7 +97,7 @@ shape="table"}} {{:linkbutton label="Modifier" - href="%smodifier_materiel.html?key=%s"|args:$module.url:$eqpmt_key + href="%smodifier_materiel.html?key=%s&prop=1"|args:$module.url:$eqpmt_key shape="edit" target="_dialog"}} {{$eqpmt.designation}} {{$eqpmt.nonproprio}} + {{if $eqpmt.nonproprio > 0}} {{:linkbutton - label="Ajouter entrée" + label="Retour" + href="mouvements/sorties/emprunte.html?key=%s&prop=0"|args:$mvt_key + shape="history" + target="_dialog"}} + {{/if}} + {{:linkbutton + label="Entrée" shape="plus" - href="mouvements/entrees/repertorie.html?key=%s"|args:$eqpmt_key + href="mouvements/entrees/repertorie.html?key=%s&prop=0"|args:$eqpmt_key target="_dialog"}} {{:linkbutton label="Mouvements" - href="historique.html?key=%s"|args:$eqpmt_key + href="historique.html?key=%s&prop=0"|args:$eqpmt_key shape="table" target="_dialog"}} {{:linkbutton label="Modifier" - href="modifier_materiel.html?key=%s"|args:$eqpmt_key + href="modifier_materiel.html?key=%s&prop=0"|args:$eqpmt_key shape="edit" target="_dialog"}}
{{$exterieur}} {{$dispo}} + {{if $exterieur > 0}} + {{:linkbutton + label="Retour" + href="mouvements/entrees/retour.html?key=%s&prop=1"|args:$eqpmt_key + shape="history" + target="_dialog"}} + {{/if}} {{if $dispo > 0}} {{:linkbutton label="Sortie" @@ -166,7 +173,7 @@ {{if $eqpmt.nonproprio > 0}} {{:linkbutton label="Retour" - href="mouvements/sorties/emprunte.html?key=%s&prop=0"|args:$mvt_key + href="mouvements/sorties/emprunte.html?key=%s&prop=0"|args:$eqpmt_key shape="history" target="_dialog"}} {{/if}} @@ -177,9 +184,8 @@ target="_dialog"}} {{:linkbutton label="Mouvements" - href="historique.html?key=%s&prop=0"|args:$eqpmt_key - shape="table" - target="_dialog"}} + href="%shistorique.html?key=%s&prop=0"|args:$module.url:$eqpmt_key + shape="table"}} {{:linkbutton label="Modifier" href="modifier_materiel.html?key=%s&prop=0"|args:$eqpmt_key diff --git a/mouvements/entrees/repertorie.html b/mouvements/entrees/repertorie.html index e2666df..b7d15a1 100644 --- a/mouvements/entrees/repertorie.html +++ b/mouvements/entrees/repertorie.html @@ -57,18 +57,13 @@ {{* formulaire de saisie d'une entrée de matériel *}}
- Ajouter une entrée d'un matériel + 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}} - {{:input type="number" name="quantite" label="Quantité" required=true default=1}} -
-
-
- Matériel -
{{:input type="text" name="category" label="Catégorie" required=true disabled=true default=$category.name}} {{:input type="text" name="equipment" label="Matériel" required=true disabled=true default=$equipment.designation}} + {{:input type="number" name="quantite" label="Quantité" required=true min=1 default=1}} {{:input type="textarea" name="remarques" label="Remarques" cols="40" rows="3" required=false}}
diff --git a/mouvements/entrees/retour.html b/mouvements/entrees/retour.html index 5fbbd43..941d7ca 100644 --- a/mouvements/entrees/retour.html +++ b/mouvements/entrees/retour.html @@ -26,7 +26,7 @@ {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} {{* récupérer les infos du matériel *}} - {{#load type="equipment" key=$_POST.equipment assign="equipment"}} + {{#load type="equipment" key=$_GET.key assign="equipment"}} {{:assign designation=$equipment.designation}} {{:assign var="categories." value=$equipment.category}} {{/load}} @@ -38,9 +38,9 @@ date=$_POST.date|parse_date }} - {{* déterminer la quantité sortie temporairement de ce matriel à la date donnée *}} - {{:assign var=sorti from="cumul_mvt.%s.eqpmt.%s.exterieur"|args:$equipment.category:$_POST.equipment}} - + {{* 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*}} {{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,21 +61,27 @@ comment=$_POST.remarques|trim }} - {{*:redirect force="index.html?ok=1&msg=entrée"*}} - {{:redirect force="../../historique.html?ok=1&key=%s&prop=%s&msg=retour"|args:$_POST.equipment:$_GET.prop}} + {{:redirect force="../../historique.html?ok=1&key=%s&prop=%s&msg=retour"|args:$_GET.key:$_GET.prop}} + {{else}} {{:form_errors}} {{/form}} {{* Extraire et compiler les infos de la base *}} -{{:include file="../../_calcul_dispo.html" keep="cumul_mvt"}} +{{:include file="../../_calcul_dispo.html" keep="cumul_mvt,equipments"}} +{{:assign var=sorti from="equipments.%s.exterieur"|args:$_GET.key}} +{{*:debug equipments=$equipments sorti=$sorti*}} -{{if $cumul_mvt !== null}} +{{if $sorti > 0}} + + {{* déterminer le matériel concerné par le mouvement *}} + {{#load key=$_GET.key assign="equipment"}} + {{/load}} {{* déterminer la quantité des matériels sortis temporairement *}} - {{:include file="_temporaire.html" keep="temporaire"}} + {{*:include file="_temporaire.html" keep="temporaire"*}} - {{if $temporaire != null}} + {{*if $temporaire != null*}} {{* formulaire d'entrée de matériel *}} @@ -84,13 +90,10 @@
{{: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="sorti" label="Qté sortie" disabled=true default=$sorti}} +

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

{{:input type="number" name="quantite" label="Quantité" min=1 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}}
@@ -98,11 +101,28 @@ {{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}}

+{{* {{else}}

Il n'y a aucun matériel sorti temporairement

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

Il n'y a aucun matériel

{{/if}} + + {{:admin_footer}} diff --git a/mouvements/sorties/emprunte.html b/mouvements/sorties/emprunte.html index 945934a..b4b12f5 100644 --- a/mouvements/sorties/emprunte.html +++ b/mouvements/sorties/emprunte.html @@ -2,8 +2,10 @@ {{* paramètres : - - key : clé du mouvement à modifier - - prop : = 1 si matériel propriété + - key : clé du matériel à modifier + - prop : = 1 si matériel propriété de l'asso + + TODO : simplifier *}} {{:admin_header title="Sortie de matériel" current="module_equipment"}} @@ -26,9 +28,8 @@ {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} {{* récupérer les infos du matériel *}} - {{#load type="equipment" key=$_POST.equipment assign="equipment"}} + {{#load type="equipment" key=$_GET.key assign="equipment"}} {{:assign designation=$equipment.designation}} - {{:assign var="category_keys." value=$equipment.category}} {{/load}} {{:assign stock=0}} @@ -37,7 +38,7 @@ {{:assign insere=false}} {{* lister tous les mouvements du matériel *}} - {{#load type="movement" where="$$.equipment = '%s'"|args:$_POST.equipment assign="mvt" order="$$.date ASC"}} + {{#load type="movement" where="$$.equipment = '%s'"|args:$_GET.key assign="mvt" order="$$.date ASC"}} {{* traiter le nouveau mouvement *}} {{if ! $insere && $mvt.date > $_POST.date|parse_date}} @@ -106,20 +107,20 @@ date=$_POST.date|parse_date comment=$_POST.remarques|trim }} - {{*:redirect force="index.html?ok=1&msg=sortie"*}} - {{:redirect force="../../historique.html?ok=1&key=%s&prop=%s&msg=sortie"|args:$_POST.equipment:$_GET.prop}} + {{:redirect force="../../historique.html?ok=1&key=%s&prop=%s&msg=sortie"|args:$_GET.key:$_GET.prop}} {{else}} {{:form_errors}} {{/form}} {{* Extraire et compiler les infos de la base *}} -{{:include file="../../_calcul_dispo.html" keep="cumul_mvt"}} +{{:include file="../../_calcul_dispo.html" keep="cumul_mvt,equipments"}} +{{:assign var=present from="equipments.%s.nonproprio"|args:$_GET.key}} -{{if $cumul_mvt !== null}} - {{* calculer les quantité de matériels dont l'asso n'est pas propriétaire *}} - {{:include file="_temporaire.html" keep="temporaire"}} +{{if $present > 0}} + {{* déterminer le matériel concerné par le mouvement *}} + {{#load key=$_GET.key assign="equipment"}} + {{/load}} - {{if $temporaire != null}} {{* formulaire de sortie de matériel *}}
@@ -127,14 +128,10 @@
{{:input type="select" name="type_operation" label="Type" required=true options=$output_labels}} {{: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 + {{:input type="text" name="equipment" label="Matériel" required=true disabled=true default=$equipment.designation}} + {{:input type="text" name="present" label="Qté présente" disabled=true default=$present}}

La quantité indiquée 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="number" name="quantite" label="Quantité" required=true default=1 min=1}} {{:input type="textarea" name="remarques" label="Remarques" cols="40" rows="3" required=false}}
@@ -142,10 +139,6 @@ {{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}}

- {{else}} - {{:assign date_err=$now|date:'d/m/Y'}} -

Il n'y a aucun matériel présent temporairement à la date du {{$date_err}}

- {{/if}} {{else}}

Il n'y a aucun matériel en stock

{{/if}} @@ -153,14 +146,16 @@ {{:admin_footer}} diff --git a/mouvements/sorties/stock_disponible.html b/mouvements/sorties/stock_disponible.html index fea90c8..24d2c85 100644 --- a/mouvements/sorties/stock_disponible.html +++ b/mouvements/sorties/stock_disponible.html @@ -131,7 +131,7 @@ {{* formulaire de sortie de matériel *}}
- Ajouter une sortie d'un matériel disponible en stock + Ajouter une sortie de matériel
{{:input type="select" name="type_operation" label="Type" required=true options=$output_labels}} {{:input type="date" name="date" label="Date de sortie" required=true default=$now|date_short}} @@ -155,7 +155,6 @@ {{:admin_footer}} diff --git a/config/ajouter_type_mouvement.html b/config/ajouter_type_mouvement.html index c4147d6..040e693 100644 --- a/config/ajouter_type_mouvement.html +++ b/config/ajouter_type_mouvement.html @@ -50,12 +50,12 @@ {{:assign var="output_natures." from=output_nature}} {{/if}} -{{:save - key="config" - validate_schema="../config.schema.json" - input_nature=$input_natures - output_nature=$output_natures -}} + {{:save + key="config" + validate_schema="../config.schema.json" + input_nature=$input_natures + output_nature=$output_natures + }} {{:redirect to="./config.html?ok=1"}} {{else}} @@ -70,11 +70,11 @@
- Types d'entrées + Type d'entrée
{{:input type="text" - label="Nature de l'entrée" + label="Libellé de l'entrée" name="input_fields[label]" required=true}} @@ -108,11 +108,11 @@
- Types de sorties + Type de sortie
{{:input type="text" - label="Nature de la sortie" + label="Libellé de la sortie" name="output_fields[label]" required=true}} diff --git a/config/modifier_type_mouvement.html b/config/modifier_type_mouvement.html new file mode 100644 index 0000000..b3a57c3 --- /dev/null +++ b/config/modifier_type_mouvement.html @@ -0,0 +1,67 @@ +{{* -*- brindille -*- *}} + +{{* + paramètres : + - dir : input ou output + - mvt : libellé du type de mouvement à modifier +*}} + +{{:admin_header title="Gestion des matériels" current="module_equipment"}} + +{{* barre de navigation *}} +{{if ! $dialog}} + {{:include file="../_nav.html" current="config" subcurrent="typesES"}} +{{/if}} + +{{* lecture config (défaut ou enregistrée) *}} +{{:include file="../_get_config.html" keep="config"}} + +{{:debug config.input_nature=$config.input_nature config.input_nature=$config.input_nature}} +{{:debug mvt=$_GET.mvt}} +{{#form on="save"}} + {{#foreach from=$config.input_nature key="label" item="type"}} + {{:debug key=$label item=$type}} + {{if $_GET.dir == 'input' + && $label|trim|tolower == $_GET.mvt|trim|tolower}} + {{:assign var="input_nature.label" value=$_POST.name|trim|tolower|ucfirst}} + {{else} + {{:assign var="input_nature.label" value=$label}} + {{/if}} + {{:assign var="input_nature.type" value=$type}} + {{:assign var="input_natures." from=input_nature}} + {{/foreach}} + + {{#foreach from=$config.output_nature key="label" item="type"}} + {{if $_GET.dir == 'output' && $label|trim|tolower == $_GET.mvt|trim|tolower}} + {{:assign var="output_nature.label" value=$_POST.name|trim|tolower|ucfirst}} + {{else}} + {{:assign var="output_nature.label" value=$label}} + {{/if}} + {{:assign var="output_nature.type" value=$type}} + {{:assign var="output_natures." from=output_nature}} + {{/foreach}} +{{:debug input_natures=$input_natures output_natures=$output_natures}} +{{* + {{:save + key="config" + validate_schema="../config.schema.json" + input_nature=$input_natures + output_nature=$output_natures + }} + {{:redirect to="./config.html?ok=1"}} +*}} +{{/form}} + +{{:form_errors}} + + +
+ Modifier le libellé +
+ {{:input type="text" name="name" label="Libellé" default=$_GET.mvt required=true maxlength="100"}} +
+

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

+
+ diff --git a/config/supprimer_type_mouvement.html b/config/supprimer_type_mouvement.html new file mode 100644 index 0000000..63bbec3 --- /dev/null +++ b/config/supprimer_type_mouvement.html @@ -0,0 +1,61 @@ +{{* -*- brindille -*- *}} + +{{* + paramètres : + - dir : input ou output + - mvt : libellé du type de mouvement à supprimer +*}} + +{{:admin_header title="Gestion des matériels" current="module_equipment"}} + +{{* barre de navigation *}} +{{if ! $dialog}} + {{:include file="../_nav.html" current="config" subcurrent="typesES"}} +{{/if}} + +{{* lecture config (défaut ou enregistrée) *}} +{{:include file="../_get_config.html" keep="config"}} + +{{#form on="delete"}} + {{#foreach from=$config.input_nature key="label" item="type"}} + {{if $_GET.dir == 'input' && $label|trim|tolower != $_GET.mvt|trim|tolower || + $_GET.dir == 'output'}} + {{:assign var="input_nature.label" value=$label}} + {{:assign var="input_nature.type" value=$type}} + {{:assign var="input_natures." from=input_nature}} + {{/if}} + {{/foreach}} + + {{#foreach from=$config.output_nature key="label" item="type"}} + {{if $_GET.dir == 'output' && $label|trim|tolower != $_GET.mvt|trim|tolower || + $_GET.dir == 'input'}} + {{:assign var="output_nature.label" value=$label}} + {{:assign var="output_nature.type" value=$type}} + {{:assign var="output_natures." from=output_nature}} + {{/if}} + {{/foreach}} + + {{:save + key="config" + validate_schema="../config.schema.json" + input_nature=$input_natures + output_nature=$output_natures + }} + {{:redirect to="./config.html?ok=1"}} + +{{/form}} + +{{if $_GET.dir == 'input'}} + {{:delete_form + legend="Supprimer cette entrée ?" + warning="Supprimer l'entrée « %s » ?"|args:$_GET.mvt + }} +{{else}} + {{:delete_form + legend="Supprimer cette sortie ?" + warning="Supprimer la sortie « %s » ?"|args:$_GET.mvt + }} +{{/if}} +{{:form_errors}} + +{{:admin_footer}} From 56b11a0edf8990440a0171b8d827ba3dfeed7c40 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 27 Nov 2024 13:53:21 +0100 Subject: [PATCH 33/54] =?UTF-8?q?am=C3=A9lioration=20gestion=20casse=20mod?= =?UTF-8?q?if=20cat=C3=A9gorie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- categories/modify_category.html | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/categories/modify_category.html b/categories/modify_category.html index 3c78235..e719b6b 100644 --- a/categories/modify_category.html +++ b/categories/modify_category.html @@ -9,11 +9,19 @@ {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} + {{* Vérifier s'il existe déjà une catégorie avec le même nom *}} + {{#load type="category"}} + {{if $name|tolower == $_POST.name|trim|tolower && $key != $_GET.key}} + {{:error message="Modification impossible car ce nom de catégorie (« %s ») existe déjà !"|args:$name|trim}} + {{:break}} + {{/if}} + {{/load}} + {{:save key=$category.key validate_schema="./category.schema.json" type="category" - name=$_POST.name|trim + name=$_POST.name|trim|tolower|ucfirst }} {{:redirect force="./index.html?ok=1&msg=modification"}} {{/form}} From 3e3ae7b033c808e326ca06fcc03854622421be4b Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 2 Dec 2024 09:32:20 +0100 Subject: [PATCH 34/54] simplification affichage inventaire --- inventaire.html | 20 +++++++++----------- inventaire_nonprop.html | 16 +++++++--------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/inventaire.html b/inventaire.html index ab0d4e1..84bc683 100644 --- a/inventaire.html +++ b/inventaire.html @@ -42,19 +42,18 @@ {{#list select=" - $$.date AS 'Date' ; - (SELECT $$.designation - FROM @TABLE AS b - WHERE b.key = @TABLE.$$.equipment) AS 'Matériel' ; - "" as 'Catégorie' ; - "" AS 'Stock' ; - "" AS 'Sorti' ; - "" AS 'Dispo' + (SELECT $$.designation + FROM @TABLE AS b + WHERE b.key = @TABLE.$$.equipment) AS 'Matériel' ; + "" as 'Catégorie' ; + "" AS 'Stock' ; + "" AS 'Sorti' ; + "" AS 'Dispo' " type="movement" group="$$.equipment" direction="input" - order=2 + order=1 }} {{:assign var=cat_key from="equipments.%s.category"|args:$equipment}} @@ -72,8 +71,7 @@ {{/if}}
{{$date|date_short}}{{$col2}}{{$col1}} {{$cat_name}} {{$stock}} {{if $exterieur == null}}0{{else}}{{$exterieur}}{{/if}}
{{$date|date_short}}{{$col2}}{{$col1}} {{$cat_name}} {{$qte}} From 3132f3b7cea68eb1c721ce7aef4e500036b0c96f Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 2 Dec 2024 09:33:02 +0100 Subject: [PATCH 35/54] =?UTF-8?q?ajout=20contr=C3=B4le=20quantit=C3=A9=20e?= =?UTF-8?q?ntr=C3=A9e=20mat=C3=A9riel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mouvements/entrees/repertorie.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mouvements/entrees/repertorie.html b/mouvements/entrees/repertorie.html index d417d16..2cc72ca 100644 --- a/mouvements/entrees/repertorie.html +++ b/mouvements/entrees/repertorie.html @@ -32,6 +32,12 @@ {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} + + {{* vérifier la quantité saisie *}} + {{if $_POST.quantite <= 0}} + {{:error message="La quantité (%s) doit être strictement positive !!"|args:$_POST.quantite}} + {{/if}} + {{* Enregistrer le mouvement *}} {{:assign mvt_key=""|uuid}} {{:assign var="operation" from="input_labels.%d|args:$_POST.nature_operation}} From b5afcb8ea380ade86796300ab650b06c090b8ce7 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 2 Dec 2024 09:33:42 +0100 Subject: [PATCH 36/54] =?UTF-8?q?correction=20libell=C3=A9=20retour?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mouvements/entrees/retour.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mouvements/entrees/retour.html b/mouvements/entrees/retour.html index 6651cab..f87506c 100644 --- a/mouvements/entrees/retour.html +++ b/mouvements/entrees/retour.html @@ -2,7 +2,7 @@ {{* paramètres : - - key : clé du mouvement à modifier + - key : clé du matériel qui revient - prop : = 1 si matériel propriété *}} @@ -82,7 +82,7 @@ {{* formulaire d'entrée de matériel *}}
- Ajouter une entrée pour un retour de matériel + Ajouter un retour 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}} From edcecfd9e25c130c5d207e5a42d67d4de520f2d8 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 2 Dec 2024 10:47:38 +0100 Subject: [PATCH 37/54] suppresssion module.url dans redirect --- historique.html | 6 +++--- inventaire.html | 4 ++-- inventaire_nonprop.html | 4 ++-- mouvements/entrees/repertorie.html | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/historique.html b/historique.html index cb9cdc2..de59331 100644 --- a/historique.html +++ b/historique.html @@ -114,17 +114,17 @@
{{:linkbutton label="Dupliquer" - href="%smouvements/dupliquer_mouvement.html?key=%s&direction=%s&prop=%s"|args:$module.url:$key:$direction:$_GET.prop + href="mouvements/dupliquer_mouvement.html?key=%s&direction=%s&prop=%s"|args:$key:$direction:$_GET.prop shape="plus" target="_dialog"}} {{:linkbutton label="Modifier" - href="%smouvements/modifier_mouvement.html?key=%s&direction=%s&prop=%s"|args:$module.url:$key:$direction:$_GET.prop + href="mouvements/modifier_mouvement.html?key=%s&direction=%s&prop=%s"|args:$key:$direction:$_GET.prop shape="edit" target="_dialog"}} {{:linkbutton label="Supprimer" - href="%smouvements/supprimer_mouvement.html?key=%s&direction=%s&prop=%s"|args:$module.url:$key:$direction:$_GET.prop + href="mouvements/supprimer_mouvement.html?key=%s&direction=%s&prop=%s"|args:$key:$direction:$_GET.prop shape="delete" target="_dialog"}} {{:linkbutton label="Dupliquer" - href="mouvements/dupliquer_mouvement.html?key=%s&direction=%s&prop=%s"|args:$key:$direction:$_GET.prop + href="mouvements/dupliquer_mouvement.html?key=%s&direction=%s"|args:$key:$direction shape="plus" target="_dialog"}} {{:linkbutton label="Modifier" - href="mouvements/modifier_mouvement.html?key=%s&direction=%s&prop=%s"|args:$key:$direction:$_GET.prop + href="mouvements/modifier_mouvement.html?key=%s&direction=%s"|args:$key:$direction shape="edit" target="_dialog"}} {{:linkbutton diff --git a/inventaire.html b/inventaire.html index 8b4c541..a9ad39b 100644 --- a/inventaire.html +++ b/inventaire.html @@ -80,7 +80,7 @@ {{if $exterieur > 0}} {{:linkbutton label="Retour" - href="mouvements/entrees/retour.html?key=%s&prop=1"|args:$equipment + href="mouvements/entrees/retour.html?key=%s"|args:$equipment shape="history" target="_dialog"}} {{/if}} @@ -88,13 +88,13 @@ {{:linkbutton label="Sortie" shape="plus" - href="mouvements/sorties/stock_disponible.html?key=%s&prop=1"|args:$equipment + href="mouvements/sorties/stock_disponible.html?key=%s"|args:$equipment target="_dialog"}} {{/if}} {{:linkbutton label="Entrée" shape="plus" - href="mouvements/entrees/repertorie.html?key=%s&prop=1"|args:$equipment + href="mouvements/entrees/repertorie.html?key=%s"|args:$equipment target="_dialog"}} {{:linkbutton label="Mouvements" diff --git a/inventaire_nonprop.html b/inventaire_nonprop.html index 26172c9..5244b43 100644 --- a/inventaire_nonprop.html +++ b/inventaire_nonprop.html @@ -73,14 +73,14 @@ {{if $qte > 0}} {{:linkbutton label="Retour" - href="mouvements/sorties/emprunte.html?key=%s&prop=0"|args:$equipment + href="mouvements/sorties/emprunte.html?key=%s"|args:$equipment shape="history" target="_dialog"}} {{/if}} {{:linkbutton label="Entrée" shape="plus" - href="mouvements/entrees/repertorie.html?key=%s&prop=0"|args:$equipment + href="mouvements/entrees/repertorie.html?key=%s"|args:$equipment target="_dialog"}} {{:linkbutton label="Mouvements" diff --git a/modifier_materiel.html b/modifier_materiel.html index 71101e9..8f9a8dc 100644 --- a/modifier_materiel.html +++ b/modifier_materiel.html @@ -3,6 +3,7 @@ {{* Paramètres : - key : clé du matériel à modifier + - prop : =1 si matériel propriété de l'association *}} {{:admin_header title="Modifier matériel" current="module_equipment"}} diff --git a/mouvements/dupliquer_mouvement.html b/mouvements/dupliquer_mouvement.html index 876d31d..d4b95f1 100644 --- a/mouvements/dupliquer_mouvement.html +++ b/mouvements/dupliquer_mouvement.html @@ -5,7 +5,6 @@ paramètres : - key : clé du mouvement à dupliquer - direction du mouvement input/output) - - prop : =1 si matériel propriété de l'asso *}} {{if $_GET.direction == "input"}} diff --git a/mouvements/entrees/retour.html b/mouvements/entrees/retour.html index f87506c..d7b25fa 100644 --- a/mouvements/entrees/retour.html +++ b/mouvements/entrees/retour.html @@ -3,7 +3,6 @@ {{* paramètres : - key : clé du matériel qui revient - - prop : = 1 si matériel propriété *}} {{:admin_header title="Entrée de matériel" current="module_equipment"}} @@ -61,7 +60,7 @@ comment=$_POST.remarques|trim }} - {{:redirect force="../../historique.html?ok=1&key=%s&prop=%s&msg=retour"|args:$_GET.key:$_GET.prop}} + {{:redirect force="../../historique.html?ok=1&key=%s&prop=1&msg=retour"|args:$_GET.key}} {{else}} {{:form_errors}} diff --git a/mouvements/modifier_mouvement.html b/mouvements/modifier_mouvement.html index dd64ab9..21490db 100644 --- a/mouvements/modifier_mouvement.html +++ b/mouvements/modifier_mouvement.html @@ -5,7 +5,6 @@ paramètres : - key : clé du mouvement à modifier - direction : du mouvement à modifier - - prop : = 1 si matériel propriété *}} {{if $_GET.direction == "input"}} diff --git a/mouvements/sorties/emprunte.html b/mouvements/sorties/emprunte.html index b4b12f5..4162728 100644 --- a/mouvements/sorties/emprunte.html +++ b/mouvements/sorties/emprunte.html @@ -3,7 +3,6 @@ {{* paramètres : - key : clé du matériel à modifier - - prop : = 1 si matériel propriété de l'asso TODO : simplifier *}} @@ -107,7 +106,7 @@ date=$_POST.date|parse_date comment=$_POST.remarques|trim }} - {{:redirect force="../../historique.html?ok=1&key=%s&prop=%s&msg=sortie"|args:$_GET.key:$_GET.prop}} + {{:redirect force="../../historique.html?ok=1&key=%s&prop=0&msg=sortie"|args:$_GET.key}} {{else}} {{:form_errors}} {{/form}} diff --git a/mouvements/sorties/stock_disponible.html b/mouvements/sorties/stock_disponible.html index d7701f8..2348ad6 100644 --- a/mouvements/sorties/stock_disponible.html +++ b/mouvements/sorties/stock_disponible.html @@ -3,7 +3,6 @@ {{* paramètres : - key : clé du matériel à modifier - - prop : = 1 si matériel propriété de l'asso TODO : simplifier *}} @@ -107,7 +106,7 @@ date=$_POST.date|parse_date comment=$_POST.remarques|trim }} - {{:redirect force="../../historique.html?ok=1&key=%s&prop=%s&msg=sortie"|args:$_GET.key:$_GET.prop}} + {{:redirect force="../../historique.html?ok=1&key=%s&prop=1&msg=sortie"|args:$_GET.key}} {{else}} {{:form_errors}} {{/form}} diff --git a/mouvements/supprimer_mouvement.html b/mouvements/supprimer_mouvement.html index 9574ed7..d943020 100644 --- a/mouvements/supprimer_mouvement.html +++ b/mouvements/supprimer_mouvement.html @@ -3,6 +3,7 @@ {{* paramètres GET : - key : clé du mouvement à supprimer + - prop : = 1 si matériel propriété de l'asso *}} {{:assign var="libelles.input" value="entrée"}} From 74ee34104fbdc4d5ba46ef3d7a7e4497fda169bd Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 10 Dec 2024 14:29:54 +0100 Subject: [PATCH 39/54] Suppression fichier inutile --- categories/list_equipment.html | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 categories/list_equipment.html diff --git a/categories/list_equipment.html b/categories/list_equipment.html deleted file mode 100644 index 89fcd24..0000000 --- a/categories/list_equipment.html +++ /dev/null @@ -1,17 +0,0 @@ -{{* -*- brindille -*- *}} - -{{#load key=$_GET.key}} - {{:assign cat_name=$name}} -{{/load}} - -{{:admin_header title="Matériels de la catégorie « %s »"|args:$cat_name current="module_equipment"}} - -{{* barre de navigation *}} -{{if ! $dialog}} - {{:include file="../_nav.html" current="entrees"}} -{{/if}} - -{{:assign var="category_keys." value=$_GET.key}} -{{:include file="../inventaire.html"}} - -{{:admin_footer}} From 7364deda872471f6897d141862facbf95c853eca Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Tue, 10 Dec 2024 15:05:50 +0100 Subject: [PATCH 40/54] 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}}
{{$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"}}