{{* -*- 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 *}}
Demande de réservation de matériel : {{$equipment.name}} ({{$category.name}})
{{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}}
{{#foreach from=$_resa_lignes}} - du {{$loan_date|date_long}} au {{$return_date|date_long}}
{{/foreach}}
{{: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*}}

{{:button type="submit" name="save" label="Étape suivante" shape="right" class="main"}}