lazhen
2025-01-09 8afe90b633046db39042aada36b88193062f8cff
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
33
34
35
36
37
38
39
40
Quintiq file version 2.0
#parent: #root
Method SynchronizeInputGroup (
  Boolean isfromdb,
  Boolean isondelete
)
{
  Description: 'Create operation input group if required.'
  TextBody:
  [*
    // DWE2 Mar-30-2016 (created)
    operation := this.GetInputOperation();
    
    // If is input
    if( not isnull( operation ) )
    {
      operationinputgroup := OperationInputGroup::FindOperationInputGroupTypeIndex( operation.ID(), this.GetInputGroupID() );
      siblingsize := this.GetSiblingInputs().Size();
      
      // add siblings
      if( isnull( operationinputgroup ) and siblingsize > 0 )
      {
        OperationInputGroup::Create( operation,
                                     this.GetInputGroupID(),
                                     this.MacroPlan().GlobalParameters_MP().DefaultOperationInputOutputQuantity(),
                                     isfromdb );
      }                                  
      else
      {
        // operation is already in group and there is just 1 sibling left, remove group
        // when is ondelete and there is only 1 sibling left, delete operationinputgroup
        if(  siblingsize < 1  or ( siblingsize =1 and isondelete ) )
        {
          inputgroups := selectset( operation, OperationInputGroup, oig, oig.GetCanBeDeleted( this ) )
          OperationInputGroup::Delete( inputgroups );
        } 
      }
    }
  *]
}