Quintiq file version 2.0
|
#parent: #root
|
Method GetBlendingViolation (
|
Real relativefiltering
|
) const declarative remote as Real
|
{
|
TextBody:
|
[*
|
outputrecipe := select( this, NewSupply.ProductInStockingPointInPeriodPlanningLeaf.RecipeWithEffectiveDate.Recipe, recipe, true ); // get recipe of period task output
|
|
blendingmaxviolation := 0.0;
|
blendingminviolation := 0.0;
|
traverse( outputrecipe, BaseRecipeIngredient, recipeingredient )
|
{
|
blendedvalue := this.GetBlendedValue( recipeingredient );
|
overmaxrel := maxvalue( 0.0, blendedvalue - recipeingredient.Maximum() );
|
belowminrel := maxvalue( 0.0, recipeingredient.Minimum() - blendedvalue );
|
|
increasemax := ifexpr( overmaxrel > relativefiltering, overmaxrel * this.Quantity(), 0.0 );
|
increasemin := ifexpr( belowminrel > relativefiltering, belowminrel * this.Quantity(), 0.0 );
|
blendingmaxviolation := maxvalue( blendingmaxviolation , increasemax );
|
blendingminviolation := maxvalue( blendingminviolation, increasemin );
|
}
|
return blendingmaxviolation + blendingminviolation;
|
*]
|
}
|