josehernandezfintecheandomx commented on code in PR #2507:
URL: https://github.com/apache/fineract/pull/2507#discussion_r945980768
##########
fineract-provider/src/main/java/org/apache/fineract/portfolio/delinquency/service/DelinquencyWritePlatformServiceImpl.java:
##########
@@ -243,36 +277,88 @@ public int compare(DelinquencyRange o1, DelinquencyRange
o2) {
}
private boolean isOverlaped(DelinquencyRange o1, DelinquencyRange o2) {
- return Math.max(o1.getMinimumAgeDays(), o2.getMinimumAgeDays()) <=
Math.min(o1.getMaximumAgeDays(), o2.getMaximumAgeDays());
+ if (o2.getMaximumAgeDays() != null) { // Max Age undefined - Last one
+ return Math.max(o1.getMinimumAgeDays(), o2.getMinimumAgeDays()) <=
Math.min(o1.getMaximumAgeDays(), o2.getMaximumAgeDays());
+ } else {
+ return Math.max(o1.getMinimumAgeDays(), o2.getMinimumAgeDays()) <=
Math.min(o1.getMaximumAgeDays(), o2.getMinimumAgeDays());
+ }
+ }
+
+ private Map<String, Object> lookUpDelinquencyRange(final Loan loan, final
DelinquencyBucket delinquencyBucket, long ageDays) {
+ Map<String, Object> changes = new HashMap<>();
+
+ if (ageDays <= 0) { // No Delinquency
+ log.info("Loan {} without delinquency range with {} days",
loan.getId(), ageDays);
+ changes = setLoanDelinquencyTag(loan, null);
+
+ } else {
+ for (DelinquencyRange delinquencyRange :
delinquencyBucket.getRanges()) {
+ if (delinquencyRange.getMaximumAgeDays() == null) {
+ if (delinquencyRange.getMinimumAgeDays() <= ageDays) {
+ log.info("Loan {} with delinquency range {} with {}
days", loan.getId(), delinquencyRange.getClassification(),
+ ageDays);
+ changes = setLoanDelinquencyTag(loan,
delinquencyRange.getId());
+ break;
+ }
+ } else {
+ if (delinquencyRange.getMinimumAgeDays() <= ageDays &&
delinquencyRange.getMaximumAgeDays() >= ageDays) {
+ log.info("Loan {} with delinquency range {} with {}
days", loan.getId(), delinquencyRange.getClassification(),
+ ageDays);
+ changes = setLoanDelinquencyTag(loan,
delinquencyRange.getId());
+ break;
+ }
+ }
+ }
+ }
+ changes.put("ageDays", ageDays);
+ return changes;
}
- public void setLoanDelinquencyTag(Long loanId, Long delinquencyRangeId) {
+ public Map<String, Object> setLoanDelinquencyTag(Long loanId, Long
delinquencyRangeId) {
final Loan loan =
this.loanRepository.findOneWithNotFoundDetection(loanId);
+ return setLoanDelinquencyTag(loan, delinquencyRangeId);
+ }
+ public Map<String, Object> setLoanDelinquencyTag(Loan loan, Long
delinquencyRangeId) {
+ Map<String, Object> changes = new HashMap<>();
+ List<LoanDelinquencyTagHistory> loanDelinquencyTagHistory = new
ArrayList<>();
final LocalDate transactionDate = DateUtils.getLocalDateOfTenant();
Review Comment:
Done!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]