Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Function CalcMinDurationCombi 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    mindurationbasedonminduration := Duration::MaxDuration(); 
 | 
    mindurationbasedonminquantity := Duration::MaxDuration(); 
 | 
    value := Duration::Zero(); 
 | 
    if( this.HasMinDuration() ) 
 | 
    { 
 | 
      mindurationbasedonminduration := this.MinDuration() 
 | 
    } 
 | 
     
 | 
    if( this.HasMinQuantity() ) 
 | 
    { 
 | 
      //we estimate min duration based on min quantity and maximum throughout (See OSD, Known Limitations section) 
 | 
      minqty := this.MinQuantity() 
 | 
      operations := this.GetOperationsInOptCampaignElementType() 
 | 
      maxthroughput := max( operations, Elements, op, op.Throughput() ) 
 | 
      mindurationbasedonminquantity := guard( Duration::Hours( minqty / maxthroughput ), Duration::MaxDuration() ) 
 | 
    } 
 | 
    if( this.HasMinDuration() or this.HasMinQuantity() ) 
 | 
    { 
 | 
      value := minvalue( mindurationbasedonminduration, mindurationbasedonminquantity ); 
 | 
    } 
 | 
     
 | 
    this.MinDurationCombi( value ); 
 | 
  *] 
 | 
} 
 |