| Quintiq file version 2.0 | 
| #parent: #root | 
| Method InitConstraintsForOneTimeCost ( | 
|   CapacityPlanningSuboptimizer_CapacityPlanningAlgorithm program, | 
|   const RunContextForCapacityPlanning runcontext, | 
|   const LibOpt_Scope scope | 
| ) const | 
| { | 
|   Description: 'Initialize defining constraints for isused variable if needed' | 
|   TextBody: | 
|   [* | 
|     // constraint to define isused for (operation, period) | 
|      | 
|     if ( runcontext.UseOneTimeCost() )  | 
|     { | 
|       traverse( scope.GetOperationInOptimizerRunConst(), Elements, operation, operation.HasOneTimeCost() ) | 
|       { | 
|         periods := this.GetPeriodsForOperation( scope, operation ); | 
|          | 
|         traverse( periods, Elements, period ) | 
|         { | 
|           // add constraint: not isused -> PTQty <= 0  | 
|           var := program.PTQtyVariables().Get( operation, period ); | 
|           isusedvar := program.PTIsUsedVariables().Get( operation, period );  | 
|            | 
|           defconstr := program.PTIsUsedDefinitionConstraints().New( operation, period );  | 
|           defconstr.RHSValue( 0.0 );  | 
|           defconstr.Sense( '<=' );  | 
|           defconstr.NewTerm( 1.0, var );  | 
|            | 
|           program.NewIfNotThenConstraint( CapacityPlanningSuboptimizer::ConstraintNameIsUsedVarDef( operation, period ), isusedvar, defconstr );   | 
|         } | 
|       } | 
|     } | 
|   *] | 
|   InterfaceProperties { Accessibility: 'Module' } | 
| } |