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