# Días festivos y tareas

En **Configuración → Días festivos**, el administrador de la cuenta elige el año, añade fecha y nombre de cada descanso y guarda. La lista aplica a todas las empresas de su cuenta. Se abre inicialmente el año actual y permite registrar otros años. Fechas repetidas o ajenas al año seleccionado se rechazan. Registrar la fecha efectiva del descanso cuando un festivo se traslada.

- Las fechas manuales de inicio y vencimiento deben ser laborables. El servidor rechaza sábados, domingos y festivos.
- Los plazos de plantillas se cuentan en días laborables. Día 0 es la fecha base, o el siguiente laborable si la base cae en descanso. Por ejemplo, viernes +1 vence el lunes; si ese lunes es festivo, vence el martes.
- Las repeticiones semanales, mensuales y anuales pasan al siguiente laborable cuando corresponde. Conservan el calendario nominal para no desplazar permanentemente las siguientes repeticiones.
- Las horas se distribuyen entre los días laborables del intervalo y se mantiene el límite de 8 horas por persona y día, sumando sus tareas.
- Las tareas existentes no se reprograman automáticamente al editar los festivos; las nuevas asignaciones y ediciones usan la lista actual.
- Los avisos de vencimiento existentes siguen mostrando días calendario; esta configuración afecta la planificación y asignación del trabajo.

## Archivos para hosting

- `database/migrations/2026_09_12_000003_create_account_holidays.php`
- `app/Services/Work/BusinessCalendar.php`
- `app/Services/Work/WorkTaskService.php`
- `app/Services/Work/WorkTaskDailyCapacity.php`
- `app/Filament/Pages/Holidays.php`
- `app/Filament/Pages/UserTasks.php`
- `resources/views/filament/pages/holidays.blade.php`
- `resources/views/filament/navigation/geolocalizacion-flyout.blade.php`

Ejecutar desde la raíz del proyecto:

```sh
php artisan migrate --force
php artisan optimize:clear
php artisan queue:restart
```

Los festivos no se cargan automáticamente: ingresarlos para los años que se van a planificar. No es necesario repetir sábados ni domingos. Validación: 59 pruebas, 492 aserciones del módulo de tareas.
