From: Maxime Bourget Date: Tue, 28 May 2013 21:31:40 +0000 (+0100) Subject: Mix location and order X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=commitdiff_plain;h=c430928c8da33931ee2089a2816aacfaa51a5b25;p=order_line_extra.git Mix location and order --- diff --git a/haxe/ItemScheduler.hx b/haxe/ItemScheduler.hx index 3f6cdc7..ea59cd1 100644 --- a/haxe/ItemScheduler.hx +++ b/haxe/ItemScheduler.hx @@ -45,9 +45,11 @@ class FA { } class ItemScheduler { var stock_id:String; + var startLocation:String; var qoh: Int; - function new(stock_id: String) { + function new(stock_id: String, startLocation) { this.stock_id = stock_id; + this.startLocation = startLocation; qoh = untyped __call__('get_qoh_on_date', this.stock_id, 'DEF'); } @@ -55,7 +57,7 @@ class ItemScheduler { return ["Order", "Customer", "Quantity", "Left", "On Hand", "Loc", "Required Date"]; } - function generateTable(): Void { + function generateTablex(): Void { for(location in locations()) { formatLocation(location); } @@ -64,13 +66,30 @@ class ItemScheduler { } } + function generateTable(): Void { + var schedules = []; + var startDate = Date.fromTime(0); + for(order in orders()) { + var obj = php.Lib.objectOfAssociativeArray(order); + schedules.push({date: Date.fromString(obj.delivery_date), order:order, location:null}); + } + for(location in locations()) { + schedules.push({date: if(location.code == startLocation) startDate else location.delivery, order:null, location:location}); + } + + schedules.sort(function(a,b ) { return cast(a.date.getTime() - b.date.getTime(), Int) ; }); + for(schedule in schedules) { + if(schedule.order != null) formatRow(schedule.order); + if(schedule.location != null) formatLocation(schedule.location); + } + } + function formatRow(row) { var array = php.Lib.hashOfAssociativeArray(row); var quantity_before : Int = array.get('quantity_before'); var quantity_available = qoh - quantity_before; var quantity: Int = array.get('quantity'); - var status : String = if(quantity_available < quantity) 'overduebg'; var cells : Array = [ @@ -99,6 +118,7 @@ class ItemScheduler { location.code ,location.name ,location.quantityOnHand(stock_id, null) + ,location.delivery ]; var status = 'header'; php.Lib.print(''); @@ -110,12 +130,14 @@ class ItemScheduler { php.Lib.print(''); } +/* function schedules() { //return orders()+locations(); //return orders(); return cast(locations(), Array); } +*/ function orders() { var tb : String = untyped __php__('TB_PREF'); diff --git a/haxe/Location.hx b/haxe/Location.hx index 5390eb5..893fdab 100644 --- a/haxe/Location.hx +++ b/haxe/Location.hx @@ -7,16 +7,17 @@ class Location { public var code : String; public var name : String; public var comment : String; - public var qoh : Int; + public var delivery: Date; public function new(row : Dynamic) { var obj = php.Lib.objectOfAssociativeArray(row); code = obj.loc_code; name = obj.location_name; comment = obj.delivery_address; + delivery = Date.fromString("2013-06-10"); } - private function quantityOnHand(stock_id, date) { + public function quantityOnHand(stock_id, date) { return untyped __call__('get_qoh_on_date', stock_id, code, date); } } diff --git a/item_schedule.php b/item_schedule.php index 329d6fc..0fa2aa7 100644 --- a/item_schedule.php +++ b/item_schedule.php @@ -54,7 +54,7 @@ $stock_id = $_POST['stock_id']; end_row(); end_table(1); -$scheduler = new ItemScheduler($stock_id); +$scheduler = new ItemScheduler($stock_id, 'DEF'); div_start('item_schedule'); start_table(TABLESTYLE);