yypsybs
2023-09-09 3cb5a54def670d97301f07170fcaad213bfc54f2
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
Quintiq file version 2.0
#parent: #root
Method GetKPIServiceLevel () const declarative remote as Real
{
  Description: 'Return the average planned percentage of service levels'
  TextBody:
  [*
    // edz1 Jul-14-2016 (created)
    totaldemandinsls := sum( this, AllServiceLevelBase, sl,
                             sl.IsEnabled()
                             and sl.IsUsedForSafetyStockCalculation()
                             and sl.End() >= this.GlobalParameters_MP().GetStartOfKPIHorizon()
                             and sl.Start() <= this.GlobalParameters_MP().GetEndOfKPIHorizon(),
                             sl.TotalDemandQuantity() )
    value := 0.0;
    if( totaldemandinsls > 0.0 )
    {
      // Calculated the weighted average service level (weighted by demand per service level)
      value := sum( this, AllServiceLevelBase, sl, 
                    sl.IsEnabled()
                    and sl.IsUsedForSafetyStockCalculation()
                    and sl.End() >= this.GlobalParameters_MP().GetStartOfKPIHorizon()
                    and sl.Start() <= this.GlobalParameters_MP().GetEndOfKPIHorizon() ,
                    sl.TotalFulfilledQuantity() / totaldemandinsls  );
    }
                   
    return 100 * value;
  *]
}