yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
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
Quintiq file version 2.0
#parent: #root
Method VerifyOperationPlannedValue (
  Operation operation,
  Account_MP account,
  String pispName,
  String accountCostName,
  Real lotCost,
  Real lotSize
)
{
  TextBody:
  [*
    pisp := select( operation, OperationOutput.ProductInStockingPoint_MP, p, true, p.Name() = pispName );
    accountCost := select( account, AccountCost, ac, ac.DisplayName() = accountCostName );
    actualCost := sum( pisp, ProductInStockingPointInPeriodPlanning.Supply_MP.astype( NewSupply ), s,
                       true, (s.Quantity()/lotSize)*lotCost );
    
    // Generate expected value from AccountCost object
    expectedCost := 0.0;
    traverse( pisp, ProductInStockingPointInPeriodPlanning.Period_MP, period )
    {
      expectedCost := expectedCost + accountCost.GetActualCosts( period ); 
    }
    
    this.Run().AssertEqual( expectedCost, actualCost, 'Operation lot cost does not match the cost in the account' );
  *]
  InterfaceProperties { Accessibility: 'Module' }
}