@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')