(function() { "use strict"; window.app.directive('inventoryAdd', inventoryAdd); function inventoryAdd() { return { templateUrl: '/inventory/template/inventoryAdd.tmpl.cshtml', controller: controller, controllerAs: 'vm' } } controller.$inject = ['$scope', 'inventorySvc', 'inventoryTypeSvc']; function controller($scope, inventorySvc, inventoryTypeSvc) { var vm = this; vm.add = add; vm.saving = false; vm.inventory = {}; vm.inventoryTypes = inventoryTypeSvc.inventoryTypes; vm.errorMessage = null; vm.quantity = quantity; function zeroNaN(v) { return isNaN(v) ? 0 : v; } function quantity() { vm.inventory.quantity = zeroNaN($scope.palletCount) * zeroNaN($scope.casesPerPallet) + zeroNaN($scope.caseCount); return vm.inventory.quantity > 0 ? vm.inventory.quantity : ""; } function add() { vm.saving = true; inventorySvc.add(vm.inventory) .success(function () { //Close the modal $scope.$close(); }) .error(function(data) { vm.errorMessage = 'There was a problem adding the inventory: ' + data.errorMessage; }) .finally(function() { vm.saving = false; }); } $scope.$watch('vm.commodity', function (newValue, oldValue) { if (newValue) vm.inventory.inventoryTypeId = newValue.id; }); } })();