{{* -*- 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"}} {{* infos pour affichage *}} {{:assign var="op_label" from="config.%s_nature.%s.label"|args:$mvt_new.direction:$mvt_new.operation}} {{:debug get=$_GET mvt_new=$mvt_new op_label=$op_label}} {{: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}} {{if $mvt_new.direction == "input"}} {{* types d'entrées *}} {{#foreach from=$config.input_nature key=key}} {{:assign var="input_labels.%s"|args:$key value=$label}} {{/foreach}} {{else}} {{* types de sorties *}} {{#foreach from=$config.output_nature key=key}} {{:assign var="output_labels.%s"|args:$key value=$label}} {{/foreach}} {{/if}} {{* -------------------- Traiter la saisie -------------------- *}} {{#form on="save"}} {{if $_POST.amount <= 0}} {{:error message="La quantité (%s) doit être strictement positive !!"|args:$_POST.amount}} {{/if}} {{* préparer le mouvement modifié *}} {{if $mvt_new.direction == "input"}} {{:assign var="mvt_new.input_nature" value=$_POST.operation}} {{:assign var="type_mvt" from="config.input_nature.%s.type"|args:$mvt_new.operation}} {{if $type_mvt == "temporaire"}} {{:assign prop=0}} {{else}} {{:assign prop=1}} {{/if}} {{else}} {{:assign var="mvt_new.output_nature" value=$_POST.operation}} {{:assign var="type_mvt" from="config.output_nature.%s.type"|args:$mvt_new.operation}} {{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}} {{* 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.designation}} (qté : {{$amount_init}}) en date du {{$date_init}} » vers « {{$new_op_label}} de {{$eqpmt.designation}} (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 }} {{:redirect force="../historique.html?ok=1&key=%s&prop=%s&msg=modification"|args:$eqpmt_key:$prop}} {{/if}} {{/form}} {{:admin_header title="Modifier une %s"|args:$msg_direction 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}} {{* formulaire de modification du mouvement *}} {{:admin_footer}}