Files
equipment_resa/_web_resa.html
T

118 lines
4.6 KiB
HTML

{{* -*- brindille -*- *}}
{{*
Réservation d'un matériel (membre et non-membre)
*}}
{{*:debug*}}
{{:assign equipment_key=$_GET.key|trim}}
{{* Charge le matériel *}}
{{#load module="equipment" key=$_GET.key assign="equipment"}}
{{else}}
{{:error message="Pas de matériel avec la clé %s"|args:$equipment_key}}
{{/load}}
{{if !$is_logged}}
{{* Invité Ano *}}
{{:assign _name=""}}
{{else}}
{{:assign _member_adress="%s %s %s"|args:$logged_user.adresse:$logged_user.code_postal:$logged_user.ville}}
{{:assign _disabled="readonly"}}
{{:assign _name=$logged_user._name}}
{{*:debug logged_user=$logged_user*}}
{{*$logged_user._name}}{{$logged_user._email}}{{$logged_user._number}} {{$logged_user.telephone}}
{{'05/05/2026'|relative_date:false*}}
{{/if}}
{{*
-------------------- Enregistrer la réservation --------------------
*}}
{{#form on="save"}}
{{* Vérifier la date *}}
{{:assign loan_date=$_POST.loan_date|parse_date}}
{{:include file="./_resa_date_check.html" loan_date=$loan_date}}
{{* Vérifier la date trop courte (J+12 heures) ou dans le passé *}}
{{if $loan_date|strtotime < "%d+%d"|math:$now:43200}}
{{:assign _date=$loan_date|date:'d/m/Y'}}
{{:error message="Impossible de saisir une date dans le passé (%s) ou pour le jour même !"|args:$_date}}
{{/if}}
{{* Enregistrer la réservation *}}
{{:assign resa_key=""|uuid}}
{{:save assign_new_id="rid"
key=$resa_key
validate_schema="./reservation.schema.json"
type="reservation"
member=$logged_user._number|intval|or:null
name=$_POST.name|trim
contact=$_POST.contact|trim
email=$_POST.email|trim
address=$_POST.address|trim|or:null
equipment=$equipment_key
date=$now|date_short|parse_date
loan_date=$_POST.loan_date|parse_date
return_date=$_POST.return_date|parse_date
amount=$_POST.amount|intval
comment=$_POST.comment|trim|or:null
secret=$_POST.secret|trim|or:null
status=$_POST.status|trim|or:null
}}
{{if !$is_logged}}
{{:redirect url="./equipment.html?ok=1&fonc=confirm_resa&rid=%s"|args:$rid}}
{{else}}
{{:redirect url="./index.html?ok=1&fonc=confirm_resa&rid=%s"|args:$rid}}
{{/if}}
{{/form}}
{{:form_errors}}
{{*
-------------------- Préparer la saisie --------------------
*}}
{{* récupérer les infos de la catégorie *}}
{{:assign category_key=$equipment.category}}
{{#load module="equipment" type="category" key=$category_key assign="category"}}{{/load}}
{{*:debug equi=$category*}}
{{* Dates déjà réservées pour ce matériel *}}
{{* Liste des réservations *}}
{{:assign today=$now|date:'Y-m-d'}}
{{:include file="_resa_load.html" st_condition_cal="$$.equipment='%s' AND $$.status IN ('en attente','acceptée') AND $$.return_date > '%s'"|args:$equipment_key:$today keep="_resa_lignes"}}
{{* formulaire de réservation de matériel *}}
<form method="post" action="">
<fieldset class="entree">
<legend>Demande de réservation de matériel : {{$equipment.name}} ({{$category.name}})</legend>
<dl>
{{if !$is_logged}}
{{:input type="text" name="name" label="Nom & Prénom" default=$_name required=true}}
{{else}}
{{:input type="hidden" name="name" label="Nom & Prénom" default=$_name required=true}} {{$_name}}
{{/if}}
{{:input type="text" name="email" label="Courriel" default=$logged_user._email required=true}}
{{:input type="text" name="contact" label="Téléphone" default=$logged_user.telephone}}
{{:input type="textarea" cols=40 rows=2 name="address" label="Adresse" default=$_member_adress|trim}}
{{:input type="hidden" name="equipment" required=true value=$equipment_key}}
{{:input type="date" name="loan_date" size="12" label="Date souhaitée" help="Merci de vérifier les dates déjà réservées ci-dessous avant de faire votre choix :" required=true}}
<dd>
{{#foreach from=$_resa_lignes}}
<span>- du {{$loan_date|date_long}} au {{$return_date|date_long}}</span><br>
{{/foreach}}
</dd>
{{:input type="date" name="return_date" label="Date de retour prévue" required=true}}
{{:input type="number" name="amount" label="Quantité souhaitée" min=1 required=true default=1}}
{{:input type="textarea" cols=40 rows=2 name="comment" label="Commentaire additionnel" required=false}}
{{if !$is_logged}}
{{:input type="text" name="secret" label="Votre code secret" help="Permet de retrouver votre réservation pour l'annuler ou la modifier." required=true}}
{{/if}}
{{:input type="hidden" name="status" required=true default="en attente"}}
{{*:captcha html=true verify=true*}}
</dl>
</fieldset>
<p class="submit">
{{:button type="submit" name="save" label="Étape suivante" shape="right" class="main"}}
</p>
</form>