Commit 1a18026adceaef9afb9cca8d8c98a1efe840d0f9

Authored by Nicolás Guarnieri
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(&#39;focaCrearCobranza&#39;) .controller(&#39;cobranzaController&#39;,
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 ]);