From ba7a2dd8a83065798c60825eb3157a26313f1a8e Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 22 Nov 2023 14:28:42 +0100 Subject: [PATCH] =?UTF-8?q?V=C3=A9rification=20possibilit=C3=A9=20supprime?= =?UTF-8?q?r=20sortie=20temporaire?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mouvements/sorties/delete_sortie.html | 91 +++++++++++++++++++++------ mouvements/sorties/index.html | 6 +- 2 files changed, 76 insertions(+), 21 deletions(-) diff --git a/mouvements/sorties/delete_sortie.html b/mouvements/sorties/delete_sortie.html index 2e6bf2d..31e897a 100644 --- a/mouvements/sorties/delete_sortie.html +++ b/mouvements/sorties/delete_sortie.html @@ -1,34 +1,87 @@ {{#restrict section="config" level="admin" block=true}}{{/restrict}} {{:admin_header title="Supprimer une sortie" 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="Sortie avec la clé %s introuvable"|args:$_GET.key}} + {{:error message="Aucune sortie 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="Sortie « %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}} + {{* déterminer s'il s'agit d'une sortie temporaire *}} + {{:assign temporaire=false}} + {{#foreach from=$module.config.outputNature item="elem"}} + {{if $mvt_suppr.outputNature == $elem.label && $elem.type == 'temporaire'}} + {{:assign temporaire=true}} + {{:break}} + {{/if}} + {{/foreach}} + + {{* dans le cas d'une sortie temporaire, vérifier s'il est possible de la supprimer *}} + {{if $temporaire}} + {{:assign exterieur=0}} + {{#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 && $elem.type == 'retour'}} + {{:assign exterieur="%d-%d"|math:$exterieur:$movement.amount}} + {{/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 && $elem.type == 'temporaire'}} + {{:assign exterieur="%d+%d"|math:$exterieur:$movement.amount}} + {{/if}} + {{/foreach}} + {{/if}} + + {{* problème ? *}} + {{if $exterieur < 0}} + {{:redirect force="./index.html?err=1&msg=Impossible de supprimer la sortie « %s %s (%d) en date du %s »"|args:$mvt_suppr.outputNature:$eqpmt_suppr.designation:$amount_suppr:$date_suppr}} + {{/if}} + + {{/if}} {{/load}} + {{/if}} - {{:redirect force="./index.html?ok=1&msg=%s"|args:$msg}} + {{* vérification réussie : supprimer le mouvement *}} + {{:delete key=$_GET.key}} + {{:assign var="msg" value="Sortie « %s %s (%d) en date du %s » supprimée"|args:$mvt_suppr.outputNature:$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=$eqpmt_suppr_key}} + {{: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 sortie ?" warning="Supprimer la sortie « %d %s » en date du %s ?"|args:$movement.amount:$equipment.designation:$date_supp}} +{{:delete_form + legend="Supprimer cette sortie ?" + warning="Supprimer la sortie « %s %s (%d) en date du %s » ?"|args:$mvt_suppr.outputNature:$eqpmt_suppr.designation:$amount_suppr:$date_suppr +}} {{:form_errors}} diff --git a/mouvements/sorties/index.html b/mouvements/sorties/index.html index 2879923..75b9859 100644 --- a/mouvements/sorties/index.html +++ b/mouvements/sorties/index.html @@ -6,6 +6,8 @@ {{if $_GET.ok}}

{{$_GET.msg}}

+{{elseif $_GET.err}} +

{{$_GET.msg}}

{{/if}}
@@ -42,14 +44,14 @@ {{$col4}} {{$comment}} -{{* {{:linkbutton label="Supprimer" href="delete_sortie.html?key=%s"|args:$mvt_key shape="delete" target="_dialog"}} -*}} +{{* {{:linkbutton label="Supprimer" href="../delete_movement.html?key=%s&mvt=sortie&caller=%s"|args:$mvt_key:$request_url shape="delete" target="_dialog"}} +*}} {{/list}}