Compare commits

...

2 commits

Author SHA1 Message Date
Jean-Christophe Engel
ca7b21bdea Ajout onglets prêts/locations aux membres 2026-02-23 17:53:38 +01:00
Jean-Christophe Engel
fc802e7449 Différencier filtres par membre 2026-02-23 17:53:19 +01:00
8 changed files with 184 additions and 58 deletions

View file

@ -5,14 +5,20 @@
*}} *}}
{{* filtrer selon la catégorie *}} {{* 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}} {{if $_GET.cat_key == null}}
{{:assign selected_category=$module.config.stock_cat_key}} {{:assign selected_category=$user_filters.stock_cat_key}}
{{elseif $_GET.cat_key == -1}}
{{:assign selected_category=null}}
{{:save key="config" stock_cat_key=null}}
{{else}} {{else}}
{{:assign selected_category=$_GET.cat_key}} {{if $_GET.cat_key == -1}}
{{:save key="config" stock_cat_key=$selected_category}} {{: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}} {{/if}}
{{* condition de filtrage *}} {{* condition de filtrage *}}
@ -25,13 +31,16 @@
{{* filtrer selon appartenance *}} {{* filtrer selon appartenance *}}
{{if $_GET.prop == null}} {{if $_GET.prop == null}}
{{:assign selected_prop=$module.config.stock_prop}} {{:assign selected_prop=$user_filters.stock_prop}}
{{elseif $_GET.prop == -1}}
{{:assign selected_prop=null}}
{{:save key="config" stock_prop=null}}
{{else}} {{else}}
{{:assign selected_prop=$_GET.prop}} {{if $_GET.prop == -1}}
{{:save key="config" stock_prop=$_GET.prop}} {{: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}}
{{if $selected_prop == null}} {{if $selected_prop == null}}

View file

@ -30,11 +30,13 @@
<ul class="sub"> <ul class="sub">
<li {{if $subcurrent == 'encours'}} class="current"{{/if}}><a href="{{$module.url}}loan_history.html?output_type=loan">En cours</a></li> <li {{if $subcurrent == 'encours'}} class="current"{{/if}}><a href="{{$module.url}}loan_history.html?output_type=loan">En cours</a></li>
<li {{if $subcurrent == 'historique'}} class="current"{{/if}}><a href="{{$module.url}}loan_movements.html?output_type=loan">Historique</a></li> <li {{if $subcurrent == 'historique'}} class="current"{{/if}}><a href="{{$module.url}}loan_movements.html?output_type=loan">Historique</a></li>
<li {{if $subcurrent == 'membres'}} class="current"{{/if}}><a href="{{$module.url}}member_loan.html?output_type=loan">Membres</a></li>
</ul> </ul>
{{elseif $current == 'location'}} {{elseif $current == 'location'}}
<ul class="sub"> <ul class="sub">
<li {{if $subcurrent == 'encours'}} class="current"{{/if}}><a href="{{$module.url}}loan_history.html?output_type=rent">En cours</a></li> <li {{if $subcurrent == 'encours'}} class="current"{{/if}}><a href="{{$module.url}}loan_history.html?output_type=rent">En cours</a></li>
<li {{if $subcurrent == 'historique'}} class="current"{{/if}}><a href="{{$module.url}}loan_movements.html?output_type=rent">Historique</a></li> <li {{if $subcurrent == 'historique'}} class="current"{{/if}}><a href="{{$module.url}}loan_movements.html?output_type=rent">Historique</a></li>
<li {{if $subcurrent == 'membres'}} class="current"{{/if}}><a href="{{$module.url}}member_loan.html?output_type=rent">Membres</a></li>
</ul> </ul>
{{elseif $current == 'archives'}} {{elseif $current == 'archives'}}
{{if $subsubcurrent == 'historique'}} {{if $subsubcurrent == 'historique'}}

View file

@ -55,14 +55,20 @@
{{:include file="./_get_config.html" keep="config"}} {{:include file="./_get_config.html" keep="config"}}
{{* filtrer selon appartenance *}} {{* filtrer selon appartenance *}}
{{:assign saved_filters=$module.config.filters}}
{{:assign var="user_filters" from="saved_filters.%s"|args:$logged_user.id}}
{{if $_GET.prop == null}} {{if $_GET.prop == null}}
{{:assign selected_prop=$module.config.eqpmt_hist_prop}} {{:assign selected_prop=$user_filters.eqpmt_hist_prop}}
{{elseif $_GET.prop == -1}}
{{:assign selected_prop=null}}
{{:save key="config" eqpmt_hist_prop=null}}
{{else}} {{else}}
{{:assign selected_prop=$_GET.prop}} {{if $_GET.prop == -1}}
{{:save key="config" eqpmt_hist_prop=$_GET.prop}} {{:assign selected_prop=null}}
{{else}}
{{:assign selected_prop=$_GET.prop}}
{{/if}}
{{:assign var="user_filters.eqpmt_hist_prop value=$selected_prop}}
{{:assign var="saved_filters.%s"|args:$logged_user.id value=$user_filters}}
{{:save key="config" filters=$saved_filters}}
{{/if}} {{/if}}
{{* déterminer les types de mouvements selon l'appartenance du matériel *}} {{* déterminer les types de mouvements selon l'appartenance du matériel *}}

View file

@ -14,14 +14,20 @@
{{:include file="./_get_config.html" keep="config"}} {{:include file="./_get_config.html" keep="config"}}
{{* filtrer selon la catégorie *}} {{* 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}} {{if $_GET.cat_key == null}}
{{:assign selected_category=$module.config.hist_cat_key}} {{:assign selected_category=$user_filters.hist_cat_key}}
{{elseif $_GET.cat_key == -1}}
{{:assign selected_category=null}}
{{:save key="config" hist_cat_key=null}}
{{else}} {{else}}
{{:assign selected_category=$_GET.cat_key}} {{if $_GET.cat_key == -1}}
{{:save key="config" hist_cat_key=$selected_category}} {{: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}} {{/if}}
{{* condition de filtrage *}} {{* condition de filtrage *}}
@ -37,13 +43,16 @@
{{* filtrer selon appartenance *}} {{* filtrer selon appartenance *}}
{{if $_GET.prop == null}} {{if $_GET.prop == null}}
{{:assign selected_prop=$module.config.hist_prop}} {{:assign selected_prop=$user_filters.hist_prop}}
{{elseif $_GET.prop == -1}}
{{:assign selected_prop=null}}
{{:save key="config" hist_prop=null}}
{{else}} {{else}}
{{:assign selected_prop=$_GET.prop}} {{if $_GET.prop == -1}}
{{:save key="config" hist_prop=$_GET.prop}} {{: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}} {{/if}}
{{* déterminer les types de mouvements selon l'appartenance du matériel *}} {{* déterminer les types de mouvements selon l'appartenance du matériel *}}

View file

@ -38,26 +38,24 @@
{{/if}} {{/if}}
{{/if}} {{/if}}
{{* lecture config (défaut ou enregistrée) *}} {{* lecture config *}}
{{:include file="./_get_config.html" keep="config"}} {{:include file="./_get_config.html" keep="config"}}
{{* filtrer selon la catégorie *}} {{* 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}} {{if $_GET.cat_key == null}}
{{:assign var="selected_category" from="module.config.%s_hist_cat_key"|args:$_GET.output_type}} {{:assign var="selected_category" from="user_filters.%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}}
{{else}} {{else}}
{{:assign selected_category=$_GET.cat_key}} {{if $_GET.cat_key == -1}}
{{if $_GET.output_type == "loan"}} {{:assign selected_category=null}}
{{:save key="config" loan_hist_cat_key=$selected_category}} {{else}}
{{elseif $_GET.output_type == "rent"}} {{:assign selected_category=$_GET.cat_key}}
{{:save key="config" rent_hist_cat_key=$selected_category}}
{{/if}} {{/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}} {{/if}}
{{* condition de filtrage *}} {{* condition de filtrage *}}

View file

@ -15,7 +15,6 @@
{{/if}} {{/if}}
{{:admin_header title="Historique des %ss"|args:$label custom_css="./style.css" current="module_equipment"}} {{: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"}} {{:include file="./_nav.html" current="%s"|args:$label subcurrent="historique"}}
{{* {{*
@ -47,22 +46,20 @@
{{:include file="./_get_config.html" keep="config"}} {{:include file="./_get_config.html" keep="config"}}
{{* filtrer selon la catégorie *}} {{* 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}} {{if $_GET.cat_key == null}}
{{:assign var="selected_category" from="module.config.%s_cat_key"|args:$_GET.output_type}} {{:assign var="selected_category" from="user_filters.%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}}
{{else}} {{else}}
{{:assign selected_category=$_GET.cat_key}} {{if $_GET.cat_key == -1}}
{{if $_GET.output_type == "loan"}} {{:assign selected_category=null}}
{{:save key="config" loan_cat_key=$selected_category}} {{else}}
{{elseif $_GET.output_type == "rent"}} {{:assign selected_category=$_GET.cat_key}}
{{:save key="config" rent_cat_key=$selected_category}}
{{/if}} {{/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}} {{/if}}
{{* condition de filtrage *}} {{* condition de filtrage *}}

101
member_loan.html Normal file
View file

@ -0,0 +1,101 @@
{{* -*- brindille -*- *}}
{{#restrict block=true section="accounting" level="write"}}{{/restrict}}
{{*
paramètres :
- id : id membre
*}}
{{if $_GET.output_type == "loan"}}
{{:assign label="prêt"}}
{{elseif $_GET.output_type == "rent"}}
{{:assign label="location"}}
{{else}}
{{:error message="Cette page n'existe pas !"}}
{{/if}}
{{:admin_header title="%ss aux membres"|args:$label|ucfirst custom_css="./style.css" current="module_equipment"}}
{{:include file="./_nav.html" current="%s"|args:$label subcurrent="membres"}}
{{* vérifier l'existence de la table du module *}}
{{#load limit="1"}}
{{:assign table_presente=true}}
{{else}}
{{:assign table_presente=false}}
{{/load}}
{{if $table_presente}}
{{:include file="./_get_config.html" keep="config"}}
{{* déterminer les types de mouvements *}}
{{#foreach from=$config.output_nature key="key"}}
{{if $type != 'temporaire'}}
{{:continue}}
{{/if}}
{{if $_GET.output_type == "loan" && $fee != 'payant'}}
{{:assign var="out_keys." value=$key|quote_sql}}
{{elseif $_GET.output_type == "rent" && $fee == 'payant'}}
{{:assign var="out_keys." value=$key|quote_sql}}
{{/if}}
{{/foreach}}
{{:assign out_keys=$out_keys|implode:","}}
{{:assign out_keys="("|cat:$out_keys|cat:")"}}
<div class="shortFormLeft">
<p class="help">{{$label|ucfirst}}s aux membres</p>
</div>
{{:assign premier=true}}
{{#select
nom, user, GROUP_CONCAT(mat_name) AS materiel, SUM(remain) AS quantite
FROM
(SELECT users.nom AS nom,
users.id AS user,
json_extract(mat.document, '$.name') AS mat_name,
json_extract(mvt.document, '$.amount') - IFNULL(SUM(json_extract(retour.document, '$.amount')), 0) AS remain
FROM !table AS mvt
INNER JOIN users ON json_extract(mvt.document, '$.user') = users.id
LEFT JOIN !table AS links ON mvt.key = json_extract(links.document, '$.temp_key')
LEFT JOIN !table AS retour ON retour.key = json_extract(links.document, '$.return')
INNER JOIN !table AS mat ON mat.key = json_extract(mvt.document, '$.equipment')
WHERE json_extract(mvt.document, '$.type') = 'movement'
AND json_extract(mvt.document, '$.operation') IN !op
GROUP BY mvt.key
HAVING remain != 0
)
GROUP BY user
ORDER BY nom
;
!table=$module.table
!op = $out_keys
}}
{{if $premier}}
<table class="list">
<thead>
<tr>
<td>Membre</td>
<td class="nombre">Quantité</td>
<td>Matériels</td>
</tr>
</thead>
<tbody>
{{:assign premier=false}}
{{/if}}
<tr>
<td>{{:link href="/admin/users/details.php?id=%s"|args:$user label="%s"|args:$nom}}</td>
<td class="nombre">{{$quantite}}</td>
<td>{{$materiel}}</td>
</tr>
{{else}}
<p class="block alert">Aucun mouvement.</p>
{{/select}}
</tbody>
</table>
{{else}}
<p class="block alert">Aucun mouvement.</p>
{{/if}}
{{:admin_footer}}

View file

@ -24,3 +24,7 @@
table.list > thead th[class~=nosort] a:hover { table.list > thead th[class~=nosort] a:hover {
background-color : rgba(var(--gSecondColor), 0.); background-color : rgba(var(--gSecondColor), 0.);
} }
.nombre {
text-align: right !important;
}