| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod GetRequiredQuantityByDurations ( | 
|   output Real remainingdays_o, | 
|   Real durationindays, | 
|   Real demandquantity, | 
|   Boolean hasnonextperiod | 
| ) const declarative remote as Real | 
| { | 
|   Description: | 
|   [* | 
|     Given a number of days, period duration and a quantity. Return the quantity for the particular period by repect to the number of day and duration. | 
|     E.g Period 1 2 3 in days, remainding day = 2, this will return the quantity * 1. | 
|   *] | 
|   TextBody: | 
|   [* | 
|     // desmondt Nov-13-2015 (created) | 
|     value := demandquantity; | 
|      | 
|     numberofdaysused := minvalue( remainingdays_o, durationindays ) // If period is day, we only use 1 day | 
|      | 
|     // If there is no next period and the duration of the current period is shorter than the remaining days | 
|     // Then the numberofdaysused for the ratio should be equal to the remaining days | 
|     // (which means we keep repeating the last period for the purposes of the target calculation) | 
|     if( hasnonextperiod | 
|         and ( durationindays < remainingdays_o ) ) | 
|     { | 
|       numberofdaysused := remainingdays_o; | 
|     } | 
|      | 
|     ratioinday := numberofdaysused / durationindays; // The ratio of the remaining day in the period | 
|     value := demandquantity * ratioinday; | 
|      | 
|     remainingdays_o := maxvalue( ( remainingdays_o - numberofdaysused ), 0 ); | 
|      | 
|     return value; | 
|   *] | 
| } |