| Quintiq file version 2.0 | 
| #parent: #root | 
| Function CalcMaxDurationCombi | 
| { | 
|   TextBody: | 
|   [* | 
|     maxdurationbasedonminduration := Duration::MinDuration(); | 
|     maxdurationbasedonminquantity := Duration::MinDuration(); | 
|     value := Duration::Zero(); | 
|     if( this.HasMaxDuration() ) | 
|     { | 
|       maxdurationbasedonminduration := this.MaxDuration() | 
|     } | 
|      | 
|     if( this.HasMaxQuantity() ) | 
|     { | 
|       //we estimate min duration based on min quantity and maximum throughout (See OSD, Known Limitations section) | 
|       maxqty := this.MaxQuantity() | 
|       operations := this.GetOperationsInOptCampaignElementType() | 
|       minthroughput := min( operations, Elements, op, op.Throughput() ) | 
|       maxdurationbasedonminquantity := guard( Duration::Hours( maxqty / minthroughput ), Duration::MaxDuration() ) | 
|     } | 
|     if( this.HasMaxDuration() or this.HasMaxQuantity() ) | 
|     { | 
|       value := maxvalue( maxdurationbasedonminduration, maxdurationbasedonminquantity ); | 
|     } | 
|      | 
|     this.MaxDurationCombi( value ); | 
|   *] | 
| } |