facturaCtrl.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. app.controller('facturaCtrl', function ($scope, $http, $window, notify,$location) {
  2. $scope.error=false;
  3. $scope.cero=true;
  4. $scope.total=0;
  5. var user = $location.search().user;
  6. if (user == undefined)
  7. user="";
  8. $scope.modificar = function() {
  9. $scope.cero=true;
  10. }
  11. $scope.confirmar = function() {
  12. $scope.cero=false;
  13. };
  14. $scope.update = function() {
  15. $http.get('back/cliente/' + user).success(function(data) {
  16. $scope.userdata = data;
  17. }).error(function(data) {
  18. $scope.error=true;
  19. });
  20. $http.get('back/productos/' + user).success(function(data) {
  21. $scope.listaproductos = data;
  22. }).error(function(data) {
  23. $scope.error=true;
  24. });
  25. };
  26. $scope.filterCero = function(criteria) {
  27. return function(item) {
  28. if ($scope.cero)
  29. return true;
  30. return item.cantidad > 0;
  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 = $scope.userdata;
  60. $http.post('back/pedido', { pedido: pedido } )
  61. .success(function(data, status, headers, config) {
  62. notify("Enviado correctamente. En unos minutos recibiras un e-mail de confirmacion");
  63. })
  64. .error(function(data, status, headers, config) {
  65. notify({classes:"alert alert-danger", message:"Error: "+ data.err});
  66. });
  67. };
  68. $scope.reset();
  69. });