Skip to content

Commit 53f5cfe

Browse files
committed
update
1 parent dd8b28a commit 53f5cfe

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+31541
-0
lines changed

Apps/W1/ApplicationTestLibrary/Assert.Codeunit.al

Lines changed: 565 additions & 0 deletions
Large diffs are not rendered by default.

Apps/W1/ApplicationTestLibrary/LibraryAssembly.Codeunit.al

Lines changed: 3299 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
/// <summary>
2+
/// Provides utility functions for creating and managing cash flow forecasts and related test scenarios.
3+
/// </summary>
4+
codeunit 131331 "Library - Cash Flow"
5+
{
6+
7+
trigger OnRun()
8+
begin
9+
end;
10+
11+
var
12+
LibraryUtility: Codeunit "Library - Utility";
13+
LibraryERM: Codeunit "Library - ERM";
14+
LibrarySales: Codeunit "Library - Sales";
15+
LibraryRandom: Codeunit "Library - Random";
16+
17+
procedure FindCashFlowCard(var CashFlowForecast: Record "Cash Flow Forecast")
18+
begin
19+
CashFlowForecast.FindFirst();
20+
end;
21+
22+
procedure FindCashFlowAccount(var CashFlowAccount: Record "Cash Flow Account")
23+
begin
24+
CashFlowAccount.SetRange("Account Type", CashFlowAccount."Account Type"::Entry);
25+
CashFlowAccount.FindFirst();
26+
end;
27+
28+
procedure FindCashFlowAnalysisView(var AnalysisView: Record "Analysis View")
29+
begin
30+
AnalysisView.Reset();
31+
AnalysisView.SetRange("Account Source", AnalysisView."Account Source"::"Cash Flow Account");
32+
AnalysisView.FindFirst();
33+
end;
34+
35+
procedure CreateJournalLine(var CFWorksheetLine: Record "Cash Flow Worksheet Line"; CFNo: Code[20]; CFAccountNo: Code[20])
36+
var
37+
LibraryUtility: Codeunit "Library - Utility";
38+
RecRef: RecordRef;
39+
begin
40+
RecRef.GetTable(CFWorksheetLine);
41+
CFWorksheetLine.Validate("Line No.", LibraryUtility.GetNewLineNo(RecRef, CFWorksheetLine.FieldNo("Line No.")));
42+
CFWorksheetLine.Insert(true);
43+
CFWorksheetLine.Validate("Cash Flow Forecast No.", CFNo);
44+
CFWorksheetLine.Validate("Cash Flow Account No.", CFAccountNo);
45+
CFWorksheetLine.Validate("Cash Flow Date", WorkDate()); // Defaults to work date.
46+
CFWorksheetLine.Modify(true);
47+
end;
48+
49+
procedure DeleteJournalLine()
50+
begin
51+
end;
52+
53+
procedure FillJournal(ConsiderSource: array[16] of Boolean; CFNo: Code[20]; GroupByDocumentType: Boolean)
54+
var
55+
CFWorksheetLine: Record "Cash Flow Worksheet Line";
56+
SuggestWorksheetLines: Report "Suggest Worksheet Lines";
57+
begin
58+
CFWorksheetLine.Init();
59+
SuggestWorksheetLines.InitializeRequest(ConsiderSource, CFNo, '', GroupByDocumentType);
60+
SuggestWorksheetLines.UseRequestPage := false;
61+
SuggestWorksheetLines.Run();
62+
end;
63+
64+
procedure FillBudgetJournal(CFFunds: Boolean; CFNo: Code[20]; GLBudgetName: Code[10])
65+
var
66+
CFWorksheetLine: Record "Cash Flow Worksheet Line";
67+
SuggestWorksheetLines: Report "Suggest Worksheet Lines";
68+
ConsiderSource: array[16] of Boolean;
69+
SourceType: Option ,Customer,Vendor,"Liquid Funds","Cash Flow Manual Expense","Cash Flow Manual Revenue","Sales Order","Purchase Order","Budgeted Fixed Asset","Sale of Fixed Asset","Service Order","G/L Budget",,,Jobs,Tax;
70+
begin
71+
CFWorksheetLine.Init();
72+
ConsiderSource[SourceType::"Liquid Funds"] := CFFunds;
73+
ConsiderSource[SourceType::"G/L Budget"] := true;
74+
SuggestWorksheetLines.InitializeRequest(ConsiderSource, CFNo, GLBudgetName, false);
75+
SuggestWorksheetLines.UseRequestPage := false;
76+
SuggestWorksheetLines.Run();
77+
end;
78+
79+
procedure ClearJournal()
80+
var
81+
CFWorksheetLine: Record "Cash Flow Worksheet Line";
82+
begin
83+
CFWorksheetLine.DeleteAll(true);
84+
end;
85+
86+
procedure PostJournal()
87+
var
88+
CFWorksheetLine: Record "Cash Flow Worksheet Line";
89+
begin
90+
CODEUNIT.Run(CODEUNIT::"Cash Flow Wksh.-Register Batch", CFWorksheetLine);
91+
end;
92+
93+
procedure PostJournalLines(var CFWorksheetLine: Record "Cash Flow Worksheet Line")
94+
begin
95+
CFWorksheetLine.FindSet();
96+
CODEUNIT.Run(CODEUNIT::"Cash Flow Wksh.-Register Batch", CFWorksheetLine);
97+
end;
98+
99+
procedure CreateManualLinePayment(var CFManualExpense: Record "Cash Flow Manual Expense"; CFAccountNo: Code[20])
100+
begin
101+
CFManualExpense.Init();
102+
CFManualExpense.Validate("Cash Flow Account No.", CFAccountNo);
103+
CFManualExpense.Validate(Code,
104+
LibraryUtility.GenerateRandomCode(CFManualExpense.FieldNo(Code), DATABASE::"Cash Flow Manual Expense"));
105+
CFManualExpense.Validate("Starting Date", WorkDate()); // Required field to post
106+
CFManualExpense.Insert(true);
107+
end;
108+
109+
procedure CreateManualLineRevenue(var CFManualRevenue: Record "Cash Flow Manual Revenue"; CFAccountNo: Code[20])
110+
begin
111+
CFManualRevenue.Init();
112+
CFManualRevenue.Validate("Cash Flow Account No.", CFAccountNo);
113+
CFManualRevenue.Validate(Code,
114+
LibraryUtility.GenerateRandomCode(CFManualRevenue.FieldNo(Code), DATABASE::"Cash Flow Manual Revenue"));
115+
CFManualRevenue.Validate("Starting Date", WorkDate()); // Required field to post
116+
CFManualRevenue.Insert(true);
117+
end;
118+
119+
procedure DeleteManualLine()
120+
begin
121+
end;
122+
123+
procedure CreateCashFlowCard(var CashFlowForecast: Record "Cash Flow Forecast")
124+
begin
125+
CashFlowForecast.Init();
126+
CashFlowForecast.Validate(
127+
"No.", LibraryUtility.GenerateRandomCode(CashFlowForecast.FieldNo("No."), DATABASE::"Cash Flow Forecast"));
128+
CashFlowForecast.Insert(true);
129+
end;
130+
131+
procedure CreateCashFlowAccount(var CashFlowAccount: Record "Cash Flow Account"; AccountType: Enum "Cash Flow Account Type")
132+
begin
133+
CashFlowAccount.Init();
134+
CashFlowAccount.Validate("No.",
135+
LibraryUtility.GenerateRandomCode(CashFlowAccount.FieldNo("No."), DATABASE::"Cash Flow Account"));
136+
CashFlowAccount.Validate("Account Type", AccountType);
137+
CashFlowAccount.Validate(Name,
138+
LibraryUtility.GenerateRandomCode(CashFlowAccount.FieldNo(Name), DATABASE::"Cash Flow Account"));
139+
CashFlowAccount.Insert(true);
140+
end;
141+
142+
procedure MockCashFlowCustOverdueData()
143+
var
144+
GenJournalLine: Record "Gen. Journal Line";
145+
GenJournalBatch: Record "Gen. Journal Batch";
146+
begin
147+
LibraryERM.SelectLastGenJnBatch(GenJournalBatch);
148+
LibraryERM.ClearGenJournalLines(GenJournalBatch);
149+
LibraryERM.CreateGeneralJnlLineWithBalAcc(
150+
GenJournalLine, GenJournalBatch."Journal Template Name", GenJournalBatch.Name,
151+
GenJournalLine."Document Type"::Invoice, GenJournalLine."Account Type"::Customer, LibrarySales.CreateCustomerNo(),
152+
GenJournalLine."Bal. Account Type"::"G/L Account", LibraryERM.CreateGLAccountNo(),
153+
LibraryRandom.RandDecInRange(100, 200, 2));
154+
GenJournalLine."Due Date" := GenJournalLine."Posting Date" - 1;
155+
GenJournalLine.Modify();
156+
LibraryERM.PostGeneralJnlLine(GenJournalLine);
157+
end;
158+
}
159+

0 commit comments

Comments
 (0)