From 1e4a9a45c9f5bd6e46dcb012644614109549c11c Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 23 Nov 2023 14:47:34 +0100 Subject: [PATCH] =?UTF-8?q?V=C3=A9rification=20possibilit=C3=A9=20supprime?= =?UTF-8?q?r=20entr=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mouvements/entrees/delete_entree.html | 92 +++++++++++++++++++++------ mouvements/entrees/index.html | 8 ++- 2 files changed, 78 insertions(+), 22 deletions(-) diff --git a/mouvements/entrees/delete_entree.html b/mouvements/entrees/delete_entree.html index 8424cdd..4cfd4b5 100644 --- a/mouvements/entrees/delete_entree.html +++ b/mouvements/entrees/delete_entree.html @@ -1,34 +1,86 @@ {{#restrict section="config" level="admin" block=true}}{{/restrict}} {{:admin_header title="Supprimer une entrée" current="module_equipment"}} -{{#load key=$_GET.key assign="movement"}} - {{* trouver le matériel concerné par ce mouvement *}} - {{#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}} +{{* récupérer les infos du mouvement à supprimer et du matériel associé *}} +{{#load key=$_GET.key assign="mvt_suppr"}} {{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}} -{{:assign var="date_supp" value="%s"|args:$movement.date|date_short}} {{#form on="delete"}} - {{* supprimer le mouvement *}} - {{: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}} - {{* 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}} - {{else}} - {{* supprimer le matériel *}} - {{:delete key=$equipment.key}} - {{:assign var="msg" value="%s - Matériel « %s » supprimé"|args:$msg:$equipment.designation}} - {{/load}} + {{* 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 *}} - {{:redirect force="./index.html?ok=1&msg=%s"|args:$msg}} + {{#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}} + {{: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é *}} + {{#load type="movement" where="$$.equipment = :eqpmt_key" :eqpmt_key=$key_eqpmt_suppr}} + {{else}} + {{* supprimer le matériel *}} + {{:delete key=$key_eqpmt_suppr}} + {{:assign var="msg" value="%s - Matériel « %s » supprimé"|args:$msg:$eqpmt_suppr.designation}} + {{/load}} + + {{:redirect force="./index.html?ok=1&msg=%s"|args:$msg}} {{/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}} diff --git a/mouvements/entrees/index.html b/mouvements/entrees/index.html index 8e0b8f2..7eb84eb 100644 --- a/mouvements/entrees/index.html +++ b/mouvements/entrees/index.html @@ -43,14 +43,18 @@ {{$col4}} {{$comment}} + {{: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 label="Supprimer" href="../delete_movement.html?key=%s&mvt=entrée&caller=%s"|args:$mvt_key:$request_url shape="delete" target="_dialog"}} +*}} {{/list}}