diff --git a/global_history.html b/global_history.html index f26b8f2..3d30b4b 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'" + $$.comment AS 'Commentaire'; + CASE WHEN $$.user NOT NULL + THEN (SELECT %s AS nom FROM users WHERE id = $$.user) + ELSE '' + END as 'Dépositaire' + "|args:$config.user_fields.name_sql order=1 desc=true - }} - +}} {{* filtrer selon la catégorie *}} {{#load key=$equipment}} {{:assign cat_key=$category}} @@ -67,6 +71,7 @@ {{$col4}} {{$amount}} {{$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 655c0ad..592abd3 100644 --- a/historique.html +++ b/historique.html @@ -126,7 +126,12 @@ "" as 'Stock'; "" as 'Sorti'; "" as 'Disponible'; - $$.comment AS 'Commentaire'" + $$.comment AS 'Commentaire'; + CASE WHEN $$.user NOT NULL + THEN (SELECT %s AS nom FROM users WHERE id = $$.user) + ELSE '' + END as 'Dépositaire' + "|args:$config.user_fields.name_sql equipment=$equipment_key order=1 }} @@ -148,6 +153,7 @@ {{$exterieur}} {{$dispo}} {{$comment}} + {{:link href="/admin/users/details.php?id=%s"|args:$user label="%s"|args:$col9}} {{if $current != "archives"}} {{:linkbutton diff --git a/mouvements/dupliquer_mouvement.html b/mouvements/dupliquer_mouvement.html index 66f4695..793a560 100644 --- a/mouvements/dupliquer_mouvement.html +++ b/mouvements/dupliquer_mouvement.html @@ -13,6 +13,23 @@ {{:error message="Aucun mouvement avec la clé %s"|args:$_GET.key}} {{/load}} +{{* récupérer la config des entrées/sorties *}} +{{:include file="../_get_config.html" keep="config, directions"}} +{{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$mvt_new.direction:$mvt_new.operation}} +{{if $mvt_new.direction == "input"}} + {{if $type_mvt == "temporaire"}} + {{:assign prop=0}} + {{else}} + {{:assign prop=1}} + {{/if}} +{{else}} + {{if $type_mvt == "retour"}} + {{:assign prop=0}} + {{else}} + {{:assign prop=1}} + {{/if}} +{{/if}} + {{* infos pour affichage *}} {{:assign amount_init=$mvt_new.amount}} {{:assign date_init=$mvt_new.date|date_short}} @@ -60,24 +77,19 @@ {{: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}} + {{#foreach from=$_POST.user key="id" item="name"}} + {{:assign var="user.id" value=$id}} + {{:assign var="user.name" value=$name}} + {{/foreach}} + {{* préparer le mouvement copié *}} {{:assign var="mvt_new.operation" value=$_POST.operation}} - {{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$mvt_new.direction:$mvt_new.operation}} - - {{if $mvt_new.direction == "input"}} - {{if $type_mvt == "temporaire"}} - {{:assign prop=0}} - {{else}} - {{:assign prop=1}} - {{/if}} - {{else}} - {{if $type_mvt == "retour"}} - {{:assign prop=0}} - {{else}} - {{:assign prop=1}} - {{/if}} - {{/if}} - {{:assign var="mvt_new.amount" value=$_POST.amount}} {{:assign var="mvt_new.date" value=$_POST.date|parse_date}} {{:assign var="mvt_new.comment" value=$_POST.comment}} @@ -136,6 +148,7 @@ equipment=$eqpmt_key date=$mvt_new.date comment=$mvt_new.comment + user=$user.id }} {{:redirect force="../historique.html?ok=1&key=%s&prop=%s&msg=copie"|args:$eqpmt_key:$prop}} {{/if}} @@ -152,6 +165,12 @@ {{#load key=$eqpmt.category assign="category"}}{{/load}} {{:assign var="op_label" from="config.%s_nature.%s.label"|args:$mvt_new.direction:$mvt_new.operation}} +{{if $mvt_new.user != null}} + {{#select id, !name as nom FROM users WHERE id=:id; !name=$config.user_fields.name_sql :id=$mvt_new.user}} + {{:assign var="user.%s"|args:$id value=$nom}} + {{/select}} +{{/if}} + {{* formulaire de copie du mouvement *}}
@@ -167,6 +186,20 @@ {{: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}}

diff --git a/mouvements/modifier_mouvement.html b/mouvements/modifier_mouvement.html index 6c02bf8..22ab763 100644 --- a/mouvements/modifier_mouvement.html +++ b/mouvements/modifier_mouvement.html @@ -14,6 +14,20 @@ {{* récupérer la config des entrées/sorties *}} {{:include file="../_get_config.html" keep="config, directions"}} +{{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$mvt_new.direction:$mvt_new.operation}} +{{if $mvt_new.direction == "input"}} + {{if $type_mvt == "temporaire"}} + {{:assign prop=0}} + {{else}} + {{:assign prop=1}} + {{/if}} +{{else}} + {{if $type_mvt == "retour"}} + {{:assign prop=0}} + {{else}} + {{:assign prop=1}} + {{/if}} +{{/if}} {{* infos pour affichage *}} {{:assign var="op_label" from="config.%s_nature.%s.label"|args:$mvt_new.direction:$mvt_new.operation}} @@ -47,24 +61,19 @@ {{: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}} + {{#foreach from=$_POST.user key="id" item="name"}} + {{:assign var="user.id" value=$id}} + {{:assign var="user.name" value=$name}} + {{/foreach}} + {{* préparer le mouvement modifié *}} {{:assign var="mvt_new.operation" value=$_POST.operation}} - {{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$mvt_new.direction:$mvt_new.operation}} - - {{if $mvt_new.direction == "input"}} - {{if $type_mvt == "temporaire"}} - {{:assign prop=0}} - {{else}} - {{:assign prop=1}} - {{/if}} - {{else}} - {{if $type_mvt == "retour"}} - {{:assign prop=0}} - {{else}} - {{:assign prop=1}} - {{/if}} - {{/if}} - {{:assign var="mvt_new.amount" value=$_POST.amount}} {{:assign var="mvt_new.date" value=$_POST.date|parse_date}} {{:assign var="mvt_new.comment" value=$_POST.comment}} @@ -128,6 +137,7 @@ equipment=$eqpmt_key date=$mvt_new.date comment=$mvt_new.comment + user=$user.id }} {{:redirect force="../historique.html?ok=1&key=%s&prop=%s&msg=modification"|args:$eqpmt_key:$prop}} {{/if}} @@ -143,6 +153,12 @@ {{* récupérer les infos de la catégorie *}} {{#load key=$eqpmt.category assign="category"}}{{/load}} +{{if $mvt_new.user != null}} + {{#select id, !name as nom FROM users WHERE id=:id; !name=$config.user_fields.name_sql :id=$mvt_new.user}} + {{:assign var="user.%s"|args:$id value=$nom}} + {{/select}} +{{/if}} + {{* formulaire de modification du mouvement *}}

@@ -158,6 +174,20 @@ {{: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}}

diff --git a/mouvements/movement.schema.json b/mouvements/movement.schema.json index 302aa82..c3abf1f 100644 --- a/mouvements/movement.schema.json +++ b/mouvements/movement.schema.json @@ -32,6 +32,10 @@ "comment": { "description": "Commentaire additionnel", "type": ["null", "string"] + }, + "user": { + "description": "identifiant membre dépositaire", + "type": ["integer", "null"] } }, "required": ["type", "direction", "operation", "amount", "equipment", "date", "comment"] diff --git a/mouvements/sorties/stock_disponible.html b/mouvements/sorties/stock_disponible.html index 711a23d..46b13cf 100644 --- a/mouvements/sorties/stock_disponible.html +++ b/mouvements/sorties/stock_disponible.html @@ -5,11 +5,6 @@ - key : clé du matériel à sortir *}} -{{if ! $dialog}} - {{* barre de navigation *}} - {{:include file="../../_nav.html" current="sorties"}} -{{/if}} - {{* récupérer la config des entrées/sorties *}} {{:include file="../../_get_config.html" keep="config"}} @@ -27,9 +22,25 @@ {{:error message="Impossible de saisir une date dans le futur (%s)"|args:$_POST.date}} {{/if}} + {{* vérifier les infos saisies *}} + {{if $_POST.operation == ""}} + {{:error message="Vous devez choisir un type de sortie"}} + {{/if}} + + {{:assign var="type_mvt" from="config.output_nature.%s.type"|args:$_POST.operation}} + {{if $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}} + {{#foreach from=$_POST.user key="id" item="name"}} + {{:assign var="user.id" value=$id}} + {{:assign var="user.name" value=$name}} + {{/foreach}} + {{* récupérer les infos du matériel *}} - {{#load type="equipment" key=$_GET.key assign="equipment"}} - {{/load}} + {{#load type="equipment" key=$_GET.key assign="equipment"}}{{/load}} {{:assign stock=0}} {{:assign exterieur=0}} @@ -42,7 +53,6 @@ {{if ! $insere && $mvt.date > $_POST.date|parse_date}} {{:assign insere=true}} {{:assign dispo_old="%d-%d"|math:$stock:$exterieur}} - {{:assign var="type_mvt" from="config.output_nature.%s.type"|args:$_POST.operation}} {{if $type_mvt == 'définitif'}} {{:assign stock="%d-%d"|math:$stock:$_POST.quantite}} @@ -114,11 +124,16 @@ equipment=$equipment.key date=$_POST.date|parse_date comment=$_POST.remarques|trim + user=$user.id }} {{:redirect force="../../historique.html?ok=1&key=%s&prop=1&msg=sortie"|args:$_GET.key}} {{/form}} {{:admin_header title="Sortie de matériel" custom_css="./../../style.css" current="module_equipment"}} +{{if ! $dialog}} + {{* barre de navigation *}} + {{:include file="../../_nav.html" current="sorties"}} +{{/if}} {{:form_errors}} {{* Extraire et compiler les infos de la base *}} @@ -154,13 +169,32 @@ {{:input type="number" name="quantite" label="Quantité" required=true default=$dispo min=1 max=$dispo}} {{:input type="textarea" name="remarques" label="Remarques" cols="40" rows="3" required=false}} +

+ {{:input + type="list" + name="user" + label="Membre" + 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" + }} +

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

{{else}} -

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

+

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

{{/if}} {{:admin_footer}} + + +