service.js 3.91 KB
angular.module('focaLogisticaPedidoRuta')
    .factory(
        'focaLogisticaPedidoRutaService', [
            '$http',
            '$cookies',
            'API_ENDPOINT',
            '$filter',
            function($http, $cookies, API_ENDPOINT, $filter) {
                var url = API_ENDPOINT.URL;
                return {
                    idUsuario: $cookies.get('idUsuario'),
                    obtenerActividad: function(parametros) {
                        return $http.post(url + '/seguimiento/filtros', parametros);
                    },
                    numeroHojaRuta: function() {
                        return $http.get(url + '/hoja-ruta/numero-siguiente');
                    },
                    getRemitos: function(idVehiculo) {
                        return $http.get(url + '/remito/sin-hoja-ruta/' +idVehiculo);
                    },
                    cerrarDistribuicion: function(remitos) {
                        return $http.post(url + '/vehiculo/cierre-distribuicion', remitos);
                    },
                    desasociarRemitos: function(remitos, idVehiculo, sinRemitos) {
                        var idsRemitos = [];
                        for (var i = 0; i < remitos.length; i++) {
                            idsRemitos.push(remitos[i].id);
                        }
                        return $http.post(url + '/vehiculo/desasociar-remitos',
                            {
                                idsRemitos: idsRemitos,
                                idVehiculo: idVehiculo,
                                vehiculoSinRemitos: sinRemitos
                            });
                    },
                    obtenerRemitosDeCarga: function(remitos) {
                        var remitosRes = [];
                        for(var i = 0; i < remitos.cisternas.length; i++) {
                            procesoCistena(remitos.cisternas[i], this.fecha.toISOString());
                        }
                        function procesoCistena(cisterna, fecha) {
                            for(var j = 0; j < cisterna.cisternasCarga.length; j++) {
                                for(var k = 0; k < cisterna.cisternasCarga[j].cisternaMovimientos
                                    .length; k++)
                                {
                                    if(cisterna.cisternasCarga[j].fechaReparto.substring(0, 10) ===
                                        fecha.substring(0, 10))
                                    {
                                        procesoMovimiento(cisterna.cisternasCarga[j]
                                            .cisternaMovimientos[k]);
                                    }
                                }
                            }
                        }
                        function procesoMovimiento(movimiento) {
                            if(!movimiento.anulado && movimiento.remito &&
                                    !movimiento.remito.idHojaRuta) {
                                var remito = movimiento.remito;
                                var yaEstaCargado = $filter('filter')(remitosRes, {id: remito.id});
                                if(!yaEstaCargado.length && movimiento.metodo === 'carga') {
                                    remitosRes.push(remito);
                                }
                            }
                        }
                        return remitosRes;
                    },
                    getVehiculosByIdUsuario: function() {
                        return $http.get(url + '/vehiculo/usuario/' + this.idUsuario);
                    },
                    getUnidadesByFecha: function() {
                        return $http.post(url + '/vehiculo/listar/fecha',
                            {fecha: this.fecha});
                    },
                    setFechaReparto: function(fechaReparto) {
                        this.fecha = fechaReparto;
                    }
            };
    }]);