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
41
42
43
  | Quintiq file version 2.0 
 |  #parent: #root 
 |  StaticMethod GetDerivedDuration ( 
 |    CampaignType_MP campaignType, 
 |    Real minqty, 
 |    Real maxqty, 
 |    Boolean hasinputmaxquantity, 
 |    Duration minduration, 
 |    Duration maxduration, 
 |    Boolean hasinputmaxduration 
 |  ) declarative remote as Duration 
 |  { 
 |    Description: 'Calculate campaign duration of campaign based on input type.' 
 |    TextBody: 
 |    [* 
 |      // Based on input type, calculate duration of campaign 
 |      inputType := CampaignType_MP::GetInputType( minqty, hasinputmaxquantity, minduration, hasinputmaxduration ); 
 |      isQuantity := inputType = GlobalParameters_MP::GetCampaignTransitionsTypeQuantity(); 
 |       
 |      // Reset max duration/quantity if unchecked 
 |      duration := Duration::Zero(); 
 |      maxqty := ifexpr( hasinputmaxquantity, maxqty, 0.0 ); 
 |      maxduration := ifexpr( hasinputmaxduration, maxduration, Duration::Zero() ); 
 |       
 |      if( isQuantity ) 
 |      { 
 |        operation := minselect( campaignType, OperationInCampaignType.Operation, o, true, o.Throughput() ); 
 |        duration := CampaignType_MP::GetDurationBasedOnQuantity( operation,  
 |                                                                 minqty,  
 |                                                                 maxqty, 
 |                                                                 minqty > 0, 
 |                                                                 hasinputmaxquantity ); 
 |      } 
 |      else 
 |      { 
 |        duration := CampaignType_MP::GetDurationBasedOnDuration( minduration, 
 |                                                                 maxduration, 
 |                                                                 minduration > Duration::Zero(), 
 |                                                                 hasinputmaxduration ); 
 |      } 
 |      return duration; 
 |    *] 
 |  } 
 |  
  |