{{* -*- brindille -*- *}} {{#restrict block=true section="accounting" level="write"}}{{/restrict}} {{* Paramètres : - key : clé du matériel à modifier - prop : =1 si matériel propriété de l'association, 0 sinon *}} {{:assign equipment_key=$_GET.key|trim}} {{#load key=$_GET.key assign="equipment"}} {{else}} {{:error message="Pas de matériel avec la clé %s"|args:$equipment_key}} {{/load}} {{:assign default_category=$equipment.category}} {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} {{if $_POST.archive == 1}} {{* vérifier les quantités *}} {{if $_GET.prop == 1 && $equipment.stock != 0}} {{:error message="L'archivage n'est possible que si le stock est nul !"}} {{elseif $_GET.prop == 0 && $equipment.notowned != 0}} {{:error message="L'archivage n'est possible que s'il n'y a plus de matériel présent temporairement"}} {{/if}} {{* archiver le matériel *}} {{:save key=$equipment_key status="archived" }} {{else}} {{* récupérer les infos de la catégorie *}} {{#load type="category" key=$_POST.category assign="category"}}{{/load}} {{* vérifier la validité des changements demandés *}} {{:assign chgt_ok=true}} {{if $_POST.category != $default_category}} {{* catégorie change : vérifier le nom *}} {{#load key=$equipment_key}} {{if $name|trim|tolower != $_POST.name|trim|tolower}} {{* le nom change => vérifier l'existence d'un matériel du même nom *}} {{#load type="equipment" where="$$.name = :name COLLATE U_NOCASE" :name=$_POST.name|trim limit=1}} {{:assign chgt_ok=false}} {{/load}} {{else}} {{* le nom ne change pas : ok *}} {{/if}} {{/load}} {{else}} {{* catégorie ne change pas => vérifier le nom *}} {{#load type="equipment" where="$$.name = :name COLLATE U_NOCASE" :name=$_POST.name|trim limit=1}} {{*:assign chgt_ok=false*}} {{:assign var="_err_msg" value="Erreur : il existe déjà un matériel avec cette désignation"}} {{/load}} {{* N° de série & quantités *}} {{if $_POST.serialno && $_POST.amount > 1 }} {{:assign chgt_ok=false}} {{:assign var="_err_msg" value="Si un n° de série est défini, la quantité doit être égale à 1"}} {{/if}} {{/if}} {{if $chgt_ok==false}} {{:error message=$_err_msg}} {{/if}} {{* stock ou temporaire ? *}} {{:assign var="type_mvt" value=$_POST.operation}} {{if $type_mvt == 'définitif'}} {{:assign _stock=$_POST.amount|intval}} {{:assign _notowned=0}} {{elseif $type_mvt == 'temporaire'}} {{:assign _notowned=$_POST.amount|intval}} {{:assign _stock=0}} {{else}} {{:debug conf=$config.input_nature type=$type_mvt post=$_POST.operation}} {{:error message="break"}} {{/if}} {{* Enregistrer membre *}} {{if $_POST.user|count > 1}} {{:error message="Un membre au plus peut être associé à un équipement !"}} {{else}} {{#foreach from=$_POST.user key="id" item="name"}} {{:assign var="user.id" value=$id}} {{:assign var="user.name" value=$name}} {{/foreach}} {{/if}} {{* Champs personnalisés *}} {{#foreach from=$module.config.fields key="i" item="field"}} {{if $field.assignedto == 'M'}} {{:assign var="value" from="_POST.fields.%d"|args:$i}} {{:assign var="fields" append=$i value=$value label=$field.label}} {{if $field.required && $value|trim === ''}} {{:error message="Le champ '%s' doit être renseigné."|args:$field.label}} {{/if}} {{/if}} {{/foreach}} {{* Temp *}} {{if $_POST.status == "available"}} {{:assign var="_status" value="disponible"}} {{else}} {{:assign var="_status" value=$_POST.status}} {{/if}} {{* enregistrer les modifications *}} {{:save key=$equipment_key validate_schema="./equipment.schema.json" category=$category.key name=$_POST.name|trim status=$_status|trim stock=$_stock|intval|or:0 notowned=$_notowned|intval|or:0 out=$_POST.out|intval|or:0 state=$_POST.state|intval serialno=$_POST.serialno|trim|or:null description=$_POST.description|trim|or:null member=$user.id|intval|or:null fields=$fields|arrayval|or:null }} {{*:debug}} {{:error message="break"*}} {{/if}} {{:redirect force="index.html?ok=1&msg=modification&prop=%s"|args:$_GET.prop}} {{/form}} {{:admin_header title="Modifier matériel" current="module_%s"|args:$module.name}} {{:form_errors}} {{* lister les types d'entrées {{#foreach from=$module.config.input_nature key=key}} {{:assign var="input_labels.%s"|args:$key value=$label}} {{/foreach}} {{:debug types=$input_labels}} *}} {{* lister les catégories disponibles *}} {{#load type="category" assign="category" order="$$.name"}} {{:assign var="categories.%s"|args:$category.key value=$category.name}} {{/load}} {{*:debug types=$categories*}} {{* lister les états matériels possibles *}} {{:assign var="states" value=$module.config.states|explode:","}} {{*:debug types=$states*}} {{* Quantités stock ou temp *}} {{if $equipment.stock >= 1}} {{:assign _amount=$equipment.stock|intval}} {{:assign _operation="définitif"}} {{elseif $equipment.notowned >= 1}} {{:assign _amount=$equipment.notowned|intval}} {{:assign _operation="temporaire"}} {{else}} {{:assign _amount=$equipment.notowned|intval}} {{:assign _operation="temporaire"}} {{/if}} {{* Récupère le membre si présent {{if $equipment.member >= 1}} {{#select id, !name as nom FROM users WHERE id=:id; !name=$config.user_fields.name_sql :id=$equipment.member}} {{:assign var="user.%s"|args:$id value=$nom}} {{/select}} {{/if}} *}} {{* Récupère le membre si présent *}} {{if $equipment.member >= 1}} {{#users id=$equipment.member}} {{:assign var="user.%s"|args:$id value=$_name}} {{/users}} {{/if}} {{* N° de série *}} {{if !$equipment.serialno }} {{:assign var="_max" value="999"}} {{else}} {{:assign var="_max" value="1"}} {{/if}}
{{* View and Add Public files *}} {{:assign var="path" value="public/image-%s"|args:$equipment_key}} {{:admin_files path=$path upload=true edit=true use_trash=false}}