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
45
46
47
  | Quintiq file version 2.0 
 |  #parent: #root 
 |  Method Update ( 
 |    String username_i, 
 |    String name_i, 
 |    String description_i, 
 |    Boolean isfromdb_i 
 |  ) as OptimizerPuzzle 
 |  { 
 |    TextBody: 
 |    [* 
 |      // Gets the WIP object user editing, to overwrite (or create new) OptimizerPuzzle 
 |      wip := select( this,  
 |                     OptimizerPuzzleWIP,  
 |                     w,  
 |                     w.Username() = username_i ); 
 |       
 |      opti := null( OptimizerPuzzle ); 
 |       
 |      // Copy 
 |      if( wip.CreateAsNew() ) 
 |      { 
 |        opti := OptimizerPuzzle::Create( wip.OptimizerPuzzle().MacroPlan(),  
 |                                 name_i, 
 |                                 description_i, 
 |                                 false,      // IsLastUsed 
 |                                 isfromdb_i, // IsFromDB 
 |                                 wip ); 
 |      } 
 |      // Edit 
 |      else 
 |      { 
 |        // Update Name, Description and IsManuallyConfigured 
 |        this.Update( name_i, description_i, isfromdb_i ); 
 |         
 |        // Copy Subsets from OptimizerPuzzleWIP to OptimizerPuzzle 
 |        wip.SyncSubsetAll( this ); 
 |         
 |        opti := this; 
 |         
 |        // Delete the wip ( this is done in OptimizerPuzzle::Create for copy / create ) 
 |        wip.Delete(); 
 |      } 
 |       
 |      return opti; 
 |    *] 
 |  } 
 |  
  |