diff --git a/src/Apps/W1/APIV1/test/src/APIV1ItemVariantsE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1ItemVariantsE2E.Codeunit.al
index d621b0f771e..7b1699c074f 100644
--- a/src/Apps/W1/APIV1/test/src/APIV1ItemVariantsE2E.Codeunit.al
+++ b/src/Apps/W1/APIV1/test/src/APIV1ItemVariantsE2E.Codeunit.al
@@ -369,6 +369,7 @@ codeunit 139739 "APIV1 - Item Variants E2E"
var
LibraryGraphMgt: Codeunit "Library - Graph Mgt";
+ LibraryGraphDocumentTools: Codeunit "Library - Graph Document Tools";
LibraryUtility: Codeunit "Library - Utility";
LibraryRandom: Codeunit "Library - Random";
LibraryInventory: Codeunit "Library - Inventory";
@@ -459,6 +460,8 @@ codeunit 139739 "APIV1 - Item Variants E2E"
LibrarySales: Codeunit "Library - Sales";
begin
LibrarySales.CreateSalesOrder(SalesHeader);
+ LibraryGraphDocumentTools.EnsureVATPostingSetupExists(
+ SalesHeader."VAT Bus. Posting Group", Item."VAT Prod. Posting Group");
LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, Item."No.", 2);
SalesLine."Variant Code" := ItemVariant.Code;
SalesLine.Modify();
diff --git a/src/Apps/W1/APIV1/test/src/APIV1SalesInvLinesE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1SalesInvLinesE2E.Codeunit.al
index 75853b94e50..15bf9958bf0 100644
--- a/src/Apps/W1/APIV1/test/src/APIV1SalesInvLinesE2E.Codeunit.al
+++ b/src/Apps/W1/APIV1/test/src/APIV1SalesInvLinesE2E.Codeunit.al
@@ -1075,6 +1075,8 @@ codeunit 139734 "APIV1 - Sales Inv. Lines E2E"
Assert.AreNotEqual('', InvoiceLineID, 'ID should not be empty');
LineNo := SalesLine."Line No.";
LibraryInventory.CreateItem(Item);
+ LibraryGraphDocumentTools.EnsureVATPostingSetupExists(
+ SalesLine."VAT Bus. Posting Group", Item."VAT Prod. Posting Group");
InvoiceLineJSON := STRSUBSTNO('{"itemId":"%1"}', LibraryGraphMgt.StripBrackets(Format(Item.SystemId)));
COMMIT();
diff --git a/src/Apps/W1/APIV1/test/src/APIV1SalesOrderLinesE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1SalesOrderLinesE2E.Codeunit.al
index 8615ed84e08..cf5de4412b0 100644
--- a/src/Apps/W1/APIV1/test/src/APIV1SalesOrderLinesE2E.Codeunit.al
+++ b/src/Apps/W1/APIV1/test/src/APIV1SalesOrderLinesE2E.Codeunit.al
@@ -849,6 +849,8 @@ codeunit 139735 "APIV1 - Sales Order Lines E2E"
Assert.AreNotEqual('', OrderId, 'ID should not be empty');
LibraryInventory.CreateItem(Item);
+ LibraryGraphDocumentTools.EnsureVATPostingSetupExists(
+ SalesLine."VAT Bus. Posting Group", Item."VAT Prod. Posting Group");
OrderLineJSON := STRSUBSTNO('{"itemId":"%1"}', LibraryGraphMgt.StripBrackets(Format(Item.SystemId)));
COMMIT();
diff --git a/src/Apps/W1/APIV2/test/src/APIV2ItemVariantsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2ItemVariantsE2E.Codeunit.al
index 064047b0f5a..c50e6af2257 100644
--- a/src/Apps/W1/APIV2/test/src/APIV2ItemVariantsE2E.Codeunit.al
+++ b/src/Apps/W1/APIV2/test/src/APIV2ItemVariantsE2E.Codeunit.al
@@ -369,6 +369,7 @@ codeunit 139839 "APIV2 - Item Variants E2E"
var
LibraryGraphMgt: Codeunit "Library - Graph Mgt";
+ LibraryGraphDocumentTools: Codeunit "Library - Graph Document Tools";
LibraryUtility: Codeunit "Library - Utility";
LibraryRandom: Codeunit "Library - Random";
LibraryInventory: Codeunit "Library - Inventory";
@@ -452,6 +453,8 @@ codeunit 139839 "APIV2 - Item Variants E2E"
LibrarySales: Codeunit "Library - Sales";
begin
LibrarySales.CreateSalesOrder(SalesHeader);
+ LibraryGraphDocumentTools.EnsureVATPostingSetupExists(
+ SalesHeader."VAT Bus. Posting Group", Item."VAT Prod. Posting Group");
LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, Item."No.", 2);
SalesLine."Variant Code" := ItemVariant.Code;
SalesLine.Modify();
diff --git a/src/Apps/W1/APIV2/test/src/APIV2PurchOrderLinesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2PurchOrderLinesE2E.Codeunit.al
index 15993ed317a..19e8073f796 100644
--- a/src/Apps/W1/APIV2/test/src/APIV2PurchOrderLinesE2E.Codeunit.al
+++ b/src/Apps/W1/APIV2/test/src/APIV2PurchOrderLinesE2E.Codeunit.al
@@ -872,6 +872,8 @@ codeunit 139852 "APIV2 - Purch. Order Lines E2E"
Assert.AreNotEqual('', OrderId, 'ID should not be empty');
LibraryInventory.CreateItem(Item);
+ LibraryGraphDocumentTools.EnsureVATPostingSetupExists(
+ PurchaseLine."VAT Bus. Posting Group", Item."VAT Prod. Posting Group");
OrderLineJSON := StrSubstNo('{"itemId":"%1"}', LibraryGraphMgt.StripBrackets(Item.SystemId));
Commit();
diff --git a/src/Apps/W1/APIV2/test/src/APIV2SalesInvLinesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2SalesInvLinesE2E.Codeunit.al
index 395be869da7..32d454b8f63 100644
--- a/src/Apps/W1/APIV2/test/src/APIV2SalesInvLinesE2E.Codeunit.al
+++ b/src/Apps/W1/APIV2/test/src/APIV2SalesInvLinesE2E.Codeunit.al
@@ -1085,6 +1085,8 @@ codeunit 139834 "APIV2 - Sales Inv. Lines E2E"
Assert.AreNotEqual('', InvoiceLineID, 'ID should not be empty');
LibraryInventory.CreateItem(Item);
+ LibraryGraphDocumentTools.EnsureVATPostingSetupExists(
+ SalesLine."VAT Bus. Posting Group", Item."VAT Prod. Posting Group");
InvoiceLineJSON := StrSubstNo('{"itemId":"%1"}', LibraryGraphMgt.StripBrackets(Item.SystemId));
Commit();
diff --git a/src/Apps/W1/APIV2/test/src/APIV2SalesOrderLinesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2SalesOrderLinesE2E.Codeunit.al
index 568adfee40d..ef4fca6439c 100644
--- a/src/Apps/W1/APIV2/test/src/APIV2SalesOrderLinesE2E.Codeunit.al
+++ b/src/Apps/W1/APIV2/test/src/APIV2SalesOrderLinesE2E.Codeunit.al
@@ -869,6 +869,8 @@ codeunit 139835 "APIV2 - Sales Order Lines E2E"
Assert.AreNotEqual('', OrderId, 'ID should not be empty');
LibraryInventory.CreateItem(Item);
+ LibraryGraphDocumentTools.EnsureVATPostingSetupExists(
+ SalesLine."VAT Bus. Posting Group", Item."VAT Prod. Posting Group");
OrderLineJSON := StrSubstNo('{"itemId":"%1"}', LibraryGraphMgt.StripBrackets(Item.SystemId));
Commit();
diff --git a/src/DisabledTests/_Exclude_APIV1__Tests/_Exclude_APIV1__Tests.DisabledTest.json b/src/DisabledTests/_Exclude_APIV1__Tests/_Exclude_APIV1__Tests.DisabledTest.json
index bcca968fa42..90f4da553ab 100644
--- a/src/DisabledTests/_Exclude_APIV1__Tests/_Exclude_APIV1__Tests.DisabledTest.json
+++ b/src/DisabledTests/_Exclude_APIV1__Tests/_Exclude_APIV1__Tests.DisabledTest.json
@@ -54,31 +54,6 @@
"codeunitName": "APIV1 - Purchase Invoices E2E",
"method": "TestPurchaseInvoiceWithPaymentDiscount"
},
- {
- "codeunitId": 139734,
- "codeunitName": "APIV1 - Sales Inv. Lines E2E",
- "method": "TestGettingLinesWithDifferentTypes"
- },
- {
- "codeunitId": 139734,
- "codeunitName": "APIV1 - Sales Inv. Lines E2E",
- "method": "TestPatchingTheIdToItemChangesLineType"
- },
- {
- "codeunitId": 139735,
- "codeunitName": "APIV1 - Sales Order Lines E2E",
- "method": "TestGettingLinesWithDifferentTypes"
- },
- {
- "codeunitId": 139735,
- "codeunitName": "APIV1 - Sales Order Lines E2E",
- "method": "TestPatchingTheIdToItemChangesLineType"
- },
- {
- "codeunitId": 139739,
- "codeunitName": "APIV1 - Item Variants E2E",
- "method": "TestDeleteInUse"
- },
{
"codeunitId": 139734,
"codeunitName": "APIV1 - Sales Inv. Lines E2E",
diff --git a/src/DisabledTests/_Exclude_APIV2__Tests/_Exclude_APIV2__Tests.DisabledTest.json b/src/DisabledTests/_Exclude_APIV2__Tests/_Exclude_APIV2__Tests.DisabledTest.json
index 588bb59f3fd..492094bf450 100644
--- a/src/DisabledTests/_Exclude_APIV2__Tests/_Exclude_APIV2__Tests.DisabledTest.json
+++ b/src/DisabledTests/_Exclude_APIV2__Tests/_Exclude_APIV2__Tests.DisabledTest.json
@@ -54,31 +54,6 @@
"codeunitName": "APIV2 - Sales Credit Memos E2E",
"method": "TestCreateCreditMemoThroughPageAndAPI"
},
- {
- "codeunitId": 139834,
- "codeunitName": "APIV2 - Sales Inv. Lines E2E",
- "method": "TestGettingLinesWithDifferentTypes"
- },
- {
- "codeunitId": 139834,
- "codeunitName": "APIV2 - Sales Inv. Lines E2E",
- "method": "TestPatchingTheIdToItemChangesLineType"
- },
- {
- "codeunitId": 139835,
- "codeunitName": "APIV2 - Sales Order Lines E2E",
- "method": "TestGettingLinesWithDifferentTypes"
- },
- {
- "codeunitId": 139835,
- "codeunitName": "APIV2 - Sales Order Lines E2E",
- "method": "TestPatchingTheIdToItemChangesLineType"
- },
- {
- "codeunitId": 139839,
- "codeunitName": "APIV2 - Item Variants E2E",
- "method": "TestDeleteInUse"
- },
{
"codeunitId": 139843,
"codeunitName": "APIV2 - Vendor Payments E2E",
@@ -89,16 +64,6 @@
"codeunitName": "APIV2 - Purchase Orders E2E",
"method": "TestCreateOrderThroughPageAndAPI"
},
- {
- "codeunitId": 139852,
- "codeunitName": "APIV2 - Purch. Order Lines E2E",
- "method": "TestGettingLinesWithDifferentTypes"
- },
- {
- "codeunitId": 139852,
- "codeunitName": "APIV2 - Purch. Order Lines E2E",
- "method": "TestPatchingTheIdToItemChangesLineType"
- },
{
"codeunitId": 139865,
"codeunitName": "APIV2 - Purch. Cr. Memos E2E",
diff --git a/src/Layers/W1/Tests/TestLibraries/LibraryGraphDocumentTools.Codeunit.al b/src/Layers/W1/Tests/TestLibraries/LibraryGraphDocumentTools.Codeunit.al
index d89183ab2e0..33c9bb8c8f0 100644
--- a/src/Layers/W1/Tests/TestLibraries/LibraryGraphDocumentTools.Codeunit.al
+++ b/src/Layers/W1/Tests/TestLibraries/LibraryGraphDocumentTools.Codeunit.al
@@ -578,17 +578,16 @@ codeunit 130619 "Library - Graph Document Tools"
VATBusinessPostingGroup: Record "VAT Business Posting Group";
FixedAsset: Record "Fixed Asset";
GLAccount: Record "G/L Account";
- VATPostingSetup: Record "VAT Posting Setup";
begin
LibraryInventory.CreateItemCharge(ItemCharge);
+ EnsureVATPostingSetupExists(
+ SalesHeader."VAT Bus. Posting Group", ItemCharge."VAT Prod. Posting Group");
LibrarySales.CreateSalesLine(SalesLineCharge, SalesHeader, SalesLineCharge.Type::"Charge (Item)", ItemCharge."No.", 1);
LibraryERM.FindVATBusinessPostingGroup(VATBusinessPostingGroup);
LibraryResource.CreateResource(Resource, VATBusinessPostingGroup.Code);
- VATPostingSetup.SetRange("VAT Bus. Posting Group", SalesHeader."VAT Bus. Posting Group");
- VATPostingSetup.SetRange("VAT Prod. Posting Group", Resource."VAT Prod. Posting Group");
- if not VATPostingSetup.FINDFIRST() then
- LibraryERM.CreateVATPostingSetup(VATPostingSetup, SalesHeader."VAT Bus. Posting Group", Resource."VAT Prod. Posting Group");
+ EnsureVATPostingSetupExists(
+ SalesHeader."VAT Bus. Posting Group", Resource."VAT Prod. Posting Group");
LibrarySales.CreateSalesLine(SalesLineResource, SalesHeader, SalesLineResource.Type::Resource, Resource."No.", 1);
LibraryFixedAsset.CreateFixedAsset(FixedAsset);
@@ -615,6 +614,8 @@ codeunit 130619 "Library - Graph Document Tools"
GLAccount: Record "G/L Account";
begin
LibraryInventory.CreateItemCharge(ItemCharge);
+ EnsureVATPostingSetupExists(
+ PurchaseHeader."VAT Bus. Posting Group", ItemCharge."VAT Prod. Posting Group");
LibraryPurchase.CreatePurchaseLine(
PurchaseLineCharge, PurchaseHeader, PurchaseLineCharge.Type::"Charge (Item)", ItemCharge."No.", 1);
@@ -632,10 +633,27 @@ codeunit 130619 "Library - Graph Document Tools"
GLAccount.SetRange("Direct Posting", true);
#pragma warning restore AA0210
GLAccount.FindFirst();
+ EnsureVATPostingSetupExists(
+ PurchaseHeader."VAT Bus. Posting Group", GLAccount."VAT Prod. Posting Group");
LibraryPurchase.CreatePurchaseLine(
PurchaseLineGLAccount, PurchaseHeader, PurchaseLineGLAccount.Type::"G/L Account", GLAccount."No.", 1);
end;
+ /// Creates VAT posting setup when the specified posting-group combination does not exist.
+ /// VAT business posting group.
+ /// VAT product posting group.
+ procedure EnsureVATPostingSetupExists(VATBusPostingGroup: Code[20]; VATProdPostingGroup: Code[20])
+ var
+ VATPostingSetup: Record "VAT Posting Setup";
+ begin
+ if (VATBusPostingGroup = '') and (VATProdPostingGroup = '') then
+ exit;
+ if VATPostingSetup.Get(VATBusPostingGroup, VATProdPostingGroup) then
+ exit;
+
+ LibraryERM.CreateVATPostingSetup(VATPostingSetup, VATBusPostingGroup, VATProdPostingGroup);
+ end;
+
[Scope('OnPrem')]
procedure VerifySalesObjectTxtDescription(SalesLine: Record "Sales Line"; JObjectTxt: Text)
var