| 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; | 
|   *] | 
| } |