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;
}
}