From a40b57fb7eeaf435531219212674ca55134ba8a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s?= Date: Thu, 14 Feb 2019 12:02:48 -0300 Subject: [PATCH] ver listado de marcadores --- src/js/controller.js | 56 +++++++++++++++-- src/js/modalController.js | 110 ++++++++++++++++++++++++++++++++++ src/js/osm-directive.js | 8 ++- src/views/foca-admin-seguimiento.html | 8 ++- src/views/foca-modal-marcadores.html | 70 ++++++++++++++++++++++ 5 files changed, 246 insertions(+), 6 deletions(-) create mode 100644 src/js/modalController.js create mode 100644 src/views/foca-modal-marcadores.html diff --git a/src/js/controller.js b/src/js/controller.js index 68d44e2..709d089 100644 --- a/src/js/controller.js +++ b/src/js/controller.js @@ -1,7 +1,7 @@ angular.module('focaAdminSeguimiento').controller('focaAdminSeguimientoController', [ - '$scope', '$timeout', 'focaAdminSeguimientoService', + '$scope', '$timeout', 'focaAdminSeguimientoService', '$uibModal', 'focaBotoneraLateralService','$location', '$routeParams', - function($scope, $timeout, focaAdminSeguimientoService, + function($scope, $timeout, focaAdminSeguimientoService, $uibModal, focaBotoneraLateralService, $location, $routeParams) { $scope.actividad = ''; $scope.titulo = ''; @@ -78,6 +78,54 @@ angular.module('focaAdminSeguimiento').controller('focaAdminSeguimientoControlle getSeguimiento(); }; + $scope.showMarcadores = function() { + var texto = ''; + + if ($scope.actividad === 'Nota de pedido') { + texto = 'Marcadores de notas de pedido'; + } + + if ($scope.actividad === 'Entrega de producto') { + texto = 'Marcadores de entregas'; + } + + if ($scope.actividad === 'Cobranza') { + texto = 'Marcadores de cobranzas'; + } + + + var modalInstance = $uibModal.open( + { + ariaLabelledBy: texto, + templateUrl: 'foca-modal-marcadores.html', + controller: 'focaModalMarcadoresController', + size: 'lg', + resolve: { + parametros: function() { + var parametros = { + marcadores: $scope.marcadores, + actividad: $scope.actividad + }; + + return parametros; + } + } + } + ); + + modalInstance.result.then( + function(localizacion) { + $scope.$broadcast('moveMap', { + latitud: localizacion.latitud, + longitud: localizacion.longitud, + indice: localizacion.indice + }); + }, function() { + // funcion ejecutada cuando se cancela el modal + } + ); + }; + function getSeguimiento() { var now = $scope.now; var hasta = angular.copy(now); @@ -128,8 +176,8 @@ angular.module('focaAdminSeguimiento').controller('focaAdminSeguimientoControlle break; case 'cobranza': if (datos.data.length) { - valor = datos.data[0].notaPedido.vendedor.NUM + ' - ' + - datos.data[0].notaPedido.vendedor.NOM.trim(); + valor = datos.data[0].recibo.cobrador.NUM + ' - ' + + datos.data[0].recibo.cobrador.NOM.trim(); } else { valor = $scope.idUsuario; } diff --git a/src/js/modalController.js b/src/js/modalController.js new file mode 100644 index 0000000..3604222 --- /dev/null +++ b/src/js/modalController.js @@ -0,0 +1,110 @@ +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 ($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; + } + + if ($scope.actividad === 'Entrega de producto') { + + } + + 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; + } + + } +]); \ No newline at end of file diff --git a/src/js/osm-directive.js b/src/js/osm-directive.js index dd24e0f..c8f0d48 100644 --- a/src/js/osm-directive.js +++ b/src/js/osm-directive.js @@ -121,7 +121,6 @@ angular.module('focaAdminSeguimiento').directive('osm', function() { ]); } - console.info(marcador, observacion); return observacion; } @@ -231,6 +230,13 @@ angular.module('focaAdminSeguimiento').directive('osm', function() { return resultado; } }); + + + $scope.$on('moveMap', function(evt, data) { + var center = new L.LatLng(data.latitud, data.longitud); + $scope.map.flyTo(center, 11, {duration: 0.5}); + $scope.markers[data.indice].openPopup(); + }); }], scope: { latitud: '=', diff --git a/src/views/foca-admin-seguimiento.html b/src/views/foca-admin-seguimiento.html index c56f19f..631a8d2 100644 --- a/src/views/foca-admin-seguimiento.html +++ b/src/views/foca-admin-seguimiento.html @@ -41,7 +41,7 @@ class="btn col-12 my-1" ng-click="individual()" >Individual -
+
+
+
+
+ +
+
+
+ + -- 1.9.1