controller.js 7.73 KB
angular.module('focaHojaRuta')
    .controller('listaHojaRutaCtrl',
        [
            '$scope', '$location', '$filter', '$uibModal', 'hojaRutaService',
            'focaLoginService', 'focaModalService', '$rootScope', '$localStorage',
            function ($scope, $location, $filter, $uibModal, hojaRutaService,
                focaLoginService, focaModalService, $rootScope, $localStorage) {

                var loginData = focaLoginService.getLoginData();
                config();
                init();
                function config() {
                    $scope.cabecera = [];
                    $scope.showCabecera = true;
                    $scope.now = new Date();
                    $scope.puntoVenta = '0000';
                    $scope.comprobante = '00000000';
                }
                function init() {
                    hojaRutaService.getHojaRuta(loginData.chofer)
                        .then(function (res) {
                            if (res.data) {
                                var hojaRuta = res.data;
                                $scope.hojaRuta = hojaRuta;
                                $scope.puntoVenta = hojaRuta.sucursal;
                                $scope.comprobante = hojaRuta.numeroHojaRuta;
                                addCabecera('Transportista:', hojaRuta.transportista.NOM);
                                addCabecera('Chofer:', hojaRuta.chofer.nombre);
                                addCabecera('Vehículo:', hojaRuta.vehiculo.tractor);
                            } else {
                                focaModalService.alert('Sin hoja de ruta asignada');
                                $location.path('/');
                            }
                            watch();
                            if (!$scope.estadoRed) {
                                getLSHojaRuta();
                            }
                        });
                }
                function watch() {
                    $scope.$watch('hojaRuta', function (nuevoValor) {
                        $localStorage.hojaRuta = JSON.stringify(nuevoValor);
                    }, true);
                }
                $scope.verDetalle = function (remito) {
                    var modalInstance = $uibModal.open(
                        {
                            ariaLabelledBy: 'Detalle hoja ruta',
                            templateUrl: 'modal-detalle-hoja-ruta.html',
                            controller: 'focaModalDetalleHojaRutaController',
                            resolve: {
                                parametros: {
                                    remito: remito,
                                }
                            },
                            size: 'lg'
                        }
                    );
                    modalInstance.result
                        .then(function (data) {
                            //funcion se ejecuta cuando se carga pantalla
                            console.log(data);
                        })
                        .catch(function (e) { console.info(e); });
                };
                $scope.rellenar = function (relleno, longitud) {
                    relleno = '' + relleno;
                    while (relleno.length < longitud) {
                        relleno = '0' + relleno;
                    }

                    return relleno;
                };
                $scope.salir = function () {
                    $location.path('/');
                };
                $scope.terminarHojaRuta = function () {
                    focaModalService
                        .confirm('¿Desea terminar la hoja de ruta? No podra realizar ninguna ' +
                            'otra descarga ni modificación')
                        .then(function () { $scope.datosExtraCierre(terminar); });
                    function terminar(datosExtraCierre) {
                        $scope.hojaRuta = angular.extend({}, $scope.hojaRuta, datosExtraCierre);
                        //limpio objeto para guardar
                        delete $scope.hojaRuta.chofer;
                        delete $scope.hojaRuta.remitos;
                        delete $scope.hojaRuta.transportista;
                        delete $scope.hojaRuta.vehiculo;

                        $scope.hojaRuta.fechaCreacion =
                            $scope.hojaRuta.fechaCreacion.slice(0, 19).replace('T', ' ');
                        $scope.hojaRuta.fechaReparto =
                            $scope.hojaRuta.fechaReparto.slice(0, 19).replace('T', ' ');
                        $scope.hojaRuta.estado = 2;
                        hojaRutaService.terminarHojaRuta($scope.hojaRuta).then(
                            function () {
                                focaModalService.alert(
                                    'Hoja de ruta ' +
                                    $filter('comprobante')([$scope.puntoVenta,
                                    $scope.comprobante]) + ' cerrada con éxito');
                                $location.path('/');
                            }
                        );
                    }
                };
                $scope.datosExtraCierre = function (terminar) {
                    var modalInstance = $uibModal.open(
                        {
                            templateUrl: 'focaDatosExtra.html',
                            controller: 'focaModalDatosExtraCierre',
                        }
                    );
                    modalInstance.result.then(terminar);
                };
                $scope.modalDescargas = function () {
                    delete $scope.hojaRuta.remitos[0].cliente;
                    var remito = $scope.hojaRuta.remitos[0];
                    var msg = '';
                    var mostrarMensaje = true;
                    for (var i = 0; i < remito.cisternas.length; i++) {
                        if (remito.cisternas[i].cisternaCarga.cantidad <= 0)
                            msg += 'Cisterna ' + remito.cisternas[i].cisternaCarga.articulo.DetArt +
                                ' esta vacía.\n';
                        else
                            mostrarMensaje = false;
                    }
                    if (mostrarMensaje === true) {
                        focaModalService.alert(msg);
                        return;
                    }
                    var modalInstance = $uibModal.open(
                        {
                            templateUrl: 'foca-modal-descarga.html',
                            controller: 'focaModalDescargaCtrl',
                            resolve: {
                                remito: function () { return remito; }
                            },
                        }
                    );
                    modalInstance.result.then(function (data) {
                        console.log(data);
                    });
                };
                $rootScope.$on('estadoRed', function (event, value) {
                    $scope.estadoRed = value;
                });
                function addCabecera(label, valor) {
                    var propiedad = $filter('filter')($scope.cabecera, { label: label }, true);
                    if (propiedad.length === 1) {
                        propiedad[0].valor = valor;
                    } else {
                        $scope.cabecera.push({ label: label, valor: valor });
                    }
                }
                function getLSHojaRuta() {

                    var hojaRuta = JSON.parse($localStorage.hojaRuta || null);

                    if (hojaRuta) {
                        console.log('getLSHojaRuta() => ', hojaRuta);
                        $scope.hojaRuta = hojaRuta;
                        delete $localStorage.hojaRuta;
                    }
                }

            }
        ]
    );