controller.js 3.63 KB
angular.module('focaHojaRuta')
    .controller('listaHojaRutaCtrl',
        ['$scope', '$filter', '$uibModal', 'hojaRutaService', 'focaSeguimientoService',
        function($scope, $filter, $uibModal, hojaRutaService, focaSeguimientoService) {
            hojaRutaService.getHojasRuta().then(function(res) {
                var hojaRuta = res.data.pop();
                $scope.hojasRuta = hojaRuta;
                $scope.puntoVenta = $scope.rellenar(hojaRuta.sucursal, 4);
                $scope.comprobante = $scope.rellenar(hojaRuta.numeroHojaRuta, 8);
                addCabecera('Transportista:', hojaRuta.transportista[0].nombre);
                addCabecera('Chofer:', hojaRuta.chofer[0].nombre);
                addCabecera('Vehículo:', hojaRuta.vehiculo[0].tractor);
                console.info(hojaRuta.remito);
            });
            $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: remito.numeroRemito,
                                    cliente: remito.nombreCliente,
                                    domicilio: remito.domicilioStamp,
                                    producto: 'Super',
                                    contacto: remito.nombreCliente,
                                    telefonoContacto: '-',
                                    litros: remito.carga
                                };
                            }
                        },
                        size: 'lg'
                    }
                );
                modalInstance.result.then(function(parametros) {
                    // Al guardar los datos del producto entregado logueamos la
                    // actividad para su seguimiento.
                    focaSeguimientoService.guardarPosicion(
                        'Entrega de producto',
                        'Remito: ' + $scope.puntoVenta + '-' + $scope.comprobante + '<br/>' +
                        'Producto: ' + parametros.producto + '<br/>' +
                        'Litros: ' + parametros.litrosDescargados
                    );
                });
            };

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