Generar pasajeros por viajes
Generar pasajeros por viajes
public List<Integer> generarPasajerosPorViajes(List<Vehiculo> vehiculoDisponiblesList, Integer pasajeros) {
List<Integer> pasajerosRecomendadosList = new ArrayList<>();
try {
Integer mayorCapacidad = vehiculoDisponiblesList.get(0).getPasajeros();
Integer pasajerosPendientes = pasajeros;
if (pasajeros <= mayorCapacidad) {
//Si es igual o menor que la capacidad del bus con mayor capacidad
pasajerosRecomendadosList.add(pasajeros);
} else {
for (Vehiculo v : vehiculoDisponiblesList) {
if (pasajerosPendientes > 0) {
if (pasajerosPendientes >= v.getPasajeros()) {
pasajerosPendientes -= v.getPasajeros();
pasajerosRecomendadosList.add(v.getPasajeros());
} else {
pasajerosRecomendadosList.add(pasajerosPendientes);
pasajerosPendientes = 0;
}
}
}
// revisa los pendientes
if (pasajerosPendientes <= mayorCapacidad) {
pasajerosRecomendadosList.add(pasajerosPendientes);
} else {
Integer residuo = pasajerosPendientes % mayorCapacidad;
Integer divisor = pasajerosPendientes / mayorCapacidad;
if (residuo > 0) {
divisor++;
}
for (Integer i = 1; i <= divisor; i++) {
if (i < divisor) {
pasajerosRecomendadosList.add(mayorCapacidad);
} else {
pasajerosRecomendadosList.add(residuo);
}
}
}
}
} catch (Exception e) {
JsfUtil.errorMessage("generarPasajerosPorViajes() " + e.getLocalizedMessage());
}
return pasajerosRecomendadosList;
}
Last updated
Was this helpful?