Victor Romero created FINERACT-2818:
---------------------------------------
Summary: Quarterly and half-year posting skip an equal period-end
date
Key: FINERACT-2818
URL: https://issues.apache.org/jira/browse/FINERACT-2818
Project: Apache Fineract
Issue Type: Bug
Reporter: Victor Romero
Reported by Khamit
Quarterly and half-year posting skip an equal period-end date
Hello Fineract developers,
I reproduced a standard savings posting calendar defect on develop
e4474a0f4a4c65a75e7758e47db1fd277e5fcfef. SavingsHelper.java is identical in
tag 1.15.0.
Call SavingsHelper.determineInterestPostingPeriods with start=upTo=2025-03-31,
QUATERLY, financialYearBeginningMonth=1 and an empty manual-posting list. The
returned first interval ends 2025-06-30 instead of 2025-03-31. Under normal
next-day posting, the first posting is therefore scheduled for July 1 instead
of April 1. BIANNUAL with start=2025-06-30 similarly skips to December 31.
Both branches compare their boundary with strict isAfter. Accepting equality
fixes the boundary selection. The final interval intentionally extending beyond
upTo is not the issue here; the nearest valid boundary is skipped only for an
equal start date.
The native suite has 435 cases (all fiscal start months, leap/common years,
boundary neighbors and daily/monthly/annual controls). The original source
fails precisely the 144 equality cases. The production SavingsAccount calls
this helper with a calculation start that normally falls back to activation
date. I have not run an HTTP/database account reproduction or measured customer
loss.
I prepared a minimal patch, the native JUnit suite, input/output vectors and
logs. The scoped duplicate search found related anniversary-date issues but no
exact match. Could you create or point me to the appropriate Jira issue for a
PR?
The correction passes all 435 new tests and all nine existing anniversary
tests. Spotless and Checkstyle main/test checks pass.
Attachments: a detailed report with reproduction commands, a source-only patch,
a patch including the native JUnit tests, and JSON test vectors.
Regards,
Khamit
--
This message was sent by Atlassian Jira
(v8.20.10#820010)