You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by "mariiaKraievska (via GitHub)" <gi...@apache.org> on 2025/08/20 17:10:07 UTC
[PR] FINERACT-2326: Add additional field which would return available disbursement amount with over applied amount [fineract]
mariiaKraievska opened a new pull request, #4973:
URL: https://github.com/apache/fineract/pull/4973
## Description
Describe the changes made and why they were made.
Ignore if these details are present on the associated [Apache Fineract JIRA ticket](https://github.com/apache/fineract/pull/1284).
## Checklist
Please make sure these boxes are checked before submitting your pull request - thanks!
- [ ] Write the commit message as per https://github.com/apache/fineract/#pull-requests
- [ ] Acknowledge that we will not review PRs that are not passing the build _("green")_ - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.
- [ ] Create/update unit or integration tests for verifying the changes made.
- [ ] Follow coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions.
- [ ] Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm with details of any API changes
- [ ] Submission is not a "code dump". (Large changes can be made "in repository" via a branch. Ask on the developer mailing list for guidance, if required.)
FYI our guidelines for code reviews are at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide.
--
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: commits-unsubscribe@fineract.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] FINERACT-2326: Add additional field which would return available disbursement amount with over applied amount [fineract]
Posted by "adamsaghy (via GitHub)" <gi...@apache.org>.
adamsaghy merged PR #4973:
URL: https://github.com/apache/fineract/pull/4973
--
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: commits-unsubscribe@fineract.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] FINERACT-2326: Add additional field which would return available disbursement amount with over applied amount [fineract]
Posted by "mariiaKraievska (via GitHub)" <gi...@apache.org>.
mariiaKraievska commented on code in PR #4973:
URL: https://github.com/apache/fineract/pull/4973#discussion_r2293991378
##########
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java:
##########
@@ -1818,4 +1818,40 @@ public boolean hasContractTerminationTransaction() {
return getLoanTransactions().stream().anyMatch(t -> t.isContractTermination() && t.isNotReversed());
}
+ public BigDecimal calculateAvailableDisbursementAmountWithOverApplied() {
+ final LoanProduct loanProduct = this.getLoanProduct();
+
+ // Start with approved principal
+ BigDecimal approvedWithOverApplied = this.getApprovedPrincipal();
+
+ if (loanProduct.isAllowApprovedDisbursedAmountsOverApplied()) {
+ if (loanProduct.getOverAppliedCalculationType() != null) {
+ // If over applied amount is enabled, calculate the maximum allowed amount
+ if (LoanOverAppliedCalculationType.valueOf(loanProduct.getOverAppliedCalculationType().toUpperCase()).isPercentage()) {
+ final BigDecimal overAppliedNumber = BigDecimal.valueOf(loanProduct.getOverAppliedNumber());
+ final BigDecimal totalPercentage = BigDecimal.valueOf(1).add(overAppliedNumber.divide(BigDecimal.valueOf(100)));
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: commits-unsubscribe@fineract.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] FINERACT-2326: Add additional field which would return available disbursement amount with over applied amount [fineract]
Posted by "mariiaKraievska (via GitHub)" <gi...@apache.org>.
mariiaKraievska commented on code in PR #4973:
URL: https://github.com/apache/fineract/pull/4973#discussion_r2303498930
##########
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java:
##########
@@ -1818,4 +1824,51 @@ public boolean hasContractTerminationTransaction() {
return getLoanTransactions().stream().anyMatch(t -> t.isContractTermination() && t.isNotReversed());
}
+ public BigDecimal calculateAvailableDisbursementAmountWithOverApplied() {
Review Comment:
Sure, 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: commits-unsubscribe@fineract.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] FINERACT-2326: Add additional field which would return available disbursement amount with over applied amount [fineract]
Posted by "adamsaghy (via GitHub)" <gi...@apache.org>.
adamsaghy commented on code in PR #4973:
URL: https://github.com/apache/fineract/pull/4973#discussion_r2303389405
##########
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java:
##########
@@ -1818,4 +1824,51 @@ public boolean hasContractTerminationTransaction() {
return getLoanTransactions().stream().anyMatch(t -> t.isContractTermination() && t.isNotReversed());
}
+ public BigDecimal calculateAvailableDisbursementAmountWithOverApplied() {
Review Comment:
Would you mind to move this calculation into a Calculator component or the DelinquencyReadPlatformService similarly as `calculateAvailableDisbursementAmount(loan)` does? We would like to offload the JPA entities, not introducing further complex calculations.
--
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: commits-unsubscribe@fineract.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] FINERACT-2326: Add additional field which would return available disbursement amount with over applied amount [fineract]
Posted by "budaidev (via GitHub)" <gi...@apache.org>.
budaidev commented on code in PR #4973:
URL: https://github.com/apache/fineract/pull/4973#discussion_r2293290875
##########
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java:
##########
@@ -1818,4 +1818,40 @@ public boolean hasContractTerminationTransaction() {
return getLoanTransactions().stream().anyMatch(t -> t.isContractTermination() && t.isNotReversed());
}
+ public BigDecimal calculateAvailableDisbursementAmountWithOverApplied() {
+ final LoanProduct loanProduct = this.getLoanProduct();
+
+ // Start with approved principal
+ BigDecimal approvedWithOverApplied = this.getApprovedPrincipal();
+
+ if (loanProduct.isAllowApprovedDisbursedAmountsOverApplied()) {
+ if (loanProduct.getOverAppliedCalculationType() != null) {
+ // If over applied amount is enabled, calculate the maximum allowed amount
+ if (LoanOverAppliedCalculationType.valueOf(loanProduct.getOverAppliedCalculationType().toUpperCase()).isPercentage()) {
Review Comment:
this can lead to illegal argument exception if not handled properly.
##########
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java:
##########
@@ -1818,4 +1818,40 @@ public boolean hasContractTerminationTransaction() {
return getLoanTransactions().stream().anyMatch(t -> t.isContractTermination() && t.isNotReversed());
}
+ public BigDecimal calculateAvailableDisbursementAmountWithOverApplied() {
+ final LoanProduct loanProduct = this.getLoanProduct();
+
+ // Start with approved principal
+ BigDecimal approvedWithOverApplied = this.getApprovedPrincipal();
+
+ if (loanProduct.isAllowApprovedDisbursedAmountsOverApplied()) {
+ if (loanProduct.getOverAppliedCalculationType() != null) {
+ // If over applied amount is enabled, calculate the maximum allowed amount
+ if (LoanOverAppliedCalculationType.valueOf(loanProduct.getOverAppliedCalculationType().toUpperCase()).isPercentage()) {
+ final BigDecimal overAppliedNumber = BigDecimal.valueOf(loanProduct.getOverAppliedNumber());
+ final BigDecimal totalPercentage = BigDecimal.valueOf(1).add(overAppliedNumber.divide(BigDecimal.valueOf(100)));
Review Comment:
Consider to add math context when dividing BigDecimals
--
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: commits-unsubscribe@fineract.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] FINERACT-2326: Add additional field which would return available disbursement amount with over applied amount [fineract]
Posted by "mariiaKraievska (via GitHub)" <gi...@apache.org>.
mariiaKraievska commented on code in PR #4973:
URL: https://github.com/apache/fineract/pull/4973#discussion_r2297419902
##########
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java:
##########
@@ -1818,4 +1818,40 @@ public boolean hasContractTerminationTransaction() {
return getLoanTransactions().stream().anyMatch(t -> t.isContractTermination() && t.isNotReversed());
}
+ public BigDecimal calculateAvailableDisbursementAmountWithOverApplied() {
+ final LoanProduct loanProduct = this.getLoanProduct();
+
+ // Start with approved principal
+ BigDecimal approvedWithOverApplied = this.getApprovedPrincipal();
+
+ if (loanProduct.isAllowApprovedDisbursedAmountsOverApplied()) {
+ if (loanProduct.getOverAppliedCalculationType() != null) {
+ // If over applied amount is enabled, calculate the maximum allowed amount
+ if (LoanOverAppliedCalculationType.valueOf(loanProduct.getOverAppliedCalculationType().toUpperCase()).isPercentage()) {
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: commits-unsubscribe@fineract.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org