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