createPedidoCtrl.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. app.controller('createPedidoCtrl', 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/productos/' + $routeParams.hash).success(function(data) {
  12. $scope.listaproductos = data;
  13. }).error(function(data) {
  14. });
  15. };
  16. $scope.filterCero = function(criteria) {
  17. return function(item) {
  18. if ($scope.cero)
  19. return true;
  20. return item.cantidad > 0;
  21. };
  22. };
  23. $scope.updateTotal = function() {
  24. var total=0;
  25. total=$scope.listaproductos.reduce(
  26. function(acc,cur) {
  27. return acc+(cur.cantidad*cur.precio)
  28. },0);
  29. $scope.total=total;
  30. };
  31. $scope.reset = function() {
  32. $scope.update();
  33. };
  34. $scope.ok = function () {
  35. var pedido = {};
  36. var filtrados = $scope.listaproductos.filter(function(el) { return el.cantidad > 0; });
  37. if (filtrados.length==0){
  38. notify({message:"No hay productos",classes:"alert alert-danger"});
  39. return;
  40. }
  41. for(var f in $scope.listaproductos){
  42. var prod = $scope.listaproductos[f];
  43. if(isNaN(prod.cantidad)){
  44. notify({message:prod.nombre+" tiene cantidad incorrecta",classes:"alert alert-danger"});
  45. return;
  46. }
  47. }
  48. pedido.productos = filtrados;
  49. pedido.cliente = $routeParams.hash;
  50. $http.post('back/pedido', { pedido: pedido } )
  51. .success(function(data, status, headers, config) {
  52. notify("Enviado correctamente. En unos minutos recibiras un e-mail de confirmacion");
  53. $timeout(function() { $location.url("/"+$routeParams.hash) }, 2000);
  54. })
  55. .error(function(data, status, headers, config) {
  56. notify({classes:"alert alert-danger", message:"Error: "+ data.err});
  57. });
  58. };
  59. $scope.reset();
  60. });