| Quintiq file version 2.0 | 
| #parent: #root | 
| Method DoSanityCheckGroupQuantityInInputGroup ( | 
|   output Strings feedback_o, | 
|   output Strings sanitycheckfeedback_o | 
| ) declarative remote as Boolean | 
| { | 
|   Description: "Only applicable to period task operation's dependent demand of an input group" | 
|   TextBody: | 
|   [* | 
|     isvalid := true; | 
|     minqty := 0.0; | 
|     maxqty := 0.0; | 
|      | 
|     if( not isnull( this.ProcessInput() ) and this.ProcessInput().istype( OperationInput ) ) | 
|     { | 
|       operationinput := this.ProcessInput().astype( OperationInput ); | 
|       if( operationinput.IsElementOfInputGroup() ) | 
|       { | 
|         ptqty := this.PeriodTask_MP().Quantity(); | 
|         minqty := operationinput.MinQuantityFactor() * ptqty; | 
|         maxqty := operationinput.MaxQuantityFactor() * ptqty; | 
|         isvalid := minqty <= this.Quantity() | 
|                    and this.Quantity() <= maxqty; | 
|       } | 
|     } | 
|      | 
|     if( not isnull( feedback_o ) and not isvalid ) | 
|     { | 
|       gp := this.PeriodTask_MP().MacroPlan().GlobalParameters_MP(); | 
|       instance := Translations::MP_Demand_Instance( this, this.GetPISPName(), this.GetPISPIPStart() ); | 
|       message := Translations::MP_DependentDemand_ViolatePlannedQuantityInInputGroup( this.Quantity(), minqty, maxqty, gp.NumberOfDecimals() ); | 
|       feedback_o.Add( SanityCheckMessage::GetFormattedMessage( instance, message ) ); | 
|       sanitycheckfeedback_o.Add( SanityCheckCategoryLevel::GetSanityCheckCategoryPlanningIssue() ); | 
|     } | 
|      | 
|     return isvalid | 
|   *] | 
| } |