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
  | Quintiq file version 2.0 
 |  #parent: #root 
 |  StaticMethod Update ( 
 |    ProductInStockingPoint_MPs owners, 
 |    output owning InventoryValueAndCosts inventoryCosts, 
 |    Account_MP account, 
 |    String costDriver, 
 |    Date start, 
 |    String timeUnit, 
 |    Number lengthOfTime, 
 |    Boolean isBatchEditCost, 
 |    Real cost, 
 |    Boolean isFromDB 
 |  ) 
 |  { 
 |    TextBody: 
 |    [* 
 |      // Batch update 
 |      singleEdit := inventoryCosts.Size() = 1; 
 |      if( singleEdit ) 
 |      { // Only allowed change of owner during single edit, safe to check element(0) 
 |        inventoryCosts.First().ChangeOwnerPISP( owners.First() ); 
 |      } 
 |      traverse( inventoryCosts, Elements, inventoryCost ) 
 |      { 
 |        // Single edit will update all fields. Cost is dependent on isBatchEditCost boolean input  // Note: TimeUnit & LengthOfTime will always remain unchanged 
 |        inventoryCost.Update( ifexpr( singleEdit, account, inventoryCost.Account_MP() ), 
 |                              ifexpr( singleEdit, costDriver, inventoryCost.CostDriver() ), 
 |                              ifexpr( singleEdit, start, inventoryCost.Start() ), 
 |                              inventoryCost.TimeUnit(),  
 |                              inventoryCost.LengthOfTime(), 
 |                              ifexpr( isBatchEditCost or singleEdit, cost, inventoryCost.Cost() ), 
 |                              isFromDB ); 
 |      } 
 |    *] 
 |  } 
 |  
  |