diff --git a/src/js/controller.js b/src/js/controller.js index e467d18..1a21a0e 100644 --- a/src/js/controller.js +++ b/src/js/controller.js @@ -6,66 +6,84 @@ angular.module('focaCrearRemito') .controller('remitoController', $scope, $uibModal, $location, $filter, crearRemitoService, $timeout, focaModalService, remitoBusinessService, $rootScope, focaBotoneraLateralService) { - $scope.botonera = crearRemitoService.getBotonera(); - $scope.isNumber = angular.isNumber; - $scope.datepickerAbierto = false; - $scope.show = false; - $scope.cargando = true; - $scope.dateOptions = { - maxDate: new Date(), - minDate: new Date(2010, 0, 1) - }; - - $scope.remito = { - id: 0, - estado: 0, - vendedor: {}, - cliente: {}, - proveedor: {}, - domicilio: {dom: ''}, - moneda: {}, - cotizacion: {} - }; + config(); - $scope.notaPedido = { - id: 0 - }; - var monedaPorDefecto; - //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]' - crearRemitoService.getCotizacionByIdMoneda(1).then(function(res) { - monedaPorDefecto = res.data[0]; - $scope.remito.moneda = monedaPorDefecto; - $scope.remito.cotizacion = monedaPorDefecto.cotizaciones[0]; - }); + function config() { + $scope.botonera = crearRemitoService.getBotonera(); + $scope.isNumber = angular.isNumber; + $scope.datepickerAbierto = false; + $scope.show = false; + $scope.cargando = true; + $scope.now = new Date(); + $scope.puntoVenta = rellenar(0, 4); + $scope.comprobante = rellenar(0, 8); + $scope.dateOptions = { + maxDate: new Date(), + minDate: new Date(2010, 0, 1) + }; + + var monedaPorDefecto; + //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]' + crearRemitoService.getCotizacionByIdMoneda(1).then(function(res) { + monedaPorDefecto = res.data[0]; + + $scope.remito.moneda = monedaPorDefecto; + $scope.inicial.remito.moneda = $scope.remito.moneda; + + $scope.remito.cotizacion = monedaPorDefecto.cotizaciones[0]; + $scope.inicial.remito.cotizacion = $scope.remito.cotizacion; + }); + + //SETEO BOTONERA LATERAL + $timeout(function() { + focaBotoneraLateralService.showSalir(false); + focaBotoneraLateralService.showPausar(true); + focaBotoneraLateralService.showGuardar(true, $scope.crearRemito); + focaBotoneraLateralService.addCustomButton('Salir', salir); + }); + + init(); + } - $scope.cabecera = []; - $scope.showCabecera = true; + function init() { + $scope.$broadcast('cleanCabecera'); + + $scope.remito = { + id: 0, + estado: 0, + vendedor: {}, + cliente: {}, + proveedor: {}, + domicilio: {dom: ''}, + moneda: {}, + cotizacion: {} + }; - $scope.now = new Date(); - $scope.puntoVenta = rellenar(0, 4); - $scope.comprobante = rellenar(0, 8); + $scope.notaPedido = { + id: 0 + }; - $scope.articulosTabla = []; - $scope.idLista = undefined; + $scope.articulosTabla = []; + $scope.idLista = undefined; - //SETEO BOTONERA LATERAL - $timeout(function() { - focaBotoneraLateralService.showSalir(false); - focaBotoneraLateralService.showPausar(true); - focaBotoneraLateralService.showGuardar(true, $scope.crearRemito); - focaBotoneraLateralService.addCustomButton('Salir', salir); - }); + crearRemitoService.getNumeroRemito().then( + function(res) { + $scope.puntoVenta = rellenar(res.data.sucursal, 4); + $scope.comprobante = rellenar(res.data.numeroRemito, 8); + }, + function(err) { + focaModalService.alert('La terminal no esta configurada correctamente'); + console.info(err); + } + ); - crearRemitoService.getNumeroRemito().then( - function(res) { - $scope.puntoVenta = rellenar(res.data.sucursal, 4); - $scope.comprobante = rellenar(res.data.numeroRemito, 8); - }, - function(err) { - focaModalService.alert('La terminal no esta configurada correctamente'); - console.info(err); - } - ); + $scope.inicial = { + remito: angular.copy($scope.remito), + notaPedido: angular.copy($scope.notaPedido), + articulosTabla: angular.copy($scope.articulosTabla), + idLista: angular.copy($scope.idLista) + }; + } $scope.seleccionarNotaPedido = function() { if(varlidarRemitoFacturado()) { @@ -383,43 +401,8 @@ angular.module('focaCrearRemito') .controller('remitoController', crearRemitoService.crearPlazosParaRemito(json); } } - - $scope.$broadcast('cleanCabecera'); - $scope.$broadcast('addCabecera',{ - label: 'Moneda:', - valor: $scope.remito.moneda.DETALLE - }); - $scope.$broadcast('addCabecera',{ - label: 'Fecha cotizacion:', - valor: $filter('date')($scope.remito.cotizacion.FECHA, 'dd/MM/yyyy') - }); - $scope.$broadcast('addCabecera',{ - label: 'Cotizacion:', - valor: $filter('number')($scope.remito.cotizacion.COTIZACION, '2') - }); - $scope.remito.vendedor = {}; - $scope.remito.cliente = {}; - $scope.remito.proveedor = {}; - $scope.remito.domicilio = {}; - $scope.remito.flete = null; - $scope.remito.fob = null; - $scope.remito.bomba = null; - $scope.remito.kilometros = null; - $scope.articulosTabla = []; - crearRemitoService.getNumeroRemito().then( - function(res) { - $scope.puntoVenta = rellenar(res.data.sucursal, 4); - $scope.comprobante = rellenar(res.data.numeroRemito, 8); - }, - function(err) { - focaModalService - .alert('La terminal no esta configurada correctamente'); - console.info(err); - } - ); - $scope.notaPedido = { - id: 0 - }; + + init(); }, function(error) { focaModalService.alert('Hubo un error al crear el remito'); focaBotoneraLateralService.endGuardar(); @@ -920,24 +903,24 @@ angular.module('focaCrearRemito') .controller('remitoController', } function salir() { - var remito = { - id: 0, - estado: 0, - vendedor: {}, - cliente: {}, - proveedor: {}, - domicilio: {dom: ''}, - moneda: $scope.remito.moneda, - cotizacion: $scope.remito.cotizacion - }; - if(JSON.stringify($scope.remito) !== JSON.stringify(remito)) { - focaModalService - .confirm('¿Esta seguro de que desea salir? ' + - 'Se perderán todos los datos cargados.') - .then(function(data) { - if(data) $location.path('/'); - }); - }else { + var confirmacion = false; + + angular.forEach($scope.inicial, function(valor, key) { + if (!angular.equals($scope[key], $scope.inicial[key])) { + confirmacion = true; + } + }); + + if (confirmacion) { + focaModalService.confirm( + '¿Esta seguro de que desea salir? ' + + 'Se perderán todos los datos cargados.' + ).then(function(data) { + if (data) { + $location.path('/'); + } + }); + } else { $location.path('/'); } }