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