Quintiq file version 2.0
|
#parent: #root
|
Method GetIsInputQuantityMatchesOutputQuantity (
|
output Strings feedback_o,
|
output Strings sanitycheckfeedbacks_o
|
) declarative remote as Boolean
|
{
|
Description: 'Returns true if total demand matches total supply out period task supply'
|
TextBody:
|
[*
|
isvalid := true;
|
requiredinput := 0.0;
|
ttlinput := 0.0;
|
|
//only check for manual planning
|
if( this.HasUserQuantity() or this.HasDependentDemandUserQuantity() )
|
{
|
output := this.Quantity();
|
ttlinput := sum( this, DependentDemand, dd, true, dd.Quantity() );
|
if( ttlinput > 0 and output > 0 )
|
{
|
isvalid := ttlinput / output = this.Operation().QuantityInFactorWithWIP();
|
requiredinput := output * this.Operation().QuantityInFactor();
|
}
|
}
|
|
if( not isnull( feedback_o ) and not isvalid )
|
{
|
gp := this.MacroPlan().GlobalParameters_MP();
|
instance := PeriodTaskOperation::GetInstanceText( this );
|
|
message := Translations::MP_PeriodTaskOperation_ViolateIsInputQuantityMatchesOutputQuantity( ttlinput.Round( gp.NumberOfDecimals() ), requiredinput.Round( gp.NumberOfDecimals() ) );
|
feedback_o.Add( SanityCheckMessage::GetFormattedMessage( instance, message ) );
|
sanitycheckfeedbacks_o.Add( SanityCheckCategoryLevel::GetSanityCheckCategoryPlanningIssue() );
|
}
|
|
return isvalid
|
*]
|
}
|