Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXTREME 13.1 Demos/DXSK8/DXSK8.Phone/data/
Upload File :
Current File : C:/Users/Public/Documents/DXTREME 13.1 Demos/DXSK8/DXSK8.Phone/data/Orders.js

window.DXSK8 = window.DXSK8 || {};
window.DXSK8.Phone = window.DXSK8.Phone || {};
window.DXSK8.Phone.db = window.DXSK8.Phone.db || {};

(function() {
    var db = {};
    
    db.loadOrdersById = function(id, success, fail) {
        DXSK8.db.Orders
            .load({
                filter: ["Id", id],
                select: [
                    "State",
                    "Customer.Person",
                    "OrderItems.Product.Id",
                    "OrderItems.Product.Type.Id",
                    "OrderItems.Product.Name",
                    "OrderItems.Product.Description"
                ]
            })
            .done(success)
            .fail(fail);
    }

    db.updateOrderState = function(orderId, state, success) {
        DXSK8.db.Orders
            .update(orderId, {
                State: state
            })
            .done(success);
    };

    db.getOrderDataSource = function(state) {
        return DXSK8.db.Orders.toDataSource({
            filter: ["State", state],
            sort: ["Customer.Id", { field: "OrderDate", desc: true }],
            select: ["Id", "OrderDate", "Customer.Id", "Customer.Person"],
            postProcess: function(orders) { return filterOrders(orders, state); },
            map: mapOrders
        });
    };

    function filterOrders(orders, state) {
        var filteredOrdersIds = DXSK8.Phone.filteredOrdersIds;
        return $.grep(orders, function(order, index) {
            return (filteredOrdersIds && $.inArray(Number(order.id), filteredOrdersIds[state]) >= 0) || !filteredOrdersIds;
        });
    }

    function mapOrders(order, index) {
        var utils = DXSK8.Phone.utils;
        return {
            id: order.Id,
            customerImageSrc: DXSK8.getElementImageUrl(order.Customer),
            name: utils.getPersonFullName(order.Customer.Person),
            date: utils.formatTimeSpan(order.OrderDate),
            currentCustomer: isCurrentCustomer(order.Customer)
        };
    }

    function isCurrentCustomer(customer) {
        var currentCustomer = {
            id: 1
        };
        return currentCustomer.id == customer.Id;
    };

    $.extend(DXSK8.Phone.db, db);
})();