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);
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 {
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);