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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Quintiq file version 2.0
#parent: #root
Method VerifyCampaignPlannedValue (
  Unit unit,
  String campaigntype,
  RealVector expectedfulfilledqty,
  RealVector expectedptcquantity,
  RealVector expectedutilizationpercentage,
  String operator,
  Number nrofcampaigns
)
{
  Description: 'Verify FulfilledQuantity for Campaign PeriodTaskInCampaign, PeriodTaskInTransition, utilization percentage for campaign'
  TextBody:
  [*
    campaigns := selectsortedset( unit, Campaign_MP, cam, cam.CampaignTypeName() = campaigntype, cam.Start() );
    index :=0 
    
    traverse( campaigns, Elements, campaign, index < nrofcampaigns )
    {
      ptcs := selectsortedset( campaign, OperationInCampaign.PeriodTaskInCampaign, ptc, true, ptc.PeriodTaskOperation().Start() );
      ptc := ptcs.Element( 0 );
      
      if ( operator = '=' )
      {
        this.Run().AssertEqual( expectedfulfilledqty.Get( index ), campaign.FulfilledQuantity().Round( 0 ), 'Verify Campaign.FufilledQuantity for CampaignType ['+ campaigntype+'].' );
        this.Run().AssertEqual( expectedptcquantity.Get( index ), ptc.Quantity().Round( 0 ), 'Verify PeriodInCampaign.Quantity for CampaignType ['+ campaigntype+ '].');
        this.Run().AssertEqual( expectedutilizationpercentage.Get( index ), ( campaign.Utilization() * 100 ).Round( 0 ), 'Verify Campaign.Utilization for Campaign type ['+ campaigntype +'.' );
      }
      else
      {
         this.Run().AssertGreaterOrEqual( expectedfulfilledqty.Get( index ), campaign.FulfilledQuantity().Round( 0 ), 'Verify Campaign.FufilledQuantity for CampaignType ['+ campaigntype+'].' );
         this.Run().AssertGreaterOrEqual( expectedptcquantity.Get( index ), ptc.Quantity().Round( 0 ), 'Verify PeriodInCampaign.Quantity for CampaignType ['+ campaigntype+ '].');
         this.Run().AssertGreaterOrEqual( expectedutilizationpercentage.Get( index ), ( campaign.Utilization() * 100 ).Round( 0 ), 'Verify Campaign.Utilization for Campaign type ['+ campaigntype +'.' );
      }
      index++;
    }
  *]
  InterfaceProperties { Accessibility: 'Module' }
}