Quintiq file version 2.0
|
#parent: #root
|
StaticMethod ValidateInput (
|
output String feedback_o,
|
output String sanitycheckfeedback_o,
|
MacroPlan macroplan,
|
CampaignType_MP campaigntype,
|
DateTime start,
|
DateTime end,
|
Real minqty,
|
Real maxqty,
|
String comment,
|
Campaign_MP_DELETED_Q320 campaign,
|
Boolean checkunique
|
) declarative remote as Boolean
|
{
|
Description: 'Checks the correctness of input data from Create/Edit dialog.'
|
TextBody:
|
[*
|
// Precondition to validate the input for creating/editing Campaign_MP
|
feedback_o := '';
|
sanitycheckfeedback_o := '';
|
|
// Check if campaign type is null
|
if( isnull( campaigntype ) )
|
{
|
feedback_o := Translations::MP_Campaign_ValidateInput_IsNullCampaignType();
|
sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue();
|
}
|
// Check if start and end time window is valid
|
else if( start >= end )
|
{
|
feedback_o := '' // Translation is removed as object not in-used anymore
|
sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue();
|
}
|
// Check if minimum quantity is valid
|
else if( minqty < 0 )
|
{
|
feedback_o := Translations::MP_Campaign_ValidateInput_IsNegativeMinQuantity( minqty );
|
sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue();
|
}
|
// Check if maximum quantity is valid
|
else if( maxqty < 0 )
|
{
|
feedback_o := Translations::MP_Campaign_ValidateInput_IsNegativeMaxQuantity( maxqty );
|
sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue();
|
}
|
// Check if maximum quantity is larger than minimum quantity
|
else if( maxqty < minqty )
|
{
|
feedback_o := Translations::MP_Campaign_ValidateInput_IsMaxQuantityLessThanMaxQuantity( minqty, maxqty );
|
sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue();
|
}
|
// Check if campaign details are unique
|
else if( checkunique
|
and exists( campaigntype, Unit.Campaign_MP_DELETED_Q320, cpg,
|
cpg <> campaign
|
and Period_MP::IsInPeriod( start, end, cpg.Start(), cpg.End() ) ) )
|
{
|
feedback_o := Translations::MP_Campaign_ViolatesIsPlannedWithNoOverlap();
|
sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue();
|
}
|
|
// Format feedback text if any of the precondition above is violated
|
if( feedback_o <> '' )
|
{
|
instance := Campaign_MP_DELETED_Q320::GetInstanceText( campaigntype, start );
|
feedback_o := SanityCheckMessage::GetFormattedMessage( instance, feedback_o );
|
}
|
|
return feedback_o.Length() = 0
|
*]
|
}
|