82 lines
1.8 KiB
JavaScript
82 lines
1.8 KiB
JavaScript
(function() {
|
|
window.app.factory('inventorySvc', inventorySvc);
|
|
|
|
inventorySvc.$inject = ['$http', '$filter'];
|
|
function inventorySvc($http, $filter) {
|
|
var inventories = [];
|
|
|
|
loadInventories();
|
|
|
|
var svc = {
|
|
add: add,
|
|
distribute: distribute,
|
|
update: update,
|
|
remove: remove,
|
|
inventories: inventories,
|
|
get: get,
|
|
refresh: refresh,
|
|
find: find
|
|
};
|
|
|
|
return svc;
|
|
|
|
function loadInventories() {
|
|
$http.post('/Inventory/All')
|
|
.success(function(data) {
|
|
angular.copy(data, inventories);
|
|
});
|
|
}
|
|
|
|
function add(inventory) {
|
|
return $http.post('/Inventory/Add', inventory)
|
|
.success(function(inventory) {
|
|
inventories.unshift(inventory);
|
|
});
|
|
}
|
|
|
|
function distribute(distribution) {
|
|
return $http.post('/Inventory/Distribute', distribution)
|
|
.success(function (data) {
|
|
angular.copy(data, inventories);
|
|
});
|
|
}
|
|
|
|
function update(existingInventory, updatedInventory) {
|
|
return $http.post('/Inventory/Update', updatedInventory)
|
|
.success(function(inventory) {
|
|
angular.extend(existingInventory, inventory);
|
|
});
|
|
}
|
|
|
|
// remove quantity from this inventory
|
|
function remove(removeForm) {
|
|
var existingInventory = get(removeForm.inventoryId);
|
|
return $http.post('/Inventory/Remove', removeForm)
|
|
.success(function(data) {
|
|
angular.copy(data, existingInventory);
|
|
});
|
|
}
|
|
|
|
function get(id) {
|
|
var results = $filter('filter')(inventories, { id: id });
|
|
if (results.length > 0)
|
|
return results[0];
|
|
return null;
|
|
}
|
|
|
|
// refresh this inventory from the server
|
|
function refresh(id) {
|
|
var existingInventory = get(id);
|
|
if (existingInventory) {
|
|
find(id)
|
|
.success(function(inventory) {
|
|
angular.copy(inventory, existingInventory);
|
|
});
|
|
}
|
|
}
|
|
|
|
function find(id) {
|
|
return $http.post('/Inventory/Find', { id: id });
|
|
}
|
|
}
|
|
})(); |