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