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
Quintiq file version 2.0
#parent: #root
Method GetKPICampaignTotalPlannedQtyBelowMinQty () declarative remote as Real
{
  TextBody:
  [*
    
    value := sum( this, Unit.CampaignType_MP.Campaign_MP, campaign,
                  campaign.DerivedMinQuantity()>0,
                  // get quantity undercoverage for campaign fully within KPI and campaign horizon
                  ifexpr( campaign.End() < minvalue( campaign.Unit().CampaignTypeRequirementHorizon(), this.GlobalParameters_MP().GetEndOfKPIHorizon().DateTime() ),
                          maxvalue( campaign.DerivedMinQuantity() - campaign.FulfilledQuantity(), 0.0 ),
                          // get prorated quantity undercoverage for campaign partially within KPI and campaign horizon
                          ifexpr( campaign.Start() < minvalue( campaign.Unit().CampaignTypeRequirementHorizon(), this.GlobalParameters_MP().GetEndOfKPIHorizon().DateTime() ),
                                  maxvalue( campaign.DerivedMinQuantity() - campaign.FulfilledQuantity(), 0.0 ) * 
                                  ( minvalue( campaign.Unit().CampaignTypeRequirementHorizon(), this.GlobalParameters_MP().GetEndOfKPIHorizon().DateTime() ) - campaign.Start() ) / campaign.Duration(), 0.0 ) ) );
    
    return value;
  *]
}