- 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');
+ var row_id = orderId(order);
+ var attributes = ['id = "'+row_id+'"'];
+ 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
+ * or early if the item is on hold.
+ */
+ var required_by : Date = FA.sql2date(order.required_date);
+ if(required_by == null) required_by = FA.sql2date(order.expiry_date);
+ if(required_by != null && required_by.getTime() < date.getTime()) {
+ classes.push('late');
+ }
+ else {
+ var hold_until : Date = FA.sql2date(order.hold_until_date);
+ php.Lib.print(hold_until);
+ php.Lib.print(date);
+ if(hold_until == null) hold_until = FA.sql2date(order.delivery_date);
+ if(hold_until.getTime() > date.getTime()) {
+ classes.push('early');