Integraciones entre Modulos
Los modulos de Zentto se integran entre si de forma automatica y transparente. Cada integracion usa el patron best-effort: la operacion principal nunca falla por un error en la integracion.
Mapa de integraciones
Sección titulada «Mapa de integraciones»POS ----------------+Restaurante --------+Manufactura --------+---> Inventario (stock)Logistica ----------+Compras ------------+
Ventas -------------+Compras ------------+Bancos -------------+POS ----------------+Restaurante --------+---> Contabilidad (asientos)Nomina -------------+RRHH ---------------+Manufactura --------+Flota --------------+
CRM (Call Center) --+---> Leads (auto-create)
Todos --------------+---> Auditoria (audit trail)Todos --------------+---> Notificaciones (Zentto Notify)POS a Inventario
Sección titulada «POS a Inventario»Trigger: Venta en punto de venta.
Flujo:
- Se registra la venta POS con sus lineas de detalle
- Para cada linea, se descuenta stock del almacen asignado al POS
- Se registra un
StockMovementde tipoSALE
SP involucrados:
usp_Ops_Sale_Create— crea la ventasp_MovUnidades— descuenta stock
Datos cruzados:
| Origen (POS) | Destino (Inventario) |
|---|---|
ProductId | ProductId del movimiento |
Quantity | Quantity (negativo = salida) |
SessionId —> WarehouseId | Almacen del POS |
Restaurante a Inventario
Sección titulada «Restaurante a Inventario»Trigger: Cierre de orden de restaurante.
Flujo:
- Se cierra la orden del restaurante
- Para cada producto vendido, se busca su receta (
rest.Recipe) - Para cada componente de la receta, se descuenta el ingrediente del inventario
- Se registra movimiento de tipo
RECIPE_CONSUMPTION
Ejemplo: Venta de 2 hamburguesas con receta que requiere 200g carne + 2 panes + 2 lechugas. Se descuentan 400g carne, 4 panes, 4 lechugas del stock.
SP involucrados:
sp_Restaurante_Order_Close— cierra la ordenusp_Rest_Recipe_GetComponents— obtiene ingredientessp_MovUnidades— descuenta cada ingrediente
Logistica a Inventario
Sección titulada «Logistica a Inventario»Recepcion de mercancia
Sección titulada «Recepcion de mercancia»Trigger: Aprobacion de recepcion de mercancia.
Flujo:
- Se crea una recepcion vinculada a un documento de compra
- Al aprobar, se registra ingreso de stock al almacen destino
- Se registra
StockMovementde tipoGOODS_RECEIPT
SP involucrados:
usp_Logistics_GoodsReceipt_Approve— aprueba recepcionusp_Inv_Integracion_GoodsReceipt— ingresa stock
Nota de entrega (despacho)
Sección titulada «Nota de entrega (despacho)»Trigger: Despacho de nota de entrega.
Flujo:
- Se crea una nota de entrega vinculada a un documento de venta
- Al despachar, se descuenta stock del almacen origen
- Se registra
StockMovementde tipoDELIVERY
SP involucrados:
usp_Logistics_DeliveryNote_Dispatch— despacha la notausp_Inv_Integracion_Delivery— descuenta stock
Devolucion
Sección titulada «Devolucion»Trigger: Aprobacion de devolucion.
Flujo:
- Se crea devolucion vinculada a recepcion o despacho
- Al aprobar, se registra movimiento inverso de stock
- Tipo:
RETURN_IN(devolucion de cliente) oRETURN_OUT(devolucion a proveedor)
Manufactura a Inventario
Sección titulada «Manufactura a Inventario»Trigger: Operaciones en orden de produccion.
Consumo de materiales
Sección titulada «Consumo de materiales»- Se reporta consumo de materiales en la orden de trabajo
- Se descuenta stock de materias primas del almacen
- Se registra
StockMovementde tipoMFG_CONSUMPTION
Produccion de producto terminado
Sección titulada «Produccion de producto terminado»- Se reporta salida de producto terminado
- Se ingresa stock del producto terminado al almacen
- Se registra
StockMovementde tipoMFG_OUTPUT
SP involucrados:
usp_Mfg_WorkOrder_Consume— reporta consumousp_Mfg_WorkOrder_ReportOutput— reporta produccionusp_Mfg_Integracion_StockMovement— mueve stock
Archivo: web/api/src/modules/manufactura/mfg-integracion.service.ts
Manufactura a Contabilidad
Sección titulada «Manufactura a Contabilidad»Trigger: Completar orden de trabajo.
Flujo:
- La orden cambia a estado
COMPLETED - Se calcula el costo total (materiales + mano de obra + CIF)
- Se genera asiento contable:
- Debito: Inventario de Producto Terminado
- Credito: Produccion en Proceso
Campo SourceModule: manufactura
// Best-effort: contabilidad (nunca bloquea la operacion principal)try { await mfgIntegracionService.generateAccountingEntry(workOrder);} catch { /* best-effort */ }Flota a Contabilidad
Sección titulada «Flota a Contabilidad»Combustible
Sección titulada «Combustible»Trigger: Registro de carga de combustible.
| Debito | Credito |
|---|---|
| Gasto de Combustible | Caja/Banco |
Mantenimiento
Sección titulada «Mantenimiento»Trigger: Completar mantenimiento.
| Tipo | Debito | Credito |
|---|---|---|
| Preventivo | Gasto de Mantenimiento | Caja/Banco |
| Correctivo | Gasto de Reparaciones | Caja/Banco |
Campo SourceModule: flota
CRM a Leads
Sección titulada «CRM a Leads»Auto-creacion desde Call Center
Sección titulada «Auto-creacion desde Call Center»Trigger: Llamada entrante que identifica un nuevo prospecto.
Flujo:
- Agente recibe llamada y registra datos del contacto
- Si el contacto no existe como lead, se crea automaticamente
- El lead se asigna al pipeline por defecto en la primera etapa
SP involucrados:
usp_CRM_CallCenter_Call_Create— registra la llamadausp_Sys_Lead_Upsert— crea o actualiza el lead
Cierre de lead a creacion de cliente
Sección titulada «Cierre de lead a creacion de cliente»Trigger: Lead cerrado como GANADO.
Flujo:
- Lead se cierra como ganado
- Si
CustomerIdes NULL, se crea un cliente enmaster.Customer - El lead se vincula al nuevo cliente
Alertas automaticas
Sección titulada «Alertas automaticas»Zentto incluye un sistema de alertas automaticas que ejecuta 7 verificaciones periodicas:
| # | Alerta | Condicion | Modulo |
|---|---|---|---|
| 1 | Facturas vencidas | CxC con DueDate < TODAY y saldo > 0 | Ventas/CxC |
| 2 | Stock bajo | Producto con stock < punto de reorden | Inventario |
| 3 | Vencimiento de lotes | Lotes con fecha de vencimiento proxima | Inventario |
| 4 | Mantenimiento pendiente | Vehiculos que superan km de intervalo | Flota |
| 5 | Documentos por vencer | Seguros, revisiones proximas a vencer | Flota |
| 6 | Pagos a proveedores | CxP con vencimiento proximo | Compras/CxP |
| 7 | Cierre contable pendiente | Meses no cerrados contablemente | Contabilidad |
SP: sys_alertas.sql
Las alertas se registran en sys.Alert y se muestran en el dashboard del usuario.
Notificaciones (Zentto Notify)
Sección titulada «Notificaciones (Zentto Notify)»Todas las operaciones importantes envian notificaciones via el microservicio Zentto Notify.
Patron: best-effort, nunca bloquea la operacion principal.
// Todas las funciones son best-effort: nunca lanzan excepcionesawait notifyService.send({ channel: "email", template: "invoice-created", to: customer.email, data: { invoiceNumber, total }});Eventos notificados:
| Evento | Canal | Template |
|---|---|---|
| Factura emitida | invoice-created | |
| Cobro recibido | payment-received | |
| Compra registrada | purchase-created | |
| Movimiento bancario | Interno | bank-movement |
| Solicitud de aprobacion | Interno | approval-request |
| Alerta de stock bajo | Interno | low-stock-alert |
Archivo: web/api/src/modules/_shared/notify.ts
Auditoria automatica
Sección titulada «Auditoria automatica»Todos los modulos generan registros de auditoria automaticamente via el middleware audit-trail.ts. No requiere codigo adicional en cada modulo.
Datos capturados: usuario, modulo, entidad, accion, valores nuevos, IP, timestamp.
Ver Seguridad para detalles completos del middleware de auditoria.
Diagrama de integracion completo
Sección titulada «Diagrama de integracion completo»+-------------+ +-------------+ +-------------+| Ventas |---->| Inventario |<----| Compras || (ar/doc) | | (inv) | | (ap/doc) |+------+------+ +------+------+ +------+------+ | | | | +------+------+ | | | Logistica | | | |(recepciones,| | | | despachos) | | | +------+------+ | | | | v v v+-----------------------------------------------------+| Contabilidad || (acct.JournalEntry) || SourceModule: ventas|compras|bancos|pos|... |+-----------------------------------------------------+ ^ ^ ^ ^ | | | |+------+--+ +----+----+ +---+----+ +---+----+| Bancos | | Nomina | |Manufac.| | Flota || (fin) | |(nomina) | | (mfg) | |(fleet) |+---------+ +---------+ +--------+ +--------+