editPedidoCtrl.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. app.controller('editPedidoCtrl', function ($scope, $http, $routeParams, notify, $location, $timeout) {
  2. $scope.cero=true;
  3. $scope.total=0;
  4. $scope.modificar = function() {
  5. $scope.cero=true;
  6. }
  7. $scope.confirmar = function() {
  8. $scope.cero=false;
  9. };
  10. $scope.update = function() {
  11. $http.get('back/pedido/'+$routeParams.hash+'/'+$routeParams.id).then(
  12. function(data) {
  13. $scope.listaproductos = data.data.productos;
  14. $scope.updateTotal();
  15. },
  16. function(data) {
  17. });
  18. };
  19. $scope.filterCero = function(criteria) {
  20. return function(item) {
  21. if ($scope.cero)
  22. return true;
  23. return item.cantidad > 0;
  24. };
  25. };
  26. $scope.validateKeypress = function(e) {
  27. if ( [46, 8, 9, 27, 13, 37, 39, 116].indexOf(e.keyCode) > -1 )
  28. return;
  29. if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
  30. e.preventDefault();
  31. }
  32. };
  33. $scope.updateTotal = function() {
  34. var total=0;
  35. total=$scope.listaproductos.reduce(
  36. function(acc,cur) {
  37. return acc+(cur.cantidad*cur.precio)
  38. },0);
  39. $scope.total=total;
  40. };
  41. $scope.reset = function() {
  42. $scope.update();
  43. };
  44. $scope.ok = function () {
  45. var pedido = {};
  46. var filtrados = $scope.listaproductos.filter(function(el) { return el.cantidad > 0; });
  47. if (filtrados.length==0){
  48. notify({message:"No hay productos",classes:"alert alert-danger"});
  49. return;
  50. }
  51. for(var f in $scope.listaproductos){
  52. var prod = $scope.listaproductos[f];
  53. if(isNaN(prod.cantidad)){
  54. notify({message:prod.nombre+" tiene cantidad incorrecta",classes:"alert alert-danger"});
  55. return;
  56. }
  57. }
  58. pedido.productos = filtrados;
  59. pedido.cliente = $routeParams.hash;
  60. pedido.id = $routeParams.id;
  61. $http.post('back/pedido', { pedido: pedido } )
  62. .success(function(data, status, headers, config) {
  63. notify("Actualizado correctamente");
  64. $timeout(function() { $location.url("/"+$routeParams.hash) }, 2000);
  65. })
  66. .error(function(data, status, headers, config) {
  67. notify({classes:"alert alert-danger", message:"Error: "+ data.err});
  68. });
  69. };
  70. $scope.reset();
  71. });