FINERACT-1971: Delinquency pause validation bug fixes
This commit is contained in:
+14
-1
@@ -61,6 +61,7 @@ public class DelinquencyActionParseAndValidator extends ParseAndValidator {
|
||||
} else if (DelinquencyAction.RESUME.equals(parsedDelinquencyAction.getAction())) {
|
||||
validateResumeStartDate(parsedDelinquencyAction, businessDate);
|
||||
validateResumeNoEndDate(parsedDelinquencyAction);
|
||||
validateResumeDoesNotExist(parsedDelinquencyAction, savedDelinquencyActions);
|
||||
validateResumeShouldBeOnActivePause(parsedDelinquencyAction, effectiveDelinquencyList);
|
||||
}
|
||||
return parsedDelinquencyAction;
|
||||
@@ -87,6 +88,17 @@ public class DelinquencyActionParseAndValidator extends ParseAndValidator {
|
||||
}
|
||||
}
|
||||
|
||||
private void validateResumeDoesNotExist(LoanDelinquencyAction parsedDelinquencyAction,
|
||||
List<LoanDelinquencyAction> savedDelinquencyActions) {
|
||||
boolean match = savedDelinquencyActions.stream() //
|
||||
.filter(action -> DelinquencyAction.RESUME.equals(action.getAction())) //
|
||||
.anyMatch(action -> parsedDelinquencyAction.getStartDate().isEqual(action.getStartDate()));
|
||||
if (match) {
|
||||
raiseValidationError("loan-delinquency-action-resume-should-be-unique",
|
||||
"There is an existing Resume Delinquency Action on this date");
|
||||
}
|
||||
}
|
||||
|
||||
private void validateResumeNoEndDate(LoanDelinquencyAction parsedDelinquencyAction) {
|
||||
if (parsedDelinquencyAction.getEndDate() != null) {
|
||||
raiseValidationError("loan-delinquency-action-resume-should-have-no-end-date",
|
||||
@@ -163,7 +175,8 @@ public class DelinquencyActionParseAndValidator extends ParseAndValidator {
|
||||
*/
|
||||
private boolean isOverlapping(LoanDelinquencyAction parsed, LoanDelinquencyActionData existing) {
|
||||
return (parsed.getEndDate().isAfter(existing.getStartDate()) && parsed.getEndDate().isBefore(existing.getEndDate()))
|
||||
|| (parsed.getStartDate().isAfter(existing.getStartDate()) && parsed.getStartDate().isBefore(existing.getEndDate()));
|
||||
|| (parsed.getStartDate().isAfter(existing.getStartDate()) && parsed.getStartDate().isBefore(existing.getEndDate()))
|
||||
|| (parsed.getStartDate().isEqual(existing.getStartDate()) && parsed.getEndDate().isEqual(existing.getEndDate()));
|
||||
}
|
||||
|
||||
@org.jetbrains.annotations.NotNull
|
||||
|
||||
Reference in New Issue
Block a user