Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod GetSupplyAge ( 
 | 
  Date manufacturedate, 
 | 
  Date date, 
 | 
  Period_MP period 
 | 
) declarative as Real 
 | 
{ 
 | 
  Description: 'Calculate and round up age to the period duration' 
 | 
  TextBody: 
 | 
  [* 
 | 
    age := 0.0; 
 | 
     
 | 
    if ( not isnull( period ) ) 
 | 
    { 
 | 
        age := date - manufacturedate; 
 | 
         
 | 
        bucketduration := ifexpr( period.IsGapPlanning(), period.PreviousPlanningPeriod().DurationInDays(), period.DurationInDays() ); 
 | 
        //when there is no previous period, default the duration to 1 day. 
 | 
        bucketduration := ifexpr( period.IsGapPlanning(),  
 | 
                                  guard( period.PreviousPlanningPeriod().DurationInDays(), 1 ),  
 | 
                                  period.DurationInDays() ); 
 | 
        nrofperiod := ceil( age/bucketduration ); 
 | 
        age := Duration::Days( nrofperiod * bucketduration ).DaysAsReal(); 
 | 
    } 
 | 
     
 | 
    return age; 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |