admin
2025-01-22 7e31442f0e9b07764e9c6a9680d3d4aeba5fe1de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Quintiq file version 2.0
#parent: #root
Method GetDecendentsInOptimizerSubset (
  OptimizerPuzzle optimizerPuzzle,
  Boolean isParentIncluded
) as owning Units
{
  TextBody:
  [*
    units := construct( Units );
    
    traverse( this, Child, unit )
    {
      subSet := optimizerPuzzle.GetSubsetUnit( unit );
      localIsIncluded := ( not isnull( subSet ) and subSet.IsIncluded() ) // Include, when unit have subset is included
                         or ( isnull( subSet ) and isParentIncluded )  // Include when no subset and parent is included
    
      if( localIsIncluded )
      {
        units.Add( unit );
      }
     
      local := unit.GetDecendentsInOptimizerSubset( optimizerPuzzle,
                                                    localIsIncluded ); 
      
      units := units.Union( local );                                    
    }
    
    return &units;
  *]
  InterfaceProperties { Accessibility: 'Module' }
}