diff --git a/src/js/controller.js b/src/js/controller.js index 59c3274..f8035e1 100644 --- a/src/js/controller.js +++ b/src/js/controller.js @@ -1,225 +1,219 @@ angular.module('focaModalRemito') - .controller('focaModalRemitoController', - [ - '$timeout', - '$filter', - '$scope', - '$uibModalInstance', - 'focaModalRemitoService', - 'usadoPor', - 'focaModalService', - function ($timeout, $filter, $scope, $uibModalInstance, - focaModalRemitoService, usadoPor, focaModalService - ) { - var fecha = new Date(); - $scope.fechaHasta = new Date(); - $scope.fechaDesde = new Date(fecha.setMonth(fecha.getMonth() - 1)); - $scope.filtersCliente = ''; + .controller('focaModalRemitoController', + [ + '$timeout', '$filter', '$scope', '$uibModalInstance', + 'focaModalRemitoService', 'usadoPor', 'focaModalService', + function ($timeout, $filter, $scope, $uibModalInstance, + focaModalRemitoService, usadoPor, focaModalService + ) { + var fecha = new Date(); + $scope.fechaHasta = new Date(); + $scope.fechaDesde = new Date(fecha.setMonth(fecha.getMonth() - 1)); + $scope.filtersCliente = ''; + $scope.filtersRemito = ''; + $scope.remitos = []; + $scope.isCollapsed = false; + $scope.verProductos = {}; + $scope.primerBusqueda = false; + $scope.searchLoading = false; + // pagination + $scope.numPerPage = 10; + $scope.currentPage = 1; + $scope.filteredRemitos = []; + $scope.currentPageRemitos = []; + $scope.selectedRemito = -1; + + //METODOS + $scope.busquedaPress = function (key) { + if (key === 13) { + if (!$scope.fechaDesde) { + focaModalService + .alert('INGRESE FECHA DESDE'); + return; + } + if (!$scope.fechaHasta) { + focaModalService + .alert('INGRESE FECHA HASTA'); + return; + } + if ($scope.fechaDesde > $scope.fechaHasta) { + focaModalService + .alert('La fecha desde no puede ser mayor a la fecha hasta'); + return; + } + $scope.searchLoading = true; + //TODO: usar filtros en vez de toISOString + focaModalRemitoService + .getRemitos(usadoPor, $scope.fechaDesde.toISOString().split('.')[0], + $scope.fechaHasta.toISOString().split('.')[0]) + .then(llenarDatos); + } + }; + + function llenarDatos(res) { + $scope.remitos = []; + $scope.filteredRemitos = []; + $scope.currentPageRemitos = []; + $scope.selectedRemito = -1; + $scope.searchLoading = false; + $scope.primerBusqueda = true; + $scope.remitos = res.data; + $scope.searchRemito(true); + primera(); + } + + $scope.searchRemito = function (pressed) { + if ($scope.remitos.length > 0) { + $scope.filteredRemitos = $filter('filter')( + $scope.remitos, + { numeroRemito: $scope.filtersRemito } + ); + + if (pressed && $scope.filteredRemitos.length === 0) { + $timeout(function () { + angular.element('#search')[0].focus(); $scope.filtersRemito = ''; - $scope.remitos = []; - $scope.isCollapsed = false; - $scope.verProductos = {}; - $scope.primerBusqueda = false; - $scope.searchLoading = false; - // pagination - $scope.numPerPage = 10; - $scope.currentPage = 1; - $scope.filteredRemitos = []; - $scope.currentPageRemitos = []; - $scope.selectedRemito = -1; - - //METODOS - $scope.busquedaPress = function (key) { - if (key === 13) { - if (!$scope.fechaDesde) { - focaModalService - .alert('INGRESE FECHA DESDE'); - return; - } - if (!$scope.fechaHasta) { - focaModalService - .alert('INGRESE FECHA HASTA'); - return; - } - if ($scope.fechaDesde > $scope.fechaHasta) { - focaModalService - .alert('La fecha desde no puede ser mayor a la fecha hasta'); - return; - } - $scope.searchLoading = true; - //TODO: usar filtros en vez de toISOString - focaModalRemitoService - .getRemitos(usadoPor, $scope.fechaDesde.toISOString().split('.')[0], - $scope.fechaHasta.toISOString().split('.')[0]) - .then(llenarDatos); - } - }; - - function llenarDatos(res) { - $scope.remitos = []; - $scope.filteredRemitos = []; - $scope.currentPageRemitos = []; - $scope.selectedRemito = -1; - $scope.searchLoading = false; - $scope.primerBusqueda = true; - $scope.remitos = res.data; - $scope.searchRemito(true); - primera(); - } - - $scope.searchRemito = function (pressed) { - if ($scope.remitos.length > 0) { - $scope.filteredRemitos = $filter('filter')( - $scope.remitos, - { numeroRemito: $scope.filtersRemito } - ); - - if (pressed && $scope.filteredRemitos.length === 0) { - $timeout(function () { - angular.element('#search')[0].focus(); - $scope.filtersRemito = ''; - }); - } - - $scope.lastPage = Math.ceil( - $scope.filteredRemitos.length / $scope.numPerPage - ); - - $scope.resetPage(); - } - } - - $scope.searchCliente = function (pressed) { - if ($scope.remitos.length > 0) { - $scope.filteredRemitos = $filter('filter')( - $scope.remitos, - { nombreCliente: $scope.filtersCliente } - ); - - if (pressed && $scope.filteredRemitos.length === 0) { - $timeout(function () { - angular.element('#search')[0].focus(); - $scope.filtersCliente = ''; - }); - } - - $scope.lastPage = Math.ceil( - $scope.filteredRemitos.length / $scope.numPerPage - ); - - $scope.resetPage(); - } - }; - - $scope.resetPage = function () { - $scope.currentPage = 1; - $scope.selectPage(1); - }; - - $scope.selectPage = function (page) { - var start = (page - 1) * $scope.numPerPage; - var end = start + $scope.numPerPage; - $scope.paginas = []; - $scope.paginas = calcularPages(page); - $scope.currentPageRemitos = $scope.filteredRemitos.slice(start, end); - $scope.currentPage = page; - }; - - $scope.select = function (remito) { - $uibModalInstance.close(remito); - }; - - $scope.cancel = function () { - $uibModalInstance.dismiss('cancel'); - }; - - $scope.busquedaDown = function (key) { - if (key === 40) { - primera(key); - } - }; - - $scope.itemRemito = function (key) { - if (key === 38) { - anterior(key); - } - - if (key === 40) { - siguiente(key); - } - - if (key === 37) { - retrocederPagina(); - } - - if (key === 39) { - avanzarPagina(); - } - }; - - 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.selectedRemito = 0; - } - - function anterior() { - if ($scope.selectedRemito === 0 && $scope.currentPage > 1) { - retrocederPagina(); - } else { - $scope.selectedRemito--; - } - } - - function siguiente() { - if ($scope.selectedRemito < $scope.currentPageRemitos.length - 1) { - $scope.selectedRemito++; - } else { - avanzarPagina(); - } - } - - function retrocederPagina() { - if ($scope.currentPage > 1) { - $scope.selectPage($scope.currentPage - 1); - $scope.selectedRemito = $scope.numPerPage - 1; - } - } - - function avanzarPagina() { - if ($scope.currentPage < $scope.lastPage) { - $scope.selectPage($scope.currentPage + 1); - $scope.selectedRemito = 0; - } - } + }); + } + + $scope.lastPage = Math.ceil( + $scope.filteredRemitos.length / $scope.numPerPage + ); + + $scope.resetPage(); + } + } + + $scope.searchCliente = function (pressed) { + if ($scope.remitos.length > 0) { + $scope.filteredRemitos = $filter('filter')( + $scope.remitos, + { nombreCliente: $scope.filtersCliente } + ); + + if (pressed && $scope.filteredRemitos.length === 0) { + $timeout(function () { + angular.element('#search')[0].focus(); + $scope.filtersCliente = ''; + }); + } + + $scope.lastPage = Math.ceil( + $scope.filteredRemitos.length / $scope.numPerPage + ); + + $scope.resetPage(); + } + }; + + $scope.resetPage = function () { + $scope.currentPage = 1; + $scope.selectPage(1); + }; + + $scope.selectPage = function (page) { + var start = (page - 1) * $scope.numPerPage; + var end = start + $scope.numPerPage; + $scope.paginas = []; + $scope.paginas = calcularPages(page); + $scope.currentPageRemitos = $scope.filteredRemitos.slice(start, end); + $scope.currentPage = page; + }; + + $scope.select = function (remito) { + $uibModalInstance.close(remito); + }; + + $scope.cancel = function () { + $uibModalInstance.dismiss('cancel'); + }; + + $scope.busquedaDown = function (key) { + if (key === 40) { + primera(key); + } + }; + + $scope.itemRemito = function (key) { + switch (key) { + case 38: + anterior(key); + break; + case 40: + siguiente(key); + break; + case 37: + retrocederPagina(); + break; + case 39: + avanzarPagina(); + break; + } + }; + + 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.selectedRemito = 0; + } + + function anterior() { + if ($scope.selectedRemito === 0 && $scope.currentPage > 1) { + retrocederPagina(); + } else { + $scope.selectedRemito--; + } + } + + function siguiente() { + if ($scope.selectedRemito < $scope.currentPageRemitos.length - 1) { + $scope.selectedRemito++; + } else { + avanzarPagina(); + } + } + + function retrocederPagina() { + if ($scope.currentPage > 1) { + $scope.selectPage($scope.currentPage - 1); + $scope.selectedRemito = $scope.numPerPage - 1; + } + } + + function avanzarPagina() { + if ($scope.currentPage < $scope.lastPage) { + $scope.selectPage($scope.currentPage + 1); + $scope.selectedRemito = 0; + } + } + } + ] + );