editPedidoCtrl.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /* globals pedidosService: true */
  2. app.controller('editPedidoCtrl', function ($scope, $http, $routeParams, notify, $location, $timeout, editing, pedidosService) {
  3. $scope.titulo = 'Crear pedido';
  4. $scope.cero=true;
  5. $scope.total=0;
  6. $scope.observaciones="";
  7. $scope.fecha = new Date();
  8. $scope.modificar = function() {
  9. $scope.cero=true;
  10. };
  11. $scope.confirmar = function() {
  12. var filtrados = $scope.listaproductos.filter(function(el) { return el.cantidad > 0; });
  13. if (!pedidosService.pedidoValido(filtrados))
  14. return;
  15. $scope.cero=false;
  16. };
  17. $scope.update = function() {
  18. $http.get('back/cliente/' + $routeParams.hash).then(function(data) {
  19. $scope.userdata = data.data;
  20. });
  21. if (editing) {
  22. $scope.titulo = 'Editar pedido';
  23. $http.get('back/pedido/'+$routeParams.hash+'/'+$routeParams.id).then(
  24. function(data) {
  25. $scope.listaproductos = data.data.productos;
  26. $scope.observaciones = data.data.observaciones || "";
  27. $scope.updateTotal();
  28. },
  29. function(data) {
  30. });
  31. } else {
  32. $http.get('back/productos/' + $routeParams.hash).success(function(data) {
  33. $scope.listaproductos = data;
  34. }).error(function(data) {
  35. });
  36. }
  37. };
  38. $scope.filterCero = function(criteria) {
  39. return function(item) {
  40. if ($scope.cero)
  41. return true;
  42. return item.cantidad > 0;
  43. };
  44. };
  45. $scope.validateKeypress = function(e) {
  46. if ( [46, 8, 9, 27, 13, 37, 39, 116].indexOf(e.keyCode) > -1 )
  47. return;
  48. if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
  49. e.preventDefault();
  50. }
  51. if ( this.p.cantidad >= 10 )
  52. e.preventDefault();
  53. };
  54. $scope.updateTotal = function() {
  55. var total=0;
  56. total=$scope.listaproductos.reduce(
  57. function(acc,cur) {
  58. return acc+(cur.cantidad*cur.precio);
  59. },0);
  60. $scope.total=total;
  61. };
  62. $scope.reset = function() {
  63. $scope.update();
  64. };
  65. $scope.ok = function () {
  66. var pedido = {};
  67. var filtrados = $scope.listaproductos.filter(function(el) { return el.cantidad > 0; });
  68. if (!pedidosService.pedidoValido(filtrados))
  69. return;
  70. pedido.productos = filtrados;
  71. pedido.cliente = $routeParams.hash;
  72. pedido.id = $routeParams.id;
  73. pedido.observaciones = $scope.observaciones;
  74. $http.post('back/pedido', { pedido: pedido } )
  75. .success(function(data, status, headers, config) {
  76. notify("Actualizado correctamente");
  77. $timeout(function() { $location.url("/"+$routeParams.hash); }, 2000);
  78. })
  79. .error(function(data, status, headers, config) {
  80. notify({classes:"alert alert-danger", message:"Error: "+ data.err});
  81. });
  82. };
  83. $scope.reset();
  84. });