From 2413c74e1fd85278718d669141f1e77a651e63dd Mon Sep 17 00:00:00 2001 From: Maxime Bourget Date: Thu, 30 May 2013 18:03:32 +0100 Subject: [PATCH] Use next location only if no stock left --- haxe/ItemScheduler.hx | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/haxe/ItemScheduler.hx b/haxe/ItemScheduler.hx index 3480399..27dd7bf 100644 --- a/haxe/ItemScheduler.hx +++ b/haxe/ItemScheduler.hx @@ -54,7 +54,7 @@ class ItemScheduler { } function tableHeader() { - return ["Order", "Customer", "Quantity", "Before", "After", "Loc", "Required Date"]; + return ["Order", "Customer", "Quantity", "Before", "After", "Loc", "From", "Required Date"]; } /* @@ -95,7 +95,7 @@ class ItemScheduler { var order = php.Lib.objectOfAssociativeArray(orderRow); var quantity : Int = Std.parseInt(order.quantity); - while(quantity > left && locationIter.hasNext()) { + while(0 > left && locationIter.hasNext()) { location = locationIter.next(); var quantityForLocation : Int = location.quantityOnHand(stock_id, null); if(quantityForLocation == null || quantityForLocation == 0) continue; @@ -104,14 +104,14 @@ class ItemScheduler { } left -= quantity; - formatOrder(order, left); + formatOrder(order, left, location.delivery); } } function printRow(tds : Array, attributes : Array) { - php.Lib.print(''); + php.Lib.print(''); for(td in tds) { php.Lib.print(''); php.Lib.print(td); @@ -120,17 +120,41 @@ class ItemScheduler { php.Lib.print(''); } - function formatOrder(order : Dynamic, left : Int) { + function formatOrder(order : Dynamic, left : Int, date : Date) { var attributes = []; + var classes = []; + var before : Int = left + order.quantity; + /* We have basically 3 different cases; + * - the order can be fullfilled + * - the order can be partially + * - not at all + */ + if (before < 0 ) { + classes.push('soldout'); + } + else if(left < 0) { + classes.push('partial'); + } + else { + classes.push('full'); + } + + /* The order can also be late if we need + * to wait for a delivery to get it + */ var cells : Array = [ order.order_id ,order.deliver_to ,order.quantity + ,before ,left - ,left+order.quantity ,order.from_stk_loc ,order.delivery_date + ,order.required_date + ,order.comment ]; + + attributes.push('class="'+classes.join(' ')+'"'); printRow(cells, attributes); } @@ -196,9 +220,11 @@ class ItemScheduler { function orders() { var tb : String = untyped __php__('TB_PREF'); var sql : String = "SELECT * - FROM "+tb+"denorm_order_details_queue - JOIN "+tb+"sales_orders ON (order_no = order_id) + FROM "+tb+"denorm_order_details_queue d + JOIN "+tb+"sales_order_details od ON (od.id = d.id) + JOIN "+tb+"sales_orders so ON (so.order_no = d.order_id) WHERE stock_id = '"+this.stock_id+"' + AND od.trans_type = 30 ORDER by quantity_before"; return FA.query(sql); -- 2.30.2