Add on order quantity to location quantity
authorMaxime Bourget <bmx007@gmail.com>
Thu, 6 Jun 2013 16:21:17 +0000 (17:21 +0100)
committerMaxime Bourget <bmx007@gmail.com>
Thu, 6 Jun 2013 16:21:17 +0000 (17:21 +0100)
(regardless of the delivery date)

haxe/ItemScheduler.hx
haxe/Location.hx

index 6da40434ccbfb15828bc655acfc6b0832642737e..274f562b256a1999e3a04296c2a6d3686f73473c 100644 (file)
@@ -127,7 +127,7 @@ class ItemScheduler {
 
                        while(0 >= left && locationIter.hasNext()) {
                                location = locationIter.next();
-                               var quantityForLocation : Int = location.quantityOnHand(stock_id, null);
+                               var quantityForLocation : Int = location.quantityOnHand(stock_id, null) + location.quantityOnOrder(stock_id);
                                if(quantityForLocation == null || quantityForLocation == 0 || location.delivery == null) continue;
                                left += quantityForLocation;
                                formatLocation(location, "Delivery", left);
@@ -297,6 +297,17 @@ function locations() {
 
 
        function purcharseOrders()  {
+               var TB = FA.tb();
+               var sql = 'SELECT SUM(quantity_ordered - quantity_received) as quantity
+                       into_stock_location AS location
+                       FROM '+TB+'purch_order_details
+                       NATURAL JOIN '+TB+'purch_orders
+                       WHERE item_code = "'+this.stock_id+'"
+                       AND quantity_ordered > quantity_received
+                       GROUP by item_code,delivery_date, into_stock_location
+                       ORDER by delivery_date' ;
+
+               return  FA.query(sql);
        }
 
        public function needsUpdate():Bool {
index 50f2807e6f407623e227d922a559d87c052ce567..f6cbccd5176934d59c11e6997fe7b44fe092ba30 100644 (file)
@@ -21,6 +21,26 @@ class Location {
                delivery = config_date != null ? Date.fromString(config_date) : null;
        }
 
+       public function quantityOnOrder(stock_id) : Int {
+               var TB = FA.tb();
+               var sql = 'SELECT SUM(quantity_ordered - quantity_received) as quantity
+                       FROM '+TB+'purch_order_details
+                       NATURAL JOIN '+TB+'purch_orders
+                       WHERE item_code = "'+stock_id+'" AND  into_stock_location = "'+code+'"
+                       AND quantity_ordered > quantity_received
+                       ORDER by delivery_date' ;
+
+                       var result = FA.query(sql);
+                       if(result.hasNext()) {
+                                       var row = php.Lib.objectOfAssociativeArray(result.next());
+                                       return row.quantity;
+                       }
+                       else {
+                               return 0;
+                       }
+
+       }
+
        public function quantityOnHand(stock_id, date) : Null<Int> {
                if(qoh_cache == null || stock_id != stock_id_cache) {
                        qoh_cache =  untyped __call__('get_qoh_on_date', stock_id,  code, date);