angular.module('focaAbmVendedorCobrador') .controller('focaAbmVendedoresCobradoresController', [ '$scope', 'focaAbmVendedorCobradorService', '$location', '$filter', 'focaBotoneraLateralService', 'focaModalService', function($scope, focaAbmVendedorCobradorService, $location, $filter, focaBotoneraLateralService, focaModalService) { $scope.now = new Date(); $scope.vendedoresCobradores = []; $scope.filters = ''; $scope.numPerPage = 10; $scope.currentPageVendedoresCobradores = []; $scope.vendedoresCobradores = []; //SETEO BOTONERA LATERAL focaBotoneraLateralService.showSalir(true); focaBotoneraLateralService.showPausar(false); focaBotoneraLateralService.showCancelar(false); focaBotoneraLateralService.showGuardar(false); $scope.editar = function(id) { $location.path('/vendedor-cobrador/' + id); }; $scope.eliminar = function(vendedorCobrador) { var tipo = vendedorCobrador.ES_COBRADOR ? 'cobrador' : 'vendedor'; focaModalService.confirm('¿Está seguro que desea borrar el ' + tipo + ' ' + vendedorCobrador.NomVen + '?') .then(function(data) { if(data) { focaAbmVendedorCobradorService .eliminarVendedorCobrador(vendedorCobrador.CodVen) .then(function() { $scope.search(13); }); } }); }; $scope.selectPage = function(page) { var start = (page - 1) * $scope.numPerPage; var end = start + $scope.numPerPage; $scope.paginas = []; $scope.paginas = calcularPages(page); $scope.currentPageVendedoresCobradores = $scope.vendedoresCobradores.slice(start, end); $scope.currentPage = page; }; $scope.resetPage = function() { $scope.currentPage = 1; $scope.selectPage(1); }; $scope.search = function(key) { if(key !== 13) return; focaAbmVendedorCobradorService .getVendedoresCobradores($scope.filters) .then(function(res) { $scope.vendedoresCobradores = res.data; $scope.lastPage = Math.ceil( $scope.vendedoresCobradores.length / $scope.numPerPage ); $scope.resetPage(); }); }; function calcularPages(paginaActual) { var paginas = []; paginas.push(paginaActual); if(paginaActual - 1 > 1) { paginas.unshift(paginaActual - 1); if(paginaActual - 2 > 1) { paginas.unshift(paginaActual - 2); } } if(paginaActual + 1 < $scope.lastPage) { paginas.push(paginaActual + 1); if(paginaActual + 2 < $scope.lastPage) { paginas.push(paginaActual + 2); } } if(paginaActual !== 1) { paginas.unshift(1); } if(paginaActual !== $scope.lastPage) { paginas.push($scope.lastPage); } return paginas; } function primera() { $scope.selectedClientes = 0; } function anterior() { if ($scope.selectedClientes === 0 && $scope.currentPage > 1) { retrocederPagina(); } else { $scope.selectedClientes--; } } function siguiente() { if ($scope.selectedClientes < $scope.currentPageVendedoresCobradores.length - 1 ) { $scope.selectedClientes++; } else { avanzarPagina(); } } function retrocederPagina() { if ($scope.currentPage > 1) { $scope.selectPage($scope.currentPage - 1); $scope.selectedClientes = $scope.numPerPage - 1; } } function avanzarPagina() { if ($scope.currentPage < $scope.lastPage) { $scope.selectPage($scope.currentPage + 1); $scope.selectedClientes = 0; } } } ]) .controller('focaAbmVendedorCobradorController', [ '$scope', 'focaAbmVendedorCobradorService', '$routeParams', 'focaBotoneraLateralService', '$timeout', '$uibModal', '$location', 'focaModalService', function($scope, focaAbmVendedorCobradorService, $routeParams, focaBotoneraLateralService, $timeout, $uibModal, $location, focaModalService) { $scope.now = new Date(); $scope.focused = 0; $scope.vendedorCobrador = { CodVen: 0, ES_COBRADOR: false, DNI: ' ', ClaVen: '', ComVen: '0.00', comisionCobrador: '0.00', provincia: { NOMBRE: '' }, localidad: { NOMBRE: ' ' } }; $scope.options = [ { label: 'Vendedor', value: 1 }, { label: 'Cobrador', value: 2 }, { label: 'Vendedor y cobrador', value: 3 } ]; //SETEO BOTONERA LATERAL $timeout(function() { focaBotoneraLateralService.showSalir(false); focaBotoneraLateralService.showPausar(true); focaBotoneraLateralService.showCancelar(false); focaBotoneraLateralService.showGuardar(true, $scope.guardar); focaBotoneraLateralService.addCustomButton('Salir', $scope.cancelar); }); focaAbmVendedorCobradorService .getVendedorCobradorById($routeParams.id) .then(function(res) { if(res.data){ $scope.vendedorCobrador = res.data; delete $scope.vendedorCobrador.FCVEN; delete $scope.vendedorCobrador.FEC; } }); $scope.guardar = function() { if($scope.vendedorCobrador.ClaVen !== $scope.vendedorCobrador.ClaVen2) { focaModalService.alert('Las contraseñas deben coincidir'); return; } $scope.vendedorCobrador.PciVen = $scope.vendedorCobrador.provincia.ID; $scope.vendedorCobrador.LocVen = $scope.vendedorCobrador.localidad.ID; delete $scope.vendedorCobrador.provincia; delete $scope.vendedorCobrador.localidad; delete $scope.vendedorCobrador.ClaVen2; if($scope.vendedorCobrador.rol == 1) { delete $scope.vendedorCobrador.comisionCobrador; }else if($scope.vendedorCobrador.rol == 2) { delete $scope.vendedorCobrador.ComVen; } focaAbmVendedorCobradorService .guardarVendedorCobrador($scope.vendedorCobrador) .then(function() { $location.path('/vendedor-cobrador'); }); }; $scope.seleccionarProvincia = function(key) { if(key === 13) { var modalInstance = $uibModal.open( { ariaLabelledBy: 'Búsqueda de provincias', templateUrl: 'modal-provincias.html', controller: 'focaModalProvinciaController', size: 'md', resolve: { filters: function() { return $scope.vendedorCobrador.provincia.NOMBRE; } } } ); modalInstance.result.then(function(provincia) { $scope.vendedorCobrador.provincia = provincia; $timeout(function() { $scope.focused = 5; }); }, function() { //TODO: función llamada cuando cancela el modal }); } }; $scope.seleccionarLocalidad = function(key) { if(!$scope.vendedorCobrador.provincia.ID) { focaModalService.alert('Seleccione una provincia'); return; } if(key === 13) { var modalInstance = $uibModal.open( { ariaLabelledBy: 'Búsqueda de localidades', templateUrl: 'modal-localidades.html', controller: 'focaModalLocalidadController', size: 'md', resolve: { filters: { idProvincia: $scope.vendedorCobrador.provincia.ID, busqueda: $scope.vendedorCobrador.localidad.NOMBRE } } } ); modalInstance.result.then(function(localidad) { $scope.vendedorCobrador.localidad = localidad; $timeout(function() { $scope.focused = 6; }); }, function() { //TODO: función llamada cuando cancela el modal }); } }; $scope.cancelar = function() { $location.path('/vendedor-cobrador'); }; $scope.next = function(key) { if(key === 13) $scope.focused++; }; } ]);