controller.js 4.96 KB
angular.module('focaHojaRuta')
    .controller('listaHojaRutaCtrl',
        [
            '$scope',
            '$location',
            '$filter',
            '$uibModal',
            'hojaRutaService',
            'focaSeguimientoService',
            'focaLoginService',
            'focaModalService',
            function(
                $scope,
                $location,
                $filter,
                $uibModal,
                hojaRutaService,
                focaSeguimientoService,
                focaLoginService,
                focaModalService
            ) {
                var loginData = focaLoginService.getLoginData();

                hojaRutaService.getHojasRuta(loginData.chofer).then(function(res) {
                    if (res.data) {
                        var hojaRuta = res.data;
                        $scope.hojasRuta = 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('/');
                    }
                });

                $scope.cabecera = [];
                $scope.showCabecera = true;

                $scope.now = new Date();
                $scope.puntoVenta = '0000';
                $scope.comprobante = '00000000';
                $scope.verDetalle = function(remito) {
                    var modalInstance = $uibModal.open(
                        {
                            ariaLabelledBy: 'Detalle hoja ruta',
                            templateUrl: 'modal-detalle-hoja-ruta.html',
                            controller: 'focaModalDetalleHojaRutaController',
                            resolve: {
                                parametrosDetalleHojaRuta: function(){
                                    return {
                                        remito: $filter('comprobante')([
                                            remito.sucursal, remito.numeroRemito
                                        ]),
                                        cliente: remito.nombreCliente,
                                        domicilio: remito.domicilioStamp,
                                        producto: 'Super',
                                        contacto: remito.nombreCliente,
                                        telefonoContacto: '-',
                                        litros: remito.carga,
                                        idRemito: remito.id
                                    };
                                }
                            },
                            size: 'lg'
                        }
                    );
                    modalInstance.result.then(function(parametros) {
                        // Al guardar los datos del producto entregado logueamos la
                        // actividad para su seguimiento.
                        hojaRutaService.postMovimientoHojaRuta({
                            numeroRecibo: parametros.numeroRecibo,
                            idRemito: parametros.idRemito,
                            litrosDescargados: parametros.litrosDescargados
                        }).then(function(movimiento) {
                            focaSeguimientoService.guardarPosicion(
                                'Entrega de producto',
                                movimiento.data.id,
                                parametros.observaciones
                            );
                        });

                    });
                };

                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});
                    }
                }
                //TODO Descomentar cuando se use
                // function removeCabecera(label) {
                    // var propiedad = $filter('filter')($scope.cabecera, {label: label}, true);
                    // if(propiedad.length === 1) {
                        // $scope.cabecera.splice($scope.cabecera.indexOf(propiedad[0]), 1);
                    // }
                // }

                $scope.rellenar = function(relleno, longitud) {
                    relleno = '' + relleno;
                    while (relleno.length < longitud) {
                        relleno = '0' + relleno;
                    }

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