controller.js 11.1 KB
angular.module('focaAdminSeguimiento').controller('focaAdminSeguimientoController', [
    '$scope', '$timeout', 'focaAdminSeguimientoService', '$uibModal',
    'focaBotoneraLateralService', '$location', '$routeParams', 'focaModalService',
    function ($scope, $timeout, focaAdminSeguimientoService, $uibModal,
        focaBotoneraLateralService, $location, $routeParams, focaModalService) {
        $scope.actividad = '';
        $scope.titulo = '';
        var cabecera = '';
        var plural = '';

        $scope.now = new Date();
        $scope.dateOptions = {
            maxDate: new Date()
        };

        switch ($routeParams.parametro) {
            case 'nota-pedido':
                $scope.actividad = 'Nota de pedido';
                $scope.titulo = 'Seguimiento de nota de pedido';
                cabecera = 'Vendedor:';
                plural = 'Vendedores';
                break;
            case 'hoja-ruta':
                $scope.actividad = 'Entrega de producto';
                $scope.titulo = 'Seguimiento de hoja de ruta';
                cabecera = 'Vehiculo:';
                plural = 'Vehiculos';
                break;
            case 'cobranza':
                $scope.actividad = 'Cobranza';
                $scope.titulo = 'Seguimiento de cobranza';
                cabecera = 'Cobrador:';
                plural = 'Cobradores';
                break;
        }

        $scope.idUsuario = 0;
        $scope.marcadores = [];
        getSeguimiento();

        //SETEO BOTONERA LATERAL
        focaBotoneraLateralService.showSalir(true);
        focaBotoneraLateralService.showPausar(false);
        focaBotoneraLateralService.showGuardar(false);

        $scope.general = function () {
            $scope.idUsuario = 0;
            getSeguimiento();
        };

        $scope.individual = function () {
            $scope.idUsuario = -1;
        };

        $scope.salir = function () {
            $location.path('/');
        };

        $scope.search = function (key) {
            if (key === 13) {
                $scope.idUsuario = $scope.idUsuarioInput;

                getSeguimiento();
                if ($scope.actividad === 'Entrega de producto' && $scope.idUsuario !== 0) {
                    focaAdminSeguimientoService.obtenerRemitosVehiculo($scope.idUsuario)
                        .then(function (res) {
                            var remitos = [];
                            for (var i = 0; i < res.data.length; i++) {
                                remitos = remitos.concat(res.data[i].remitos);
                            }
                            $scope.remitosVehiculo = remitos;
                        });
                }
            }
        };

        $scope.fecha = function () {
            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);
            hasta.setDate(hasta.getDate() + 1);

            var datos = {
                actividad: $scope.actividad,
                idUsuario: $scope.idUsuario,
                fechaDesde: now,
                fechaHasta: hasta,
                entregado: $scope.filtroEstado ? true : ($scope.filtroEstado !== undefined ?
                    false : undefined)
            };

            $scope.datosBuscados = {
                actividad: $scope.actividad,
                individual: $scope.idUsuario !== 0 ? true : false
            };

            focaAdminSeguimientoService
                .obtenerActividad(datos)
                .then(function (datos) {
                    $scope.marcadores = datos.data;
                    $scope.$broadcast('cleanCabecera');

                    if ($scope.idUsuario !== 0) {
                        $scope.$broadcast('addCabecera', {
                            label: 'Individual',
                            valor: ''
                        });

                        var valor = '';
                        switch ($routeParams.parametro) {
                            case 'nota-pedido':
                                if (datos.data.length) {
                                    valor = datos.data[0].notaPedido.vendedor.NUM + ' - ' +
                                        datos.data[0].notaPedido.vendedor.NOM.trim();
                                } else {
                                    valor = $scope.idUsuario;
                                }
                                break;
                            case 'hoja-ruta':
                                if (datos.data.length) {
                                    valor = datos.data[0].hojaRutaMovimiento.remito.hojaRuta
                                        .vehiculo.codigo + ' - ' + datos.data[0]
                                            .hojaRutaMovimiento.remito.hojaRuta.vehiculo.tractor.trim();
                                } else {
                                    valor = $scope.idUsuario;
                                }

                                break;
                            case 'cobranza':
                                if (datos.data.length) {
                                    valor = datos.data[0].recibo.cobrador.NUM + ' - ' +
                                        datos.data[0].recibo.cobrador.NOM.trim();
                                } else {
                                    valor = $scope.idUsuario;
                                }
                                break;
                        }

                        $scope.$broadcast('addCabecera', {
                            label: cabecera,
                            valor: valor
                        });

                    } else {
                        $scope.$broadcast('addCabecera', {
                            label: 'General',
                            valor: ''
                        });
                    }

                    $scope.$broadcast('addCabecera', {
                        label: 'Cantidad: ',
                        valor: datos.data.length + ' Marcadores'
                    });
                });
        }
        $scope.openModal = function (key) {
            if (key !== 13) return;
            var parametrosModal = {};
            switch ($routeParams.parametro) {
                case 'nota-pedido':
                    parametrosModal = {
                        titulo: 'Búsqueda vendedores',
                        query: '/vendedor',
                        columnas: [
                            {
                                propiedad: 'NUM',
                                nombre: 'Código',
                                filtro: {
                                    nombre: 'rellenarDigitos',
                                    parametro: 3
                                }
                            },
                            {
                                propiedad: 'NOM',
                                nombre: 'Nombre'
                            }
                        ],
                        size: 'md'
                    };
                    break;
                case 'hoja-ruta':
                    parametrosModal = {
                        titulo: 'Búsqueda de Transportista',
                        query: '/transportista',
                        columnas: [
                            {
                                nombre: 'Código',
                                propiedad: 'COD'
                            },
                            {
                                nombre: 'Nombre',
                                propiedad: 'NOM'
                            },
                            {
                                nombre: 'CUIT',
                                propiedad: 'CUIT'
                            }
                        ],
                        size: 'md'
                    };
                    break;
                case 'cobranza':
                    parametrosModal = {
                        titulo: 'Búsqueda de cobradores',
                        query: '/cobrador',
                        columnas: [
                            {
                                propiedad: 'NUM',
                                nombre: 'Codigo',
                                filtro: {
                                    nombre: 'rellenarDigitos',
                                    parametro: 3
                                }
                            },
                            {
                                propiedad: 'NOM',
                                nombre: 'Nombre'
                            }
                        ],
                        size: 'md'
                    };
                    break;
                default:
                    break;
            }
            focaModalService.modal(parametrosModal)
                .then(function (data) {
                    $scope.idUsuario = $scope.idUsuarioInput = data.NUM;
                    getSeguimiento();
                    if ($scope.actividad === 'Entrega de producto' && $scope.idUsuario !== 0) {
                        focaAdminSeguimientoService.obtenerRemitosVehiculo($scope.idUsuario)
                            .then(function (res) {
                                var remitos = [];
                                for (var i = 0; i < res.data.length; i++) {
                                    remitos = remitos.concat(res.data[i].remitos);
                                }
                                $scope.remitosVehiculo = remitos;
                            });
                    }
                })
                .catch(function (e) { console.error(e) });
        }
    }
]);