Compare commits

...

3 Commits

20 changed files with 213 additions and 239 deletions

View File

@ -73,11 +73,9 @@
{{:assign nonproprio=0}}
{{/if}}
{{* déterminer le type de mouvement *}}
{{:assign var="mvt_nature" from="mvt.%s_nature"|args:$mvt.direction}}
{{:assign var="type_mvt" from="config.%s_nature.%s"|args:$mvt.direction:$mvt_nature}}
{{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
@ -95,6 +93,8 @@
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

View File

@ -11,26 +11,26 @@
{{if $module.config.input_nature != null}}
{{#foreach from=$module.config.input_nature item="elem"}}
{{:assign var="config.input_nature.%s"|args:$elem.label value=$elem.type}}
{{:assign var="item" label=$label type=$type}}
{{:assign var="config.input_nature.%s"|args:$key value=$item}}
{{/foreach}}
{{else}}
{{* pas de config enregistrée : utiliser la config par défaut *}}
{{#foreach from=$config_defaut.inputs item="elem"}}
{{#foreach from=$elem key=label item=value}}
{{:assign var="config.input_nature.%s"|args:$label value=$value}}
{{/foreach}}
{{:assign var="item" label=$label type=$type}}
{{:assign var="config.input_nature.%s"|args:$key value=$item}}
{{/foreach}}
{{/if}}
{{if $module.config.output_nature != null}}
{{#foreach from=$module.config.output_nature item="elem"}}
{{:assign var="config.output_nature.%s"|args:$elem.label value=$elem.type}}
{{:assign var="item" label=$label type=$type}}
{{:assign var="config.output_nature.%s"|args:$key value=$item}}
{{/foreach}}
{{else}}
{{* pas de config enregistrée : utiliser la config par défaut *}}
{{#foreach from=$config_defaut.outputs item="elem"}}
{{#foreach from=$elem key=label item=value}}
{{:assign var="config.output_nature.%s"|args:$label value=$value}}
{{/foreach}}
{{:assign var="item" label=$label type=$type}}
{{:assign var="config.output_nature.%s"|args:$key value=$item}}
{{/foreach}}
{{/if}}

View File

@ -3,7 +3,7 @@
<nav class="tabs">
{{if $current == 'inventaire'}}
<aside>
{{if $cat == null || $cat == 0}}
{{if $subcurrent == null && $cat == 0}}
{{:linkbutton label="Ajouter une catégorie" shape="plus" href="categories/add_category.html" target="_dialog"}}
{{else}}
{{:linkbutton label="Ajouter un nouveau matériel" shape="plus" href="mouvements/ajouter_entree.html" target="_dialog"}}

View File

@ -12,24 +12,16 @@
{{* lecture config (défaut ou enregistrée) *}}
{{:include file="./_get_config.html" keep="config"}}
{{* types d'entrées *}}
{{#foreach from=$config.input_nature key="label" item="type"}}
{{:assign var='input_types.%s'|args:$type value=$type}}
{{/foreach}}
{{* types d'entrées qui ne peuvent être supprimées *}}
{{#load type="movement" where="$$.direction='input'" group="$$.input_nature"}}
{{:assign var="locked_inputs." value=$input_nature}}
{{#load type="movement" where="$$.direction='input'" group="$$.operation"}}
{{:assign var="op_label" from="config.input_nature.%s.label"|args:$operation}}
{{:assign var="locked_inputs." value=$op_label}}
{{/load}}
{{* types de sorties *}}
{{#foreach from=$config.output_nature key="label" item="type"}}
{{:assign var='output_types.%s'|args:$type value=$type}}
{{/foreach}}
{{* types de sorties qui ne peuvent être supprimées *}}
{{#load type="movement" where="$$.direction='output'" group="$$.output_nature"}}
{{:assign var="locked_outputs." value=$output_nature}}
{{:assign var="op_label" from="config.output_nature.%s.label"|args:$operation}}
{{:assign var="locked_outputs." value=$op_label}}
{{/load}}
<h2>Types d'entrées</h2>
@ -42,15 +34,15 @@
</tr>
</thead>
<tbody>
{{#foreach from=$config.input_nature key="label" item="type"}}
{{#foreach from=$config.input_nature key=key}}
<tr>
<td>{{$label}}</td>
<td>{{$type}}</td>
<td class="actions">
{{if ! $locked_inputs|has:$label}}
{{:linkbutton label="Supprimer" shape="delete" href="config/supprimer_type_mouvement.html?dir=input&mvt=%s"|args:$label target="_dialog"}}
{{:linkbutton label="Supprimer" shape="delete" href="config/supprimer_type_mouvement.html?dir=input&op_key=%s"|args:$key target="_dialog"}}
{{/if}}
{{:linkbutton label="Modifier" shape="edit" href="config/modifier_type_mouvement.html?dir=input&mvt=%s"|args:$label target="_dialog"}}
{{:linkbutton label="Modifier" shape="edit" href="config/modifier_type_mouvement.html?dir=input&op_key=%s"|args:$key target="_dialog"}}
</td>
</tr>
{{/foreach}}
@ -67,15 +59,15 @@
</tr>
</thead>
<tbody>
{{#foreach from=$config.output_nature key="label" item="type"}}
{{#foreach from=$config.output_nature key=key}}
<tr>
<td>{{$label}}</td>
<td>{{$type}}</td>
<td class="actions">
{{if ! $locked_outputs|has:$label}}
{{:linkbutton label="Supprimer" shape="delete" href="config/supprimer_type_mouvement.html?dir=output&mvt=%s"|args:$label target="_dialog"}}
{{:linkbutton label="Supprimer" shape="delete" href="config/supprimer_type_mouvement.html?dir=output&op_key=%s"|args:$key target="_dialog"}}
{{/if}}
{{:linkbutton label="Modifier" shape="edit" href="config/modifier_type_mouvement.html?dir=output&mvt=%s"|args:$label target="_dialog"}}
{{:linkbutton label="Modifier" shape="edit" href="config/modifier_type_mouvement.html?dir=output&op_key=%s"|args:$key target="_dialog"}}
</td>
</tr>
{{/foreach}}

View File

@ -8,6 +8,9 @@
"items": {
"type": "object",
"properties": {
"key" : {
"type" : "string"
},
"label" : {
"type" : "string"
},
@ -24,6 +27,9 @@
"items": {
"type": "object",
"properties": {
"key" : {
"type" : "string"
},
"label" : {
"type" : "string"
},

View File

@ -11,12 +11,12 @@
{{:include file="../_get_config.html" keep="config"}}
{{#form on="save"}}
{{* vérifier l'existence d'une entrée de même nom et générer le résultat *}}
{{#foreach from=$config.input_nature key="label" item="type"}}
{{#foreach from=$config.input_nature key=key}}
{{if $label|trim|tolower == $_POST.input_fields.label|trim|tolower}}
{{:error message="Ce libellé d'entrée est déjà présent"}}
{{/if}}
{{:assign var="input_nature.key" value=$key}}
{{:assign var="input_nature.label" value=$label}}
{{:assign var="input_nature.type" value=$type}}
{{:assign var="input_natures." from=input_nature}}
@ -25,16 +25,18 @@
{{* ajouter la nouvelle entrée *}}
{{if $_GET.dir == 'input'}}
{{:assign input_label=$_POST.input_fields.label|trim|tolower|ucfirst}}
{{:assign var="input_nature.key" value=""|uuid}}
{{:assign var="input_nature.label" value=$_POST.input_fields.label|trim|tolower|ucfirst}}
{{:assign var="input_nature.type" value=$_POST.input_fields.type}}
{{:assign var="input_natures." from=input_nature}}
{{/if}}
{{* vérifier l'existence d'une sortie de même nom et générer le résultat *}}
{{#foreach from=$config.output_nature key="label" item="type"}}
{{#foreach from=$config.output_nature key=key}}
{{if $label|trim|tolower == $_POST.output_fields.label|trim|tolower}}
{{:error message="Ce libellé de sortie est déjà présent"}}
{{/if}}
{{:assign var="output_nature.key" value=$key}}
{{:assign var="output_nature.label" value=$label}}
{{:assign var="output_nature.type" value=$type}}
{{:assign var="output_natures." from=output_nature}}
@ -43,6 +45,7 @@
{{* ajouter la nouvelle sortie *}}
{{if $_GET.dir == 'output'}}
{{:assign output_label=$_POST.output_fields.label|trim|tolower|ucfirst}}
{{:assign var="output_nature.key" value=""|uuid}}
{{:assign var="output_nature.label" value=$_POST.output_fields.label|trim|tolower|ucfirst}}
{{:assign var="output_nature.type" value=$_POST.output_fields.type}}
{{:assign var="output_natures." from=output_nature}}
@ -54,7 +57,7 @@
input_nature=$input_natures
output_nature=$output_natures
}}
{{:redirect to="./config.html?ok=1"}}
{{:redirect to="./config.html?ok=1"}}
{{/form}}
{{:admin_header title="Gestion des matériels" current="module_equipment"}}
@ -62,10 +65,9 @@
{{if $_GET.dir == 'input'}}
{{* types d'entrées *}}
{{#foreach from=$config.input_nature key="label" item="type"}}
{{#foreach from=$config.input_nature}}
{{:assign var='input_types.%s'|args:$type value=$type}}
{{/foreach}}
<form method="post" action="">
<fieldset>
<legend>Type d'entrée</legend>
@ -102,7 +104,7 @@
</form>
{{else}}
{{* types de sorties *}}
{{#foreach from=$config.output_nature key="label" item="type"}}
{{#foreach from=$config.output_nature}}
{{:assign var='output_types.%s'|args:$type value=$type}}
{{/foreach}}

View File

@ -3,7 +3,7 @@
{{*
paramètres :
- dir : input ou output
- mvt : libellé du type de mouvement à modifier
- op_key : clé du type de mouvement dont on veut modifier le libellé
*}}
{{* barre de navigation *}}
@ -14,32 +14,38 @@
{{* lecture config (défaut ou enregistrée) *}}
{{:include file="../_get_config.html" keep="config"}}
{{*:debug config.input_nature=$config.input_nature config.input_nature=$config.input_nature*}}
{{*:debug mvt=$_GET.mvt*}}
{{#form on="save"}}
{{#foreach from=$config.input_nature key="label" item="type"}}
{{:debug key=$label item=$type}}
{{if $_GET.dir == 'input'
&& $label|trim|tolower == $_GET.mvt|trim|tolower}}
{{:assign var="input_nature.label" value=$_POST.name|trim|tolower|ucfirst}}
{{else}
{{:assign input_nature=null}}
{{#foreach from=$config.input_nature key=key}}
{{:assign var="input_nature.key" value=$key}}
{{if $_GET.dir == 'input'}}
{{if $key == $_GET.op_key}}
{{:assign var="input_nature.label" value=$_POST.name|trim|tolower|ucfirst}}
{{else}}
{{:assign var="input_nature.label" value=$label}}
{{/if}}
{{else}}
{{:assign var="input_nature.label" value=$label}}
{{/if}}
{{:assign var="input_nature.type" value=$type}}
{{:assign var="input_natures." from=input_nature}}
{{/foreach}}
{{#foreach from=$config.output_nature key="label" item="type"}}
{{if $_GET.dir == 'output' && $label|trim|tolower == $_GET.mvt|trim|tolower}}
{{:assign var="output_nature.label" value=$_POST.name|trim|tolower|ucfirst}}
{{#foreach from=$config.output_nature key=key}}
{{:assign var="output_nature.key" value=$key}}
{{if $_GET.dir == 'output'}}
{{if $key == $_GET.op_key}}
{{:assign var="output_nature.label" value=$_POST.name|trim|tolower|ucfirst}}
{{else}}
{{:assign var="output_nature.label" value=$label}}
{{/if}}
{{else}}
{{:assign var="output_nature.label" value=$label}}
{{/if}}
{{:assign var="output_nature.type" value=$type}}
{{:assign var="output_natures." from=output_nature}}
{{/foreach}}
{{:debug input_natures=$input_natures output_natures=$output_natures}}
{{*
{{:save
key="config"
validate_schema="../config.schema.json"
@ -47,17 +53,16 @@
output_nature=$output_natures
}}
{{:redirect to="./config.html?ok=1"}}
*}}
{{/form}}
{{:admin_header title="Gestion des matériels" current="module_equipment"}}
{{:form_errors}}
{{:assign var="default_label" from="config.%s_nature.%s.label"|args:$_GET.dir:$_GET.op_key}}
<form method="post" action="" data-focus="1">
<fieldset>
<legend>Modifier le libellé</legend>
<dl>
{{:input type="text" name="name" label="Libellé" default=$_GET.mvt required=true maxlength="100"}}
{{:input type="text" name="name" label="Libellé" default=$default_label required=true maxlength="100"}}
</dl>
<p class="submit">
{{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}}

View File

@ -3,7 +3,7 @@
{{*
paramètres :
- dir : input ou output
- mvt : libellé du type de mouvement à supprimer
- op_key : clé du type de mouvement à supprimer
*}}
{{* barre de navigation *}}
@ -15,18 +15,18 @@
{{:include file="../_get_config.html" keep="config"}}
{{#form on="delete"}}
{{#foreach from=$config.input_nature key="label" item="type"}}
{{if $_GET.dir == 'input' && $label|trim|tolower != $_GET.mvt|trim|tolower ||
$_GET.dir == 'output'}}
{{#foreach from=$config.input_nature key=key}}
{{if $_GET.dir == 'input' && $key != $_GET.op_key || $_GET.dir == 'output'}}
{{:assign var="input_nature.key" value=$key}}
{{:assign var="input_nature.label" value=$label}}
{{:assign var="input_nature.type" value=$type}}
{{:assign var="input_natures." from=input_nature}}
{{/if}}
{{/foreach}}
{{#foreach from=$config.output_nature key="label" item="type"}}
{{if $_GET.dir == 'output' && $label|trim|tolower != $_GET.mvt|trim|tolower ||
$_GET.dir == 'input'}}
{{#foreach from=$config.output_nature key=key}}
{{if $_GET.dir == 'output' && $key != $_GET.op_key || $_GET.dir == 'input'}}
{{:assign var="output_nature.key" value=$key}}
{{:assign var="output_nature.label" value=$label}}
{{:assign var="output_nature.type" value=$type}}
{{:assign var="output_natures." from=output_nature}}
@ -40,7 +40,6 @@
output_nature=$output_natures
}}
{{:redirect to="./config.html?ok=1"}}
{{/form}}
{{:admin_header title="Gestion des matériels" current="module_equipment"}}

View File

@ -1,12 +1,37 @@
{
"inputs" : [
{ "Achat" : "définitif" },
{ "Location" : "temporaire" },
{ "Retour de Location/Prêt" : "retour" }
"inputs": [
{
"key": "c3a955e3-4e6e-414e-90f4-ede7ac3e9e33",
"label": "Achat",
"type": "définitif"
},
{
"key": "9e909c25-14dc-4e02-b97e-73c34ab2ee9b",
"label" : "Location",
"type": "temporaire"
},
{
"key": "30eb854c-f89a-4c19-85e4-baa5e34a0317",
"label" : "Retour de Location/Prêt",
"type" : "retour"
}
],
"outputs" : [
{ "Vente" : "définitif" },
{ "Prêt" : "temporaire" },
{ "Retour de Location/Emprunt" : "retour" }
"outputs": [
{
"key": "f0eb189b-0b72-46c7-8b48-c23eed7e9672",
"label" : "Vente",
"type" : "définitif"
},
{
"key" : "c9ba00d9-26ee-448b-9f02-73e479ec2980",
"label" : "Prêt",
"type" : "temporaire"
},
{
"key" : "fefefa51-1a85-46ca-ab78-b594b10390ff",
"label" : "Retour de Location/Emprunt",
"type" : "retour"
}
]
}

View File

@ -54,30 +54,30 @@
{{:include file="./_get_config.html" keep="config"}}
{{* déterminer les types de mouvements selon l'affection du matériel *}}
{{#foreach from=$config.input_nature key=mvt item=type_mvt}}
{{#foreach from=$config.input_nature}}
{{if $_GET.prop}}
{{* matériel propriété de l'asso *}}
{{if $type_mvt != 'temporaire'}}
{{:assign var="input_types." value=$mvt}}
{{if $type != 'temporaire'}}
{{:assign var="input_types." value=$label}}
{{/if}}
{{else}}
{{* matériel non propriété de l'asso *}}
{{if $type_mvt == 'temporaire'}}
{{:assign var="input_types." value=$mvt}}
{{if $type == 'temporaire'}}
{{:assign var="input_types." value=$label}}
{{/if}}
{{/if}}
{{/foreach}}
{{#foreach from=$config.output_nature key=mvt item=type_mvt}}
{{#foreach from=$config.output_nature}}
{{if $_GET.prop}}
{{* matériel propriété de l'asso *}}
{{if $type_mvt != 'retour'}}
{{:assign var="output_types." value=$mvt}}
{{if $type != 'retour'}}
{{:assign var="output_types." value=$label}}
{{/if}}
{{else}}
{{* matériel non propriété de l'asso *}}
{{if $type_mvt == 'retour'}}
{{:assign var="output_types." value=$mvt}}
{{if $type == 'retour'}}
{{:assign var="output_types." value=$label}}
{{/if}}
{{/if}}
{{/foreach}}
@ -88,8 +88,8 @@
{{:assign nonproprio=0}}
{{#load type="movement" where="$$.equipment = :key" :key=$equipment_key order="$$.date"}}
{{if $direction == 'input'}}
{{:assign var="type_mvt" from="config.input_nature.%s"|args:$input_nature}}
{{if $direction == 'input'}}
{{:assign var="type_mvt" from="config.input_nature.%s.type"|args:$operation}}
{{if $type_mvt == 'définitif'}}
{{:assign stock="%d+%d"|math:$stock:$amount}}
{{elseif $type_mvt == 'retour'}}
@ -98,7 +98,7 @@
{{:assign nonproprio="%d+%d"|math:$nonproprio:$amount}}
{{/if}}
{{else}}
{{:assign var="type_mvt" from="config.output_nature.%s"|args:$output_nature}}
{{:assign var="type_mvt" from="config.output_nature.%s.type"|args:$operation}}
{{if $type_mvt == 'définitif'}}
{{:assign stock="%d-%d"|math:$stock:$amount}}
{{elseif $type_mvt == 'temporaire'}}
@ -120,7 +120,7 @@
type="movement"
select="$$.date AS 'Date';
CASE $$.direction WHEN 'input' THEN 'Entrée' WHEN 'output' THEN 'Sortie' END AS 'Mouvement';
CASE $$.direction WHEN 'input' THEN $$.input_nature WHEN 'output' THEN $$.output_nature END AS 'Opération';
$$.operation AS 'Opération';
$$.amount AS 'Quantité';
"" as 'Stock';
"" as 'Sorti';
@ -129,10 +129,11 @@
equipment=$equipment_key
order=1
}}
{{:assign var="type_mvt" from="config.%s_nature.%s"|args:$direction:$col3}}
{{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$direction:$operation}}
{{:assign var="op_label" from="config.%s_nature.%s.label"|args:$direction:$operation}}
{{if $direction === "input" && $input_nature|in:$input_types ||
$direction === "output"&& $output_nature|in:$output_types
{{if $direction === "input" && $op_label|in:$input_types ||
$direction === "output"&& $op_label|in:$output_types
}}
{{:assign var="stock" from="quantites.%s.stock"|args:$id}}
{{:assign var="exterieur" from="quantites.%s.exterieur"|args:$id}}
@ -140,7 +141,7 @@
<tr>
<td>{{$date|date_short}}</td>
<td>{{$col2}}</td>
<td>{{$col3}}</td>
<td>{{$op_label}}</td>
<td class="num">{{$amount}}</td>
<td class="num">{{$stock}}</td>
<td class="num">{{$exterieur}}</td>
@ -149,17 +150,17 @@
<td class="actions">
{{:linkbutton
label="Dupliquer"
href="mouvements/dupliquer_mouvement.html?key=%s&direction=%s&prop=%s"|args:$key:$direction:$_GET.prop
href="mouvements/dupliquer_mouvement.html?key=%s&prop=%s"|args:$key:$_GET.prop
shape="plus"
target="_dialog"}}
{{:linkbutton
label="Modifier"
href="mouvements/modifier_mouvement.html?key=%s&direction=%s"|args:$key:$direction
href="mouvements/modifier_mouvement.html?key=%s"|args:$key
shape="edit"
target="_dialog"}}
{{:linkbutton
label="Supprimer"
href="mouvements/supprimer_mouvement.html?key=%s&direction=%s&prop=%s"|args:$key:$direction:$_GET.prop
href="mouvements/supprimer_mouvement.html?key=%s&prop=%s"|args:$key:$_GET.prop
shape="delete"
target="_dialog"}}
</td>
@ -172,7 +173,7 @@
type="movement"
select="$$.date AS 'Date';
CASE $$.direction WHEN 'input' THEN 'Entrée' WHEN 'output' THEN 'Sortie' END AS 'Mouvement';
CASE $$.direction WHEN 'input' THEN $$.input_nature WHEN 'output' THEN $$.output_nature END AS 'Opération';
$$.operation AS 'Opération';
$$.amount AS 'Quantité';
"" as 'Présent';
$$.comment AS 'Commentaire'"
@ -180,32 +181,33 @@
order=1
}}
{{:assign var="type_mvt" from="config.%s_nature.%s"|args:$direction:$col3}}
{{:assign var="op_label" from="config.%s_nature.%s.label"|args:$direction:$operation}}
{{if $direction === "input" && $input_nature|in:$input_types ||
$direction === "output"&& $output_nature|in:$output_types
{{if $direction === "input" && $op_label|in:$input_types ||
$direction === "output"&& $op_label|in:$output_types
}}
{{:assign var="stock" from="quantites.%s.nonproprio"|args:$id}}
<tr>
<td>{{$date|date_short}}</td>
<td>{{$col2}}</td>
<td>{{$col3}}</td>
<td>{{$op_label}}</td>
<td class="num">{{$amount}}</td>
<td class="num">{{$stock}}</td>
<td>{{$comment}}</td>
<td class="actions">
{{:linkbutton
label="Dupliquer"
href="mouvements/dupliquer_mouvement.html?key=%s&direction=%s&prop=%s"|args:$key:$direction:$_GET.prop
href="mouvements/dupliquer_mouvement.html?key=%s&prop=%s"|args:$key:$_GET.prop
shape="plus"
target="_dialog"}}
{{:linkbutton
label="Modifier"
href="mouvements/modifier_mouvement.html?key=%s&direction=%s"|args:$key:$direction
href="mouvements/modifier_mouvement.html?key=%s"|args:$key
shape="edit"
target="_dialog"}}
{{:linkbutton
label="Supprimer"
href="mouvements/supprimer_mouvement.html?key=%s&direction=%s&prop=%s"|args:$key:$direction:$_GET.prop
href="mouvements/supprimer_mouvement.html?key=%s&prop=%s"|args:$key:$_GET.prop
shape="delete"
target="_dialog"}}
</td>

View File

@ -9,9 +9,9 @@
{{:include file="../_get_config.html" keep="config"}}
{{* types d'entrées *}}
{{#foreach from=$config.input_nature key="label" item="type"}}
{{#foreach from=$config.input_nature key=key}}
{{if $type != 'retour'}}
{{:assign var='input_labels.' value="%s"|args:$label}}
{{:assign var="input_labels.%s"|args:$key value=$label}}
{{/if}}
{{/foreach}}
@ -62,13 +62,12 @@
{{* Enregistrer le mouvement *}}
{{:assign mvt_key=""|uuid}}
{{:assign var="operation" from="input_labels.%d"|args:$_POST.type_operation}}
{{:save
key=$mvt_key
validate_schema="./movement.schema.json"
type="movement"
direction="input"
input_nature=$operation
operation=$_POST.operation
amount=$_POST.quantite|intval
equipment=$equipment_key
date=$_POST.date|parse_date
@ -95,7 +94,7 @@
<fieldset class="entree">
<legend>Ajouter une entrée de matériel</legend>
<dl>
{{:input type="select" name="type_operation" label="Type" required=true options=$input_labels}}
{{:input type="select" name="operation" label="Type" required=true options=$input_labels|sort}}
{{:input type="date" name="date" label="Date" required=true default=$now|date_short}}
{{:input type="number" name="quantite" label="Quantité" min=1 required=true default=1}}
</dl>

View File

@ -4,28 +4,16 @@
Dupliquer un mouvement
paramètres :
- key : clé du mouvement à dupliquer
- direction du mouvement à dupliquer
- prop = 1 si matériel appartient à l'asso
*}}
{{if $_GET.direction == "input"}}
{{:assign msg_direction="entrée"}}
{{else}}
{{:assign msg_direction="sortie"}}
{{/if}}
{{* récupérer les infos du mouvement à dupliquer *}}
{{#load key=$_GET.key assign="mvt_new"}}
{{else}}
{{:error message="Aucune %s avec la clé %s"|args:$msg_direction:$_GET.key}}
{{:error message="Aucun mouvement avec la clé %s"|args:$_GET.key}}
{{/load}}
{{* infos pour affichage *}}
{{if $_GET.direction == "input"}}
{{:assign mvt_nature=$mvt_new.input_nature}}
{{else}}
{{:assign mvt_nature=$mvt_new.output_nature}}
{{/if}}
{{:assign amount_init=$mvt_new.amount}}
{{:assign date_init=$mvt_new.date|date_short}}
{{:assign eqpmt_key=$mvt_new.equipment}}
@ -40,28 +28,22 @@
{{:include file="../_get_config.html" keep="config"}}
{{* limiter les opérations possibles *}}
{{if $_GET.direction == "input"}}
{{if $mvt_new.direction == "input"}}
{{* types d'entrées *}}
{{#foreach from=$config.input_nature key="label" item="type"}}
{{#foreach from=$config.input_nature key=key}}
{{if $_GET.prop && $type != "temporaire" ||
! $_GET.prop && $type == "temporaire"
}}
{{:assign var="input_labels.%s"|args:$label value="%s"|args:$label}}
{{/if}}
{{if $label == $mvt_new.input_nature}}
{{:assign nature_defaut=$label}}
{{:assign var="input_labels.%s"|args:$key value=$label}}
{{/if}}
{{/foreach}}
{{else}}
{{* types de sorties *}}
{{#foreach from=$config.output_nature key="label" item="type"}}
{{#foreach from=$config.output_nature key=key}}
{{if $_GET.prop && $type != "retour" ||
! $_GET.prop && $type == "retour"
}}
{{:assign var="output_labels.%s"|args:$label value="%s"|args:$label}}
{{/if}}
{{if $label == $mvt_new.output_nature}}
{{:assign nature_defaut=$label}}
{{:assign var="output_labels.%s"|args:$key value=$label}}
{{/if}}
{{/foreach}}
{{/if}}
@ -75,17 +57,17 @@
{{/if}}
{{* préparer le mouvement copié *}}
{{if $_GET.direction == "input"}}
{{:assign var="mvt_new.input_nature" value=$_POST.nature_operation}}
{{:assign var="type_mvt" from="config.input_nature.%s"|args:$mvt_new.input_nature}}
{{if $mvt_new.direction == "input"}}
{{:assign var="mvt_new.input_nature" value=$_POST.operation}}
{{:assign var="type_mvt" from="config.input_nature.%s.type"|args:$mvt_new.operation}}
{{if $type_mvt == "temporaire"}}
{{:assign prop=0}}
{{else}}
{{:assign prop=1}}
{{/if}}
{{else}}
{{:assign var="mvt_new.output_nature" value=$_POST.nature_operation}}
{{:assign var="type_mvt" from="config.output_nature.%s"|args:$mvt_new.output_nature}}
{{:assign var="mvt_new.output_nature" value=$_POST.operation}}
{{:assign var="type_mvt" from="config.output_nature.%s.type"|args:$mvt_new.operation}}
{{if $type_mvt == "retour"}}
{{:assign prop=0}}
{{else}}
@ -113,8 +95,8 @@
}}
{{if! $insere}}
{{if
$_GET.direction == "input" && $date >= $mvt_new.date ||
$_GET.direction == "output" && $date > $mvt_new.date
$mvt_new.direction == "input" && $date >= $mvt_new.date ||
$mvt_new.direction == "output" && $date > $mvt_new.date
}}
{{:assign var="movements_new." from=mvt_new}}
{{:assign insere=true}}
@ -136,7 +118,7 @@
{{if $erreur}}
<p class="block error">
Impossible d'enregistrer ce mouvement :
{{if $_GET.direction == "input"}}
{{if $mvt_new.direction == "input"}}
« {{$mvt_new.input_nature}}
{{else}}
« {{$mvt_new.output_nature}}
@ -150,9 +132,8 @@
key=$mvt_key
validate_schema="movement.schema.json"
type="movement"
direction=$_GET.direction
input_nature=$mvt_new.input_nature
output_nature=$mvt_new.output_nature
direction=$mvt_new.direction
operation=$_POST.operation
amount=$mvt_new.amount|intval
equipment=$eqpmt_key
date=$mvt_new.date
@ -171,17 +152,18 @@
{{* récupérer les infos de la catégorie *}}
{{#load key=$eqpmt.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 *}}
<form method="post" action="">
<fieldset>
<legend>Créer une copie de « {{$mvt_nature}} {{$eqpmt.designation}} (Catégorie : {{$category.name}}) »</legend>
{{if $_GET.direction == "input"}}
<legend>Créer une copie de « {{$op_label}} {{$eqpmt.designation}} (Catégorie : {{$category.name}}) »</legend>
{{if $mvt_new.direction == "input"}}
<dl>
{{:input type="select" name="nature_operation" label="Type" required=true options=$input_labels|sort default=$nature_defaut}}
{{:input type="select" name="operation" label="Type" required=true options=$input_labels|sort default=$mvt_new.operation}}
{{else}}
<dl>
{{:input type="select" name="nature_operation" label="Type" required=true options=$output_labels|sort default=$nature_defaut}}
{{:input type="select" name="operation" label="Type" required=true options=$output_labels|sort default=$mvt_new.operation}}
{{/if}}
{{:input type="date" name="date" label="Date" required=true default=$mvt_new.date}}
{{:input type="number" name="amount" label="Quantité" min=1 required=true default=$mvt_new.amount}}

View File

@ -15,9 +15,9 @@
{{:include file="../../_get_config.html" keep="config"}}
{{* types d'entrées *}}
{{#foreach from=$config.input_nature key="label" item="type"}}
{{#foreach from=$config.input_nature key=key}}
{{if $type != 'retour'}}
{{:assign var='input_labels.' value="%s"|args:$label}}
{{:assign var="input_labels.%s"|args:$key value=$label}}
{{/if}}
{{/foreach}}
@ -37,20 +37,18 @@
{{* Enregistrer le mouvement *}}
{{:assign mvt_key=""|uuid}}
{{:assign var="operation" from="input_labels.%d|args:$_POST.nature_operation}}
{{:save
key=$mvt_key
validate_schema="../movement.schema.json"
type="movement"
direction="input"
input_nature=$operation
operation=$_POST.operation
amount=$_POST.quantite|intval
equipment=$equipment.key
date=$_POST.date|parse_date
comment=$_POST.remarques|trim
}}
{{:assign var=type_entree from="config.input_nature.%s"|args:$operation}}
{{:assign var=type_entree from="config.input_nature.%s.type"|args:$_POST.operation}}
{{if $type_entree == "temporaire"}}
{{:assign prop=0}}
{{else}}
@ -76,7 +74,7 @@
<fieldset class="entree">
<legend>Ajouter une entrée de matériel</legend>
<dl>
{{:input type="select" name="nature_operation" label="Type" required=true options=$input_labels|sort}}
{{:input type="select" name="operation" label="Type" required=true options=$input_labels|sort}}
{{:input type="date" name="date" label="Date" required=true default=$now|date_short}}
{{:input type="number" name="quantite" label="Quantité" required=true min=1 default=1}}
{{:input type="textarea" name="remarques" label="Remarques" cols="40" rows="3" required=false}}

View File

@ -14,9 +14,9 @@
{{:include file="../../_get_config.html" keep="config"}}
{{* types d'entrées *}}
{{#foreach from=$config.input_nature key="label" item="type"}}
{{#foreach from=$config.input_nature key=key}}
{{if $type == 'retour'}}
{{:assign var='input_labels.' value="%s"|args:$label}}
{{:assign var="input_labels.%s"|args:$key value=$label}}
{{/if}}
{{/foreach}}
@ -43,14 +43,12 @@
{{* Enregistrer le mouvement *}}
{{:assign mvt_key=""|uuid}}
{{:assign var="operation" from="input_labels.%d|args:$_POST.type_operation}}
{{:save
key=$mvt_key
validate_schema="../movement.schema.json"
type="movement"
direction="input"
input_nature=$operation
operation=$_POST.operation
amount=$_POST.quantite|intval
equipment=$equipment.key
date=$_POST.date|parse_date
@ -91,7 +89,7 @@
<fieldset class="entree">
<legend>Ajouter un retour de matériel</legend>
<dl>
{{:input type="select" name="type_operation" label="Type" required=true options=$input_labels|sort}}
{{:input type="select" name="operation" label="Type" required=true options=$input_labels|sort}}
{{:input type="date" name="date" label="Date" required=true default=$now|date_short}}
{{:input type="number" name="quantite" label="Quantité" min=1 required=true default=$sorti max=$sorti}}
{{:input type="textarea" name="remarques" label="Remarques" cols="40", rows="3" required=false}}

View File

@ -4,27 +4,20 @@
Modifier un mouvement
paramètres :
- key : clé du mouvement à modifier
- direction : du mouvement à modifier
*}}
{{if $_GET.direction == "input"}}
{{:assign msg_direction="entrée"}}
{{else}}
{{:assign msg_direction="sortie"}}
{{/if}}
{{* récupérer les infos du mouvement à modifier *}}
{{#load key=$_GET.key assign="mvt_new"}}
{{else}}
{{:error message="Aucune %s avec la clé %s"|args:$msg_direction:$_GET.key}}
{{:error message="Aucun mouvement avec la clé %s"|args:$_GET.key}}
{{/load}}
{{* récupérer la config des entrées/sorties *}}
{{:include file="../_get_config.html" keep="config"}}
{{* infos pour affichage *}}
{{if $_GET.direction == "input"}}
{{:assign mvt_nature=$mvt_new.input_nature}}
{{else}}
{{:assign mvt_nature=$mvt_new.output_nature}}
{{/if}}
{{:assign var="op_label" from="config.%s_nature.%s.label"|args:$mvt_new.direction:$mvt_new.operation}}
{{:debug get=$_GET mvt_new=$mvt_new op_label=$op_label}}
{{:assign amount_init=$mvt_new.amount}}
{{:assign date_init=$mvt_new.date|date_short}}
{{:assign eqpmt_key=$mvt_new.equipment}}
@ -35,24 +28,15 @@
{{:error message="Aucun matériel avec la clé « %s »"|args:$eqpmt_key}}
{{/load}}
{{* récupérer la config des entrées/sorties *}}
{{:include file="../_get_config.html" keep="config"}}
{{if $_GET.direction == "input"}}
{{if $mvt_new.direction == "input"}}
{{* types d'entrées *}}
{{#foreach from=$config.input_nature key="label" item="type"}}
{{:assign var="input_labels.%s"|args:$label value="%s"|args:$label}}
{{if $label == $mvt_new.input_nature}}
{{:assign nature_defaut=$label}}
{{/if}}
{{#foreach from=$config.input_nature key=key}}
{{:assign var="input_labels.%s"|args:$key value=$label}}
{{/foreach}}
{{else}}
{{* types de sorties *}}
{{#foreach from=$config.output_nature key="label" item="type"}}
{{:assign var="output_labels.%s"|args:$label value="%s"|args:$label}}
{{if $label == $mvt_new.output_nature}}
{{:assign nature_defaut=$label}}
{{/if}}
{{#foreach from=$config.output_nature key=key}}
{{:assign var="output_labels.%s"|args:$key value=$label}}
{{/foreach}}
{{/if}}
@ -65,17 +49,17 @@
{{/if}}
{{* préparer le mouvement modifié *}}
{{if $_GET.direction == "input"}}
{{:assign var="mvt_new.input_nature" value=$_POST.nature_operation}}
{{:assign var="type_mvt" from="config.input_nature.%s"|args:$mvt_new.input_nature}}
{{if $mvt_new.direction == "input"}}
{{:assign var="mvt_new.input_nature" value=$_POST.operation}}
{{:assign var="type_mvt" from="config.input_nature.%s.type"|args:$mvt_new.operation}}
{{if $type_mvt == "temporaire"}}
{{:assign prop=0}}
{{else}}
{{:assign prop=1}}
{{/if}}
{{else}}
{{:assign var="mvt_new.output_nature" value=$_POST.nature_operation}}
{{:assign var="type_mvt" from="config.output_nature.%s"|args:$mvt_new.output_nature}}
{{:assign var="mvt_new.output_nature" value=$_POST.operation}}
{{:assign var="type_mvt" from="config.output_nature.%s.type"|args:$mvt_new.operation}}
{{if $type_mvt == "retour"}}
{{:assign prop=0}}
{{else}}
@ -105,8 +89,8 @@
{{if $key != $_GET.key}}
{{if! $insere}}
{{if
$_GET.direction == "input" && $date >= $mvt_new.date ||
$_GET.direction == "output" && $date > $mvt_new.date
$mvt_new.direction == "input" && $date >= $mvt_new.date ||
$mvt_new.direction == "output" && $date > $mvt_new.date
}}
{{:assign var="movements_new." from=mvt_new}}
{{:assign insere=true}}
@ -127,14 +111,11 @@
}}
{{if $erreur}}
{{:assign var="new_op_label" from="config.%s_nature.%s.label"|args:$mvt_new.direction:$mvt_new.operation}}
<p class="block error">
Modification demandée impossible :
« {{$mvt_nature}} de {{$eqpmt.designation}} (qté : {{$amount_init}}) en date du {{$date_init}} » vers
{{if $_GET.direction == "input"}}
« {{$mvt_new.input_nature}}
{{else}}
« {{$mvt_new.output_nature}}
{{/if}}
« {{$op_label}} de {{$eqpmt.designation}} (qté : {{$amount_init}}) en date du {{$date_init}} » vers
« {{$new_op_label}}
de {{$eqpmt.designation}} (qté : {{$mvt_new.amount}}) à la date du {{$mvt_new.date|date_short}} »
</p>
{{else}}
@ -143,9 +124,8 @@
key=$_GET.key
validate_schema="movement.schema.json"
type="movement"
direction=$_GET.direction
input_nature=$mvt_new.input_nature
output_nature=$mvt_new.output_nature
direction=$mvt_new.direction
operation=$_POST.operation
amount=$mvt_new.amount|intval
equipment=$eqpmt_key
date=$mvt_new.date
@ -168,13 +148,13 @@
{{* formulaire de modification du mouvement *}}
<form method="post" action="">
<fieldset>
<legend>Modifier « {{$mvt_nature}} {{$eqpmt.designation}} (Catégorie : {{$category.name}}) »</legend>
{{if $_GET.direction == "input"}}
<legend>Modifier « {{$op_label}} {{$eqpmt.designation}} (Catégorie : {{$category.name}}) »</legend>
{{if $mvt_new.direction == "input"}}
<dl>
{{:input type="select" name="nature_operation" label="Type" required=true options=$input_labels|sort default=$nature_defaut}}
{{:input type="select" name="operation" label="Type" required=true options=$input_labels|sort default=$mvt_new.operation}}
{{else}}
<dl>
{{:input type="select" name="nature_operation" label="Type" required=true options=$output_labels|sort default=$nature_defaut}}
{{:input type="select" name="operation" label="Type" required=true options=$output_labels|sort default=$mvt_new.operation}}
{{/if}}
{{:input type="date" name="date" label="Date" required=true default=$mvt_new.date}}
{{:input type="number" name="amount" label="Quantité" min=1 required=true default=$mvt_new.amount}}

View File

@ -11,13 +11,9 @@
"type": "string",
"enum": ["input", "output"]
},
"input_nature": {
"description": "Nature de l'entrée",
"type": ["null", "string"]
},
"output_nature": {
"description": "Nature de la sortie",
"type": ["null", "string"]
"operation": {
"description": "clé de l'opération",
"type": "string"
},
"amount": {
"description": "Quantité ajoutée ou retirée",
@ -38,5 +34,5 @@
"type": ["null", "string"]
}
},
"required": ["type", "direction", "amount", "equipment", "date", "comment"]
"required": ["type", "direction", "operation", "amount", "equipment", "date", "comment"]
}

View File

@ -14,9 +14,9 @@
{{:include file="../../_get_config.html" keep="config"}}
{{* types de sorties *}}
{{#foreach from=$config.output_nature key="label" item="type"}}
{{#foreach from=$config.output_nature key=key}}
{{if $type == 'retour'}}
{{:assign var='output_labels.' value="%s"|args:$label}}
{{:assign var="output_labels.%s"|args:$key value=$label}}
{{/if}}
{{/foreach}}
@ -47,8 +47,7 @@
{{/if}}
{{* traiter le mouvement courant *}}
{{:assign var="mvt_nature" from="mvt.%s_nature"|args:$mvt.direction}}
{{:assign var="type_mvt" from="config.%s_nature.%s"|args:$mvt.direction:$mvt_nature}}
{{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$mvt.direction:$mvt.operation}}
{{if $mvt.direction === 'input'}}
{{if $type_mvt == 'définitif'}}
@ -86,13 +85,12 @@
{{* Enregistrer le mouvement *}}
{{:assign mvt_key=""|uuid}}
{{:assign var="operation" from="output_labels.%d|args:$_POST.type_operation}}
{{:save
key=$mvt_key
validate_schema="../movement.schema.json"
type="movement"
direction="output"
output_nature=$operation
operation=$_POST.operation
amount=$_POST.quantite|intval
equipment=$equipment.key
date=$_POST.date|parse_date
@ -130,7 +128,7 @@
<fieldset class="sortie">
<legend>Ajouter une sortie d'un matériel présent temporairement</legend>
<dl>
{{:input type="select" name="type_operation" label="Type" required=true options=$output_labels|sort}}
{{:input type="select" name="operation" label="Type" required=true options=$output_labels|sort}}
{{:input type="date" name="date" label="Date de sortie" required=true default=$now|date_short}}
{{:input type="number" name="quantite" label="Quantité" required=true default=$present min=1 max=$present}}
{{:input type="textarea" name="remarques" label="Remarques" cols="40" rows="3" required=false}}

View File

@ -14,9 +14,9 @@
{{:include file="../../_get_config.html" keep="config"}}
{{* types de sorties *}}
{{#foreach from=$config.output_nature key="label" item="type"}}
{{#foreach from=$config.output_nature key=key}}
{{if $type != 'retour'}}
{{:assign var='output_labels.' value="%s"|args:$label}}
{{:assign var="output_labels.%s"|args:$key value=$label}}
{{/if}}
{{/foreach}}
@ -33,13 +33,11 @@
{{* lister tous les mouvements du matériel *}}
{{#load type="movement" where="$$.equipment = '%s'"|args:$_GET.key assign="mvt" order="$$.date ASC"}}
{{* traiter le nouveau mouvement *}}
{{if ! $insere && $mvt.date > $_POST.date|parse_date}}
{{:assign insere=true}}
{{:assign dispo_old="%d-%d"|math:$stock:$exterieur}}
{{:assign var="operation" from="output_labels.%s|args:$_POST.type_operation}}
{{:assign var="type_mvt" from="config.output_nature.%s"|args:$operation}}
{{:assign var="type_mvt" from="config.output_nature.%s.type"|args:$_POST.operation}}
{{if $type_mvt == 'définitif'}}
{{:assign stock="%d-%d"|math:$stock:$_POST.quantite}}
@ -55,8 +53,7 @@
{{/if}}
{{* traiter le mouvement courant *}}
{{:assign var="mvt_nature" from="mvt.%s_nature"|args:$mvt.direction}}
{{:assign var="type_mvt" from="config.%s_nature.%s"|args:$mvt.direction:$mvt_nature}}
{{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$mvt.direction:$mvt.operation}}
{{if $mvt.direction === 'input'}}
{{if $type_mvt == 'définitif'}}
@ -85,8 +82,7 @@
{{/load}}
{{if ! $insere}}
{{:assign dispo_old="%d-%d"|math:$stock:$exterieur}}
{{:assign var="operation" from="output_labels.%s|args:$_POST.type_operation}}
{{:assign var="type_mvt" from="config.output_nature.%s"|args:$operation}}
{{:assign var="type_mvt" from="config.output_nature.%s.type"|args:$_POST.operation}}
{{if $type_mvt == 'définitif'}}
{{:assign stock="%d-%d"|math:$stock:$_POST.quantite}}
@ -103,13 +99,12 @@
{{* Enregistrer le mouvement *}}
{{:assign mvt_key=""|uuid}}
{{:assign var="operation" from="output_labels.%d|args:$_POST.type_operation}}
{{:save
key=$mvt_key
validate_schema="../movement.schema.json"
type="movement"
direction="output"
output_nature=$operation
operation=$_POST.operation
amount=$_POST.quantite|intval
equipment=$equipment.key
date=$_POST.date|parse_date
@ -150,7 +145,7 @@
<fieldset class="sortie">
<legend>Ajouter une sortie</legend>
<dl>
{{:input type="select" name="type_operation" label="Type" required=true options=$output_labels|sort}}
{{:input type="select" name="operation" label="Type" required=true options=$output_labels|sort}}
{{:input type="date" name="date" label="Date de sortie" required=true default=$now|date_short}}
{{:input type="number" name="quantite" label="Quantité" required=true default=$dispo min=1 max=$dispo}}
{{:input type="textarea" name="remarques" label="Remarques" cols="40" rows="3" required=false}}

View File

@ -40,8 +40,7 @@
order="$$.date"}}
{{* déterminer le type de mouvement *}}
{{:assign var="mvt_nature" from="mvt.%s_nature"|args:$mvt.direction}}
{{:assign var="type_mvt" from="config.%s_nature.%s"|args:$mvt.direction:$mvt_nature}}
{{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$mvt.direction:$mvt.operation}}
{{if $key != $_GET.key}}
{{* ce n'est pas le mouvement à supprimer : cumuler les entrées/sorties *}}
@ -70,9 +69,9 @@
{{else}}
{{* sortie *}}
{{:assign temporaire=false}}
{{:assign var="output_nature" from="config.output_nature.%s"|args:$mvt_suppr.output_nature}}
{{:assign var="type_operation" from="config.output_nature.%s.type"|args:$mvt_suppr.operation}}
{{if $output_nature == 'temporaire'}}
{{if $type_operation == 'temporaire'}}
{{:assign exterieur=0}}
{{#load
type="movement"
@ -81,8 +80,7 @@
order="$$.date"}}
{{* déterminer le type de mouvement *}}
{{:assign var="mvt_nature" from="mvt.%s_nature"|args:$mvt.direction}}
{{:assign var="type_mvt" from="config.%s_nature.%s"|args:$mvt.direction:$mvt_nature}}
{{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$mvt.direction:$mvt.operation}}
{{if $key != $_GET.key}}
{{* ce n'est pas le mouvement à supprimer : cumuler les entrées/sorties *}}

View File

@ -15,8 +15,7 @@
{{#foreach from=$movements item="mvt"}}
{{* déterminer le type de mouvement *}}
{{:assign var="mvt_nature" from="mvt.%s_nature"|args:$mvt.direction}}
{{:assign var="type_mvt" from="config.%s_nature.%s"|args:$mvt.direction:$mvt_nature}}
{{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$mvt.direction:$mvt.operation}}
{{if $mvt.direction == 'input'}}
{{if $type_mvt == 'définitif'}}