diff --git a/global_history.html b/global_history.html index 3d30b4b..6f17597 100644 --- a/global_history.html +++ b/global_history.html @@ -46,11 +46,15 @@ FROM @TABLE AS mat WHERE mat.key = @TABLE.$$.equipment) AS 'Matériel' ; $$.amount AS 'Quantité'; - $$.comment AS 'Commentaire'; CASE WHEN $$.user NOT NULL THEN (SELECT %s AS nom FROM users WHERE id = $$.user) ELSE '' - END as 'Dépositaire' + END as 'Dépositaire'; + CASE WHEN $$.storage NOT NULL + THEN (SELECT $$.name FROM @TABLE as storage WHERE storage.key = @TABLE.$$.storage) + ELSE '' + END as 'Stockage'; + $$.comment AS 'Commentaire' "|args:$config.user_fields.name_sql order=1 desc=true @@ -70,8 +74,9 @@ {{$op_label}} {{$col4}} {{$amount}} + {{:link href="/admin/users/details.php?id=%s"|args:$user label="%s"|args:$col6}} + {{$col7}} {{$comment}} - {{:link href="/admin/users/details.php?id=%s"|args:$user label="%s"|args:$col7}} {{/list}} diff --git a/historique.html b/historique.html index 592abd3..2875de5 100644 --- a/historique.html +++ b/historique.html @@ -126,11 +126,15 @@ "" as 'Stock'; "" as 'Sorti'; "" as 'Disponible'; - $$.comment AS 'Commentaire'; CASE WHEN $$.user NOT NULL THEN (SELECT %s AS nom FROM users WHERE id = $$.user) ELSE '' - END as 'Dépositaire' + END as 'Dépositaire'; + CASE WHEN $$.storage NOT NULL + THEN (SELECT $$.name FROM @TABLE as storage WHERE storage.key = @TABLE.$$.storage) + ELSE '' + END as 'Stockage'; + $$.comment AS 'Commentaire' "|args:$config.user_fields.name_sql equipment=$equipment_key order=1 @@ -152,8 +156,9 @@ {{$stock}} {{$exterieur}} {{$dispo}} + {{:link href="/admin/users/details.php?id=%s"|args:$user label="%s"|args:$col8}} + {{$col9}} {{$comment}} - {{:link href="/admin/users/details.php?id=%s"|args:$user label="%s"|args:$col9}} {{if $current != "archives"}} {{:linkbutton @@ -185,6 +190,10 @@ $$.operation AS 'Opération'; $$.amount AS 'Quantité'; "" as 'Présent'; + CASE WHEN $$.storage NOT NULL + THEN (SELECT $$.name FROM @TABLE as storage WHERE storage.key = @TABLE.$$.storage) + ELSE '' + END as 'Stockage'; $$.comment AS 'Commentaire'" equipment=$equipment_key order=1 @@ -202,6 +211,7 @@ {{$op_label}} {{$amount}} {{$stock}} + {{$col6}} {{$comment}} {{:linkbutton diff --git a/mouvements/ajouter_entree.html b/mouvements/ajouter_entree.html index 84c34db..a4e1d4e 100644 --- a/mouvements/ajouter_entree.html +++ b/mouvements/ajouter_entree.html @@ -24,7 +24,7 @@ {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} - {{* vérifier la quantité saisie (UTILE ? : fait par la navigateur) *}} + {{* vérifier la quantité saisie *}} {{if $_POST.quantite <= 0}} {{:error message="La quantité (%s) doit être strictement positive !!"|args:$_POST.quantite}} {{/if}} @@ -35,7 +35,7 @@ {{/if}} {{* vérifier l'existence d'un matériel de même nom *}} - {{#load type="equipment" where="$$.name = :name COLLATE U_NOCASE" :name=$_POST.name|trim limit=1}}}} + {{#load type="equipment" where="$$.name = :name COLLATE U_NOCASE" :name=$_POST.name|trim limit=1}} {{:assign equipment_key=$key}} {{:assign var=nom_cat from="categories.%s"|args:$category}} {{:assign present=true}} @@ -77,6 +77,7 @@ equipment=$equipment_key date=$_POST.date|parse_date comment=$_POST.remarques|trim + storage=$_POST.storage }} {{:assign var=entree from="config.input_nature.%s"|args:$_POST.operation}} @@ -85,30 +86,29 @@ {{else}} {{:assign prop=1}} {{/if}} - {{:redirect force="../index.html?prop=%s&ok=1&msg=ajout"|args:$prop:$msg}} + {{:redirect force="../index.html?prop=%s&ok=1&msg=ajout"|args:$prop}} {{/form}} {{:admin_header title="Entrée de matériel" current="module_equipment"}} {{:form_errors}} {{if $categories != null}} + {{#load type="storage" order="$$.name"}} + {{:assign var="storage.%s"|args:$key value=$name}} + {{/load}} + {{* formulaire ajout matériel *}}
- Ajouter une entrée de matériel + Enregistrer une entrée de matériel
- {{:input type="select" name="operation" label="Type" required=true default_empty="— Aucun —" options=$input_labels|sort}} - {{:input type="date" name="date" label="Date" required=true default=$now|date_short}} - {{:input type="number" name="quantite" label="Quantité" min=1 required=true default=1}} -
-
- -
- Sélectionner une catégorie et indiquer le nom du nouveau matériel -
- {{:input type="select" name="category" label="Catégorie" default_empty="— Aucune —" options=$categories required=true}} + {{:input type="select" name="operation" label="Type" required=true default_empty="— Aucun —" options=$input_labels|sort}} + {{:input type="date" name="date" label="Date" required=true default=$now|date_short}} + {{:input type="number" name="quantite" label="Quantité" min=1 required=true default=1}} {{:input type="text" name="name" label="Désignation" required=true}} + {{:input type="select" name="category" label="Catégorie" default_empty="— Aucune —" options=$categories required=true}} + {{:input type="select" name="storage" label="Lieu de stockage" default_empty="— Aucun —" options=$storage required=false}} {{:input type="textarea" name="remarques" label="Remarques" cols="40", rows="3" required=false}}
diff --git a/mouvements/dupliquer_mouvement.html b/mouvements/dupliquer_mouvement.html index 793a560..96ab559 100644 --- a/mouvements/dupliquer_mouvement.html +++ b/mouvements/dupliquer_mouvement.html @@ -171,35 +171,39 @@ {{/select}} {{/if}} +{{#load type="storage" order="$$.name"}} + {{:assign var="storage.%s"|args:$key value=$name}} +{{/load}} + {{* formulaire de copie du mouvement *}}
Créer une copie de « {{$op_label}} {{$eqpmt.name}} (Catégorie : {{$category.name}}) » - {{if $mvt_new.direction == "input"}} -
+
+ {{if $mvt_new.direction == "input"}} {{:input type="select" name="operation" label="Type" required=true options=$input_labels|sort default=$mvt_new.operation}} - {{else}} -
+ {{else}} {{:input type="select" name="operation" label="Type" required=true options=$output_labels|sort default=$mvt_new.operation}} - {{/if}} - {{:input type="date" name="date" label="Date" required=true default=$mvt_new.date}} - {{:input type="number" name="amount" label="Quantité" min=1 required=true default=$mvt_new.amount}} - {{:input type="textarea" name="comment" label="Remarques" cols="40", rows="3" required=false default=$mvt_new.comment}} -
- {{if $prop == 1}} -
- {{:input - type="list" - name="user" - label="Membre" - default=$user - target="!users/selector.php" - multiple=true - max=1 - help="dans le cas d'une sortie temporaire, il est possible d'associer un membre bénéficiaire" - }} -
{{/if}} + {{:input type="date" name="date" label="Date" required=true default=$mvt_new.date}} + {{:input type="number" name="amount" label="Quantité" min=1 required=true default=$mvt_new.amount}} + {{if $prop == 1 && $mvt_new.direction == "output"}} + {{:input + type="list" + name="user" + label="Membre" + default=$user + target="!users/selector.php" + multiple=true + max=1 + help="dans le cas d'une sortie temporaire, il est possible d'associer un membre bénéficiaire" + }} + {{/if}} + {{if $mvt_new.direction == "input"}} + {{:input type="select" name="storage" label="Lieu de stockage" default_empty="— Aucun —" options=$storage required=false}} + {{/if}} + {{:input type="textarea" name="comment" label="Remarques" cols="40", rows="3" required=false default=$mvt_new.comment}} +

diff --git a/mouvements/entrees/repertorie.html b/mouvements/entrees/repertorie.html index 3162023..d82c772 100644 --- a/mouvements/entrees/repertorie.html +++ b/mouvements/entrees/repertorie.html @@ -1,7 +1,7 @@ {{* -*- brindille -*- *}} {{* - Ajouter une entrée de matériel + Enregistrer une entrée de matériel paramètres : - key : clé du matériel à ajouter *}} @@ -52,6 +52,7 @@ equipment=$equipment.key date=$_POST.date|parse_date comment=$_POST.remarques|trim + storage=$_POST.storage }} {{:assign var=type_entree from="config.input_nature.%s.type"|args:$_POST.operation}} {{if $type_entree == "temporaire"}} @@ -66,6 +67,9 @@ {{:form_errors}} {{* formulaire de saisie d'une entrée de matériel *}} +{{#load type="storage" order="$$.name"}} + {{:assign var="storage.%s"|args:$key value=$name}} +{{/load}}

Informations matériel @@ -77,11 +81,12 @@
- Ajouter une entrée de matériel + Enregistrer une entrée de matériel
{{:input type="select" name="operation" label="Type" required=true default_empty="— Aucun —" options=$input_labels|sort}} {{:input type="date" name="date" label="Date" required=true default=$now|date_short}} {{:input type="number" name="quantite" label="Quantité" required=true min=1 default=1}} + {{:input type="select" name="storage" label="Lieu de stockage" default_empty="— Aucun —" options=$storage required=false}} {{:input type="textarea" name="remarques" label="Remarques" cols="40" rows="3" required=false}}
diff --git a/mouvements/modifier_mouvement.html b/mouvements/modifier_mouvement.html index 22ab763..f0fa1e8 100644 --- a/mouvements/modifier_mouvement.html +++ b/mouvements/modifier_mouvement.html @@ -56,17 +56,23 @@ {{:error message="La quantité (%s) doit être strictement positive !!"|args:$_POST.amount}} {{/if}} - {{* interdire date dans le futur *}} + {{* vérifier validité des données *}} {{if $_POST.date|parse_date|strtotime > $now}} {{:error message="Impossible de saisir une date dans le futur (%s)"|args:$_POST.date}} {{/if}} - {{if $mvt_new.direction != "output" || $type_mvt != "temporaire" && $_POST.user != null}} - {{:error message="Un membre ne peut être associé qu'à une sortie temporaire"}} - {{/if}} {{if $_POST.user|count > 1}} {{:error message="Un membre au plus peut être associé à une sortie"}} {{/if}} + + {{if $_POST.user != null}} + {{if $mvt_new.direction == "input"}} + {{:error message="Un membre ne peut être associé qu'à une sortie temporaire"}} + {{elseif $type_mvt != "temporaire"}} + {{:error message="Un membre ne peut être associé qu'à une sortie temporaire"}} + {{/if}} + {{/if}} + {{#foreach from=$_POST.user key="id" item="name"}} {{:assign var="user.id" value=$id}} {{:assign var="user.name" value=$name}} @@ -138,6 +144,7 @@ date=$mvt_new.date comment=$mvt_new.comment user=$user.id + storage=$_POST.storage }} {{:redirect force="../historique.html?ok=1&key=%s&prop=%s&msg=modification"|args:$eqpmt_key:$prop}} {{/if}} @@ -160,34 +167,38 @@ {{/if}} {{* formulaire de modification du mouvement *}} +{{#load type="storage" order="$$.name"}} + {{:assign var="storage.%s"|args:$key value=$name}} +{{/load}} +
Modifier « {{$op_label}} {{$eqpmt.name}} (Catégorie : {{$category.name}}) » - {{if $mvt_new.direction == "input"}}
+ {{if $mvt_new.direction == "input"}} {{:input type="select" name="operation" label="Type" required=true options=$input_labels|sort default=$mvt_new.operation}} - {{else}} -
+ {{else}} {{:input type="select" name="operation" label="Type" required=true options=$output_labels|sort default=$mvt_new.operation}} - {{/if}} - {{:input type="date" name="date" label="Date" required=true default=$mvt_new.date}} - {{:input type="number" name="amount" label="Quantité" min=1 required=true default=$mvt_new.amount}} - {{:input type="textarea" name="comment" label="Remarques" cols="40", rows="3" required=false default=$mvt_new.comment}} -
- {{if $prop == 1}} -
- {{:input - type="list" - name="user" - label="Membre" - default=$user - target="!users/selector.php" - multiple=true - max=1 - help="dans le cas d'une sortie temporaire, il est possible d'associer un membre bénéficiaire" - }} -
{{/if}} + {{:input type="date" name="date" label="Date" required=true default=$mvt_new.date}} + {{:input type="number" name="amount" label="Quantité" min=1 required=true default=$mvt_new.amount}} + {{if $prop == 1 && $mvt_new.direction == "output"}} + {{:input + type="list" + name="user" + label="Membre" + default=$user + target="!users/selector.php" + multiple=true + max=1 + help="dans le cas d'une sortie temporaire, il est possible d'associer un membre bénéficiaire" + }} + {{/if}} + {{if $mvt_new.direction == "input"}} + {{:input type="select" name="storage" label="Lieu de stockage" default=$mvt_new.storage default_empty="— Aucun —" options=$storage required=false}} + {{/if}} + {{:input type="textarea" name="comment" label="Remarques" cols="40", rows="3" required=false default=$mvt_new.comment}} +

diff --git a/mouvements/movement.schema.json b/mouvements/movement.schema.json index c3abf1f..4f0b2e6 100644 --- a/mouvements/movement.schema.json +++ b/mouvements/movement.schema.json @@ -36,6 +36,10 @@ "user": { "description": "identifiant membre dépositaire", "type": ["integer", "null"] + }, + "storage": { + "description": "clé du lieu de stockage", + "type": ["string", "null"] } }, "required": ["type", "direction", "operation", "amount", "equipment", "date", "comment"] diff --git a/snippets/user_details.html b/snippets/user_details.html new file mode 100644 index 0000000..49d1f71 --- /dev/null +++ b/snippets/user_details.html @@ -0,0 +1,35 @@ +{{#restrict section="users" level="read"}} +

+

Matériel en prêt - {{$user._name}}

+ + + + + + + + + + {{#select + json_extract(eqpmt.document, '$.name') as mat, + json_extract(mvt.document, '$.date') as date, + json_extract(mvt.document, '$.amount') as qte + FROM module_data_equipment AS mvt + INNER JOIN users ON json_extract(mvt.document, '$.user') = users.id + INNER JOIN module_data_equipment AS eqpmt + ON json_extract(mvt.document, '$.equipment') = eqpmt.key + WHERE users.id = :user + ORDER BY mat + ; + :user = $user.id + }} + + + + + + {{/select}} + +
MatérielDateQuantité
{{$mat}}{{$date|date_short}}{{$qte}}
+
+{{/restrict}}