Skip to content

feat(wms): peso/volumen del material + computeLoad (Inc 1 vehículos como almacén móvil)#411

Merged
vgpastor merged 5 commits into
mainfrom
feature/wms-vehicles-inc1
Jul 13, 2026
Merged

feat(wms): peso/volumen del material + computeLoad (Inc 1 vehículos como almacén móvil)#411
vgpastor merged 5 commits into
mainfrom
feature/wms-vehicles-inc1

Conversation

@vgpastor

Copy link
Copy Markdown
Contributor

Closes #410 · Incremento 1 del EPIC #409 (vehículos como almacén móvil, WMS-first para Protección Civil). Foundation: toda carga pasa a ser calculable en peso y volumen.

Qué incluye

  • Catálogo: Supply.unitWeightKg/unitVolumeM3 (nullable, base defaultUnit, >0 validado) + mutador inmutable setUnitMeasures. Patrón exacto de nature/externalCodes.
  • computeLoad (servicio puro en inventory, formas estructurales — no acopla módulos — + port de lookup síncrono (supplyId) → info | null):
    • Regla del nodo más alto POR DIMENSIÓN (anti doble-conteo): el bruto declarado de un container aporta y corta la recursión de SU dimensión en todo el subárbol (el ancestro gana); la dimensión sin declarar se deriva de las líneas vía catálogo.
    • Mismatch de unidad línea↔defaultUnitdesconocido (no multiplica).
    • nature=human excluido del peso/volumen (reportado en personnel).
    • Honestidad: weightComplete/volumeComplete/complete + unknowns[] con dimensión y motivo — un total incompleto es un límite inferior, nunca un dato falso.
  • Host (ResponseGrid): solo compile-fix — el mapper mapea los campos a null (su persistencia llega cuando el host adopte la feature; frontera 1:1, sin migración ni cambio de API). Detectado con typecheck limpio (la caché incremental de nest build lo enmascaraba en local).

Verificación (local)

warehouse-core build + 175 tests (158→175: 5 de medidas + 12 de computeLoad) · api build + tsc limpio sin caché (0 errores) · eslint (0) · prettier api y packages · api-client + web build · frozen-lockfile — todo verde. TDD estricto (test-fail-first en cada tarea).

Spec: docs/superpowers/specs/2026-07-13-vehiculos-almacen-movil-design.md §2 · Plan: docs/superpowers/plans/2026-07-13-vehiculos-inc1-peso-volumen.md.

vgpastor added 4 commits July 13, 2026 20:10
…umeM3, base defaultUnit) — Inc 1 vehículos
…exclusión de personal y flags por dimensión (Inc 1 vehículos)
@vercel

vercel Bot commented Jul 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
response-grid Skipped Skipped Jul 13, 2026 6:59pm

Request Review

…enga bruto declarado + preconditions

Review de la PR: el guard de addContainer se saltaba las líneas de un container
con ambas dimensiones declaradas, perdiendo el personal (nature=human) de ese
subárbol — el personal no es carga y debe reportarse siempre. Se recorren líneas
e hijos incondicionalmente (el peso/volumen sigue cortado por el bruto). Además:
lines readonly (consistencia con looseLines) y preconditions documentadas
(quantity finita/≥0 y bosque acíclico, garantizadas por el llamador).
@vgpastor
vgpastor merged commit c4be35a into main Jul 13, 2026
13 checks passed
@vgpastor
vgpastor deleted the feature/wms-vehicles-inc1 branch July 13, 2026 19:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Vehículos] Inc 1: peso/volumen del material — Supply.unitWeightKg/unitVolumeM3 + computeLoad

1 participant