+ var startDate = Date.fromTime(0);
+ for(order in orders()) {
+ var obj = php.Lib.objectOfAssociativeArray(order);
+
+ }
+
+ // Sort location by datae
+ var locations = this.locations();
+ locations.sort(function(a, b) {
+ return cast(a.delivery.getTime() - b.delivery.getTime(), Int );
+ });
+
+ // Get the start location, it should be the first one
+ var locationIter = locations.iterator();
+ var location = locationIter.next();
+ var qoh : Int = location.quantityOnHand(stock_id, null);
+ var left = qoh;
+ formatLocation(location, "Initial", left);
+
+ // We display the order ordered by priority
+ // But insert the location when needed (meaning
+ // when we run out of item available
+ for(orderRow in orders()) {
+ var order = php.Lib.objectOfAssociativeArray(orderRow);
+ var quantity : Int = Std.parseInt(order.quantity);
+
+ while(0 > left && locationIter.hasNext()) {
+ location = locationIter.next();
+ var quantityForLocation : Int = location.quantityOnHand(stock_id, null);
+ if(quantityForLocation == null || quantityForLocation == 0) continue;
+ left += quantityForLocation;
+ formatLocation(location, "Delivery", left);
+ }
+ left -= quantity;
+
+ formatOrder(order, left, location.delivery);
+
+ }
+
+ }
+
+ function printRow(tds : Array<Dynamic>, attributes : Array<String>) {
+ php.Lib.print('<tr '+attributes.join(' ')+'>');
+ var position : Int = 1;
+ for(td in tds) {
+ php.Lib.print('<td class="cell_'+position+'">');
+ if(td) php.Lib.print(td);
+ php.Lib.print('</td>');
+ position++;