Contexto
BR Logística es un WMS en producción para una operación de bodega (productos institucionales). El inventario no se edita a mano: el stock se mueve con documentos, por lote y con vencimiento, para despachar producto que caduca primero.
Frontend
SPA en React + TypeScript (Cloudflare) con TanStack Query. Panel interno de operación, no un e-commerce:
- Inventario: consulta de stock (solo lectura). Vista global y por lote, con SKU, vencimiento y cantidad en cajas + unidades.
- Picking: salidas de inventario en documentos
DRAFT → CONFIRMADO(también se pueden anular). - Recepción, devoluciones y ajustes: el resto de movimientos entra por el mismo modelo de documentos.
- Maestros de productos, proveedores y clientes, más reportes y ventas por SKU.
- Acceso restringido por rol.
Backend
API en Java + Spring Boot (Railway) con PostgreSQL. La regla dura es FEFO: al confirmar un picking se asigna lote por fecha de vencimiento. El stock solo cambia a través de documentos confirmados, no con un CRUD directo sobre existencias.
Resultado
La bodega consulta stock real por lote y despacha con documentos trazables. El FEFO y el flujo DRAFT → CONFIRMADO evitan que el inventario y lo que sale por picking se desincronicen.