Mini Kabibi Habibi
DXSK8.Phone.ProductDetails = function (params) {
var utils = DXSK8.Phone.utils,
orderId,
inventoryId;
var viewModel = {
name: ko.observable(),
description: ko.observable(),
image: ko.observable(),
state: ko.observable(),
quantity: ko.observable(),
imageClass: ko.observable(),
complete: function() {
viewModel.state("use");
DXSK8.Phone.db.updateOrderItemState(Number(params.id), 1, viewModel.handleBack);
},
handleBack: function() {
DXSK8.app.navigate("OrderItems/" + orderId);
},
orderState: ko.observable()
};
viewModel.showCompleteButton = ko.computed(function() {
return viewModel.orderState() != 3 && viewModel.state() != "use" && viewModel.state() != "not-found";
});
viewModel.stateCssClass = ko.computed(function () {
return "product-state-" + viewModel.state();
});
function orderItemsLoadComplete(orderItems) {
var orderItem = orderItems[0];
orderId = orderItem.Order.Id;
viewModel.orderState(Number(orderItem.Order.State));
viewModel.name(orderItem.Product.Name);
viewModel.description(utils.createProductFeatures(orderItem.Product.Description));
viewModel.image(DXSK8.getElementImageUrl(orderItem.Product));
viewModel.state(orderItem.State === 1 ? "use" : "");
viewModel.imageClass("type-" + orderItem.Product.Type.Id);
DXSK8.Phone.db.loadInventoriesByProduct(orderItem.Product.Id, inventoriesLoadComplete, function(ex) { });
}
function inventoriesLoadComplete(inventories) {
if(inventories.length > 0) {
inventoryId = inventories[0].Id;
if(viewModel.state() !== "use" && inventories[0].Quantity === 0) {
viewModel.state("not-found");
}
viewModel.quantity(inventories[0].Quantity);
}
}
DXSK8.Phone.db.loadOrderItemsById(Number(params.id), orderItemsLoadComplete, function(ex) { });
return viewModel;
};