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]
