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