Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod GetTotalDemandInRemainingDays ( 
 | 
  constcontent ProductInStockingPointInPeriodPlannings pispips, 
 | 
  Real remainingdays 
 | 
) const declarative remote as Real 
 | 
{ 
 | 
  Description: 'Get total demand of the pispips in the remaining days of target inventory specification' 
 | 
  TextBody: 
 | 
  [* 
 | 
    totaldemand := 0.0; 
 | 
     
 | 
    traverse( pispips, Elements, pispip ) 
 | 
    { 
 | 
      periodduration := pispip.Period_MP().DurationInDays(); 
 | 
      salesdemandqty := pispip.SalesDemandQuantity() 
 | 
      if( remainingdays < periodduration 
 | 
          // If there is no next period and the duration of the current period is shorter than the remaining days 
 | 
          // Then we keep repeating the last period for the purposes of the demand per day calculation 
 | 
          or ( isnull( pispip.NextPlanningPISPIP() ) 
 | 
               and not periodduration = 0 ) ) 
 | 
      { 
 | 
        totaldemand := totaldemand + ( remainingdays / periodduration ) * salesdemandqty; 
 | 
        remainingdays := 0; 
 | 
      } 
 | 
      else 
 | 
      { 
 | 
        totaldemand := totaldemand + salesdemandqty; 
 | 
        remainingdays := remainingdays - periodduration;   
 | 
      } 
 | 
    } 
 | 
     
 | 
    return totaldemand; 
 | 
  *] 
 | 
} 
 |