Ir al contenido

Compras, Proveedores y Aprobaciones HITL

El módulo de compras gestiona el reabastecimiento de inventario y la verificación de órdenes que requieren autorización (Human-In-The-Loop / HITL).

Flujo de Órdenes de Compra (Purchase Orders)

Sección titulada «Flujo de Órdenes de Compra (Purchase Orders)»
  1. Creación de Orden: Se crea una orden de compra en estado draft o pending_approval.
  2. Evaluación de Aprobación (decide-approval.ts):
    • Si el monto total o las condiciones de la orden superan ciertos umbrales de política, la orden pasa a pending_approval y genera un registro en la tabla approvals.
    • Se crea un token de hook durable (hookToken) para reanudar el flujo una vez tomada la decisión.

Las aprobaciones pueden resolverse mediante dos vías:

  1. API REST: POST /api/approvals/:id/decision enviando { approved: boolean, comment?: string }.
  2. Bot de Telegram: Botones interactivos que ejecutan el callback invocando la función unificada decideApproval().
graph LR
Draft[draft] --> Pending[pending_approval]
Pending --> Approved[approved]
Pending --> Rejected[rejected]
Approved --> Ordered[ordered]
Ordered --> Received[received]

Al marcar una orden como received (POST /api/purchase-orders/:id/receive), los insumos recibidos se suman automáticamente al stock actual de ingredientes.