Skip to main content

Packing: when the order's packing job is Packed

What this shows. The six conditions that must all hold before the packing job of an order becomes Packed, and what removes each one.

The rule is asked after every step that can finish the job: a package closes (packing_carton_close) and a repack source is completed (packing_source_complete). If any condition fails, nothing is written. The job stays Open.

What removes each condition​

ConditionWhat clears it
Every pick is terminalPicking ends: the pick is picked, shorted or cancelled.
Each picked pick handed off onceThe carrier is delivered or the pallet is closed at a routed location. See 20.
No unit waits for PackThe unit is closed (Verify) or consumed (Repack source complete).
Every obligation SatisfiedVerify: the package is closed. Repack: packing_source_complete.
No Open cartonClose or void it.
No blocking exceptionNot built: no command sets a packing exception to Resolved.

What you see​

  • The close and complete answers carry order_packed and the job status.
  • The RF screen adds "Order packed" to its message.
  • The order's own status does not change. The order statuses have no "packed" value, so Picked stays Picked.
  • A packed job refuses new work: PACK_JOB_PACKED. A reopen with a supervisor's grant takes it back to Open.

Not confirmed by code​

  • Which user role or screen resolves a reported packing discrepancy. The exception has status Open or Resolved, but nothing in crates/ writes Resolved. To verify: ask the owner how a reported discrepancy is cleared today.
  • There is no packing policy. A job is created with policy_id empty, an empty policy snapshot and release mode PerUnit, always.

Where it comes from​

ClaimSource
Six conditionscrates/libs/wms-outbound/src/domain/packing_job/aggregate.rs:84
Facts gathered and job marked Packedcrates/libs/wms-outbound/src/packing/commands/readiness.rs:24
Packed on a yescrates/libs/wms-outbound/src/packing/commands/readiness.rs:61
Asked after a closecrates/libs/wms-outbound/src/packing/commands/carton_close.rs:40
Asked after a source is completedcrates/libs/wms-outbound/src/packing/commands/source_complete.rs:154
Only open and blocking exceptions countcrates/libs/wms-outbound/src/domain/packing_job/postgres_repository.rs:58
Exception statuses (Open, Resolved)crates/libs/wms-lib-core/src/model/outbound/packing_exception.rs:35
Picks and their hand-off countcrates/libs/wms-lib-core/src/model/outbound/packing_job.rs:216
No policy and PerUnit on a new jobcrates/libs/wms-outbound/src/packing/commands/work_open.rs:159
Order statuses have no "packed"crates/libs/wms-lib-core/src/model/outbound/shipment_order.rs:46
Packed job refuses new workcrates/libs/wms-outbound/src/packing/commands/work_open.rs:147