Commit f05b4cb5fe23761ef1bbd5d9e8fe628b94e2fc90
1 parent
5fefcd803b
Exists in
master
boton salir comprueba si hay algun ingreso de datos
Showing
2 changed files
with
118 additions
and
128 deletions
Show diff stats
src/js/controller.js
... | ... | @@ -17,78 +17,101 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
17 | 17 | $scope, $uibModal, $location, $filter, $timeout, crearNotaPedidoService, |
18 | 18 | focaBotoneraLateralService, focaModalService, notaPedidoBusinessService, |
19 | 19 | $rootScope, focaSeguimientoService, APP, focaLoginService) |
20 | - { | |
21 | - if(APP === 'distribuidor') { | |
22 | - var idVendedor = focaLoginService.getLoginData().vendedorCobrador; | |
23 | - $scope.botonera = crearNotaPedidoService.getBotonera(idVendedor); | |
24 | - crearNotaPedidoService.getVendedorById(idVendedor).then( | |
25 | - function(res) { | |
26 | - var vendedor = res.data; | |
27 | - $scope.$broadcast('addCabecera', { | |
28 | - label: 'Vendedor:', | |
29 | - valor: $filter('rellenarDigitos')(vendedor.CodVen, 3) + ' - ' + | |
30 | - vendedor.NomVen | |
31 | - }); | |
32 | - $scope.notaPedido.vendedor = vendedor; | |
33 | - } | |
34 | - ); | |
35 | - }else { | |
36 | - $scope.botonera = crearNotaPedidoService.getBotonera(); | |
20 | + { | |
21 | + config(); | |
22 | + | |
23 | + function config() { | |
24 | + // PARAMETROS INICIALES PARA FUNCIONAMIENTO DEL PROGRAMA | |
25 | + $scope.isNumber = angular.isNumber; | |
26 | + $scope.datepickerAbierto = false; | |
27 | + $scope.show = false; | |
28 | + $scope.cargando = true; | |
29 | + $scope.now = new Date(); | |
30 | + $scope.puntoVenta = '0000'; | |
31 | + $scope.comprobante = '00000000'; | |
32 | + $scope.dateOptions = { | |
33 | + maxDate: new Date(), | |
34 | + minDate: new Date(2010, 0, 1) | |
35 | + }; | |
36 | + | |
37 | + //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]' | |
38 | + var monedaPorDefecto; | |
39 | + crearNotaPedidoService.getCotizacionByIdMoneda(1).then(function(res) { | |
40 | + monedaPorDefecto = res.data[0]; | |
41 | + | |
42 | + $scope.notaPedido.moneda = monedaPorDefecto; | |
43 | + $scope.inicial.notaPedido.moneda = $scope.notaPedido.moneda; | |
44 | + | |
45 | + $scope.notaPedido.cotizacion = monedaPorDefecto.cotizaciones[0]; | |
46 | + $scope.inicial.notaPedido.cotizacion = $scope.notaPedido.cotizacion; | |
47 | + }); | |
48 | + | |
49 | + //SETEO BOTONERA LATERAL | |
50 | + $timeout(function() { | |
51 | + focaBotoneraLateralService.showSalir(false); | |
52 | + focaBotoneraLateralService.showPausar(true); | |
53 | + focaBotoneraLateralService.showGuardar(true, $scope.crearNotaPedido); | |
54 | + focaBotoneraLateralService.addCustomButton('Salir', salir); | |
55 | + }); | |
56 | + | |
57 | + // SETEA BOTONERA DE FACTURADOR TENIENDO EN CUENTA SI ESTA SETEADO EL VENDEDOR | |
58 | + if (APP === 'distribuidor') { | |
59 | + $scope.idVendedor = focaLoginService.getLoginData().vendedorCobrador; | |
60 | + $scope.botonera = crearNotaPedidoService.getBotonera($scope.idVendedor); | |
61 | + } else { | |
62 | + $scope.botonera = crearNotaPedidoService.getBotonera(); | |
63 | + } | |
64 | + | |
65 | + init(); | |
37 | 66 | } |
38 | 67 | |
39 | - $scope.isNumber = angular.isNumber; | |
40 | - $scope.datepickerAbierto = false; | |
41 | - $scope.show = false; | |
42 | - $scope.cargando = true; | |
43 | - $scope.dateOptions = { | |
44 | - maxDate: new Date(), | |
45 | - minDate: new Date(2010, 0, 1) | |
46 | - }; | |
68 | + function init() { | |
69 | + $scope.$broadcast('cleanCabecera'); | |
47 | 70 | |
48 | - $scope.notaPedido = { | |
49 | - id: 0, | |
50 | - vendedor: {}, | |
51 | - cliente: {}, | |
52 | - proveedor: {}, | |
53 | - domicilio: {dom: ''}, | |
54 | - moneda: {}, | |
55 | - cotizacion: {} | |
56 | - }; | |
57 | - var monedaPorDefecto; | |
58 | - //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]' | |
59 | - crearNotaPedidoService.getCotizacionByIdMoneda(1).then(function(res) { | |
60 | - monedaPorDefecto = res.data[0]; | |
61 | - $scope.notaPedido.moneda = monedaPorDefecto; | |
62 | - $scope.notaPedido.cotizacion = monedaPorDefecto.cotizaciones[0]; | |
63 | - }); | |
71 | + $scope.notaPedido = { | |
72 | + id: 0, | |
73 | + cliente: {}, | |
74 | + proveedor: {}, | |
75 | + domicilio: {dom: ''}, | |
76 | + vendedor: {} | |
77 | + }; | |
78 | + | |
79 | + $scope.articulosTabla = []; | |
80 | + $scope.idLista = undefined; | |
64 | 81 | |
65 | - $scope.cabecera = []; | |
66 | - $scope.showCabecera = true; | |
67 | - | |
68 | - $scope.now = new Date(); | |
69 | - $scope.puntoVenta = '0000'; | |
70 | - $scope.comprobante = '00000000'; | |
71 | - $scope.articulosTabla = []; | |
72 | - $scope.idLista = undefined; | |
73 | - | |
74 | - //SETEO BOTONERA LATERAL | |
75 | - $timeout(function() { | |
76 | - focaBotoneraLateralService.showSalir(false); | |
77 | - focaBotoneraLateralService.showPausar(true); | |
78 | - focaBotoneraLateralService.showGuardar(true, $scope.crearNotaPedido); | |
79 | - focaBotoneraLateralService.addCustomButton('Salir', salir); | |
80 | - }); | |
82 | + crearNotaPedidoService.getNumeroNotaPedido().then( | |
83 | + function(res) { | |
84 | + $scope.puntoVenta = rellenar(res.data.sucursal, 4); | |
85 | + $scope.comprobante = rellenar(res.data.numeroNotaPedido, 8); | |
86 | + }, | |
87 | + function(err) { | |
88 | + focaModalService.alert('La terminal no esta configurada correctamente'); | |
89 | + console.info(err); | |
90 | + } | |
91 | + ); | |
92 | + | |
93 | + if (APP === 'distribuidor') { | |
94 | + crearNotaPedidoService.getVendedorById($scope.idVendedor).then( | |
95 | + function(res) { | |
96 | + var vendedor = res.data; | |
97 | + $scope.$broadcast('addCabecera', { | |
98 | + label: 'Vendedor:', | |
99 | + valor: $filter('rellenarDigitos')(vendedor.CodVen, 3) + ' - ' + | |
100 | + vendedor.NomVen | |
101 | + }); | |
81 | 102 | |
82 | - crearNotaPedidoService.getNumeroNotaPedido().then( | |
83 | - function(res) { | |
84 | - $scope.puntoVenta = rellenar(res.data.sucursal, 4); | |
85 | - $scope.comprobante = rellenar(res.data.numeroNotaPedido, 8); | |
86 | - }, | |
87 | - function(err) { | |
88 | - focaModalService.alert('La terminal no esta configurada correctamente'); | |
89 | - console.info(err); | |
103 | + $scope.notaPedido.vendedor = vendedor; | |
104 | + $scope.inicial.notaPedido.vendedor =$scope.notaPedido.vendedor; | |
105 | + } | |
106 | + ); | |
90 | 107 | } |
91 | - ); | |
108 | + | |
109 | + $scope.inicial = { | |
110 | + notaPedido: angular.copy($scope.notaPedido), | |
111 | + articulosTabla: angular.copy($scope.articulosTabla), | |
112 | + idLista: angular.copy($scope.idLista) | |
113 | + }; | |
114 | + } | |
92 | 115 | |
93 | 116 | $scope.crearNotaPedido = function() { |
94 | 117 | if(!$scope.notaPedido.vendedor.CodVen) { |
... | ... | @@ -169,7 +192,8 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
169 | 192 | dias: plazo.dias |
170 | 193 | }); |
171 | 194 | }); |
172 | - if(plazosACrear.length){ | |
195 | + | |
196 | + if (plazosACrear.length) { | |
173 | 197 | crearNotaPedidoService.crearPlazosParaNotaPedido(plazosACrear); |
174 | 198 | } |
175 | 199 | |
... | ... | @@ -178,45 +202,9 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
178 | 202 | |
179 | 203 | focaBotoneraLateralService.endGuardar(true); |
180 | 204 | $scope.saveLoading = false; |
181 | - $scope.$broadcast('cleanCabecera'); | |
182 | - $scope.$broadcast('addCabecera', { | |
183 | - label: 'Moneda:', | |
184 | - valor: $scope.notaPedido.moneda.DETALLE | |
185 | - }); | |
186 | - $scope.$broadcast('addCabecera', { | |
187 | - label: 'Fecha cotizacion:', | |
188 | - valor: $filter('date')($scope.notaPedido.cotizacion.FECHA, 'dd/MM/yyyy') | |
189 | - }); | |
190 | - $scope.$broadcast('addCabecera', { | |
191 | - label: 'Moneda:', | |
192 | - valor: $scope.notaPedido.moneda.DETALLE | |
193 | - }); | |
194 | - $scope.$broadcast('addCabecera', { | |
195 | - label: 'Cotizacion:', | |
196 | - valor: $filter('number')($scope.notaPedido.cotizacion.VENDEDOR, '2') | |
197 | - }); | |
198 | - crearNotaPedidoService.getNumeroNotaPedido().then( | |
199 | - function(res) { | |
200 | - $scope.puntoVenta = rellenar(res.data.sucursal, 4); | |
201 | - $scope.comprobante = rellenar(res.data.numeroNotaPedido, 8); | |
202 | - }, | |
203 | - function(err) { | |
204 | - focaModalService.alert( | |
205 | - 'La terminal no esta configurada correctamente'); | |
206 | - console.info(err); | |
207 | - } | |
208 | - ); | |
209 | - $scope.notaPedido.vendedor = {}; | |
210 | - $scope.notaPedido.cliente = {}; | |
211 | - $scope.notaPedido.proveedor = {}; | |
212 | - $scope.notaPedido.domicilio = {}; | |
213 | - $scope.notaPedido.flete = undefined; | |
214 | - $scope.notaPedido.fob = undefined; | |
215 | - $scope.notaPedido.bomba = undefined; | |
216 | - $scope.notaPedido.kilometros = undefined; | |
217 | - $scope.articulosTabla = []; | |
218 | - }, | |
219 | - function(error) { | |
205 | + | |
206 | + init(); | |
207 | + }, function(error) { | |
220 | 208 | focaModalService.alert('Hubo un error al crear la nota de pedido'); |
221 | 209 | focaBotoneraLateralService.endGuardar(); |
222 | 210 | $scope.saveLoading = false; |
... | ... | @@ -881,6 +869,7 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
881 | 869 | return false; |
882 | 870 | } |
883 | 871 | } |
872 | + | |
884 | 873 | function formatearPuntosDescarga(puntosDescarga) { |
885 | 874 | var result = []; |
886 | 875 | |
... | ... | @@ -917,23 +906,24 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
917 | 906 | } |
918 | 907 | |
919 | 908 | function salir() { |
920 | - var notaPedido = { | |
921 | - id: 0, | |
922 | - vendedor: {}, | |
923 | - cliente: {}, | |
924 | - proveedor: {}, | |
925 | - domicilio: {dom: ''}, | |
926 | - moneda: $scope.notaPedido.moneda, | |
927 | - cotizacion: $scope.notaPedido.cotizacion | |
928 | - }; | |
929 | - if(JSON.stringify($scope.notaPedido) !== JSON.stringify(notaPedido)) { | |
930 | - focaModalService | |
931 | - .confirm('¿Esta seguro de que desea salir? ' + | |
932 | - 'Se perderán todos los datos cargados.') | |
933 | - .then(function(data) { | |
934 | - if(data) $location.path('/'); | |
935 | - }); | |
936 | - }else { | |
909 | + var confirmacion = false; | |
910 | + | |
911 | + angular.forEach($scope.inicial, function(valor, key) { | |
912 | + if (!angular.equals($scope[key], $scope.inicial[key])) { | |
913 | + confirmacion = true; | |
914 | + } | |
915 | + }); | |
916 | + | |
917 | + if (confirmacion) { | |
918 | + focaModalService.confirm( | |
919 | + '¿Esta seguro de que desea salir? ' + | |
920 | + 'Se perderán todos los datos cargados.' | |
921 | + ).then(function(data) { | |
922 | + if (data) { | |
923 | + $location.path('/'); | |
924 | + } | |
925 | + }); | |
926 | + } else { | |
937 | 927 | $location.path('/'); |
938 | 928 | } |
939 | 929 | } |
src/views/nota-pedido.html
1 | 1 | <div class="crear-nota-pedido foca-crear row"> |
2 | 2 | <foca-cabecera-facturador |
3 | - titulo="'Nota de pedido'" | |
4 | - numero="puntoVenta + '-' + comprobante" | |
5 | - fecha="now" | |
6 | - class="mb-0 col-lg-12" | |
7 | - busqueda="seleccionarNotaPedido" | |
3 | + titulo="'Nota de pedido'" | |
4 | + numero="puntoVenta + '-' + comprobante" | |
5 | + fecha="now" | |
6 | + class="mb-0 col-lg-12" | |
7 | + busqueda="seleccionarNotaPedido" | |
8 | 8 | ></foca-cabecera-facturador> |
9 | 9 | <div class="col-lg-12"> |
10 | 10 | <div class="row"> |