Commit 1a18026adceaef9afb9cca8d8c98a1efe840d0f9
1 parent
4e3e2e1f26
Exists in
master
mejora inicializacion y salir
Showing
1 changed file
with
100 additions
and
96 deletions
Show diff stats
src/js/controller.js
1 | 1 | angular.module('focaCrearCobranza') .controller('cobranzaController', |
2 | 2 | [ |
3 | - '$scope', | |
4 | - '$rootScope', | |
5 | - '$timeout', | |
6 | - '$uibModal', | |
7 | - '$location', | |
8 | - 'focaCrearCobranzaService', | |
9 | - 'focaModalService', | |
10 | - '$filter', | |
11 | - 'focaSeguimientoService', | |
12 | - 'focaBotoneraLateralService', | |
13 | - 'APP', | |
14 | - 'focaLoginService', | |
3 | + '$scope', '$rootScope', '$timeout', '$uibModal', '$location', | |
4 | + 'focaCrearCobranzaService', 'focaModalService', '$filter', 'focaSeguimientoService', | |
5 | + 'focaBotoneraLateralService', 'APP', 'focaLoginService', | |
15 | 6 | function($scope, $rootScope, $timeout, $uibModal, $location, focaCrearCobranzaService, |
16 | 7 | focaModalService, $filter, focaSeguimientoService, focaBotoneraLateralService, |
17 | 8 | APP, loginService) |
18 | 9 | { |
10 | + config(); | |
19 | 11 | |
20 | - if(APP === 'cobranza') { | |
21 | - var idCobrador = loginService.getLoginData().vendedorCobrador; | |
22 | - $scope.botonera = focaCrearCobranzaService.getBotonera(idCobrador); | |
23 | - focaCrearCobranzaService.getCobradorById(idCobrador).then( | |
12 | + function config() { | |
13 | + $scope.datepickerAbierto = false; | |
14 | + $scope.cobroDeuda = true; | |
15 | + $scope.show = false; | |
16 | + $scope.cargando = true; | |
17 | + $scope.fecha = new Date(); | |
18 | + $scope.puntoVenta = $filter('rellenarDigitos')(0, 4); | |
19 | + $scope.comprobante = $filter('rellenarDigitos')(0, 8); | |
20 | + | |
21 | + $scope.dateOptions = { | |
22 | + maxDate: new Date(), | |
23 | + minDate: new Date(2010, 0, 1) | |
24 | + }; | |
25 | + | |
26 | + var monedaPorDefecto; | |
27 | + //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]' | |
28 | + focaCrearCobranzaService.getCotizacionByIdMoneda(1).then(function(res) { | |
29 | + monedaPorDefecto = res.data[0]; | |
30 | + | |
31 | + $scope.cobranza.moneda = monedaPorDefecto; | |
32 | + $scope.inicial.cobranza.moneda = $scope.cobranza.moneda; | |
33 | + | |
34 | + $scope.cobranza.cotizacion = monedaPorDefecto.cotizaciones[0]; | |
35 | + $scope.inicial.cobranza.cotizacion = $scope.cobranza.cotizacion; | |
36 | + }); | |
37 | + | |
38 | + $timeout(function() { | |
39 | + focaBotoneraLateralService.showSalir(false); | |
40 | + focaBotoneraLateralService.showPausar(true); | |
41 | + focaBotoneraLateralService.showGuardar(true, $scope.crearCobranza); | |
42 | + focaBotoneraLateralService.addCustomButton('Salir', salir); | |
43 | + }); | |
44 | + | |
45 | + if (APP === 'cobranza') { | |
46 | + $scope.idCobrador = loginService.getLoginData().vendedorCobrador; | |
47 | + $scope.botonera = focaCrearCobranzaService.getBotonera($scope.idCobrador); | |
48 | + } else { | |
49 | + $scope.botonera = focaCrearCobranzaService.getBotonera(); | |
50 | + } | |
51 | + | |
52 | + init(); | |
53 | + } | |
54 | + | |
55 | + function init() { | |
56 | + $scope.$broadcast('cleanCabecera'); | |
57 | + | |
58 | + $scope.cobranza = {}; | |
59 | + $scope.facturaTabla = []; | |
60 | + $scope.cobrosTabla = []; | |
61 | + | |
62 | + focaCrearCobranzaService.getCobradorById($scope.idCobrador).then( | |
24 | 63 | function(res) { |
25 | 64 | var cobrador = res.data; |
65 | + | |
26 | 66 | $scope.$broadcast('addCabecera', { |
27 | 67 | label: 'Cobrador:', |
28 | 68 | valor: $filter('rellenarDigitos')(cobrador.CodVen) + ' - ' + |
29 | 69 | cobrador.NomVen |
30 | 70 | }); |
71 | + | |
31 | 72 | $scope.cobranza.cobrador = cobrador; |
73 | + $scope.inicial.cobranza.cobrador = $scope.cobranza.cobrador; | |
32 | 74 | } |
33 | 75 | ); |
34 | - }else { | |
35 | - $scope.botonera = focaCrearCobranzaService.getBotonera(); | |
36 | - } | |
37 | - $scope.datepickerAbierto = false; | |
38 | - $scope.cobroDeuda = true; | |
39 | - $scope.show = false; | |
40 | - $scope.cargando = true; | |
41 | - $scope.dateOptions = { | |
42 | - maxDate: new Date(), | |
43 | - minDate: new Date(2010, 0, 1) | |
44 | - }; | |
45 | 76 | |
46 | - $scope.cobranza = {}; | |
47 | - | |
48 | - $scope.fecha = new Date(); | |
49 | - $scope.puntoVenta = '0000'; | |
50 | - $scope.comprobante = '00000000'; | |
51 | - $scope.facturaTabla = []; | |
52 | - $scope.cobrosTabla = []; | |
77 | + $scope.inicial = { | |
78 | + cobranza: angular.copy($scope.cobranza), | |
79 | + facturaTabla: angular.copy($scope.facturaTabla), | |
80 | + cobrosTabla: angular.copy($scope.cobrosTabla) | |
81 | + }; | |
53 | 82 | |
54 | - $timeout(function() { | |
55 | - focaBotoneraLateralService.showSalir(false); | |
56 | - focaBotoneraLateralService.showPausar(true); | |
57 | - focaBotoneraLateralService.showGuardar(true, $scope.crearCobranza); | |
58 | - focaBotoneraLateralService.addCustomButton('Salir', salir); | |
59 | - }); | |
83 | + focaCrearCobranzaService.getNumeroRecibo().then( | |
84 | + function(res) { | |
85 | + $scope.puntoVenta = $filter('rellenarDigitos')( | |
86 | + res.data.sucursal, 4 | |
87 | + ); | |
88 | + | |
89 | + $scope.comprobante = $filter('rellenarDigitos')( | |
90 | + res.data.numeroRecibo, 8 | |
91 | + ); | |
92 | + }, | |
93 | + function(err) { | |
94 | + focaModalService.alert( | |
95 | + 'La terminal no esta configurada correctamente' | |
96 | + ); | |
97 | + console.info(err); | |
98 | + } | |
99 | + ); | |
100 | + } | |
60 | 101 | |
61 | 102 | $scope.crearCobranza = function() { |
62 | 103 | if(!$scope.cobranza.cliente) { |
... | ... | @@ -76,6 +117,7 @@ angular.module('focaCrearCobranza') .controller('cobranzaController', |
76 | 117 | $scope.cobranza.moneda.SIMBOLO + '0,00'); |
77 | 118 | return; |
78 | 119 | } |
120 | + | |
79 | 121 | var cobranza = {}; |
80 | 122 | var cheques = []; |
81 | 123 | var cuerpos = []; |
... | ... | @@ -93,7 +135,7 @@ angular.module('focaCrearCobranza') .controller('cobranzaController', |
93 | 135 | LOP: 'L', |
94 | 136 | TIL: $scope.facturaTabla[i].TCO, |
95 | 137 | COM: $scope.facturaTabla[i].numeroFactura + '-' + |
96 | - $scope.rellenar($scope.facturaTabla[i].NCU,2), | |
138 | + $filter('rellenarDigitos')($scope.facturaTabla[i].NCU,2), | |
97 | 139 | FEC: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '), |
98 | 140 | IMP: Math.abs($scope.facturaTabla[i].IPA), |
99 | 141 | RES: 0,//caja de tesorería |
... | ... | @@ -261,17 +303,8 @@ angular.module('focaCrearCobranza') .controller('cobranzaController', |
261 | 303 | result.data, |
262 | 304 | '' |
263 | 305 | ); |
264 | - //TODO: si esta en mobile no perder el cobrador | |
265 | - $scope.cobranza = { | |
266 | - fecha: new Date() | |
267 | - }; | |
268 | - setearMonedaPorDefecto(); | |
269 | - obtenerNumeroComprobante(); | |
270 | - //TODO: si esta en mobile no perder el cobrador | |
271 | - $scope.$broadcast('cleanCabecera'); | |
272 | - $scope.fecha = new Date(); | |
273 | - $scope.facturaTabla = []; | |
274 | - $scope.cobrosTabla = []; | |
306 | + | |
307 | + init(); | |
275 | 308 | }, function(error) { |
276 | 309 | focaModalService.alert('Hubo un problema al cargar la cobranza'); |
277 | 310 | focaBotoneraLateralService.endGuardar(); |
... | ... | @@ -604,15 +637,6 @@ angular.module('focaCrearCobranza') .controller('cobranzaController', |
604 | 637 | articulo.precio = parseFloat(articulo.precio); |
605 | 638 | }; |
606 | 639 | |
607 | - $scope.rellenar = function(relleno, longitud) { | |
608 | - relleno = '' + relleno; | |
609 | - while (relleno.length < longitud) { | |
610 | - relleno = '0' + relleno; | |
611 | - } | |
612 | - | |
613 | - return relleno; | |
614 | - }; | |
615 | - | |
616 | 640 | $scope.quitarFactura = function(key) { |
617 | 641 | $scope.facturaTabla.splice(key, 1); |
618 | 642 | }; |
... | ... | @@ -621,46 +645,26 @@ angular.module('focaCrearCobranza') .controller('cobranzaController', |
621 | 645 | $scope.cobrosTabla.splice(key, 1); |
622 | 646 | }; |
623 | 647 | |
624 | - function setearMonedaPorDefecto() { | |
625 | - var monedaPorDefecto; | |
626 | - //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]' | |
627 | - focaCrearCobranzaService.getCotizacionByIdMoneda(1).then(function(res) { | |
628 | - monedaPorDefecto = res.data[0]; | |
629 | - $scope.cobranza.moneda = monedaPorDefecto; | |
630 | - $scope.cobranza.cotizacion = monedaPorDefecto.cotizaciones[0]; | |
631 | - }); | |
632 | - } | |
648 | + function salir() { | |
649 | + var confirmacion = false; | |
633 | 650 | |
634 | - function obtenerNumeroComprobante() { | |
635 | - focaCrearCobranzaService.getNumeroRecibo().then( | |
636 | - function(res) { | |
637 | - $scope.puntoVenta = $scope.rellenar(res.data.sucursal, 4); | |
638 | - $scope.comprobante = $scope.rellenar(res.data.numeroRecibo, 8); | |
639 | - }, | |
640 | - function(err) { | |
641 | - focaModalService.alert('La terminal no esta configurada correctamente'); | |
642 | - console.info(err); | |
651 | + angular.forEach($scope.inicial, function(valor, key) { | |
652 | + if (!angular.equals($scope[key], $scope.inicial[key])) { | |
653 | + confirmacion = true; | |
643 | 654 | } |
644 | - ); | |
645 | - } | |
655 | + }); | |
646 | 656 | |
647 | - function salir() { | |
648 | - var cobranza = { | |
649 | - moneda: $scope.cobranza.moneda, | |
650 | - cotizacion: $scope.cobranza.cotizacion | |
651 | - }; | |
652 | - if(JSON.stringify($scope.cobranza) !== JSON.stringify(cobranza)) { | |
653 | - focaModalService | |
654 | - .confirm('¿Esta seguro de que desea salir? ' + | |
655 | - 'Se perderán todos los datos cargados.') | |
656 | - .then(function(data) { | |
657 | - if(data) $location.path('/'); | |
658 | - }); | |
659 | - }else { | |
657 | + if (confirmacion) { | |
658 | + focaModalService.confirm( | |
659 | + '¿Esta seguro de que desea salir? Se perderán todos los datos cargados.' | |
660 | + ).then(function(data) { | |
661 | + if (data) { | |
662 | + $location.path('/'); | |
663 | + } | |
664 | + }); | |
665 | + } else { | |
660 | 666 | $location.path('/'); |
661 | 667 | } |
662 | 668 | } |
663 | - obtenerNumeroComprobante(); | |
664 | - setearMonedaPorDefecto(); | |
665 | 669 | } |
666 | 670 | ]); |