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
48
| Quintiq file version 2.0
| #parent: #root
| StaticMethod Update (
| UnitCosts unitCosts,
| Units units,
| Account_MP account,
| String costDriver,
| Date start,
| Boolean editTimeUnit,
| String timeUnit,
| Boolean editLengthOfTime,
| Number lengthOfTime,
| Boolean editCost,
| Real cost
| ) as owning UnitCosts
| {
| TextBody:
| [*
| // Batch update unitcosts
| result := construct( UnitCosts );
| isFromDB := false;
| singleEdit := unitCosts.Size() = 1;
| if( singleEdit )
| { // If only single update, update all
| editTimeUnit := true;
| editLengthOfTime := true;
| editCost := true;
| }
|
| traverse( unitCosts, Elements, unitcost )
| {
| // If batch edit different units, UI will not be able change unit this safe to check for single unit to change owner
| if( singleEdit )
| {
| unitcost.ChangeOwnerUnit( units.First() );
| }
| unitcost.Update( ifexpr( singleEdit, account, unitcost.Account_MP() ),
| ifexpr( singleEdit, costDriver, unitcost.CostDriver() ),
| ifexpr( singleEdit, start, unitcost.Start() ),
| ifexpr( editTimeUnit, timeUnit, unitcost.TimeUnit() ) ,
| ifexpr( editLengthOfTime, lengthOfTime, unitcost.LengthOfTime()),
| ifexpr( editCost, cost, unitcost.Cost() ),
| isFromDB );
| result.Add( unitcost );
| }
| return &result;
| *]
| }
|
|