Movement Composer
Preview Release Impact
Dry-run preview: given a receipt payload, compute which pending backorder allocations would be released once the movement is committed.
Preview Demotion Impact
Dry-run preview: given an outbound/adjust-down payload, compute which allocations (unallocated, soft-allocated, hard-allocated) would be consumed, and whether any hard-allocated fulfillments will require an explicit void confirmation before commit.
Commit Movement
Atomic commit of a composed movement: creates inventory adjustments, persists lot/serial detail, and triggers allocation release or demotion — all inside one DB transaction. When an outbound demotion consumes hard-allocated stock, each confirmed shipping label is voided in the same transaction (the fulfillment's inventory is reversed back to on-hand, its FulfillmentOrder budget reopened, and the shipment marked canceled).