Quintiq file version 2.0 
 | 
#parent: #root 
 | 
MethodOverride GetWeightFactor ( 
 | 
  const LibOpt_Task task 
 | 
) as Real 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    runcontext := RunContextForCapacityPlanning::GetRunContextCapacityPlanningConst( task.Run() );  
 | 
    wl := runcontext.WeightLevelNonFinancial();  
 | 
    weight := 0.0;  
 | 
    candidates := LinkProbabilityPeriodTaskOperation::GetCandidatesConst( task.Scope() );  
 | 
     
 | 
    available := ( ( wl.LotSizeWeight() > 0 and wl.LotSizeLevel() = this.FocusLevel() ) 
 | 
                    or ( wl.ProcessMinimumQuantityWeight() > 0 and wl.LotSizeLevel() = this.FocusLevel() )  
 | 
                    or ( wl.ProcessMaximumQuantityWeight() > 0 and wl.ProcessMaximumQuantityLevel() = this.FocusLevel() )  
 | 
                 ) 
 | 
                 and candidates.Size() > 0;    
 | 
    if ( available )  
 | 
    { 
 | 
      weight := average(  candidates, Elements, c, true, c.EstimatedImprovementScore() ); 
 | 
    }   
 | 
     
 | 
    debuginfo(  'PTO[' + [String] weight + '] #cand=' + [String]candidates.Size() + [String] available );  
 | 
    return weight; 
 | 
  *] 
 | 
} 
 |