Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method GetPISPIPForShelfLifeOptimizer ( 
 | 
  const LibOpt_Scope scope 
 | 
) const as constcontent owning ProductInStockingPointInPeriodPlannings 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    pispipsinrun := selectset( this,  
 | 
                               ProductInStockingPoint_MP.ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ),  
 | 
                               pispip,  
 | 
                               true, 
 | 
                               scope.Contains( pispip.PISPIPInOptimizerRun() ) );  
 | 
    startfirst := min( pispipsinrun, Elements, p, true, p.Start() );  
 | 
    shelflife := maxvalue(  Duration::Days( this.ProductInStockingPoint_MP().Product_MP().ShelfLife() ),  
 | 
                            Duration::Days( this.ProductInStockingPoint_MP().Product_MP().MaturationDays() ) );  
 | 
    extra := selectset( this, ProductInStockingPoint_MP.ProductInStockingPointInPeriodPlanning, p, true, p.Start() < startfirst and p.End() > startfirst - shelflife ); 
 | 
    initpispips := extra.Union( pispipsinrun );  
 | 
    initpispips := initpispips.Unique();  
 | 
    return &initpispips; 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |