X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=haxe%2FItemScheduler.hx;h=274f562b256a1999e3a04296c2a6d3686f73473c;hb=cac7335b5528b1eca9cc02ca7bc9760a080b676f;hp=ab4e9ac83f78fd623696335ff6021d176cdb0b04;hpb=b31a4ed614cfcee060deb69f53524e4acf1f861d;p=order_line_extra.git diff --git a/haxe/ItemScheduler.hx b/haxe/ItemScheduler.hx index ab4e9ac..274f562 100644 --- a/haxe/ItemScheduler.hx +++ b/haxe/ItemScheduler.hx @@ -1,4 +1,5 @@ import php.Lib; +using DateTools; typedef Detail = { id : String, @@ -89,7 +90,7 @@ class ItemScheduler { this.stock_id = stock_id; this.startLocation = startLocation; this.parameters = parameters; - qoh = untyped __call__('get_qoh_on_date', this.stock_id, 'DEF'); + qoh = untyped __call__('get_qoh_on_date', this.stock_id, startLocation); } function tableHeader() { @@ -102,7 +103,13 @@ class ItemScheduler { // Sort location by date var locations = this.locations(); locations.sort(function(a, b) { - return cast(a.delivery.getTime() - b.delivery.getTime(), Int ); + var as = a.delivery.getTime(); + var bs = b.delivery.getTime(); + if(as < bs) + return -1; + else if(as > bs) + return 1; + else return 0; }); // Get the start location, it should be the first one @@ -120,8 +127,8 @@ class ItemScheduler { while(0 >= left && locationIter.hasNext()) { location = locationIter.next(); - var quantityForLocation : Int = location.quantityOnHand(stock_id, null); - if(quantityForLocation == null || quantityForLocation == 0) continue; + 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); } @@ -213,7 +220,7 @@ class ItemScheduler { ,left-location.quantityOnHand(stock_id, null) ,left ,location.code - ,location.delivery + ,location.delivery.getTime() == 0 ? '' : location.delivery.format("%F") ,"" ,"" ]; @@ -278,6 +285,9 @@ function locations() { if(location.code == startLocation) { location.delivery = Date.fromTime(0); } + else if(location.delivery == null) { + continue; + } _locs.push(location); } @@ -287,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 {