controller.js 3.99 KB
angular.module('focaAgendarVisita')
    .controller('focaAgendarVisitaController', [
        '$scope', 'focaAgendarVisitaService', '$location', '$timeout',
        '$uibModal', 'focaBotoneraLateralService', '$filter', 'focaLoginService',
        'focaModalService', 'focaSeguimientoService',
        function($scope, focaAgendarVisitaService, $location, $timeout,
            $uibModal, focaBotoneraLateralService, $filter, focaLoginService,
            focaModalService, focaSeguimientoService) {
            $scope.focused = 0;
            $scope.rol = 1;
            $scope.visita = {};
            $scope.now = new Date();
            $scope.botonera = [
                {
                    label: 'Agendar',
                    image: 'precios-condiciones.png'
                }
            ];
            $timeout(function() {
                focaBotoneraLateralService.showSalir(true);
                focaBotoneraLateralService.showPausar(true);
                focaBotoneraLateralService.showGuardar(true, $scope.guardar);
            });

            $scope.seleccionarCliente = function() {
                var modalInstance = $uibModal.open(
                    {
                        ariaLabelledBy: 'Busqueda de Cliente',
                        templateUrl: 'foca-busqueda-cliente-modal.html',
                        controller: 'focaBusquedaClienteModalController',
                        resolve: {
                            vendedor: function() { return null; }
                        },
                        size: 'lg'
                    }
                );
                modalInstance.result.then(
                    function(cliente) {
                        $scope.visita.cliente = cliente;
                    }
                );
            };
            $scope.seleccionarVisitante = function() {
                var parametrosModal = {
                    query: '/vendedor-cobrador',
                    columnas: [
                        {
                            propiedad: 'NUM',
                            nombre: 'Codigo',
                            filtro: {
                                nombre: 'rellenarDigitos',
                                parametro: 3
                            }
                        },
                        {
                            propiedad: 'NOM',
                            nombre: 'Nombre'
                        }
                    ],
                    titulo:'Búsqueda de vendedores y cobradores',
                    size: 'md'
                };
                focaModalService.modal(parametrosModal).then(function(vendedorCobrador) {
                    $scope.visita.visitante = vendedorCobrador;
                });
            };

            $scope.next = function(key) {
                if (key === 13) $scope.focused ++;
            };

            $scope.guardar = function() {
                var rol;
                if($scope.visita.visitante.rol === 1){
                    rol = 'Nota de pedido';
                } else if($scope.visita.visitante.rol === 2){
                    rol = 'Cobranza';
                } else {
                    rol = ($scope.rol === 1) ? 'Nota de pedido' : 'Cobranza';
                }

                focaAgendarVisitaService
                    .guardarVisita({
                        idVisitante: $scope.visita.visitante.NUM,
                        tipoVisitante: ($scope.visita.visitante.rol !== 3) ?
                            $scope.visita.visitante.rol : $scope.rol,
                        idCliente: $scope.visita.cliente.cod
                    })
                    .then(function(data) {
                        focaSeguimientoService.guardarPosicion(
                            rol,
                            data.data.id,
                            $scope.visita.observacion,
                            true
                        );
                    })
                    .then(function() {
                        $location.path('/');
                    });
            };
        }
    ]);