diff --git a/_get_config.html b/_get_config.html index 671a20e..07ef418 100644 --- a/_get_config.html +++ b/_get_config.html @@ -16,15 +16,13 @@ {{:assign var="nature" from="module.config.%s_nature"|args:$direction}} {{if $nature != null}} {{#foreach from=$nature item="elem"}} - {{:assign var="item" label=$label type=$type fee=$fee}} - {{:assign var="config.%s_nature.%s"|args:$direction:$key value=$item}} + {{:assign var="config.%s_nature.%s"|args:$direction:$key value=$elem}} {{/foreach}} {{else}} {{* pas de config enregistrée : utiliser la config par défaut *}} {{:assign var="nature" from="config_defaut.%ss"|args:$direction}} {{#foreach from=$nature item="elem"}} - {{:assign var="item" label=$label type=$type}} - {{:assign var="config.%s_nature.%s"|args:$direction:$key value=$item}} + {{:assign var="config.%s_nature.%s"|args:$direction:$key value=$elem}} {{/foreach}} {{/if}} {{/foreach}} diff --git a/_inventory.html b/_inventory.html index 53e9566..213bcc9 100644 --- a/_inventory.html +++ b/_inventory.html @@ -5,14 +5,20 @@ *}} {{* filtrer selon la catégorie *}} +{{:assign saved_filters=$module.config.filters}} +{{:assign var="user_filters" from="saved_filters.%s"|args:$logged_user.id}} + {{if $_GET.cat_key == null}} - {{:assign selected_category=$module.config.stock_cat_key}} -{{elseif $_GET.cat_key == -1}} - {{:assign selected_category=null}} - {{:save key="config" stock_cat_key=null}} + {{:assign selected_category=$user_filters.stock_cat_key}} {{else}} - {{:assign selected_category=$_GET.cat_key}} - {{:save key="config" stock_cat_key=$selected_category}} + {{if $_GET.cat_key == -1}} + {{:assign selected_category=null}} + {{else}} + {{:assign selected_category=$_GET.cat_key}} + {{/if}} + {{:assign var="user_filters.stock_cat_key" value=$selected_category}} + {{:assign var="saved_filters.%s"|args:$logged_user.id value=$user_filters}} + {{:save key="config" filters=$saved_filters}} {{/if}} {{* condition de filtrage *}} @@ -25,13 +31,16 @@ {{* filtrer selon appartenance *}} {{if $_GET.prop == null}} - {{:assign selected_prop=$module.config.stock_prop}} -{{elseif $_GET.prop == -1}} - {{:assign selected_prop=null}} - {{:save key="config" stock_prop=null}} + {{:assign selected_prop=$user_filters.stock_prop}} {{else}} - {{:assign selected_prop=$_GET.prop}} - {{:save key="config" stock_prop=$_GET.prop}} + {{if $_GET.prop == -1}} + {{:assign selected_prop=null}} + {{else}} + {{:assign selected_prop=$_GET.prop}} + {{/if}} + {{:assign var="user_filters.stock_prop" value=$selected_prop}} + {{:assign var="saved_filters.%s"|args:$logged_user.id value=$user_filters}} + {{:save key="config" filters=$saved_filters}} {{/if}} {{if $selected_prop == null}} diff --git a/config.html b/config.html index f5bb3ec..f4bab4a 100644 --- a/config.html +++ b/config.html @@ -11,7 +11,7 @@

Configuration enregistrée.

{{/if}} -{{* lecture config (défaut ou enregistrée) *}} +{{* lecture config *}} {{:include file="./_get_config.html" keep="config_defaut, config, directions"}} {{* interdire la modification et la suppression des types de mouvement prédéfinis *}} @@ -41,6 +41,13 @@ {{:assign var="nature" from="config.%s_nature"|args:$direction}} {{#foreach from=$nature key=key}} + {{:assign sortie_temp=false}} + {{if $direction == 'output'}} + {{:assign var="type" from="nature.%s.type"|args:$key}} + {{if $type == 'temporaire'}} + {{:assign sortie_temp=true}} + {{/if}} + {{/if}} {{$label}} {{$type}} @@ -48,7 +55,7 @@ {{if ! $default_keys|has:$key && ! $locked|has:$key}} {{:linkbutton label="Supprimer" shape="delete" href="config/delete_movement_type.html?dir=%s&op_key=%s"|args:$direction:$key target="_dialog"}} {{/if}} - {{if ! $default_keys|has:$key}} + {{if ! $default_keys|has:$key || $sortie_temp}} {{:linkbutton label="Modifier" shape="edit" href="config/modify_movement_type.html?dir=%s&op_key=%s"|args:$direction:$key target="_dialog"}} {{/if}} diff --git a/config/misc.html b/config/misc.html index f58c655..ba11eec 100644 --- a/config/misc.html +++ b/config/misc.html @@ -2,57 +2,35 @@ {{#restrict block=true section="accounting" level="write"}}{{/restrict}} -{{* lecture config (défaut ou enregistrée) *}} -{{:include file="../_get_config.html" keep="loan_duration"}} - {{#form on="save"}} - {{* vérifier si les boutons ont été cochés *}} - {{#foreach from=$module.config.output_nature item="elem"}} - {{if $elem.type == 'temporaire'}} - {{if $_POST|has_key:$elem.key}} - {{:assign var="fee" from="_POST.%s"|args:$elem.key}} - {{:assign var="elem" key=$elem.key label=$elem.label type=$elem.type fee=$fee}} - {{else}} - {{:error message="Vous n'avez pas fait de choix pour la sortie « %s »"|args:$elem.label}} - {{/if}} - {{/if}} - {{:assign var="output_nature." value=$elem}} - {{/foreach}} + {{* vérifier la valisité de la durée saisie *}} + {{if $_POST.loan_duration <= 0}} + {{:error message="Durée (%s) erronée ; doit être > 0"|args:$_POST.loan_duration}} + {{/if}} {{:save key="config" - output_nature=$output_nature loan_duration=$_POST.loan_duration }} {{/form}} -{{:include file="../_nav.html" current="config" subcurrent="divers"}} {{:admin_header title="Configuration" current="module_equipment"}} +{{:include file="../_nav.html" current="config" subcurrent="divers"}} {{:form_errors}} {{if $_GET.ok}}

Configuration enregistrée.

{{/if}} +{{* lecture config *}} +{{:include file="../_get_config.html" keep="loan_duration"}} +
-
- Sorties temporaires -

Pour chaque sortie temporaire, indiquer si elle est gratuite ou payante

-
- {{#foreach from=$module.config.output_nature}} - {{if $type == 'temporaire'}} - {{:input type="radio-btn" name=$key value="gratuit" label="Gratuit" required=true prefix_title=$label default=$fee}} - {{:input type="radio-btn" name=$key value="payant" label="Payant" required=true default=$fee}} - {{/if}} - {{/foreach}} -
-
Autres paramètres
{{:input type="number" name="loan_duration" label="Durée de prêt par défaut" min=1 required=true default=$loan_duration help="Durée en nombre de jours"}} -

diff --git a/config/modify_movement_type.html b/config/modify_movement_type.html index 5d99d4d..c5f7915 100644 --- a/config/modify_movement_type.html +++ b/config/modify_movement_type.html @@ -5,40 +5,38 @@ {{* paramètres : - dir : input ou output - - op_key : clé du type de mouvement dont on veut modifier le libellé + - op_key : clé du type de mouvement dont on veut modifier le libellé ou le tarif *}} {{* lecture config (défaut ou enregistrée) *}} -{{:include file="../_get_config.html" keep="config, directions"}} - -{{if ! $directions|has_key:$_GET.dir}} - {{:error message="Direction « %s » inconnue !"|args:$_GET.dir}} -{{/if}} - -{{* interdire la modification des types de mouvement prédéfinis *}} -{{:assign var="nature" from="config_defaut.%ss"|args:$_GET.dir}} -{{#foreach from=$nature item="elem"}} - {{:assign var="default_keys." value=$key}} -{{/foreach}} -{{if $default_keys|has:$_GET.op_key}} - {{:error message="Ce type de mouvement ne peut être modifié"}} -{{/if}} +{{:include file="../_get_config.html" keep="config_defaut, config, directions"}} {{#form on="save"}} + {{if $_POST.tarif == null && $_POST.name == null}} + {{:redirect to="./config.html"}} + {{/if}} {{#foreach from=$directions key="direction"}} {{:assign var="nature" from="config.%s_nature"|args:$direction}} {{#foreach from=$nature key="key" item="elem"}} - {{if $_GET.dir == $direction && $_POST.name|trim|tolower == $elem.label|trim|tolower}} - {{:error message="Le libellé « %s » est déjà présent"|args:$_POST.name}} - {{/if}} - {{if $_GET.dir == $direction && $key == $_GET.op_key}} - {{:assign label=$_POST.name|trim}} - {{else}} + {{if $_POST.name == null}} {{:assign label=$elem.label}} + {{else}} + {{if $_GET.dir == $direction && $key != $_GET.op_key && + $_POST.name|trim|tolower == $elem.label|trim|tolower}} + {{:error message="Le libellé « %s » est déjà présent"|args:$_POST.name}} + {{/if}} + {{if $_GET.dir == $direction && $key == $_GET.op_key}} + {{:assign label=$_POST.name|trim}} + {{else}} + {{:assign label=$elem.label}} + {{/if}} {{/if}} {{:assign var="%s_nature"|args:$direction value=$elem}} {{:assign var="%s_nature.label"|args:$direction value=$label}} {{:assign var="%s_nature.key"|args:$direction value=$key}} + {{if $_POST.tarif != null && $key == $_GET.op_key}} + {{:assign var="%s_nature.fee"|args:$direction value=$_POST.tarif}} + {{/if}} {{:assign var="%s_natures."|args:$direction from="%s_nature"|args:$direction}} {{/foreach}} {{/foreach}} @@ -53,18 +51,59 @@ {{/form}} {{:admin_header title="Gestion des matériels" current="module_equipment"}} -{{* barre de navigation *}} {{if ! $dialog}} {{:include file="../_nav.html" current="config" subcurrent="typesES"}} {{/if}} {{:form_errors}} +{{* vérifier que $_GET.dir est bien une direction connue *}} +{{if ! $directions|has_key:$_GET.dir}} + {{:error message="Direction « %s » inconnue !"|args:$_GET.dir}} +{{/if}} + +{{* vérifier que $_GET.op_key est bien dans la liste des opérations *}} +{{:assign var="config_nature" from="config.%s_nature"|args:$_GET.dir}} +{{if ! $config_nature|keys|has:$_GET.op_key}} + {{:error message="Type de mouvement inconnu !"}} +{{/if}} + +{{* sortie temporaire ? *}} +{{:assign sortie_temp=false}} +{{if $_GET.dir == 'output'}} + {{:assign var="elem" from="config_nature.%s"|args:$_GET.op_key}} + {{if $elem.type == 'temporaire'}} + {{:assign sortie_temp=true}} + {{:assign fee=$elem.fee}} + {{/if}} +{{/if}} + +{{* mouvement prédéfini ? *}} +{{:assign var="default_nature" from="config_defaut.%ss"|args:$_GET.dir}} +{{#foreach from=$default_nature item="elem"}} + {{:assign var="default_keys." value=$key}} +{{/foreach}} + +{{:assign label_mod=true}} +{{if $default_keys|has:$_GET.op_key}} + {{:assign label_mod=false}} +{{/if}} + +{{if ! $label_mod && ! $sortie_temp}} + {{:error message="Ce type de mouvement ne peut être modifié"}} +{{/if}} + {{:assign var="default_label" from="config.%s_nature.%s.label"|args:$_GET.dir:$_GET.op_key}}

- Modifier le libellé + Paramètres
- {{:input type="text" name="name" label="Libellé" default=$default_label required=true maxlength="100"}} + {{if $label_mod}} + {{:input type="text" name="name" label="Libellé" default=$default_label required=true maxlength="100"}} + {{/if}} + {{if $sortie_temp}} + {{:input type="radio-btn" name="tarif" value="gratuit" label="Gratuit" required=true default=$fee prefix_title=Tarif}} + {{:input type="radio-btn" name="tarif" value="payant" label="Payant" required=true default=$fee}} + {{/if}}

{{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}} diff --git a/global_history.html b/global_history.html index 6038924..47a01ba 100644 --- a/global_history.html +++ b/global_history.html @@ -14,14 +14,20 @@ {{:include file="./_get_config.html" keep="config"}} {{* filtrer selon la catégorie *}} +{{:assign saved_filters=$module.config.filters}} +{{:assign var="user_filters" from="saved_filters.%s"|args:$logged_user.id}} + {{if $_GET.cat_key == null}} - {{:assign selected_category=$module.config.hist_cat_key}} -{{elseif $_GET.cat_key == -1}} - {{:assign selected_category=null}} - {{:save key="config" hist_cat_key=null}} + {{:assign selected_category=$user_filters.hist_cat_key}} {{else}} - {{:assign selected_category=$_GET.cat_key}} - {{:save key="config" hist_cat_key=$selected_category}} + {{if $_GET.cat_key == -1}} + {{:assign selected_category=null}} + {{else}} + {{:assign selected_category=$_GET.cat_key}} + {{/if}} + {{:assign var="user_filters.hist_cat_key" value=$selected_category}} + {{:assign var="saved_filters.%s"|args:$logged_user.id value=$user_filters}} + {{:save key="config" filters=$saved_filters}} {{/if}} {{* condition de filtrage *}} @@ -37,13 +43,16 @@ {{* filtrer selon appartenance *}} {{if $_GET.prop == null}} - {{:assign selected_prop=$module.config.hist_prop}} -{{elseif $_GET.prop == -1}} - {{:assign selected_prop=null}} - {{:save key="config" hist_prop=null}} + {{:assign selected_prop=$user_filters.hist_prop}} {{else}} - {{:assign selected_prop=$_GET.prop}} - {{:save key="config" hist_prop=$_GET.prop}} + {{if $_GET.prop == -1}} + {{:assign selected_prop=null}} + {{else}} + {{:assign selected_prop=$_GET.prop}} + {{/if}} + {{:assign var="user_filters.hist_prop" value=$selected_prop}} + {{:assign var="saved_filters.%s"|args:$logged_user.id value=$user_filters}} + {{:save key="config" filters=$saved_filters}} {{/if}} {{* déterminer les types de mouvements selon l'appartenance du matériel *}} diff --git a/loan_history.html b/loan_history.html index f825528..a7ff7de 100644 --- a/loan_history.html +++ b/loan_history.html @@ -38,26 +38,24 @@ {{/if}} {{/if}} -{{* lecture config (défaut ou enregistrée) *}} +{{* lecture config *}} {{:include file="./_get_config.html" keep="config"}} {{* filtrer selon la catégorie *}} +{{:assign saved_filters=$module.config.filters}} +{{:assign var="user_filters" from="saved_filters.%s"|args:$logged_user.id}} + {{if $_GET.cat_key == null}} - {{:assign var="selected_category" from="module.config.%s_hist_cat_key"|args:$_GET.output_type}} -{{elseif $_GET.cat_key == -1}} - {{:assign selected_category=null}} - {{if $_GET.output_type == "loan"}} - {{:save key="config" loan_hist_cat_key=null}} - {{elseif $_GET.output_type == "rent"}} - {{:save key="config" rent_hist_cat_key=null}} - {{/if}} + {{:assign var="selected_category" from="user_filters.%s_hist_cat_key"|args:$_GET.output_type}} {{else}} - {{:assign selected_category=$_GET.cat_key}} - {{if $_GET.output_type == "loan"}} - {{:save key="config" loan_hist_cat_key=$selected_category}} - {{elseif $_GET.output_type == "rent"}} - {{:save key="config" rent_hist_cat_key=$selected_category}} + {{if $_GET.cat_key == -1}} + {{:assign selected_category=null}} + {{else}} + {{:assign selected_category=$_GET.cat_key}} {{/if}} + {{:assign var="user_filters.%s_hist_cat_key"|args:$_GET.output_type value=$selected_category}} + {{:assign var="saved_filters.%s"|args:$logged_user.id value=$user_filters}} + {{:save key="config" filters=$saved_filters}} {{/if}} {{* condition de filtrage *}} diff --git a/loan_movements.html b/loan_movements.html index 55d74f7..4b56e9e 100644 --- a/loan_movements.html +++ b/loan_movements.html @@ -15,7 +15,6 @@ {{/if}} {{:admin_header title="Historique des %ss"|args:$label custom_css="./style.css" current="module_equipment"}} - {{:include file="./_nav.html" current="%s"|args:$label subcurrent="historique"}} {{* @@ -47,22 +46,20 @@ {{:include file="./_get_config.html" keep="config"}} {{* filtrer selon la catégorie *}} +{{:assign saved_filters=$module.config.filters}} +{{:assign var="user_filters" from="saved_filters.%s"|args:$logged_user.id}} + {{if $_GET.cat_key == null}} - {{:assign var="selected_category" from="module.config.%s_cat_key"|args:$_GET.output_type}} -{{elseif $_GET.cat_key == -1}} - {{:assign selected_category=null}} - {{if $_GET.output_type == "loan"}} - {{:save key="config" loan_cat_key=null}} - {{elseif $_GET.output_type == "rent"}} - {{:save key="config" rent_cat_key=null}} - {{/if}} + {{:assign var="selected_category" from="user_filters.%s_cat_key"|args:$_GET.output_type}} {{else}} - {{:assign selected_category=$_GET.cat_key}} - {{if $_GET.output_type == "loan"}} - {{:save key="config" loan_cat_key=$selected_category}} - {{elseif $_GET.output_type == "rent"}} - {{:save key="config" rent_cat_key=$selected_category}} + {{if $_GET.cat_key == -1}} + {{:assign selected_category=null}} + {{else}} + {{:assign selected_category=$_GET.cat_key}} {{/if}} + {{:assign var="user_filters.%s_cat_key"|args:$_GET.output_type value=$selected_category}} + {{:assign var="saved_filters.%s"|args:$logged_user.id value=$user_filters}} + {{:save key="config" filters=$saved_filters}} {{/if}} {{* condition de filtrage *}}