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
Quintiq file version 2.0
#parent: #root
StaticMethod Delete (
  ScenarioNodes scenarionodes,
  ScenarioManager owner
)
{
  Description: 'Move scenarios to recycle bin'
  TextBody:
  [*
    // Cannot use ScenarioManager::DeleteObjects because the logic is different.
    before := null( ScenarioNode );
    isdeleted := false;
    
    traverse( scenarionodes, Elements, e, e.istype( Scenario ) )
    {
      // Move child node to under object's parent,
      // we don't want to delete the child scenarios if its parent is not a folder and its deleted
      traverse( e, Children, child )
      {
        e.Parent().MoveAfter( child, before );
      }
    }
    
    recyclebin := select( scenarionodes, Elements.ScenarioManager.ScenarioNode.astype( ScenarioFolder ), folder, true, folder.IsRecycleBin() );
    
    if( not isnull ( recyclebin ) )
    {
      recyclebin.Move( scenarionodes, isdeleted );
    }
  *]
}