diff --git a/gradle.properties b/gradle.properties index 35b9d402..1e9b792f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -VERSION_NAME=2.0.2-SNAPSHOT +VERSION_NAME=2.0.3-SNAPSHOT VERSION_CODE=2 GROUP=org.smartregister POM_SETTING_DESCRIPTION=OpenSRP Client Immunization diff --git a/opensrp-immunization/src/main/java/org/smartregister/immunization/domain/VaccineCondition.java b/opensrp-immunization/src/main/java/org/smartregister/immunization/domain/VaccineCondition.java index cc543fa6..33e03ca7 100644 --- a/opensrp-immunization/src/main/java/org/smartregister/immunization/domain/VaccineCondition.java +++ b/opensrp-immunization/src/main/java/org/smartregister/immunization/domain/VaccineCondition.java @@ -50,9 +50,9 @@ public static VaccineCondition init(String vaccineCategory, Condition conditionD public abstract boolean passes(Date anchorDate, List issuedVaccines); - protected boolean isWithinAge(Date anchorDate, Condition conditionData) { + protected boolean isWithinAge(Date anchorDate, Date vaccineDate, Condition conditionData) { if (anchorDate != null && conditionData.age != null) { - Calendar baseDate = getDate(anchorDate, "+0d"); + Calendar baseDate = getDate(vaccineDate, "+0d"); Calendar startDate = getDate(anchorDate, conditionData.age.get("from")); Calendar endDate = conditionData.age.containsKey("to") ? getDate(anchorDate, conditionData.age.get("to")) : getDate(new Date(), "+0d"); diff --git a/opensrp-immunization/src/main/java/org/smartregister/immunization/domain/conditions/GivenCondition.java b/opensrp-immunization/src/main/java/org/smartregister/immunization/domain/conditions/GivenCondition.java index 871ebfb9..6a5c5537 100644 --- a/opensrp-immunization/src/main/java/org/smartregister/immunization/domain/conditions/GivenCondition.java +++ b/opensrp-immunization/src/main/java/org/smartregister/immunization/domain/conditions/GivenCondition.java @@ -43,32 +43,31 @@ public boolean passes(Date anchorDate, List issuedVaccines) { break; } } + if (comparisonVaccine == null) return false; - if (comparisonVaccine != null) { - Calendar comparisonDate = Calendar.getInstance(); - VaccineSchedule.standardiseCalendarDate(comparisonDate); - comparisonDate = VaccineSchedule.addOffsetToCalendar(comparisonDate, value); + Calendar comparisonDate = Calendar.getInstance(); + VaccineSchedule.standardiseCalendarDate(comparisonDate); + comparisonDate = VaccineSchedule.addOffsetToCalendar(comparisonDate, value); - Calendar vaccinationDate = Calendar.getInstance(); - vaccinationDate.setTime(comparisonVaccine.getDate()); - VaccineSchedule.standardiseCalendarDate(vaccinationDate); + Calendar vaccinationDate = Calendar.getInstance(); + vaccinationDate.setTime(comparisonVaccine.getDate()); + VaccineSchedule.standardiseCalendarDate(vaccinationDate); - switch (comparison) { - case EXACTLY: - result = comparisonDate.getTimeInMillis() == vaccinationDate.getTimeInMillis(); - break; - case AT_LEAST: - result = comparisonDate.getTimeInMillis() >= vaccinationDate.getTimeInMillis(); - break; - case AT_MOST: - result = comparisonDate.getTimeInMillis() <= vaccinationDate.getTimeInMillis(); - break; - default: - break; - } + switch (comparison) { + case EXACTLY: + result = comparisonDate.getTimeInMillis() == vaccinationDate.getTimeInMillis(); + break; + case AT_LEAST: + result = comparisonDate.getTimeInMillis() >= vaccinationDate.getTimeInMillis(); + break; + case AT_MOST: + result = comparisonDate.getTimeInMillis() <= vaccinationDate.getTimeInMillis(); + break; + default: + break; } - return result && isWithinAge(anchorDate, conditionData); + return result && isWithinAge(anchorDate, comparisonVaccine.getDate(), conditionData); } public enum Comparison {