Saltar al contenido principal

Flujo de Aprobacion

Diagrama de Estados

stateDiagram-v2
[*] --> DRAFT: Crear
DRAFT --> PENDING_MANAGER: Enviar (empleado regular)
DRAFT --> PENDING_DIRECTOR: Enviar (gerente de depto)
DRAFT --> APPROVED: Enviar (director) / auto
DRAFT --> CANCELLED: Cancelar

PENDING_MANAGER --> PENDING_DIRECTOR: Gerente aprueba
PENDING_MANAGER --> APPROVED: Director aprueba (salta nivel)
PENDING_MANAGER --> RETURNED: Devolver

PENDING_DIRECTOR --> APPROVED: Director aprueba
PENDING_DIRECTOR --> RETURNED: Devolver

RETURNED --> PENDING_MANAGER: Reenviar (empleado regular)
RETURNED --> PENDING_DIRECTOR: Reenviar (gerente de depto)
RETURNED --> APPROVED: Reenviar (director) / auto

APPROVED --> PARTIALLY_FULFILLED: Despacho parcial
APPROVED --> AWAITING_PROCUREMENT: Todo a procura
APPROVED --> FULFILLED: Despacho total

PARTIALLY_FULFILLED --> FULFILLED: Completar despacho
AWAITING_PROCUREMENT --> READY_FOR_DISPATCH: OC recibida
READY_FOR_DISPATCH --> FULFILLED: Despacho final
READY_FOR_DISPATCH --> PARTIALLY_FULFILLED: Despacho parcial

FULFILLED --> [*]
CANCELLED --> [*]

Aprobacion Multinivel

El sistema implementa un flujo de aprobacion en dos niveles:

Nivel 1: Gerente de Departamento

  • Estado: PENDING_MANAGER
  • Aprobador: El gerente del departamento del solicitante (Department.managerId)
  • Accion: Puede aprobar (avanza a PENDING_DIRECTOR) o devolver (regresa a RETURNED)

Nivel 2: Director Tecnico

  • Estado: PENDING_DIRECTOR
  • Aprobador: Empleado con Position.level=1 e isSupervisory=true
  • Accion: Puede aprobar (estado final APPROVED) o devolver (regresa a RETURNED)
Aprobacion directa

Un Director Tecnico puede aprobar directamente desde PENDING_MANAGER, saltando al gerente. En ese caso, la requisicion pasa de PENDING_MANAGER a APPROVED en un solo paso.

Quien Revisa?

El sistema busca el aprobador en este orden:

  1. Gerente del departamento (Department.managerId) -- si no es el mismo solicitante (segregacion de funciones)
  2. Director tecnico (Position.level=1, isSupervisory=true) -- como aprobador final o alternativa
  3. Supervisor directo del empleado (Employee.supervisorId) -- si no hay gerente de departamento
Segregacion de funciones

El solicitante nunca puede aprobar su propia requisicion. Si el gerente del departamento es el mismo solicitante, la requisicion se envia directamente al director.

Como Aprobar

  1. Navegue a Requisiciones y use la pestana Pendientes de Aprobacion, o haga clic en la notificacion recibida
  2. Revise los detalles de la requisicion: items, cantidades, justificacion, prioridad
  3. Haga clic en Aprobar
  4. Opcionalmente agregue notas de aprobacion
  5. El solicitante recibe notificacion del resultado

Vista de detalle del gerente con botones Aprobar y Devolver

Seccion de Aprobacion

Al aprobar, la vista de detalle muestra los nombres reales de quienes aprobaron en cada nivel:

Requisicion aprobada por el director, mostrando nombres de aprobadores

Devolucion y Reenvio

A diferencia del rechazo (que es terminal), la devolucion permite un ciclo de correccion:

Devolver una Requisicion

  1. El aprobador (gerente o director) hace clic en Devolver
  2. Debe escribir un comentario obligatorio explicando que debe corregirse
  3. La requisicion cambia a estado RETURNED
  4. El solicitante recibe notificacion con el motivo

Requisicion devuelta con alerta roja mostrando el motivo

Editar y Reenviar

Cuando una requisicion esta en estado RETURNED, el solicitante puede:

  1. Ver el motivo de la devolucion en una alerta destacada
  2. Hacer clic en Editar para modificar la requisicion
  3. Modificar cantidades, agregar o eliminar items, cambiar justificacion
  4. Hacer clic en Reenviar para enviar de nuevo al flujo de aprobacion

Solicitante ve botones de Editar y Reenviar en requisicion devuelta

Formulario de edicion durante el ciclo de devolucion

Edicion permitida en DRAFT y RETURNED

Solo el creador original puede editar la requisicion, y solo en los estados DRAFT o RETURNED. Al reenviar, se usan las mismas reglas de enrutamiento que al enviar por primera vez.

Ciclo de Devolucion

PENDING_MANAGER/PENDING_DIRECTOR
|
[Devolver con comentario]
|
RETURNED
|
[Solicitante edita]
|
[Reenviar]
|
PENDING_MANAGER/PENDING_DIRECTOR/APPROVED
(segun rol del solicitante)

El ciclo de devolucion-reenvio puede repetirse las veces necesarias.

Notificaciones

Al enviar

  • Destinatario: Aprobador del siguiente nivel (gerente o director)
  • Prioridad: High (Urgent si la requisicion es urgente)
  • Contenido: Nombre del solicitante, departamento, codigo y titulo de la requisicion

Al aprobar por gerencia (PENDING_MANAGER -> PENDING_DIRECTOR)

  • Destinatario 1: Director tecnico -- requisicion pendiente de aprobacion final
  • Destinatario 2: Solicitante original -- notificacion de avance intermedio

Al aprobar finalmente (-> APPROVED)

  • Destinatario 1: Solicitante original -- confirmacion de aprobacion
  • Destinatario 2: Personal de logistica (usuarios con permiso requisitions:fulfill) -- requisicion lista para despacho

Al devolver (-> RETURNED)

  • Destinatario: Solicitante original
  • Contenido: Incluye el motivo/comentario de devolucion

Al reenviar

  • Destinatario: Aprobador del siguiente nivel
  • Contenido: Indica que fue reenviada despues de correcciones

Despues de la Aprobacion

Una vez aprobada, la requisicion pasa a ser responsabilidad del equipo de logistica/almacen:

  • Verificar disponibilidad de stock en todos los almacenes
  • Despachar materiales disponibles (despacho multi-almacen)
  • Registrar items de texto libre en el catalogo de inventario
  • Enrutar a procura los items sin stock

Consulte la guia de Despacho de Almacen para mas detalles.