Skip to content

MK Inbound Purchase To Inventory Lot UAT

  • Evidence date: 2026-07-17
  • Environment: Local kyle-mba:3306/prod, CLIENT_ID = 2
  • Scope: one disposable Brokerage inbound purchase, one item, Scale Portal no-scale Warehouse Only, authenticated API/DB read-back and run-owned-row cleanup.

Boundary

This evidence excludes production/QA write UAT, schema, existing rows, allocation, warehouse placement, scale ticket, external effects and Packing policy. It preserves the tenant predicate, received-lot API-delete guard, user-entered quantity/weight/UOM/rate, and zero side effects outside the fixture.

Observed Local Result

Check Result
Client-2 UI path Operations → Orders → Inbound Orders → Create Order
Write routes POST /api/oms/inbound-orders; POST /api/oms/inbound-orders/{id}/complete-without-scale
Stored rows one INBOUND / PURCHASE order; one item with quantity 1, net weight 10.000, UOM LB, rate 0.0000, raw status PARTIAL
Derived receipt state one domain UNLOADED transload and one OPEN inventory lot
Exact read-back lot source order/item/transload and quantity/weight/UOM/rate matched the fixture
Forbidden effects scale ticket, allocation, lot ledger and warehouse placement were all 0
Cleanup safety preflight preceded direct deletion of only captured fixture IDs; order/item/transload/lot each reread 0
Browser errors console/page errors 0

The focused runner was rerun after the route correction and policy closure with a new disposable order; it produced the same assertions and zero-residue cleanup. The screenshot artifact is ignored local output and is not repository evidence.

Source Contract Observed

  • The inbound editor uses POST /api/oms/inbound-orders; no-scale completion uses POST /api/oms/inbound-orders/{id}/complete-without-scale.
  • Completion records raw T_LOAD_ITEM.ITEM_STATUS = PARTIAL for domain UNLOADED, derives T_TRANSLOAD.STATUS = UNLOADED, and materializes one T_INVENTORY_LOT from the exact source transload.
  • An OPEN received lot intentionally blocks ordinary order deletion. Cleanup first proved no allocation, lot ledger, placement or scale ticket and then removed only the fixture rows.

Route Correction And Production Read Canary

The editor's commodity-choice request was corrected from /api/bms/rates/commodities/options to registered OMS route /api/oms/inbound-orders/commodity-rate-options; the prior route left Client-2 with no choices despite active commodities. The correction is in historical master merge f821851cc.

On 2026-07-17, an isolated Client-2 production session opened MK Inbound Orders, read the list, opened Create Order without saving, rendered populated commodity choices, and received 200 from the OMS route. No POST, PUT, PATCH or DELETE request occurred. This is production read-path evidence only, not a replay of the Local write UAT.

Remaining Policy Decision

Warehouse Only is technically supported only for Brokerage (OCEAN_FREIGHT) no-scale completion. Existing MK manual wording says Brokerage/document-only work skips Scale Portal. Whether this no-scale screen is the sanctioned Brokerage exception remains undecided; this evidence made no runtime or manual-policy change.

---

Source: docs/research/mk/2026-07-17/MK_INBOUND_PURCHASE_TO_INVENTORY_LOT_UAT.md — ctc repository · This page is an English translation of the source document. Identifiers, file paths and code symbols are unchanged.