diff --git a/README.md b/README.md index 16a0479..591a199 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,14 @@ compta ou un fichier. Un matériel appartenant à l'association peut sortir : - temporairement (prêt, ...) : il est possible de lui associer un lieu - de stockage ainsi qu'un membre dépositaire du matériel ; il peut - ensuite revenir dans l'association. + de stockage ainsi qu'un membre dépositaire du matériel et une date + de retour ; il peut ensuite revenir dans l'association. - définitivement (vente, ...) : il est possible de lui associer un membre bénéficiaire du matériel. +Il est possible de suivre les matériels prêtés ou loués et de savoir +si la date de retour est proche ou dépassée. + Un matériel présent temporairement dans l'association peut être retourné à son propriétaire. diff --git a/_get_config.html b/_get_config.html index 119a20b..0ebc002 100644 --- a/_get_config.html +++ b/_get_config.html @@ -16,21 +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}} - {{: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}} - -{{if $module.config.loan_duration != null}} - {{:assign loan_duration=$module.config.loan_duration}} -{{else}} - {{:assign loan_duration=$config_defaut.loan_duration}} -{{/if}} diff --git a/_inventory.html b/_inventory.html index 090a01d..ce8cffc 100644 --- a/_inventory.html +++ b/_inventory.html @@ -1,40 +1,65 @@ {{* -*- brindille -*- *}} {{* - inventaire des entrées/sorties des matériels permanents + Inventaire des matériels en stock dans l'association *}} {{* 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}} - {{if $module.config.stock_cat_key != null}} - {{:assign cat_key=$selected_category|quote_sql}} - {{/if}} -{{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}} - {{:assign cat_key=$selected_category|quote_sql}} - {{: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 *}} {{if $selected_category != null}} + {{:assign cat_key=$selected_category|quote_sql}} {{:assign cat_condition="$$.category = %s"|args:$cat_key}} {{else}} {{:assign cat_condition="1"}} {{/if}} -{{* Sélecteur catégories *}} -{{:assign var="cat_options." value="" label="Toutes les catégories" href="?cat_key=-1&prop=1"}} +{{* filtrer selon appartenance *}} +{{if $_GET.prop == null}} + {{:assign selected_prop=$user_filters.stock_prop}} +{{else}} + {{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}} + {{:assign prop_condition="1"}} +{{elseif $selected_prop == 1}} + {{:assign prop_condition="$$.stock NOT NULL"}} +{{else}} + {{:assign prop_condition="$$.notowned != 0"}} +{{/if}} + +{{* sélecteurs de catégorie et d'appartenance *}} +{{:assign var="cat_options." value="" label="Toutes les catégories" href="?cat_key=-1"}} {{#load type="category" order="$$.name"}} {{:assign var="categories.%s"|args:$key value=$name}} {{:assign var="cat_options." value=$key label=$name - href="?cat_key=%s&prop=1"|args:$key + href="?cat_key=%s"|args:$key }} {{/load}} @@ -47,8 +72,21 @@ }} +{{:assign var="prop_options." value="" label="Tous les matériels" href="?prop=-1"}} +{{:assign var="prop_options." value="1" label="Matériels propriété de l'association" href="?prop=1"}} +{{:assign var="prop_options." value="0" label="Matériels NON propriété de l'association" href="?prop=0"}} + +
+Inventaire des matériels propriété de l'association
+Inventaire des matériels présents dans l'association
Matériel remis en service
{{/if}} +{{* filtrer selon la catégorie *}} +{{if $_GET.cat_key == null}} + {{:assign selected_category=$module.config.archive_cat_key}} +{{elseif $_GET.cat_key == -1}} + {{:assign selected_category=null}} + {{:save key="config" archive_cat_key=null}} +{{else}} + {{:assign selected_category=$_GET.cat_key}} + {{:save key="config" archive_cat_key=$selected_category}} +{{/if}} + +{{* condition de filtrage *}} +{{if $selected_category == null}} + {{:assign cat_condition="1"}} +{{else}} + {{:assign cat_key=$selected_category|quote_sql}} + {{:assign cat_condition="$$.category == %s"|args:$cat_key}} +{{/if}} + {{* Sélecteur catégories *}} -{{:assign var="options." value="" label="Toutes les catégories" href="?prop=1"}} +{{:assign var="cat_options." value="" label="Toutes les catégories" href="?cat_key=-1"}} {{#load type="category" order="$$.name"}} {{:assign - var="options." + var="cat_options." value=$key label=$name href="?cat_key=%s"|args:$key @@ -24,8 +43,8 @@ {{:dropdown title="Filtrer par catégorie" - options=$options - value="%s"|args:$_GET.cat_key + options=$cat_options + value="%s"|args:$selected_category }} @@ -33,14 +52,6 @@Matériels qui ne sont plus dans l'association
-{{* filtrer selon la catégorie *}} -{{if $_GET.cat_key == null}} - {{:assign condition="1"}} -{{else}} - {{:assign cat_key=$_GET.cat_key|quote_sql}} - {{:assign condition="$$.category == %s"|args:$cat_key}} -{{/if}} - {{* Liste des matériels archivés *}} {{#list select=" @@ -50,16 +61,16 @@ WHERE cat.key = @TABLE.$$.category) AS "Catégorie" " type="equipment" - where="$$.status='archived' AND %s"|args:$condition + where="$$.status='archived' AND %s"|args:$cat_condition order=1 }}Configuration enregistrée.
{{/if}} -{{* lecture config (défaut ou enregistrée) *}} -{{:include file="./_get_config.html" keep="config, directions"}} +{{* 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 *}} +{{#foreach from=$directions key="direction"}} + {{:assign var="nature" from="config_defaut.%ss"|args:$direction}} + {{#foreach from=$nature item="elem"}} + {{:assign var="default_keys." value=$key}} + {{/foreach}} +{{/foreach}} {{#foreach from=$directions key="direction" item="item"}} {{* types de mouvements qui ne peuvent être supprimés *}} {{#load type="movement" where="$$.direction='%s'"|args:$direction group="$$.operation"}} - {{:assign var="op_label" from="config.%s_nature.%s.label"|args:$direction:$operation}} - {{:assign var="locked_%ss."|args:$direction value=$op_label}} + {{:assign var="locked." value=$operation}} {{/load}}{{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}}
{{/if}} + + diff --git a/config/delete_movement_type.html b/config/delete_movement_type.html index 4f0ddaa..801f821 100644 --- a/config/delete_movement_type.html +++ b/config/delete_movement_type.html @@ -10,16 +10,28 @@ {{* lecture config (défaut ou enregistrée) *}} -{{:include file="../_get_config.html" keep="config, directions"}} +{{:include file="../_get_config.html" keep="config_defaut, config, directions"}} + +{{if ! $directions|has_key:$_GET.dir}} + {{:error message="Direction « %s » inconnue !"|args:$_GET.dir}} +{{/if}} + +{{* interdire la suppression 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 supprimé"}} +{{/if}} {{#form on="delete"}} {{#foreach from=$directions key="direction"}} {{:assign var="nature" from="config.%s_nature"|args:$direction}} - {{#foreach from=$nature key="key"}} + {{#foreach from=$nature key="key" item="elem"}} {{if $_GET.dir == $direction && $key != $_GET.op_key || $_GET.dir != $direction}} + {{:assign var="%s_nature"|args:$direction value=$elem}} {{:assign var="%s_nature.key"|args:$direction value=$key}} - {{:assign var="%s_nature.label"|args:$direction value=$label}} - {{:assign var="%s_nature.type"|args:$direction value=$type}} {{:assign var="%s_natures."|args:$direction from="%s_nature"|args:$direction}} {{/if}} {{/foreach}} diff --git a/config/misc.html b/config/misc.html index d49ef65..7034c04 100644 --- a/config/misc.html +++ b/config/misc.html @@ -2,31 +2,35 @@ {{#restrict block=true section="accounting" level="write"}}{{/restrict}} -{{:admin_header title="Configuration" current="module_equipment"}} - {{#form on="save"}} + {{* vérifier la validité 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" - loan_duration=$_POST.loan_duration + key="config" + loan_duration=$_POST.loan_duration }} + {{/form}} -{{* barre de navigation *}} +{{: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 (défaut ou enregistrée) *}} +{{* lecture config *}} {{:include file="../_get_config.html" keep="loan_duration"}}