陈清红
2025-04-14 880f3c0257eeb8c37761d484258fdd102a369a19
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
41
42
43
44
Quintiq file version 2.0
#parent: #root
Method AssignParent (
  LibCal_EventType parent
)
{
  Description: 'Assign this event type as a child of the given event type'
  TextBody:
  [*
    // zlg Nov-20-2015 (created)
    oldparent := this.Parent();
    newparentid := guard( parent.ID(), '' );
    hasnewparent := guard( oldparent.ID(), '' ) <> newparentid;
    
    if( this.HasDescendant( parent ) )
    {
      parent.ParentID( this.ParentID() );
    }
    this.ParentID( newparentid );
    
    // Calculate siblings of the product to the new parent
    if( hasnewparent )
    {
      this.ParentID( guard( parent.ID(), '' ) );
    
      traverse( this, AllChildren.AsChildren, p )
      {
        p.SetAllParent();
      }
    
      // Propogate the HasParent attribute to use in setting root product
      Transaction::Transaction().Propagate( attribute( Product_MP, HasParent ) );
      this.SetRootEvent();
    //  this.SetSiblings();
    
      // Recalculate siblings for the old parent
    //  traverse( oldparent, AllChildren, child )
    //  {
    //    child.AsChildren().SetSiblings();
    //  }
    
    }
  *]
}