Quintiq file version 2.0
|
#parent: #root
|
Function CalcStatus
|
{
|
Description: 'Calculate the status depending of the parent and the childs'
|
TextBody:
|
[*
|
// Calculate status
|
|
// Default value
|
value := OptimizerPuzzleBase::StatusIcon_Check();
|
|
isChild := this.ChildSubsetNonSystem( relsize ) = 0;
|
// Is a child
|
if( isChild )
|
{
|
value := ifexpr( this.IsIncludeFinal(), OptimizerPuzzleBase::StatusIcon_Check(), OptimizerPuzzleBase::StatusIcon_Uncheck() );
|
}
|
// Is a parent
|
else
|
{
|
// Get all children unique status
|
uniqueStatus := selectuniquevalues( this, ChildSubsetNonSystem, child, true, child.Status() );
|
uniqueStatusFirstElement := uniqueStatus.Element( 0 );
|
|
if( this.IsIncludeFinal() )
|
{
|
// If all children having same status AND inclusion state equals me => set my status to equal the unique value of my children status (partial check or check)
|
value := ifexpr( uniqueStatus.Size() = 1 and this.GetIsPartialOrFullyCheck( uniqueStatusFirstElement ),
|
uniqueStatusFirstElement,
|
OptimizerPuzzleBase::StatusIcon_PartialCheck() );
|
}
|
else
|
{
|
// If all children having same status AND inclusion state equals me => set my status to equal the unique value of my children status (partial uncheck or uncheck)
|
value := ifexpr( uniqueStatus.Size() = 1 and this.GetIsPartialOrFullyUncheck( uniqueStatusFirstElement ),
|
uniqueStatusFirstElement,
|
OptimizerPuzzleBase::StatusIcon_PartialUncheck() );
|
}
|
}
|
|
this.Status( value );
|
*]
|
}
|