diff --git a/src/js/controller.js b/src/js/controller.js index dce3f25..cb06eba 100644 --- a/src/js/controller.js +++ b/src/js/controller.js @@ -13,14 +13,31 @@ angular.module('focaCrearHojaRuta') .controller('hojaRutaCtrl', focaCrearHojaRutaService, focaModalService, focaBotoneraLateralService, focaLoginSrv) { + config(); - $scope.botonera = focaCrearHojaRutaService.getBotonera(); - $scope.datepickerAbierto = false; + function config() { + $scope.botonera = focaCrearHojaRutaService.getBotonera(); + $scope.datepickerAbierto = false; + $scope.show = false; + $scope.cargando = true; + $scope.now = new Date(); + $scope.puntoVenta = $filter('rellenarDigitos')(0, 4); + $scope.comprobante = $filter('rellenarDigitos')(0, 8); + + //SETEO BOTONERA LATERAL + $timeout(function() { + focaBotoneraLateralService.showSalir(false); + focaBotoneraLateralService.showPausar(true); + focaBotoneraLateralService.showGuardar(true, $scope.crearHojaRuta); + focaBotoneraLateralService.addCustomButton('Salir', salir); + }); + + init(); + } - $scope.show = false; - $scope.cargando = true; + function init() { + $scope.$broadcast('cleanCabecera'); - function nuevaHojaRuta() { $scope.hojaRuta = { fecha: new Date(), litros: 0, @@ -33,33 +50,28 @@ angular.module('focaCrearHojaRuta') .controller('hojaRutaCtrl', costo: null } }; + + $scope.remitosTabla = []; + $scope.idLista = undefined; + + focaCrearHojaRutaService.getNumeroHojaRuta().then( + function(res) { + $scope.puntoVenta = $filter('rellenarDigitos')(res.data.sucursal, 4); + $scope.comprobante = $filter('rellenarDigitos')(res.data.numeroHojaRuta, 8); + }, + function(err) { + focaModalService.alert('La terminal no esta configurada correctamente'); + console.info(err); + } + ); + + $scope.inicial = { + hojaRuta: angular.copy($scope.hojaRuta), + remitosTabla: angular.copy($scope.remitosTabla), + idLista: angular.copy($scope.idLista) + }; } - nuevaHojaRuta(); - $scope.showCabecera = true; - - $scope.now = new Date(); - $scope.puntoVenta = '0000'; - $scope.comprobante = '00000000'; - $scope.remitosTabla = []; - $scope.idLista = undefined; - - //SETEO BOTONERA LATERAL - $timeout(function() { - focaBotoneraLateralService.showSalir(true); - focaBotoneraLateralService.showPausar(true); - focaBotoneraLateralService.showGuardar(true, $scope.crearHojaRuta); - }); - - focaCrearHojaRutaService.getNumeroHojaRuta().then( - function(res) { - $scope.puntoVenta = $scope.rellenar(res.data.sucursal, 4); - $scope.comprobante = $scope.rellenar(res.data.numeroHojaRuta, 8); - }, - function(err) { - focaModalService.alert('La terminal no esta configurada correctamente'); - console.info(err); - } - ); + $scope.crearHojaRuta = function() { if(!$scope.remitosTabla.length) { focaModalService.alert('Ingrese Remitos'); @@ -105,17 +117,11 @@ angular.module('focaCrearHojaRuta') .controller('hojaRutaCtrl', function(data) { focaModalService.alert( 'Hoja ruta creada Nº: ' + - $scope.rellenar(data.data.sucursal, 4) + - '-' + - $scope.rellenar(data.data.numeroHojaRuta, 8) + $filter('rellenarDigitos')(data.data.sucursal, 4) + '-' + + $filter('rellenarDigitos')(data.data.numeroHojaRuta, 8) ); - nuevaHojaRuta(); - $scope.remitosTabla = []; - $scope.$broadcast('cleanCabecera'); - - focaCrearHojaRutaService.getNumeroHojaRuta().then(function(res) { - $scope.comprobante = $scope.rellenar(res.data.numeroHojaRuta, 8); - }); + + init(); }, function(error) { focaModalService.alert('Hubo un error al crear la hoja de ruta'); @@ -369,18 +375,9 @@ angular.module('focaCrearHojaRuta') .controller('hojaRutaCtrl', valor: fecha.toLocaleDateString() }); $scope.fechaReparto = fecha; - nuevaHojaRuta(); }); } - $scope.rellenar = function(relleno, longitud) { - relleno = '' + relleno; - while (relleno.length < longitud) { - relleno = '0' + relleno; - } - return relleno; - }; - function eligioPreConfirmado() { if($scope.eligioPreConfirmado) { focaModalService.alert('No puede elegir si eligió un vehiculo pre cargado'); @@ -485,5 +482,28 @@ angular.module('focaCrearHojaRuta') .controller('hojaRutaCtrl', } return false; } + + function salir() { + 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('/'); + } + } } ]);