| 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; |  |   *] |  | } | 
 |