ERP (para PC, gestión completa) y SGA (para PDA Android, operativa de almacén) leen y escriben sobre el mismo modelo de datos multitenant. Lo que se crea en una app aparece al instante en la otra: no hay sincronización, hay una sola fuente de verdad.
36 vídeos cortos con la aplicación real: cada pantalla del ERP y de la PDA, y los procesos completos de recepción, expedición, inventario, operaciones con pallets y facturación.
Maestros, documentos, facturación, consultas. Lo usan administradores y personal de oficina.
Escanear, ubicar, desubicar, contar. Lo usan los operarios del almacén, pantalla en mano.
La impresión de etiquetas (ZPL, pallet y ubicación) es un segundo circuito aparte, sin puertos abiertos ni sincronización manual:
Etiqueta ya renderizada en ZPL real (100×150mm, DataMatrix) con los datos del pallet o la ubicación
Fila «pendiente» con la impresora que le corresponde a ese usuario y ese movimiento
PC del almacén con acceso a la Zebra. Pregunta él, nadie le pregunta a él — sin puertos abiertos
Imprime y el agente confirma el resultado de vuelta al servidor (impresa o error)
Todas las capturas son de la aplicación funcionando de verdad, contra la base de datos real — no son bocetos.
Y el SGA, pensado para pantalla de PDA en mano (aquí, recortado a su tamaño real):



El aislamiento es por empresa_id en cada tabla de negocio. El superadmin es la única excepción: no pertenece a ninguna empresa y solo opera la plataforma.
Solo Empresas y Usuarios. Cualquier módulo de negocio de una empresa le devuelve 403. Puede dar soporte creando/regenerando el token de un agente de impresión desde la ficha de empresa. Fija en la ficha de cada empresa el número máximo de usuarios contratados y es quien crea los admins de empresa.
Acceso completo a todos los módulos de su propia empresa, en ERP y en SGA, desde el momento en que se le crea el usuario. Gestiona los usuarios normales de su empresa, sin pasar del cupo de usuarios que fija el superadmin (el listado muestra "X de Y" y, al llegar al máximo, desaparece el alta).
Solo ve los nodos de menú marcados explícitamente en su ficha (p. ej. Recepciones + Expediciones + Consultas, sin Facturación ni Maestros).
Los datos base de los que cuelga todo lo demás.
Cabecera + líneas de pallet generadas por paletizado del artículo.
se puede editar la cabecera y corregir o quitar pallets
se pueden quitar pallets; uno ya ubicado solo si sigue tal como entró (sin operaciones posteriores) y libera su hueco
bloqueada, no se toca nada
Dos formas de añadir pallets a una salida.
se pueden borrar pallets sueltos — si ya había salido, vuelve al stock «en el suelo» pendiente de ubicar; si es el último, se borra la expedición entera
bloqueada
Un único asistente: recepciones, expediciones, almacenaje y líneas a mano en la misma factura.
Conteo cíclico con aprobación: nada toca el stock sin revisión.
Las cuatro opciones del SGA, más bloqueo y mermas (solo ERP), fuera de cualquier recepción o expedición.
Solo el administrador de la empresa: qué etiquetas ZPL están pendientes, cuáles han fallado y por qué.
Para una retirada de mercado: cuándo entró, a dónde se envió y qué queda en stock.
La foto del almacén en cualquier momento.
Solo el admin de empresa. Quién crea o modifica cada ficha/documento, con foto de antes y después — distinto de Consultas > Movimientos (que sigue siendo solo lo que afecta al stock).
Plantillas ZPL reales del cliente (100×150mm, DataMatrix) — cola de impresión + agente .exe local, distinto de los documentos A4 (window.print()). Ver diagrama arriba.
Varias pantallas abiertas a la vez, como pestañas de navegador dentro de la propia app.
Cada empresa con su propio aspecto, y una sesión que se protege sola.
Login por escaneo en el SGA, y los datos que exige la ley en cada documento.
Cabecera mínima: usuario + reloj, nada más. En la PDA y el móvil ocupa toda la pantalla, sin marco. Cada pantalla lleva un botón «ESC. ATRÁS» al pie. Login por usuario/contraseña o escaneando la tarjeta de empleado (DataMatrix).
Solo se listan los pallets con movimiento pendiente: en cuanto uno se ubica, desaparece de la lista. El campo de lectura de pallet vive dentro del detalle de la orden, con foco automático y sin abrir el teclado en pantalla.
El pallet de origen ya viene decidido desde el ERP: aquí solo se confirma. Mismo patrón de lectura que Recepciones.
Tres modos según lo que se lea o escriba.
Los lanzados desde el ERP, o uno improvisado.
Menú con cuatro apartados (los mismos que en el ERP).
Autoservicio básico, igual en ambas apps.
Cada paso está coloreado según en qué app ocurre. No hay «enviar a sincronizar»: el siguiente paso ya está disponible en cuanto se guarda el anterior.
De la oficina al hueco del almacén.
FIFO/FEFO decide qué pallet sale primero, ya en el ERP.
Todo lo facturable de un cliente en una factura, sin poder cobrar nada dos veces.
La tarjeta que sale de una impresora de oficina abre sesión en una PDA.
Se decide en la oficina, se ejecuta en el pasillo, se aprueba en la oficina.
Sin volver a abrir el documento original.
| Pieza | Estado | Detalle |
|---|---|---|
| Pantallas y flujos (ERP + SGA) | Hecho | Navegable de extremo a extremo |
| Base de datos real (MySQL) | Hecho | Ambas apps la usan siempre, también en desarrollo |
| Facturación de almacenaje | Hecho | Con control de periodos y liberación por rectificativa |
| Operaciones manuales | Hecho | Cambio de ubicación, ubicar pendientes, separar y unir pallets (ERP y SGA); bloqueo y mermas (ERP) |
| Impresión de documentos | Hecho | Albaranes, facturas, tarjetas — window.print(), vista previa en hojas A4 reales con navegación, "Página X de Y", cabecera de tabla repetida, sin filas partidas, totales al pie de la última hoja y "Sigue" / "Suma y sigue"; botón "Imprimir" directo que abre la ventana del navegador para elegir impresora |
| Etiquetas ZPL reales (pallet y ubicación) | Hecho | Plantillas reales del cliente, 100×150mm, DataMatrix |
| Cola de impresión + agente local (.exe) | Hecho | Polling HTTPS + TCP crudo/recurso compartido, icono e info de versión propios |
| Impresora por usuario y movimiento | Hecho | Usuarios > Impresoras, sin selección en el momento de imprimir |
| Caducidades y bloqueo de pallets | Hecho | Bloqueo automático de caducados, alertas en Inicio, mermas y bloqueo/desbloqueo con justificación |
| Control de facturación pendiente | Hecho | Pendiente por cliente + estado de facturación de cada expedición + avisos de servicios sin tarifa |
| Cierre de la Fase 1 (2026-10-09) | Hecho | Pruebas de todas las pantallas y de los procesos de punta a punta superadas; tildes y ortografía unificadas en toda la interfaz |
| Formatos de impresión agrupado y detallado (2026-10-09) | Hecho | Albaranes de recepción y expedición agrupados por artículo, lote y caducidad (pallets, cajas y cantidad sumados) o detallados por pallet con EAN, cajas, ubicación y estado; facturas con descargas, cargas, picking y almacenaje en una línea con el total de pallets y el periodo. Lotes y caducidades en una sola línea. Se elige en Vista previa e Imprimir y se recuerda el último |
| Tarjeta de empleado en Mi cuenta (2026-10-09) | Hecho | Cada usuario ve su tarjeta con el código para entrar en el SGA y la imprime desde Mi cuenta |
| Instalar el SGA como app (2026-10-09) | Hecho | Botón «Instalar la app en este dispositivo» en el login y el menú del SGA (en iPhone, explica cómo); página propia sin conexión |
| Agente de impresión: ventana para el token (2026-10-09) | Hecho | Al ejecutarlo por primera vez, o si el token ya no vale, abre una ventana que pide el token, lo comprueba con el ERP y lo guarda. Ya no hay que editar config.json a mano |
| Mensajes con el formato de la plataforma (2026-10-09) | Hecho | Las confirmaciones (emitir factura, eliminar, mermas, unir pallets, regenerar token...) y los avisos ya no son ventanas del navegador: diálogo propio con icono según el tipo (pregunta, peligro, aviso, error, información, hecho); en las acciones peligrosas el botón por defecto es Cancelar. También en la PDA, con Enter y ESC |
| Revisión visual de pantallas (2026-10-09) | Hecho | Menú lateral claro, con la estética de los formularios; Nueva factura solo ofrece los clientes con algo pendiente; Alertas de stock con la barra de Consultas, fechas dd/mm/aaaa también en Agentes, páginas de error con la tipografía de la app, aviso en el login si la pantalla llevaba demasiado tiempo abierta, SGA a pantalla completa en la PDA sin scroll de más |
| Auditoría de procesos (2026-10-08) | Hecho | Stock congelado durante inventarios, varios operarios a la vez sin bloquearse, mercancía solo del cliente, rectificativas sin abonos de más, cuadre en Trazabilidad, alertas de stock mínimo |