Skip to content

Commit 1cd5eb1

Browse files
authored
1 parent 5d9a4d3 commit 1cd5eb1

File tree

125 files changed

+4995
-1216
lines changed

Some content is hidden

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

125 files changed

+4995
-1216
lines changed

.github/AL-Go-Settings.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"runs-on": "windows-latest",
66
"cacheImageName": "",
77
"UsePsSession": false,
8-
"artifact": "https://bcinsider-fvh2ekdjecfjd6gk.b02.azurefd.net/sandbox/25.0.20074.0/base",
8+
"artifact": "https://bcinsider-fvh2ekdjecfjd6gk.b02.azurefd.net/sandbox/25.0.20906.0/base",
99
"country": "base",
1010
"useProjectDependencies": true,
1111
"repoVersion": "25.0",

Apps/CZ/AdvancePaymentsLocalization/app/Src/Codeunits/GenJnlPostLineHandlerCZZ.Codeunit.al

+1-9
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,11 @@ codeunit 31003 "Gen.Jnl.-Post Line Handler CZZ"
2626

2727
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", 'OnBeforeCreateGLEntriesForTotalAmountsV19', '', false, false)]
2828
local procedure GenJnlPostLineOnBeforeCreateGLEntriesForTotalAmounts(GenJournalLine: Record "Gen. Journal Line"; var GLAccNo: Code[20])
29-
var
30-
SalesAdvLetterManagement: Codeunit "SalesAdvLetterManagement CZZ";
31-
PurchAdvLetterManagement: Codeunit "PurchAdvLetterManagement CZZ";
3229
begin
3330
if not GenJournalLine."Use Advance G/L Account CZZ" then
3431
exit;
3532

36-
case GenJournalLine."Account Type" of
37-
GenJournalLine."Account Type"::Customer:
38-
GLAccNo := SalesAdvLetterManagement.GetAdvanceGLAccount(GenJournalLine);
39-
GenJournalLine."Account Type"::Vendor:
40-
GLAccNo := PurchAdvLetterManagement.GetAdvanceGLAccount(GenJournalLine);
41-
end;
33+
GLAccNo := GenJournalLine.GetAdvanceGLAccountNoCZZ();
4234
end;
4335

4436
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", 'OnBeforePostApply', '', false, false)]

Apps/CZ/AdvancePaymentsLocalization/app/Src/Codeunits/PurchAdvLetterManagementCZZ.Codeunit.al

+77-165
Large diffs are not rendered by default.

Apps/CZ/AdvancePaymentsLocalization/app/Src/Codeunits/PurchAdvLetterPostCZZ.Codeunit.al

+296-109
Large diffs are not rendered by default.

Apps/CZ/AdvancePaymentsLocalization/app/Src/Codeunits/SalesAdvLetterManagementCZZ.Codeunit.al

+76-25
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,9 @@ codeunit 31002 "SalesAdvLetterManagement CZZ"
228228
AdvanceLetterLinkCZZ.GetLetterLink(TempAdvanceLetterLinkBufferCZZ);
229229
TempAdvanceLetterLinkBufferCZZ.SetFilter(Amount, '>0');
230230
if not TempAdvanceLetterLinkBufferCZZ.IsEmpty() then begin
231-
PostingDate := GetPostingDateUI(CustLedgerEntry."Posting Date");
231+
PostingDate := CustLedgerEntry."Posting Date";
232+
if not GetPostingDateUI(PostingDate) then
233+
exit;
232234
if PostingDate = 0D then
233235
Error(PostingDateEmptyErr);
234236
LinkAdvancePayment(CustLedgerEntry, TempAdvanceLetterLinkBufferCZZ, PostingDate);
@@ -266,7 +268,9 @@ codeunit 31002 "SalesAdvLetterManagement CZZ"
266268
var
267269
PostingDate: Date;
268270
begin
269-
PostingDate := GetPostingDateUI(CustLedgerEntry."Posting Date");
271+
PostingDate := CustLedgerEntry."Posting Date";
272+
if not GetPostingDateUI(PostingDate) then
273+
exit;
270274
if PostingDate = 0D then
271275
Error(PostingDateEmptyErr);
272276

@@ -277,7 +281,9 @@ codeunit 31002 "SalesAdvLetterManagement CZZ"
277281
var
278282
PostingDate: Date;
279283
begin
280-
PostingDate := GetPostingDateUI(CustLedgerEntry."Posting Date");
284+
PostingDate := CustLedgerEntry."Posting Date";
285+
if not GetPostingDateUI(PostingDate) then
286+
exit;
281287
if PostingDate = 0D then
282288
Error(PostingDateEmptyErr);
283289

@@ -303,7 +309,8 @@ codeunit 31002 "SalesAdvLetterManagement CZZ"
303309
InsertedEntryNo := SalesAdvLetterPostCZZ.PostAdvancePayment(
304310
CustLedgerEntry, PostedGenJournalLine, GenJnlPostLine, AdvancePostingParametersCZZ);
305311
end;
306-
312+
#if not CLEAN25
313+
[Obsolete('Replaced by GetAdvanceGLAccountNoCZZ function in GenJournalLine.', '25.0')]
307314
procedure GetAdvanceGLAccount(var GenJournalLine: Record "Gen. Journal Line"): Code[20]
308315
var
309316
SalesAdvLetterHeaderCZZ: Record "Sales Adv. Letter Header CZZ";
@@ -315,6 +322,7 @@ codeunit 31002 "SalesAdvLetterManagement CZZ"
315322
AdvanceLetterTemplateCZZ.TestField("Advance Letter G/L Account");
316323
exit(AdvanceLetterTemplateCZZ."Advance Letter G/L Account");
317324
end;
325+
#endif
318326

319327
procedure PostAdvancePaymentVAT(var SalesAdvLetterEntryCZZ: Record "Sales Adv. Letter Entry CZZ"; PostingDate: Date)
320328
begin
@@ -367,11 +375,18 @@ codeunit 31002 "SalesAdvLetterManagement CZZ"
367375

368376
InitVATAmountLine(TempAdvancePostingBufferCZZ, SalesAdvLetterEntryCZZ."Sales Adv. Letter No.", SalesAdvLetterEntryCZZ.Amount, SalesAdvLetterEntryCZZ."Currency Factor");
369377

378+
TempAdvancePostingBufferCZZ.Reset();
379+
TempAdvancePostingBufferCZZ.SetRange("Auxiliary Entry", false);
380+
if TempAdvancePostingBufferCZZ.IsEmpty() then
381+
DocumentNo := SalesAdvLetterHeaderCZZ."No.";
382+
TempAdvancePostingBufferCZZ.Reset();
383+
370384
if Silently or not GuiAllowed then begin
371-
DocumentNo := NoSeries.GetNextNo(AdvanceLetterTemplateCZZ."Advance Letter Invoice Nos.", PostingDate);
385+
if DocumentNo = '' then
386+
DocumentNo := NoSeries.GetNextNo(AdvanceLetterTemplateCZZ."Advance Letter Invoice Nos.", PostingDate);
372387
TempAdvancePostingBufferCZZ.SetFilter(Amount, '<>0');
373388
end else begin
374-
VATDocumentCZZ.InitSalesDocument(AdvanceLetterTemplateCZZ."Advance Letter Invoice Nos.", '',
389+
VATDocumentCZZ.InitSalesDocument(AdvanceLetterTemplateCZZ."Advance Letter Invoice Nos.", DocumentNo,
375390
SalesAdvLetterHeaderCZZ."Document Date", PostingDate, VATDate, 0D,
376391
SalesAdvLetterHeaderCZZ."Currency Code", SalesAdvLetterEntryCZZ."Currency Factor", '', TempAdvancePostingBufferCZZ);
377392
if VATDocumentCZZ.RunModal() <> Action::OK then
@@ -447,18 +462,28 @@ codeunit 31002 "SalesAdvLetterManagement CZZ"
447462

448463
local procedure BufferAdvanceLines(SalesAdvLetterHeaderCZZ: Record "Sales Adv. Letter Header CZZ"; var AdvancePostingBufferCZZ: Record "Advance Posting Buffer CZZ")
449464
var
465+
AdvanceLetterTemplateCZZ: Record "Advance Letter Template CZZ";
450466
SalesAdvLetterLineCZZ: Record "Sales Adv. Letter Line CZZ";
451467
TempAdvancePostingBufferCZZ: Record "Advance Posting Buffer CZZ" temporary;
452468
begin
453469
AdvancePostingBufferCZZ.Reset();
454470
AdvancePostingBufferCZZ.DeleteAll();
455471

472+
AdvanceLetterTemplateCZZ.Get(SalesAdvLetterHeaderCZZ."Advance Letter Code");
473+
456474
SalesAdvLetterLineCZZ.SetRange("Document No.", SalesAdvLetterHeaderCZZ."No.");
457475
SalesAdvLetterLineCZZ.SetFilter(Amount, '<>0');
458476
if SalesAdvLetterLineCZZ.FindSet() then
459477
repeat
460478
TempAdvancePostingBufferCZZ.PrepareForSalesAdvLetterLine(SalesAdvLetterLineCZZ);
461479
AdvancePostingBufferCZZ.Update(TempAdvancePostingBufferCZZ);
480+
481+
if (not AdvanceLetterTemplateCZZ."Post VAT Doc. for Rev. Charge") and
482+
(AdvancePostingBufferCZZ."VAT Calculation Type" = "Tax Calculation Type"::"Reverse Charge VAT")
483+
then begin
484+
AdvancePostingBufferCZZ."Auxiliary Entry" := true;
485+
AdvancePostingBufferCZZ.Modify();
486+
end;
462487
until SalesAdvLetterLineCZZ.Next() = 0;
463488
end;
464489

@@ -517,7 +542,9 @@ codeunit 31002 "SalesAdvLetterManagement CZZ"
517542
begin
518543
CustLedgerEntry.TestField("Advance Letter No. CZZ");
519544

520-
PostingDate := GetPostingDateUI(CustLedgerEntry."Posting Date");
545+
PostingDate := CustLedgerEntry."Posting Date";
546+
if not GetPostingDateUI(PostingDate) then
547+
exit;
521548
if PostingDate = 0D then
522549
Error(PostingDateEmptyErr);
523550

@@ -537,7 +564,9 @@ codeunit 31002 "SalesAdvLetterManagement CZZ"
537564
PostingDate: Date;
538565
begin
539566
CustLedgerEntry.Get(SalesAdvLetterEntryCZZ."Cust. Ledger Entry No.");
540-
PostingDate := GetPostingDateUI(CustLedgerEntry."Posting Date");
567+
PostingDate := CustLedgerEntry."Posting Date";
568+
if not GetPostingDateUI(PostingDate) then
569+
exit;
541570
if PostingDate = 0D then
542571
Error(PostingDateEmptyErr);
543572
UnlinkAdvancePayment(SalesAdvLetterEntryCZZ, PostingDate);
@@ -911,6 +940,8 @@ codeunit 31002 "SalesAdvLetterManagement CZZ"
911940
NoSeries: Codeunit "No. Series";
912941
GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line";
913942
AdvPaymentCloseDialog: Page "Adv. Payment Close Dialog CZZ";
943+
DocumentNo: Code[20];
944+
SourceCode: Code[10];
914945
VATDate: Date;
915946
PostingDate: Date;
916947
CurrencyFactor: Decimal;
@@ -939,15 +970,29 @@ codeunit 31002 "SalesAdvLetterManagement CZZ"
939970
TempAdvancePostingBufferCZZ.Modify();
940971
until SalesAdvLetterEntryCZZ2.Next() = 0;
941972

942-
VATEntry.Get(SalesAdvLetterEntryCZZ."VAT Entry No.");
943973
SalesAdvLetterHeaderCZZ.Get(SalesAdvLetterEntryCZZ."Sales Adv. Letter No.");
944974
AdvanceLetterTemplateCZZ.Get(SalesAdvLetterHeaderCZZ."Advance Letter Code");
945975

976+
// find VAT entry of the VAT document due to source code
977+
SourceCode := '';
978+
VATEntry.SetRange("Document No.", SalesAdvLetterEntryCZZ."Document No.");
979+
VATEntry.SetRange("Posting Date", SalesAdvLetterEntryCZZ."Posting Date");
980+
if VATEntry.FindFirst() then
981+
SourceCode := VATEntry."Source Code";
982+
983+
TempAdvancePostingBufferCZZ.Reset();
984+
TempAdvancePostingBufferCZZ.SetRange("Auxiliary Entry", false);
985+
if TempAdvancePostingBufferCZZ.IsEmpty() then
986+
DocumentNo := SalesAdvLetterHeaderCZZ."No.";
987+
TempAdvancePostingBufferCZZ.Reset();
988+
989+
if DocumentNo = '' then
990+
DocumentNo := NoSeries.GetNextNo(AdvanceLetterTemplateCZZ."Advance Letter Cr. Memo Nos.", WorkDate());
991+
946992
Clear(AdvancePostingParametersCZZ);
947993
AdvancePostingParametersCZZ."Document Type" := "Gen. Journal Document Type"::"Credit Memo";
948-
AdvancePostingParametersCZZ."Document No." :=
949-
NoSeries.GetNextNo(AdvanceLetterTemplateCZZ."Advance Letter Cr. Memo Nos.", WorkDate());
950-
AdvancePostingParametersCZZ."Source Code" := VATEntry."Source Code";
994+
AdvancePostingParametersCZZ."Document No." := DocumentNo;
995+
AdvancePostingParametersCZZ."Source Code" := SourceCode;
951996
AdvancePostingParametersCZZ."Posting Description" := SalesAdvLetterHeaderCZZ."Posting Description";
952997
AdvancePostingParametersCZZ."Posting Date" := PostingDate;
953998
AdvancePostingParametersCZZ."Document Date" := PostingDate;
@@ -1162,8 +1207,10 @@ codeunit 31002 "SalesAdvLetterManagement CZZ"
11621207
if TempAdvancePostingBufferCZZ2.FindSet() then
11631208
repeat
11641209
VATPostingSetup.Get(TempAdvancePostingBufferCZZ2."VAT Bus. Posting Group", TempAdvancePostingBufferCZZ2."VAT Prod. Posting Group");
1165-
PostUnrealizedExchangeRate(SalesAdvLetterEntryCZZ, SalesAdvLetterHeaderCZZ, VATPostingSetup, TempAdvancePostingBufferCZZ2.Amount, TempAdvancePostingBufferCZZ2."VAT Amount",
1166-
SalesAdvLetterEntryCZZ."Entry No.", DetEntryNo, DocumentNo, ToDate, ToDate, PostDescription, GenJnlPostLine, false, false);
1210+
PostUnrealizedExchangeRate(SalesAdvLetterEntryCZZ, SalesAdvLetterHeaderCZZ, VATPostingSetup,
1211+
TempAdvancePostingBufferCZZ2.Amount, TempAdvancePostingBufferCZZ2."VAT Amount",
1212+
SalesAdvLetterEntryCZZ."Entry No.", DetEntryNo, DocumentNo, ToDate, ToDate, PostDescription,
1213+
GenJnlPostLine, false, false, TempAdvancePostingBufferCZZ2."Auxiliary Entry");
11671214
until TempAdvancePostingBufferCZZ2.Next() = 0;
11681215

11691216
SalesAdvLetterPostCZZ.BufferAdvanceVATLines(SalesAdvLetterEntryCZZ, TempAdvancePostingBufferCZZ1, 0D);
@@ -1218,8 +1265,10 @@ codeunit 31002 "SalesAdvLetterManagement CZZ"
12181265
end;
12191266

12201267
VATPostingSetup.Get(SalesAdvLetterEntryCZZ3."VAT Bus. Posting Group", SalesAdvLetterEntryCZZ3."VAT Prod. Posting Group");
1221-
PostUnrealizedExchangeRate(SalesAdvLetterEntryCZZ, SalesAdvLetterHeaderCZZ, VATPostingSetup, -AmountToPost, -VATAmountToPost,
1222-
SalesAdvLetterEntryCZZ2."Entry No.", 0, DocumentNo, SalesAdvLetterEntryCZZ3."Posting Date", SalesAdvLetterEntryCZZ3."VAT Date", PostDescription, GenJnlPostLine, false, false);
1268+
PostUnrealizedExchangeRate(SalesAdvLetterEntryCZZ, SalesAdvLetterHeaderCZZ, VATPostingSetup,
1269+
-AmountToPost, -VATAmountToPost, SalesAdvLetterEntryCZZ2."Entry No.", 0, DocumentNo,
1270+
SalesAdvLetterEntryCZZ3."Posting Date", SalesAdvLetterEntryCZZ3."VAT Date", PostDescription,
1271+
GenJnlPostLine, false, false, SalesAdvLetterEntryCZZ3."Auxiliary Entry");
12231272
until SalesAdvLetterEntryCZZ3.Next() = 0;
12241273
until SalesAdvLetterEntryCZZ2.Next() = 0;
12251274
end;
@@ -1228,7 +1277,7 @@ codeunit 31002 "SalesAdvLetterManagement CZZ"
12281277

12291278
local procedure PostUnrealizedExchangeRate(var SalesAdvLetterEntryCZZ: Record "Sales Adv. Letter Entry CZZ"; var SalesAdvLetterHeaderCZZ: Record "Sales Adv. Letter Header CZZ"; var VATPostingSetup: Record "VAT Posting Setup";
12301279
Amount: Decimal; VATAmount: Decimal; RelatedEntryNo: Integer; RelatedDetEntryNo: Integer; DocumentNo: Code[20]; PostingDate: Date; VATDate: Date; PostDescription: Text[100]; var GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line";
1231-
Correction: Boolean; Preview: Boolean)
1280+
Correction: Boolean; Preview: Boolean; AuxiliaryEntry: Boolean)
12321281
var
12331282
AdvancePostingParametersCZZ: Record "Advance Posting Parameters CZZ";
12341283
begin
@@ -1240,21 +1289,23 @@ codeunit 31002 "SalesAdvLetterManagement CZZ"
12401289
AdvancePostingParametersCZZ."Temporary Entries Only" := Preview;
12411290

12421291
SalesAdvLetterPostCZZ.PostUnrealizedExchangeRate(
1243-
SalesAdvLetterHeaderCZZ, SalesAdvLetterEntryCZZ, VATPostingSetup, Amount, VATAmount, RelatedEntryNo, RelatedDetEntryNo, Correction, GenJnlPostLine, AdvancePostingParametersCZZ);
1292+
SalesAdvLetterHeaderCZZ, SalesAdvLetterEntryCZZ, VATPostingSetup, Amount, VATAmount,
1293+
RelatedEntryNo, RelatedDetEntryNo, Correction, AuxiliaryEntry, GenJnlPostLine, AdvancePostingParametersCZZ);
12441294
end;
12451295

1246-
local procedure GetPostingDateUI(DefaultPostingDate: Date): Date
1296+
local procedure GetPostingDateUI(var PostingDate: Date): Boolean
12471297
var
12481298
GetPostingDateCZZ: Page "Get Posting Date CZZ";
1249-
PostingDate: Date;
12501299
begin
12511300
if not GuiAllowed() then
1252-
exit(DefaultPostingDate);
1301+
exit(true);
1302+
1303+
GetPostingDateCZZ.SetValues(PostingDate);
1304+
if GetPostingDateCZZ.RunModal() <> Action::OK then
1305+
exit(false);
12531306

1254-
GetPostingDateCZZ.SetValues(DefaultPostingDate);
1255-
if GetPostingDateCZZ.RunModal() = Action::OK then
1256-
GetPostingDateCZZ.GetValues(PostingDate);
1257-
exit(PostingDate);
1307+
GetPostingDateCZZ.GetValues(PostingDate);
1308+
exit(true);
12581309
end;
12591310
#if not CLEAN24
12601311
#pragma warning disable AL0432

0 commit comments

Comments
 (0)