Vérification possibilité supprimer entrée

This commit is contained in:
Jean-Christophe Engel 2023-11-23 14:47:34 +01:00
parent 5521c12245
commit 1e4a9a45c9
2 changed files with 78 additions and 22 deletions

View File

@ -1,34 +1,86 @@
{{#restrict section="config" level="admin" block=true}}{{/restrict}} {{#restrict section="config" level="admin" block=true}}{{/restrict}}
{{:admin_header title="Supprimer une entrée" current="module_equipment"}} {{:admin_header title="Supprimer une entrée" current="module_equipment"}}
{{#load key=$_GET.key assign="movement"}} {{* récupérer les infos du mouvement à supprimer et du matériel associé *}}
{{* trouver le matériel concerné par ce mouvement *}} {{#load key=$_GET.key assign="mvt_suppr"}}
{{#load type="equipment" where="key = :key" :key=$movement.equipment assign="equipment"}}
{{else}}
{{:error message="Matériel avec la clé « %s » introuvable"|args:$movement.equipment}}
{{/load}}
{{else}} {{else}}
{{:error message="Entrée avec la clé « %s » introuvable"|args:$_GET.key}} {{:error message="Aucune entrée avec la clé %s"|args:$_GET.key}}
{{/load}}
{{:assign amount_suppr=$mvt_suppr.amount}}
{{:assign date_suppr=$mvt_suppr.date|date_short}}
{{:assign key_eqpmt_suppr=$mvt_suppr.equipment}}
{{#load key=$key_eqpmt_suppr assign="eqpmt_suppr"}}
{{else}}
{{:error message="Aucun matériel avec la clé « %s »"|args:$key_eqpmt_suppr}}
{{/load}} {{/load}}
{{:assign var="date_supp" value="%s"|args:$movement.date|date_short}}
{{#form on="delete"}} {{#form on="delete"}}
{{* supprimer le mouvement *}}
{{* vérifier s'il est possible de supprimer l'entrée *}}
{{:assign dispo=0}}
{{:assign nonprop=0}}
{{* parcourir la liste des mouvements du matériel *}}
{{#load
type="movement"
where="$$.equipment = :key" :key=$key_eqpmt_suppr
assign="movement"
order="$$.date"}}
{{if $key != $_GET.key}}
{{* ce n'est pas le mouvement à supprimer : cumuler les entrées/sorties *}}
{{if $movement.direction == 'entrée'}}
{{* chercher le type d'entrée parmi les types de la config *}}
{{#foreach from=$module.config.inputNature item="elem"}}
{{if $movement.inputNature == $elem.label}}
{{if $elem.type == 'temporaire'}}
{{:assign nonprop="%d+%d"|math:$nonprop:$movement.amount}}
{{else}}
{{:assign dispo="%d+%d"|math:$dispo:$movement.amount}}
{{/if}}
{{/if}}
{{/foreach}}
{{elseif $movement.direction == 'sortie'}}
{{* chercher le type de sortie parmi les types de la config *}}
{{#foreach from=$module.config.outputNature item="elem"}}
{{if $movement.outputNature == $elem.label}}
{{if $elem.type == 'retour'}}
{{:assign nonprop="%d-%d"|math:$nonprop:$movement.amount}}
{{else}}
{{:assign dispo="%d-%d"|math:$dispo:$movement.amount}}
{{/if}}
{{/if}}
{{/foreach}}
{{/if}}
{{* problème ? *}}
{{if $dispo < 0 || $nonprop < 0}}
{{:redirect force="./index.html?err=1&msg=Impossible de supprimer l'entrée « %s %s (%d) en date du %s »"|args:$mvt_suppr.inputNature:$eqpmt_suppr.designation:$amount_suppr:$date_suppr}}
{{/if}}
{{/if}}
{{/load}}
{{* vérification réussie : supprimer l'entrée *}}
{{:delete key=$_GET.key}} {{:delete key=$_GET.key}}
{{:assign var="msg" value="Entrée « %d %s en date du %s » supprimée"|args:$movement.amount:$equipment.designation:$date_supp}} {{:assign var="msg" value="Entrée « %s %s (%d) en date du %s » supprimée"|args:$mvt_suppr.inputNature:$eqpmt_suppr.designation:$amount_suppr:$date_suppr}}
{{* voir s'il reste des mouvements pour le matériel concerné par le mouvement supprimé *}} {{* voir s'il reste des mouvements pour le matériel concerné par le mouvement supprimé *}}
{{#load type="movement" where="$$.equipment = :eqpmt_key" :eqpmt_key=$equipment.key}} {{#load type="movement" where="$$.equipment = :eqpmt_key" :eqpmt_key=$key_eqpmt_suppr}}
{{else}} {{else}}
{{* supprimer le matériel *}} {{* supprimer le matériel *}}
{{:delete key=$equipment.key}} {{:delete key=$key_eqpmt_suppr}}
{{:assign var="msg" value="%s - Matériel « %s » supprimé"|args:$msg:$equipment.designation}} {{:assign var="msg" value="%s - Matériel « %s » supprimé"|args:$msg:$eqpmt_suppr.designation}}
{{/load}} {{/load}}
{{:redirect force="./index.html?ok=1&msg=%s"|args:$msg}} {{:redirect force="./index.html?ok=1&msg=%s"|args:$msg}}
{{/form}} {{/form}}
{{:delete_form legend="Supprimer cette entrée ?" warning="Supprimer l'entrée « %d %s » en date du %s ?"|args:$movement.amount:$equipment.designation:$date_supp}} {{:delete_form
legend="Supprimer cette entrée ?"
warning="Supprimer l'entrée « %s %s (%d) en date du %s » ?"|args:$mvt_suppr.inputNature:$eqpmt_suppr.designation:$amount_suppr:$date_suppr}}
{{:form_errors}} {{:form_errors}}

View File

@ -43,14 +43,18 @@
<td>{{$col4}}</td> <td>{{$col4}}</td>
<td>{{$comment}}</td> <td>{{$comment}}</td>
<td class="actions"> <td class="actions">
{{:linkbutton
label="Supprimer"
href="delete_entree.html?key=%s"|args:$mvt_key
shape="delete"
target="_dialog"}}
{{* {{*
{{:linkbutton label="Supprimer" href="delete_entree.html?key=%s"|args:$mvt_key shape="delete" target="_dialog"}}
*}}
{{:linkbutton {{:linkbutton
label="Supprimer" label="Supprimer"
href="../delete_movement.html?key=%s&mvt=entrée&caller=%s"|args:$mvt_key:$request_url href="../delete_movement.html?key=%s&mvt=entrée&caller=%s"|args:$mvt_key:$request_url
shape="delete" shape="delete"
target="_dialog"}} target="_dialog"}}
*}}
</td> </td>
</tr> </tr>
{{/list}} {{/list}}