Skip to content

Conversation

@04Gomez
Copy link
Contributor

@04Gomez 04Gomez commented Jul 21, 2025

Description

Adjustment to savings account products by adding a new accounting account interest receivables account.

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.

@04Gomez 04Gomez force-pushed the receivables_changes branch from e2bdec1 to 833b5e5 Compare July 21, 2025 23:57
@04Gomez
Copy link
Contributor Author

04Gomez commented Jul 28, 2025

@adamsaghy Hi, can you help me to Review

@adamsaghy
Copy link
Contributor

adamsaghy commented Jul 30, 2025

@04Gomez Please drop this generic "Savings Accounts Improvements" and start using clear, descriptive short description for the PRs which tells exactly what this intended to do!

@04Gomez
Copy link
Contributor Author

04Gomez commented Jul 30, 2025

@adamsaghy
Hi Adam, thank you for the feedback.

Just to clarify, this PR is indeed related to the overall "Savings Accounts Improvements" initiative. The team decided to split the changes into multiple PRs to improve clarity and facilitate the review process, while keeping a consistent title to reflect that they all belong to the same scope.

@adamsaghy
Copy link
Contributor

@adamsaghy Hi Adam, thank you for the feedback.

Just to clarify, this PR is indeed related to the overall "Savings Accounts Improvements" initiative. The team decided to split the changes into multiple PRs to improve clarity and facilitate the review process, while keeping a consistent title to reflect that they all belong to the same scope.

The Fineract story id just fine to connect them. The PR title should tell exactly what it is doing and "improvements" is too generic and useless. Kindly asking you to rename it!

@04Gomez 04Gomez changed the title FINERACT-2312: Savings Accounts Improvements FINERACT-2312: Adjustment to savings account products by adding a new accounting account interest receivables account. Jul 30, 2025
@04Gomez 04Gomez force-pushed the receivables_changes branch 2 times, most recently from 1647841 to a342e5b Compare July 30, 2025 22:23
@04Gomez
Copy link
Contributor Author

04Gomez commented Jul 30, 2025

@adamsaghy
Sorry, the change is ready as appropriate regarding the descriptions.

@04Gomez
Copy link
Contributor Author

04Gomez commented Jul 31, 2025

Hi, @adamsaghy , can you review this PR? please

@adamsaghy
Copy link
Contributor

@04Gomez All PR should involve proper testing attached!

@sayhaed sayhaed force-pushed the receivables_changes branch 2 times, most recently from f2a4b88 to aef6128 Compare August 5, 2025 18:40
@04Gomez
Copy link
Contributor Author

04Gomez commented Aug 6, 2025

Hi, @adamsaghy, good day, you can review the PR? Please.

@04Gomez
Copy link
Contributor Author

04Gomez commented Aug 6, 2025

@04Gomez All PR should involve proper testing attached!

The requested test has already been added for your review, thank you.

private static final Set<String> SAVINGS_PRODUCT_REQUEST_DATA_PARAMETERS = new HashSet<>(Arrays.asList(
SavingsApiConstants.localeParamName, SavingsApiConstants.monthDayFormatParamName, nameParamName, shortNameParamName,
descriptionParamName, currencyCodeParamName, digitsAfterDecimalParamName, inMultiplesOfParamName,
interestReceivableAccount, descriptionParamName, currencyCodeParamName, digitsAfterDecimalParamName, inMultiplesOfParamName,
Copy link
Contributor

Choose a reason for hiding this comment

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

Please dont insert randomly the new gl account. Move this account to the place where the accounts are listed.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done, the modified is already.
We detected the double use of the variable, the excess was eliminated and only the necessary one was used.
Tank you

Copy link
Contributor

@adamsaghy adamsaghy left a comment

Choose a reason for hiding this comment

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

Please kindly check my comments!

@04Gomez
Copy link
Contributor Author

04Gomez commented Aug 8, 2025

Hi @adamsaghy, can you help me to Review, please

@04Gomez
Copy link
Contributor Author

04Gomez commented Aug 11, 2025

Can you review, please, @adamsaghy

@LeonMendiolaYV
Copy link

Hi @adamsaghy , can you help me to Review, please

responseSpec, savingsProductID);
Assertions.assertNotNull(savingsProductsResponse);
Assertions.assertNotNull(savingsProductsResponse.getAccountingMappings());
Assertions.assertNotNull(savingsProductsResponse.getAccountingMappings().getInterestReceivableAccount());
Copy link
Contributor

Choose a reason for hiding this comment

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

Checking whether mapping is null or not is not enough!
Please make sure you are providing a particular GL account to the interest receivable mapping and check whether that particular GL account was set!

Copy link
Contributor

@Tedyyy-Albur Tedyyy-Albur Aug 13, 2025

Choose a reason for hiding this comment

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

Hi @adamsaghy , I'll be following up on the PR.

In addition to this point, this PR is only for creating the Product with the interest receivables accounting account. Can we add this test you mentioned to this PR #4885 ?
We already use the accounting account in this PR. It should be noted that the PR is related to the changes in ticket FINERACT-2312

Copy link
Contributor

Choose a reason for hiding this comment

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

No, this must be tested as part of this PR hence the mapping got implemented here.

Copy link
Contributor

Choose a reason for hiding this comment

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

Okay I understand

return SavingsProductHelper.createSavingsProduct(savingsProductJSON, requestSpec, responseSpec);
}

public static Integer createSavingsProductWithAccrualAccountingWithOutOverdraftAllowed(final String minOpenningBalance,
Copy link
Contributor

Choose a reason for hiding this comment

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

Testing whether interest receivable mapping can be updated or removed from the loan product is missing!

Copy link
Contributor

Choose a reason for hiding this comment

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

Done

Copy link
Contributor

@adamsaghy adamsaghy left a comment

Choose a reason for hiding this comment

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

Please review my comments!

@Tedyyy-Albur Tedyyy-Albur force-pushed the receivables_changes branch 2 times, most recently from 6faf069 to accf63c Compare August 13, 2025 22:06
@Tedyyy-Albur
Copy link
Contributor

Tedyyy-Albur commented Aug 13, 2025

Hi @adamsaghy Can you review the changes, pls? thank you

@04Gomez 04Gomez requested a review from adamsaghy August 14, 2025 15:13
@Tedyyy-Albur
Copy link
Contributor

Hi @adamsaghy, I hope you're well. excuse me, do you have any comments on the PR?

final int placeHolderTypeId, final GLAccountType expectedAccountType, final PortfolioProductType portfolioProductType) {
final Long accountId = this.fromApiJsonHelper.extractLongNamed(paramName, element);
if (accountId != null) { // optional entries may be null
if (accountId != null && accountId > 0) { // optional entries may be null
Copy link
Contributor

Choose a reason for hiding this comment

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

Please remove this nonsense accountId > 0....

Copy link
Contributor

Choose a reason for hiding this comment

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

done

}
} else {
if (accountMapping.getGlAccount() != null && !Objects.equals(accountMapping.getGlAccount().getId(), accountId)) {
if (accountMapping.getGlAccount() != null && accountId > 0
Copy link
Contributor

Choose a reason for hiding this comment

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

Please remove this nonsense accountId > 0....

Copy link
Contributor

Choose a reason for hiding this comment

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

done

changes.put(paramName, accountId);
accountMapping.setGlAccount(glAccount);
this.accountMappingRepository.saveAndFlush(accountMapping);
} else if (accountId == 0) {
Copy link
Contributor

Choose a reason for hiding this comment

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

this.fromApiJsonHelper.extractLongNamed(paramName, element) never returns 0... it return null if value was not provided...

Copy link
Contributor

Choose a reason for hiding this comment

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

done

Assertions.assertNotNull(savingsProductsResponse.getAccountingMappings());
Assertions.assertNotNull(savingsProductsResponse.getAccountingMappings().getInterestReceivableAccount());

Assertions.assertEquals(assetAccount.getAccountID(),
Copy link
Contributor

@adamsaghy adamsaghy Aug 15, 2025

Choose a reason for hiding this comment

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

NO!

I want you to provide a particular GL account which is ONLY set to interest receivable mapping and I want you to make sure that particular GL account id was set and returned! I dont want you to use this logic which sets the very same GL account to multiple GL mappings!

Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks for the review. I've already assigned a unique account for interest receivable and generated the validations with that account.

}

@Test
public void testSavingsProductWithOverdraftUpdate_AllowsOverdraft() {
Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Contributor

Choose a reason for hiding this comment

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

I have made correction

@Test
public void testSavingsProductWithOverdraftDelete_AllowsOverdraft() {
// --- ARRANGE ---
final Account assetAccount = this.accountHelper.createAssetAccount();
Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Contributor

Choose a reason for hiding this comment

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

I have made correction

if (Boolean.parseBoolean(this.allowOverdraft)) {
map.put("interestReceivableAccountId", ID);
} else {
map.put("interestReceivableAccountId", "0");
Copy link
Contributor

Choose a reason for hiding this comment

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

This is invalid and BACKEND should NEVER accept 0 value for any Id!

Copy link
Contributor

Choose a reason for hiding this comment

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

done

Copy link
Contributor

@adamsaghy adamsaghy left a comment

Choose a reason for hiding this comment

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

Please review my comments!

@Tedyyy-Albur Tedyyy-Albur force-pushed the receivables_changes branch 2 times, most recently from 8aa19c3 to 67654fc Compare August 15, 2025 16:33
@04Gomez 04Gomez requested a review from adamsaghy August 15, 2025 18:54
@Tedyyy-Albur
Copy link
Contributor

Tedyyy-Albur commented Aug 15, 2025

Hi @adamsaghy, I've already made the changes. thank you.

@Tedyyy-Albur
Copy link
Contributor

Hi @adamsaghy, hoping you're well. Sorry, do you have any comments on the PR? I've already highlighted the previous comments.

this.accountMappingRepository.saveAndFlush(accountMapping);
}
}
} else {
Copy link
Contributor

Choose a reason for hiding this comment

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

what is this? I dont think we need this!

Copy link
Contributor

Choose a reason for hiding this comment

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

Ok, i removed this

} else {
final ProductToGLAccountMapping accountMapping = this.accountMappingRepository.findCoreProductToFinAccountMapping(productId,
portfolioProductType.getValue(), accountTypeId);
if (portfolioProductType.isSavingProduct()) {
Copy link
Contributor

Choose a reason for hiding this comment

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

For backward compatibility, i dont think we should allow to delete any mappings. There could be existing savings account which rely on these mappings. We can update, but not delete...

Copy link
Contributor

Choose a reason for hiding this comment

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

Ok, I understand, thanks for the feedback.

Copy link
Contributor

@adamsaghy adamsaghy left a comment

Choose a reason for hiding this comment

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

LGTM 🎉

… accounting account interest receivables account.
@IOhacker IOhacker merged commit c936c19 into apache:develop Aug 20, 2025
45 of 46 checks passed
sayhaed pushed a commit to sayhaed/fineract that referenced this pull request Aug 21, 2025
This quality of life patch reduces static weaving log message priority,
reducing the default gradle build output by about 60 lines.

example gradle run with these messages:

    > Configure project :custom
    ℹ Skipping static weaving configuration for non-Java project: custom

    > Configure project :fineract-accounting
    Configuring EclipseLink static weaving for fineract-accounting

    > Configure project :fineract-branch
    Configuring EclipseLink static weaving for fineract-branch
    ...

* update release notice years in NOTICE_RELEASE and NOTICE_SOURCE
* step 5
  * simplify mention of tests: "Ensure all tests pass for this commit both in CI and locally"
  * recommend GPG signing annotated release tag
* step 8: improve svn commands
  * This way is simpler and more efficient, especially with a bunch of release candidate dirs in the staging area.
* step 10: mention need to test rc before +1 vote -- See:
  * https://www.apache.org/legal/release-policy.html#release-approval
  * https://www.apache.org/legal/release-policy.html#approving-a-release
* step 12: only PMC members can upload releases
* step 13: simplify & explain "finalize branch" instructions
  * Document what worked for me for 1.12.1.
  * I didn't need to create the extra `merge-$VERSION` branch and do the recursive merge.
* document how asciidoctor upgrade is blocked
  * see "official docs - deps stuck" thread on fineract dev mailing list
  * https://lists.apache.org/thread/7mmsj13spb11vgz0z38fhwgzwtq03brr
  * can't upgrade to 4.x because of one of these:
    * asciidoctor/asciidoctorj-pdf#25
    * jruby/jruby#5573
    * asciidoctor/asciidoctorj-pdf#16
* improve asciidoc config - opt for simplicity where the complexity adds nothing
  * compat-mode is off by default, no need for it here
  * default optimization should be fine
  * media should have been screen | print | prepress, just leave it as default instead
  * page size? I really don't think this is going to be printed much, just go with default
  * PDF version 1.8 is invalid, just use the default unless we someday have a good reason to pin this
  * reduce copyright years sources of truth
  * see also: https://docs.asciidoctor.org/pdf-converter/latest/asciidoc-attributes/
* remove unnecessary asciidoctorj 3.0.0 version string -- no need to pin this
* remove prompt character from Bash shell examples
  * it isn't properly syntax-highlighted and it looks confusing with line numbers (which we might want to add)
  * it isn't necessary
  * the prompt character ("%" in this case) is not typically included in shell code examples because it makes it harder to copy and paste shell code examples
  * $ is likely more common than % (at least on Debian/Ubuntu), but either way I'd say exclude it
* fix source code syntax labels - use "bash" only when it is actually Bash shell code
* persistence.adoc
  * fix broken enumerated list
    * resolves these warnings seen with, e.g.: `gradle --info doc`
    * `Jul 27, 2025 8:26:48 PM uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/parser.rb parse_list_item`
    * `WARNING: chapters/architecture/persistence.adoc: line 104: list item index: expected 1, got 2`
    * `Jul 27, 2025 8:26:48 PM uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/parser.rb parse_list`
    * `WARNING: chapters/architecture/persistence.adoc: line 110: list item index: expected 1, got 3`
  * fix wrapping (we use hardbreaks)
  * fix typo: `s/plane text/plain text/`
* switch to rouge syntax highlighter - it handles more source languages
* fix broken long shell code lines
* fix .avro file syntax highlighting (it's JSON)
* configuration-gpg.adoc
  * fix accidental block continuation
    * One little plus sign was making `= Email` appear verbatim in rendered output because it was interpreted as a list continuation.
    * See https://docs.asciidoctor.org/asciidoc/latest/lists/continuation/#list-continuation
  * recommend more secure keys
  * add a line continuation for an enumerated list
* architecture-overview.puml: remove this unused (likely a "Hello World") diagram
* release-schedule.puml: fix pluralization of days
  * purely aesthetic: doesn't affect chart rendering
* fix src/bin/binary tarball name typos
  * missed a few in e090da2
* fix release branch name
  * must match `release/{revnumber}`, per gitVersioning stanza in top level build.gradle
* harden.adoc: fix broken link to CISA
* fineract-doc/build.gradle
  * ensure HTML task has diagrams and images availble

FINERACT-2317: Add documentation for approved amount modification endpoints

Bump actions/cache from 4.2.3 to 4.2.4

Bumps [actions/cache](https://github.com/actions/cache) from 4.2.3 to 4.2.4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@5a3ec84...0400d5f)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 4.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

FINERACT-2314: IP tracking (apache#4825)

Co-authored-by: Juan Pablo Alvarez Hernandez <work_jpa@hotmailcom>

FINERACT-2340: remove nonexistant project "fineract-api" (apache#4924)

FINERACT-2326: The journal entries should be ordered in explicit order

FINERACT-2338: Allow backdated interest change on progressive loans - documentation

FINERACT-2326: Improve null-safety

FINERACT-2338: Allow backdated interest change on progressive loans

- charge-off handling
- write-off handling
- closed loans
- external owner changes

FINERACT-2326: Tax component and group issue serialization

FINERACT-2326: Charges with Tax group Id ignored

FINERACT-2323: support the multiple legs for journal entries

FINERACT-2326: [DOC] Interest rate change documentation

FINERACT-2324: Remove getLoanTransactions from accounting

FINERACT-2326: Fix swagger generation

FINERACT-2343: Fix update currency api validation

FINERACT-2343: added e2e tests for business date and currency validation

FINERACT-2326: Improve command query param regexp to allow hyphens

FINERACT-2326: Fix swagger generation

FINERACT-2326: Fix swagger generation

Bump actions/checkout from 4.2.2 to 5.0.0

Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.2 to 5.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@11bd719...08c6903)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

FINERACT-2326: Extract out external dependencies from Client and Group entity

FINERACT-2330: Buy-Down fees Accounting for non merchant product

FINERACT-2326: Missing user permission for Capitalized Income and Buydown fee

FINERACT-2181: Update dependency node to v22

FINERACT-2181: Update dependency com.puppycrawl.tools:checkstyle to v11

FINERACT-2326: Fix UserLoanPermissionTest

FINERACT-2326: Use Hibernate Validator

FINERACT-2232: DeferredIncomeApi as CapitalizedIncomeApi

FINERACT-2326: Introduce FineractProgressiveLoanBeanConfiguration to allow conditionally register beans in `fineract-progressive-loan` module

FINERACT-2326: Rework business date validation and dto handling

FINERACT-2233: Rework journal entry handling logic in Loan module

FINERACT-2279: Add contract termination documentation

FINERACT-1981: Reschedule loan with interest rate change from zero breaks repayment schedule and loan status to OVERPAID

FINERACT-1981: Reschedule loan with interest rate change from zero breaks repayment schedule and loan status to OVERPAID - E2E tests

FINERACT-2312: Adjustment to savings account products by adding a new accounting account interest receivables account. (apache#4876)

FINERACT-2312: Accruals added for savings accounts (apache#4885)

cambios para reverse

test
adamsaghy pushed a commit to openMF/fineract that referenced this pull request Aug 21, 2025
Aman-Mittal pushed a commit to Aman-Mittal/fineract that referenced this pull request Aug 24, 2025
Aman-Mittal added a commit to Aman-Mittal/fineract that referenced this pull request Aug 24, 2025
author Aman-Mittal <aman.mittal3052000@gmail.com> 1755282444 +0530
committer Aman-Mittal <aman.mittal3052000@gmail.com> 1756043679 +0530

parent 0f53f77
author Aman-Mittal <aman.mittal3052000@gmail.com> 1755282444 +0530
committer Aman-Mittal <aman.mittal3052000@gmail.com> 1756043674 +0530

parent 0f53f77
author Aman-Mittal <aman.mittal3052000@gmail.com> 1755282444 +0530
committer Aman-Mittal <aman.mittal3052000@gmail.com> 1756043668 +0530

parent 0f53f77
author Aman-Mittal <aman.mittal3052000@gmail.com> 1755282444 +0530
committer Aman-Mittal <aman.mittal3052000@gmail.com> 1756043655 +0530

parent 0f53f77
author Aman-Mittal <aman.mittal3052000@gmail.com> 1755282444 +0530
committer Aman-Mittal <aman.mittal3052000@gmail.com> 1756043650 +0530

parent 0f53f77
author Aman-Mittal <aman.mittal3052000@gmail.com> 1755282444 +0530
committer Aman-Mittal <aman.mittal3052000@gmail.com> 1756043640 +0530

parent 0f53f77
author Aman-Mittal <aman.mittal3052000@gmail.com> 1755282444 +0530
committer Aman-Mittal <aman.mittal3052000@gmail.com> 1756043234 +0530

# This is a combination of 30 commits.
# This is the 1st commit message:

minor sonarqube fixes

apply java sptless changes

spotless apply

Bump actions/checkout from 4.2.2 to 5.0.0

Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.2 to 5.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@11bd719...08c6903)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

FINERACT-2326: Extract out external dependencies from Client and Group entity

FINERACT-2330: Buy-Down fees Accounting for non merchant product

FINERACT-2326: Missing user permission for Capitalized Income and Buydown fee

# This is the commit message #2:

FINERACT-2181: Update dependency node to v22

# This is the commit message #3:

FINERACT-2181: Update dependency com.puppycrawl.tools:checkstyle to v11

# This is the commit message #4:

FINERACT-2326: Fix UserLoanPermissionTest

# This is the commit message apache#5:

FINERACT-2326: Use Hibernate Validator

# This is the commit message apache#6:

FINERACT-2232: DeferredIncomeApi as CapitalizedIncomeApi

# This is the commit message apache#7:

FINERACT-2326: Introduce FineractProgressiveLoanBeanConfiguration to allow conditionally register beans in `fineract-progressive-loan` module

# This is the commit message apache#8:

FINERACT-2326: Rework business date validation and dto handling

# This is the commit message apache#9:

FINERACT-2233: Rework journal entry handling logic in Loan module

# This is the commit message apache#10:

FINERACT-2279: Add contract termination documentation

# This is the commit message apache#11:

FINERACT-1981: Reschedule loan with interest rate change from zero breaks repayment schedule and loan status to OVERPAID

# This is the commit message apache#12:

FINERACT-1981: Reschedule loan with interest rate change from zero breaks repayment schedule and loan status to OVERPAID - E2E tests

Implemented Sonar Fixes

# This is the commit message apache#13:

FINERACT-2312: Adjustment to savings account products by adding a new accounting account interest receivables account. (apache#4876)

# This is the commit message apache#14:

FINERACT-2312: Accruals added for savings accounts (apache#4885)

# This is the commit message apache#15:

added e2e tests for validation of progressive Loan schedule handling - Reschedule installment (Extend repayment period)

# This is the commit message apache#16:

FINERACT-1981: Progressive Loan schedule handling - Reschedule installment (Extend repayment period)

# This is the commit message apache#17:

FINERACT-2330: Buy-Down fees adjustment Acct for non merchant product

# This is the commit message apache#18:

FINERACT-2330: added e2e tests for buy down fee for non-merchant

# This is the commit message apache#19:

FINERACT-2327: when Interest Refund was created manually, we should only return the newly created Interest Refund transaction identifiers in the result.

# This is the commit message apache#20:

FINERACT-2317: Fix updating the available disbursed amount to zero after loan approval

# This is the commit message apache#21:

FINERACT-2317: added e2e tests for update available disb amount validation with zero value

# This is the commit message apache#22:

FINERACT-2326: Backdated loan charge-off accrual fix

# This is the commit message apache#23:

FINERACT-1926: Add previous owner to ExternalAssetOwnerTransfer

# This is the commit message apache#24:

FINERACT-1926: added e2e tests for asset owner event changes with previous owner

# This is the commit message apache#25:

Bump actions/setup-java from 4.7.1 to 5.0.0

Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.7.1 to 5.0.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](actions/setup-java@c5195ef...dded088)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
# This is the commit message apache#26:

FINERACT-2337 Fix docker publish for tags

# This is the commit message apache#27:

FINERACT-2349: final 1.12.1 release doc updates

Tidy up docs post-1.12.1 release, alongside updates to https://cwiki.apache.org/confluence/display/FINERACT/

# This is the commit message apache#28:

FINERACT-2326: Deregister static mocks

# This is the commit message apache#29:

Bump actions/checkout from 4.2.2 to 5.0.0

Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.2 to 5.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@11bd719...08c6903)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
# This is the commit message apache#30:

FINERACT-2326: Extract out external dependencies from Client and Group entity

FINERACT-2326: Missing user permission for Capitalized Income and Buydown fee

FINERACT-2181: Update dependency node to v22

FINERACT-2181: Update dependency com.puppycrawl.tools:checkstyle to v11

FINERACT-2326: Fix UserLoanPermissionTest

FINERACT-2232: DeferredIncomeApi as CapitalizedIncomeApi

FINERACT-2326: Introduce FineractProgressiveLoanBeanConfiguration to allow conditionally register beans in `fineract-progressive-loan` module

FINERACT-2326: Rework business date validation and dto handling

FINERACT-2279: Add contract termination documentation

FINERACT-1981: Reschedule loan with interest rate change from zero breaks repayment schedule and loan status to OVERPAID - E2E tests

FINERACT-2312: Accruals added for savings accounts (apache#4885)

FINERACT-1981: Progressive Loan schedule handling - Reschedule installment (Extend repayment period)

FINERACT-2330: Buy-Down fees adjustment Acct for non merchant product

FINERACT-2330: added e2e tests for buy down fee for non-merchant

FINERACT-2327: when Interest Refund was created manually, we should only return the newly created Interest Refund transaction identifiers in the result.

FINERACT-2317: added e2e tests for update available disb amount validation with zero value

FINERACT-2326: Backdated loan charge-off accrual fix

FINERACT-1926: Add previous owner to ExternalAssetOwnerTransfer

FINERACT-1926: added e2e tests for asset owner event changes with previous owner

Bump actions/setup-java from 4.7.1 to 5.0.0

Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.7.1 to 5.0.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](actions/setup-java@c5195ef...dded088)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

FINERACT-2337 Fix docker publish for tags

FINERACT-2349: final 1.12.1 release doc updates

Tidy up docs post-1.12.1 release, alongside updates to https://cwiki.apache.org/confluence/display/FINERACT/

FINERACT-2326: Deregister static mocks
Aman-Mittal added a commit to Aman-Mittal/fineract that referenced this pull request Aug 24, 2025
* Bump actions/checkout from 4.2.2 to 5.0.0

Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.2 to 5.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@11bd719...08c6903)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* FINERACT-2326: Extract out external dependencies from Client and Group entity

* FINERACT-2330: Buy-Down fees Accounting for non merchant product

* FINERACT-2326: Missing user permission for Capitalized Income and Buydown fee

* FINERACT-2181: Update dependency node to v22

* FINERACT-2181: Update dependency com.puppycrawl.tools:checkstyle to v11

* FINERACT-2326: Fix UserLoanPermissionTest

* FINERACT-2326: Use Hibernate Validator

* FINERACT-2232: DeferredIncomeApi as CapitalizedIncomeApi

* FINERACT-2326: Introduce FineractProgressiveLoanBeanConfiguration to allow conditionally register beans in `fineract-progressive-loan` module

* FINERACT-2326: Rework business date validation and dto handling

* FINERACT-2233: Rework journal entry handling logic in Loan module

* FINERACT-2279: Add contract termination documentation

* FINERACT-1981: Reschedule loan with interest rate change from zero breaks repayment schedule and loan status to OVERPAID

* FINERACT-1981: Reschedule loan with interest rate change from zero breaks repayment schedule and loan status to OVERPAID - E2E tests

* FINERACT-2312: Adjustment to savings account products by adding a new accounting account interest receivables account. (apache#4876)

* FINERACT-2312: Accruals added for savings accounts (apache#4885)

* added e2e tests for validation of progressive Loan schedule handling - Reschedule installment (Extend repayment period)

* FINERACT-1981: Progressive Loan schedule handling - Reschedule installment (Extend repayment period)

* FINERACT-2330: Buy-Down fees adjustment Acct for non merchant product

* FINERACT-2330: added e2e tests for buy down fee for non-merchant

* FINERACT-2327: when Interest Refund was created manually, we should only return the newly created Interest Refund transaction identifiers in the result.

* FINERACT-2317: Fix updating the available disbursed amount to zero after loan approval

* FINERACT-2317: added e2e tests for update available disb amount validation with zero value

* FINERACT-2326: Backdated loan charge-off accrual fix

* FINERACT-1926: Add previous owner to ExternalAssetOwnerTransfer

* FINERACT-1926: added e2e tests for asset owner event changes with previous owner

* Bump actions/setup-java from 4.7.1 to 5.0.0

Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.7.1 to 5.0.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](actions/setup-java@c5195ef...dded088)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* FINERACT-2337 Fix docker publish for tags

* FINERACT-2349: final 1.12.1 release doc updates

Tidy up docs post-1.12.1 release, alongside updates to https://cwiki.apache.org/confluence/display/FINERACT/

* FINERACT-2326: Deregister static mocks

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jose Alberto Hernandez <alberto@black-box.local>
Co-authored-by: Soma Sörös <soma.soros@dpc.hu>
Co-authored-by: Mend Renovate <bot@renovateapp.com>
Co-authored-by: mariiaKraievska <riaskay3@gmail.com>
Co-authored-by: Adam Saghy <adamsaghy@gmail.com>
Co-authored-by: Oleksii Novikov <alexey.novikov@onix-systems.com>
Co-authored-by: Peter Kovacs <peter.kovacs@dpc.hu>
Co-authored-by: 04Gomez <232241024@alumnos.utn.edu.mx>
Co-authored-by: Christopher Sayhaed Giron Vega <87887001+sayhaed@users.noreply.github.com>
Co-authored-by: Rustam Zeinalov <truezeynalov@gmail.com>
Co-authored-by: MarianaDmytrivBinariks <mdmytriv@binariks.com>
Co-authored-by: Attila Budai <budai.attila.istvan@gmail.com>
Co-authored-by: adam.magyari <magyari.adam96@gmail.com>
Co-authored-by: Arun K <javamak@gmail.com>
Co-authored-by: Adam Monsen <haircut@gmail.com>
Aman-Mittal pushed a commit to Aman-Mittal/fineract that referenced this pull request Aug 24, 2025
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.

6 participants