diff --git a/mouvements/ajouter_entree.html b/mouvements/ajouter_entree.html index a4ba084..022f71e 100644 --- a/mouvements/ajouter_entree.html +++ b/mouvements/ajouter_entree.html @@ -29,66 +29,44 @@ {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} - {{* vérifier les infos saisies *}} + {{* vérifier la quantité saisie (UTILE ? : fait par la navigateur) *}} {{if $_POST.quantite <= 0}} {{:error message="La quantité (%s) doit être strictement positive !!"|args:$_POST.quantite}} {{/if}} - {{if $_POST.equipment == null && - $_POST.category == null && $_POST.designation == null}} - {{:error message="Il faut choisir un matériel existant ou sélectionner une catégorie et indiquer le nom du nouveau matériel"}} - {{elseif $_POST.category == null && $_POST.designation != null}} - {{:error message="Vous devez aussi sélectionner une catégorie"}} - {{/if}} + {{:assign var=post_cat from="categories.%s"|args:$_POST.category}} - {{if $_POST.equipment != null}} - {{:assign equipment_key=$_POST.equipment}} - {{#load key=$_POST.equipment assign=equipment}} - {{/load}} - {{if $_POST.designation != null}} - {{:error message="Vous avez choisi un matériel dans la liste (%s) et indiqué le nom d'un nouveau matériel (%s) : l'un des deux est de trop"|args:$equipment.designation:$_POST.designation}} - {{/if}} - {{/if}} - - {{* infos saisies valides *}} - - {{if $_POST.equipment == null}} - {{* récupérer les infos de la catégorie *}} - {{#load type="category" key=$_POST.category assign="post_category"}} - {{/load}} - - {{* vérifier l'existence d'un matériel du même nom *}} - {{:assign post_mat=$_POST.designation|trim|tolower|ucfirst}} - {{:assign present=false}} - {{#foreach from=$equipments key=nom_cat item=eqpmt}} - {{#foreach from=$eqpmt key=key item=nom}} - {{if $_POST.designation|trim|tolower == $nom|tolower}} - {{:assign equipment_key=$key}} - {{:assign present=true}} - {{:break}} - {{/if}} - {{/foreach}} - {{if $present}}{{:break}}{{/if}} - {{/foreach}} - {{if $present}} - {{* voir si le matériel existe dans une autre catégorie *}} - {{if $nom_cat != $post_category.name}} - {{:error message="Le matériel « %s » est déjà présent dans la catégorie « %s » ..."|args:$post_mat:$nom_cat}} + {{* vérifier l'existence d'un matériel de même nom *}} + {{:assign post_mat=$_POST.designation|trim|tolower|ucfirst}} + {{:assign present=false}} + {{#foreach from=$equipments key=nom_cat item=eqpmt}} + {{#foreach from=$eqpmt key=key item=nom}} + {{if $_POST.designation|trim|tolower == $nom|tolower}} + {{:assign equipment_key=$key}} + {{:assign present=true}} + {{:break}} {{/if}} - {{* utiliser la clé du matériel trouvé *}} - - {{else}} - {{* nouveau matériel => nouvelle clé *}} - {{:assign equipment_key=""|uuid}} - {{* enregistrer un nouveau matériel *}} - {{:save - key=$equipment_key - validate_schema="../equipment.schema.json" - type="equipment" - category=$category.key - designation=$post_mat - }} + {{/foreach}} + {{if $present}}{{:break}}{{/if}} + {{/foreach}} + {{if $present}} + {{* voir si le matériel existe dans une autre catégorie *}} + {{if $nom_cat != $post_cat}} + {{:error message="Le matériel « %s » est déjà présent dans la catégorie « %s » ..."|args:$post_mat:$nom_cat}} {{/if}} + {{* utiliser la clé du matériel trouvé *}} + + {{else}} + {{* nouveau matériel => nouvelle clé *}} + {{:assign equipment_key=""|uuid}} + {{* enregistrer un nouveau matériel *}} + {{:save + key=$equipment_key + validate_schema="../equipment.schema.json" + type="equipment" + category=$category.key + designation=$post_mat + }} {{/if}} {{* Enregistrer le mouvement *}} @@ -126,36 +104,11 @@ - {{if $equipments != null}} -