controller.js 4.03 KB
angular.module('focaHojaRuta')
    .controller('listaHojaRutaCtrl',
        ['$scope', '$location', '$filter', '$uibModal', 'hojaRutaService', 'focaSeguimientoService',
        function($scope, $location, $filter, $uibModal, hojaRutaService, focaSeguimientoService) {
            hojaRutaService.getHojasRuta().then(function(res) {
                var hojaRuta = res.data.pop();
                $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);
            });
            $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('/');
            };
        }
    ]);