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.