Repository navigation
Bug 651508: [29.0] ICM 51000002083463: Close Income Statement duplicates or omits mixed LCY/USD amounts with Balance closing, with and without global dimensions - #12769
Conversation
Backport-Source: github:#11894 Backport-Target: BCApps:releases/29.0 Backport-Path-Set: 619360cade099740fe14264a176158d22de189784300f6b8c31790e455439333
Good Sense Reviewer - Round 1Recommendation: AcceptWhat this PR doesThis backport fixes Close Income Statement when blank and nonblank source-currency groups are interleaved in G/L entry order. It replaces positional row skipping with a per-account set that processes each filtered group once, and it sums the source-currency amount and VAT amount for the complete group. The group identity keeps the existing source-currency, business-unit, and selected-dimension filters. It is reset for each G/L account, so later records from the same group are skipped without losing other groups. The report logic is aligned across W1, ES, and IT, and the tests cover exact closing totals, dimensions, retained earnings, posting, repeated closing, and source-currency totals. Problem-solution fitFit: Strong The change directly removes the assumption that filtered source-currency entries are contiguous. It covers both the duplicated or omitted closing amounts and the incomplete source-currency totals that can affect later closing runs. SuggestionsNone. Risk assessment and necessityRisk: This is a financially sensitive year-end closing path. The change is limited to grouping and amount aggregation, changes no public or event surface, matches the validated mainline patch, and has focused regression coverage in the affected regional layers. The current build has no failing checks, although a small number of test jobs were still running at review time. Necessity: Without this change, interleaved currency groups can create incorrect income-statement and retained-earnings amounts. A targeted backport is justified because the defect affects posted financial closing results and the implementation preserves the existing grouping criteria.
|
Create an isolated source currency with a deterministic 0.25 exchange rate effective from the fiscal-year start, removing dependency on demo USD rates. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 77a301b0-00ce-45a1-b98d-b8e078f1adaa
Good Sense Reviewer - Round 2Recommendation: AcceptWhat this PR doesThe new commit makes the mixed-currency regression tests independent of demo currency data. Each fixture now creates its own source currency and a deterministic exchange rate effective from the fiscal-year start, and the test descriptions no longer assume a specific currency code. The rate covers every posting date used by the scenarios and matches the explicit source-currency amounts set by the posting helper. The W1, CH, and IT test changes are identical, and the production report logic is unchanged since round 1. Status of previous suggestionsNo suggestions were raised in round 1. New observations (commits since round 1)None. Risk assessment and necessityRisk: This remains a financially sensitive year-end closing path, but the new commit changes only deterministic test setup. The same patch is present in all three test copies. No current check reports a failure; 142 have passed and 23 are still running. Necessity: The test isolation is needed because relying on a pre-existing named currency and its demo exchange rates can make the regression tests environment-dependent. The production fix remains necessary to prevent incorrect closing and retained-earnings amounts.
|
Align the localized request-page value queue and use the retained earnings account selected by the IT report. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: c30597be-a58b-4f56-8e03-a2d16659ef63 (cherry picked from commit 1deed91)
Good Sense Reviewer - Round 3Recommendation: AcceptWhat this PR doesThe latest commit fixes the Italy test adaptation for the localized Close Income Statement request page. The new scenarios now queue values for the balancing, net-profit, and net-loss fields in the order consumed by the handler, and they use an account from the retained-earnings category for the expected balance line. The change is limited to the Italy test code. It matches the localized report fields, keeps the production fix unchanged, and preserves the test intent from the other country versions. Status of previous suggestionsNo suggestions were raised in round 2. New observations (commits since round 2)None. Risk assessment and necessityRisk: This remains a financially sensitive year-end closing path, but the latest commit changes only localized test setup. The request-page queue now matches the Italy-specific handler, the account lookup matches the report's retained-earnings selection rule, and the patch is identical to the corresponding mainline fix. No public or production behavior changed in this round. Necessity: The Italy tests need localized request-page inputs and the account that the localized report uses for the balance entry. Without this adjustment, the backport's regression coverage can fail for test-setup reasons instead of validating the closing calculation.
|
Use the account category totaling filter instead of filtering on fields without keys. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8716f85d-9b36-4a18-9a38-10f368725094
Good Sense Reviewer - Round 4Recommendation: AcceptWhat this PR doesThe latest commit changes only the Italy regression-test lookup for the retained-earnings account. It now scans the account categories and uses each matching category's generated G/L account filter instead of filtering directly on classification fields that have no supporting key. The resulting helper is identical to the source PR. It returns an account assigned to an Equity / Retained Earnings category, keeps the localized request-page setup intact, and does not change the production closing logic reviewed in the earlier rounds. Status of previous suggestionsNo suggestions were raised in round 3. New observations (commits since round 3)None. Risk assessment and necessityRisk: This remains a financially sensitive year-end closing scenario, but the new commit is limited to test setup. The category filter is generated from the accounts assigned to that category, the backport matches the source change, and no production or public surface changed. CI has no reported failure, although several build jobs are still running. Necessity: The localized regression tests need a reliable retained-earnings account lookup. Using the category's account filter avoids depending on unsupported lookup keys while preserving the test's intent to exercise the account accepted by the report.
|
Good Sense Reviewer - Round 5Recommendation: AcceptWhat this PR doesThis backport fixes incorrect year-end closing amounts when blank and nonblank source-currency groups are interleaved. The latest commit explicitly loads the G/L entry fields used by the W1, Spain, and Italy reports, uses the standard currency helper in the regression fixtures, and corrects Italy's Details-mode test setup and balancing checks. The field list covers the amounts, source-currency values, business unit, and dimensions used by grouping and journal creation. It leaves the grouping and posting decisions unchanged. Italy's request-page choices and assertions now follow its localized retained-earnings balancing behavior. Problem-solution fitFit: Strong Processing each currency group once addresses the duplicate and omitted amounts. The tests check exact closing totals, balanced journals, selected dimensions, and zero income-account balances after posting; the latest changes preserve those checks. Status of previous suggestionsNo suggestions were raised in round 4. New observations (commits since round 4)None. Risk assessment and necessityRisk: Year-end closing is financially sensitive, but this incremental change is narrow. The three BaseApp report implementations remain aligned on field loading, and the localized test handlers preserve their distinct Balance/Details behavior. No public procedure or event signature changes. Both independent review samples found no new issue. The current CI reports 166 successful checks and two skipped checks; these include app and unit-test builds, not proof that the regression tests ran. No local AL build or runtime test was executed during this review. Necessity: Without the grouping fix, interleaved source currencies can transfer the wrong amounts to retained earnings and leave income accounts incorrectly closed. Explicit field loading and reliable localized fixtures support that fix without broadening its production scope.
|
Backport of #11894 for AB#651508