Created
December 7, 2015 17:33
-
-
Save thaniaclair/0cc780352d288a0ba641 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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