# Selección de tareas de plantillas con aprobación

Los operadores con acceso al módulo de tareas y empresas asignadas pueden abrir «Plantillas». Pueden consultar las plantillas de su cuenta, seleccionar una empresa a su alcance, indicar la fecha base y marcar las tareas que necesitan (una, varias o todas).

«Seleccionar tareas y solicitar» registra una solicitud pendiente; no crea tareas. El operador puede consultar su estado desde Plantillas. El administrador de la empresa o de la cuenta ve las solicitudes en Aprobaciones; el menú indica cuántas solicitudes de plantillas están pendientes.

La revisión muestra la empresa, el solicitante, las tareas seleccionadas, instrucciones, fechas, horas estimadas, prioridad y repetición. La solicitud conserva una copia de esos datos; los cambios posteriores de la plantilla no alteran lo que el administrador revisa.

Al aprobar, se crean exclusivamente las tareas seleccionadas, con el solicitante como responsable y único asignado. La creación queda auditada a nombre del administrador que aprobó. Se conservan las validaciones de calendario, jornada y capacidad existentes. Si alguna tarea falla, se revierte toda la creación y la solicitud sigue pendiente. El administrador puede rechazarla indicando un motivo, para que el operador presente otra solicitud corregida.

Los operadores no pueden crear o editar plantillas, aplicar grupos directamente ni aprobar solicitudes. El administrador de la cuenta conserva la asignación directa a empresas existente. Los administradores solo revisan solicitudes de empresas a las que tienen acceso y no pueden aprobar solicitudes propias. Al aprobar se vuelve a comprobar que el operador esté activo y siga teniendo acceso a la empresa.

## Producción

Subir los siguientes archivos:

- `database/migrations/2026_09_13_000009_create_template_assignment_requests.php`
- `app/Models/Work/TemplateAssignmentRequest.php`
- `app/Models/Work/WorkTaskTemplate.php`
- `app/Services/Work/TemplateAssignmentService.php`
- `app/Services/Work/WorkTaskAccess.php`
- `app/Filament/Pages/UserTasks.php`
- `resources/views/filament/navigation/user-tasks-menu.blade.php`
- `resources/views/filament/pages/user-tasks.blade.php`
- `resources/views/filament/pages/partials/template-assignment-requests.blade.php`

Desde la raíz del proyecto en cPanel:

```sh
php artisan migrate --path=database/migrations/2026_09_13_000009_create_template_assignment_requests.php --force
php artisan view:clear
```

La migración crea una tabla nueva y no modifica tareas ni plantillas existentes. No requiere procesos programados ni configuración adicional de correo.

## Validación

Pruebas de selección de 10 tareas entre 20, revisión por un administrador de empresa, asignación exclusiva al solicitante, copia fija de la selección, reintentos sin duplicados, rechazo con motivo, selecciones inválidas, empresa ajena, acceso revocado, permisos de lectura y administración, y reversión completa ante exceso de capacidad.

Resultado de la revisión completa del módulo: 85 pruebas correctas, 724 aserciones.
