DemandScheduler
in package
FinalYes
Schedules a multi-line demand by composing per-line schedules and an order release policy.
Table of Contents
Properties
- $solver : ScheduleSolverInterface
- Underlying single-line scheduling solver used for each demand line.
Methods
- __construct() : mixed
- Create one demand scheduler.
- schedule() : DemandSchedule
- Build one order-level demand schedule from a multi-line request.
- applySchedule() : QuantityState
- Apply one planned schedule to a working inventory state so later demand lines for the same subject cannot re-use already allocated quantities.
- targetArrivals() : array<int, DemandLineArrival>
- Extract target-arrival events from one line schedule.
Properties
$solver read-only
Underlying single-line scheduling solver used for each demand line.
private
ScheduleSolverInterface
$solver
= new EarliestArrivalSolver()
Methods
__construct()
Create one demand scheduler.
public
__construct([ScheduleSolverInterface $solver = new EarliestArrivalSolver() ]) : mixed
Parameters
- $solver : ScheduleSolverInterface = new EarliestArrivalSolver()
schedule()
Build one order-level demand schedule from a multi-line request.
public
schedule(DemandScheduleRequest $request) : DemandSchedule
Parameters
- $request : DemandScheduleRequest
Return values
DemandScheduleapplySchedule()
Apply one planned schedule to a working inventory state so later demand lines for the same subject cannot re-use already allocated quantities.
private
applySchedule(QuantityState $state, MovementSchedule $schedule) : QuantityState
Parameters
- $state : QuantityState
- $schedule : MovementSchedule
Return values
QuantityStatetargetArrivals()
Extract target-arrival events from one line schedule.
private
targetArrivals(MovementSchedule $schedule, Slot $target) : array<int, DemandLineArrival>
Parameters
- $schedule : MovementSchedule
- $target : Slot