Simplification sortie matériel en stock

This commit is contained in:
Jean-Christophe Engel 2025-04-04 12:25:56 +02:00
parent c681b47e7f
commit d3b48c677e
2 changed files with 7 additions and 143 deletions

View File

@ -1,121 +0,0 @@
{{* -*- brindille -*- *}}
{{*
Calcul des entrées/sorties de matériels à une date donnée
paramètres :
- eqpmt_key : clé du matériel concerné
- cat_key : clé de la catégorie des matériels concernés
- date
résultat :
- categories : tableau clé => nom
- equipments : tableau clé => { clé cat, libellé mat, stock, exter, nonproprio }
*}}
{{* liste des matériels *}}
{{:assign equipments=null}}
{{if $eqpmt_key}}
{{* le matériel paramètre *}}
{{#load key=$eqpmt_key}}
{{:assign var="equipments.%s.category"|args:$key value=$category}}
{{:assign var="equipments.%s.name"|args:$key value=$name}}
{{:assign var="in_equipments." value="'%s'"|args:$key}}
{{/load}}
{{elseif $_GET.cat_key}}
{{* matériels de la catégorie paramètre *}}
{{#load type="equipment" where="$$.category = :category_key" :category_key=$_GET.cat_key}}
{{:assign var="equipments.%s.category"|args:$key value=$category}}
{{:assign var="equipments.%s.name"|args:$key value=$name}}
{{:assign var="equipments.%s.status"|args:$key value=$status}}
{{:assign var="in_equipments." value="'%s'"|args:$key}}
{{/load}}
{{else}}
{{* tous les matériels *}}
{{#load type="equipment"}}
{{:assign var="equipments.%s.category"|args:$key value=$category}}
{{:assign var="equipments.%s.name"|args:$key value=$name}}
{{:assign var="equipments.%s.status"|args:$key value=$status}}
{{:assign var="in_equipments." value="'%s'"|args:$key}}
{{/load}}
{{/if}}
{{:assign in_equipments=$in_equipments|implode:","}}
{{:assign in_equipments="("|cat:$in_equipments|cat:")"}}
{{* récupérer la config des entrées/sorties *}}
{{:include file="./_get_config.html" keep="config"}}
{{* parcourir les mouvements et cumuler les entrées/sorties *}}
{{if $date == null}}
{{:assign condition="$$.equipment IN %s"|args:$in_equipments}}
{{else}}
{{:assign condition="$$.equipment IN %s AND $$.date <= '%s'"|args:$in_equipments:$date}}
{{/if}}
{{#load type="movement" where="%s"|args:$condition assign="mvt" order="$$.date ASC"}}
{{* matériel propriété de l'asso en stock *}}
{{:assign
var="stock"
from="equipments.%s.stock"|args:$mvt.equipment}}
{{if $stock == null}}
{{:assign stock=0}}
{{/if}}
{{* matériel propriété de l'asso à l'extérieur *}}
{{:assign
var="exterieur"
from="equipments.%s.exterieur"|args:$mvt.equipment}}
{{if $exterieur == null}}
{{:assign exterieur=0}}
{{/if}}
{{* matériel non propriété de l'asso *}}
{{:assign
var="nonproprio"
from="equipments.%s.nonproprio"|args:$mvt.equipment}}
{{if $nonproprio == null}}
{{:assign nonproprio=0}}
{{/if}}
{{if $mvt.direction === 'input'}}
{{* déterminer le type de mouvement *}}
{{:assign var=type_mvt from="config.input_nature.%s.type"|args:$mvt.operation}}
{{if $type_mvt == 'définitif'}}
{{:assign stock="%d+%d"|math:$stock:$mvt.amount}}
{{:assign
var="equipments.%s.stock"|args:$mvt.equipment
from=stock}}
{{elseif $type_mvt == 'retour'}}
{{:assign exterieur="%d-%d"|math:$exterieur:$mvt.amount}}
{{:assign
var="equipments.%s.exterieur"|args:$mvt.equipment
from=exterieur}}
{{elseif $type_mvt == 'temporaire'}}
{{:assign nonproprio="%d+%d"|math:$nonproprio:$mvt.amount}}
{{:assign
var="equipments.%s.nonproprio"|args:$mvt.equipment
from=nonproprio}}
{{/if}}
{{elseif $mvt.direction === 'output'}}
{{* déterminer le type de mouvement *}}
{{:assign var=type_mvt from="config.output_nature.%s.type"|args:$mvt.operation}}
{{if $type_mvt == 'définitif'}}
{{:assign stock="%d-%d"|math:$stock:$mvt.amount}}
{{:assign
var="equipments.%s.stock"|args:$mvt.equipment
from=stock}}
{{elseif $type_mvt == 'temporaire'}}
{{:assign exterieur="%d+%d"|math:$exterieur:$mvt.amount}}
{{:assign
var="equipments.%s.exterieur"|args:$mvt.equipment
from=exterieur}}
{{elseif $type_mvt == 'retour'}}
{{:assign nonproprio="%d-%d"|math:$nonproprio:$mvt.amount}}
{{:assign
var="equipments.%s.nonproprio"|args:$mvt.equipment
from=nonproprio}}
{{/if}}
{{/if}}
{{/load}}
{{* catégories *}}
{{#load type="category" order="$$.name"}}
{{:assign var="categories.%s"|args:$key value=$name}}
{{/load}}

View File

@ -15,6 +15,9 @@
{{/if}}
{{/foreach}}
{{* récupérer les infos du matériel *}}
{{#load key=$_GET.key assign="equipment"}}{{/load}}
{{* Traiter l'envoi du formulaire *}}
{{#form on="save"}}
{{* interdire date dans le futur *}}
@ -36,9 +39,6 @@
{{:assign var="user.name" value=$name}}
{{/foreach}}
{{* récupérer les infos du matériel *}}
{{#load type="equipment" key=$_GET.key assign="equipment"}}{{/load}}
{{:assign stock=0}}
{{:assign exterieur=0}}
{{:assign nonproprio=0}}
@ -151,20 +151,12 @@
{{* barre de navigation *}}
{{:include file="../../_nav.html" current="sorties"}}
{{/if}}
{{:form_errors}}
{{* Extraire et compiler les infos de la base *}}
{{:include file="../../_calcul_dispo.html" eqpmt_key=$_GET.key keep="categories,equipments"}}
{{:assign var=stock from="equipments.%s.stock"|args:$_GET.key}}
{{:assign var=exterieur from="equipments.%s.exterieur"|args:$_GET.key}}
{{:assign dispo="%d-%d"|math:$stock:$exterieur}}
{{#load key=$equipment.category assign="category"}}{{/load}}
{{:assign dispo="%d-%d"|math:$equipment.stock:$equipment.out}}
{{if $dispo > 0}}
{{* déterminer le matériel concerné par le mouvement *}}
{{#load key=$_GET.key assign="equipment"}}{{/load}}
{{:assign var=cat_name from=categories.%s|args:$equipment.category}}
{{* formulaire de sortie de matériel *}}
<form method="post" action="">
<fieldset class="informations">
@ -173,7 +165,7 @@
<dt>Matériel</dt>
<dd>{{$equipment.name}}</dd>
<dt>Catégorie</dt>
<dd>{{$cat_name}}</dd>
<dd>{{$category.name}}</dd>
<dt>Quantité disponible</dt>
<dd class="num">{{$dispo}}</dd>
</dl>
@ -203,12 +195,5 @@
<p class="block error">Il n'y a aucune unité de ce matériel disponible à la date du {{$now|date_short}}</p>
{{/if}}
{{:form_errors}}
{{:admin_footer}}
<script type="text/javascript" src="scripts.js"></script>
<script type="text/javascript">
let op = $('#f_operation');
op.addEventListener("change", (evt) => {
toggleUserChoice(document.querySelector("#user"));
}
</script>