TimelineShipmentPlanner
in package
implements
ShipmentPlannerInterface
FinalYes
Builds shipments by walking the arrival timeline, applying consolidation windows and release policies.
Table of Contents
Interfaces
- ShipmentPlannerInterface
- Builds shipment plans from per-line demand schedules.
Methods
- context() : DemandReleaseContext
- Build one release-policy context for the given planning moment.
- plan() : array<int, DemandShipment>
- Build planned shipments from the provided per-line schedules.
- applyShipmentCalendarRule() : int
- releaseAtCandidateTime() : void
- releaseTime() : int
- validateReleaseTime() : int
Methods
context()
Build one release-policy context for the given planning moment.
public
context(DemandScheduleRequest $request, array<int, DemandLineSchedule> $lineSchedules, int $time, bool $finalEvaluation, array<string, int|float> $availableBySubject, array<string, int|float> $shippedBySubject, array<int, DemandShipment> $shipments) : DemandReleaseContext
Parameters
- $request : DemandScheduleRequest
- $lineSchedules : array<int, DemandLineSchedule>
- $time : int
- $finalEvaluation : bool
- $availableBySubject : array<string, int|float>
- $shippedBySubject : array<string, int|float>
- $shipments : array<int, DemandShipment>
Attributes
- #[Override]
Return values
DemandReleaseContextplan()
Build planned shipments from the provided per-line schedules.
public
plan(DemandScheduleRequest $request, array<int, DemandLineSchedule> $lineSchedules) : array<int, DemandShipment>
Parameters
- $request : DemandScheduleRequest
- $lineSchedules : array<int, DemandLineSchedule>
Attributes
- #[Override]
Return values
array<int, DemandShipment>applyShipmentCalendarRule()
private
applyShipmentCalendarRule(ShipmentCalendarRuleInterface $rule, DemandReleaseContext $context, DemandShipmentLine $shipmentLine, ScheduledStep $step, int $releaseTime) : int
Parameters
- $rule : ShipmentCalendarRuleInterface
- $context : DemandReleaseContext
- $shipmentLine : DemandShipmentLine
- $step : ScheduledStep
- $releaseTime : int
Return values
intreleaseAtCandidateTime()
private
releaseAtCandidateTime(DemandScheduleRequest $request, array<int, DemandLineSchedule> $lineSchedules, int $candidateTime, bool $finalEvaluation, array<string, int|float> &$availableBySubject, array<string, int|float> &$shippedBySubject, array<int, DemandShipment> &$shipments) : void
Parameters
- $request : DemandScheduleRequest
- $lineSchedules : array<int, DemandLineSchedule>
- $candidateTime : int
- $finalEvaluation : bool
- $availableBySubject : array<string, int|float>
- $shippedBySubject : array<string, int|float>
- $shipments : array<int, DemandShipment>
releaseTime()
private
releaseTime(DemandReleaseContext $context, array<int, DemandShipmentLine> $shipmentLines, int $candidateTime) : int
Parameters
- $context : DemandReleaseContext
- $shipmentLines : array<int, DemandShipmentLine>
- $candidateTime : int
Return values
intvalidateReleaseTime()
private
validateReleaseTime(int $releaseTime, int $minimumTime) : int
Parameters
- $releaseTime : int
- $minimumTime : int