| 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' } | 
| } |