Skip to content

Commit 26a528a

Browse files
authored
Merge pull request #547 from bcgov/fix/logging
New data uses full word for course language 'French'. TRAX used just …
2 parents d3f1043 + fd7afb1 commit 26a528a

6 files changed

Lines changed: 18 additions & 10 deletions

‎api/src/main/java/ca/bc/gov/educ/api/ruleengine/rule/DuplicateCoursesRule.java‎

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,13 @@ public RuleData fire() {
4646
if (studentCourseList.get(i).getCredits() > studentCourseList.get(j).getCredits()) {
4747
studentCourseList.get(i).setDuplicate(false);
4848
studentCourseList.get(j).setDuplicate(true);
49-
} else if (studentCourseList.get(i).getCompletedCoursePercentage() > studentCourseList.get(j).getCompletedCoursePercentage()) {
49+
} else if (computeCompletedCoursePercentage(studentCourseList.get(i).getCompletedCoursePercentage()) > computeCompletedCoursePercentage(studentCourseList.get(j).getCompletedCoursePercentage())) {
5050
studentCourseList.get(i).setDuplicate(false);
5151
studentCourseList.get(j).setDuplicate(true);
52-
} else if (studentCourseList.get(i).getCompletedCoursePercentage() < studentCourseList.get(j).getCompletedCoursePercentage()) {
52+
} else if (computeCompletedCoursePercentage(studentCourseList.get(i).getCompletedCoursePercentage()) < computeCompletedCoursePercentage(studentCourseList.get(j).getCompletedCoursePercentage())) {
5353
studentCourseList.get(i).setDuplicate(true);
5454
studentCourseList.get(j).setDuplicate(false);
55-
} else if (studentCourseList.get(i).getCompletedCoursePercentage().equals(studentCourseList.get(j).getCompletedCoursePercentage())) {
55+
} else if (computeCompletedCoursePercentage(studentCourseList.get(i).getCompletedCoursePercentage()).equals(computeCompletedCoursePercentage(studentCourseList.get(j).getCompletedCoursePercentage()))) {
5656
compareSessionDates(studentCourseList,i,j);
5757
}
5858
} //Do Nothing
@@ -75,6 +75,10 @@ private void compareSessionDates(List<StudentCourse> studentCourseList, int i, i
7575
studentCourseList.get(j).setDuplicate(false);
7676
}
7777
}
78+
79+
private Double computeCompletedCoursePercentage(Double completedCoursePercentage) {
80+
return completedCoursePercentage != null ? completedCoursePercentage : Double.valueOf("0");
81+
}
7882

7983
@Override
8084
public void setInputData(RuleData inputData) {

‎api/src/main/java/ca/bc/gov/educ/api/ruleengine/rule/FrenchImmersionMinElectiveCredits1986Rule.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public RuleProcessorData fire() {
5454
while (studentCourseIterator2.hasNext()) {
5555
StudentCourse sc = studentCourseIterator2.next();
5656
for(OptionalProgramRequirement pR:gradOptionalProgramMinCreditElectiveRulesMatch) {
57-
if(!sc.getCourseCode().startsWith("X") && sc.getLanguage() != null && sc.getLanguage().equalsIgnoreCase("F")){
57+
if(!sc.getCourseCode().startsWith("X") && sc.getLanguage() != null && sc.getLanguage().toUpperCase().startsWith("F")){
5858
requiredCreditsGrad11or12 = Integer.parseInt(pR.getOptionalProgramRequirementCode().getRequiredCredits());
5959
totalCreditsGrade11or12 = processCredits(pR,totalCreditsGrade11or12,sc,requirementsMet);
6060
}

‎api/src/main/java/ca/bc/gov/educ/api/ruleengine/rule/FrenchImmersionMinElectiveCredits1996Rule.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public RuleProcessorData fire() {
5454
while (studentCourseIterator2.hasNext()) {
5555
StudentCourse sc = studentCourseIterator2.next();
5656
for(OptionalProgramRequirement pR:gradOptionalProgramMinCreditElectiveRulesMatch) {
57-
if(pR.getOptionalProgramRequirementCode().getRequiredLevel() != null && pR.getOptionalProgramRequirementCode().getRequiredLevel().trim().compareTo("11 or 12") == 0 && sc.getLanguage() != null && sc.getLanguage().equalsIgnoreCase("F") && (sc.getCourseLevel().trim().contains("11") || sc.getCourseLevel().trim().contains("12"))) {
57+
if(pR.getOptionalProgramRequirementCode().getRequiredLevel() != null && pR.getOptionalProgramRequirementCode().getRequiredLevel().trim().compareTo("11 or 12") == 0 && sc.getLanguage() != null && sc.getLanguage().toUpperCase().startsWith("F") && (sc.getCourseLevel().trim().contains("11") || sc.getCourseLevel().trim().contains("12"))) {
5858
requiredCreditsGrad11or12 = Integer.parseInt(pR.getOptionalProgramRequirementCode().getRequiredCredits());
5959
totalCreditsGrade11or12 = processCredits(pR,totalCreditsGrade11or12,sc,requirementsMet);
6060
}

‎api/src/main/java/ca/bc/gov/educ/api/ruleengine/rule/FrenchImmersionMinElectiveCreditsRule.java‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public RuleProcessorData fire() {
6565
StudentCourse sc = studentCourseIterator.next();
6666
if(!requirementAchieved) {
6767
for(OptionalProgramRequirement pR:gradOptionalProgramMinCreditElectiveRulesMatch) {
68-
if((pR.getOptionalProgramRequirementCode().getRequiredLevel() == null || pR.getOptionalProgramRequirementCode().getRequiredLevel().trim().compareTo("") == 0) && sc.getLanguage() != null && sc.getLanguage().equalsIgnoreCase("F")) {
68+
if((pR.getOptionalProgramRequirementCode().getRequiredLevel() == null || pR.getOptionalProgramRequirementCode().getRequiredLevel().trim().compareTo("") == 0) && sc.getLanguage() != null && sc.getLanguage().toUpperCase().startsWith("F")) {
6969
requiredCredits = Integer.parseInt(pR.getOptionalProgramRequirementCode().getRequiredCredits());
7070
totalCredits = processCredits(pR,totalCredits,sc,requirementsMet);
7171
}
@@ -97,7 +97,7 @@ public RuleProcessorData fire() {
9797
if(pR.getOptionalProgramRequirementCode().getRequiredLevel() != null
9898
&& pR.getOptionalProgramRequirementCode().getRequiredLevel().trim().compareTo("11 or 12") == 0
9999
&& sc.getLanguage() != null
100-
&& sc.getLanguage().equalsIgnoreCase("F")
100+
&& sc.getLanguage().toUpperCase().startsWith("F")
101101
&& (sc.getCourseLevel().trim().contains("11") || sc.getCourseLevel().trim().contains("12")
102102
|| sc.getCourseCode().contains("CLC"))
103103
) {

‎api/src/main/java/ca/bc/gov/educ/api/ruleengine/rule/MinElectiveCreditsFrench1996Rule.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public RuleProcessorData fire() {
5555
.filter(sc -> !sc.isUsedInMatchRule()
5656
&& (sc.getCourseLevel().contains("11")
5757
|| sc.getCourseLevel().contains("12"))
58-
&& sc.getLanguage() != null && sc.getLanguage().trim().compareTo("F")==0)
58+
&& sc.getLanguage() != null && sc.getLanguage().trim().toUpperCase().startsWith("F"))
5959
.collect(Collectors.toList());
6060

6161

‎api/src/main/java/ca/bc/gov/educ/api/ruleengine/rule/RestrictedCoursesRule.java‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,17 @@ private boolean is1950AndSameLevel(String programCode, String courseLevel, Strin
106106

107107
private void compareCredits(StudentCourse sCourse, StudentCourse tempCourseRestriction, List<StudentCourse> studentCourses, int i) {
108108
if (sCourse.getCredits().equals(tempCourseRestriction.getCredits())) {
109-
if (sCourse.getCompletedCoursePercentage().equals(tempCourseRestriction.getCompletedCoursePercentage())) {
109+
if (computeCompletedCoursePercentage(sCourse.getCompletedCoursePercentage()).equals(computeCompletedCoursePercentage(tempCourseRestriction.getCompletedCoursePercentage()))) {
110110
compareSessionDates(sCourse, tempCourseRestriction, studentCourses, i);
111111
} else
112-
studentCourses.get(i).setRestricted(sCourse.getCompletedCoursePercentage() <= tempCourseRestriction.getCompletedCoursePercentage());
112+
studentCourses.get(i).setRestricted(computeCompletedCoursePercentage(sCourse.getCompletedCoursePercentage()) <= computeCompletedCoursePercentage(tempCourseRestriction.getCompletedCoursePercentage()));
113113
} else studentCourses.get(i).setRestricted(sCourse.getCredits() <= tempCourseRestriction.getCredits());
114114
}
115115

116+
private Double computeCompletedCoursePercentage(Double completedCoursePercentage) {
117+
return completedCoursePercentage != null ? completedCoursePercentage : Double.valueOf("0");
118+
}
119+
116120
private void compareSessionDates(StudentCourse sCourse, StudentCourse tempCourseRestriction, List<StudentCourse> studentCourses, int i) {
117121
if (RuleEngineApiUtils.parsingTraxDate(sCourse.getSessionDate())
118122
.compareTo(RuleEngineApiUtils.parsingTraxDate(tempCourseRestriction.getSessionDate())) < 0) {

0 commit comments

Comments
 (0)