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