controller.js 7.28 KB
angular.module('focaActivarHojaRuta')
    .controller('focaActivarHojaRutaController', [
        '$scope', 'focaActivarHojaRutaService', 'focaModalService', 'focaBotoneraLateralService',
        '$filter','$uibModal',
        function($scope, focaActivarHojaRutaService, focaModalService, focaBotoneraLateralService,
            $filter, $uibModal) {
            config();

            //METODOS
            function config() {
                $scope.botonera = [{
                    label: 'Chofer',
                    image: 'cliente.png'
                }];
                //SETEO BOTONERA LATERAL
                focaBotoneraLateralService.showSalir(true);
                focaBotoneraLateralService.showPausar(false);
                focaBotoneraLateralService.showCancelar(false);
                focaBotoneraLateralService.showGuardar(false);
                
                init();
            }

            function init() {
                $scope.now = new Date();
                $scope.hojasRuta = [];
                $scope.$broadcast('removeCabecera', 'Chofer:'); 
            }

            $scope.seleccionarChofer = function() {
                var parametrosModal = {
                    titulo: 'Búsqueda de Chofer',
                    query: '/chofer',
                    columnas: [
                        {
                            propiedad: 'id',
                            nombre: 'Código',
                            filtro: {
                                nombre: 'rellenarDigitos',
                                parametro: 3
                            }
                        },
                        {
                            propiedad: 'nombre',
                            nombre: 'Nombre'
                        },
                        {
                            propiedad: 'dni',
                            nombre: 'DNI'
                        },
                        {
                            propiedad: 'telefono',
                            nombre: 'Teléfono'
                        }
                    ]
                };
                focaModalService.modal(parametrosModal).then(
                    function(chofer) {
                        $scope.chofer = chofer.id;
                        focaActivarHojaRutaService.getHojasRutas($scope.chofer)
                            .then(function(hojasRutas) {
                                $scope.$broadcast('addCabecera', {
                                    label: 'Chofer:',
                                    valor: $scope.chofer + ' - ' + chofer.nombre
                                });

                                $scope.hojasRuta = hojasRutas.data;
                            });
                    }, function() {}
                );
            };

            $scope.mostrarRemitos = function (hojasRutas) {
                $uibModal.open(
                    {
                        ariaLabelledBy: '',
                        templateUrl: 'modal-remitos.html',
                        controller: 'focaModalDetalleController',
                        resolve: {
                            hojasRutas: function () { return hojasRutas; },
                        },
                        size: 'lg',
                    }
                );
            };

            $scope.setearEstado = function (estado) {
                var texto = '';
                switch (estado) {
                    case 0:
                        texto = 'Disponible';
                        break;
                    case 1:
                        texto = 'Asignada';
                        break;
                    case 2:
                        texto = 'Terminada';
                        break;
                    default:
                        break;
                }
                return texto;
            };
            
            $scope.activarHojaRuta = function(hojaRuta) {
                validarChoferDisponible().then(function(hojaRutaAsignada) {
                    if (hojaRutaAsignada) {
                        var texto = 'El chofer tiene asignada la Hoja de Ruta Nº ' +
                            $filter('comprobante')([hojaRutaAsignada.sucursal,
                                                    hojaRutaAsignada.numeroHojaRuta]) +
                            ', ¿desea reemplazarla por esta?';

                        focaModalService
                            .confirm(texto)
                            .then(function(res) {
                                if (res) activar();
                            });
                    } else {
                        activar();
                    }

                    function activar() {
                        focaActivarHojaRutaService
                            .activarHojaRuta(hojaRuta.id, $scope.chofer)
                            .then(function() {
                                hojaRuta.estado = 1;
                                init();
                                focaModalService.alert('Hoja de ruta activada');
                            });
                    }
                });
            };

            function validarChoferDisponible() {
                return new Promise(function(resolve, reject) {
                    focaActivarHojaRutaService
                        .getHojaRutaByIdChofer($scope.chofer)
                        .then(function(res) {
                            resolve(res.data);
                        })
                        .catch(reject);
                });
            }
            

            /*

            if(focaActivarHojaRutaService.transportistaSeleccionado.COD) {
                elegirTransportista(focaActivarHojaRutaService.transportistaSeleccionado);
            }
            focaActivarHojaRutaService.cleanCisternasLocal();
            $scope.editar = function(id) {
                $location.path('/vehiculo/' + id + '/' + $scope.idTransportista);
            };
            $scope.solicitarConfirmacion = function(vehiculo) {
                focaModalService.confirm('¿Está seguro que desea borrar el vehiculo ' +
                vehiculo.id + ' ' + vehiculo.tractor + ' ?').then(
                        function(data) {
                            if(data) {
                                focaActivarHojaRutaService.deleteVehiculo(vehiculo.id);
                                $scope.vehiculos.splice($scope.vehiculos.indexOf(vehiculo), 1);
                            }
                        }
                    );
            };

            function elegirTransportista(transportista) {
                var codigo = ('00000' + transportista.COD).slice(-5);
                $scope.idTransportista = transportista.COD;
                $scope.filtros = transportista.NOM.trim();
                $timeout(function() {
                    $scope.$broadcast('addCabecera', {
                        label: 'Transportista:',
                        valor: codigo + ' - ' + transportista.NOM
                    });
                });
                buscar(transportista.COD);
            }
            
            function buscar(idTransportista) {
                focaActivarHojaRutaService
                    .getVehiculosPorTransportista(idTransportista)
                    .then(function(datos) {
                        $scope.vehiculos = datos.data;
                    });
            }*/
        }
    ]);