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 GetBaseCostForInventoryHolding (
  output Real cost_o,
  output Real costwithinhorizon_o
) declarative
{
  Description: 'returns inventory holding cost for finished goods and WIP'
  TextBody:
  [*
    wipcostforopt := 0.0; 
    costperdaytotalforopt := 0.0; 
    traverse( this, LeafPISP.ProductInStockingPointInPeriodPlanning, pispip )
    {
      totalcost := pispip.GetBaseInventoryHoldingCost( this );
    
      cost_o := cost_o + totalcost;
    
      if( pispip.Period_MP().IsWithinKPIHorizon() )
      {
        costwithinhorizon_o := costwithinhorizon_o + totalcost;
      }
      
      wipcostforopt := wipcostforopt + pispip.GetBaseWIPCostPerQuantityPerDay( this ); 
      costperdaytotalforopt := costperdaytotalforopt + pispip.GetBaseInventoryHoldingCostPerQuantity(  this ); // different from cost because it ignores the inventory end
    }
    this.SetBaseCostForOptimizer( wipcostforopt, costperdaytotalforopt );
  *]
}