feat: contingent possible values (warehouse, client and item scoping) #5

Merged
KofTwentyTwo merged 1 commits from feature/contingent-possible-values into develop 2026-10-14 12:09:10 +00:00
KofTwentyTwo commented 2026-10-14 01:25:22 +00:00 (Migrated from github.com)

Summary

Dependent choices now follow their parent on the same form. See QQQ docs/CONTINGENT-POSSIBLE-VALUES.md. W = warehouseId = ${input.warehouseId}, C = clientId = ${input.clientId}.

  • Warehouse scoping (W):
    • location.zoneId and order.waveId
    • dockDoorId on purchase order, dock appointment and shipment
    • shipment.manifestId
    • location/lpn/zone FKs on inventory, inventory hold, license plate, replenishment rule, putaway rule and task
    • the CycleCountProcess form zoneId
  • Item scoping: uomId follows itemId on order, ASN, PO and receipt lines; kit BOM componentUomId follows componentItemId.
  • Client scoping (C):
    • kit BOM kit/component items
    • inventory and inventory hold itemId
    • kit work order kitItemId
  • Warehouse and client (W AND C): receipt.purchaseOrderId and return authorization originalOrderId.
  • Billing: billing activity rateId follows activityTypeId.

Tests

ContingentPossibleValuesTest: 31 cases with real searches and empty-parent FORM/FILTER behaviour. A direct offline JUnit run passed 860 tests (JaCoCo 92.8% / 100%). The full Maven verify could not resolve the cached parent POM locally, so CI is the gate.

🤖 Generated with Claude Code

## Summary Dependent choices now follow their parent on the same form. See QQQ docs/CONTINGENT-POSSIBLE-VALUES.md. W = `warehouseId = ${input.warehouseId}`, C = `clientId = ${input.clientId}`. - **Warehouse scoping (W):** - location.zoneId and order.waveId - dockDoorId on purchase order, dock appointment and shipment - shipment.manifestId - location/lpn/zone FKs on inventory, inventory hold, license plate, replenishment rule, putaway rule and task - the CycleCountProcess form zoneId - **Item scoping:** uomId follows itemId on order, ASN, PO and receipt lines; kit BOM componentUomId follows componentItemId. - **Client scoping (C):** - kit BOM kit/component items - inventory and inventory hold itemId - kit work order kitItemId - **Warehouse and client (W AND C):** receipt.purchaseOrderId and return authorization originalOrderId. - **Billing:** billing activity rateId follows activityTypeId. ## Tests `ContingentPossibleValuesTest`: 31 cases with real searches and empty-parent FORM/FILTER behaviour. A direct offline JUnit run passed 860 tests (JaCoCo 92.8% / 100%). The full Maven verify could not resolve the cached parent POM locally, so CI is the gate. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.