yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Quintiq file version 2.0
#parent: #root
Function CalcExpectedServiceLevel
{
  TextBody:
  [*
    // Martijn Aug-24-2016 (created)
    
    // Calculates the weighted average service level in this iteration of those pispips that are linked to a service level
    totaldemand := sum( this, IterationPISPIP, itpispip,
                        guard( not isnull( itpispip.ProductInStockingPointInPeriodPlanning().GetServiceLevel() ), false ),
                        itpispip.TotalDemand() );
    
    value := 0.0;
    if( totaldemand > 0 )
    {
      value := sum( this, IterationPISPIP, itpispip,
                        guard( not isnull( itpispip.ProductInStockingPointInPeriodPlanning().GetServiceLevel() ), false ),
                        ( itpispip.TotalDemand() / totaldemand ) * itpispip.AchievedServiceLevel() );
    }
    
    this.ExpectedServiceLevel( value );
  *]
}