Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Function CalcAge 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    value := 0.0; 
 | 
    pispip := this.ProductInStockingPointInPeriodPlanningLeaf(); 
 | 
     
 | 
    /* Start age of inventory supply is the duration between manufactured date to period start date 
 | 
       rounded up to the multiple of period's duration. 
 | 
      e.g. inv supply in W2, manufactured on 3-Jan, assuming W1: 1 Jan to 8 Jan, W2: 8 Jan to 15 Jan 
 | 
      age = 8-3 rounded up to multiple of 7 = 7 
 | 
    */ 
 | 
     
 | 
    if ( not isnull( pispip ) and this.Product_MP().HasShelfLifeOrMaturation() ) 
 | 
    { 
 | 
       
 | 
      period := pispip.Period_MP(); 
 | 
      date := pispip.Start(); 
 | 
      manufacturedate := this.ManufacturedDate(); 
 | 
       
 | 
      value := ifexpr( manufacturedate.IsFinite() and date.IsFinite(), 
 | 
                       ShelfLife::GetSupplyAge( manufacturedate, date.Date(), period ), 0.0 ); 
 | 
    }                 
 | 
     
 | 
    this.Age( value ); 
 | 
  *] 
 | 
} 
 |