fulfillAndDispatch

Fulfill this demand in full and dispatch it onward via carrier, or transition directly through shipdeliver if carrier is null.

The fulfill-then-dispatch sequence is the standard way to finish a demand at its destination — used by inventory holding points when stock is available, by cross-docks once the upstream clone returns, and by lead-time fillers after the production delay elapses. This helper consolidates all three.

Fills the demand for its full originalAmountDemanded — the state machine does not allow ship from a partially-filled demand, so partial fulfilment is not a supported flow at this level. Callers needing partial fill should call SupplyChainModel.Demand.fill directly.

Pair with receiveForProcessing — that helper takes the demand into IN_PROCESS; this one drives it out again once the work behind the demand has been done.

Required precondition: this demand is in the IN_PROCESS state.

Parameters

carrier

optional transport carrier. When null the demand transitions directly through shipdeliver (the zero-delay path used when no carrier is configured)