alberto-art3ch commented on PR #6546:
URL: https://github.com/apache/fineract/pull/6546#issuecomment-6389442141

   > @bharathcgowda before merge, please confirm (or update the spec page to 
match) three deliberate deviations from spec v4: (1) first repayment day is 
1–27, not 1–28, because 28 & Last Day collide on 28 Feb in non-leap years (Rule 
3); (2) the second day accepts 29 and 30, falling back to the last day in 
shorter months (Rule 2 allows only 2–28 or Last Day); (3) re-aging rejects the 
`SEMI_MONTHLY` frequency, and loans synced to a meeting calendar aren't 
supported. @alberto-art3ch please open the follow-up ticket for the loan-only 
frequency type and link it here, and update the JIRA summary from "Bi Monthly" 
to "Semi-Monthly".
   
   @adamsaghy thanks. Confirming the three deviations from spec v4 as 
deliberate; the code, the fineract-doc chapter and the Swagger descriptions all 
state them the same way:
   
   1. First day 1–27. The second day is capped at the length of the month, so 
with a first day of 28 every valid second day (29, 30, 31/Last Day) falls on 
the 28th in a non-leap February and both repayments of that month would land on 
the same date, which Rule 3 forbids. That includes the spec's own "28 & Last 
Day" pair, so 27 is the highest first day that keeps the two dates distinct in 
every month (SemiMonthlyScheduleDates.MAX_FIRST_DAY_OF_MONTH, chapter section 
"Why the first day stops at 27").
   2. Second day 29 and 30. Accepted and resolved to the last day of shorter 
months, the same way 31 resolves to the last day; the recurrence rule uses 
BYSETPOS=1,-1 so the rest/compounding dates match the due dates. Rule 2 only 
allows 2–28 or Last Day, so this is a superset of the spec.
   3. Re-aging and meeting calendars. Re-age and re-age preview accept DAYS, 
WEEKS, MONTHS and YEARS and reject SEMI_MONTHLY with 400, since re-aging 
derives due dates from a period length; a semi-monthly loan can still be 
re-aged with one of those. A semi-monthly loan with a calendarId is rejected 
with 400 because meeting calendars have no semi-monthly recurrence. Both are 
listed under "Limitations" in the chapter.
   
   @bharathcgowda if you update the spec page, the chapter at 
fineract-doc/src/docs/en/chapters/features/semi-monthly-repayment-frequency.adoc
 has the wording for all three.
   
   Follow-up ticket for the loan-only frequency type: FINERACT-2992 
(https://issues.apache.org/jira/browse/FINERACT-2992). It keeps the persisted 
values (0–3 and 6) so it needs no migration and no API change; it retypes 
repaymentPeriodFrequencyType across the loan domain and removes SEMI_MONTHLY 
from PeriodFrequencyType together with the dummy branches in savings, deposits, 
shares and interest rate charts.
   
   JIRA summary of FINERACT-1322 renamed from "Bi Monthly" to "Semi-Monthly".


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to