| Quintiq file version 2.0 | 
| #parent: #root | 
| Method InitConstraintsForCampaignCalcTotalUnitPeriodCampaignUtilizationSlack ( | 
|   CapacityPlanningSuboptimizer_CapacityPlanningAlgorithm program, | 
|   const LibOpt_Scope scope | 
| ) const | 
| { | 
|   TextBody: | 
|   [* | 
|     totalutilizationslack_constname := typeof( MPCalcTotalUnitPeriodCampaignUtilizationSlackConstraint ); | 
|     scalefactor_CampaignElementTypePeriodUnderloadedStart_const := this.ScaleConstraintTerm( typeof( MPCampaignElementTypePeriodUnderloadedStartVariable ), totalutilizationslack_constname ); | 
|     scalefactor_CampaignElementTypePeriodUnderloadedMid_const := this.ScaleConstraintTerm( typeof( MPCampaignElementTypePeriodUnderloadedMidVariable ), totalutilizationslack_constname ); | 
|     scalefactor_CampaignElementTypePeriodUnderloadedEnd_const := this.ScaleConstraintTerm( typeof( MPCampaignElementTypePeriodUnderloadedEndVariable ), totalutilizationslack_constname ); | 
|     scalefactor_TotalUnitPeriodCampaignUtilizationSlack_const := this.ScaleConstraintTerm( typeof( MPTotalUnitPeriodCampaignUtilizationSlackVariable ), totalutilizationslack_constname ); | 
|      | 
|     constr := program.CalcTotalUnitPeriodCampaignUtilizationSlackConstraints().New(); | 
|     totalunitperiod := program.TotalUnitPeriodCampaignUtilizationSlackVariables().Get(); | 
|     constr.NewTerm( scalefactor_TotalUnitPeriodCampaignUtilizationSlack_const , totalunitperiod ); | 
|      | 
|     traverse( scope.GetUnitPeriodInOptimizerRunConst(), Elements.OptCampaignUnitSubPeriod, ocusp ) | 
|     { | 
|       traverse( ocusp, OptCampaignCombiElement.OptCampaignElementType, ocet ) | 
|       { | 
|         varperiodunderloadedstart := program.CampaignElementTypePeriodUnderloadedStartVariables().Get( ocet, ocusp ); | 
|         varperiodunderloadedmid := program.CampaignElementTypePeriodUnderloadedMidVariables().Get( ocet, ocusp ); | 
|         varperiodunderloadedend := program.CampaignElementTypePeriodUnderloadedEndVariables().Get( ocet, ocusp ); | 
|         constr.NewTerm( - scalefactor_CampaignElementTypePeriodUnderloadedStart_const, varperiodunderloadedstart ); | 
|         constr.NewTerm( - scalefactor_CampaignElementTypePeriodUnderloadedMid_const, varperiodunderloadedmid ); | 
|         constr.NewTerm( - scalefactor_CampaignElementTypePeriodUnderloadedEnd_const, varperiodunderloadedend ); | 
|       } | 
|     } | 
|   *] | 
|   InterfaceProperties { Accessibility: 'Module' } | 
| } |