-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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-1971: external_id column of accrual activity transaction gets updated to null when an accrual activity is reversed #4246
base: develop
Are you sure you want to change the base?
Conversation
881523a
to
82f6d2f
Compare
@@ -458,6 +458,16 @@ public void reverse(final ExternalId reversalExternalId) { | |||
this.reversalExternalId = reversalExternalId; | |||
} | |||
|
|||
public void reverseWithExternalIdHandling(final boolean isReverseReplayed) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not needed! I dont wanna move "reverse-replay" logic into the LoanTransaction entity...
@@ -809,7 +808,11 @@ protected void createNewTransaction(final LoanTransaction oldTransaction, final | |||
relations.add(LoanTransactionRelation.linkToTransaction(originalTransaction, newTransaction, CHARGEBACK)); | |||
} | |||
loanChargeValidator.validateRepaymentTypeTransactionNotBeforeAChargeRefund(oldTransaction.getLoan(), oldTransaction, "reversed"); | |||
oldTransaction.reverse(); | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
THis is not needed. The issue was not with this logic!
Here there will always be "REPLAYED" relation, so checking it again is unnecessary!
82f6d2f
to
0c0ee04
Compare
@@ -204,7 +204,14 @@ private boolean validateActivityTransaction(@NotNull LoanRepaymentScheduleInstal | |||
|
|||
private void reverseAccrualActivityTransaction(LoanTransaction loanTransaction) { | |||
loanTransaction.reverse(); | |||
loanTransaction.updateExternalId(null); | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
WE don't need this validation. Simply removing the part where we set the external id to null is sufficient!
…s updated to null when an accrual activity is reversed
0c0ee04
to
13c79bf
Compare
GetLoansLoanIdResponse loanDetailsNotOverpaid = loanTransactionHelper.getLoanDetails((long) loanId); | ||
assertFalse(loanDetailsNotOverpaid.getStatus().getOverpaid()); // Overpaid status should be false | ||
assertNull(loanDetailsNotOverpaid.getOverpaidOnDate()); // Overpaid date should be reset | ||
assertEquals(loanDetailsNotOverpaid.getExternalId(), loanExternalId); // externalId should remain unchanged |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please make sure you are validating whether the reversed transaction external id is not changed! We don't need to check whether the external id of the loan got changed!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Kindly see my review!
Description
external_id column of accrual activity transaction gets updated to null when an accrual activity is reversed
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.