{{ (currentTab || '').replace('editor-', '').replace('-', ' ') }}
{{ appointmentsTotal || appointments.length }} RDV
⚠️

Votre compte n'est rattaché à aucune fiche barbier.

Votre planning, votre écran fauteuil et vos statistiques resteront vides tant que le gérant n'aura pas rattaché votre compte à votre fiche (Paramètres → Comptes & accès).

{{ modalTitle }}

Planification & multi-prestations

Sélectionnez l'événement à programmer

Création ou édition d'une fiche client

Blocage de planning pour un coiffeur

points crédités sur sa cagnotte (palier à {{ salonSettings.loyaltyRewardThreshold || 100 }} pts)

Historique des Dettes

Client: {{ selectedCustomer.first_name }} {{ selectedCustomer.last_name }}

{{ parseFloat(selectedCustomer.debt_amount || 0).toFixed(2) }} €
{{ debt.service_name || 'Rendez-vous' }} ({{ new Date(debt.start_time).toLocaleDateString('fr-FR') }})
Ajouté le {{ new Date(debt.created_at).toLocaleDateString('fr-FR') }}
{{ debt.amount }} €
{{ debt.status === 'paid' ? 'Payé' : 'Impayé' }}

Ce client n'a aucun historique de dette.

{{ selectedCustomer.first_name }} {{ selectedCustomer.last_name }}

{{ selectedCustomer.phone || 'Pas de téléphone' }} {{ selectedCustomer.email || 'Pas d’email' }}
📍 {{ selectedCustomer.city }} 🎂 {{ new Date(selectedCustomer.birth_date).toLocaleDateString('fr-FR') }}
{{ selectedCustomer.total_appointments || 0 }} RDV {{ selectedCustomer.total_spent || 0 }} € dépensés
🏆

Club Fidélité

Palier : {{ salonSettings.loyaltyRewardThreshold || 100 }} pts ({{ salonSettings.loyaltyRewardDescription || 'Coupe Offerte' }})

{{ selectedCustomer.loyalty_points || 0 }} pts
🎁 Récompense disponible ! Encore {{ (salonSettings.loyaltyRewardThreshold || 100) - (selectedCustomer.loyalty_points || 0) }} pts

Dettes & Pénalités

Rendez-vous non honorés (No-Shows)

{{ parseFloat(selectedCustomer.debt_amount).toFixed(2) }} €
{{ debt.service_name || 'Rendez-vous' }} ({{ new Date(debt.start_time).toLocaleDateString('fr-FR') }})
Ajouté le {{ new Date(debt.created_at).toLocaleDateString('fr-FR') }}
{{ debt.amount }} €
{{ debt.status === 'paid' ? 'Payé' : 'Impayé' }}

Historique des Visites

Aucune réservation pour ce client.

{{ apt.service_name }}

{{ formatDateTime(apt.start_time) }} • {{ apt.barber_first_name }}

{{ apt.price }} €
{{ apt.status === 'completed' ? 'Terminé' : (apt.status === 'cancelled' ? 'Annulé' : (apt.status === 'no_show' ? 'Non-Venu' : 'Confirmé')) }}

L'ordre d'apparition de cette catégorie dans le formulaire client.

Le client devra obligatoirement sélectionner un service dans cette catégorie pour continuer.

Permet au client de sélectionner plusieurs prestations dans cette étape.

Contrôle si le prix des prestations est visible pour le client dans cette étape.

Cliquez sur l'avatar ou glissez une photo
JPG, PNG, WEBP · Max 5 Mo

{{ form.color || '#0f172a' }}
{{ formatDateFull(selectedAppointment.start_time) }}
{{ formatTimeRange(selectedAppointment.start_time, selectedAppointment.end_time) }}
Durée : {{ getDurationMinutes(selectedAppointment.start_time, selectedAppointment.end_time, selectedAppointment.duration_minutes) }} min
No-Show Confirmé
{{ selectedAppointment.barber_first_name }} {{ selectedAppointment.barber_last_name }}
Client
{{ (selectedAppointment.customer_first_name ? selectedAppointment.customer_first_name.charAt(0) : 'C').toUpperCase() }}

{{ selectedAppointment.customer_first_name }} {{ selectedAppointment.customer_last_name }}

{{ selectedAppointment.customer.loyalty_points }} pts
Prestation
{{ selectedAppointment.service_name }}
{{ Number(selectedAppointment.price || 0).toFixed(2) }} €
{{ selectedAppointment.duration_minutes || 30 }} min
Note client :

{{ selectedAppointment.client_notes }}

Absence : {{ selectedUnavailability.barber_first_name }} {{ selectedUnavailability.barber_last_name }}

{{ formatDateFull(selectedUnavailability.start_time) }}

Horaire : {{ formatTimeRange(selectedUnavailability.start_time, selectedUnavailability.end_time) }}
Motif :

{{ selectedUnavailability.reason }}

Créneau sélectionné {{ formatDateTime(tempDates.start_time) }} → {{ formatDateTime(tempDates.end_time) }}
Total : {{ totalSelectedServicesPrice.toFixed(2) }} € ({{ totalSelectedServicesDuration }} min)
{{ serv.name }} ({{ Number(serv.price).toFixed(2) }}€)

{{ selectedFormSubmission.form_name }}

Soumis le {{ new Date(selectedFormSubmission.created_at).toLocaleString('fr-FR') }}

{{ selectedFormSubmission.form_type }}
{{ key }}

{{ val }}

✓ !

{{ job.progress || 0 }}% · Vous pouvez continuer à travailler, une notification vous préviendra.

{{ job.result.summary }}

Voir le site