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