Files
equipment_resa/_resa_inventory.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>