Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod GetDurationBasedOnQuantity ( 
 | 
  Operation operation, 
 | 
  Real defaultminqty, 
 | 
  Real defaultmaxqty, 
 | 
  Boolean hasinputminquantity, 
 | 
  Boolean hasinputmaxquantity 
 | 
) declarative remote as Duration 
 | 
{ 
 | 
  Description: 'Return duration based on max quantity, or min quantity if no max is set' 
 | 
  TextBody: 
 | 
  [* 
 | 
    duration := Duration::Zero(); 
 | 
    if( ( hasinputminquantity or hasinputmaxquantity ) and not isnull( operation ) ) 
 | 
    { 
 | 
      operationthroughput := operation.Throughput(); 
 | 
      quantity := 0.0; 
 | 
      //Use max quantity if set 
 | 
      if( hasinputmaxquantity ) 
 | 
      { 
 | 
        quantity := defaultmaxqty; 
 | 
      } 
 | 
      //else use min quantity 
 | 
      else if( hasinputminquantity ) 
 | 
      { 
 | 
        quantity := defaultminqty; 
 | 
      } 
 | 
     
 | 
      duration := guard( Duration::Days( quantity / operationthroughput ) / 24, Duration::Zero() ); 
 | 
    } 
 | 
    return duration; 
 | 
  *] 
 | 
} 
 |