Add visual worker calendar and floating lunch break system

- Monthly calendar grid per worker with colour-coded day status
- Override types: vacation, sick, custom hours, other, day-off
- Date-range override support via modal
- Floating 30-min lunch break: finds slot closest to preferred time
  within configurable window, adapts to existing bookings
- Lunch break only applies for shifts >= 6 hours
- Lunch slot shown in admin calendar; blocked in booking availability
- DB migrations: absence_type/note on worker_schedule_overrides,
  lunch_window_start/end/preferred_time on workers

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-04 13:34:58 +01:00
co-authored by Claude Sonnet 4.6
parent 993e0cb8b1
commit b8f4f67b23
7 changed files with 771 additions and 47 deletions
+4
View File
@@ -89,6 +89,10 @@ $route['workers'] = 'admin/workers';
$route['workers/add-worker'] = 'admin/add_worker';
$route['workers/update-worker/(:any)'] = 'admin/update_worker/$1';
$route['workers/worker-process'] = 'admin/worker_process';
$route['workers/worker-calendar'] = 'admin/worker_calendar';
$route['workers/worker-calendar/(:any)'] = 'admin/worker_calendar/$1';
$route['workers/store-calendar-override'] = 'admin/store_calendar_override';
$route['workers/delete-calendar-override'] = 'admin/delete_calendar_override';
$route['bookings'] = 'admin/bookings';
$route['bookings/add-booking'] = 'admin/add_booking';