| Quintiq file version 2.0 | 
| #parent: #root | 
| Method UpdateRHSForPeriodTasksNotInScope ( | 
|   MPConstraint minconst, | 
|   MPConstraint maxconst, | 
|   const RunContextForCapacityPlanning runcontext, | 
|   const LibOpt_Scope scope, | 
|   const CapacityPlanningSuboptimizer subopt, | 
|   Real scalefactor_rhs_minconst, | 
|   Real scalefactor_rhs_maxconst | 
| ) const | 
| { | 
|   Description: 'Update the RHS based on operations outisde the optimizer horizon' | 
|   TextBody: | 
|   [* | 
|     // note for UnitPeriodTransportTime, UnitPeriodTransportQuantity we rely on overloads so we only treat PeriodTaskOperation here.  | 
|     traverse( this,  | 
|               PeriodTaskOperation,  | 
|               periodtask,  | 
|               isnull( periodtask.UnitPeriodWhenInScope() ) ) | 
|     { | 
|       //Changed the guard default value to periodtask.QuantityToProcess() as periodtask.RequiredQuantity mainly used when its Time based capacity. | 
|       //For other capacity type, normally RequiredCapacity will be set as zero and that will resulted in fixedquantity = 0. | 
|       fixedquantity := guard( periodtask.QuantityToProcess() / periodtask.RequiredCapacity(), periodtask.QuantityToProcess() ); | 
|       newrhsminconst := subopt.GetConstraintRHS( minconst, scalefactor_rhs_minconst ) - fixedquantity; | 
|       minconst.RHSValue( newrhsminconst * scalefactor_rhs_minconst ); | 
|      | 
|       newrhsmaxconst := subopt.GetConstraintRHS( maxconst, scalefactor_rhs_maxconst ) - fixedquantity; | 
|       maxconst.RHSValue( newrhsmaxconst * scalefactor_rhs_maxconst ); | 
|     } | 
|      | 
|     traverse( this, ChildOfUnitDimension, childunitperiod ) | 
|     { | 
|       childunitperiod.UpdateRHSForPeriodTasksNotInScope( minconst, maxconst, runcontext, scope, subopt, scalefactor_rhs_minconst, scalefactor_rhs_maxconst ); | 
|     } | 
|   *] | 
|   InterfaceProperties { Accessibility: 'Module' } | 
| } |