{{* -*- brindille -*- *}} {{* Modifier un mouvement paramètres : - key : clé du mouvement à modifier *}} {{* récupérer les infos du mouvement à modifier *}} {{#load key=$_GET.key assign="mvt_new"}} {{else}} {{: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 var="op_label" from="config.%s_nature.%s.label"|args:$mvt_new.direction:$mvt_new.operation}} {{:assign amount_init=$mvt_new.amount}} {{:assign date_init=$mvt_new.date|date_short}} {{:assign eqpmt_key=$mvt_new.equipment}} {{* récupérer les infos du matériel associé *}} {{#load key=$eqpmt_key assign="eqpmt"}} {{else}} {{:error message="Aucun matériel avec la clé « %s »"|args:$eqpmt_key}} {{/load}} {{#foreach from=$directions key="direction"}} {{:assign var="nature" from="config.%s_nature"|args:$direction}} {{#foreach from=$nature key="key"}} {{:assign var="%s_labels.%s"|args:$direction:$key value=$label}} {{/foreach}} {{/foreach}} {{* -------------------- Traiter la saisie -------------------- *}} {{#form on="save"}} {{if $_POST.amount <= 0}} {{:error message="La quantité (%s) doit être strictement positive !!"|args:$_POST.amount}} {{/if}} {{* interdire date dans le futur *}} {{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}} {{#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="mvt_new.amount" value=$_POST.amount}} {{:assign var="mvt_new.date" value=$_POST.date|parse_date}} {{:assign var="mvt_new.comment" value=$_POST.comment}} {{* lister les mouvements - ignorer le mouvement à modifier - insérer le mvt modifié à sa place par date croissante *}} {{:assign insere=false}} {{#load where=" $$.type = 'movement' AND $$.equipment = :eqpmt_key" :eqpmt_key=$eqpmt_key order="$$.date" assign="movement" }} {{if $key != $_GET.key}} {{if! $insere}} {{if $mvt_new.direction == "input" && $date >= $mvt_new.date || $mvt_new.direction == "output" && $date > $mvt_new.date }} {{:assign var="movements_new." from=mvt_new}} {{:assign insere=true}} {{/if}} {{/if}} {{:assign var="movements_new." from=movement}} {{/if}} {{/load}} {{if ! $insere}} {{:assign var="movements_new." from=mvt_new}} {{/if}} {{* Vérifier la cohérence des mouvements du matériel *}} {{:include file="./valider_modification.html" keep="erreur" movements=$movements_new }} {{if $erreur}} {{:assign var="new_op_label" from="config.%s_nature.%s.label"|args:$mvt_new.direction:$mvt_new.operation}}
Modification demandée impossible : « {{$op_label}} de {{$eqpmt.name}} (qté : {{$amount_init}}) en date du {{$date_init}} » vers « {{$new_op_label}} de {{$eqpmt.name}} (qté : {{$mvt_new.amount}}) à la date du {{$mvt_new.date|date_short}} »
{{else}} {{* vérification réussie : enregistrer le mouvement modifié *}} {{:save key=$_GET.key validate_schema="movement.schema.json" type="movement" direction=$mvt_new.direction operation=$_POST.operation amount=$mvt_new.amount|intval 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}} {{/form}} {{:admin_header title="Modifier un mouvement" current="module_equipment"}} {{:form_errors}} {{* -------------------- Préparer la saisie -------------------- *}} {{* 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 *}} {{:admin_footer}}