admin
2025-01-22 7e31442f0e9b07764e9c6a9680d3d4aeba5fe1de
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 );
    }
  *]
}