var result = untyped __call__('db_query', sql, sql);
return new QueryIterator(result);
}
+
+ static public function tb() : String {
+ return untyped __php__('TB_PREF');
+ }
}
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');
}
return ["Order", "Customer", "Quantity", "Left", "On Hand", "Loc", "Required Date"];
}
- function generateTable(): Void {
- for(schedule in this.schedules()) {
- this.formatRow(schedule);
+ function generateTablex(): Void {
+ for(location in locations()) {
+ formatLocation(location);
+ }
+ for(order in this.orders()) {
+ this.formatRow(order);
}
}
+ 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<Dynamic> = [
}
+ function formatLocation(location : Location) {
+ var cells = [
+ location.code
+ ,location.name
+ ,location.quantityOnHand(stock_id, null)
+ ,location.delivery
+ ];
+ var status = 'header';
+ php.Lib.print('<tr class="'+status+'">');
+ for(cell in cells) {
+ php.Lib.print('<td>');
+ php.Lib.print(cell);
+ php.Lib.print('</td>');
+ }
+ php.Lib.print('</tr>');
+ }
+
+/*
function schedules() {
+ //return orders()+locations();
+ //return orders();
+ return cast(locations(), Array<Dynamic>);
+
+ }
+*/
+
+ function orders() {
var tb : String = untyped __php__('TB_PREF');
var sql : String = "SELECT *
FROM "+tb+"denorm_order_details_queue
return FA.query(sql);
}
+
+ function locations() {
+ var TB = FA.tb();
+ var sql = 'SELECT *
+ FROM '+TB+'locations';
+ var _locs = [];
+ for(row in FA.query(sql)) {
+ _locs.push(new Location(row));
+ }
+
+ return _locs;
+
+ }
+
+
+ function purcharseOrders() {
+ }
+
}