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; 
 | 
  *] 
 | 
} 
 |