| Quintiq file version 2.0 | 
| #parent: #root | 
| FunctionOverride CalcQuantity | 
| { | 
|   TextBody: | 
|   [* | 
|     // edz1 Aug-31-2016 (created) | 
|      | 
|     value := this.InventorySpecification().QuantityToMove(); | 
|      | 
|      | 
|     // If we are below target, the quantity will be positive, if we are below target the quantity will be negative | 
|     // If this is a decrease move, then we need to flip the sign since we want to make a move if we are above target | 
|     if( not this.IsIncrease() ) | 
|     { | 
|       value := -value; | 
|     } | 
|      | 
|     // To make sure that an increase move actually increases the target inventory and a decrease move actually decreases it, we must make sure that the quantity is not negative | 
|     // If it is non positve, we take 10% of the current target inventory instead | 
|     targetinquantity := this.InventorySpecification().TargetInQuantity_DELETED_Nov19(); | 
|     if( value <= 0 ) | 
|     { | 
|       value := 0.1 * targetinquantity; | 
|     } | 
|      | 
|     if( not this.IsIncrease() ) | 
|     { | 
|       // If we are very close to 100% fulfillment, the number of stockingpoints with a shortage becomes very small and the proposed decrease may even exceed 100% | 
|       // Therefore, we take the minimum between the suggested value and 25% of the current value | 
|       value := minvalue( value, 0.25 * targetinquantity ); | 
|     } | 
|      | 
|     this.Quantity( value ); | 
|   *] | 
| } |