angular.module('focaLogisticaPedidoRuta') .service( 'focaLogisticaPedidoRutaService', [ '$http', '$cookies', 'API_ENDPOINT', '$filter', function($http, $cookies, API_ENDPOINT, $filter) { return { idUsuario: $cookies.get('idUsuario'), obtenerActividad: function(parametros) { return $http.post(API_ENDPOINT.URL + '/seguimiento/filtros', parametros); }, obtenerVehiculoById: function(idVehiculo) { return $http.get(API_ENDPOINT.URL + '/vehiculo/' + idVehiculo); }, obtenerRemitoById: function(idRemito) { return $http.get(API_ENDPOINT.URL + '/remito/obtener/' + idRemito); }, guardarCisternas: function(cisterna, idRemito) { return $http.post(API_ENDPOINT.URL + '/cisterna/guardar/cargar/' + this.idUsuario + '/' + idRemito,cisterna); }, numeroHojaRuta: function() { return $http.get(API_ENDPOINT.URL + '/hoja-ruta/numero-siguiente'); }, getRemitos: function(idVehiculo) { return $http.get(API_ENDPOINT.URL + '/remito/sin-hoja-ruta/' +idVehiculo); }, crearHojaRuta: function(hojaRuta) { return $http.post(API_ENDPOINT.URL + '/hoja-ruta', hojaRuta); }, desasociarRemitos: function(remitos, idVehiculo, sinRemitos) { var idsRemitos = []; for (var i = 0; i < remitos.length; i++) { idsRemitos.push(remitos[i].id); } return $http.post(API_ENDPOINT.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]); } function procesoCistena(cisterna) { for(var j = 0; j < cisterna.cisternaCarga.cisternaMovimientos.length; j++) { procesoMovimiento( cisterna.cisternaCarga.cisternaMovimientos[j]); } } 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; } }; }]);