You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@fineract.apache.org by "oleksii-novikov-onix (via GitHub)" <gi...@apache.org> on 2026/09/14 11:31:14 UTC

[PR] FINERACT-2455: WC - No accruals in case no accounting is configured [fineract]

oleksii-novikov-onix opened a new pull request, #6440:
URL: https://github.com/apache/fineract/pull/6440

   ## Description
   
   Description:
   
   When a Working Capital product has no accounting (NONE), accruals and accrual adjustments should not be created, but discount fee amortization and amortization adjustments should.
   
   Already in develop:
   
   1. Accruals and accrual adjustments are not created for products without accounting.
   2. Amortization and amortization adjustments are created. Only their journal entries depend on accounting.
   
   This PR adds:
   
   1. Two remaining places could reach accounting code without checking whether the product has accounting. Both now check it, which matches how regular loans behave.
   
       - Undo of a discount fee adjustment: accounting code could block it when accounting for the office was closed for the current date, even though the loan has no journal entries.
       - Undo disbursal: no visible difference for these loans, since accruals are not created without accounting. The check keeps the rule consistent.
   
   2. E2E tests for the cases that had no coverage for products without accounting:
   
       - amortization adjustment and its undo while accounting is closed;
       - real-time accrual and undo disbursal;
       - accrual on loan closure;
       - final amortization on charge-off.
   
   
   ## Checklist
   
   Please make sure these boxes are checked before submitting your pull request - thanks!
   
   - [ ] Write the commit message as per [our guidelines](https://github.com/apache/fineract/blob/develop/CONTRIBUTING.md#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](https://fineract.apache.org/docs/current/#_testing) for verifying the changes made.
   - [ ] Follow our [coding conventions](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
   - [ ] [This PR must not be a "code dump"](https://cwiki.apache.org/confluence/display/FINERACT/Pull+Request+Size+Limit). Large changes can be made in a branch, with assistance. Ask for help on the [developer mailing list](https://fineract.apache.org/#contribute).
   - [ ] If merging this PR resolves a JIRA issue, I will mark that issue as resolved and set "Fix Version/s" appropriately.
   - [ ] I followed the [AI Policy](https://github.com/apache/fineract/blob/develop/CONTRIBUTING.md#ai-policy).
   
   Your assigned reviewer(s) will follow our [guidelines for code reviews](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: issues-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] FINERACT-2455: WC - No accruals in case no accounting is configured [fineract]

Posted by "Cocoa-Puffs (via GitHub)" <gi...@apache.org>.
Cocoa-Puffs commented on code in PR #6440:
URL: https://github.com/apache/fineract/pull/6440#discussion_r4060020964


##########
fineract-working-capital-loan/src/main/java/org/apache/fineract/portfolio/workingcapitalloan/service/WorkingCapitalLoanWritePlatformServiceImpl.java:
##########
@@ -1365,7 +1367,9 @@ private void reverseDiscountFeeAmortizationAdjustments(final WorkingCapitalLoan
                 LoanTransactionType.DISCOUNT_FEE_AMORTIZATION_ADJUSTMENT).forEach(relation -> {
                     final WorkingCapitalLoanTransaction txn = relation.getFromTransaction();
                     reverseTransaction(txn);
-                    accountingProcessor.postReversalJournalEntries(loan, txn);
+                    if (loan.getLoanProduct().getAccountingRule().isAccrualWithDeferredRevenueAmortization()) {

Review Comment:
   We pass the loan itself to all public methods of the accounting processor. Shouldn't we make the accounting processor itself check the accounting rule of the loan it's receiving? There would be less chance to reintroduce this mistake in the future.



-- 
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: issues-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] FINERACT-2455: WC - No accruals in case no accounting is configured [fineract]

Posted by "oleksii-novikov-onix (via GitHub)" <gi...@apache.org>.
oleksii-novikov-onix commented on code in PR #6440:
URL: https://github.com/apache/fineract/pull/6440#discussion_r4061926410


##########
fineract-working-capital-loan/src/main/java/org/apache/fineract/portfolio/workingcapitalloan/service/WorkingCapitalLoanWritePlatformServiceImpl.java:
##########
@@ -1365,7 +1367,9 @@ private void reverseDiscountFeeAmortizationAdjustments(final WorkingCapitalLoan
                 LoanTransactionType.DISCOUNT_FEE_AMORTIZATION_ADJUSTMENT).forEach(relation -> {
                     final WorkingCapitalLoanTransaction txn = relation.getFromTransaction();
                     reverseTransaction(txn);
-                    accountingProcessor.postReversalJournalEntries(loan, txn);
+                    if (loan.getLoanProduct().getAccountingRule().isAccrualWithDeferredRevenueAmortization()) {

Review Comment:
   Fixed



-- 
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: issues-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] FINERACT-2455: WC - No accruals in case no accounting is configured [fineract]

Posted by "oleksii-novikov-onix (via GitHub)" <gi...@apache.org>.
oleksii-novikov-onix commented on PR #6440:
URL: https://github.com/apache/fineract/pull/6440#issuecomment-5789598127

   > @oleksii-novikov-onix Please review my finding / concern:
   > 
   > AccrualWithDeferredRevenueAmortizationAccountingProcessorForWorkingCapitalLoanTest.java:169 — (low, test-coverage) The unit test is touched only to stub ACC_DEF_REV_AM so existing tests stay green; nothing asserts the new NONE short-circuit. A tenth method added without the guard, or a guard dropped in a refactor, would pass every unit test and only surface as the runtime exception this PR fixes. A test stubbing NONE and asserting verifyNoInteractions(helper, journalEntryRepository) across the interface would close it.
   
   Covered, the test loops over every method of the interface with NONE stubbed and asserts verifyNoInteractions(helper, journalEntryRepository), so a newly added method is caught automatically.


-- 
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: issues-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] FINERACT-2455: WC - No accruals in case no accounting is configured [fineract]

Posted by "adamsaghy (via GitHub)" <gi...@apache.org>.
adamsaghy merged PR #6440:
URL: https://github.com/apache/fineract/pull/6440


-- 
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: issues-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] FINERACT-2455: WC - No accruals in case no accounting is configured [fineract]

Posted by "adamsaghy (via GitHub)" <gi...@apache.org>.
adamsaghy commented on code in PR #6440:
URL: https://github.com/apache/fineract/pull/6440#discussion_r4060856158


##########
fineract-working-capital-loan/src/main/java/org/apache/fineract/portfolio/workingcapitalloan/service/WorkingCapitalLoanWritePlatformServiceImpl.java:
##########
@@ -1365,7 +1367,9 @@ private void reverseDiscountFeeAmortizationAdjustments(final WorkingCapitalLoan
                 LoanTransactionType.DISCOUNT_FEE_AMORTIZATION_ADJUSTMENT).forEach(relation -> {
                     final WorkingCapitalLoanTransaction txn = relation.getFromTransaction();
                     reverseTransaction(txn);
-                    accountingProcessor.postReversalJournalEntries(loan, txn);
+                    if (loan.getLoanProduct().getAccountingRule().isAccrualWithDeferredRevenueAmortization()) {

Review Comment:
   @oleksii-novikov-onix Can we do it as Mark recommended?



-- 
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: issues-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] FINERACT-2455: WC - No accruals in case no accounting is configured [fineract]

Posted by "adamsaghy (via GitHub)" <gi...@apache.org>.
adamsaghy commented on PR #6440:
URL: https://github.com/apache/fineract/pull/6440#issuecomment-5777767003

   @oleksii-novikov-onix Please review my finding / concern:
   
   AccrualWithDeferredRevenueAmortizationAccountingProcessorForWorkingCapitalLoanTest.java:169 — (low, test-coverage) The unit test is touched only to stub ACC_DEF_REV_AM so existing tests stay green; nothing asserts the new NONE short-circuit. A tenth method added without the guard, or a guard dropped in a refactor, would pass every unit test and only surface as the runtime exception this PR fixes. A test stubbing NONE and asserting verifyNoInteractions(helper, journalEntryRepository) across the interface would close it.


-- 
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: issues-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org