Mini Kabibi Habibi
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);
})();