Пример #1
0
exports.createSomeOrders = function() {
    var count = 0;
    var customers = ff.getArrayFromUri("/Customers");
    if(common.debug) print("models.js.createSomeOrders retrieved " + customers.length + " Customer objects");
    for (var c = 0; c < customers.length; c++) {
        var customer = customers[c];
        var user = ff.getReferredObject("user", customer);
        if(common.debug) print("models.js.createSomeOrders retrieved Customer " + JSON.stringify(customer));
        var address = ff.getObjFromUri("/Addresses/(guid eq random(guid))");
        if(!address) {
            var ad = {clazz:"Address",streetNo:"123",street:"Main Street",city:"Anytown",state:"OH",postCode:"23456",country:"USA"};
            address = ff.createObjAtUri(ad, "/Addresses", user.guid);
        }
        if(common.debug) print("models.js.createSomeOrders retrieved Address " + JSON.stringify(address));
        var numOrders = Math.floor(Math.random() * 5) + 1;
        if(common.debug) print("models.js.createSomeOrders will create "+numOrders+" Orders");
        for (var i = 0; i < numOrders; i++) {
            // get a random Vendor
            var vendor = ff.getObjFromUri("/Vendors/(guid eq random(guid))");
            if(common.debug) print("models.js.createSomeOrders retrieved Vendor " + JSON.stringify(vendor));
            var order = new Order();
            ff.addReferenceToObj(customer.ffUrl, "customer", order);
            ff.addReferenceToObj(vendor.ffUrl, "vendor", order);            
            ff.addReferenceToObj(address.ffUrl, "placedAt", order);            
            order = ff.createObjAtUri(order, "/Orders", user.guid);
            count ++;               
            if(common.debug) print("models.js.createSomeOrders created Order " + JSON.stringify(order));
            var numOrderLines = Math.floor(Math.random() * 3) + 1;
            if(common.debug) print("models.js.createSomeOrders will create "+numOrderLines+" OrderLines");
            for (var j = 0; j < numOrderLines; j++) {
                var qty = Math.floor(Math.random() * 10) + 1;
                if(common.debug) print("models.js.createSomeOrders will set quantity to "+qty);
                // get a random price
                if(common.debug) print("models.js.createSomeOrders "+vendor.ffUrl + "/BackReferences.Prices/(guid eq random(guid))");
                var price = ff.getObjFromUri(vendor.ffUrl + "/BackReferences.Prices/(guid eq random(guid))");
                if(common.debug) print("models.js.createSomeOrders retrieved Price " + JSON.stringify(price));
                // get the product
                var prod = ff.getReferredObject("product", price); 
                var line = new OrderLine();
                line.price = price.price;
                line.quantity = qty;
                line.total = common.round(qty * price.price, 2);
                ff.addReferenceToObj(prod.ffUrl, "product", line);            
                ff.addReferenceToObj(order.ffUrl, "order", line);
                line = ff.createObjAtUri(line, "/OrderLines", user.guid);
                if(common.debug) print("models.js.createSomeOrders created OrderLine " + JSON.stringify(line));
                ff.grabBagAdd(line.ffUrl, order.ffUrl, "orderLines", user.guid);
                count ++;               
            }
        }
    }
    return count;  
}
Пример #2
0
exports.totalOrder = function() {
    var order = ff.getEventHandlerData().parentObj;
    if(common.debug) print("models.js.totalOrder received " + JSON.stringify(order));
    var total = 0;
    var lines = ff.grabBagGetAll(order.ffUrl, "orderLines", order.createdBy);
    if(common.debug) print("models.js.totalOrder retrieved " + lines.length + " OrderLines");
    for (var i = 0; i < lines.length; i++) {
        total += lines[i].total;
    }
    if(order.total == total) {
        if(common.debug) print("models.js.totalOrder no change in total, skipping " + JSON.stringify(order));
    } else {
        order.total = common.round(total, 2);
        ff.updateObj(order);
        if(common.debug) print("models.js.totalOrder updated order total to " + JSON.stringify(order));
    }
}