Quintiq file version 2.0
|
#parent: #root
|
FunctionOverride CalcEstimate
|
{
|
TextBody:
|
[*
|
// Select the MoveStep related to the source and destination that has last been tried
|
lastmovestepsource := maxselect( this, SourceInventorySpecification.MoveStep, movestep, true, guard( movestep.Iteration().IterationNumber(), 0 ) );
|
lastmovestepdestination := maxselect( this, DestinationInventorySpecification.MoveStep, movestep, true, guard( movestep.Iteration().IterationNumber(), 0 ) );
|
|
// Calculate the expected benefit of the swap move
|
estimate := this.Quantity() * ( guard( lastmovestepdestination.BenefitPerQtyLatestAttempt(), 0.0 ) - guard( lastmovestepsource.BenefitPerQtyLatestAttempt(), 0.0 ) )
|
|
// If there is no quantity at the source, then the swap move does not make sense so we give it a negative estimate
|
if( this.SourceInventorySpecification().TargetInQuantity_DELETED_Nov19() <= 0 )
|
{
|
estimate := -10;
|
}
|
|
// Reduce the estimate if the last X times that this move was tried it did not find an improvement
|
estimate := this.GetCorrectionEstimateForPreviousFailures() * estimate;
|
|
this.Estimate( estimate );
|
*]
|
}
|