Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FINERACT-2181: Fix accrual activity reversal logic: prevent duplicate reverse-replay, copy external ID correctly #4430

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

oleksii-novikov-onix
Copy link
Contributor

Description

Describe the changes made and why they were made.

Ignore if these details are present on the associated Apache Fineract JIRA ticket.

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.

@oleksii-novikov-onix oleksii-novikov-onix force-pushed the bugfix/FINERACT-2181-accrual-activity-reverse-replay branch from 5be1775 to 8feb629 Compare March 6, 2025 21:10
@adamsaghy adamsaghy marked this pull request as ready for review March 7, 2025 07:56
loanAccountService.saveLoanTransactionWithDataIntegrityViolationChecks(newLoanTransaction);
loan.addLoanTransaction(newLoanTransaction);

LoanAdjustTransactionBusinessEvent.Data data = new LoanAdjustTransactionBusinessEvent.Data(loanTransaction);
data.setNewTransactionDetail(newLoanTransaction);
businessEventNotifierService.notifyPostBusinessEvent(new LoanAdjustTransactionBusinessEvent(data));
} else {
reverseAccrualActivityTransaction(loanTransaction);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't we also updateExternalId for loanTransaction in this method (reverseAccrualActivityTransaction)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was asking myself the same question, but it turns out that updateExternalId(null) was removed here.
@adamsaghy , please take a look.

@peter-kovacs-dpc peter-kovacs-dpc force-pushed the bugfix/FINERACT-2181-accrual-activity-reverse-replay branch from 8feb629 to 227aa7c Compare March 7, 2025 12:11
@oleksii-novikov-onix oleksii-novikov-onix force-pushed the bugfix/FINERACT-2181-accrual-activity-reverse-replay branch from 227aa7c to 60d7e38 Compare March 7, 2025 13:18
@@ -198,7 +199,8 @@ private void loanAccountDataV1Check(Class<? extends AbstractLoanEvent> eventClaz
Long clientIdExpected = body.getClientId();
BigDecimal principalDisbursedActual = loanAccountDataV1.getSummary().getPrincipalDisbursed();
Double principalDisbursedExpectedDouble = body.getSummary().getPrincipalDisbursed();
BigDecimal principalDisbursedExpected = new BigDecimal(principalDisbursedExpectedDouble, MathContext.DECIMAL64);
BigDecimal principalDisbursedExpected = new BigDecimal(principalDisbursedExpectedDouble, MathContext.DECIMAL64)
Copy link
Contributor

@adamsaghy adamsaghy Mar 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why the hardcoded hald_down? This looks incorrect to me

oleksii-novikov-onix and others added 2 commits March 7, 2025 19:04
… duplicate reverse-replay, copy external ID correctly

 Based on the work of @tamasszabo-dpc and @peter-kovacs-dpc
@adamsaghy adamsaghy force-pushed the bugfix/FINERACT-2181-accrual-activity-reverse-replay branch from d2cb57f to 3ef6de4 Compare March 7, 2025 19:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants