controller.js 6.91 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();

                function config() {

                    $scope.cabecera = [];
                    $scope.showCabecera = true;
                    $scope.now = new Date();
                    $scope.puntoVenta = '0000';
                    $scope.comprobante = '00000000';
                }

                hojaRutaService.getHojaRuta(loginData.chofer).then(function (res) {

                    if (res.data) {
                        var hojaRuta = res.data;
                        $scope.hojaRuta = hojaRuta;
                        $scope.hojaRuta.abierta = true;
                        $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.esatadoRed) {
                        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 () {
                        //funcion se ejecuta cuando se carga pantalla
                    });
                };

                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 });
                    }
                }

                $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 modalInstance = $uibModal.open(
                        {
                            templateUrl: 'foca-modal-descarga.html',
                            controller: 'focaModalDescargaCtrl',
                            resolve: {
                                remito: function () { return $scope.hojaRuta.remitos[0]; }
                            },
                        }
                    );

                    modalInstance.result.then(function (data) {

                        console.log(data);
                    });
                };

                $rootScope.$on('estadoRed', function (event, value) {
                    $scope.esatadoRed = value;
                });

                function getLSHojaRuta() {

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

                    if (hojaRuta) {
                        $scope.hojaRuta = hojaRuta;
                        delete $localStorage.hojaRuta;
                    }
                }

            }
        ]);