Quintiq file version 2.0 
 | 
#parent: #root 
 | 
MethodOverride InitConstraintsForUnitPeriodCapacities ( 
 | 
  CapacityPlanningSuboptimizer_CapacityPlanningAlgorithm program, 
 | 
  Boolean enableminconst, 
 | 
  Real totalmincapacity, 
 | 
  Real totalmaxcapacity, 
 | 
  const RunContextForCapacityPlanning runcontext, 
 | 
  const LibOpt_Scope scope, 
 | 
  const CapacityPlanningSuboptimizer subopt 
 | 
) const 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    algorithm := subopt;  
 | 
     
 | 
    // defining minimum capacities for unit, Sum of PT Qty + not met >= UP.MinCapacity 
 | 
    // minconstup constraint UoM: Unit 
 | 
    minconstup := null( MPConstraint ); 
 | 
     
 | 
    if( this.Unit().HasCapacityTypeTransportTime() )  
 | 
    { 
 | 
      minconstup := program.MinUnitCapacityTimeConstraints().New( this ); 
 | 
    } 
 | 
    else 
 | 
    { 
 | 
      minconstup := program.MinUnitCapacityQtyConstraints().New( this ); 
 | 
    } 
 | 
     
 | 
    minconstup.Sense( '>=' ); 
 | 
     
 | 
    // RHS UoM: Unit 
 | 
    minconstup.RHSValue( algorithm.ScaleConstraintRHS( typeofexpression( minconstup ), totalmincapacity ) ); 
 | 
    // Term UoM: Unit 
 | 
    var := this.GetCapacityNotMetVariable( program );  
 | 
    minconstup.NewTerm( 1.0 * algorithm.ScaleConstraintTerm( typeofexpression( var ), typeofexpression( minconstup ) ) 
 | 
                        , var ); 
 | 
    minconstup.Enabled( enableminconst ) 
 | 
     
 | 
    // defining maximum capacities for unit, Sum of PT Qty <= UP.AvailableCapacity 
 | 
    // maxconstup constraint UoM: Unit 
 | 
    maxconstup := null( MPConstraint ); 
 | 
    if( this.Unit().HasCapacityTypeTransportTime() ) 
 | 
    { 
 | 
      maxconstup := program.MaxUnitCapacityTimeConstraints().New( this ); 
 | 
    } 
 | 
    else 
 | 
    { 
 | 
      maxconstup := program.MaxUnitCapacityQtyConstraints().New( this ); 
 | 
    } 
 | 
     
 | 
    maxconstup.Sense( '<=' ); 
 | 
    // RHS UoM: Unit 
 | 
    maxconstup.RHSValue( algorithm.ScaleConstraintRHS( typeofexpression( maxconstup ), totalmaxcapacity ) ); 
 | 
    maxconstup.Enabled( not this.IsPlannedInfinite() ); 
 | 
     
 | 
    this.InitConstraintsForCapacityUsage( program, minconstup, maxconstup, runcontext, scope, subopt ); 
 | 
  *] 
 | 
} 
 |