Skip to content

Instantly share code, notes, and snippets.

@thaniaclair
Created December 7, 2015 17:33
Show Gist options
  • Save thaniaclair/0cc780352d288a0ba641 to your computer and use it in GitHub Desktop.
Save thaniaclair/0cc780352d288a0ba641 to your computer and use it in GitHub Desktop.
public int getMinimumSeats() {
String minSeats = SystemConfiguration.get().getParam(Group.ServiceRenfe, "minSeats");
if (Strings.isNullOrEmpty(minSeats)) {
return DEFAULT_MINIMUM_SEATS_TO_FILTER;
}
return Ints.tryParse(minSeats);
}
public boolean isTariffApproved() {
//-- Empty availability => REJECT
String currentTariffAvailability = tariff.getDisponibilidad();
if (Strings.isNullOrEmpty(currentTariffAvailability)) {
return false;
}
//-- High availability => APPROVE
if (HIGH_AVAILABILITY.equals(currentTariffAvailability)) {
return true;
}
//-- Not enough availability => REJECT
Integer currentTariffAvailableSeats = Ints.tryParse(currentTariffAvailability);
if (currentTariffAvailableSeats < numberOfTravellers) {
return false;
}
//-- Contains minimum availability (configurable) => APPROVE
if (currentTariffAvailableSeats >= getMinimumSeats()) {
return true;
}
//-- Current fare is the standard fare => APPROVE
RenfeTariff standardRenfeTariff = getStandardRenfeTariff();
if (tariff.getCdgoTarifa().equals(standardRenfeTariff.getCdgoTarifa())) {
return true;
}
//-- No standard fare available OR high availability for standard fare => APPROVE
String standardTariffAvailability = standardRenfeTariff.getDisponibilidad();
if (Strings.isNullOrEmpty(standardTariffAvailability) || HIGH_AVAILABILITY.equals(standardTariffAvailability)) {
return true;
}
//-- Is there still available seats debiting from standard fare that contains special seats for handcap? => APPROVE
Integer standardTariffAvailableSeats = Ints.tryParse(standardTariffAvailability);
return (standardTariffAvailableSeats - currentTariffAvailableSeats) > 0;
}
public RenfeTariff getStandardRenfeTariff() {
for (RenfeTariff renfeTariff : tariffs) {
String cdgoTarifa = renfeTariff.getCdgoTarifa();
if (STANDARD_TARIFF_CODE.equals(cdgoTarifa)) {
return renfeTariff;
}
}
return null;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment