VelMox — Sistema de Control de Ventas • Procesos del Negocio
Evento de Inicio Evento de Fin Tarea / Actividad Compuerta (Decisión)→ Flujo de Secuencia- - - → Flujo Alternativo
Autenticación de Usuario (Inicio de Sesión)
flowchart LR
subgraph Usuario["👤 Usuario"]
A((Inicio)) --> B[Ingresar Email y Contraseña]
end
subgraph Sistema["⚙️ Sistema"]
B --> C[Validar Campos Obligatorios]
C --> D{¿Campos Completos?}
D -->|No| E[Mostrar Error en Formulario]
E --> B
D -->|Sí| F[Buscar Usuario en Base de Datos]
end
subgraph BD["🗄️ Base de Datos"]
F --> G{¿Credenciales Válidas?}
G -->|No| H[Denegar Acceso]
H --> I[Mostrar Error de Autenticación]
I --> B
end
subgraph Sistema2["⚙️ Sistema"]
G -->|Sí| J[Crear Sesión y Registrar Ingreso]
J --> K[Redirigir al Dashboard]
K --> L((Fin))
end
Gestión de Productos CRUD — Crear, Editar, Eliminar
flowchart LR
subgraph Admin["👤 Administrador"]
A((Inicio)) --> B[Iniciar Gestión de Productos]
B --> C{Seleccionar Acción}
C --> D[Crear Producto]
C --> E[Editar Producto]
C --> F[Eliminar Producto]
D --> G[Ingresar Datos del Producto]
E --> G
F --> H[Confirmar Eliminación]
end
subgraph Sistema["⚙️ Sistema"]
G --> I[Validar Datos Ingresados]
I --> J{¿Datos Válidos?}
J -->|No| K[Mostrar Error Datos Inválidos]
K --> G
J -->|Sí| L[Verificar Existencia del Producto]
H --> L
end
subgraph BD["🗄️ Base de Datos"]
L --> M{¿Producto Existe?}
M -->|No| N[Registrar Nuevo Producto]
M -->|Sí| O[Actualizar Producto Existente]
O --> P[Guardar Cambios en Base de Datos]
N --> P
end
subgraph Admin2["👤 Administrador"]
P --> Q[Revisar Información]
Q --> R[Confirmar Acción]
R --> S((Fin))
end
style H fill:#fff5f5,stroke:#e74c3c
Proceso de Venta Venta al Contado con Productos
flowchart LR
subgraph Vendedor["👤 Vendedor"]
A((Inicio)) --> B[Verificar Estado de Caja]
B --> C{¿Caja Abierta?}
C -->|No| D[Abrir Caja con Monto Inicial]
D --> E[Buscar y Seleccionar Productos]
C -->|Sí| E
E --> F[Agregar Productos al Carrito]
F --> G[Ingresar Monto Recibido]
G --> H[Confirmar Venta]
end
subgraph Sistema["⚙️ Sistema"]
H --> I[Validar Stock de cada Producto]
I --> J{¿Stock Suficiente?}
J -->|No| K[Mostrar Error Stock Insuficiente]
K --> E
J -->|Sí| L[Calcular Total + IGV 18%]
L --> M[Aplicar Descuento de Stock]
end
subgraph BD["🗄️ Base de Datos"]
M --> N[Registrar Venta + Detalles + Pago]
N --> O[Registrar Movimiento en Stock]
end
subgraph Caja["💵 Caja / Efectivo"]
O --> P[Registrar Ingreso en Caja Chica]
P --> Q[Generar Comprobante/Ticket]
end
subgraph Vendedor2["👤 Vendedor"]
Q --> R[Entregar Ticket al Cliente]
R --> S((Fin))
end
Gestión de Caja Ciclo de Apertura, Operación y Cierre
flowchart LR
subgraph Usuario["👤 Usuario"]
A((Inicio Jornada)) --> B[Abrir Caja con Monto Inicial]
end
subgraph Sistema["⚙️ Sistema"]
B --> C[Registrar Apertura y Fondo Chica S/200]
end
subgraph Operaciones["📋 Operaciones del Día"]
C --> D[Vender Productos (Ingreso Automático)]
D --> E[Registrar Movimiento General (Ingreso/Egreso)]
E --> F[Gestionar Caja Chica Gasto / Reposición]
F --> G{¿Cerrar Caja?}
G -->|No| D
end
subgraph Sistema2["⚙️ Sistema"]
G -->|Sí| H[Calcular Monto Esperado vs Real]
H --> I[Registrar Cierre con Diferencias]
I --> J[Resetear Fondo Chica a S/200.00]
end
subgraph Usuario2["👤 Usuario"]
J --> K[Verificar Resumen de Cierre]
K --> L((Fin Jornada))
end
style G fill:#fff8e1,stroke:#f39c12
Eliminación y Restauración de Ventas Con Backup y Auditoría
flowchart LR
subgraph Usuario["👤 Usuario"]
A((Inicio)) --> B[Seleccionar Venta a Eliminar]
B --> C[Confirmar Eliminación]
end
subgraph Sistema["⚙️ Sistema"]
C --> D{¿Venta es de Hoy?}
D -->|No| E[Mostrar Error No se puede eliminar]
E --> F((Fin Error))
D -->|Sí| G[Crear Backup JSON de la Venta Completa]
G --> H[Restaurar Stock + Registrar Auditoría]
H --> I[Eliminar Venta Detalles y Pagos]
I --> J[Registrar Gasto en Caja Chica]
end
subgraph Usuario2["👤 Usuario"]
J --> K[Verificar Venta Eliminada]
K --> L((Fin Eliminación))
end
subgraph Usuario3["👤 Usuario"]
M((Inicio Restaurar)) --> N[Solicitar Restauración]
end
subgraph Sistema3["⚙️ Sistema"]
N --> O[Buscar Backup en Stock Movimientos]
O --> P{¿Backup Disponible?}
P -->|No| Q[Mostrar Error Backup no encontrado]
Q --> R((Fin Error))
P -->|Sí| S[Recrear Venta con Nuevo ID]
S --> T[Restaurar Detalles y Pagos]
T --> U[Descontar Stock Nuevamente]
U --> V[Eliminar Backup y Registrar Auditoría]
end
subgraph Usuario4["👤 Usuario"]
V --> W[Verificar Venta Restaurada]
W --> X((Fin Restauración))
end
L -.-> M