Splitter Test written. Doesn't pass.
[order_line_extra.git] / haxe / Location.hx
index 5390eb50c5cf8c108e1b79fbd5ae3f21ebdddd6d..f6cbccd5176934d59c11e6997fe7b44fe092ba30 100644 (file)
@@ -7,16 +7,45 @@ class Location {
        public var code : String;
        public var name : String;
        public var comment : String;
-       public var qoh : Int;
+       public var delivery: Date;
+
+       private var qoh_cache : Int;
+       private var stock_id_cache : String;
 
        public function new(row : Dynamic) {
                var obj = php.Lib.objectOfAssociativeArray(row);
                code = obj.loc_code;
                name = obj.location_name;
                comment = obj.delivery_address;
+               var config_date = untyped __call__('OrderXtraConfig::delivery', code);
+               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;
+                       }
+
        }
 
-       private function quantityOnHand(stock_id, date) {
-               return untyped __call__('get_qoh_on_date', stock_id,  code, date);
+       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);
+                       stock_id_cache = stock_id;
+               }
+               return qoh_cache;
        }
 }