Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method PISPGapFill ( 
 | 
  LibOpt_Scope scope, 
 | 
  RunContextForCapacityPlanning runcontext 
 | 
) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    this.ProductInStockingPointInPeriodPlanningHelper( relflush );  
 | 
    this.ProductInStockingPoint_MPHelper( relflush );  
 | 
    traverse( scope.GetPISPIPInOptimizerRun(), Elements, pispip )  
 | 
    { 
 | 
      pispip.SelectorMetaHelper( relset, this );  
 | 
      pispip.ProductInStockingPoint_MP().SelectorMetaHelper( relset, this );  
 | 
    } 
 | 
     
 | 
    traverse( this, ProductInStockingPoint_MPHelper, pisp )  
 | 
    { 
 | 
      pisp.EarliestPISPIPInScope( relflush ); 
 | 
      pisp.LatestPISPIPInScope( relflush );  
 | 
    } 
 | 
     
 | 
    traverse( this, ProductInStockingPointInPeriodPlanningHelper, pispip )  
 | 
    { 
 | 
      pisp := pispip.ProductInStockingPoint_MP();  
 | 
       
 | 
      if ( guard( pispip.Start() > pisp.LatestPISPIPInScope().Start(), true ) ) 
 | 
      { 
 | 
        pisp.LatestPISPIPInScope( relset, pispip );  
 | 
      } 
 | 
      if ( guard( pispip.Start() < pisp.EarliestPISPIPInScope().Start(), true ) ) 
 | 
      { 
 | 
        pisp.EarliestPISPIPInScope( relset, pispip );  
 | 
      } 
 | 
    } 
 | 
     
 | 
    traverse( this, ProductInStockingPoint_MPHelper, pisp, pisp.IsLeaf() ) 
 | 
    { 
 | 
      firstpispip := pisp.EarliestPISPIPInScope();  
 | 
      lastpispip := pisp.LatestPISPIPInScope();  
 | 
     
 | 
      currentpispip := firstpispip;  
 | 
      while( not isnull( currentpispip )  
 | 
             and currentpispip.Start() < lastpispip.Start() )  
 | 
      { 
 | 
        if ( not currentpispip.SelectorMetaHelper() = this )  
 | 
        { 
 | 
          scope.Add( currentpispip ); // we want to avoid calling this if the pispip is already in scope for performance 
 | 
        }  
 | 
        currentpispip := currentpispip.NextPlanningPISPIP(); 
 | 
      } 
 | 
    } 
 | 
     
 | 
    this.AddClosureForPISPIPInventorySpecificationAsDays( scope, runcontext ); // requires pisp.EarliestPISPIPInScope & ProductInStockingPoint_MPHelper 
 | 
     
 | 
    // clear dont want to spend database access 
 | 
    this.ProductInStockingPointInPeriodPlanningHelper( relflush );  
 | 
    this.ProductInStockingPoint_MPHelper( relflush ); 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |