Niveles de aprobación
| Nivel | Campo | Aprobador | Relación |
|---|---|---|---|
| Aprobación técnica | aprobacion1 | aprobadorTecnico | aprobacion1_user_id → users.id |
| Aprobación financiera | aprobacion2 | aprobadorFinanciero | aprobacion2_user_id → users.id |
| Campo | Descripción |
|---|---|
aprobacion1_user_id / aprobacion2_user_id | ID del usuario que realizó la acción |
aprobacion1_fecha / aprobacion2_fecha | Fecha y hora de la acción (cast a datetime) |
aprobacion1_comentarios / aprobacion2_comentarios | Comentarios del aprobador |
Flujo completo
El creador envía la cotización a aprobación
Una vez que la cotización está completa (datos generales, recursos y AIU configurados), el creador la envía al flujo de aprobación desde el constructor.Al enviarla, el sistema:
- Cambia el
estadoaen_proceso - Envía
AprobacionTecnicaMail(acciónENVIADA) a todos los usuarios con rol Gerente que pertenezcan a la misma gerencia que la cotización
Aprobación técnica
El aprobador técnico (
aprobacion1_user_id) recibe la cotización en su panel y puede:Aprobar: registra la fecha (aprobacion1_fecha), sus comentarios (aprobacion1_comentarios) y el estado pasa al siguiente nivel. Se notifica al aprobador financiero mediante AprobacionFinancieraMail con acción APROBADA TÉCNICAMENTE.Rechazar: registra la fecha, sus comentarios explicando el motivo del rechazo y el estado cambia a rechazada. Se envía AprobacionTecnicaMail (acción RECHAZADA TÉCNICAMENTE) al creador de la cotización.Aprobación financiera
Una vez aprobada técnicamente, la cotización pasa al aprobador financiero (
aprobacion2_user_id), quien puede:Aprobar: registra la fecha (aprobacion2_fecha) y sus comentarios (aprobacion2_comentarios). El estado cambia a aprobada. Se envía AprobacionFinancieraMail (acción APROBADA FINANCIERAMENTE) a todos los usuarios con rol Administrador y NotificacionCreadorMail (acción APROBADA FINANCIERAMENTE) al creador.Rechazar: registra la fecha y los comentarios. El estado cambia a rechazada. Se envía AprobacionFinancieraMail (acción RECHAZADA FINANCIERAMENTE) a todos los usuarios con rol Administrador y NotificacionCreadorMail (acción RECHAZADA FINANCIERAMENTE) al creador.Notificaciones por correo
El sistema envía correos automáticos en cada evento del flujo:| Evento | Clase Mail | Destinatario |
|---|---|---|
| Cotización enviada a aprobación | AprobacionTecnicaMail (ENVIADA) | Usuarios con rol Gerente de la misma gerencia |
| Rechazada técnicamente | AprobacionTecnicaMail (RECHAZADA TÉCNICAMENTE) | Creador de la cotización |
| Aprobada técnicamente | AprobacionFinancieraMail (APROBADA TÉCNICAMENTE) | Usuarios con rol Administrador |
| Aprobada financieramente | AprobacionFinancieraMail (APROBADA FINANCIERAMENTE) | Usuarios con rol Administrador |
| Aprobada financieramente | NotificacionCreadorMail (APROBADA FINANCIERAMENTE) | Creador de la cotización |
| Rechazada financieramente | AprobacionFinancieraMail (RECHAZADA FINANCIERAMENTE) | Usuarios con rol Administrador |
| Rechazada financieramente | NotificacionCreadorMail (RECHAZADA FINANCIERAMENTE) | Creador de la cotización |
| Reenviada para aprobación | ReenvioAprobacionMail | Usuarios con rol Administrador |
Estados del campo estado
| Valor | Significado |
|---|---|
pendiente | Borrador — el creador aún está trabajando en ella |
en_proceso | Enviada — esperando alguna aprobación |
aprobada | Aprobada técnica y financieramente |
rechazada | Rechazada en nivel técnico o financiero |
Cuando una cotización es rechazada, los comentarios del aprobador quedan guardados en
aprobacion1_comentarios o aprobacion2_comentarios según el nivel que rechazó. El creador debe revisar esos comentarios antes de corregir y reenviar la cotización.Auditoría y trazabilidad
El modeloCotizacione implementa auditoría completa mediante OwenIt\Auditing y Spatie\Activitylog. Todos los cambios en los campos de aprobación quedan registrados automáticamente, incluyendo quién realizó cada cambio y cuándo, sin necesidad de configuración adicional.