{{* -*- brindille -*- *}} {{* Dupliquer un mouvement paramètres : - key : clé du mouvement à dupliquer - direction du mouvement à dupliquer - prop = 1 si matériel appartient à l'asso *}} {{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"}} {{* récupérer les infos du mouvement à dupliquer *}} {{#load key=$_GET.key assign="mvt_new"}} {{else}} {{:error message="Aucune %s avec la clé %s"|args:$msg_direction:$_GET.key}} {{/load}} {{* infos pour affichage *}} {{if $_GET.direction == "input"}} {{:assign mvt_nature=$mvt_new.input_nature}} {{else}} {{:assign mvt_nature=$mvt_new.output_nature}} {{/if}} {{: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}} {{* récupérer la config des entrées/sorties *}} {{:include file="../_get_config.html" keep="config"}} {{* limiter les opérations possibles *}} {{if $_GET.direction == "input"}} {{* types d'entrées *}} {{#foreach from=$config.input_nature key="label" item="type"}} {{if $_GET.prop && $type != "temporaire" || ! $_GET.prop && $type == "temporaire" }} {{:assign var="input_labels.%s"|args:$label value="%s"|args:$label}} {{/if}} {{if $label == $mvt_new.input_nature}} {{:assign nature_defaut=$label}} {{/if}} {{/foreach}} {{else}} {{* types de sorties *}} {{#foreach from=$config.output_nature key="label" item="type"}} {{if $_GET.prop && $type != "retour" || ! $_GET.prop && $type == "retour" }} {{:assign var="output_labels.%s"|args:$label value="%s"|args:$label}} {{/if}} {{if $label == $mvt_new.output_nature}} {{:assign nature_defaut=$label}} {{/if}} {{/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 copié *}} {{if $_GET.direction == "input"}} {{:assign var="mvt_new.input_nature" value=$_POST.nature_operation}} {{:assign var="type_mvt" from="config.input_nature.%s"|args:$mvt_new.input_nature}} {{if $type_mvt == "temporaire"}} {{:assign prop=0}} {{else}} {{:assign prop=1}} {{/if}} {{else}} {{:assign var="mvt_new.output_nature" value=$_POST.nature_operation}} {{:assign var="type_mvt" from="config.output_nature.%s"|args:$mvt_new.output_nature}} {{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 - insérer le mvt copié à 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! $insere}} {{if $_GET.direction == "input" && $date >= $mvt_new.date || $_GET.direction == "output" && $date > $mvt_new.date }} {{:assign var="movements_new." from=mvt_new}} {{:assign insere=true}} {{/if}} {{/if}} {{:assign var="movements_new." from=movement}} {{/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}}
Modification demandée impossible : « {{$mvt_nature}} de {{$eqpmt.designation}} (qté : {{$amount_init}}) en date du {{$date_init}} » vers {{if $_GET.direction == "input"}} « {{$mvt_new.input_nature}} {{else}} « {{$mvt_new.output_nature}} {{/if}} de {{$eqpmt.designation}} (qté : {{$mvt_new.amount}}) à la date du {{$mvt_new.date|date_short}} »
{{else}} {{* vérification réussie : enregistrer le mouvement modifié *}} {{:assign mvt_key=""|uuid}} {{:save key=$mvt_key validate_schema="movement.schema.json" type="movement" direction=$_GET.direction input_nature=$mvt_new.input_nature output_nature=$mvt_new.output_nature 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=copie"|args:$eqpmt_key:$prop}} {{/if}} {{else}} {{:form_errors}} {{/form}} {{* -------------------- Préparer la saisie -------------------- *}} {{* récupérer les infos de la catégorie *}} {{#load key=$eqpmt.category assign="category"}}{{/load}} {{* formulaire de copie du mouvement *}} {{:admin_footer}}