| Quintiq file version 2.0 | 
| #parent: #root | 
| Method InitConstraintsForShiftPatternOnePerPeriod ( | 
|   CapacityPlanningSuboptimizer_CapacityPlanningAlgorithm program, | 
|   const UnitPeriod up, | 
|   Real scalefactor_spisused_const, | 
|   Real scalefactor_rhs_const | 
| ) const | 
| { | 
|   Description: 'Checks that each unit period has exactly one shift pattern planned.' | 
|   TextBody: | 
|   [* | 
|     constname := typeof( MPOneShiftPatternPerUnitPeriodConstraint ); | 
|      | 
|     scalefactor_spisused_const := this.ScaleConstraintTerm( typeof( MPShiftPatternIsUsedVariable ), constname ); | 
|      | 
|     scalefactor_rhs_const := this.ScaleConstraintRHS( constname, 1.0 ); | 
|      | 
|     // Constraint: one shift pattern per unit period | 
|     onespconstr := program.OneShiftPatternPerUnitPeriodConstraints().New( up ); | 
|     onespconstr.Sense( "=" ); | 
|     onespconstr.RHSValue( 1.0 * scalefactor_rhs_const ); | 
|      | 
|     traverse( up, Unit.UnitShiftPatternAllowed.ShiftPattern, sp )  | 
|     { | 
|       onespconstr.NewTerm( 1.0 * scalefactor_spisused_const, program.ShiftPatternIsUsedVariables().Get( sp, up ) ); | 
|     } | 
|   *] | 
|   InterfaceProperties { Accessibility: 'Module' } | 
| } |