editPedidoCtrl.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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.updateTotal = function() {
  27. var total=0;
  28. total=$scope.listaproductos.reduce(
  29. function(acc,cur) {
  30. return acc+(cur.cantidad*cur.precio)
  31. },0);
  32. $scope.total=total;
  33. };
  34. $scope.reset = function() {
  35. $scope.update();
  36. };
  37. $scope.ok = function () {
  38. var pedido = {};
  39. var filtrados = $scope.listaproductos.filter(function(el) { return el.cantidad > 0; });
  40. if (filtrados.length==0){
  41. notify({message:"No hay productos",classes:"alert alert-danger"});
  42. return;
  43. }
  44. for(var f in $scope.listaproductos){
  45. var prod = $scope.listaproductos[f];
  46. if(isNaN(prod.cantidad)){
  47. notify({message:prod.nombre+" tiene cantidad incorrecta",classes:"alert alert-danger"});
  48. return;
  49. }
  50. }
  51. pedido.productos = filtrados;
  52. pedido.cliente = $routeParams.hash;
  53. pedido.id = $routeParams.id;
  54. $http.post('back/pedido', { pedido: pedido } )
  55. .success(function(data, status, headers, config) {
  56. notify("Actualizado correctamente");
  57. $timeout(function() { $location.url("/"+$routeParams.hash) }, 2000);
  58. })
  59. .error(function(data, status, headers, config) {
  60. notify({classes:"alert alert-danger", message:"Error: "+ data.err});
  61. });
  62. };
  63. $scope.reset();
  64. });