Skip to content

Gestión de Workflows

El sistema cuenta con un motor de workflows flexible que permite definir estados y transiciones personalizadas para diferentes entidades (por ejemplo, Ventas, Alquileres, Presupuestos).

¿Qué es un Workflow?

Un workflow es una secuencia de estados por los que pasa un documento o proceso. Define "caminos" permitidos, asegurando que los procesos sigan las reglas de negocio de la organización.

Componentes

  1. Workflow: Define el proceso general (Ej: "Venta Mayorista", "Alquiler de Maquinaria").
  2. Estados (Statuses): Las etapas del proceso (Ej: "Borrador", "Aprobado", "En Preparación", "Entregado").
    • Inicial: Estado por defecto al crear el documento.
    • Final: Estado donde el proceso termina (no suele haber transiciones de salida).
    • Color: Identificación visual en el sistema.
  3. Transiciones: Las reglas que permiten pasar de un estado A a un estado B.
    • Acción: Nombre del botón que ve el usuario (Ej: "Aprobar", "Rechazar").
    • Permisos: Roles o grupos autorizados para ejecutar esta transición.
    • Acciones de Sistema: Lógica automática que se dispara al cambiar de estado.

Automatización y Acciones de Sistema

El motor de workflows permite disparar acciones automáticas. Actualmente soportamos:

  • DEDUCT_STOCK (Descontar Stock):
    • Utilizado principalmente en Alquileres y Ventas.
    • Descuenta stock de los lotes disponibles siguiendo lógica FIFO (First In, First Out).
    • Genera movimientos de stock automáticamente.
  • RESTORE_STOCK (Restaurar Stock):
    • Devuelve el stock al inventario (ej: al cancelar un pedido o finalizar un alquiler).

Configuración

Para configurar los workflows, navegue a Configuración > Workflows.

  1. Crear/Editar Workflow: Defina el nombre y el tipo de entidad (Venta, Alquiler).
  2. Definir Estados: Agregue los estados necesarios usando el generador visual.
  3. Conectar Estados: Cree transiciones arrastrando flechas entre los estados.
  4. Permisos: Haga clic en una transición para restringir quién puede ejecutarla (Ej: Solo "Gerentes" pueden "Aprobar Presupuesto").

Diagrama de Ejemplo (Alquiler Simple)

```mermaid graph LR Draft[Borrador] -->|Solicitar Aprobación| Pending[Pendiente]; Pending -->|Aprobar| Approved[Aprobado]; Pending -->|Rechazar| Rejected[Rechazado]; Approved -->|"Entregar (DEDUCT_STOCK)"| Active["Activo/En Curso"]; Active -->|"Devolución (RESTORE_STOCK)"| Returned["Devuelto/Finalizado"]; ```