angular.module('focaAdminSeguimiento').controller('focaModalMarcadoresController', [ '$uibModalInstance', '$scope', '$filter', 'parametros', function($uibModalInstance, $scope, $filter, parametros) { init(); $scope.selectPage = selectPage; $scope.select = function(marcador, indice) { $uibModalInstance.close({ latitud: marcador.latitud, longitud: marcador.longitud, indice: indice }); }; $scope.cancel = function() { $uibModalInstance.dismiss('cancel'); }; function init() { $scope.numPerPage = 10; $scope.currentPage = 1; $scope.currentPageMarcadores = []; $scope.actividad = parametros.actividad; $scope.marcadores = arrayDatos(angular.copy(parametros.marcadores)); $scope.lastPage = Math.ceil( $scope.marcadores.length / $scope.numPerPage ); selectPage(1); } function selectPage(page) { var start = (page - 1) * $scope.numPerPage; var end = start + $scope.numPerPage; $scope.paginas = []; $scope.paginas = calcularPages(page); $scope.currentPageMarcadores = $scope.marcadores.slice(start, end); $scope.currentPage = page; } 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 arrayDatos(marcadores) { marcadores.reverse(); for (var i = marcadores.length - 1; i >= 0; i--) { var marcador = marcadores[i]; if (marcador.visita) { marcador.numero = '-'; marcador.cliente = $filter('rellenarDigitos')( marcador.visitas.cliente.COD, 3) + ' - ' + marcador.visitas.cliente.NOM; } else if ($scope.actividad === 'Nota de pedido') { marcador.numero = $filter('comprobante')([ marcador.notaPedido.sucursal, marcador.notaPedido.numeroNotaPedido ]); marcador.cliente = $filter('rellenarDigitos')( marcador.notaPedido.cliente.COD, 3) + ' - ' + marcador.notaPedido.cliente.NOM; } else if ($scope.actividad === 'Cobranza') { marcador.numero = $filter('comprobante')([ marcador.recibo.PVE, marcador.recibo.NCO ]); marcador.cliente = $filter('rellenarDigitos')( marcador.recibo.CLI, 3) + ' - ' + marcador.recibo.CFE; } } return marcadores; } } ]);