Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method AddPTQtyGoal ( 
 | 
  const LibOpt_Scope scope, 
 | 
  CapacityPlanningSuboptimizer_CapacityPlanningAlgorithm program, 
 | 
  MPGoal goal 
 | 
) const 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    if ( this.IsExecutePTQtyDoInventoryBased() )  
 | 
    { 
 | 
      traverse( scope.GetPISPIPInOptimizerRunConst(), Elements.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispip, not pispip.ProductInStockingPoint_MP().IsNegativeInventoryAllowed() )  
 | 
      { 
 | 
        var := program.InvQtyVariables().Get(  pispip );  
 | 
        goal.NewTerm( -1.0, var );  
 | 
      } 
 | 
    } 
 | 
    else 
 | 
    { 
 | 
      traverse( scope.GetOperationInOptimizerRunConst(), Elements, operation ) 
 | 
      { 
 | 
        periods := this.GetPeriodsForOperation( scope, operation ); 
 | 
        traverse( periods, Elements, period ) 
 | 
        { 
 | 
          // PTQty variable UoM: Unit 
 | 
          var := program.PTQtyVariables().Get( operation, period ); 
 | 
          goal.NewTerm( -1.0, var )  
 | 
        } 
 | 
      } 
 | 
       
 | 
      traverse( scope.GetProductInTripInOptimizerRunConst(), Elements, productintrip ) 
 | 
      { 
 | 
        var := program.TripNewSupplyVariables().Get( productintrip ); // The supply quantity for product in trip 
 | 
        goal.NewTerm( -1.0, var )    
 | 
      }   
 | 
    } 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |