/* globals pedidosService: true */ app.controller('editPedidoCtrl', function ($scope, $http, $routeParams, notify, $location, $timeout, editing) { $scope.cero=true; $scope.total=0; $scope.observaciones=""; $scope.fecha = new Date(); $scope.modificar = function() { $scope.cero=true; }; $scope.confirmar = function() { var filtrados = $scope.listaproductos.filter(function(el) { return el.cantidad > 0; }); if (!pedidosService.pedidoValido(filtrados)) return; $scope.cero=false; }; $scope.update = function() { $http.get('back/cliente/' + $routeParams.hash).then(function(data) { $scope.userdata = data.data; }); if (editing) { $http.get('back/pedido/'+$routeParams.hash+'/'+$routeParams.id).then( function(data) { $scope.listaproductos = data.data.productos; $scope.observaciones = data.data.observaciones || ""; $scope.updateTotal(); }, function(data) { }); } else { $http.get('back/productos/' + $routeParams.hash).success(function(data) { $scope.listaproductos = data; }).error(function(data) { }); } }; $scope.filterCero = function(criteria) { return function(item) { if ($scope.cero) return true; return item.cantidad > 0; }; }; $scope.validateKeypress = function(e) { if ( [46, 8, 9, 27, 13, 37, 39, 116].indexOf(e.keyCode) > -1 ) return; if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) { e.preventDefault(); } if ( this.p.cantidad >= 10 ) e.preventDefault(); }; $scope.updateTotal = function() { var total=0; total=$scope.listaproductos.reduce( function(acc,cur) { return acc+(cur.cantidad*cur.precio); },0); $scope.total=total; }; $scope.reset = function() { $scope.update(); }; $scope.ok = function () { var pedido = {}; var filtrados = $scope.listaproductos.filter(function(el) { return el.cantidad > 0; }); if (!pedidosService.pedidoValido(filtrados)) return; pedido.productos = filtrados; pedido.cliente = $routeParams.hash; pedido.id = $routeParams.id; pedido.observaciones = $scope.observaciones; $http.post('back/pedido', { pedido: pedido } ) .success(function(data, status, headers, config) { notify("Actualizado correctamente"); $timeout(function() { $location.url("/"+$routeParams.hash); }, 2000); }) .error(function(data, status, headers, config) { notify({classes:"alert alert-danger", message:"Error: "+ data.err}); }); }; $scope.reset(); });