From f8673f6454e704221648dbb0ff151d67f699398c Mon Sep 17 00:00:00 2001 From: v-sanjmaurya Date: Wed, 12 Aug 2026 17:11:20 +0530 Subject: [PATCH 01/11] Inital commit --- .../Journal/RecurringGeneralJournal.Page.al | 23 +++- .../ERMGeneralJournalUT.Codeunit.al | 126 ++++++++++++++++++ 2 files changed, 148 insertions(+), 1 deletion(-) diff --git a/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index 27a5fde1c31..f3463f87c04 100644 --- a/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -80,9 +80,22 @@ page 283 "Recurring General Journal" IsDimensionBalanceLine(); end; } - field("Recurring Frequency"; Rec."Recurring Frequency") + field("Recurring Frequency"; RecurringFrequency) { ApplicationArea = Suite; + Caption = 'Recurring Frequency'; + ToolTip = 'Specifies a recurring frequency if the Recurring field of the General Journal Template table indicates the journal is recurring.'; + + trigger OnValidate() + var + RecurringFrequencyDateFormula: DateFormula; + begin + // Bound to Text so Edit in Excel exports localized DateFormula tokens (e.g. +1T) instead of invariant (+1D). + if RecurringFrequency <> '' then + Evaluate(RecurringFrequencyDateFormula, RecurringFrequency); + Rec.Validate("Recurring Frequency", RecurringFrequencyDateFormula); + SetRecurringFrequency(); + end; } field("Posting Date"; Rec."Posting Date") { @@ -840,6 +853,7 @@ page 283 "Recurring General Journal" trigger OnAfterGetRecord() begin Rec.ShowShortcutDimCode(ShortcutDimCode); + SetRecurringFrequency(); end; trigger OnInit() @@ -856,6 +870,7 @@ page 283 "Recurring General Journal" UpdateBalance(); Rec.SetUpNewLine(xRec, Balance, BelowxRec); Clear(ShortcutDimCode); + SetRecurringFrequency(); end; trigger OnInsertRecord(BelowxRec: Boolean): Boolean @@ -915,6 +930,7 @@ page 283 "Recurring General Journal" VATDateEnabled: Boolean; BackgroundErrorCheck: Boolean; ShowAllLinesEnabled: Boolean; + RecurringFrequency: Text; protected var GenJnlManagement: Codeunit GenJnlManagement; @@ -946,6 +962,11 @@ page 283 "Recurring General Journal" NumberOfRecords := Rec.Count(); end; + local procedure SetRecurringFrequency() + begin + RecurringFrequency := Format(Rec."Recurring Frequency"); + end; + local procedure SelectJournalWithError() var JnlSelected: Boolean; diff --git a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 6847e21b84d..76137486539 100644 --- a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -36,6 +36,9 @@ codeunit 134920 "ERM General Journal UT" VATAmountLCYErr: Label 'Invalid VAT Amount LCY'; GenJouranlLinePostedMsg: Label 'The journal lines were successfully posted.'; NoSeriesLineStartDateErr: Label 'Starting Date not updated.'; + ValidRecurringFrequencyTok: Label '1M', Locked = true; + InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; + DateFormulaTimeUnitErr: Label 'should include a time unit', Locked = true; [Test] [Scope('OnPrem')] @@ -6113,6 +6116,129 @@ codeunit 134920 "ERM General Journal UT" TestPageGeneralJournal.Close(); end; + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyDisplaysFormattedText() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + RecurringFrequency: DateFormula; + begin + // [SCENARIO] The Recurring Frequency field shows the formatted (localized) date formula that Edit in Excel exports. + Initialize(); + + // [GIVEN] A recurring journal line with Recurring Frequency 1M + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + + // [WHEN] The Recurring General Journal page is opened on the line + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [THEN] The field displays the formatted date formula + Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, 'Recurring Frequency should be displayed as the formatted date formula.'); + RecurringGeneralJournal.Close(); + end; + + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyAcceptsValidDateFormula() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + ExpectedRecurringFrequency: DateFormula; + begin + // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. + Initialize(); + Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok); + + // [GIVEN] A recurring journal line open on the Recurring General Journal page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] A valid recurring frequency is entered + RecurringGeneralJournal."Recurring Frequency".SetValue(ValidRecurringFrequencyTok); + RecurringGeneralJournal.Close(); + + // [THEN] The date formula is persisted on the line + GenJournalLine.Find(); + Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); + end; + + [Test] + [Scope('OnPrem')] + procedure EmptyRecurringFrequencyClearsValue() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + RecurringFrequency: DateFormula; + begin + // [SCENARIO] Clearing the Recurring Frequency field empties the date formula without error. + Initialize(); + + // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] The recurring frequency is cleared + RecurringGeneralJournal."Recurring Frequency".SetValue(''); + RecurringGeneralJournal.Close(); + + // [THEN] The recurring frequency on the line is empty + GenJournalLine.Find(); + Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), 'The recurring frequency should be cleared.'); + end; + + [Test] + [Scope('OnPrem')] + procedure InvalidRecurringFrequencyRaisesError() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + begin + // [SCENARIO] Entering an invalid date formula text raises a descriptive error. + Initialize(); + + // [GIVEN] A recurring journal line open on the Recurring General Journal page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] An invalid recurring frequency is entered + asserterror RecurringGeneralJournal."Recurring Frequency".SetValue(InvalidRecurringFrequencyTok); + + // [THEN] A date formula validation error is raised + Assert.ExpectedError(DateFormulaTimeUnitErr); + end; + + local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") + begin + LibraryERM.CreateGenJournalTemplate(GenJournalTemplate); + GenJournalTemplate.Validate(Type, GenJournalTemplate.Type::General); + GenJournalTemplate.Modify(true); + LibraryERM.CreateGenJournalBatch(GenJournalBatch, GenJournalTemplate.Name); + LibraryERM.CreateGeneralJnlLine( + GenJournalLine, GenJournalTemplate.Name, GenJournalBatch.Name, GenJournalLine."Document Type"::" ", + GenJournalLine."Account Type"::"G/L Account", LibraryERM.CreateGLAccountNo(), 0); + GenJournalLine.Validate("Document No.", LibraryUtility.GenerateGUID()); + GenJournalLine.Modify(true); + end; + local procedure Initialize() begin LibrarySetupStorage.Restore(); From 8d90bd3f2bb156c6fccd5782249eddb8fdd8158f Mon Sep 17 00:00:00 2001 From: v-sanjmaurya Date: Wed, 12 Aug 2026 17:41:00 +0530 Subject: [PATCH 02/11] Invoke MiApp --- .../Journal/RecurringGeneralJournal.Page.al | 23 +++- .../ERMGeneralJournalUT.Codeunit.al | 126 ++++++++++++++++++ .../ERMGeneralJournalUT.Codeunit.al | 126 ++++++++++++++++++ .../ERMGeneralJournalUT.Codeunit.al | 126 ++++++++++++++++++ .../Journal/RecurringGeneralJournal.Page.al | 23 +++- .../ERMGeneralJournalUT.Codeunit.al | 126 ++++++++++++++++++ .../Journal/RecurringGeneralJournal.Page.al | 23 +++- .../ERMGeneralJournalUT.Codeunit.al | 126 ++++++++++++++++++ .../Journal/RecurringGeneralJournal.Page.al | 23 +++- 9 files changed, 718 insertions(+), 4 deletions(-) diff --git a/src/Layers/APAC/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/APAC/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index d266b7cd646..27d9af9f715 100644 --- a/src/Layers/APAC/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/APAC/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -80,9 +80,22 @@ page 283 "Recurring General Journal" IsDimensionBalanceLine(); end; } - field("Recurring Frequency"; Rec."Recurring Frequency") + field("Recurring Frequency"; RecurringFrequency) { ApplicationArea = Suite; + Caption = 'Recurring Frequency'; + ToolTip = 'Specifies a recurring frequency if the Recurring field of the General Journal Template table indicates the journal is recurring.'; + + trigger OnValidate() + var + RecurringFrequencyDateFormula: DateFormula; + begin + // Bound to Text so Edit in Excel exports localized DateFormula tokens (e.g. +1T) instead of invariant (+1D). + if RecurringFrequency <> '' then + Evaluate(RecurringFrequencyDateFormula, RecurringFrequency); + Rec.Validate("Recurring Frequency", RecurringFrequencyDateFormula); + SetRecurringFrequency(); + end; } field("Posting Date"; Rec."Posting Date") { @@ -858,6 +871,7 @@ page 283 "Recurring General Journal" trigger OnAfterGetRecord() begin Rec.ShowShortcutDimCode(ShortcutDimCode); + SetRecurringFrequency(); end; trigger OnInit() @@ -874,6 +888,7 @@ page 283 "Recurring General Journal" UpdateBalance(); Rec.SetUpNewLine(xRec, Balance, BelowxRec); Clear(ShortcutDimCode); + SetRecurringFrequency(); end; trigger OnInsertRecord(BelowxRec: Boolean): Boolean @@ -934,6 +949,7 @@ page 283 "Recurring General Journal" VATDateEnabled: Boolean; BackgroundErrorCheck: Boolean; ShowAllLinesEnabled: Boolean; + RecurringFrequency: Text; protected var GenJnlManagement: Codeunit GenJnlManagement; @@ -965,6 +981,11 @@ page 283 "Recurring General Journal" NumberOfRecords := Rec.Count(); end; + local procedure SetRecurringFrequency() + begin + RecurringFrequency := Format(Rec."Recurring Frequency"); + end; + local procedure SelectJournalWithError() var JnlSelected: Boolean; diff --git a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index fe0737f731c..d1b6f0e35a5 100644 --- a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -36,6 +36,9 @@ codeunit 134920 "ERM General Journal UT" VATAmountLCYErr: Label 'Invalid VAT Amount LCY'; GenJouranlLinePostedMsg: Label 'The journal lines were successfully posted.'; NoSeriesLineStartDateErr: Label 'Starting Date not updated.'; + ValidRecurringFrequencyTok: Label '1M', Locked = true; + InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; + DateFormulaTimeUnitErr: Label 'should include a time unit', Locked = true; [Test] [Scope('OnPrem')] @@ -6114,6 +6117,129 @@ codeunit 134920 "ERM General Journal UT" TestPageGeneralJournal.Close(); end; + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyDisplaysFormattedText() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + RecurringFrequency: DateFormula; + begin + // [SCENARIO] The Recurring Frequency field shows the formatted (localized) date formula that Edit in Excel exports. + Initialize(); + + // [GIVEN] A recurring journal line with Recurring Frequency 1M + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + + // [WHEN] The Recurring General Journal page is opened on the line + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [THEN] The field displays the formatted date formula + Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, 'Recurring Frequency should be displayed as the formatted date formula.'); + RecurringGeneralJournal.Close(); + end; + + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyAcceptsValidDateFormula() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + ExpectedRecurringFrequency: DateFormula; + begin + // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. + Initialize(); + Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok); + + // [GIVEN] A recurring journal line open on the Recurring General Journal page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] A valid recurring frequency is entered + RecurringGeneralJournal."Recurring Frequency".SetValue(ValidRecurringFrequencyTok); + RecurringGeneralJournal.Close(); + + // [THEN] The date formula is persisted on the line + GenJournalLine.Find(); + Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); + end; + + [Test] + [Scope('OnPrem')] + procedure EmptyRecurringFrequencyClearsValue() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + RecurringFrequency: DateFormula; + begin + // [SCENARIO] Clearing the Recurring Frequency field empties the date formula without error. + Initialize(); + + // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] The recurring frequency is cleared + RecurringGeneralJournal."Recurring Frequency".SetValue(''); + RecurringGeneralJournal.Close(); + + // [THEN] The recurring frequency on the line is empty + GenJournalLine.Find(); + Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), 'The recurring frequency should be cleared.'); + end; + + [Test] + [Scope('OnPrem')] + procedure InvalidRecurringFrequencyRaisesError() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + begin + // [SCENARIO] Entering an invalid date formula text raises a descriptive error. + Initialize(); + + // [GIVEN] A recurring journal line open on the Recurring General Journal page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] An invalid recurring frequency is entered + asserterror RecurringGeneralJournal."Recurring Frequency".SetValue(InvalidRecurringFrequencyTok); + + // [THEN] A date formula validation error is raised + Assert.ExpectedError(DateFormulaTimeUnitErr); + end; + + local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") + begin + LibraryERM.CreateGenJournalTemplate(GenJournalTemplate); + GenJournalTemplate.Validate(Type, GenJournalTemplate.Type::General); + GenJournalTemplate.Modify(true); + LibraryERM.CreateGenJournalBatch(GenJournalBatch, GenJournalTemplate.Name); + LibraryERM.CreateGeneralJnlLine( + GenJournalLine, GenJournalTemplate.Name, GenJournalBatch.Name, GenJournalLine."Document Type"::" ", + GenJournalLine."Account Type"::"G/L Account", LibraryERM.CreateGLAccountNo(), 0); + GenJournalLine.Validate("Document No.", LibraryUtility.GenerateGUID()); + GenJournalLine.Modify(true); + end; + local procedure Initialize() begin LibrarySetupStorage.Restore(); diff --git a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 0d16fd2f48e..4bc2cc9572e 100644 --- a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -36,6 +36,9 @@ codeunit 134920 "ERM General Journal UT" VATAmountLCYErr: Label 'Invalid VAT Amount LCY'; GenJouranlLinePostedMsg: Label 'The journal lines were successfully posted.'; NoSeriesLineStartDateErr: Label 'Starting Date not updated.'; + ValidRecurringFrequencyTok: Label '1M', Locked = true; + InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; + DateFormulaTimeUnitErr: Label 'should include a time unit', Locked = true; [Test] [Scope('OnPrem')] @@ -5917,6 +5920,129 @@ codeunit 134920 "ERM General Journal UT" TestPageGeneralJournal.Close(); end; + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyDisplaysFormattedText() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + RecurringFrequency: DateFormula; + begin + // [SCENARIO] The Recurring Frequency field shows the formatted (localized) date formula that Edit in Excel exports. + Initialize(); + + // [GIVEN] A recurring journal line with Recurring Frequency 1M + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + + // [WHEN] The Recurring General Journal page is opened on the line + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [THEN] The field displays the formatted date formula + Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, 'Recurring Frequency should be displayed as the formatted date formula.'); + RecurringGeneralJournal.Close(); + end; + + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyAcceptsValidDateFormula() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + ExpectedRecurringFrequency: DateFormula; + begin + // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. + Initialize(); + Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok); + + // [GIVEN] A recurring journal line open on the Recurring General Journal page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] A valid recurring frequency is entered + RecurringGeneralJournal."Recurring Frequency".SetValue(ValidRecurringFrequencyTok); + RecurringGeneralJournal.Close(); + + // [THEN] The date formula is persisted on the line + GenJournalLine.Find(); + Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); + end; + + [Test] + [Scope('OnPrem')] + procedure EmptyRecurringFrequencyClearsValue() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + RecurringFrequency: DateFormula; + begin + // [SCENARIO] Clearing the Recurring Frequency field empties the date formula without error. + Initialize(); + + // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] The recurring frequency is cleared + RecurringGeneralJournal."Recurring Frequency".SetValue(''); + RecurringGeneralJournal.Close(); + + // [THEN] The recurring frequency on the line is empty + GenJournalLine.Find(); + Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), 'The recurring frequency should be cleared.'); + end; + + [Test] + [Scope('OnPrem')] + procedure InvalidRecurringFrequencyRaisesError() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + begin + // [SCENARIO] Entering an invalid date formula text raises a descriptive error. + Initialize(); + + // [GIVEN] A recurring journal line open on the Recurring General Journal page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] An invalid recurring frequency is entered + asserterror RecurringGeneralJournal."Recurring Frequency".SetValue(InvalidRecurringFrequencyTok); + + // [THEN] A date formula validation error is raised + Assert.ExpectedError(DateFormulaTimeUnitErr); + end; + + local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") + begin + LibraryERM.CreateGenJournalTemplate(GenJournalTemplate); + GenJournalTemplate.Validate(Type, GenJournalTemplate.Type::General); + GenJournalTemplate.Modify(true); + LibraryERM.CreateGenJournalBatch(GenJournalBatch, GenJournalTemplate.Name); + LibraryERM.CreateGeneralJnlLine( + GenJournalLine, GenJournalTemplate.Name, GenJournalBatch.Name, GenJournalLine."Document Type"::" ", + GenJournalLine."Account Type"::"G/L Account", LibraryERM.CreateGLAccountNo(), 0); + GenJournalLine.Validate("Document No.", LibraryUtility.GenerateGUID()); + GenJournalLine.Modify(true); + end; + local procedure Initialize() begin LibrarySetupStorage.Restore(); diff --git a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 8d946824c73..041e2a6d68d 100644 --- a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -36,6 +36,9 @@ codeunit 134920 "ERM General Journal UT" VATAmountLCYErr: Label 'Invalid VAT Amount LCY'; GenJouranlLinePostedMsg: Label 'The journal lines were successfully posted.'; NoSeriesLineStartDateErr: Label 'Starting Date not updated.'; + ValidRecurringFrequencyTok: Label '1M', Locked = true; + InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; + DateFormulaTimeUnitErr: Label 'should include a time unit', Locked = true; [Test] [Scope('OnPrem')] @@ -6113,6 +6116,129 @@ codeunit 134920 "ERM General Journal UT" TestPageGeneralJournal.Close(); end; + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyDisplaysFormattedText() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + RecurringFrequency: DateFormula; + begin + // [SCENARIO] The Recurring Frequency field shows the formatted (localized) date formula that Edit in Excel exports. + Initialize(); + + // [GIVEN] A recurring journal line with Recurring Frequency 1M + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + + // [WHEN] The Recurring General Journal page is opened on the line + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [THEN] The field displays the formatted date formula + Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, 'Recurring Frequency should be displayed as the formatted date formula.'); + RecurringGeneralJournal.Close(); + end; + + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyAcceptsValidDateFormula() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + ExpectedRecurringFrequency: DateFormula; + begin + // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. + Initialize(); + Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok); + + // [GIVEN] A recurring journal line open on the Recurring General Journal page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] A valid recurring frequency is entered + RecurringGeneralJournal."Recurring Frequency".SetValue(ValidRecurringFrequencyTok); + RecurringGeneralJournal.Close(); + + // [THEN] The date formula is persisted on the line + GenJournalLine.Find(); + Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); + end; + + [Test] + [Scope('OnPrem')] + procedure EmptyRecurringFrequencyClearsValue() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + RecurringFrequency: DateFormula; + begin + // [SCENARIO] Clearing the Recurring Frequency field empties the date formula without error. + Initialize(); + + // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] The recurring frequency is cleared + RecurringGeneralJournal."Recurring Frequency".SetValue(''); + RecurringGeneralJournal.Close(); + + // [THEN] The recurring frequency on the line is empty + GenJournalLine.Find(); + Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), 'The recurring frequency should be cleared.'); + end; + + [Test] + [Scope('OnPrem')] + procedure InvalidRecurringFrequencyRaisesError() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + begin + // [SCENARIO] Entering an invalid date formula text raises a descriptive error. + Initialize(); + + // [GIVEN] A recurring journal line open on the Recurring General Journal page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] An invalid recurring frequency is entered + asserterror RecurringGeneralJournal."Recurring Frequency".SetValue(InvalidRecurringFrequencyTok); + + // [THEN] A date formula validation error is raised + Assert.ExpectedError(DateFormulaTimeUnitErr); + end; + + local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") + begin + LibraryERM.CreateGenJournalTemplate(GenJournalTemplate); + GenJournalTemplate.Validate(Type, GenJournalTemplate.Type::General); + GenJournalTemplate.Modify(true); + LibraryERM.CreateGenJournalBatch(GenJournalBatch, GenJournalTemplate.Name); + LibraryERM.CreateGeneralJnlLine( + GenJournalLine, GenJournalTemplate.Name, GenJournalBatch.Name, GenJournalLine."Document Type"::" ", + GenJournalLine."Account Type"::"G/L Account", LibraryERM.CreateGLAccountNo(), 0); + GenJournalLine.Validate("Document No.", LibraryUtility.GenerateGUID()); + GenJournalLine.Modify(true); + end; + local procedure Initialize() begin LibrarySetupStorage.Restore(); diff --git a/src/Layers/ES/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/ES/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index 8f19236b0d6..fd23ac63448 100644 --- a/src/Layers/ES/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/ES/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -80,9 +80,22 @@ page 283 "Recurring General Journal" IsDimensionBalanceLine(); end; } - field("Recurring Frequency"; Rec."Recurring Frequency") + field("Recurring Frequency"; RecurringFrequency) { ApplicationArea = Suite; + Caption = 'Recurring Frequency'; + ToolTip = 'Specifies a recurring frequency if the Recurring field of the General Journal Template table indicates the journal is recurring.'; + + trigger OnValidate() + var + RecurringFrequencyDateFormula: DateFormula; + begin + // Bound to Text so Edit in Excel exports localized DateFormula tokens (e.g. +1T) instead of invariant (+1D). + if RecurringFrequency <> '' then + Evaluate(RecurringFrequencyDateFormula, RecurringFrequency); + Rec.Validate("Recurring Frequency", RecurringFrequencyDateFormula); + SetRecurringFrequency(); + end; } field("Posting Date"; Rec."Posting Date") { @@ -845,6 +858,7 @@ page 283 "Recurring General Journal" trigger OnAfterGetRecord() begin Rec.ShowShortcutDimCode(ShortcutDimCode); + SetRecurringFrequency(); end; trigger OnInit() @@ -861,6 +875,7 @@ page 283 "Recurring General Journal" UpdateBalance(); Rec.SetUpNewLine(xRec, Balance, BelowxRec); Clear(ShortcutDimCode); + SetRecurringFrequency(); end; trigger OnInsertRecord(BelowxRec: Boolean): Boolean @@ -920,6 +935,7 @@ page 283 "Recurring General Journal" VATDateEnabled: Boolean; BackgroundErrorCheck: Boolean; ShowAllLinesEnabled: Boolean; + RecurringFrequency: Text; protected var GenJnlManagement: Codeunit GenJnlManagement; @@ -951,6 +967,11 @@ page 283 "Recurring General Journal" NumberOfRecords := Rec.Count(); end; + local procedure SetRecurringFrequency() + begin + RecurringFrequency := Format(Rec."Recurring Frequency"); + end; + local procedure SelectJournalWithError() var JnlSelected: Boolean; diff --git a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 10881b430e7..61a218187c0 100644 --- a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -36,6 +36,9 @@ codeunit 134920 "ERM General Journal UT" VATAmountLCYErr: Label 'Invalid VAT Amount LCY'; GenJouranlLinePostedMsg: Label 'The journal lines were successfully posted.'; NoSeriesLineStartDateErr: Label 'Starting Date not updated.'; + ValidRecurringFrequencyTok: Label '1M', Locked = true; + InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; + DateFormulaTimeUnitErr: Label 'should include a time unit', Locked = true; [Test] [Scope('OnPrem')] @@ -6142,6 +6145,129 @@ codeunit 134920 "ERM General Journal UT" TestPageGeneralJournal.Close(); end; + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyDisplaysFormattedText() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + RecurringFrequency: DateFormula; + begin + // [SCENARIO] The Recurring Frequency field shows the formatted (localized) date formula that Edit in Excel exports. + Initialize(); + + // [GIVEN] A recurring journal line with Recurring Frequency 1M + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + + // [WHEN] The Recurring General Journal page is opened on the line + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [THEN] The field displays the formatted date formula + Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, 'Recurring Frequency should be displayed as the formatted date formula.'); + RecurringGeneralJournal.Close(); + end; + + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyAcceptsValidDateFormula() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + ExpectedRecurringFrequency: DateFormula; + begin + // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. + Initialize(); + Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok); + + // [GIVEN] A recurring journal line open on the Recurring General Journal page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] A valid recurring frequency is entered + RecurringGeneralJournal."Recurring Frequency".SetValue(ValidRecurringFrequencyTok); + RecurringGeneralJournal.Close(); + + // [THEN] The date formula is persisted on the line + GenJournalLine.Find(); + Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); + end; + + [Test] + [Scope('OnPrem')] + procedure EmptyRecurringFrequencyClearsValue() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + RecurringFrequency: DateFormula; + begin + // [SCENARIO] Clearing the Recurring Frequency field empties the date formula without error. + Initialize(); + + // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] The recurring frequency is cleared + RecurringGeneralJournal."Recurring Frequency".SetValue(''); + RecurringGeneralJournal.Close(); + + // [THEN] The recurring frequency on the line is empty + GenJournalLine.Find(); + Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), 'The recurring frequency should be cleared.'); + end; + + [Test] + [Scope('OnPrem')] + procedure InvalidRecurringFrequencyRaisesError() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + begin + // [SCENARIO] Entering an invalid date formula text raises a descriptive error. + Initialize(); + + // [GIVEN] A recurring journal line open on the Recurring General Journal page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] An invalid recurring frequency is entered + asserterror RecurringGeneralJournal."Recurring Frequency".SetValue(InvalidRecurringFrequencyTok); + + // [THEN] A date formula validation error is raised + Assert.ExpectedError(DateFormulaTimeUnitErr); + end; + + local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") + begin + LibraryERM.CreateGenJournalTemplate(GenJournalTemplate); + GenJournalTemplate.Validate(Type, GenJournalTemplate.Type::General); + GenJournalTemplate.Modify(true); + LibraryERM.CreateGenJournalBatch(GenJournalBatch, GenJournalTemplate.Name); + LibraryERM.CreateGeneralJnlLine( + GenJournalLine, GenJournalTemplate.Name, GenJournalBatch.Name, GenJournalLine."Document Type"::" ", + GenJournalLine."Account Type"::"G/L Account", LibraryERM.CreateGLAccountNo(), 0); + GenJournalLine.Validate("Document No.", LibraryUtility.GenerateGUID()); + GenJournalLine.Modify(true); + end; + local procedure Initialize() begin LibrarySetupStorage.Restore(); diff --git a/src/Layers/IT/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/IT/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index 0aa649ea27c..ee35f96a403 100644 --- a/src/Layers/IT/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/IT/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -80,9 +80,22 @@ page 283 "Recurring General Journal" IsDimensionBalanceLine(); end; } - field("Recurring Frequency"; Rec."Recurring Frequency") + field("Recurring Frequency"; RecurringFrequency) { ApplicationArea = Suite; + Caption = 'Recurring Frequency'; + ToolTip = 'Specifies a recurring frequency if the Recurring field of the General Journal Template table indicates the journal is recurring.'; + + trigger OnValidate() + var + RecurringFrequencyDateFormula: DateFormula; + begin + // Bound to Text so Edit in Excel exports localized DateFormula tokens (e.g. +1T) instead of invariant (+1D). + if RecurringFrequency <> '' then + Evaluate(RecurringFrequencyDateFormula, RecurringFrequency); + Rec.Validate("Recurring Frequency", RecurringFrequencyDateFormula); + SetRecurringFrequency(); + end; } field("Posting Date"; Rec."Posting Date") { @@ -845,6 +858,7 @@ page 283 "Recurring General Journal" trigger OnAfterGetRecord() begin Rec.ShowShortcutDimCode(ShortcutDimCode); + SetRecurringFrequency(); end; trigger OnInit() @@ -861,6 +875,7 @@ page 283 "Recurring General Journal" UpdateBalance(); Rec.SetUpNewLine(xRec, Balance, BelowxRec); Clear(ShortcutDimCode); + SetRecurringFrequency(); end; trigger OnInsertRecord(BelowxRec: Boolean): Boolean @@ -920,6 +935,7 @@ page 283 "Recurring General Journal" VATDateEnabled: Boolean; BackgroundErrorCheck: Boolean; ShowAllLinesEnabled: Boolean; + RecurringFrequency: Text; protected var GenJnlManagement: Codeunit GenJnlManagement; @@ -951,6 +967,11 @@ page 283 "Recurring General Journal" NumberOfRecords := Rec.Count(); end; + local procedure SetRecurringFrequency() + begin + RecurringFrequency := Format(Rec."Recurring Frequency"); + end; + local procedure SelectJournalWithError() var JnlSelected: Boolean; diff --git a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 2edfcb1223e..61b3932768c 100644 --- a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -36,6 +36,9 @@ codeunit 134920 "ERM General Journal UT" VATAmountLCYErr: Label 'Invalid VAT Amount LCY'; GenJouranlLinePostedMsg: Label 'The journal lines were successfully posted.'; NoSeriesLineStartDateErr: Label 'Starting Date not updated.'; + ValidRecurringFrequencyTok: Label '1M', Locked = true; + InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; + DateFormulaTimeUnitErr: Label 'should include a time unit', Locked = true; [Test] [Scope('OnPrem')] @@ -6113,6 +6116,129 @@ codeunit 134920 "ERM General Journal UT" TestPageGeneralJournal.Close(); end; + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyDisplaysFormattedText() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + RecurringFrequency: DateFormula; + begin + // [SCENARIO] The Recurring Frequency field shows the formatted (localized) date formula that Edit in Excel exports. + Initialize(); + + // [GIVEN] A recurring journal line with Recurring Frequency 1M + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + + // [WHEN] The Recurring General Journal page is opened on the line + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [THEN] The field displays the formatted date formula + Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, 'Recurring Frequency should be displayed as the formatted date formula.'); + RecurringGeneralJournal.Close(); + end; + + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyAcceptsValidDateFormula() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + ExpectedRecurringFrequency: DateFormula; + begin + // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. + Initialize(); + Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok); + + // [GIVEN] A recurring journal line open on the Recurring General Journal page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] A valid recurring frequency is entered + RecurringGeneralJournal."Recurring Frequency".SetValue(ValidRecurringFrequencyTok); + RecurringGeneralJournal.Close(); + + // [THEN] The date formula is persisted on the line + GenJournalLine.Find(); + Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); + end; + + [Test] + [Scope('OnPrem')] + procedure EmptyRecurringFrequencyClearsValue() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + RecurringFrequency: DateFormula; + begin + // [SCENARIO] Clearing the Recurring Frequency field empties the date formula without error. + Initialize(); + + // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] The recurring frequency is cleared + RecurringGeneralJournal."Recurring Frequency".SetValue(''); + RecurringGeneralJournal.Close(); + + // [THEN] The recurring frequency on the line is empty + GenJournalLine.Find(); + Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), 'The recurring frequency should be cleared.'); + end; + + [Test] + [Scope('OnPrem')] + procedure InvalidRecurringFrequencyRaisesError() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + begin + // [SCENARIO] Entering an invalid date formula text raises a descriptive error. + Initialize(); + + // [GIVEN] A recurring journal line open on the Recurring General Journal page + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + + // [WHEN] An invalid recurring frequency is entered + asserterror RecurringGeneralJournal."Recurring Frequency".SetValue(InvalidRecurringFrequencyTok); + + // [THEN] A date formula validation error is raised + Assert.ExpectedError(DateFormulaTimeUnitErr); + end; + + local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") + begin + LibraryERM.CreateGenJournalTemplate(GenJournalTemplate); + GenJournalTemplate.Validate(Type, GenJournalTemplate.Type::General); + GenJournalTemplate.Modify(true); + LibraryERM.CreateGenJournalBatch(GenJournalBatch, GenJournalTemplate.Name); + LibraryERM.CreateGeneralJnlLine( + GenJournalLine, GenJournalTemplate.Name, GenJournalBatch.Name, GenJournalLine."Document Type"::" ", + GenJournalLine."Account Type"::"G/L Account", LibraryERM.CreateGLAccountNo(), 0); + GenJournalLine.Validate("Document No.", LibraryUtility.GenerateGUID()); + GenJournalLine.Modify(true); + end; + local procedure Initialize() begin LibrarySetupStorage.Restore(); diff --git a/src/Layers/RU/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/RU/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index 1716b718197..c1d7ece4f50 100644 --- a/src/Layers/RU/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/RU/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -81,9 +81,22 @@ page 283 "Recurring General Journal" IsDimensionBalanceLine(); end; } - field("Recurring Frequency"; Rec."Recurring Frequency") + field("Recurring Frequency"; RecurringFrequency) { ApplicationArea = Suite; + Caption = 'Recurring Frequency'; + ToolTip = 'Specifies a recurring frequency if the Recurring field of the General Journal Template table indicates the journal is recurring.'; + + trigger OnValidate() + var + RecurringFrequencyDateFormula: DateFormula; + begin + // Bound to Text so Edit in Excel exports localized DateFormula tokens (e.g. +1T) instead of invariant (+1D). + if RecurringFrequency <> '' then + Evaluate(RecurringFrequencyDateFormula, RecurringFrequency); + Rec.Validate("Recurring Frequency", RecurringFrequencyDateFormula); + SetRecurringFrequency(); + end; } field("Posting Date"; Rec."Posting Date") { @@ -949,6 +962,7 @@ page 283 "Recurring General Journal" begin Rec.ShowShortcutDimCode(ShortcutDimCode); GetAccSchedInfo(); + SetRecurringFrequency(); end; trigger OnInit() @@ -965,6 +979,7 @@ page 283 "Recurring General Journal" UpdateBalance(); Rec.SetUpNewLine(xRec, Balance, BelowxRec); Clear(ShortcutDimCode); + SetRecurringFrequency(); end; trigger OnInsertRecord(BelowxRec: Boolean): Boolean @@ -1028,6 +1043,7 @@ page 283 "Recurring General Journal" VATDateEnabled: Boolean; BackgroundErrorCheck: Boolean; ShowAllLinesEnabled: Boolean; + RecurringFrequency: Text; protected var GenJnlManagement: Codeunit GenJnlManagement; @@ -1059,6 +1075,11 @@ page 283 "Recurring General Journal" NumberOfRecords := Rec.Count(); end; + local procedure SetRecurringFrequency() + begin + RecurringFrequency := Format(Rec."Recurring Frequency"); + end; + local procedure SelectJournalWithError() var JnlSelected: Boolean; From f1e0affe0915b7c17cfec6bad12b9643fdfc5497 Mon Sep 17 00:00:00 2001 From: v-sanjmaurya Date: Wed, 12 Aug 2026 17:54:50 +0530 Subject: [PATCH 03/11] Remove the comment --- .../GeneralLedger/Journal/RecurringGeneralJournal.Page.al | 1 - .../GeneralLedger/Journal/RecurringGeneralJournal.Page.al | 1 - .../GeneralLedger/Journal/RecurringGeneralJournal.Page.al | 1 - .../GeneralLedger/Journal/RecurringGeneralJournal.Page.al | 1 - .../GeneralLedger/Journal/RecurringGeneralJournal.Page.al | 1 - 5 files changed, 5 deletions(-) diff --git a/src/Layers/APAC/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/APAC/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index 27d9af9f715..9611da23bc2 100644 --- a/src/Layers/APAC/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/APAC/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -90,7 +90,6 @@ page 283 "Recurring General Journal" var RecurringFrequencyDateFormula: DateFormula; begin - // Bound to Text so Edit in Excel exports localized DateFormula tokens (e.g. +1T) instead of invariant (+1D). if RecurringFrequency <> '' then Evaluate(RecurringFrequencyDateFormula, RecurringFrequency); Rec.Validate("Recurring Frequency", RecurringFrequencyDateFormula); diff --git a/src/Layers/ES/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/ES/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index fd23ac63448..62b92ec5787 100644 --- a/src/Layers/ES/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/ES/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -90,7 +90,6 @@ page 283 "Recurring General Journal" var RecurringFrequencyDateFormula: DateFormula; begin - // Bound to Text so Edit in Excel exports localized DateFormula tokens (e.g. +1T) instead of invariant (+1D). if RecurringFrequency <> '' then Evaluate(RecurringFrequencyDateFormula, RecurringFrequency); Rec.Validate("Recurring Frequency", RecurringFrequencyDateFormula); diff --git a/src/Layers/IT/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/IT/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index ee35f96a403..a5cbede2eb9 100644 --- a/src/Layers/IT/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/IT/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -90,7 +90,6 @@ page 283 "Recurring General Journal" var RecurringFrequencyDateFormula: DateFormula; begin - // Bound to Text so Edit in Excel exports localized DateFormula tokens (e.g. +1T) instead of invariant (+1D). if RecurringFrequency <> '' then Evaluate(RecurringFrequencyDateFormula, RecurringFrequency); Rec.Validate("Recurring Frequency", RecurringFrequencyDateFormula); diff --git a/src/Layers/RU/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/RU/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index c1d7ece4f50..e345243f8d4 100644 --- a/src/Layers/RU/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/RU/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -91,7 +91,6 @@ page 283 "Recurring General Journal" var RecurringFrequencyDateFormula: DateFormula; begin - // Bound to Text so Edit in Excel exports localized DateFormula tokens (e.g. +1T) instead of invariant (+1D). if RecurringFrequency <> '' then Evaluate(RecurringFrequencyDateFormula, RecurringFrequency); Rec.Validate("Recurring Frequency", RecurringFrequencyDateFormula); diff --git a/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index f3463f87c04..74d157ed4c5 100644 --- a/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -90,7 +90,6 @@ page 283 "Recurring General Journal" var RecurringFrequencyDateFormula: DateFormula; begin - // Bound to Text so Edit in Excel exports localized DateFormula tokens (e.g. +1T) instead of invariant (+1D). if RecurringFrequency <> '' then Evaluate(RecurringFrequencyDateFormula, RecurringFrequency); Rec.Validate("Recurring Frequency", RecurringFrequencyDateFormula); From 55304eac642449b3ea4081ca9176e8f565af0656 Mon Sep 17 00:00:00 2001 From: v-sanjmaurya Date: Wed, 12 Aug 2026 22:17:35 +0530 Subject: [PATCH 04/11] FIx the BB fail Issue --- .../Journal/RecurringGeneralJournal.Page.al | 4 +++- .../General Journal/ERMGeneralJournalUT.Codeunit.al | 10 +++++----- .../General Journal/ERMGeneralJournalUT.Codeunit.al | 10 +++++----- .../General Journal/ERMGeneralJournalUT.Codeunit.al | 10 +++++----- .../Journal/RecurringGeneralJournal.Page.al | 4 +++- .../General Journal/ERMGeneralJournalUT.Codeunit.al | 10 +++++----- .../Journal/RecurringGeneralJournal.Page.al | 4 +++- .../General Journal/ERMGeneralJournalUT.Codeunit.al | 10 +++++----- .../Journal/RecurringGeneralJournal.Page.al | 4 +++- .../Journal/RecurringGeneralJournal.Page.al | 4 +++- .../General Journal/ERMGeneralJournalUT.Codeunit.al | 10 +++++----- 11 files changed, 45 insertions(+), 35 deletions(-) diff --git a/src/Layers/APAC/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/APAC/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index 9611da23bc2..15db1659536 100644 --- a/src/Layers/APAC/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/APAC/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -91,7 +91,8 @@ page 283 "Recurring General Journal" RecurringFrequencyDateFormula: DateFormula; begin if RecurringFrequency <> '' then - Evaluate(RecurringFrequencyDateFormula, RecurringFrequency); + if not Evaluate(RecurringFrequencyDateFormula, RecurringFrequency) then + Error(InvalidRecurringFrequencyErr, RecurringFrequency); Rec.Validate("Recurring Frequency", RecurringFrequencyDateFormula); SetRecurringFrequency(); end; @@ -949,6 +950,7 @@ page 283 "Recurring General Journal" BackgroundErrorCheck: Boolean; ShowAllLinesEnabled: Boolean; RecurringFrequency: Text; + InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; protected var GenJnlManagement: Codeunit GenJnlManagement; diff --git a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index d1b6f0e35a5..b363af7e88d 100644 --- a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -38,7 +38,7 @@ codeunit 134920 "ERM General Journal UT" NoSeriesLineStartDateErr: Label 'Starting Date not updated.'; ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; - DateFormulaTimeUnitErr: Label 'should include a time unit', Locked = true; + InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; [Test] [Scope('OnPrem')] @@ -6132,7 +6132,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); @@ -6157,7 +6157,7 @@ codeunit 134920 "ERM General Journal UT" begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); - Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); // [GIVEN] A recurring journal line open on the Recurring General Journal page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); @@ -6188,7 +6188,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); RecurringGeneralJournal.Trap(); @@ -6224,7 +6224,7 @@ codeunit 134920 "ERM General Journal UT" asserterror RecurringGeneralJournal."Recurring Frequency".SetValue(InvalidRecurringFrequencyTok); // [THEN] A date formula validation error is raised - Assert.ExpectedError(DateFormulaTimeUnitErr); + Assert.ExpectedError(StrSubstNo(InvalidRecurringFrequencyErr, InvalidRecurringFrequencyTok)); end; local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") diff --git a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 4bc2cc9572e..4e7682b1cae 100644 --- a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -38,7 +38,7 @@ codeunit 134920 "ERM General Journal UT" NoSeriesLineStartDateErr: Label 'Starting Date not updated.'; ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; - DateFormulaTimeUnitErr: Label 'should include a time unit', Locked = true; + InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; [Test] [Scope('OnPrem')] @@ -5935,7 +5935,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); @@ -5960,7 +5960,7 @@ codeunit 134920 "ERM General Journal UT" begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); - Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); // [GIVEN] A recurring journal line open on the Recurring General Journal page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); @@ -5991,7 +5991,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); RecurringGeneralJournal.Trap(); @@ -6027,7 +6027,7 @@ codeunit 134920 "ERM General Journal UT" asserterror RecurringGeneralJournal."Recurring Frequency".SetValue(InvalidRecurringFrequencyTok); // [THEN] A date formula validation error is raised - Assert.ExpectedError(DateFormulaTimeUnitErr); + Assert.ExpectedError(StrSubstNo(InvalidRecurringFrequencyErr, InvalidRecurringFrequencyTok)); end; local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") diff --git a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 041e2a6d68d..17433c948a8 100644 --- a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -38,7 +38,7 @@ codeunit 134920 "ERM General Journal UT" NoSeriesLineStartDateErr: Label 'Starting Date not updated.'; ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; - DateFormulaTimeUnitErr: Label 'should include a time unit', Locked = true; + InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; [Test] [Scope('OnPrem')] @@ -6131,7 +6131,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); @@ -6156,7 +6156,7 @@ codeunit 134920 "ERM General Journal UT" begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); - Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); // [GIVEN] A recurring journal line open on the Recurring General Journal page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); @@ -6187,7 +6187,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); RecurringGeneralJournal.Trap(); @@ -6223,7 +6223,7 @@ codeunit 134920 "ERM General Journal UT" asserterror RecurringGeneralJournal."Recurring Frequency".SetValue(InvalidRecurringFrequencyTok); // [THEN] A date formula validation error is raised - Assert.ExpectedError(DateFormulaTimeUnitErr); + Assert.ExpectedError(StrSubstNo(InvalidRecurringFrequencyErr, InvalidRecurringFrequencyTok)); end; local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") diff --git a/src/Layers/ES/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/ES/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index 62b92ec5787..22044ea6823 100644 --- a/src/Layers/ES/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/ES/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -91,7 +91,8 @@ page 283 "Recurring General Journal" RecurringFrequencyDateFormula: DateFormula; begin if RecurringFrequency <> '' then - Evaluate(RecurringFrequencyDateFormula, RecurringFrequency); + if not Evaluate(RecurringFrequencyDateFormula, RecurringFrequency) then + Error(InvalidRecurringFrequencyErr, RecurringFrequency); Rec.Validate("Recurring Frequency", RecurringFrequencyDateFormula); SetRecurringFrequency(); end; @@ -935,6 +936,7 @@ page 283 "Recurring General Journal" BackgroundErrorCheck: Boolean; ShowAllLinesEnabled: Boolean; RecurringFrequency: Text; + InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; protected var GenJnlManagement: Codeunit GenJnlManagement; diff --git a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 61a218187c0..3989d10658c 100644 --- a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -38,7 +38,7 @@ codeunit 134920 "ERM General Journal UT" NoSeriesLineStartDateErr: Label 'Starting Date not updated.'; ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; - DateFormulaTimeUnitErr: Label 'should include a time unit', Locked = true; + InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; [Test] [Scope('OnPrem')] @@ -6160,7 +6160,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); @@ -6185,7 +6185,7 @@ codeunit 134920 "ERM General Journal UT" begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); - Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); // [GIVEN] A recurring journal line open on the Recurring General Journal page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); @@ -6216,7 +6216,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); RecurringGeneralJournal.Trap(); @@ -6252,7 +6252,7 @@ codeunit 134920 "ERM General Journal UT" asserterror RecurringGeneralJournal."Recurring Frequency".SetValue(InvalidRecurringFrequencyTok); // [THEN] A date formula validation error is raised - Assert.ExpectedError(DateFormulaTimeUnitErr); + Assert.ExpectedError(StrSubstNo(InvalidRecurringFrequencyErr, InvalidRecurringFrequencyTok)); end; local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") diff --git a/src/Layers/IT/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/IT/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index a5cbede2eb9..9c72e3b1452 100644 --- a/src/Layers/IT/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/IT/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -91,7 +91,8 @@ page 283 "Recurring General Journal" RecurringFrequencyDateFormula: DateFormula; begin if RecurringFrequency <> '' then - Evaluate(RecurringFrequencyDateFormula, RecurringFrequency); + if not Evaluate(RecurringFrequencyDateFormula, RecurringFrequency) then + Error(InvalidRecurringFrequencyErr, RecurringFrequency); Rec.Validate("Recurring Frequency", RecurringFrequencyDateFormula); SetRecurringFrequency(); end; @@ -935,6 +936,7 @@ page 283 "Recurring General Journal" BackgroundErrorCheck: Boolean; ShowAllLinesEnabled: Boolean; RecurringFrequency: Text; + InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; protected var GenJnlManagement: Codeunit GenJnlManagement; diff --git a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 61b3932768c..1ed0375f543 100644 --- a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -38,7 +38,7 @@ codeunit 134920 "ERM General Journal UT" NoSeriesLineStartDateErr: Label 'Starting Date not updated.'; ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; - DateFormulaTimeUnitErr: Label 'should include a time unit', Locked = true; + InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; [Test] [Scope('OnPrem')] @@ -6131,7 +6131,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); @@ -6156,7 +6156,7 @@ codeunit 134920 "ERM General Journal UT" begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); - Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); // [GIVEN] A recurring journal line open on the Recurring General Journal page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); @@ -6187,7 +6187,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); RecurringGeneralJournal.Trap(); @@ -6223,7 +6223,7 @@ codeunit 134920 "ERM General Journal UT" asserterror RecurringGeneralJournal."Recurring Frequency".SetValue(InvalidRecurringFrequencyTok); // [THEN] A date formula validation error is raised - Assert.ExpectedError(DateFormulaTimeUnitErr); + Assert.ExpectedError(StrSubstNo(InvalidRecurringFrequencyErr, InvalidRecurringFrequencyTok)); end; local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") diff --git a/src/Layers/RU/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/RU/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index e345243f8d4..2b3c9623b5d 100644 --- a/src/Layers/RU/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/RU/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -92,7 +92,8 @@ page 283 "Recurring General Journal" RecurringFrequencyDateFormula: DateFormula; begin if RecurringFrequency <> '' then - Evaluate(RecurringFrequencyDateFormula, RecurringFrequency); + if not Evaluate(RecurringFrequencyDateFormula, RecurringFrequency) then + Error(InvalidRecurringFrequencyErr, RecurringFrequency); Rec.Validate("Recurring Frequency", RecurringFrequencyDateFormula); SetRecurringFrequency(); end; @@ -1043,6 +1044,7 @@ page 283 "Recurring General Journal" BackgroundErrorCheck: Boolean; ShowAllLinesEnabled: Boolean; RecurringFrequency: Text; + InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; protected var GenJnlManagement: Codeunit GenJnlManagement; diff --git a/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index 74d157ed4c5..49e2c2d180b 100644 --- a/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -91,7 +91,8 @@ page 283 "Recurring General Journal" RecurringFrequencyDateFormula: DateFormula; begin if RecurringFrequency <> '' then - Evaluate(RecurringFrequencyDateFormula, RecurringFrequency); + if not Evaluate(RecurringFrequencyDateFormula, RecurringFrequency) then + Error(InvalidRecurringFrequencyErr, RecurringFrequency); Rec.Validate("Recurring Frequency", RecurringFrequencyDateFormula); SetRecurringFrequency(); end; @@ -930,6 +931,7 @@ page 283 "Recurring General Journal" BackgroundErrorCheck: Boolean; ShowAllLinesEnabled: Boolean; RecurringFrequency: Text; + InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; protected var GenJnlManagement: Codeunit GenJnlManagement; diff --git a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 76137486539..b4cef49d182 100644 --- a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -38,7 +38,7 @@ codeunit 134920 "ERM General Journal UT" NoSeriesLineStartDateErr: Label 'Starting Date not updated.'; ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; - DateFormulaTimeUnitErr: Label 'should include a time unit', Locked = true; + InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; [Test] [Scope('OnPrem')] @@ -6131,7 +6131,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); @@ -6156,7 +6156,7 @@ codeunit 134920 "ERM General Journal UT" begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); - Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); // [GIVEN] A recurring journal line open on the Recurring General Journal page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); @@ -6187,7 +6187,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Evaluate(RecurringFrequency, ValidRecurringFrequencyTok); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); RecurringGeneralJournal.Trap(); @@ -6223,7 +6223,7 @@ codeunit 134920 "ERM General Journal UT" asserterror RecurringGeneralJournal."Recurring Frequency".SetValue(InvalidRecurringFrequencyTok); // [THEN] A date formula validation error is raised - Assert.ExpectedError(DateFormulaTimeUnitErr); + Assert.ExpectedError(StrSubstNo(InvalidRecurringFrequencyErr, InvalidRecurringFrequencyTok)); end; local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") From 901eb001f4fba915f6e2e7c40bd106b6148ae189 Mon Sep 17 00:00:00 2001 From: v-sanjmaurya Date: Thu, 13 Aug 2026 09:42:59 +0530 Subject: [PATCH 05/11] Fix bb faling Issue --- .../Journal/RecurringGeneralJournal.Page.al | 4 ++-- .../General Journal/ERMGeneralJournalUT.Codeunit.al | 10 ++++++---- .../General Journal/ERMGeneralJournalUT.Codeunit.al | 10 ++++++---- .../General Journal/ERMGeneralJournalUT.Codeunit.al | 10 ++++++---- .../Journal/RecurringGeneralJournal.Page.al | 4 ++-- .../General Journal/ERMGeneralJournalUT.Codeunit.al | 10 ++++++---- .../Journal/RecurringGeneralJournal.Page.al | 4 ++-- .../General Journal/ERMGeneralJournalUT.Codeunit.al | 10 ++++++---- .../Journal/RecurringGeneralJournal.Page.al | 4 ++-- .../Journal/RecurringGeneralJournal.Page.al | 4 ++-- .../General Journal/ERMGeneralJournalUT.Codeunit.al | 10 ++++++---- 11 files changed, 46 insertions(+), 34 deletions(-) diff --git a/src/Layers/APAC/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/APAC/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index 15db1659536..0da4b6af7f1 100644 --- a/src/Layers/APAC/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/APAC/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -933,6 +933,8 @@ page 283 "Recurring General Journal" JournalErrorsMgt: Codeunit "Journal Errors Mgt."; BackgroundErrorHandlingMgt: Codeunit "Background Error Handling Mgt."; ChangeExchangeRate: Page "Change Exchange Rate"; + RecurringFrequency: Text; + InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; Balance: Decimal; TotalBalance: Decimal; NumberOfRecords: Integer; @@ -949,8 +951,6 @@ page 283 "Recurring General Journal" VATDateEnabled: Boolean; BackgroundErrorCheck: Boolean; ShowAllLinesEnabled: Boolean; - RecurringFrequency: Text; - InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; protected var GenJnlManagement: Codeunit GenJnlManagement; diff --git a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index b363af7e88d..47761dee04c 100644 --- a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -25,7 +25,6 @@ codeunit 134920 "ERM General Journal UT" GenJnlManagement: Codeunit GenJnlManagement; LibraryDimension: Codeunit "Library - Dimension"; LibraryVariableStorageCounter: Codeunit "Library - Variable Storage"; - IsInitialized: Boolean; DocNoFilterErr: Label 'The document numbers cannot be renumbered while there is an active filter on the Document No. field.'; WrongJobQueueStatus: Label 'Journal line cannot be modified because it has been scheduled for posting.'; WrongFieldVisibilityErr: Label 'Wrong field visiblity'; @@ -39,6 +38,9 @@ codeunit 134920 "ERM General Journal UT" ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; + GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; + RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; + IsInitialized: Boolean; [Test] [Scope('OnPrem')] @@ -6169,7 +6171,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The date formula is persisted on the line - GenJournalLine.Find(); + Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); end; @@ -6199,8 +6201,8 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The recurring frequency on the line is empty - GenJournalLine.Find(); - Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), 'The recurring frequency should be cleared.'); + Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), RecurringFrequencyNotClearedErr); end; [Test] diff --git a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 4e7682b1cae..cb821dd1820 100644 --- a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -25,7 +25,6 @@ codeunit 134920 "ERM General Journal UT" GenJnlManagement: Codeunit GenJnlManagement; LibraryDimension: Codeunit "Library - Dimension"; LibraryVariableStorageCounter: Codeunit "Library - Variable Storage"; - IsInitialized: Boolean; DocNoFilterErr: Label 'The document numbers cannot be renumbered while there is an active filter on the Document No. field.'; WrongJobQueueStatus: Label 'Journal line cannot be modified because it has been scheduled for posting.'; WrongFieldVisibilityErr: Label 'Wrong field visiblity'; @@ -39,6 +38,9 @@ codeunit 134920 "ERM General Journal UT" ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; + GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; + RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; + IsInitialized: Boolean; [Test] [Scope('OnPrem')] @@ -5972,7 +5974,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The date formula is persisted on the line - GenJournalLine.Find(); + Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); end; @@ -6002,8 +6004,8 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The recurring frequency on the line is empty - GenJournalLine.Find(); - Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), 'The recurring frequency should be cleared.'); + Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), RecurringFrequencyNotClearedErr); end; [Test] diff --git a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 17433c948a8..c3ede89cdf8 100644 --- a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -25,7 +25,6 @@ codeunit 134920 "ERM General Journal UT" GenJnlManagement: Codeunit GenJnlManagement; LibraryDimension: Codeunit "Library - Dimension"; LibraryVariableStorageCounter: Codeunit "Library - Variable Storage"; - IsInitialized: Boolean; DocNoFilterErr: Label 'The document numbers cannot be renumbered while there is an active filter on the Document No. field.'; WrongJobQueueStatus: Label 'Journal line cannot be modified because it has been scheduled for posting.'; WrongFieldVisibilityErr: Label 'Wrong field visiblity'; @@ -39,6 +38,9 @@ codeunit 134920 "ERM General Journal UT" ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; + GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; + RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; + IsInitialized: Boolean; [Test] [Scope('OnPrem')] @@ -6168,7 +6170,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The date formula is persisted on the line - GenJournalLine.Find(); + Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); end; @@ -6198,8 +6200,8 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The recurring frequency on the line is empty - GenJournalLine.Find(); - Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), 'The recurring frequency should be cleared.'); + Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), RecurringFrequencyNotClearedErr); end; [Test] diff --git a/src/Layers/ES/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/ES/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index 22044ea6823..8dd6caf8809 100644 --- a/src/Layers/ES/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/ES/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -919,6 +919,8 @@ page 283 "Recurring General Journal" JournalErrorsMgt: Codeunit "Journal Errors Mgt."; BackgroundErrorHandlingMgt: Codeunit "Background Error Handling Mgt."; ChangeExchangeRate: Page "Change Exchange Rate"; + RecurringFrequency: Text; + InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; Balance: Decimal; TotalBalance: Decimal; NumberOfRecords: Integer; @@ -935,8 +937,6 @@ page 283 "Recurring General Journal" VATDateEnabled: Boolean; BackgroundErrorCheck: Boolean; ShowAllLinesEnabled: Boolean; - RecurringFrequency: Text; - InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; protected var GenJnlManagement: Codeunit GenJnlManagement; diff --git a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 3989d10658c..ab30a45c180 100644 --- a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -25,7 +25,6 @@ codeunit 134920 "ERM General Journal UT" GenJnlManagement: Codeunit GenJnlManagement; LibraryDimension: Codeunit "Library - Dimension"; LibraryVariableStorageCounter: Codeunit "Library - Variable Storage"; - IsInitialized: Boolean; DocNoFilterErr: Label 'The document numbers cannot be renumbered while there is an active filter on the Document No. field.'; WrongJobQueueStatus: Label 'Journal line cannot be modified because it has been scheduled for posting.'; WrongFieldVisibilityErr: Label 'Wrong field visiblity'; @@ -39,6 +38,9 @@ codeunit 134920 "ERM General Journal UT" ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; + GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; + RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; + IsInitialized: Boolean; [Test] [Scope('OnPrem')] @@ -6197,7 +6199,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The date formula is persisted on the line - GenJournalLine.Find(); + Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); end; @@ -6227,8 +6229,8 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The recurring frequency on the line is empty - GenJournalLine.Find(); - Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), 'The recurring frequency should be cleared.'); + Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), RecurringFrequencyNotClearedErr); end; [Test] diff --git a/src/Layers/IT/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/IT/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index 9c72e3b1452..02bf20dbcaa 100644 --- a/src/Layers/IT/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/IT/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -919,6 +919,8 @@ page 283 "Recurring General Journal" JournalErrorsMgt: Codeunit "Journal Errors Mgt."; BackgroundErrorHandlingMgt: Codeunit "Background Error Handling Mgt."; ChangeExchangeRate: Page "Change Exchange Rate"; + RecurringFrequency: Text; + InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; Balance: Decimal; TotalBalance: Decimal; NumberOfRecords: Integer; @@ -935,8 +937,6 @@ page 283 "Recurring General Journal" VATDateEnabled: Boolean; BackgroundErrorCheck: Boolean; ShowAllLinesEnabled: Boolean; - RecurringFrequency: Text; - InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; protected var GenJnlManagement: Codeunit GenJnlManagement; diff --git a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 1ed0375f543..b278f91ebb5 100644 --- a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -25,7 +25,6 @@ codeunit 134920 "ERM General Journal UT" GenJnlManagement: Codeunit GenJnlManagement; LibraryDimension: Codeunit "Library - Dimension"; LibraryVariableStorageCounter: Codeunit "Library - Variable Storage"; - IsInitialized: Boolean; DocNoFilterErr: Label 'The document numbers cannot be renumbered while there is an active filter on the Document No. field.'; WrongJobQueueStatus: Label 'Journal line cannot be modified because it has been scheduled for posting.'; WrongFieldVisibilityErr: Label 'Wrong field visiblity'; @@ -39,6 +38,9 @@ codeunit 134920 "ERM General Journal UT" ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; + GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; + RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; + IsInitialized: Boolean; [Test] [Scope('OnPrem')] @@ -6168,7 +6170,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The date formula is persisted on the line - GenJournalLine.Find(); + Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); end; @@ -6198,8 +6200,8 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The recurring frequency on the line is empty - GenJournalLine.Find(); - Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), 'The recurring frequency should be cleared.'); + Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), RecurringFrequencyNotClearedErr); end; [Test] diff --git a/src/Layers/RU/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/RU/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index 2b3c9623b5d..69903c156c5 100644 --- a/src/Layers/RU/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/RU/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -1027,6 +1027,8 @@ page 283 "Recurring General Journal" ChangeExchangeRate: Page "Change Exchange Rate"; AccSchedLineDesc: Text[250]; ColumnLayoutHeader: Text[50]; + RecurringFrequency: Text; + InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; Balance: Decimal; TotalBalance: Decimal; NumberOfRecords: Integer; @@ -1043,8 +1045,6 @@ page 283 "Recurring General Journal" VATDateEnabled: Boolean; BackgroundErrorCheck: Boolean; ShowAllLinesEnabled: Boolean; - RecurringFrequency: Text; - InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; protected var GenJnlManagement: Codeunit GenJnlManagement; diff --git a/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al b/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al index 49e2c2d180b..dee1f6de76d 100644 --- a/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al +++ b/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/RecurringGeneralJournal.Page.al @@ -914,6 +914,8 @@ page 283 "Recurring General Journal" JournalErrorsMgt: Codeunit "Journal Errors Mgt."; BackgroundErrorHandlingMgt: Codeunit "Background Error Handling Mgt."; ChangeExchangeRate: Page "Change Exchange Rate"; + RecurringFrequency: Text; + InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; Balance: Decimal; TotalBalance: Decimal; NumberOfRecords: Integer; @@ -930,8 +932,6 @@ page 283 "Recurring General Journal" VATDateEnabled: Boolean; BackgroundErrorCheck: Boolean; ShowAllLinesEnabled: Boolean; - RecurringFrequency: Text; - InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; protected var GenJnlManagement: Codeunit GenJnlManagement; diff --git a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index b4cef49d182..86edf3bcaf4 100644 --- a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -25,7 +25,6 @@ codeunit 134920 "ERM General Journal UT" GenJnlManagement: Codeunit GenJnlManagement; LibraryDimension: Codeunit "Library - Dimension"; LibraryVariableStorageCounter: Codeunit "Library - Variable Storage"; - IsInitialized: Boolean; DocNoFilterErr: Label 'The document numbers cannot be renumbered while there is an active filter on the Document No. field.'; WrongJobQueueStatus: Label 'Journal line cannot be modified because it has been scheduled for posting.'; WrongFieldVisibilityErr: Label 'Wrong field visiblity'; @@ -39,6 +38,9 @@ codeunit 134920 "ERM General Journal UT" ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; + GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; + RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; + IsInitialized: Boolean; [Test] [Scope('OnPrem')] @@ -6168,7 +6170,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The date formula is persisted on the line - GenJournalLine.Find(); + Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); end; @@ -6198,8 +6200,8 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The recurring frequency on the line is empty - GenJournalLine.Find(); - Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), 'The recurring frequency should be cleared.'); + Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), RecurringFrequencyNotClearedErr); end; [Test] From 1b9f148a411e1caec2aca785769d636a902a5d3f Mon Sep 17 00:00:00 2001 From: v-sanjmaurya Date: Thu, 13 Aug 2026 09:50:25 +0530 Subject: [PATCH 06/11] Convert hard code into Lable --- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 6 ++++-- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 6 ++++-- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 6 ++++-- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 6 ++++-- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 6 ++++-- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 6 ++++-- 6 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 47761dee04c..fc0ec41a306 100644 --- a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -39,6 +39,8 @@ codeunit 134920 "ERM General Journal UT" InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; + RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; + RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; IsInitialized: Boolean; @@ -6143,7 +6145,7 @@ codeunit 134920 "ERM General Journal UT" Page.Run(Page::"Recurring General Journal", GenJournalLine); // [THEN] The field displays the formatted date formula - Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, 'Recurring Frequency should be displayed as the formatted date formula.'); + Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, RecurringFrequencyNotDisplayedErr); RecurringGeneralJournal.Close(); end; @@ -6172,7 +6174,7 @@ codeunit 134920 "ERM General Journal UT" // [THEN] The date formula is persisted on the line Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); - Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); + Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", RecurringFrequencyNotPersistedErr); end; [Test] diff --git a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index cb821dd1820..a458de37137 100644 --- a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -39,6 +39,8 @@ codeunit 134920 "ERM General Journal UT" InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; + RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; + RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; IsInitialized: Boolean; @@ -5946,7 +5948,7 @@ codeunit 134920 "ERM General Journal UT" Page.Run(Page::"Recurring General Journal", GenJournalLine); // [THEN] The field displays the formatted date formula - Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, 'Recurring Frequency should be displayed as the formatted date formula.'); + Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, RecurringFrequencyNotDisplayedErr); RecurringGeneralJournal.Close(); end; @@ -5975,7 +5977,7 @@ codeunit 134920 "ERM General Journal UT" // [THEN] The date formula is persisted on the line Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); - Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); + Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", RecurringFrequencyNotPersistedErr); end; [Test] diff --git a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index c3ede89cdf8..16fde5a4d93 100644 --- a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -39,6 +39,8 @@ codeunit 134920 "ERM General Journal UT" InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; + RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; + RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; IsInitialized: Boolean; @@ -6142,7 +6144,7 @@ codeunit 134920 "ERM General Journal UT" Page.Run(Page::"Recurring General Journal", GenJournalLine); // [THEN] The field displays the formatted date formula - Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, 'Recurring Frequency should be displayed as the formatted date formula.'); + Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, RecurringFrequencyNotDisplayedErr); RecurringGeneralJournal.Close(); end; @@ -6171,7 +6173,7 @@ codeunit 134920 "ERM General Journal UT" // [THEN] The date formula is persisted on the line Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); - Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); + Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", RecurringFrequencyNotPersistedErr); end; [Test] diff --git a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index ab30a45c180..7539a2c0b3b 100644 --- a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -39,6 +39,8 @@ codeunit 134920 "ERM General Journal UT" InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; + RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; + RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; IsInitialized: Boolean; @@ -6171,7 +6173,7 @@ codeunit 134920 "ERM General Journal UT" Page.Run(Page::"Recurring General Journal", GenJournalLine); // [THEN] The field displays the formatted date formula - Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, 'Recurring Frequency should be displayed as the formatted date formula.'); + Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, RecurringFrequencyNotDisplayedErr); RecurringGeneralJournal.Close(); end; @@ -6200,7 +6202,7 @@ codeunit 134920 "ERM General Journal UT" // [THEN] The date formula is persisted on the line Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); - Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); + Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", RecurringFrequencyNotPersistedErr); end; [Test] diff --git a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index b278f91ebb5..e16b845363a 100644 --- a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -39,6 +39,8 @@ codeunit 134920 "ERM General Journal UT" InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; + RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; + RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; IsInitialized: Boolean; @@ -6142,7 +6144,7 @@ codeunit 134920 "ERM General Journal UT" Page.Run(Page::"Recurring General Journal", GenJournalLine); // [THEN] The field displays the formatted date formula - Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, 'Recurring Frequency should be displayed as the formatted date formula.'); + Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, RecurringFrequencyNotDisplayedErr); RecurringGeneralJournal.Close(); end; @@ -6171,7 +6173,7 @@ codeunit 134920 "ERM General Journal UT" // [THEN] The date formula is persisted on the line Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); - Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); + Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", RecurringFrequencyNotPersistedErr); end; [Test] diff --git a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 86edf3bcaf4..476e4231c85 100644 --- a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -39,6 +39,8 @@ codeunit 134920 "ERM General Journal UT" InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; + RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; + RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; IsInitialized: Boolean; @@ -6142,7 +6144,7 @@ codeunit 134920 "ERM General Journal UT" Page.Run(Page::"Recurring General Journal", GenJournalLine); // [THEN] The field displays the formatted date formula - Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, 'Recurring Frequency should be displayed as the formatted date formula.'); + Assert.AreEqual(Format(RecurringFrequency), RecurringGeneralJournal."Recurring Frequency".Value, RecurringFrequencyNotDisplayedErr); RecurringGeneralJournal.Close(); end; @@ -6171,7 +6173,7 @@ codeunit 134920 "ERM General Journal UT" // [THEN] The date formula is persisted on the line Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); - Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", 'The entered recurring frequency was not persisted.'); + Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", RecurringFrequencyNotPersistedErr); end; [Test] From 03c83634c657a2131a421710f62b013ec53681ec Mon Sep 17 00:00:00 2001 From: v-sanjmaurya Date: Thu, 13 Aug 2026 11:23:40 +0530 Subject: [PATCH 07/11] Arrange the Variable order --- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 6 +++--- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 6 +++--- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 6 +++--- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 6 +++--- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 6 +++--- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 6 +++--- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index fc0ec41a306..afc50bf0efa 100644 --- a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -6128,8 +6128,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] The Recurring Frequency field shows the formatted (localized) date formula that Edit in Excel exports. Initialize(); @@ -6156,8 +6156,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; ExpectedRecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); @@ -6184,8 +6184,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] Clearing the Recurring Frequency field empties the date formula without error. Initialize(); diff --git a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index a458de37137..a0ba6fcb049 100644 --- a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -5931,8 +5931,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] The Recurring Frequency field shows the formatted (localized) date formula that Edit in Excel exports. Initialize(); @@ -5959,8 +5959,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; ExpectedRecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); @@ -5987,8 +5987,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] Clearing the Recurring Frequency field empties the date formula without error. Initialize(); diff --git a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 16fde5a4d93..df3165bc065 100644 --- a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -6127,8 +6127,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] The Recurring Frequency field shows the formatted (localized) date formula that Edit in Excel exports. Initialize(); @@ -6155,8 +6155,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; ExpectedRecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); @@ -6183,8 +6183,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] Clearing the Recurring Frequency field empties the date formula without error. Initialize(); diff --git a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 7539a2c0b3b..e33a83842e8 100644 --- a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -6156,8 +6156,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] The Recurring Frequency field shows the formatted (localized) date formula that Edit in Excel exports. Initialize(); @@ -6184,8 +6184,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; ExpectedRecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); @@ -6212,8 +6212,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] Clearing the Recurring Frequency field empties the date formula without error. Initialize(); diff --git a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index e16b845363a..7ce0afab0e9 100644 --- a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -6127,8 +6127,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] The Recurring Frequency field shows the formatted (localized) date formula that Edit in Excel exports. Initialize(); @@ -6155,8 +6155,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; ExpectedRecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); @@ -6183,8 +6183,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] Clearing the Recurring Frequency field empties the date formula without error. Initialize(); diff --git a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 476e4231c85..90a5c3ca77a 100644 --- a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -6127,8 +6127,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] The Recurring Frequency field shows the formatted (localized) date formula that Edit in Excel exports. Initialize(); @@ -6155,8 +6155,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; ExpectedRecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); @@ -6183,8 +6183,8 @@ codeunit 134920 "ERM General Journal UT" GenJournalTemplate: Record "Gen. Journal Template"; GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; - RecurringGeneralJournal: TestPage "Recurring General Journal"; RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; begin // [SCENARIO] Clearing the Recurring Frequency field empties the date formula without error. Initialize(); From 4d56ae6ffff0805dde9da535de8cd0814d37765a Mon Sep 17 00:00:00 2001 From: v-sanjmaurya Date: Thu, 13 Aug 2026 11:36:41 +0530 Subject: [PATCH 08/11] Label Added --- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 7 ++++--- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 7 ++++--- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 7 ++++--- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 7 ++++--- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 7 ++++--- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 7 ++++--- 6 files changed, 24 insertions(+), 18 deletions(-) diff --git a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index afc50bf0efa..224271a0c5e 100644 --- a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -38,6 +38,7 @@ codeunit 134920 "ERM General Journal UT" ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; + RecurringFrequencyNotValidErr: Label 'The test recurring frequency must be a valid date formula.'; GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; @@ -6136,7 +6137,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); @@ -6161,7 +6162,7 @@ codeunit 134920 "ERM General Journal UT" begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); - Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); // [GIVEN] A recurring journal line open on the Recurring General Journal page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); @@ -6192,7 +6193,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); RecurringGeneralJournal.Trap(); diff --git a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index a0ba6fcb049..2ef469a4c9b 100644 --- a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -38,6 +38,7 @@ codeunit 134920 "ERM General Journal UT" ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; + RecurringFrequencyNotValidErr: Label 'The test recurring frequency must be a valid date formula.'; GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; @@ -5939,7 +5940,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); @@ -5964,7 +5965,7 @@ codeunit 134920 "ERM General Journal UT" begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); - Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); // [GIVEN] A recurring journal line open on the Recurring General Journal page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); @@ -5995,7 +5996,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); RecurringGeneralJournal.Trap(); diff --git a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index df3165bc065..2689fcbe8e8 100644 --- a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -38,6 +38,7 @@ codeunit 134920 "ERM General Journal UT" ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; + RecurringFrequencyNotValidErr: Label 'The test recurring frequency must be a valid date formula.'; GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; @@ -6135,7 +6136,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); @@ -6160,7 +6161,7 @@ codeunit 134920 "ERM General Journal UT" begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); - Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); // [GIVEN] A recurring journal line open on the Recurring General Journal page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); @@ -6191,7 +6192,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); RecurringGeneralJournal.Trap(); diff --git a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index e33a83842e8..3e605bbe682 100644 --- a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -38,6 +38,7 @@ codeunit 134920 "ERM General Journal UT" ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; + RecurringFrequencyNotValidErr: Label 'The test recurring frequency must be a valid date formula.'; GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; @@ -6164,7 +6165,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); @@ -6189,7 +6190,7 @@ codeunit 134920 "ERM General Journal UT" begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); - Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); // [GIVEN] A recurring journal line open on the Recurring General Journal page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); @@ -6220,7 +6221,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); RecurringGeneralJournal.Trap(); diff --git a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 7ce0afab0e9..041969a0a5f 100644 --- a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -38,6 +38,7 @@ codeunit 134920 "ERM General Journal UT" ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; + RecurringFrequencyNotValidErr: Label 'The test recurring frequency must be a valid date formula.'; GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; @@ -6135,7 +6136,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); @@ -6160,7 +6161,7 @@ codeunit 134920 "ERM General Journal UT" begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); - Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); // [GIVEN] A recurring journal line open on the Recurring General Journal page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); @@ -6191,7 +6192,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); RecurringGeneralJournal.Trap(); diff --git a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 90a5c3ca77a..2e5342b1583 100644 --- a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -38,6 +38,7 @@ codeunit 134920 "ERM General Journal UT" ValidRecurringFrequencyTok: Label '1M', Locked = true; InvalidRecurringFrequencyTok: Label 'ABC', Locked = true; InvalidRecurringFrequencyErr: Label 'The recurring frequency %1 is not a valid date formula.', Comment = '%1 = the entered recurring frequency value'; + RecurringFrequencyNotValidErr: Label 'The test recurring frequency must be a valid date formula.'; GenJournalLineNotFoundErr: Label 'The general journal line was not found.'; RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; @@ -6135,7 +6136,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); @@ -6160,7 +6161,7 @@ codeunit 134920 "ERM General Journal UT" begin // [SCENARIO] Entering a valid date formula text persists it as a DateFormula on the journal line. Initialize(); - Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(ExpectedRecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); // [GIVEN] A recurring journal line open on the Recurring General Journal page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); @@ -6191,7 +6192,7 @@ codeunit 134920 "ERM General Journal UT" // [GIVEN] A recurring journal line with Recurring Frequency 1M open on the page CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); - Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), 'The test recurring frequency must be a valid date formula.'); + Assert.IsTrue(Evaluate(RecurringFrequency, ValidRecurringFrequencyTok), RecurringFrequencyNotValidErr); GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); GenJournalLine.Modify(true); RecurringGeneralJournal.Trap(); From 91b8aabb1e3bd4b713b3b93b0412aa2cef54e623 Mon Sep 17 00:00:00 2001 From: v-sanjmaurya Date: Thu, 13 Aug 2026 20:29:04 +0530 Subject: [PATCH 09/11] Fix the Legacy bucket failing issue --- .../Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 4 ++-- .../CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 4 ++-- .../CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 4 ++-- .../ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 4 ++-- .../IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 4 ++-- .../W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 224271a0c5e..277f72f0a16 100644 --- a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -6174,7 +6174,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The date formula is persisted on the line - Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.IsTrue(GenJournalLine.Get(GenJournalLine."Journal Template Name", GenJournalLine."Journal Batch Name", GenJournalLine."Line No."), GenJournalLineNotFoundErr); Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", RecurringFrequencyNotPersistedErr); end; @@ -6204,7 +6204,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The recurring frequency on the line is empty - Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.IsTrue(GenJournalLine.Get(GenJournalLine."Journal Template Name", GenJournalLine."Journal Batch Name", GenJournalLine."Line No."), GenJournalLineNotFoundErr); Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), RecurringFrequencyNotClearedErr); end; diff --git a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 2ef469a4c9b..48efb7498c9 100644 --- a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -5977,7 +5977,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The date formula is persisted on the line - Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.IsTrue(GenJournalLine.Get(GenJournalLine."Journal Template Name", GenJournalLine."Journal Batch Name", GenJournalLine."Line No."), GenJournalLineNotFoundErr); Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", RecurringFrequencyNotPersistedErr); end; @@ -6007,7 +6007,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The recurring frequency on the line is empty - Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.IsTrue(GenJournalLine.Get(GenJournalLine."Journal Template Name", GenJournalLine."Journal Batch Name", GenJournalLine."Line No."), GenJournalLineNotFoundErr); Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), RecurringFrequencyNotClearedErr); end; diff --git a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 2689fcbe8e8..f966d491c8c 100644 --- a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -6173,7 +6173,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The date formula is persisted on the line - Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.IsTrue(GenJournalLine.Get(GenJournalLine."Journal Template Name", GenJournalLine."Journal Batch Name", GenJournalLine."Line No."), GenJournalLineNotFoundErr); Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", RecurringFrequencyNotPersistedErr); end; @@ -6203,7 +6203,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The recurring frequency on the line is empty - Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.IsTrue(GenJournalLine.Get(GenJournalLine."Journal Template Name", GenJournalLine."Journal Batch Name", GenJournalLine."Line No."), GenJournalLineNotFoundErr); Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), RecurringFrequencyNotClearedErr); end; diff --git a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 3e605bbe682..334856d86d1 100644 --- a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -6202,7 +6202,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The date formula is persisted on the line - Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.IsTrue(GenJournalLine.Get(GenJournalLine."Journal Template Name", GenJournalLine."Journal Batch Name", GenJournalLine."Line No."), GenJournalLineNotFoundErr); Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", RecurringFrequencyNotPersistedErr); end; @@ -6232,7 +6232,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The recurring frequency on the line is empty - Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.IsTrue(GenJournalLine.Get(GenJournalLine."Journal Template Name", GenJournalLine."Journal Batch Name", GenJournalLine."Line No."), GenJournalLineNotFoundErr); Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), RecurringFrequencyNotClearedErr); end; diff --git a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 041969a0a5f..b7f0f976e61 100644 --- a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -6173,7 +6173,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The date formula is persisted on the line - Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.IsTrue(GenJournalLine.Get(GenJournalLine."Journal Template Name", GenJournalLine."Journal Batch Name", GenJournalLine."Line No."), GenJournalLineNotFoundErr); Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", RecurringFrequencyNotPersistedErr); end; @@ -6203,7 +6203,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The recurring frequency on the line is empty - Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.IsTrue(GenJournalLine.Get(GenJournalLine."Journal Template Name", GenJournalLine."Journal Batch Name", GenJournalLine."Line No."), GenJournalLineNotFoundErr); Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), RecurringFrequencyNotClearedErr); end; diff --git a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 2e5342b1583..ac731336e5e 100644 --- a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -6173,7 +6173,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The date formula is persisted on the line - Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.IsTrue(GenJournalLine.Get(GenJournalLine."Journal Template Name", GenJournalLine."Journal Batch Name", GenJournalLine."Line No."), GenJournalLineNotFoundErr); Assert.AreEqual(ExpectedRecurringFrequency, GenJournalLine."Recurring Frequency", RecurringFrequencyNotPersistedErr); end; @@ -6203,7 +6203,7 @@ codeunit 134920 "ERM General Journal UT" RecurringGeneralJournal.Close(); // [THEN] The recurring frequency on the line is empty - Assert.IsTrue(GenJournalLine.FindFirst(), GenJournalLineNotFoundErr); + Assert.IsTrue(GenJournalLine.Get(GenJournalLine."Journal Template Name", GenJournalLine."Journal Batch Name", GenJournalLine."Line No."), GenJournalLineNotFoundErr); Assert.AreEqual('', Format(GenJournalLine."Recurring Frequency"), RecurringFrequencyNotClearedErr); end; From c8659cf8a4ca13bf38c2c653678324efc9c11c52 Mon Sep 17 00:00:00 2001 From: v-sanjmaurya Date: Fri, 14 Aug 2026 16:53:45 +0530 Subject: [PATCH 10/11] Fix S1 --- .../ERMGeneralJournalUT.Codeunit.al | 43 +++++++++++++++++++ .../ERMGeneralJournalUT.Codeunit.al | 43 +++++++++++++++++++ .../ERMGeneralJournalUT.Codeunit.al | 43 +++++++++++++++++++ .../ERMGeneralJournalUT.Codeunit.al | 43 +++++++++++++++++++ .../ERMGeneralJournalUT.Codeunit.al | 43 +++++++++++++++++++ .../ERMGeneralJournalUT.Codeunit.al | 43 +++++++++++++++++++ 6 files changed, 258 insertions(+) diff --git a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 277f72f0a16..888e0c2df29 100644 --- a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -43,6 +43,8 @@ codeunit 134920 "ERM General Journal UT" RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; + YearlyRecurringFrequencyTok: Label '1Y', Locked = true; + RecurringFrequencyNotLocalizedErr: Label 'The recurring frequency should be displayed using the localized date formula tokens.'; IsInitialized: Boolean; [Test] @@ -6232,6 +6234,47 @@ codeunit 134920 "ERM General Journal UT" Assert.ExpectedError(StrSubstNo(InvalidRecurringFrequencyErr, InvalidRecurringFrequencyTok)); end; + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyDisplaysLocalizedGermanDateFormula() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + PreviousGlobalLanguage: Integer; + InvariantRecurringFrequency: Text; + LocalizedRecurringFrequency: Text; + ExpectedLocalizedRecurringFrequency: Text; + begin + // [SCENARIO 646602] In a German session the Recurring Frequency field exposes the localized date formula token (1J for a year) that Edit in Excel exports, not the invariant token (1Y). + Initialize(); + + // [GIVEN] A recurring journal line with a yearly Recurring Frequency stored while the session is English (invariant tokens) + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Assert.IsTrue(Evaluate(RecurringFrequency, YearlyRecurringFrequencyTok), RecurringFrequencyNotValidErr); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + InvariantRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); + + // [GIVEN] The session language is German (DEU) + PreviousGlobalLanguage := GlobalLanguage(); + GlobalLanguage(1031); + + // [WHEN] The Recurring General Journal page is opened on the line + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + LocalizedRecurringFrequency := RecurringGeneralJournal."Recurring Frequency".Value; + RecurringGeneralJournal.Close(); + + // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) + ExpectedLocalizedRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); + GlobalLanguage(PreviousGlobalLanguage); + Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + end; + local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") begin LibraryERM.CreateGenJournalTemplate(GenJournalTemplate); diff --git a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 48efb7498c9..9a861c8f27d 100644 --- a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -43,6 +43,8 @@ codeunit 134920 "ERM General Journal UT" RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; + YearlyRecurringFrequencyTok: Label '1Y', Locked = true; + RecurringFrequencyNotLocalizedErr: Label 'The recurring frequency should be displayed using the localized date formula tokens.'; IsInitialized: Boolean; [Test] @@ -6035,6 +6037,47 @@ codeunit 134920 "ERM General Journal UT" Assert.ExpectedError(StrSubstNo(InvalidRecurringFrequencyErr, InvalidRecurringFrequencyTok)); end; + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyDisplaysLocalizedGermanDateFormula() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + PreviousGlobalLanguage: Integer; + InvariantRecurringFrequency: Text; + LocalizedRecurringFrequency: Text; + ExpectedLocalizedRecurringFrequency: Text; + begin + // [SCENARIO 646602] In a German session the Recurring Frequency field exposes the localized date formula token (1J for a year) that Edit in Excel exports, not the invariant token (1Y). + Initialize(); + + // [GIVEN] A recurring journal line with a yearly Recurring Frequency stored while the session is English (invariant tokens) + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Assert.IsTrue(Evaluate(RecurringFrequency, YearlyRecurringFrequencyTok), RecurringFrequencyNotValidErr); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + InvariantRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); + + // [GIVEN] The session language is German (DEU) + PreviousGlobalLanguage := GlobalLanguage(); + GlobalLanguage(1031); + + // [WHEN] The Recurring General Journal page is opened on the line + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + LocalizedRecurringFrequency := RecurringGeneralJournal."Recurring Frequency".Value; + RecurringGeneralJournal.Close(); + + // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) + ExpectedLocalizedRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); + GlobalLanguage(PreviousGlobalLanguage); + Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + end; + local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") begin LibraryERM.CreateGenJournalTemplate(GenJournalTemplate); diff --git a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index f966d491c8c..1eeb864f7ab 100644 --- a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -43,6 +43,8 @@ codeunit 134920 "ERM General Journal UT" RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; + YearlyRecurringFrequencyTok: Label '1Y', Locked = true; + RecurringFrequencyNotLocalizedErr: Label 'The recurring frequency should be displayed using the localized date formula tokens.'; IsInitialized: Boolean; [Test] @@ -6231,6 +6233,47 @@ codeunit 134920 "ERM General Journal UT" Assert.ExpectedError(StrSubstNo(InvalidRecurringFrequencyErr, InvalidRecurringFrequencyTok)); end; + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyDisplaysLocalizedGermanDateFormula() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + PreviousGlobalLanguage: Integer; + InvariantRecurringFrequency: Text; + LocalizedRecurringFrequency: Text; + ExpectedLocalizedRecurringFrequency: Text; + begin + // [SCENARIO 646602] In a German session the Recurring Frequency field exposes the localized date formula token (1J for a year) that Edit in Excel exports, not the invariant token (1Y). + Initialize(); + + // [GIVEN] A recurring journal line with a yearly Recurring Frequency stored while the session is English (invariant tokens) + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Assert.IsTrue(Evaluate(RecurringFrequency, YearlyRecurringFrequencyTok), RecurringFrequencyNotValidErr); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + InvariantRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); + + // [GIVEN] The session language is German (DEU) + PreviousGlobalLanguage := GlobalLanguage(); + GlobalLanguage(1031); + + // [WHEN] The Recurring General Journal page is opened on the line + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + LocalizedRecurringFrequency := RecurringGeneralJournal."Recurring Frequency".Value; + RecurringGeneralJournal.Close(); + + // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) + ExpectedLocalizedRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); + GlobalLanguage(PreviousGlobalLanguage); + Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + end; + local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") begin LibraryERM.CreateGenJournalTemplate(GenJournalTemplate); diff --git a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 334856d86d1..1873fdde50e 100644 --- a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -43,6 +43,8 @@ codeunit 134920 "ERM General Journal UT" RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; + YearlyRecurringFrequencyTok: Label '1Y', Locked = true; + RecurringFrequencyNotLocalizedErr: Label 'The recurring frequency should be displayed using the localized date formula tokens.'; IsInitialized: Boolean; [Test] @@ -6260,6 +6262,47 @@ codeunit 134920 "ERM General Journal UT" Assert.ExpectedError(StrSubstNo(InvalidRecurringFrequencyErr, InvalidRecurringFrequencyTok)); end; + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyDisplaysLocalizedGermanDateFormula() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + PreviousGlobalLanguage: Integer; + InvariantRecurringFrequency: Text; + LocalizedRecurringFrequency: Text; + ExpectedLocalizedRecurringFrequency: Text; + begin + // [SCENARIO 646602] In a German session the Recurring Frequency field exposes the localized date formula token (1J for a year) that Edit in Excel exports, not the invariant token (1Y). + Initialize(); + + // [GIVEN] A recurring journal line with a yearly Recurring Frequency stored while the session is English (invariant tokens) + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Assert.IsTrue(Evaluate(RecurringFrequency, YearlyRecurringFrequencyTok), RecurringFrequencyNotValidErr); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + InvariantRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); + + // [GIVEN] The session language is German (DEU) + PreviousGlobalLanguage := GlobalLanguage(); + GlobalLanguage(1031); + + // [WHEN] The Recurring General Journal page is opened on the line + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + LocalizedRecurringFrequency := RecurringGeneralJournal."Recurring Frequency".Value; + RecurringGeneralJournal.Close(); + + // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) + ExpectedLocalizedRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); + GlobalLanguage(PreviousGlobalLanguage); + Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + end; + local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") begin LibraryERM.CreateGenJournalTemplate(GenJournalTemplate); diff --git a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index b7f0f976e61..063c5bf0f3e 100644 --- a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -43,6 +43,8 @@ codeunit 134920 "ERM General Journal UT" RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; + YearlyRecurringFrequencyTok: Label '1Y', Locked = true; + RecurringFrequencyNotLocalizedErr: Label 'The recurring frequency should be displayed using the localized date formula tokens.'; IsInitialized: Boolean; [Test] @@ -6231,6 +6233,47 @@ codeunit 134920 "ERM General Journal UT" Assert.ExpectedError(StrSubstNo(InvalidRecurringFrequencyErr, InvalidRecurringFrequencyTok)); end; + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyDisplaysLocalizedGermanDateFormula() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + PreviousGlobalLanguage: Integer; + InvariantRecurringFrequency: Text; + LocalizedRecurringFrequency: Text; + ExpectedLocalizedRecurringFrequency: Text; + begin + // [SCENARIO 646602] In a German session the Recurring Frequency field exposes the localized date formula token (1J for a year) that Edit in Excel exports, not the invariant token (1Y). + Initialize(); + + // [GIVEN] A recurring journal line with a yearly Recurring Frequency stored while the session is English (invariant tokens) + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Assert.IsTrue(Evaluate(RecurringFrequency, YearlyRecurringFrequencyTok), RecurringFrequencyNotValidErr); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + InvariantRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); + + // [GIVEN] The session language is German (DEU) + PreviousGlobalLanguage := GlobalLanguage(); + GlobalLanguage(1031); + + // [WHEN] The Recurring General Journal page is opened on the line + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + LocalizedRecurringFrequency := RecurringGeneralJournal."Recurring Frequency".Value; + RecurringGeneralJournal.Close(); + + // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) + ExpectedLocalizedRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); + GlobalLanguage(PreviousGlobalLanguage); + Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + end; + local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") begin LibraryERM.CreateGenJournalTemplate(GenJournalTemplate); diff --git a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index ac731336e5e..dc4ef0ff486 100644 --- a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -43,6 +43,8 @@ codeunit 134920 "ERM General Journal UT" RecurringFrequencyNotDisplayedErr: Label 'Recurring Frequency should be displayed as the formatted date formula.'; RecurringFrequencyNotPersistedErr: Label 'The entered recurring frequency was not persisted.'; RecurringFrequencyNotClearedErr: Label 'The recurring frequency should be cleared.'; + YearlyRecurringFrequencyTok: Label '1Y', Locked = true; + RecurringFrequencyNotLocalizedErr: Label 'The recurring frequency should be displayed using the localized date formula tokens.'; IsInitialized: Boolean; [Test] @@ -6231,6 +6233,47 @@ codeunit 134920 "ERM General Journal UT" Assert.ExpectedError(StrSubstNo(InvalidRecurringFrequencyErr, InvalidRecurringFrequencyTok)); end; + [Test] + [Scope('OnPrem')] + procedure RecurringFrequencyDisplaysLocalizedGermanDateFormula() + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + RecurringFrequency: DateFormula; + RecurringGeneralJournal: TestPage "Recurring General Journal"; + PreviousGlobalLanguage: Integer; + InvariantRecurringFrequency: Text; + LocalizedRecurringFrequency: Text; + ExpectedLocalizedRecurringFrequency: Text; + begin + // [SCENARIO 646602] In a German session the Recurring Frequency field exposes the localized date formula token (1J for a year) that Edit in Excel exports, not the invariant token (1Y). + Initialize(); + + // [GIVEN] A recurring journal line with a yearly Recurring Frequency stored while the session is English (invariant tokens) + CreateRecurringGeneralJournalLine(GenJournalLine, GenJournalTemplate, GenJournalBatch); + Assert.IsTrue(Evaluate(RecurringFrequency, YearlyRecurringFrequencyTok), RecurringFrequencyNotValidErr); + GenJournalLine.Validate("Recurring Frequency", RecurringFrequency); + GenJournalLine.Modify(true); + InvariantRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); + + // [GIVEN] The session language is German (DEU) + PreviousGlobalLanguage := GlobalLanguage(); + GlobalLanguage(1031); + + // [WHEN] The Recurring General Journal page is opened on the line + RecurringGeneralJournal.Trap(); + Page.Run(Page::"Recurring General Journal", GenJournalLine); + LocalizedRecurringFrequency := RecurringGeneralJournal."Recurring Frequency".Value; + RecurringGeneralJournal.Close(); + + // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) + ExpectedLocalizedRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); + GlobalLanguage(PreviousGlobalLanguage); + Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + end; + local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") begin LibraryERM.CreateGenJournalTemplate(GenJournalTemplate); From bc618974a9ce23a049cc5b9cedf8530d26d8527b Mon Sep 17 00:00:00 2001 From: v-sanjmaurya Date: Mon, 17 Aug 2026 09:51:28 +0530 Subject: [PATCH 11/11] Fix S2: restore session language via cleanup path in localized German recurring frequency test --- .../ERMGeneralJournalUT.Codeunit.al | 25 +++++++++++++------ .../ERMGeneralJournalUT.Codeunit.al | 25 +++++++++++++------ .../ERMGeneralJournalUT.Codeunit.al | 25 +++++++++++++------ .../ERMGeneralJournalUT.Codeunit.al | 25 +++++++++++++------ .../ERMGeneralJournalUT.Codeunit.al | 25 +++++++++++++------ .../ERMGeneralJournalUT.Codeunit.al | 25 +++++++++++++------ 6 files changed, 108 insertions(+), 42 deletions(-) diff --git a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 888e0c2df29..7bf3ea7144d 100644 --- a/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/APAC/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -6242,11 +6242,11 @@ codeunit 134920 "ERM General Journal UT" GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; RecurringFrequency: DateFormula; - RecurringGeneralJournal: TestPage "Recurring General Journal"; PreviousGlobalLanguage: Integer; InvariantRecurringFrequency: Text; LocalizedRecurringFrequency: Text; ExpectedLocalizedRecurringFrequency: Text; + LocalizedValuesRead: Boolean; begin // [SCENARIO 646602] In a German session the Recurring Frequency field exposes the localized date formula token (1J for a year) that Edit in Excel exports, not the invariant token (1Y). Initialize(); @@ -6262,17 +6262,28 @@ codeunit 134920 "ERM General Journal UT" PreviousGlobalLanguage := GlobalLanguage(); GlobalLanguage(1031); - // [WHEN] The Recurring General Journal page is opened on the line + // [WHEN] The Recurring General Journal page is opened on the line and its localized values are read + // Restore the session language through a cleanup path so it is always reset, even if the page interaction fails, preventing German from leaking into later tests + LocalizedValuesRead := TryReadLocalizedRecurringFrequency(GenJournalLine, LocalizedRecurringFrequency, ExpectedLocalizedRecurringFrequency); + GlobalLanguage(PreviousGlobalLanguage); + if not LocalizedValuesRead then + Error(GetLastErrorText()); + + // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) + Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + end; + + [TryFunction] + local procedure TryReadLocalizedRecurringFrequency(var GenJournalLine: Record "Gen. Journal Line"; var LocalizedRecurringFrequency: Text; var ExpectedLocalizedRecurringFrequency: Text) + var + RecurringGeneralJournal: TestPage "Recurring General Journal"; + begin RecurringGeneralJournal.Trap(); Page.Run(Page::"Recurring General Journal", GenJournalLine); LocalizedRecurringFrequency := RecurringGeneralJournal."Recurring Frequency".Value; RecurringGeneralJournal.Close(); - - // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) ExpectedLocalizedRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); - GlobalLanguage(PreviousGlobalLanguage); - Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); - Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); end; local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") diff --git a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 9a861c8f27d..7a652d29ddf 100644 --- a/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CH/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -6045,11 +6045,11 @@ codeunit 134920 "ERM General Journal UT" GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; RecurringFrequency: DateFormula; - RecurringGeneralJournal: TestPage "Recurring General Journal"; PreviousGlobalLanguage: Integer; InvariantRecurringFrequency: Text; LocalizedRecurringFrequency: Text; ExpectedLocalizedRecurringFrequency: Text; + LocalizedValuesRead: Boolean; begin // [SCENARIO 646602] In a German session the Recurring Frequency field exposes the localized date formula token (1J for a year) that Edit in Excel exports, not the invariant token (1Y). Initialize(); @@ -6065,17 +6065,28 @@ codeunit 134920 "ERM General Journal UT" PreviousGlobalLanguage := GlobalLanguage(); GlobalLanguage(1031); - // [WHEN] The Recurring General Journal page is opened on the line + // [WHEN] The Recurring General Journal page is opened on the line and its localized values are read + // Restore the session language through a cleanup path so it is always reset, even if the page interaction fails, preventing German from leaking into later tests + LocalizedValuesRead := TryReadLocalizedRecurringFrequency(GenJournalLine, LocalizedRecurringFrequency, ExpectedLocalizedRecurringFrequency); + GlobalLanguage(PreviousGlobalLanguage); + if not LocalizedValuesRead then + Error(GetLastErrorText()); + + // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) + Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + end; + + [TryFunction] + local procedure TryReadLocalizedRecurringFrequency(var GenJournalLine: Record "Gen. Journal Line"; var LocalizedRecurringFrequency: Text; var ExpectedLocalizedRecurringFrequency: Text) + var + RecurringGeneralJournal: TestPage "Recurring General Journal"; + begin RecurringGeneralJournal.Trap(); Page.Run(Page::"Recurring General Journal", GenJournalLine); LocalizedRecurringFrequency := RecurringGeneralJournal."Recurring Frequency".Value; RecurringGeneralJournal.Close(); - - // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) ExpectedLocalizedRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); - GlobalLanguage(PreviousGlobalLanguage); - Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); - Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); end; local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") diff --git a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 1eeb864f7ab..cc9099c0250 100644 --- a/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/CZ/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -6241,11 +6241,11 @@ codeunit 134920 "ERM General Journal UT" GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; RecurringFrequency: DateFormula; - RecurringGeneralJournal: TestPage "Recurring General Journal"; PreviousGlobalLanguage: Integer; InvariantRecurringFrequency: Text; LocalizedRecurringFrequency: Text; ExpectedLocalizedRecurringFrequency: Text; + LocalizedValuesRead: Boolean; begin // [SCENARIO 646602] In a German session the Recurring Frequency field exposes the localized date formula token (1J for a year) that Edit in Excel exports, not the invariant token (1Y). Initialize(); @@ -6261,17 +6261,28 @@ codeunit 134920 "ERM General Journal UT" PreviousGlobalLanguage := GlobalLanguage(); GlobalLanguage(1031); - // [WHEN] The Recurring General Journal page is opened on the line + // [WHEN] The Recurring General Journal page is opened on the line and its localized values are read + // Restore the session language through a cleanup path so it is always reset, even if the page interaction fails, preventing German from leaking into later tests + LocalizedValuesRead := TryReadLocalizedRecurringFrequency(GenJournalLine, LocalizedRecurringFrequency, ExpectedLocalizedRecurringFrequency); + GlobalLanguage(PreviousGlobalLanguage); + if not LocalizedValuesRead then + Error(GetLastErrorText()); + + // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) + Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + end; + + [TryFunction] + local procedure TryReadLocalizedRecurringFrequency(var GenJournalLine: Record "Gen. Journal Line"; var LocalizedRecurringFrequency: Text; var ExpectedLocalizedRecurringFrequency: Text) + var + RecurringGeneralJournal: TestPage "Recurring General Journal"; + begin RecurringGeneralJournal.Trap(); Page.Run(Page::"Recurring General Journal", GenJournalLine); LocalizedRecurringFrequency := RecurringGeneralJournal."Recurring Frequency".Value; RecurringGeneralJournal.Close(); - - // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) ExpectedLocalizedRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); - GlobalLanguage(PreviousGlobalLanguage); - Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); - Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); end; local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") diff --git a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 1873fdde50e..99a5a31c45e 100644 --- a/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/ES/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -6270,11 +6270,11 @@ codeunit 134920 "ERM General Journal UT" GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; RecurringFrequency: DateFormula; - RecurringGeneralJournal: TestPage "Recurring General Journal"; PreviousGlobalLanguage: Integer; InvariantRecurringFrequency: Text; LocalizedRecurringFrequency: Text; ExpectedLocalizedRecurringFrequency: Text; + LocalizedValuesRead: Boolean; begin // [SCENARIO 646602] In a German session the Recurring Frequency field exposes the localized date formula token (1J for a year) that Edit in Excel exports, not the invariant token (1Y). Initialize(); @@ -6290,17 +6290,28 @@ codeunit 134920 "ERM General Journal UT" PreviousGlobalLanguage := GlobalLanguage(); GlobalLanguage(1031); - // [WHEN] The Recurring General Journal page is opened on the line + // [WHEN] The Recurring General Journal page is opened on the line and its localized values are read + // Restore the session language through a cleanup path so it is always reset, even if the page interaction fails, preventing German from leaking into later tests + LocalizedValuesRead := TryReadLocalizedRecurringFrequency(GenJournalLine, LocalizedRecurringFrequency, ExpectedLocalizedRecurringFrequency); + GlobalLanguage(PreviousGlobalLanguage); + if not LocalizedValuesRead then + Error(GetLastErrorText()); + + // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) + Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + end; + + [TryFunction] + local procedure TryReadLocalizedRecurringFrequency(var GenJournalLine: Record "Gen. Journal Line"; var LocalizedRecurringFrequency: Text; var ExpectedLocalizedRecurringFrequency: Text) + var + RecurringGeneralJournal: TestPage "Recurring General Journal"; + begin RecurringGeneralJournal.Trap(); Page.Run(Page::"Recurring General Journal", GenJournalLine); LocalizedRecurringFrequency := RecurringGeneralJournal."Recurring Frequency".Value; RecurringGeneralJournal.Close(); - - // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) ExpectedLocalizedRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); - GlobalLanguage(PreviousGlobalLanguage); - Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); - Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); end; local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") diff --git a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index 063c5bf0f3e..26c939c9300 100644 --- a/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/IT/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -6241,11 +6241,11 @@ codeunit 134920 "ERM General Journal UT" GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; RecurringFrequency: DateFormula; - RecurringGeneralJournal: TestPage "Recurring General Journal"; PreviousGlobalLanguage: Integer; InvariantRecurringFrequency: Text; LocalizedRecurringFrequency: Text; ExpectedLocalizedRecurringFrequency: Text; + LocalizedValuesRead: Boolean; begin // [SCENARIO 646602] In a German session the Recurring Frequency field exposes the localized date formula token (1J for a year) that Edit in Excel exports, not the invariant token (1Y). Initialize(); @@ -6261,17 +6261,28 @@ codeunit 134920 "ERM General Journal UT" PreviousGlobalLanguage := GlobalLanguage(); GlobalLanguage(1031); - // [WHEN] The Recurring General Journal page is opened on the line + // [WHEN] The Recurring General Journal page is opened on the line and its localized values are read + // Restore the session language through a cleanup path so it is always reset, even if the page interaction fails, preventing German from leaking into later tests + LocalizedValuesRead := TryReadLocalizedRecurringFrequency(GenJournalLine, LocalizedRecurringFrequency, ExpectedLocalizedRecurringFrequency); + GlobalLanguage(PreviousGlobalLanguage); + if not LocalizedValuesRead then + Error(GetLastErrorText()); + + // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) + Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + end; + + [TryFunction] + local procedure TryReadLocalizedRecurringFrequency(var GenJournalLine: Record "Gen. Journal Line"; var LocalizedRecurringFrequency: Text; var ExpectedLocalizedRecurringFrequency: Text) + var + RecurringGeneralJournal: TestPage "Recurring General Journal"; + begin RecurringGeneralJournal.Trap(); Page.Run(Page::"Recurring General Journal", GenJournalLine); LocalizedRecurringFrequency := RecurringGeneralJournal."Recurring Frequency".Value; RecurringGeneralJournal.Close(); - - // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) ExpectedLocalizedRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); - GlobalLanguage(PreviousGlobalLanguage); - Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); - Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); end; local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch") diff --git a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al index dc4ef0ff486..37dc949e803 100644 --- a/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al +++ b/src/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al @@ -6241,11 +6241,11 @@ codeunit 134920 "ERM General Journal UT" GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; RecurringFrequency: DateFormula; - RecurringGeneralJournal: TestPage "Recurring General Journal"; PreviousGlobalLanguage: Integer; InvariantRecurringFrequency: Text; LocalizedRecurringFrequency: Text; ExpectedLocalizedRecurringFrequency: Text; + LocalizedValuesRead: Boolean; begin // [SCENARIO 646602] In a German session the Recurring Frequency field exposes the localized date formula token (1J for a year) that Edit in Excel exports, not the invariant token (1Y). Initialize(); @@ -6261,17 +6261,28 @@ codeunit 134920 "ERM General Journal UT" PreviousGlobalLanguage := GlobalLanguage(); GlobalLanguage(1031); - // [WHEN] The Recurring General Journal page is opened on the line + // [WHEN] The Recurring General Journal page is opened on the line and its localized values are read + // Restore the session language through a cleanup path so it is always reset, even if the page interaction fails, preventing German from leaking into later tests + LocalizedValuesRead := TryReadLocalizedRecurringFrequency(GenJournalLine, LocalizedRecurringFrequency, ExpectedLocalizedRecurringFrequency); + GlobalLanguage(PreviousGlobalLanguage); + if not LocalizedValuesRead then + Error(GetLastErrorText()); + + // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) + Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); + end; + + [TryFunction] + local procedure TryReadLocalizedRecurringFrequency(var GenJournalLine: Record "Gen. Journal Line"; var LocalizedRecurringFrequency: Text; var ExpectedLocalizedRecurringFrequency: Text) + var + RecurringGeneralJournal: TestPage "Recurring General Journal"; + begin RecurringGeneralJournal.Trap(); Page.Run(Page::"Recurring General Journal", GenJournalLine); LocalizedRecurringFrequency := RecurringGeneralJournal."Recurring Frequency".Value; RecurringGeneralJournal.Close(); - - // [THEN] The field shows the German localized date formula (1J), matching Format() in the German session and differing from the invariant token (1Y) ExpectedLocalizedRecurringFrequency := Format(GenJournalLine."Recurring Frequency"); - GlobalLanguage(PreviousGlobalLanguage); - Assert.AreEqual(ExpectedLocalizedRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); - Assert.AreNotEqual(InvariantRecurringFrequency, LocalizedRecurringFrequency, RecurringFrequencyNotLocalizedErr); end; local procedure CreateRecurringGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var GenJournalBatch: Record "Gen. Journal Batch")