225 lines
7.8 KiB
HTML
225 lines
7.8 KiB
HTML
{{* -*- brindille -*- *}}
|
|
|
|
{{*
|
|
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=$user_filters.stock_cat_key}}
|
|
{{else}}
|
|
{{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}}
|
|
|
|
{{* filtrer selon appartenance *}}
|
|
{{if $_GET.prop == null}}
|
|
{{:assign selected_prop=$user_filters.stock_prop}}
|
|
{{else}}
|
|
{{if $_GET.prop == -1}}
|
|
{{:assign selected_prop=null}}
|
|
{{elseif $_GET.prop == 1 || $_GET.prop == 0}}
|
|
{{:assign selected_prop=$_GET.prop}}
|
|
{{elseif $_GET.prop == 1 || $_GET.prop == 0}}
|
|
{{:assign selected_prop=$_GET.prop}}
|
|
{{else}}
|
|
{{:assign selected_prop=$user_filters.stock_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 != 0"}}
|
|
{{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"|args:$key
|
|
}}
|
|
{{/load}}
|
|
|
|
<fieldset class="shortFormRight">
|
|
<legend>Filtrer par catégorie</legend>
|
|
{{:dropdown
|
|
title="Filtrer par catégorie"
|
|
options=$cat_options
|
|
value="%s"|args:$selected_category
|
|
}}
|
|
</fieldset>
|
|
|
|
{{: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"}}
|
|
|
|
<fieldset class="shortFormRight">
|
|
<legend>Filtrer par appartenance</legend>
|
|
{{:dropdown
|
|
title="Filtrer par appartenance"
|
|
options=$prop_options
|
|
value="%s"|args:$selected_prop
|
|
}}
|
|
</fieldset>
|
|
|
|
<p class="help">Inventaire des matériels présents dans l'association et réservations</p>
|
|
<p class="help">Légende : <br/>
|
|
{{:icon shape="check"}} : réservation acceptée<br/>
|
|
{{:icon shape="help"}} : réservation en attente de traitement<br/>
|
|
{{:icon shape="calendar"}} : réservation non traitée à temps (périmée) ou date de retour dépassée !<br/>
|
|
{{:icon shape="import"}} : date de retour échue !<br/>
|
|
{{:icon shape="export"}} : réservation en cours
|
|
</p>
|
|
|
|
|
|
{{* Liste des réservations *}}
|
|
{{:include file="_resa_load.html" st_condition="WHERE 1=1" st_condition_cal="1=1" keep="_resa_lignes"}}
|
|
|
|
{{* Liste de matériel *}}
|
|
{{#list
|
|
select="
|
|
$$.name AS 'Matériel' ;
|
|
(SELECT $$.name FROM @TABLE as cat WHERE cat.key = @TABLE.$$.category) AS 'Catégorie' ;
|
|
$$.stock AS 'Stock' ;
|
|
(SELECT COALESCE($$.notowned, 0)) AS 'Stock Temp.' ;
|
|
(SELECT $$.stock + COALESCE($$.notowned, 0)) AS 'Total' ;
|
|
$$.out AS 'Sorti' ;
|
|
(SELECT $$.stock + COALESCE($$.notowned, 0) - $$.out) AS 'Disponible';
|
|
(SELECT 0) AS 'Reservation(s)'
|
|
"
|
|
type="equipment"
|
|
where="$$.status <> 'archived' AND %s AND %s"|args:$cat_condition:$prop_condition
|
|
order=1
|
|
}}
|
|
{{:assign var=cat_name from=categories.%s|args:$category}}
|
|
|
|
{{* Charge les réservations pour le matériel *}}
|
|
{{:assign _resa_count=0}}
|
|
{{:assign _resa_status=null}}
|
|
|
|
{{#foreach from=$_resa_lignes}}
|
|
{{if $equipment == $key}}
|
|
{{if $status == "acceptée"}}
|
|
{{:assign var="_resa_status.%s"|args:$wres_key value=$status shape="check" href="reservation/resa_details.html?key=%s"|args:$wres_key}}
|
|
{{:assign var="_resa_count" value="%d+1"|math:$_resa_count|intval}}
|
|
{{elseif $status == "en cours"}}
|
|
{{:assign var="_resa_count" value="%d+1"|math:$_resa_count|intval}}
|
|
{{* Si date de retour est < now : matériel à récupérer ! *}}
|
|
{{if $return_date|strtotime < $now}}
|
|
{{*:debug return_date=$return_date|strtotime now=$now *}}
|
|
{{:assign var="_resa_status.%s"|args:$wres_key value="retour" shape="import" href="reservation/resa_details.html?key=%s"|args:$wres_key}}
|
|
{{else}}
|
|
{{:assign var="_resa_status.%s"|args:$wres_key value="retour" shape="export" href="reservation/resa_details.html?key=%s"|args:$wres_key}}
|
|
{{/if}}
|
|
{{elseif $status == "en attente" }}
|
|
{{* Vérifie la date *}}
|
|
{{*:debug date=$loan_date|strtotime now=$now key=$wres_key*}}
|
|
{{if $loan_date|strtotime < $now}}
|
|
{{:assign var="_resa_status.%s"|args:$wres_key value="périmée" shape="calendar" href="reservation/resa_details.html?key=%s"|args:$wres_key}}
|
|
{{else}}
|
|
{{:assign var="_resa_status.%s"|args:$wres_key value=$status shape="help" href="reservation/resa_details.html?key=%s"|args:$wres_key}}
|
|
{{/if}}
|
|
{{:assign var="_resa_count" value="%d+1"|math:$_resa_count|intval}}
|
|
{{*elseif $equipment_resa.status == "refusée" || $equipment_resa.status == "archivée"}}
|
|
{{:assign var="_resa_status.%s"|args:$wres_key value=null href=null}}
|
|
{{:assign var="_resa_count" value="%d-1"|math:$_resa_count|intval*}}
|
|
{{/if}}
|
|
{{/if}}
|
|
{{/foreach}}
|
|
<tr>
|
|
{{if $selected_prop == null}}
|
|
{{:assign prop=""}}
|
|
{{else}}
|
|
{{:assign prop="&prop=%s"|args:$selected_prop}}
|
|
{{/if}}
|
|
|
|
{{* Valeur prop/temp en fonction de l'appartenance de l'objet *}}
|
|
{{if $stock >= 1}}
|
|
{{:assign prop=1}}
|
|
{{else}}
|
|
{{:assign prop=0}}
|
|
{{/if}}
|
|
<td>
|
|
{{if $is_admin}}
|
|
{{:link href="equipment_history.html?key=%s&prop=%s"|args:$key:$prop label=$name}}
|
|
{{else}}
|
|
{{:link href="index.html?key=%s&prop=%s&fonc=voir"|args:$key:$prop label=$name}}
|
|
{{/if}}
|
|
</td>
|
|
<td>{{$cat_name}}</td>
|
|
<td class="num">{{$stock}}</td>
|
|
<td class="num">{{$col4}}</td>
|
|
<td class="num">{{$col5}}
|
|
<td class="num">{{$out}}</td>
|
|
<td class="num">{{$col7}}</td>
|
|
{{*:debug _eq_resa_status=$_resa_status*}}
|
|
{{if $_resa_count > 0}}
|
|
<td class="num">
|
|
{{#foreach from=$_resa_status key="key" item="value"}}
|
|
{{*$key}} - {{$value.value}} - {{$href*}}
|
|
{{if $value.value == "acceptée" || $value.value == "en attente" || $value.value == "périmée" || $value.value == "retour"}}
|
|
{{if $is_admin}}
|
|
{{*:linkbutton href=$href label=$value.value shape=$shape*}}
|
|
{{:linkbutton href=$href shape=$shape}}
|
|
{{else}}
|
|
{{$_resa_count}}
|
|
{{/if}}
|
|
{{/if}}
|
|
{{/foreach}}
|
|
</td>
|
|
{{else}}
|
|
<td class="num">{{$col8}}</td>
|
|
{{/if}}
|
|
<td class="actions">
|
|
{{if $is_admin}}
|
|
{{:linkbutton label="Mouvements" href="equipment_history.html?key=%s&prop=%d"|args:$key:$prop shape="table"}}
|
|
{{:linkbutton label="Modifier" href="modify_equipment.html?key=%s&prop=%d"|args:$key:$prop shape="edit" target="_dialog"}}
|
|
{{else}}
|
|
{{if $stock >= 1}}
|
|
{{:linkbutton label="Réserver" href="index.html?key=%s&fonc=resa"|args:$key shape="table"}}
|
|
{{else}}
|
|
{{:linkbutton label="Contactez nous" href="/contact.html?key=%s&fonc=resa"|args:$key shape="mail" target="_dialog"}}
|
|
{{/if}}
|
|
{{/if}}
|
|
</td>
|
|
</tr>
|
|
{{else}}
|
|
<p class="block alert">Aucun matériel.</p>
|
|
{{/list}}
|
|
|
|
<script type="text/javascript" src="scripts.js"></script>
|
|
<script type="text/javascript">
|
|
(function () {
|
|
let table = document.querySelector("table[class=list]");
|
|
if (table != null) {
|
|
disableColumSort(table);
|
|
}
|
|
})();
|
|
</script> |