lazhen
2025-01-09 8afe90b633046db39042aada36b88193062f8cff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Quintiq file version 2.0
#parent: #root
Method UpdateMinMaxRHS (
  Real rhs,
  MPConstraint constr
)
{
  Description: 'Updates the minimum and maximum right hand side of this scaling type'
  TextBody:
  [*
    // select the scaling type associated with this constraint
    
    workaroundname := 'MP' + constr.Name() + 'Constraint'; 
    scalingtypename := CapacityPlanningSuboptimizer::GetConstraintScaleType( workaroundname ); //usign workaround this is broken: typeofexpression( constr ).ShortName() );
    
    scalingtype := this.GetScalingType( scalingtypename );
    
    // Update the min and max rhs of this scaling type
    absrhs := abs( rhs );
    if( absrhs <> 0 and absrhs.IsFinite() )
    {
      if( absrhs < scalingtype.MinRHS() )
      {
        scalingtype.MinRHS( absrhs );
        scalingtype.ConstraintNameMinRHS( constr.Name() );
      }
      if( absrhs > scalingtype.MaxRHS() )
      {
        scalingtype.MaxRHS( absrhs );
        scalingtype.ConstraintNameMaxRHS( constr.Name() );
      }
    }
  *]
}