| Quintiq file version 2.0 | 
| #parent: #root | 
| Method GetIsPlannedWithinMaxRequired ( | 
|   output Strings feedback_o, | 
|   output Strings sanitycheckfeedbacks_o | 
| ) declarative remote as Boolean | 
| { | 
|   Description: 'Returns true if the planned quantity is less than maximum quantity or if the planned duration is less than maximum duration depending on input type. For sanity check.' | 
|   TextBody: | 
|   [* | 
|     gp := this.MacroPlan().GlobalParameters_MP();  | 
|     isvalid := true; | 
|     if( this.TransitionType_MP().InputType() = GlobalParameters_MP::GetCampaignTransitionsTypeQuantity() ) | 
|     { | 
|       isvalid := this.GetIsPlannedWithinMaxQuantity(); | 
|        | 
|       if( not isnull( feedback_o ) and not isvalid ) | 
|       { | 
|         instance := Transition_MP::GetInstanceText( this.TransitionType_MP(), this.Start() ); | 
|         message := Translations::MP_Transition_ViolatesIsPlannedWithinMaxQuantity( this, gp.NumberOfDecimals() );   | 
|         feedback_o.Add( SanityCheckMessage::GetFormattedMessage( instance, message ) ); | 
|         sanitycheckfeedbacks_o.Add( SanityCheckCategoryLevel::GetSanityCheckCategoryPlanningIssue() ); | 
|       } | 
|     } | 
|     else if( this.TransitionType_MP().InputType() = GlobalParameters_MP::GetCampaignTransitionsTypeDuration() ) | 
|     { | 
|       isvalid := this.GetIsPlannedWithinMaxDuration(); | 
|        | 
|       if( not isnull( feedback_o ) and not isvalid ) | 
|       { | 
|         instance := Transition_MP::GetInstanceText( this.TransitionType_MP(), this.Start() ); | 
|         message := Translations::MP_Transition_ViolatesIsPlannedWithinMaxDuration( this );   | 
|         feedback_o.Add( SanityCheckMessage::GetFormattedMessage( instance, message ) ); | 
|         sanitycheckfeedbacks_o.Add( SanityCheckCategoryLevel::GetSanityCheckCategoryPlanningIssue() ); | 
|       } | 
|     } | 
|     return isvalid; | 
|   *] | 
| } |