Simplification calcul dispo

This commit is contained in:
Jean-Christophe Engel 2024-12-10 15:05:50 +01:00
parent 74ee34104f
commit 7364deda87
5 changed files with 106 additions and 120 deletions

View file

@ -3,35 +3,38 @@
{{*
Calcul des entrées/sorties de matériels à une date donnée
paramètres :
- category_keys : liste de clés de catégories
- date : date supérieure des mouvements
résultat : cumul_mvt,category_keys,equipments
- 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 catégories *}}
{{if $category_keys === null}}
{{#load type="category"}}
{{:assign var="cumul_mvt.%s.name"|args:$key value=$name}}
{{* liste des matériels *}}
{{:assign equipments=null}}
{{if $_GET.key}}
{{* le matériel paramètre *}}
{{#load key=$_GET.key}}
{{:assign var="equipments.%s.category"|args:$key value=$category}}
{{:assign var="equipments.%s.designation"|args:$key value=$designation}}
{{: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.designation"|args:$key value=$designation}}
{{:assign var="in_equipments." value="'%s'"|args:$key}}
{{/load}}
{{else}}
{{#load type="category" where="key"|sql_where:'IN':$category_keys}}
{{:assign var="cumul_mvt.%s.name"|args:$key value=$name}}
{{* tous les matériels *}}
{{#load type="equipment"}}
{{:assign var="equipments.%s.category"|args:$key value=$category}}
{{:assign var="equipments.%s.designation"|args:$key value=$designation}}
{{:assign var="in_equipments." value="'%s'"|args:$key}}
{{/load}}
{{/if}}
{{#foreach from=$cumul_mvt key="cat_key" item="elem"}}
{{:assign var="in_categories." value="'%s'"|args:$cat_key}}
{{/foreach}}
{{:assign in_categories=$in_categories|implode:","}}
{{:assign in_categories="("|cat:$in_categories|cat:")"}}
{{* liste des matériels dans les catégories passées en paramètre *}}
{{#load type="equipment" where="$$.category IN %s"|args:$in_categories}}
{{:assign var="equipments.%s.category"|args:$key value=$category}}
{{:assign var="equipments.%s.designation"|args:$key value=$designation}}
{{:assign var="in_equipments." value="'%s'"|args:$key}}
{{/load}}
{{:assign in_equipments=$in_equipments|implode:","}}
{{:assign in_equipments="("|cat:$in_equipments|cat:")"}}
@ -109,12 +112,9 @@
from=nonproprio}}
{{/if}}
{{/if}}
{{/load}}
{{* grouper les résultats par catégorie *}}
{{#foreach from=$equipments key="eqpmt_key" item="eqpmt"}}
{{:assign
var="cumul_mvt.%s.eqpmt.%s"|args:$eqpmt.category:$eqpmt_key
value=$eqpmt}}
{{/foreach}}
{{* catégories *}}
{{#load type="category" order="$$.name"}}
{{:assign var="categories.%s"|args:$key value=$name}}
{{/load}}