diff --git a/equipment.schema.json b/equipment.schema.json index ac54ec5..c30f073 100644 --- a/equipment.schema.json +++ b/equipment.schema.json @@ -18,7 +18,22 @@ "description": "État du matériel", "type": "string", "enum": ["available", "archived"] + }, + "stock": { + "description": "Quantité en stock", + "type" : "integer", + "minimum": 0 + }, + "out": { + "description": "Quantité sortie temporairement", + "type" : "integer", + "minimum": 0 + }, + "notowned": { + "description": "Quantité présente temporairement", + "type" : "integer", + "minimum": 0 } }, - "required": ["type", "category", "name", "status"] + "required": ["type", "category", "name", "status", "stock", "out", "notowned"] } diff --git a/inventaire.html b/inventaire.html index 7cc58bf..eb84e36 100644 --- a/inventaire.html +++ b/inventaire.html @@ -29,24 +29,6 @@
Inventaire des matériels propriété de l'association
-{{* types d'entrées et sorties *}} -{{:include file="./_get_config.html" keep="config, directions"}} - -{{#foreach from=$directions key="direction"}} - {{:assign var="nature" from="config.%s_nature"|args:$direction}} - {{#foreach from=$nature key="key"}} - {{:assign var="types.%s.%s."|args:$direction:$type value=$key}} - {{/foreach}} - - {{:assign var="iotypes" from="types.%s"|args:$direction}} - {{#foreach from=$iotypes key="key"}} - {{:assign var=elem from="iotypes.%s"|args:$key}} - {{:assign elem=$elem|quote_sql|implode:","}} - {{:assign elem="("|cat:$elem|cat:")"}} - {{:assign var="%s_types.%s"|args:$direction:$key value=$elem}} - {{/foreach}} -{{/foreach}} - {{* filtrer selon la catégorie *}} {{if $_GET.cat_key == null}} {{:assign condition="1"}} @@ -61,100 +43,20 @@ (SELECT $$.name FROM @TABLE as cat WHERE cat.key = @TABLE.$$.category) AS 'Catégorie' ; - (SELECT - SUM($$.amount) - FROM @TABLE AS mvt - WHERE - $$.type = 'movement' - AND - $$.operation IN %s - AND - $$.equipment = @TABLE.key - ) - - (SELECT - COALESCE(SUM($$.amount), 0) - FROM @TABLE AS mvt - WHERE - $$.type = 'movement' - AND - $$.operation IN %s - AND - $$.equipment = @TABLE.key - ) AS 'Stock' ; - (SELECT - COALESCE(SUM($$.amount), 0) - FROM @TABLE AS mvt - WHERE - $$.type = 'movement' - AND - $$.operation IN %s - AND - $$.equipment = @TABLE.key - ) - - (SELECT - COALESCE(SUM($$.amount), 0) - FROM @TABLE AS mvt - WHERE - $$.type = 'movement' - AND - $$.operation IN %s - AND - $$.equipment = @TABLE.key - ) AS 'Sorti' ; - - (SELECT - SUM($$.amount) - FROM @TABLE AS mvt - WHERE - $$.type = 'movement' - AND - $$.operation IN %s - AND - $$.equipment = @TABLE.key - ) - - (SELECT - COALESCE(SUM($$.amount), 0) - FROM @TABLE AS mvt - WHERE - $$.type = 'movement' - AND - $$.operation IN %s - AND - $$.equipment = @TABLE.key - ) - - (SELECT - COALESCE(SUM($$.amount), 0) - FROM @TABLE AS mvt - WHERE - $$.type = 'movement' - AND - $$.operation IN %s - AND - $$.equipment = @TABLE.key - ) + (SELECT - COALESCE(SUM($$.amount), 0) - FROM @TABLE AS mvt - WHERE - $$.type = 'movement' - AND - $$.operation IN %s - AND - $$.equipment = @TABLE.key - ) AS 'Disponible' - "|args:$input_types.définitif:$output_types.définitif:$output_types.temporaire:$input_types.retour:$input_types.définitif:$output_types.définitif:$output_types.temporaire:$input_types.retour + $$.stock AS 'Stock' ; + $$.out AS 'Sorti' ; + (SELECT $$.stock - $$.out) AS 'Disponible' + " type="equipment" where="$$.status <> 'archived' AND %s"|args:$condition - group="col1 HAVING col3 NOT NULL" order=1 }} - {{:assign var=cat_name from=categories.%s|args:$category}} -Inventaire des matériels empruntés ou loués
-{{* types d'entrées et sorties *}} -{{:include file="./_get_config.html" keep="config, directions"}} - -{{#foreach from=$directions key="direction"}} - {{:assign var="nature" from="config.%s_nature"|args:$direction}} - {{#foreach from=$nature key="key"}} - {{:assign var="types.%s.%s."|args:$direction:$type value=$key}} - {{/foreach}} - - {{:assign var="iotypes" from="types.%s"|args:$direction}} - {{#foreach from=$iotypes key="key"}} - {{:assign var=elem from="iotypes.%s"|args:$key}} - {{:assign elem=$elem|quote_sql|implode:","}} - {{:assign elem="("|cat:$elem|cat:")"}} - {{:assign var="%s_types.%s"|args:$direction:$key value=$elem}} - {{/foreach}} -{{/foreach}} - {{* filtrer selon la catégorie *}} {{if $_GET.cat_key == null}} {{:assign condition="1"}} @@ -61,35 +43,13 @@ (SELECT $$.name FROM @TABLE as cat WHERE cat.key = @TABLE.$$.category) AS 'Catégorie' ; - (SELECT - SUM($$.amount) - FROM @TABLE AS mvt - WHERE - $$.type = 'movement' - AND - $$.operation IN %s - AND - $$.equipment = @TABLE.key - ) - - (SELECT - COALESCE(SUM($$.amount), 0) - FROM @TABLE AS mvt - WHERE - $$.type = 'movement' - AND - $$.operation IN %s - AND - $$.equipment = @TABLE.key - ) AS 'Quantité' - "|args:$input_types.temporaire:$output_types.retour + $$.notowned AS 'Quantité' + " type="equipment" - where="$$.status <> 'archived' AND %s"|args:$condition - group="col1 HAVING (col3 NOT NULL AND col3 > 0)" + where="$$.status <> 'archived' AND $$.notowned != 0 AND %s"|args:$condition order=1 }} - {{:assign var=cat_name from=categories.%s|args:$category}} -Impossible d'enregistrer ce mouvement : « {{$mvt_label}} - de {{$eqpmt.name}} (qté : {{$mvt_new.amount}}) à la date du {{$mvt_new.date|date_short}} » + de {{$equipment.name}} (qté : {{$mvt_new.amount}}) à la date du {{$mvt_new.date|date_short}} »
{{else}} + + {{* calculer la nouvelle quantité du matériel *}} + {{if $mvt_new.direction == "input"}} + {{:assign var="type_mvt" from="config.input_nature.%s.type"|args:$_POST.operation}} + {{if $type_mvt == 'définitif'}} + {{:assign var="equipment.stock" value="%d+%d"|math:$equipment.stock:$_POST.amount|intval}} + {{elseif $type_mvt == 'temporaire'}} + {{:assign var="equipment.notowned" value="%d+%d"|math:$equipment.notowned:$_POST.amount|intval}} + {{elseif $type_mvt == 'retour'}} + {{:assign var="equipment.out" value="%d-%d"|math:$equipment.out:$_POST.amount|intval}} + {{/if}} + {{else}} + {{:assign var="type_mvt" from="config.output_nature.%s.type"|args:$_POST.operation}} + {{if $type_mvt == 'définitif'}} + {{:assign var="equipment.stock" value="%d-%d"|math:$equipment.stock:$_POST.amount|intval}} + {{elseif $type_mvt == 'temporaire'}} + {{:assign var="equipment.out" value="%d+%d"|math:$equipment.out:$_POST.amount|intval}} + {{elseif $type_mvt == 'retour'}} + {{:assign var="equipment.notowned" value="%d-%d"|math:$equipment.notowned:$_POST.amount|intval}} + {{/if}} + {{/if}} + + {{:save + key=$equipment.key + validate_schema="../equipment.schema.json" + type="equipment" + category=$equipment.category + name=$equipment.name + status="available" + stock=$equipment.stock + out=$equipment.out + notowned=$equipment.notowned + }} + {{* vérification réussie : enregistrer le mouvement modifié *}} {{:assign mvt_key=""|uuid}} {{:save @@ -149,13 +183,13 @@ *}} {{* récupérer les infos de la catégorie *}} -{{#load key=$eqpmt.category assign="category"}}{{/load}} +{{#load key=$equipment.category assign="category"}}{{/load}} {{:assign var="op_label" from="config.%s_nature.%s.label"|args:$mvt_new.direction:$mvt_new.operation}} {{* formulaire de copie du mouvement *}}