118 lines
4.6 KiB
HTML
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> |