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