@extends('layouts.app') @section('title', 'Disponibilités - Prestataire') @php $days = [ 1 => 'Lundi', 2 => 'Mardi', 3 => 'Mercredi', 4 => 'Jeudi', 5 => 'Vendredi', 6 => 'Samedi', 0 => 'Dimanche', ]; $availabilitiesByDay = $weeklyAvailability->keyBy('day_of_week'); $backUrl = session('availability_setup_return_url') ?: route('prestataire.dashboard'); $initialActiveDays = 0; $initialWeeklyHours = 0; $initialBreakDays = 0; foreach ($days as $dayNumber => $dayName) { $availability = $availabilitiesByDay->get($dayNumber); $isActive = old("days.$dayNumber.is_active", $availability?->is_active ? '1' : null) == '1'; $startValue = old("days.$dayNumber.start_time", $availability?->start_time?->format('H:i') ?: '09:00'); $endValue = old("days.$dayNumber.end_time", $availability?->end_time?->format('H:i') ?: '17:00'); $breakStartValue = old("days.$dayNumber.break_start", $availability?->break_start?->format('H:i') ?: ''); $breakEndValue = old("days.$dayNumber.break_end", $availability?->break_end?->format('H:i') ?: ''); if (! $isActive || ! $startValue || ! $endValue) { continue; } $initialActiveDays++; [$startHour, $startMinute] = array_map('intval', explode(':', $startValue)); [$endHour, $endMinute] = array_map('intval', explode(':', $endValue)); $minutes = (($endHour * 60) + $endMinute) - (($startHour * 60) + $startMinute); if ($breakStartValue && $breakEndValue) { [$breakStartHour, $breakStartMinute] = array_map('intval', explode(':', $breakStartValue)); [$breakEndHour, $breakEndMinute] = array_map('intval', explode(':', $breakEndValue)); $minutes -= ((($breakEndHour * 60) + $breakEndMinute) - (($breakStartHour * 60) + $breakStartMinute)); $initialBreakDays++; } $initialWeeklyHours += max(0, $minutes); } $initialWeeklyHours = round($initialWeeklyHours / 60, 1); $initialSummary = $initialActiveDays > 0 ? $initialActiveDays . ' jour(s) ouverts • ' . str_replace('.', ',', (string) $initialWeeklyHours) . ' h / semaine' : 'Aucune disponibilité active'; @endphp @push('styles') @endpush @section('content')
Retour
Planning hebdomadaire

Disponibilités

Activez seulement les jours utiles, posez vos horaires en 2 minutes et gardez une vue claire sur votre semaine.

Jours ouverts {{ $initialActiveDays }} sur 7 jours
Charge hebdo {{ str_replace('.', ',', (string) $initialWeeklyHours) }} h temps net estimé
Jours avec pause {{ $initialBreakDays }} pause déjeuner incluse
@if (session('success'))
{{ session('success') }}
@endif @if (session('warning'))
Attention. {{ session('warning') }} @if (session('availability_setup_return_url')) @endif
@endif @if (session('error'))
{{ session('error') }}
@endif

Raccourcis utiles

Choisissez un modèle puis ajustez jour par jour.

Réservation plus simple
@csrf @method('PUT')
@foreach ($days as $dayNumber => $dayName) @php $availability = $availabilitiesByDay->get($dayNumber); $isActive = old("days.$dayNumber.is_active", $availability?->is_active ? '1' : null) == '1'; $startValue = old("days.$dayNumber.start_time", $availability?->start_time?->format('H:i') ?: '09:00'); $endValue = old("days.$dayNumber.end_time", $availability?->end_time?->format('H:i') ?: '17:00'); $breakStartValue = old("days.$dayNumber.break_start", $availability?->break_start?->format('H:i') ?: ''); $breakEndValue = old("days.$dayNumber.break_end", $availability?->break_end?->format('H:i') ?: ''); $slotDuration = old("days.$dayNumber.slot_duration", $availability?->slot_duration ?? 60); $dayMeta = $isActive ? trim($startValue . ' - ' . $endValue . ($breakStartValue && $breakEndValue ? ' • pause ' . $breakStartValue . ' - ' . $breakEndValue : '')) : 'Fermé'; @endphp

{{ $dayName }}

{{ $dayMeta }}

@endforeach
@endsection @push('scripts') @endpush