diff --git a/.github/AL-Go-Settings.json b/.github/AL-Go-Settings.json index 39243608df..2532f32177 100644 --- a/.github/AL-Go-Settings.json +++ b/.github/AL-Go-Settings.json @@ -6,7 +6,7 @@ "runs-on": "windows-latest", "cacheImageName": "", "UsePsSession": false, - "artifact": "https://bcinsider-fvh2ekdjecfjd6gk.b02.azurefd.net/sandbox/28.0.43704.0/base", + "artifact": "https://bcinsider-fvh2ekdjecfjd6gk.b02.azurefd.net/sandbox/28.0.44491.0/base", "country": "base", "useProjectDependencies": true, "repoVersion": "28.0", diff --git a/Apps/APAC/EDocumentFormats/PINT A-NZ/app/src/Core/PINTANZExport.Codeunit.al b/Apps/APAC/EDocumentFormats/PINT A-NZ/app/src/Core/PINTANZExport.Codeunit.al index db9a7b26ee..645b6712c8 100644 --- a/Apps/APAC/EDocumentFormats/PINT A-NZ/app/src/Core/PINTANZExport.Codeunit.al +++ b/Apps/APAC/EDocumentFormats/PINT A-NZ/app/src/Core/PINTANZExport.Codeunit.al @@ -7,11 +7,11 @@ namespace Microsoft.eServices.EDocument.Format; using Microsoft.eServices.EDocument; using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Finance.VAT.Setup; +using Microsoft.Foundation.Address; using Microsoft.Foundation.Company; using Microsoft.Sales.Customer; using Microsoft.Sales.History; using System.Utilities; -using Microsoft.Foundation.Address; codeunit 28006 "PINT A-NZ Export" { diff --git a/Apps/APAC/EDocumentFormats/PINT A-NZ/app/src/Core/PINTANZImport.Codeunit.al b/Apps/APAC/EDocumentFormats/PINT A-NZ/app/src/Core/PINTANZImport.Codeunit.al index 8b842b1ed8..d7258a9cd4 100644 --- a/Apps/APAC/EDocumentFormats/PINT A-NZ/app/src/Core/PINTANZImport.Codeunit.al +++ b/Apps/APAC/EDocumentFormats/PINT A-NZ/app/src/Core/PINTANZImport.Codeunit.al @@ -5,11 +5,11 @@ namespace Microsoft.eServices.EDocument.Format; using Microsoft.eServices.EDocument; -using System.Utilities; -using System.IO; +using Microsoft.eServices.EDocument.Service.Participant; using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Purchases.Vendor; -using Microsoft.eServices.EDocument.Service.Participant; +using System.IO; +using System.Utilities; codeunit 28007 "PINT A-NZ Import" { diff --git a/Apps/APAC/EDocumentFormats/PINT A-NZ/test/src/PINTANZXML.Codeunit.al b/Apps/APAC/EDocumentFormats/PINT A-NZ/test/src/PINTANZXML.Codeunit.al index 26e11789e7..79f59339b5 100644 --- a/Apps/APAC/EDocumentFormats/PINT A-NZ/test/src/PINTANZXML.Codeunit.al +++ b/Apps/APAC/EDocumentFormats/PINT A-NZ/test/src/PINTANZXML.Codeunit.al @@ -4,16 +4,16 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.eServices.EDocument.Format; +using Microsoft.Bank.Setup; using Microsoft.eServices.EDocument; +using Microsoft.Finance.VAT.Setup; using Microsoft.Foundation.Company; +using Microsoft.Inventory.Item; using Microsoft.Sales.Customer; using Microsoft.Sales.Document; using Microsoft.Sales.History; using System.IO; using System.Utilities; -using Microsoft.Finance.VAT.Setup; -using Microsoft.Inventory.Item; -using Microsoft.Bank.Setup; codeunit 148004 "PINT A-NZ XML" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/ContosoATLocalization.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/ContosoATLocalization.Codeunit.al index b4c9439cb6..16faf3f2b0 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/ContosoATLocalization.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/ContosoATLocalization.Codeunit.al @@ -4,10 +4,10 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.DemoData.Localization; -using Microsoft.DemoData.Foundation; -using Microsoft.DemoData.Finance; using Microsoft.DemoData.Bank; +using Microsoft.DemoData.Finance; using Microsoft.DemoData.FixedAsset; +using Microsoft.DemoData.Foundation; using Microsoft.DemoData.Inventory; using Microsoft.DemoData.Purchases; using Microsoft.DemoData.Sales; diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/CreateATGLAccounts.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/CreateATGLAccounts.Codeunit.al index c4bf101a5b..3e5f897b7f 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/CreateATGLAccounts.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/CreateATGLAccounts.Codeunit.al @@ -4,14 +4,14 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.DemoData.Localization; -using Microsoft.Inventory.Setup; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Common; -using Microsoft.DemoData.Service; -using Microsoft.DemoData.Manufacturing; using Microsoft.DemoData.FixedAsset; using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Manufacturing; +using Microsoft.DemoData.Service; +using Microsoft.DemoTool.Helpers; +using Microsoft.Inventory.Setup; codeunit 11140 "Create AT GL Accounts" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/1. Setup Data/CreateATGLAccount.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/1. Setup Data/CreateATGLAccount.Codeunit.al index 741c0d1120..bac662d9a3 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/1. Setup Data/CreateATGLAccount.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/1. Setup Data/CreateATGLAccount.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Foundation.Enums; -using Microsoft.DemoTool.Helpers; codeunit 11148 "Create AT GL Account" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/1. Setup Data/CreateVatPostingGroupAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/1. Setup Data/CreateVatPostingGroupAT.Codeunit.al index 600aa61668..2de3125e47 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/1. Setup Data/CreateVatPostingGroupAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/1. Setup Data/CreateVatPostingGroupAT.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Foundation.Enums; -using Microsoft.Finance.VAT.Setup; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.VAT.Setup; +using Microsoft.Foundation.Enums; codeunit 11186 "Create VAT Posting Group AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/1. Setup Data/CreateVatReportSetupAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/1. Setup Data/CreateVatReportSetupAT.Codeunit.al index f1ec81f3b0..768b485e64 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/1. Setup Data/CreateVatReportSetupAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/1. Setup Data/CreateVatReportSetupAT.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.VAT.Reporting; using Microsoft.DemoData.Foundation; +using Microsoft.Finance.VAT.Reporting; codeunit 11185 "Create Vat Report Setup AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/2. Master Data/CreateCurrencyExRateAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/2. Master Data/CreateCurrencyExRateAT.Codeunit.al index 032daa9549..7790b87081 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/2. Master Data/CreateCurrencyExRateAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/2. Master Data/CreateCurrencyExRateAT.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.Currency; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.Currency; codeunit 11154 "Create Currency Ex. Rate AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/2. Master Data/CreateVatStatementLineAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/2. Master Data/CreateVatStatementLineAT.Codeunit.al index ded6cedae9..a5438d2456 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/2. Master Data/CreateVatStatementLineAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Finance/2. Master Data/CreateVatStatementLineAT.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.VAT.Reporting; -using Microsoft.Foundation.Enums; using Microsoft.DemoTool; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.VAT.Reporting; +using Microsoft.Foundation.Enums; codeunit 11156 "Create VAT Statement Line AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/FixedAsset/1. Setup Data/CreateFAPostingGrpAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/FixedAsset/1. Setup Data/CreateFAPostingGrpAT.Codeunit.al index dd7dc5a627..0703f6761c 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/FixedAsset/1. Setup Data/CreateFAPostingGrpAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/FixedAsset/1. Setup Data/CreateFAPostingGrpAT.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.FixedAsset; -using Microsoft.FixedAssets.FixedAsset; using Microsoft.DemoData.Finance; +using Microsoft.FixedAssets.FixedAsset; codeunit 11162 "Create FA Posting Grp. AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Foundation/1. Setup Data/CreateCompanyInformationAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Foundation/1. Setup Data/CreateCompanyInformationAT.Codeunit.al index f838682629..2eb8972664 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Foundation/1. Setup Data/CreateCompanyInformationAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Foundation/1. Setup Data/CreateCompanyInformationAT.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.Foundation.Company; using Microsoft.DemoTool; +using Microsoft.Foundation.Company; codeunit 11143 "Create Company Information AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Foundation/1. Setup Data/CreateNoSeriesAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Foundation/1. Setup Data/CreateNoSeriesAT.Codeunit.al index c4a763fb85..d1391a7ad2 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Foundation/1. Setup Data/CreateNoSeriesAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Foundation/1. Setup Data/CreateNoSeriesAT.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.Foundation.NoSeries; using Microsoft.DemoTool.Helpers; +using Microsoft.Foundation.NoSeries; codeunit 11144 "Create No. Series AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Foundation/1. Setup Data/CreatePostCodeAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Foundation/1. Setup Data/CreatePostCodeAT.Codeunit.al index 2ff2c93893..e343e1924e 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Foundation/1. Setup Data/CreatePostCodeAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Foundation/1. Setup Data/CreatePostCodeAT.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.Foundation.Address; using Microsoft.DemoTool.Helpers; +using Microsoft.Foundation.Address; codeunit 11145 "Create Post Code AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/HumanResources/2. Master Data/CreateEmployeeAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/HumanResources/2. Master Data/CreateEmployeeAT.Codeunit.al index 7f238c21ab..f248a6fd27 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/HumanResources/2. Master Data/CreateEmployeeAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/HumanResources/2. Master Data/CreateEmployeeAT.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.HumanResources.Employee; using Microsoft.DemoData.HumanResources; +using Microsoft.HumanResources.Employee; codeunit 11184 "Create Employee AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/HumanResources/2. Master Data/CreateEmployeeTemplateAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/HumanResources/2. Master Data/CreateEmployeeTemplateAT.Codeunit.al index 088f0a194f..83e46faafd 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/HumanResources/2. Master Data/CreateEmployeeTemplateAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/HumanResources/2. Master Data/CreateEmployeeTemplateAT.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.HumanResources.Employee; using Microsoft.DemoData.HumanResources; +using Microsoft.HumanResources.Employee; codeunit 11155 "CreateEmployee Template AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Inventory/1.Setup Data/CreateInvPostingSetupAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Inventory/1.Setup Data/CreateInvPostingSetupAT.Codeunit.al index 2ac57e4d8a..323352970f 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Inventory/1.Setup Data/CreateInvPostingSetupAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Inventory/1.Setup Data/CreateInvPostingSetupAT.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Item; using Microsoft.DemoData.Finance; +using Microsoft.Inventory.Item; codeunit 11163 "Create Inv. Posting Setup AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Inventory/1.Setup Data/CreateLocationAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Inventory/1.Setup Data/CreateLocationAT.Codeunit.al index dd53dc3218..e62a76fa33 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Inventory/1.Setup Data/CreateLocationAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Inventory/1.Setup Data/CreateLocationAT.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Location; using Microsoft.DemoData.Foundation; +using Microsoft.Inventory.Location; codeunit 11167 "Create Location AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Purchases/1. Setup Data/CreateVendorPostingGrpAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Purchases/1. Setup Data/CreateVendorPostingGrpAT.Codeunit.al index e3e60e00fd..c76bda7538 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Purchases/1. Setup Data/CreateVendorPostingGrpAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Purchases/1. Setup Data/CreateVendorPostingGrpAT.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; using Microsoft.DemoData.Finance; +using Microsoft.Purchases.Vendor; codeunit 11169 "Create Vendor Posting Grp AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Purchases/2. Master Data/CreatePurchDimValueAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Purchases/2. Master Data/CreatePurchDimValueAT.Codeunit.al index 40cc71e57f..30d6e07e71 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Purchases/2. Master Data/CreatePurchDimValueAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Purchases/2. Master Data/CreatePurchDimValueAT.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Purchases; +using Microsoft.DemoData.Finance; using Microsoft.Finance.Dimension; using Microsoft.Purchases.Vendor; -using Microsoft.DemoData.Finance; codeunit 11170 "Create Purch. Dim. Value AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Purchases/2. Master Data/CreateVendorAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Purchases/2. Master Data/CreateVendorAT.Codeunit.al index 6aa93b6761..c934ec47e1 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Purchases/2. Master Data/CreateVendorAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Purchases/2. Master Data/CreateVendorAT.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; using Microsoft.DemoData.Foundation; +using Microsoft.Purchases.Vendor; codeunit 11171 "Create Vendor AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Purchases/3. Transaction Data/CreatePurchaseDocumentAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Purchases/3. Transaction Data/CreatePurchaseDocumentAT.Codeunit.al index f5b6c7001b..74eb70e5cb 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Purchases/3. Transaction Data/CreatePurchaseDocumentAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Purchases/3. Transaction Data/CreatePurchaseDocumentAT.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Document; using Microsoft.Projects.Resources.Resource; +using Microsoft.Purchases.Document; codeunit 11153 "Create Purchase Document AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/1. Setup Data/CreateCustPostingGrpAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/1. Setup Data/CreateCustPostingGrpAT.Codeunit.al index bd94ed1bf7..5b11eced5d 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/1. Setup Data/CreateCustPostingGrpAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/1. Setup Data/CreateCustPostingGrpAT.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoData.Finance; +using Microsoft.Sales.Customer; codeunit 11173 "Create Cust. Posting Grp AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/2. Master Data/CreateCustomerAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/2. Master Data/CreateCustomerAT.Codeunit.al index 54c056f400..dc9e441cdd 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/2. Master Data/CreateCustomerAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/2. Master Data/CreateCustomerAT.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoData.Foundation; +using Microsoft.Sales.Customer; codeunit 11175 "Create Customer AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/2. Master Data/CreateCustomerTemplateAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/2. Master Data/CreateCustomerTemplateAT.Codeunit.al index c49c64009e..f63f0f579d 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/2. Master Data/CreateCustomerTemplateAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/2. Master Data/CreateCustomerTemplateAT.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoTool; +using Microsoft.Sales.Customer; codeunit 11176 "Create Customer Template AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/2. Master Data/CreateSalesDimValueAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/2. Master Data/CreateSalesDimValueAT.Codeunit.al index 6bbeae2909..0f73d0c808 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/2. Master Data/CreateSalesDimValueAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/2. Master Data/CreateSalesDimValueAT.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Sales; +using Microsoft.DemoData.Finance; using Microsoft.Finance.Dimension; using Microsoft.Sales.Customer; -using Microsoft.DemoData.Finance; codeunit 11177 "Create Sales Dim Value AT" { diff --git a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/2. Master Data/CreateShipToAddressAT.Codeunit.al b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/2. Master Data/CreateShipToAddressAT.Codeunit.al index 714f87ab9e..a27d1a819a 100644 --- a/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/2. Master Data/CreateShipToAddressAT.Codeunit.al +++ b/Apps/AT/ContosoCoffeeDemoDatasetAT/app/DemoData/Sale/2. Master Data/CreateShipToAddressAT.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoTool; +using Microsoft.Sales.Customer; codeunit 11178 "Create Ship-to Address AT" { diff --git a/Apps/AT/IntrastatAT/app/src/IntrastatReportATUpgrade.Codeunit.al b/Apps/AT/IntrastatAT/app/src/IntrastatReportATUpgrade.Codeunit.al index 273608ad5b..e70ccf68ef 100644 --- a/Apps/AT/IntrastatAT/app/src/IntrastatReportATUpgrade.Codeunit.al +++ b/Apps/AT/IntrastatAT/app/src/IntrastatReportATUpgrade.Codeunit.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Inventory.Intrastat; -using System.Upgrade; using System.IO; +using System.Upgrade; using System.Utilities; codeunit 11161 IntrastatReportATUpgrade diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/AUContosoLocalization.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/AUContosoLocalization.Codeunit.al index 2252720217..e810f58034 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/AUContosoLocalization.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/AUContosoLocalization.Codeunit.al @@ -4,16 +4,16 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.DemoData.Localization; +using Microsoft.DemoData.Bank; +using Microsoft.DemoData.CRM; using Microsoft.DemoData.Finance; +using Microsoft.DemoData.FixedAsset; +using Microsoft.DemoData.Foundation; +using Microsoft.DemoData.HR; using Microsoft.DemoData.Inventory; -using Microsoft.DemoData.Bank; +using Microsoft.DemoData.Job; using Microsoft.DemoData.Purchases; using Microsoft.DemoData.Sales; -using Microsoft.DemoData.HR; -using Microsoft.DemoData.Foundation; -using Microsoft.DemoData.FixedAsset; -using Microsoft.DemoData.Job; -using Microsoft.DemoData.CRM; using Microsoft.DemoTool; codeunit 17131 "AU Contoso Localization" diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Bank/1.Setup Data/CreateAUBankAccPostingGrp.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Bank/1.Setup Data/CreateAUBankAccPostingGrp.Codeunit.al index ebacfe20cb..898c221674 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Bank/1.Setup Data/CreateAUBankAccPostingGrp.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Bank/1.Setup Data/CreateAUBankAccPostingGrp.Codeunit.al @@ -6,8 +6,8 @@ namespace Microsoft.DemoData.Bank; using Microsoft.Bank.BankAccount; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; codeunit 17124 "Create AU Bank Acc Posting Grp" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Bank/3.Transaction Data/CreateAUGenJournalLine.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Bank/3.Transaction Data/CreateAUGenJournalLine.Codeunit.al index 1cf760d8f9..f61fa9684e 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Bank/3.Transaction Data/CreateAUGenJournalLine.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Bank/3.Transaction Data/CreateAUGenJournalLine.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Bank; -using Microsoft.Finance.GeneralLedger.Journal; using Microsoft.DemoData.Finance; +using Microsoft.Finance.GeneralLedger.Journal; codeunit 17163 "Create AU Gen. Journal Line" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUGLAccounts.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUGLAccounts.Codeunit.al index a2ca50f5b8..5ffcf25b00 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUGLAccounts.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUGLAccounts.Codeunit.al @@ -5,16 +5,16 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Inventory.Setup; -using Microsoft.Finance.GeneralLedger.Account; -using Microsoft.Foundation.Enums; using Microsoft.DemoData.Common; -using Microsoft.DemoData.Service; -using Microsoft.DemoData.Manufacturing; using Microsoft.DemoData.FixedAsset; using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Manufacturing; +using Microsoft.DemoData.Service; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Foundation.Enums; +using Microsoft.Inventory.Setup; codeunit 17107 "Create AU GL Accounts" { @@ -487,6 +487,7 @@ codeunit 17107 "Create AU GL Accounts" local procedure CreateGLAccountForLocalization() var CreatePostingGroups: Codeunit "Create Posting Groups"; + CreateAUVATPostingGroups: Codeunit "Create AU VAT Posting Groups"; CreateGLAccount: Codeunit "Create G/L Account"; begin ContosoGLAccount.SetOverwriteData(true); @@ -574,7 +575,7 @@ codeunit 17107 "Create AU GL Accounts" ContosoGLAccount.InsertGLAccount(SalesOfServiceContracts(), SalesOfServiceContractsName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::Income, Enum::"G/L Account Type"::"Begin-Total", '', '', 0, '', Enum::"General Posting Type"::" ", '', '', false, false, false); ContosoGLAccount.InsertGLAccount(ServiceContractSale(), ServiceContractSaleName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::Income, Enum::"G/L Account Type"::Posting, CreatePostingGroups.DomesticPostingGroup(), CreatePostingGroups.ServicesPostingGroup(), 0, '', Enum::"General Posting Type"::" ", '', '', true, false, false); ContosoGLAccount.InsertGLAccount(TotalSaleOfServContracts(), TotalSaleOfServContractsName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::Income, Enum::"G/L Account Type"::"End-Total", '', '', 0, SalesOfServiceContracts() + '..' + TotalSaleOfServContracts(), Enum::"General Posting Type"::" ", '', '', false, false, false); - ContosoGLAccount.InsertGLAccount(FreightExpensesRetail(), FreightExpensesRetailName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Cost of Goods Sold", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::" ", '', '', true, false, false); + ContosoGLAccount.InsertGLAccount(FreightExpensesRetail(), FreightExpensesRetailName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Cost of Goods Sold", Enum::"G/L Account Type"::Posting, '', CreatePostingGroups.ZeroPostingGroup(), 0, '', Enum::"General Posting Type"::Purchase, '', CreateAUVATPostingGroups.NonGst(), true, false, false); ContosoGLAccount.InsertGLAccount(DirectCostAppliedRetail(), DirectCostAppliedRetailName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Cost of Goods Sold", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::" ", '', '', true, false, false); ContosoGLAccount.InsertGLAccount(OverheadAppliedRetail(), OverheadAppliedRetailName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Cost of Goods Sold", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::" ", '', '', true, false, false); ContosoGLAccount.InsertGLAccount(PurchaseVarianceRetail(), PurchaseVarianceRetailName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Cost of Goods Sold", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::" ", '', '', true, false, false); diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUGenJournTemplate.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUGenJournTemplate.Codeunit.al index 872e5426f7..dd04d6b732 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUGenJournTemplate.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUGenJournTemplate.Codeunit.al @@ -6,8 +6,8 @@ namespace Microsoft.DemoData.Finance; using Microsoft.DemoData.Foundation; -using Microsoft.Finance.GeneralLedger.Journal; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Journal; codeunit 17160 "Create AU Gen. Journ. Template" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUGenJournalBatch.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUGenJournalBatch.Codeunit.al index b8c10f079c..7ff50571ff 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUGenJournalBatch.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUGenJournalBatch.Codeunit.al @@ -6,8 +6,8 @@ namespace Microsoft.DemoData.Finance; using Microsoft.DemoData.Foundation; -using Microsoft.Finance.GeneralLedger.Journal; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Journal; codeunit 17161 "Create AU Gen. Journal Batch" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUPostingGroups.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUPostingGroups.Codeunit.al index 6169d7d39d..ceec0e4b7f 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUPostingGroups.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUPostingGroups.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.GeneralLedger.Setup; -using Microsoft.Finance.GeneralLedger.Account; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Finance.GeneralLedger.Setup; codeunit 17138 "Create AU Posting Groups" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUVATPostingGroups.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUVATPostingGroups.Codeunit.al index 99f5d538e1..085dffae05 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUVATPostingGroups.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUVATPostingGroups.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Foundation.Enums; using Microsoft.DemoTool.Helpers; +using Microsoft.Foundation.Enums; codeunit 17121 "Create AU VAT Posting Groups" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUWHTPostingSetup.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUWHTPostingSetup.Codeunit.al index 125fd3ecf9..748c5407dc 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUWHTPostingSetup.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/1.Setup Data/CreateAUWHTPostingSetup.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.WithholdingTax; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.WithholdingTax; codeunit 17151 "Create AU WHT Posting Setup" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/2.Master Data/CreateAUVATStatement.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/2.Master Data/CreateAUVATStatement.Codeunit.al index ed779e3b54..42ff1700f9 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/2.Master Data/CreateAUVATStatement.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/2.Master Data/CreateAUVATStatement.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.VAT.Reporting; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.VAT.Reporting; codeunit 17162 "Create AU VAT Statement" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/2.Master Data/CreateAllocationAccountAU.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/2.Master Data/CreateAllocationAccountAU.Codeunit.al index 2b91d4ad13..b83b8ae3dd 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/2.Master Data/CreateAllocationAccountAU.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/2.Master Data/CreateAllocationAccountAU.Codeunit.al @@ -10,7 +10,6 @@ using Microsoft.Finance.AllocationAccount; codeunit 17180 "Create Allocation Account AU" { - Access = Internal; InherentEntitlements = X; InherentPermissions = X; @@ -23,7 +22,7 @@ codeunit 17180 "Create Allocation Account AU" CreateGLAccount: Codeunit "Create G/L Account"; begin ContosoAllocationAccount.InsertAllocationAccount( - Licenses(), 'Yearly license fee, design', + Licenses(), LicensesDescription(), AllocationAccount."Account Type"::Fixed, AllocationAccount."Document Lines Split"::"Split Amount"); ContosoAllocationAccount.InsertAllocationAccountDistribution( Licenses(), 10000, AllocAccountDistribution."Account Type"::Fixed, 1, 50, @@ -35,6 +34,15 @@ codeunit 17180 "Create Allocation Account AU" procedure Licenses(): Code[20] begin - exit('LICENSES'); + exit(LicensesTok); end; + + procedure LicensesDescription(): Text[100] + begin + exit(YearlyLicenseFeeTok); + end; + + var + LicensesTok: Label 'LICENSES', MaxLength = 20; + YearlyLicenseFeeTok: Label 'Yearly license fee', MaxLength = 100; } \ No newline at end of file diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/2.Master Data/CreateCurrencyExRateAU.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/2.Master Data/CreateCurrencyExRateAU.Codeunit.al index 9ce3cf3c76..3a0e8506a1 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/2.Master Data/CreateCurrencyExRateAU.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/2.Master Data/CreateCurrencyExRateAU.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.Currency; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.Currency; codeunit 17167 "Create Currency Ex. Rate AU" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/2.Master Data/CreateVATSetupPostGrpAU.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/2.Master Data/CreateVATSetupPostGrpAU.Codeunit.al index 6a3bbf639b..2de60b14b5 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/2.Master Data/CreateVATSetupPostGrpAU.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Finance/2.Master Data/CreateVATSetupPostGrpAU.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.VAT.Reporting; using Microsoft.DemoData.Foundation; using Microsoft.DemoTool; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.VAT.Reporting; codeunit 17168 "Create VAT Setup Post.Grp. AU" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/FixedAsset/1.Setup Data/CreateAUFAPostingGroup.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/FixedAsset/1.Setup Data/CreateAUFAPostingGroup.Codeunit.al index 6dda3aad6c..aa6c583594 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/FixedAsset/1.Setup Data/CreateAUFAPostingGroup.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/FixedAsset/1.Setup Data/CreateAUFAPostingGroup.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.FixedAsset; -using Microsoft.FixedAssets.FixedAsset; using Microsoft.DemoData.Finance; using Microsoft.DemoTool.Helpers; +using Microsoft.FixedAssets.FixedAsset; codeunit 17147 "Create AU FA Posting Group" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Foundation/1.Setup Data/CreateAUDataExchange.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Foundation/1.Setup Data/CreateAUDataExchange.Codeunit.al index 0645416cbe..6421df70f6 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Foundation/1.Setup Data/CreateAUDataExchange.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Foundation/1.Setup Data/CreateAUDataExchange.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using System.IO; using Microsoft.DemoTool.Helpers; +using System.IO; codeunit 17172 "Create AU Data Exchange" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Foundation/1.Setup Data/CreateAUNoSeries.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Foundation/1.Setup Data/CreateAUNoSeries.Codeunit.al index 04125a1072..4a85f3d17c 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Foundation/1.Setup Data/CreateAUNoSeries.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Foundation/1.Setup Data/CreateAUNoSeries.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.Foundation.NoSeries; using Microsoft.DemoTool.Helpers; +using Microsoft.Foundation.NoSeries; codeunit 17116 "Create AU No. Series" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Foundation/1.Setup Data/CreateAUShippingAgent.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Foundation/1.Setup Data/CreateAUShippingAgent.Codeunit.al index cf2fb8a9b9..318f463f66 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Foundation/1.Setup Data/CreateAUShippingAgent.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Foundation/1.Setup Data/CreateAUShippingAgent.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.Foundation.Shipping; using Microsoft.DemoTool.Helpers; +using Microsoft.Foundation.Shipping; codeunit 17115 "Create AU Shipping Agent" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/HumanResources/2.Master Data/CreateAUEmployee.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/HumanResources/2.Master Data/CreateAUEmployee.Codeunit.al index ea6e1fb3f9..952918ba19 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/HumanResources/2.Master Data/CreateAUEmployee.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/HumanResources/2.Master Data/CreateAUEmployee.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.HR; -using Microsoft.HumanResources.Employee; using Microsoft.DemoData.HumanResources; +using Microsoft.HumanResources.Employee; codeunit 17146 "Create AU Employee" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/HumanResources/2.Master Data/CreateEmplPostingGroupAU.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/HumanResources/2.Master Data/CreateEmplPostingGroupAU.Codeunit.al index 10b66207bf..f7b9e757f1 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/HumanResources/2.Master Data/CreateEmplPostingGroupAU.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/HumanResources/2.Master Data/CreateEmplPostingGroupAU.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.HR; -using Microsoft.HumanResources.Employee; -using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Finance; +using Microsoft.DemoData.HumanResources; +using Microsoft.HumanResources.Employee; codeunit 17169 "Create Empl. Posting Group AU" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Inventory/2.Master Data/CreateAUInvPostingSetup.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Inventory/2.Master Data/CreateAUInvPostingSetup.Codeunit.al index 0685c35d8a..dc3a0297a2 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Inventory/2.Master Data/CreateAUInvPostingSetup.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Inventory/2.Master Data/CreateAUInvPostingSetup.Codeunit.al @@ -7,8 +7,8 @@ namespace Microsoft.DemoData.Inventory; using Microsoft.DemoData.Finance; -using Microsoft.Inventory.Item; using Microsoft.DemoTool.Helpers; +using Microsoft.Inventory.Item; codeunit 17119 "Create AU Inv Posting Setup" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Inventory/2.Master Data/CreateAULocation.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Inventory/2.Master Data/CreateAULocation.Codeunit.al index 0cef4fba64..9f88f5caf5 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Inventory/2.Master Data/CreateAULocation.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Inventory/2.Master Data/CreateAULocation.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Location; using Microsoft.DemoData.Foundation; +using Microsoft.Inventory.Location; codeunit 17123 "Create AU Location" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Job/1.Setup Data/CreateAUJobPostingGroup.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Job/1.Setup Data/CreateAUJobPostingGroup.Codeunit.al index 14f00ef570..e439c0057f 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Job/1.Setup Data/CreateAUJobPostingGroup.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Job/1.Setup Data/CreateAUJobPostingGroup.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Job; -using Microsoft.Projects.Project.Job; -using Microsoft.DemoData.Jobs; using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Jobs; +using Microsoft.Projects.Project.Job; codeunit 17157 "Create AU Job Posting Group" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Purchases/1.Setup Data/CreateAUPurchPayableSetup.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Purchases/1.Setup Data/CreateAUPurchPayableSetup.Codeunit.al index 74a0923e48..75183c14f2 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Purchases/1.Setup Data/CreateAUPurchPayableSetup.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Purchases/1.Setup Data/CreateAUPurchPayableSetup.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Setup; using Microsoft.DemoData.Finance; using Microsoft.DemoData.Foundation; +using Microsoft.Purchases.Setup; codeunit 17142 "Create AU Purch Payable Setup" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Purchases/2.Master Data/CreateAUVendor.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Purchases/2.Master Data/CreateAUVendor.Codeunit.al index 4aca56067b..70453e643d 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Purchases/2.Master Data/CreateAUVendor.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Purchases/2.Master Data/CreateAUVendor.Codeunit.al @@ -5,11 +5,11 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; -using Microsoft.Foundation.Address; -using Microsoft.DemoData.Inventory; -using Microsoft.DemoData.Foundation; using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Foundation; +using Microsoft.DemoData.Inventory; +using Microsoft.Foundation.Address; +using Microsoft.Purchases.Vendor; codeunit 17144 "Create AU Vendor" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Purchases/2.Master Data/CreatePurchDimValueAU.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Purchases/2.Master Data/CreatePurchDimValueAU.Codeunit.al index 1873f8bead..bd52d87f7a 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Purchases/2.Master Data/CreatePurchDimValueAU.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Purchases/2.Master Data/CreatePurchDimValueAU.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Purchases; +using Microsoft.DemoData.Finance; using Microsoft.Finance.Dimension; using Microsoft.Purchases.Vendor; -using Microsoft.DemoData.Finance; codeunit 17165 "Create Purch. Dim. Value AU" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Purchases/3.Transaction Data/CreateAUPurchaseDocument.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Purchases/3.Transaction Data/CreateAUPurchaseDocument.Codeunit.al index fdbca70136..492402ba71 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Purchases/3.Transaction Data/CreateAUPurchaseDocument.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Purchases/3.Transaction Data/CreateAUPurchaseDocument.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Document; -using Microsoft.Foundation.Address; using Microsoft.DemoData.Foundation; +using Microsoft.Foundation.Address; +using Microsoft.Purchases.Document; codeunit 17143 "Create AU Purchase Document" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/1.Setup Data/CreateAUCustPostingGroup.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/1.Setup Data/CreateAUCustPostingGroup.Codeunit.al index 1aa9f19896..953a862f85 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/1.Setup Data/CreateAUCustPostingGroup.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/1.Setup Data/CreateAUCustPostingGroup.Codeunit.al @@ -6,8 +6,8 @@ namespace Microsoft.DemoData.Sales; using Microsoft.DemoData.Finance; -using Microsoft.Sales.Customer; using Microsoft.DemoTool.Helpers; +using Microsoft.Sales.Customer; codeunit 17129 "Create AU Cust Posting Group" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/1.Setup Data/CreateAUSalesRecvSetup.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/1.Setup Data/CreateAUSalesRecvSetup.Codeunit.al index 1d3f23c787..ad272e13b2 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/1.Setup Data/CreateAUSalesRecvSetup.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/1.Setup Data/CreateAUSalesRecvSetup.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Setup; using Microsoft.DemoData.Foundation; +using Microsoft.Sales.Setup; codeunit 17130 "Create AU Sales Recv Setup" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/2.Master Data/CreateAUCustomer.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/2.Master Data/CreateAUCustomer.Codeunit.al index 65c1be0c2b..4830573757 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/2.Master Data/CreateAUCustomer.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/2.Master Data/CreateAUCustomer.Codeunit.al @@ -5,11 +5,11 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; -using Microsoft.Foundation.Address; -using Microsoft.DemoData.Inventory; -using Microsoft.DemoData.Foundation; using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Foundation; +using Microsoft.DemoData.Inventory; +using Microsoft.Foundation.Address; +using Microsoft.Sales.Customer; codeunit 17132 "Create AU Customer" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/2.Master Data/CreateSalesDimValueAU.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/2.Master Data/CreateSalesDimValueAU.Codeunit.al index b6714eb343..cb82dc3bfa 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/2.Master Data/CreateSalesDimValueAU.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/2.Master Data/CreateSalesDimValueAU.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Sales; +using Microsoft.DemoData.Finance; using Microsoft.Finance.Dimension; using Microsoft.Sales.Customer; -using Microsoft.DemoData.Finance; codeunit 17166 "Create Sales Dim Value AU" { diff --git a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/3.Transaction Data/CreateAUSalesDocument.Codeunit.al b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/3.Transaction Data/CreateAUSalesDocument.Codeunit.al index 19c6cea04f..a99ff42bbb 100644 --- a/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/3.Transaction Data/CreateAUSalesDocument.Codeunit.al +++ b/Apps/AU/ContosoCoffeeDemoDatasetAU/app/DemoData/Sales/3.Transaction Data/CreateAUSalesDocument.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Document; -using Microsoft.Foundation.Address; using Microsoft.DemoData.Foundation; +using Microsoft.Foundation.Address; +using Microsoft.Sales.Document; codeunit 17135 "Create AU Sales Document" { diff --git a/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108214.json b/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108214.json deleted file mode 100644 index cbe79dd4e7..0000000000 --- a/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108214.json +++ /dev/null @@ -1 +0,0 @@ -{"outputs":{"1":{"page_count":1,"result":{"context":{"start_page":1,"end_page":1},"fields":{"amountDue":null,"billingAddress":null,"billingAddressRecipient":null,"customerAddress":{"value_text":"5 The Ring Westminster CANBERRA NSW 2600 Australia","value_number":null,"value_date":null,"confidence":0.84,"location":{"bounding_box":{"left":0.7997192719905435,"top":0.10790541914731037,"width":0.1336899346095075,"height":0.053421908496548445,"polygon":{"coordinates":[{"x":0.7997192719905435,"y":0.1605568139018976},{"x":0.8003243270565554,"y":0.10790541914731037},{"x":0.933409206600051,"y":0.10866736005895494},{"x":0.9328041515340391,"y":0.16132732764385882}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerAddressRecipient":null,"customerId":{"value_text":"99-99-888","value_number":null,"value_date":null,"confidence":0.649,"location":{"bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerName":{"value_text":"CRONUS International Ltd.","value_number":null,"value_date":null,"confidence":0.922,"location":{"bounding_box":{"left":0.08159586043319543,"top":0.651036736863995,"width":0.1588959294323226,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.651036736863995},{"x":0.24049178986551806,"y":0.651036736863995},{"x":0.24049178986551806,"y":0.6618923486019795},{"x":0.08159586043319543,"y":0.6618923486019795}]}},"page":1},"currency_symbol":null,"currency_code":null},"dueDate":{"value_text":"07/31/25","value_number":null,"value_date":"2025-07-31","confidence":0.979,"location":{"bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceDate":{"value_text":"June 4, 2025","value_number":null,"value_date":"2025-06-04","confidence":0.889,"location":{"bounding_box":{"left":0.2348164991350009,"top":0.22905500385083374,"width":0.07454107040622932,"height":0.011078199153706503,"polygon":{"coordinates":[{"x":0.2348164991350009,"y":0.2395852970898017},{"x":0.23497380710502905,"y":0.22905500385083374},{"x":0.3093575695412302,"y":0.22960293017707303},{"x":0.30920027599650884,"y":0.24013320300454025}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceId":{"value_text":"108214","value_number":null,"value_date":null,"confidence":0.979,"location":{"bounding_box":{"left":0.2374181753325639,"top":0.24262452872906484,"width":0.042340770867619865,"height":0.009545724088599966,"polygon":{"coordinates":[{"x":0.2374181753325639,"y":0.24262452872906484},{"x":0.2791418027271215,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2517336304050368}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceTotal":{"value_text":"AUD 5,000.00","value_number":5000,"value_date":null,"confidence":0.426,"location":{"bounding_box":{"left":0.8066651725895629,"top":0.4564919472138996,"width":0.12655038869277524,"height":0.011454893400120847,"polygon":{"coordinates":[{"x":0.8066651725895629,"y":0.46745031044667956},{"x":0.8067498779907556,"y":0.4564919472138996},{"x":0.9332155612823382,"y":0.4569885182042419},{"x":0.9331308558811456,"y":0.4679468406140204}]}},"page":1},"currency_symbol":"AUD","currency_code":"AUD"},"previousUnpaidBalance":null,"purchaseOrder":null,"remittanceAddress":null,"remittanceAddressRecipient":null,"serviceAddress":null,"serviceAddressRecipient":null,"serviceEndDate":null,"serviceStartDate":null,"shippingAddress":{"value_text":"5 The Ring Westminster CANBERRA NSW 2600 Australia","value_number":null,"value_date":null,"confidence":0.883,"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6649315802412427,"width":0.13313326923496366,"height":0.0520778213776506,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6649315802412427},{"x":0.2147291296681591,"y":0.6649315802412427},{"x":0.2147291296681591,"y":0.7170094016188933},{"x":0.08159586043319543,"y":0.7170094016188933}]}},"page":1},"currency_symbol":null,"currency_code":null},"shippingAddressRecipient":{"value_text":"CRONUS International Ltd.","value_number":null,"value_date":null,"confidence":0.922,"location":{"bounding_box":{"left":0.08159586043319543,"top":0.651036736863995,"width":0.1588959294323226,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.651036736863995},{"x":0.24049178986551806,"y":0.651036736863995},{"x":0.24049178986551806,"y":0.6618923486019795},{"x":0.08159586043319543,"y":0.6618923486019795}]}},"page":1},"currency_symbol":null,"currency_code":null},"subTotal":{"value_text":"5,000.00","value_number":5000,"value_date":null,"confidence":0.654,"location":{"bounding_box":{"left":0.3619598544867378,"top":0.5937451650257589,"width":0.05399389428696688,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.3619598544867378,"y":0.5941818078498876},{"x":0.41595374877370467,"y":0.5937451650257589},{"x":0.41595374877370467,"y":0.6037275319384876},{"x":0.3619598544867378,"y":0.6037275319384876}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"totalTax":{"value_text":"0.00","value_number":0,"value_date":null,"confidence":0.975,"location":{"bounding_box":{"left":0.9085904086481675,"top":0.5937451650257589,"width":0.026379789245114527,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.9085904086481675,"y":0.5937451650257589},{"x":0.9349701978932821,"y":0.5937451650257589},{"x":0.9349701978932821,"y":0.6032994619446755},{"x":0.9085904086481675,"y":0.6032994619446755}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"vendorAddress":{"value_text":"Arbachtalstrasse 6 Unter Achalm DE-72800 Eningen Germany","value_number":null,"value_date":null,"confidence":0.886,"location":{"bounding_box":{"left":0.08037367631942799,"top":0.0885399669839893,"width":0.10919783379207731,"height":0.06727394895671512,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.0885399669839893},{"x":0.1895715101115053,"y":0.0885399669839893},{"x":0.1895715101115053,"y":0.15581391594070443},{"x":0.08037367631942799,"y":0.15581391594070443}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorAddressRecipient":{"value_text":"Graphic Design Institute Bryce Jasso","value_number":null,"value_date":null,"confidence":0.886,"location":{"bounding_box":{"left":0.08003485471465763,"top":0.05981713275240025,"width":0.1440482064323712,"height":0.02749002040905138,"polygon":{"coordinates":[{"x":0.08003485471465763,"y":0.0863483025020336},{"x":0.08039787477148871,"y":0.05981713275240025},{"x":0.22408306114702883,"y":0.06076742589012718},{"x":0.2237321367099014,"y":0.08730715316145163}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorName":{"value_text":"Graphic Design Institute Bryce Jasso","value_number":null,"value_date":null,"confidence":0.886,"location":{"bounding_box":{"left":0.08003485471465763,"top":0.05981713275240025,"width":0.1440482064323712,"height":0.02749002040905138,"polygon":{"coordinates":[{"x":0.08003485471465763,"y":0.0863483025020336},{"x":0.08039787477148871,"y":0.05981713275240025},{"x":0.22408306114702883,"y":0.06076742589012718},{"x":0.2237321367099014,"y":0.08730715316145163}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerTaxId":{"value_text":"53001003000","value_number":null,"value_date":null,"confidence":0.493,"location":{"bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorTaxId":{"value_text":"521478963","value_number":null,"value_date":null,"confidence":0.972,"location":{"bounding_box":{"left":0.23497380710502905,"top":0.20052052184532704,"width":0.06625201507109887,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.20052052184532704},{"x":0.3012258221761279,"y":0.20052052184532704},{"x":0.3012258221761279,"y":0.21093951117068366},{"x":0.23557884774573423,"y":0.2105028887580557}]}},"page":1},"currency_symbol":null,"currency_code":null},"paymentTerms":{"value_text":"End of Next Month","value_number":null,"value_date":null,"confidence":0.915,"location":{"bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.11227144111237808,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}},"page":1},"currency_symbol":null,"currency_code":null}},"items":[{"fields":{"amount":{"value_text":"5,000.00","value_number":5000,"value_date":null,"confidence":0.951,"location":{"bounding_box":{"left":0.8834327890915138,"top":0.4296868296097721,"width":0.049698066789631845,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8834327890915138,"y":0.4296868296097721},{"x":0.9325137412586969,"y":0.4296868296097721},{"x":0.9331308558811456,"y":0.44053386851744003},{"x":0.8834327890915138,"y":0.44053386851744003}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"description":{"value_text":"Yearly license fee, design","value_number":null,"value_date":null,"confidence":0.923,"location":{"bounding_box":{"left":0.17534094500992287,"top":0.4289248682866268,"width":0.14992920924969133,"height":0.01326988404716295,"polygon":{"coordinates":[{"x":0.17534094500992287,"y":0.4414242181803278},{"x":0.17547404731523691,"y":0.4289248682866268},{"x":0.3252701542596142,"y":0.4296868296097721},{"x":0.32514915478665724,"y":0.44219475233378974}]}},"page":1},"currency_symbol":null,"currency_code":null},"unitPrice":{"value_text":"500.00","value_number":500,"value_date":null,"confidence":0.949,"location":{"bounding_box":{"left":0.5325088712751406,"top":0.43012343161089933,"width":0.03988429980772801,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5325088712751406,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.43012343161089933},{"x":0.5723931710828686,"y":0.44010579852362797},{"x":0.5325088712751406,"y":0.4396691965225008}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"quantity":{"value_text":"10","value_number":10,"value_date":null,"confidence":0.951,"location":{"bounding_box":{"left":0.4104236631808586,"top":0.4296868296097721,"width":0.012270223616489051,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.4104236631808586,"y":0.4296868296097721},{"x":0.42269388679734765,"y":0.4296868296097721},{"x":0.42269388679734765,"y":0.43923255369837205},{"x":0.4104236631808586,"y":0.43923255369837205}]}},"page":1},"currency_symbol":null,"currency_code":null},"productCode":null,"unit":null,"date":null,"tax":null},"row_text":"Yearly license fee, design 10 500.00 No NON GST 5,000.00","confidence":0.826,"location":{"bounding_box":{"left":0.1754619589081866,"top":0.4296868296097721,"width":0.757668896972959,"height":0.012148353726735894,"polygon":{"coordinates":[{"x":0.1754619589081866,"y":0.4296868296097721},{"x":0.9331308558811456,"y":0.4296868296097721},{"x":0.9331308558811456,"y":0.441835183336508},{"x":0.1754619589081866,"y":0.441835183336508}]}},"page":1}}],"key_value_pairs":[{"key":"Pay-to Vendor No.","value":"30000","confidence":0.876,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.18619762888576802,"width":0.11104926421126403,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.19791791261869185},{"x":0.08097871696013319,"y":0.19791791261869185}]}},"page":1},"value_location":{"bounding_box":{"left":0.23619599121879647,"top":0.18619762888576802,"width":0.03558853001161988,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.18619762888576802},{"x":0.27178452123041635,"y":0.18619762888576802},{"x":0.27178452123041635,"y":0.19617999579849668},{"x":0.23619599121879647,"y":0.19617999579849668}]}},"page":1}},{"key":"Phone No.","value":"0666-666-6666","confidence":0.905,"key_location":{"bounding_box":{"left":0.6666707442200392,"top":0.17949420627715698,"width":0.06358981028644384,"height":0.011043948655441393,"polygon":{"coordinates":[{"x":0.6666707442200392,"y":0.18991319560251363},{"x":0.6668764490941889,"y":0.17949420627715698},{"x":0.7302605545064831,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19053815493259837}]}},"page":1},"value_location":{"bounding_box":{"left":0.8423262618940982,"top":0.17969111602493043,"width":0.0901874793645987,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8423262618940982,"y":0.18011916560724173},{"x":0.9325137412586969,"y":0.17969111602493043},{"x":0.9325137412586969,"y":0.18967348293765912},{"x":0.8423262618940982,"y":0.18967348293765912}]}},"page":1}},{"key":"VAT Registration No.","value":"521478963","confidence":0.876,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.20008389943269908,"width":0.12392454289376499,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.20008389943269908},{"x":0.20490325985389818,"y":0.20008389943269908},{"x":0.20490325985389818,"y":0.2118041831656229},{"x":0.08097871696013319,"y":0.2118041831656229}]}},"page":1},"value_location":{"bounding_box":{"left":0.23497380710502905,"top":0.20052052184532704,"width":0.06625201507109887,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.20052052184532704},{"x":0.3012258221761279,"y":0.20052052184532704},{"x":0.3012258221761279,"y":0.21093951117068366},{"x":0.23557884774573423,"y":0.2105028887580557}]}},"page":1}},{"key":"Document Date","value":"June 4, 2025","confidence":0.868,"key_location":{"bounding_box":{"left":0.08037367631942799,"top":0.22916630776444508,"width":0.09385399564263414,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.22916630776444508},{"x":0.17422767196206213,"y":0.22916630776444508},{"x":0.17422767196206213,"y":0.2395852970898017},{"x":0.08037367631942799,"y":0.2395852970898017}]}},"page":1},"value_location":{"bounding_box":{"left":0.2348164991350009,"top":0.22905500385083374,"width":0.07454107040622932,"height":0.011078199153706503,"polygon":{"coordinates":[{"x":0.2348164991350009,"y":0.2395852970898017},{"x":0.23497380710502905,"y":0.22905500385083374},{"x":0.3093575695412302,"y":0.22960293017707303},{"x":0.30920027599650884,"y":0.24013320300454025}]}},"page":1}},{"key":"VAT Registration No.","value":"777777777","confidence":0.434,"key_location":{"bounding_box":{"left":0.6674814464589738,"top":0.21962056326434437,"width":0.1239245789570319,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.23090422458464024},{"x":0.6674814464589738,"y":0.23090422458464024}]}},"page":1},"value_location":{"bounding_box":{"left":0.8687060511392126,"top":0.2200486332581564,"width":0.06442480474193302,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8687060511392126,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22048525567078436},{"x":0.9331308558811456,"y":0.22960293017707303},{"x":0.8687060511392126,"y":0.22916630776444508}]}},"page":1}},{"key":"Invoice No.","value":"108214","confidence":0.904,"key_location":{"bounding_box":{"left":0.08016796423262504,"top":0.24218790631643689,"width":0.06787352052611517,"height":0.01106962632338987,"polygon":{"coordinates":[{"x":0.08016796423262504,"y":0.25260687523029274},{"x":0.08037367631942799,"y":0.24218790631643689},{"x":0.1480414847587402,"y":0.2428385433144701},{"x":0.14783576545928387,"y":0.25325753263982675}]}},"page":1},"value_location":{"bounding_box":{"left":0.2374181753325639,"top":0.24262452872906484,"width":0.042340770867619865,"height":0.009545724088599966,"polygon":{"coordinates":[{"x":0.2374181753325639,"y":0.24262452872906484},{"x":0.2791418027271215,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2517336304050368}]}},"page":1}},{"key":"Giro No.","value":"888-9999","confidence":0.897,"key_location":{"bounding_box":{"left":0.666864331836525,"top":0.23413181355286092,"width":0.051718936861817166,"height":0.010478897080069521,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.23459411363343738},{"x":0.7184017406382933,"y":0.23413181355286092},{"x":0.7185832686983422,"y":0.24414841055235398},{"x":0.6670458598965741,"y":0.24461071063293044}]}},"page":1},"value_location":{"bounding_box":{"left":0.8779148207563315,"top":0.23437152621771543,"width":0.0552160351248141,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8779148207563315,"y":0.23480814863034338},{"x":0.9325137412586969,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.24392582313663205},{"x":0.8779148207563315,"y":0.2434892007240041}]}},"page":1}},{"key":"Bank","value":"World Wide Bank","confidence":0.877,"key_location":{"bounding_box":{"left":0.6674814464589738,"top":0.24869441917727445,"width":0.02821913125725084,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.2578120936835631},{"x":0.6674814464589738,"y":0.2578120936835631}]}},"page":1},"value_location":{"bounding_box":{"left":0.8294509832115972,"top":0.2482663491834624,"width":0.10367987266954848,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.8294509832115972,"y":0.2482663491834624},{"x":0.9331308558811456,"y":0.2482663491834624},{"x":0.9331308558811456,"y":0.2586767860900031},{"x":0.8294509832115972,"y":0.2586767860900031}]}},"page":1}},{"key":"Posting Date","value":"06/04/25","confidence":0.905,"key_location":{"bounding_box":{"left":0.07975653284636575,"top":0.269523824997671,"width":0.07852224590024129,"height":0.01172885656324052,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269523824997671},{"x":0.15827877874660704,"y":0.26953237741648695},{"x":0.15827877874660704,"y":0.28125268156091154},{"x":0.07975653284636575,"y":0.2812441087305949}]}},"page":1},"value_location":{"bounding_box":{"left":0.23497380710502905,"top":0.269960447410299,"width":0.05520396114307055,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.269960447410299},{"x":0.2901777682480996,"y":0.269960447410299},{"x":0.2901777682480996,"y":0.28037943673565563},{"x":0.23497380710502905,"y":0.2799428143230277}]}},"page":1}},{"key":"Account No.","value":"99-99-888","confidence":0.904,"key_location":{"bounding_box":{"left":0.6664892161599902,"top":0.2623752071461154,"width":0.07461368740037166,"height":0.011677501227343567,"polygon":{"coordinates":[{"x":0.6664892161599902,"y":0.27253735855748495},{"x":0.6669127431659533,"y":0.2623752071461154},{"x":0.7411029035603619,"y":0.2638905569620894},{"x":0.7406914361108358,"y":0.27405270837345896}]}},"page":1},"value_location":{"bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}},"page":1}},{"key":"Due Date","value":"07/31/25","confidence":0.905,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.28341864796341804,"width":0.05583320023583645,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.29296439246351874},{"x":0.08097871696013319,"y":0.29296439246351874}]}},"page":1},"value_location":{"bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}},"page":1}},{"key":"Payment Terms","value":"End of Next Month","confidence":0.856,"key_location":{"bounding_box":{"left":0.08088190872658355,"top":0.30946184506740165,"width":0.09282542799596599,"height":0.01166035556671019,"polygon":{"coordinates":[{"x":0.08088190872658355,"y":0.3207455063876975},{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.17370733672254954,"y":0.30983853931381594},{"x":0.17361052848899988,"y":0.32112220063411184}]}},"page":1},"value_location":{"bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.11227144111237808,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}},"page":1}},{"key":"ABN","value":"53001003000","confidence":0.923,"key_location":{"bounding_box":{"left":0.6680986187826495,"top":0.30338338178887536,"width":0.022701162922068585,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.6680986187826495,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.312501056295164},{"x":0.6680986187826495,"y":0.312501056295164}]}},"page":1},"value_location":{"bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}},"page":1}},{"key":"Unit of Measure","value":"10","confidence":0.875,"key_location":{"bounding_box":{"left":0.43925993791117174,"top":0.39235999159699336,"width":0.0552160351248141,"height":0.023003924641718965,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.39235999159699336},{"x":0.49447597303598584,"y":0.39235999159699336},{"x":0.49447597303598584,"y":0.4153639162387123},{"x":0.43925993791117174,"y":0.4153639162387123}]}},"page":1},"value_location":{"bounding_box":{"left":0.4104236631808586,"top":0.4296868296097721,"width":0.012270223616489051,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.4104236631808586,"y":0.4296868296097721},{"x":0.42269388679734765,"y":0.4296868296097721},{"x":0.42269388679734765,"y":0.43923255369837205},{"x":0.4104236631808586,"y":0.43923255369837205}]}},"page":1}},{"key":"Unit Cost","value":"500.00","confidence":0.904,"key_location":{"bounding_box":{"left":0.5447790948916296,"top":0.39235999159699336,"width":0.029453418203375437,"height":0.02213925264677974,"polygon":{"coordinates":[{"x":0.5447790948916296,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.4144992442437731},{"x":0.5447790948916296,"y":0.4144992442437731}]}},"page":1},"value_location":{"bounding_box":{"left":0.5325088712751406,"top":0.43012343161089933,"width":0.03988429980772801,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5325088712751406,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.43012343161089933},{"x":0.5723931710828686,"y":0.44010579852362797},{"x":0.5325088712751406,"y":0.4396691965225008}]}},"page":1}},{"key":"Invoice","value":"No","confidence":0.923,"key_location":{"bounding_box":{"left":0.6779123857645534,"top":0.3927965935981206,"width":0.0460073232089222,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.6779123857645534,"y":0.3927965935981206},{"x":0.7239197089734756,"y":0.39322466359193264},{"x":0.7239197089734756,"y":0.4032070305046613},{"x":0.6779123857645534,"y":0.40277896051084927}]}},"page":1},"value_location":{"bounding_box":{"left":0.6785295003870021,"top":0.43055150160471134,"width":0.017171077329222517,"height":0.008253022922850184,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.43055150160471134},{"x":0.6957005777162246,"y":0.43055150160471134},{"x":0.6957005777162246,"y":0.4388045245275615},{"x":0.6785295003870021,"y":0.4388045245275615}]}},"page":1}},{"key":"VAT Identifier","value":"NON GST","confidence":0.266,"key_location":{"bounding_box":{"left":0.7729280729971298,"top":0.3922572401021979,"width":0.06159317472958603,"height":0.0235433189606431,"polygon":{"coordinates":[{"x":0.7729280729971298,"y":0.41557795123561836},{"x":0.7730853665418512,"y":0.3922572401021979},{"x":0.8345212477267159,"y":0.39247984792942064},{"x":0.8343518369243307,"y":0.415800559062841}]}},"page":1},"value_location":{"bounding_box":{"left":0.7740534200267342,"top":0.4291645809514813,"width":0.059257775269184854,"height":0.011026823406308783,"polygon":{"coordinates":[{"x":0.7740534200267342,"y":0.4396691965225008},{"x":0.7742470653444469,"y":0.4291645809514813},{"x":0.833311195295919,"y":0.4296954024400888},{"x":0.83312966723587,"y":0.4401914043577901}]}},"page":1}},{"key":"No.","value":"Yearly","confidence":0.371,"key_location":{"bounding_box":{"left":0.08221300390625766,"top":0.4053815493259837,"width":0.023923325397875936,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.4053815493259837},{"x":0.10551918583107135,"y":0.4053815493259837},{"x":0.1061363293041336,"y":0.4149273142375851},{"x":0.08221300390625766,"y":0.4149273142375851}]}},"page":1},"value_location":{"bounding_box":{"left":0.1754619589081866,"top":0.4296868296097721,"width":0.035576412753956094,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.1754619589081866,"y":0.4296868296097721},{"x":0.21043333102143752,"y":0.4296868296097721},{"x":0.2110383716621427,"y":0.44140711334269594},{"x":0.17607910238124885,"y":0.4409705113415687}]}},"page":1}},{"key":"Description","value":"license fee, design","confidence":0.875,"key_location":{"bounding_box":{"left":0.17607910238124885,"top":0.4049449473248565,"width":0.07238711245403665,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4053815493259837},{"x":0.2484662148352855,"y":0.4049449473248565},{"x":0.2484662148352855,"y":0.4166652310577803},{"x":0.17607910238124885,"y":0.415800559062841}]}},"page":1},"value_location":{"bounding_box":{"left":0.21349484272203462,"top":0.4296868296097721,"width":0.11165431206462262,"height":0.012148353726735894,"polygon":{"coordinates":[{"x":0.21349484272203462,"y":0.4296868296097721},{"x":0.32514915478665724,"y":0.4296868296097721},{"x":0.32514915478665724,"y":0.441835183336508},{"x":0.21349484272203462,"y":0.441835183336508}]}},"page":1}},{"key":"Quantity","value":null,"confidence":0.653,"key_location":{"bounding_box":{"left":0.3570590296246177,"top":0.4049449473248565,"width":0.057055377136950525,"height":0.012156926557052528,"polygon":{"coordinates":[{"x":0.3570590296246177,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.4053815493259837},{"x":0.41411440676156824,"y":0.417101873881909},{"x":0.3576640558400162,"y":0.4162286290566531}]}},"page":1},"value_location":null},{"key":"Discount %","value":null,"confidence":0.644,"key_location":{"bounding_box":{"left":0.5907985353582156,"top":0.4049449473248565,"width":0.07238717015526364,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5907985353582156,"y":0.4049449473248565},{"x":0.6631857055134792,"y":0.4049449473248565},{"x":0.6631857055134792,"y":0.4153639162387123},{"x":0.5907985353582156,"y":0.4153639162387123}]}},"page":1},"value_location":null},{"key":"Discount","value":null,"confidence":0.615,"key_location":{"bounding_box":{"left":0.679134555453014,"top":0.4053815493259837,"width":0.057055377136950525,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.679134555453014,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4153639162387123},{"x":0.679134555453014,"y":0.4149273142375851}]}},"page":1},"value_location":null},{"key":"Amount","value":"5,000.00","confidence":0.912,"key_location":{"bounding_box":{"left":0.8809763324569286,"top":0.4053815493259837,"width":0.05275957849022894,"height":0.010419009736857332,"polygon":{"coordinates":[{"x":0.8809763324569286,"y":0.4053815493259837},{"x":0.9337359109471576,"y":0.4053815493259837},{"x":0.9337359109471576,"y":0.415800559062841},{"x":0.8815934470793774,"y":0.4153639162387123}]}},"page":1},"value_location":{"bounding_box":{"left":0.8834327890915138,"top":0.4296868296097721,"width":0.049698066789631845,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8834327890915138,"y":0.4296868296097721},{"x":0.9325137412586969,"y":0.4296868296097721},{"x":0.9331308558811456,"y":0.44053386851744003},{"x":0.8834327890915138,"y":0.44053386851744003}]}},"page":1}},{"key":"Total AUD","value":"5,000.00","confidence":0.905,"key_location":{"bounding_box":{"left":0.7705563217637372,"top":0.45659469870869496,"width":0.06257334547213278,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.7705563217637372,"y":0.45659469870869496},{"x":0.83312966723587,"y":0.45659469870869496},{"x":0.83312966723587,"y":0.46745031044667956},{"x":0.7705563217637372,"y":0.46745031044667956}]}},"page":1},"value_location":{"bounding_box":{"left":0.8785319353787803,"top":0.4570313007098222,"width":0.05459892050236537,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8785319353787803,"y":0.4570313007098222},{"x":0.9331308558811456,"y":0.4570313007098222},{"x":0.9331308558811456,"y":0.4678783396174901},{"x":0.8791369904447922,"y":0.46745031044667956}]}},"page":1}},{"key":"Specification","value":null,"confidence":0.298,"key_location":{"bounding_box":{"left":0.1674875050878057,"top":0.5164888593620655,"width":0.08097870974747981,"height":0.012584996550864647,"polygon":{"coordinates":[{"x":0.1674875050878057,"y":0.5164888593620655},{"x":0.2484662148352855,"y":0.5164888593620655},{"x":0.2484662148352855,"y":0.5290738559129301},{"x":0.16809254572851087,"y":0.528645785919118}]}},"page":1},"value_location":null},{"key":"Inv. Disc. Base Line","value":"5,000.00 5,000.00","confidence":0.249,"key_location":{"bounding_box":{"left":0.33435786670254913,"top":0.529947100738186,"width":0.2079768888121591,"height":0.022567322640591803,"polygon":{"coordinates":[{"x":0.33435786670254913,"y":0.529947100738186},{"x":0.5423347555147082,"y":0.529947100738186},{"x":0.5423347555147082,"y":0.5525144233787778},{"x":0.33435786670254913,"y":0.5525144233787778}]}},"page":1},"value_location":{"bounding_box":{"left":0.3619598544867378,"top":0.5672739387509648,"width":0.05399389428696688,"height":0.03645359318752284,"polygon":{"coordinates":[{"x":0.3619598544867378,"y":0.5672739387509648},{"x":0.41595374877370467,"y":0.5672739387509648},{"x":0.41595374877370467,"y":0.6037275319384876},{"x":0.3619598544867378,"y":0.6037275319384876}]}},"page":1}},{"key":"VAT Identifier","value":"NON GST","confidence":0.871,"key_location":{"bounding_box":{"left":0.08159586043319543,"top":0.5416588116407932,"width":0.09079248394203702,"height":0.011292213739111712,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5416588116407932},{"x":0.17238834437523246,"y":0.5416673844711098},{"x":0.17238834437523246,"y":0.5529510253799049},{"x":0.08159586043319543,"y":0.5529424933725898}]}},"page":1},"value_location":{"bounding_box":{"left":0.08159586043319543,"top":0.5668372959268361,"width":0.058894711936433544,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5668372959268361},{"x":0.14049057236962897,"y":0.5668372959268361},{"x":0.14049057236962897,"y":0.5768196628395647},{"x":0.08159586043319543,"y":0.5768196628395647}]}},"page":1}},{"key":"VAT %","value":"0 0.00","confidence":0.236,"key_location":{"bounding_box":{"left":0.24600975820070034,"top":0.5416673844711098,"width":0.04110649834680216,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.24600975820070034,"y":0.5416673844711098},{"x":0.2871162565475025,"y":0.5416673844711098},{"x":0.2871162565475025,"y":0.5520777805546491},{"x":0.24600975820070034,"y":0.5520777805546491}]}},"page":1},"value_location":{"bounding_box":{"left":0.27975894620018377,"top":0.5672739387509648,"width":0.3963140975522332,"height":0.03602552319371077,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5672739387509648},{"x":0.676073043752417,"y":0.5672739387509648},{"x":0.676073043752417,"y":0.6032994619446755},{"x":0.27975894620018377,"y":0.6032994619446755}]}},"page":1}},{"key":"Ship-to Address","value":"CRONUS International Ltd. 5 The Ring Westminster CANBERRA NSW 2600 Australia","confidence":0.172,"key_location":{"bounding_box":{"left":0.0821282912924117,"top":0.6369450041504746,"width":0.1032442428312284,"height":0.01191721389219802,"polygon":{"coordinates":[{"x":0.0821282912924117,"y":0.6484341480488606},{"x":0.08221300390625766,"y":0.6369450041504746},{"x":0.1853725341236401,"y":0.6373730741442866},{"x":0.18527572589009048,"y":0.6488622180426726}]}},"page":1},"value_location":{"bounding_box":{"left":0.08159586043319543,"top":0.651036736863995,"width":0.1588959294323226,"height":0.06597266475489827,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.651036736863995},{"x":0.24049178986551806,"y":0.651036736863995},{"x":0.24049178986551806,"y":0.7170094016188933},{"x":0.08159586043319543,"y":0.7170094016188933}]}},"page":1}}]},"read_results":[{"location":{"bounding_box":{"left":0.7245368812971513,"top":0.03992945489372671,"width":0.20245889162636332,"height":0.016925499634756605,"polygon":{"coordinates":[{"x":0.7245368812971513,"y":0.03992945489372671},{"x":0.9269957729235146,"y":0.03992945489372671},{"x":0.9269957729235146,"y":0.05685495452848331},{"x":0.7245368812971513,"y":0.05685495452848331}]}},"page":1},"text":"Purchase - Invoice"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.06076742589012718,"width":0.1447863638036972,"height":0.011711726211232745,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.06076742589012718},{"x":0.22454289665006294,"y":0.06076742589012718},{"x":0.22454289665006294,"y":0.07247915210135993},{"x":0.07975653284636575,"y":0.07247915210135993}]}},"page":1},"text":"Graphic Design Institute"},{"location":{"bounding_box":{"left":0.8908021589952693,"top":0.06163210809081681,"width":0.04171158226342764,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.8908021589952693,"y":0.06206873050344477},{"x":0.9325137412586969,"y":0.06163210809081681},{"x":0.9325137412586969,"y":0.07247915210135993},{"x":0.8914072140612812,"y":0.07247915210135993}]}},"page":1},"text":"Page 1"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.07595500105037582,"width":0.06809133544527518,"height":0.010418989325356634,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.07595500105037582},{"x":0.14846501176470317,"y":0.07595500105037582},{"x":0.14846501176470317,"y":0.08637399037573246},{"x":0.08037367631942799,"y":0.0859373679631045}]}},"page":1},"text":"Bryce Jasso"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.0885399669839893,"width":0.1104321207382018,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.0885399669839893},{"x":0.19018865358456755,"y":0.0885399669839893},{"x":0.19018865358456755,"y":0.09895895630934592},{"x":0.07975653284636575,"y":0.09895895630934592}]}},"page":1},"text":"Arbachtalstrasse 6"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.10112494312335316,"width":0.08281804454696287,"height":0.010855601532234208,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.10156156553598111},{"x":0.16257457739332862,"y":0.10112494312335316},{"x":0.16257457739332862,"y":0.1115439222429594},{"x":0.07975653284636575,"y":0.11198054465558736}]}},"page":1},"text":"Unter Achalm"},{"location":{"bounding_box":{"left":0.9251564309113782,"top":0.09418180784988762,"width":0.007974424969767413,"height":0.009117674506288656,"polygon":{"coordinates":[{"x":0.9251564309113782,"y":0.09418180784988762},{"x":0.9325137412586969,"y":0.09418180784988762},{"x":0.9331308558811456,"y":0.10329948235617628},{"x":0.9251564309113782,"y":0.1028628701492987}]}},"page":1},"text":"5"},{"location":{"bounding_box":{"left":0.8693232234628884,"top":0.10807664102138496,"width":0.06319051779580853,"height":0.011283661320295887,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.10807664102138496},{"x":0.9325137412586969,"y":0.10850470080944664},{"x":0.9325137412586969,"y":0.11936030234168085},{"x":0.8693232234628884,"y":0.11848705751642494}]}},"page":1},"text":"5 The Ring"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.13020735145509915,"width":0.1104321207382018,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.13020735145509915},{"x":0.19018865358456755,"y":0.13020735145509915},{"x":0.19018865358456755,"y":0.14105440056851745},{"x":0.07975653284636575,"y":0.14105440056851745}]}},"page":1},"text":"DE-72800 Eningen"},{"location":{"bounding_box":{"left":0.8570529998463994,"top":0.12239953398094398,"width":0.07607785603474626,"height":0.010410426700790357,"polygon":{"coordinates":[{"x":0.8570529998463994,"y":0.12239953398094398},{"x":0.9331308558811456,"y":0.12282759376900566},{"x":0.9325137412586969,"y":0.13280996068173434},{"x":0.8570529998463994,"y":0.13238190089367266}]}},"page":1},"text":"Westminster"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.14453024441465817,"width":0.056438240876541645,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.14453024441465817},{"x":0.1361947737229074,"y":0.14496686682728613},{"x":0.13557763024984515,"y":0.15537729352807647},{"x":0.07975653284636575,"y":0.15407598891475888}]}},"page":1},"text":"Germany"},{"location":{"bounding_box":{"left":0.7987753953197612,"top":0.13628580452787506,"width":0.13435546056138448,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.7987753953197612,"y":0.13628580452787506},{"x":0.9331308558811456,"y":0.13628580452787506},{"x":0.9331308558811456,"y":0.14713285364129336},{"x":0.7987753953197612,"y":0.14670479385323168}]}},"page":1},"text":"CANBERRA NSW 2600"},{"location":{"bounding_box":{"left":0.8791369904447922,"top":0.15104531990006204,"width":0.053376750813904694,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.8791369904447922,"y":0.1514733796881237},{"x":0.9325137412586969,"y":0.15104531990006204},{"x":0.9325137412586969,"y":0.1610276868127907},{"x":0.8791369904447922,"y":0.1610276868127907}]}},"page":1},"text":"Australia"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.18576100647314006,"width":0.11165430485196923,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18576100647314006},{"x":0.19202798117139722,"y":0.1974812902060639},{"x":0.08037367631942799,"y":0.1974812902060639}]}},"page":1},"text":"Pay-to Vendor No."},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.18619762888576802,"width":0.039267170759972464,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.18619762888576802},{"x":0.27362383439193927,"y":0.18619762888576802},{"x":0.27362383439193927,"y":0.19617999579849668},{"x":0.23497380710502905,"y":0.19574337338586872}]}},"page":1},"text":"30000"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.17969111602493043,"width":0.06379557286182047,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.17969111602493043},{"x":0.7300548496323336,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19010153251997042},{"x":0.6662592767705131,"y":0.18967348293765912}]}},"page":1},"text":"Phone No."},{"location":{"bounding_box":{"left":0.8411040922056375,"top":0.17969111602493043,"width":0.09324893336396878,"height":0.009545744500100733,"polygon":{"coordinates":[{"x":0.8411040922056375,"y":0.17969111602493043},{"x":0.9343530255696063,"y":0.17969111602493043},{"x":0.9343530255696063,"y":0.18923686052503116},{"x":0.8411040922056375,"y":0.18923686052503116}]}},"page":1},"text":"0666-666-6666"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.19965582943888702,"width":0.12514672700753243,"height":0.011711731314107937,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.19965582943888702},{"x":0.20490325985389818,"y":0.19965582943888702},{"x":0.20490325985389818,"y":0.21136756075299495},{"x":0.07975653284636575,"y":0.21136756075299495}]}},"page":1},"text":"VAT Registration No."},{"location":{"bounding_box":{"left":0.23497380710502905,"top":0.20008389943269908,"width":0.06686915854416112,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.20008389943269908},{"x":0.30184296564919016,"y":0.20008389943269908},{"x":0.30184296564919016,"y":0.2105028887580557},{"x":0.23497380710502905,"y":0.2105028887580557}]}},"page":1},"text":"521478963"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.19270414174660558,"width":0.0717821150892517,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.20355975348459018},{"x":0.6662592767705131,"y":0.20312313107196223}]}},"page":1},"text":"Home Page"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2057257402985974,"width":0.03435427191610885,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.20659896471235256},{"x":0.700613548686622,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2157080867998253},{"x":0.666864331836525,"y":0.21528003721751401}]}},"page":1},"text":"Email"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.22872968535181712,"width":0.09570542606182086,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.22872968535181712},{"x":0.1754619589081866,"y":0.22872968535181712},{"x":0.1754619589081866,"y":0.23914867467717374},{"x":0.07975653284636575,"y":0.23914867467717374}]}},"page":1},"text":"Document Date"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.21962056326434437,"width":0.12454169357948064,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.21962056326434437},{"x":0.7908009703499937,"y":0.21962056326434437},{"x":0.7908009703499937,"y":0.23090422458464024},{"x":0.6662592767705131,"y":0.23090422458464024}]}},"page":1},"text":"VAT Registration No."},{"location":{"bounding_box":{"left":0.8662617117622913,"top":0.2200486332581564,"width":0.0674741991848663,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.8662617117622913,"y":0.2200486332581564},{"x":0.9337359109471576,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22916630776444508},{"x":0.8662617117622913,"y":0.22872968535181712}]}},"page":1},"text":"777777777"},{"location":{"bounding_box":{"left":0.23313447951819938,"top":0.22916630776444508,"width":0.07668293995137171,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23313447951819938,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.22916630776444508},{"x":0.30920027599650884,"y":0.2395852970898017},{"x":0.23313447951819938,"y":0.23914867467717374}]}},"page":1},"text":"June 4, 2025"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.24218790631643689,"width":0.06809133544527518,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.24218790631643689},{"x":0.14784786829164093,"y":0.24218790631643689},{"x":0.14784786829164093,"y":0.2521702528176648},{"x":0.07975653284636575,"y":0.2521702528176648}]}},"page":1},"text":"Invoice No."},{"location":{"bounding_box":{"left":0.23557884774573423,"top":0.24218790631643689,"width":0.044785153520461474,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.24218790631643689},{"x":0.2803640012661957,"y":0.24262452872906484},{"x":0.2803640012661957,"y":0.2517336304050368},{"x":0.23557884774573423,"y":0.25129702840390966}]}},"page":1},"text":"108214"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2339434562239034,"width":0.05214246386778021,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.23437152621771543},{"x":0.7177846260158445,"y":0.2339434562239034},{"x":0.7184017406382933,"y":0.24392582313663205},{"x":0.6662592767705131,"y":0.24392582313663205}]}},"page":1},"text":"Giro No."},{"location":{"bounding_box":{"left":0.8760754787441951,"top":0.23437152621771543,"width":0.057055377136950525,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.8760754787441951,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.2434892007240041},{"x":0.8760754787441951,"y":0.2434892007240041}]}},"page":1},"text":"888-9999"},{"location":{"bounding_box":{"left":0.666864331836525,"top":0.24869441917727445,"width":0.03129270251428484,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.24869441917727445},{"x":0.6981570343508099,"y":0.24869441917727445},{"x":0.6981570343508099,"y":0.2578120936835631},{"x":0.6680986187826495,"y":0.2578120936835631}]}},"page":1},"text":"Bank"},{"location":{"bounding_box":{"left":0.8282166962654727,"top":0.2482663491834624,"width":0.10613632930413364,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8282166962654727,"y":0.2482663491834624},{"x":0.9343530255696063,"y":0.2482663491834624},{"x":0.9343530255696063,"y":0.2582487160961911},{"x":0.8282166962654727,"y":0.2582487160961911}]}},"page":1},"text":"World Wide Bank"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.269095755003859,"width":0.0791393893733035,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269095755003859},{"x":0.15889592221966925,"y":0.269095755003859},{"x":0.15889592221966925,"y":0.2808160591482836},{"x":0.07975653284636575,"y":0.2808160591482836}]}},"page":1},"text":"Posting Date"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.26953237741648695,"width":0.055821104616132794,"height":0.010410436906540754,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.26953237741648695},{"x":0.2901777682480996,"y":0.26953237741648695},{"x":0.2901777682480996,"y":0.2799428143230277},{"x":0.2343566636319668,"y":0.27951474432921564}]}},"page":1},"text":"06/04/25"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2630173121368335,"width":0.0748436267898488,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.2630173121368335},{"x":0.7411029035603619,"y":0.2630173121368335},{"x":0.7411029035603619,"y":0.2725716090557501},{"x":0.6662592767705131,"y":0.27213498664312213}]}},"page":1},"text":"Account No."},{"location":{"bounding_box":{"left":0.8693232234628884,"top":0.26258924214302143,"width":0.06502980210671794,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.26258924214302143},{"x":0.9343530255696063,"y":0.26258924214302143},{"x":0.9343530255696063,"y":0.27213498664312213},{"x":0.8693232234628884,"y":0.27213498664312213}]}},"page":1},"text":"99-99-888"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.28298202555079005,"width":0.05767252782266613,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.28298202555079005},{"x":0.13742906066903188,"y":0.28298202555079005},{"x":0.13742906066903188,"y":0.29253634288120745},{"x":0.07975653284636575,"y":0.29296439246351874}]}},"page":1},"text":"Due Date"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.28255397596847875,"width":0.055821104616132794,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.28255397596847875},{"x":0.2901777682480996,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29253634288120745},{"x":0.2343566636319668,"y":0.29253634288120745}]}},"page":1},"text":"07/31/25"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.09202677088816151,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.1730054878482947,"y":0.30946184506740165},{"x":0.1730054878482947,"y":0.32030888397506957},{"x":0.08097871696013319,"y":0.32030888397506957}]}},"page":1},"text":"Payment Terms"},{"location":{"bounding_box":{"left":0.23497380710502905,"top":0.30946184506740165,"width":0.11471582376521969,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.30946184506740165},{"x":0.34968963087024874,"y":0.3098984674800296},{"x":0.34968963087024874,"y":0.3194442119801303},{"x":0.23497380710502905,"y":0.31900758956750236}]}},"page":1},"text":"End of Next Month"},{"location":{"bounding_box":{"left":0.666864331836525,"top":0.30338338178887536,"width":0.028231248514914653,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.3038200042015033},{"x":0.694478408027764,"y":0.30338338178887536},{"x":0.6950955803514397,"y":0.312501056295164},{"x":0.6674814464589738,"y":0.3120644542940368}]}},"page":1},"text":"ABN"},{"location":{"bounding_box":{"left":0.8521521461336659,"top":0.3029467593762474,"width":0.08097870974747978,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8521521461336659,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31292912628897607},{"x":0.8521521461336659,"y":0.31292912628897607}]}},"page":1},"text":"53001003000"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.3224834232078927,"width":0.1104321207382018,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.32291149320170476},{"x":0.19018865358456755,"y":0.3224834232078927},{"x":0.19018865358456755,"y":0.3337671049396893},{"x":0.08037367631942799,"y":0.3337671049396893}]}},"page":1},"text":"Shipment Method"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.3359330713421958,"width":0.12330739942070276,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.3359330713421958},{"x":0.2030639322670685,"y":0.3359330713421958},{"x":0.2030639322670685,"y":0.3476533754866204},{"x":0.07975653284636575,"y":0.34721673266249165}]}},"page":1},"text":"Prices Including VAT"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.3372343861612638,"width":0.020861835335238915,"height":0.008681072505161425,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.3372343861612638},{"x":0.2546013554941435,"y":0.3372343861612638},{"x":0.2552184989672057,"y":0.3459154586664252},{"x":0.2343566636319668,"y":0.34548738867261314}]}},"page":1},"text":"No"},{"location":{"bounding_box":{"left":0.5319038162091286,"top":0.38020306503994084,"width":0.04171158226342753,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.5319038162091286,"y":0.38020306503994084},{"x":0.5736153984725562,"y":0.38020306503994084},{"x":0.5736153984725562,"y":0.38975736195885746},{"x":0.5319038162091286,"y":0.38975736195885746}]}},"page":1},"text":"Direct"},{"location":{"bounding_box":{"left":0.6766902160760927,"top":0.37977499504612877,"width":0.03925506792761546,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6766902160760927,"y":0.38020306503994084},{"x":0.7159452840037082,"y":0.37977499504612877},{"x":0.7159452840037082,"y":0.38975736195885746},{"x":0.6766902160760927,"y":0.38975736195885746}]}},"page":1},"text":"Allow"},{"location":{"bounding_box":{"left":0.4386548828451598,"top":0.39235999159699336,"width":0.04846377984350736,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.4386548828451598,"y":0.39235999159699336},{"x":0.48711866268866716,"y":0.39235999159699336},{"x":0.48650154806621837,"y":0.40234235850972205},{"x":0.4386548828451598,"y":0.40234235850972205}]}},"page":1},"text":"Unit of"},{"location":{"bounding_box":{"left":0.5441740975268446,"top":0.39235999159699336,"width":0.030675587891835998,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.5441740975268446,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.5748496854186806,"y":0.4019057156855933},{"x":0.5441740975268446,"y":0.4019057156855933}]}},"page":1},"text":"Unit"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.3927965935981206,"width":0.04785878247872244,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.3927965935981206},{"x":0.7251539959196001,"y":0.3927965935981206},{"x":0.7245368812971513,"y":0.40277896051084927},{"x":0.6772952134408776,"y":0.40234235850972205}]}},"page":1},"text":"Invoice"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.39235999159699336,"width":0.028836245879699685,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.3927965935981206},{"x":0.8012319096555733,"y":0.39235999159699336},{"x":0.8018369070203583,"y":0.4019057156855933},{"x":0.7730006611406586,"y":0.4019057156855933}]}},"page":1},"text":"VAT"},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.4053815493259837,"width":0.024540468870938165,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.4058181921501124},{"x":0.1061363293041336,"y":0.4053815493259837},{"x":0.10551918583107135,"y":0.4149273142375851},{"x":0.08159586043319543,"y":0.4149273142375851}]}},"page":1},"text":"No."},{"location":{"bounding_box":{"left":0.1754619589081866,"top":0.4049449473248565,"width":0.07422645446617307,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.1754619589081866,"y":0.4049449473248565},{"x":0.24968841337435968,"y":0.4049449473248565},{"x":0.24968841337435968,"y":0.4162286290566531},{"x":0.1754619589081866,"y":0.415800559062841}]}},"page":1},"text":"Description"},{"location":{"bounding_box":{"left":0.35521968761248135,"top":0.4049449473248565,"width":0.058894719149086894,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.35521968761248135,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.4166652310577803},{"x":0.35521968761248135,"y":0.415800559062841}]}},"page":1},"text":"Quantity"},{"location":{"bounding_box":{"left":0.43925993791117174,"top":0.4053815493259837,"width":0.056450322070938586,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.4053815493259837},{"x":0.4957102599821103,"y":0.4058181921501124},{"x":0.4957102599821103,"y":0.4149273142375851},{"x":0.43925993791117174,"y":0.4149273142375851}]}},"page":1},"text":"Measure"},{"location":{"bounding_box":{"left":0.5423347555147082,"top":0.4053815493259837,"width":0.03557644160456952,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.5423347555147082,"y":0.4053815493259837},{"x":0.5779111971192777,"y":0.4053815493259837},{"x":0.5779111971192777,"y":0.4144992442437731},{"x":0.5423347555147082,"y":0.4144992442437731}]}},"page":1},"text":"Cost"},{"location":{"bounding_box":{"left":0.5895642484120911,"top":0.4049449473248565,"width":0.07362145710138812,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5895642484120911,"y":0.4049449473248565},{"x":0.6631857055134792,"y":0.4049449473248565},{"x":0.6631857055134792,"y":0.4149273142375851},{"x":0.5895642484120911,"y":0.4149273142375851}]}},"page":1},"text":"Discount %"},{"location":{"bounding_box":{"left":0.6779123857645534,"top":0.4053815493259837,"width":0.05889471914908695,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.6779123857645534,"y":0.4053815493259837},{"x":0.7368071049136403,"y":0.4053815493259837},{"x":0.7368071049136403,"y":0.4149273142375851},{"x":0.6779123857645534,"y":0.4144992442437731}]}},"page":1},"text":"Discount"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.4049449473248565,"width":0.06074612071766017,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4153639162387123},{"x":0.7730006611406586,"y":0.4149273142375851}]}},"page":1},"text":"Identifier"},{"location":{"bounding_box":{"left":0.8803712773909167,"top":0.4053815493259837,"width":0.053981748178689615,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.8803712773909167,"y":0.4053815493259837},{"x":0.9343530255696063,"y":0.4053815493259837},{"x":0.9343530255696063,"y":0.4153639162387123},{"x":0.8803712773909167,"y":0.4149273142375851}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.17422767196206213,"top":0.4292501867856434,"width":0.1509214828245951,"height":0.012584996550864591,"polygon":{"coordinates":[{"x":0.17422767196206213,"y":0.4292501867856434},{"x":0.32514915478665724,"y":0.4296868296097721},{"x":0.32514915478665724,"y":0.441835183336508},{"x":0.17422767196206213,"y":0.4409705113415687}]}},"page":1},"text":"Yearly license fee, design"},{"location":{"bounding_box":{"left":0.4104236631808586,"top":0.4296868296097721,"width":0.013504510562613536,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.4104236631808586,"y":0.43012343161089933},{"x":0.4233110302704099,"y":0.4296868296097721},{"x":0.42392817374347214,"y":0.43923255369837205},{"x":0.4104236631808586,"y":0.4388045245275615}]}},"page":1},"text":"10"},{"location":{"bounding_box":{"left":0.5319038162091286,"top":0.4296868296097721,"width":0.04171158226342753,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.5319038162091286,"y":0.4296868296097721},{"x":0.5736153984725562,"y":0.4296868296097721},{"x":0.5736153984725562,"y":0.4396691965225008},{"x":0.5319038162091286,"y":0.4396691965225008}]}},"page":1},"text":"500.00"},{"location":{"bounding_box":{"left":0.6779123857645534,"top":0.43055150160471134,"width":0.019627533963807675,"height":0.008253022922850184,"polygon":{"coordinates":[{"x":0.6779123857645534,"y":0.43055150160471134},{"x":0.6969348646623491,"y":0.43055150160471134},{"x":0.697539919728361,"y":0.4388045245275615},{"x":0.6779123857645534,"y":0.4388045245275615}]}},"page":1},"text":"No"},{"location":{"bounding_box":{"left":0.7736177757631074,"top":0.4292501867856434,"width":0.05951189147276259,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.7736177757631074,"y":0.4292501867856434},{"x":0.83312966723587,"y":0.4292501867856434},{"x":0.83312966723587,"y":0.4396691965225008},{"x":0.7736177757631074,"y":0.43923255369837205}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.882815616767838,"top":0.4292501867856434,"width":0.0503152391133076,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.882815616767838,"y":0.4292501867856434},{"x":0.9331308558811456,"y":0.4292501867856434},{"x":0.9331308558811456,"y":0.44010579852362797},{"x":0.882815616767838,"y":0.44010579852362797}]}},"page":1},"text":"5,000.00"},{"location":{"bounding_box":{"left":0.768704862493937,"top":0.45659469870869496,"width":0.0687206033886546,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.768704862493937,"y":0.45659469870869496},{"x":0.8374254658825916,"y":0.45659469870869496},{"x":0.8374254658825916,"y":0.46745031044667956},{"x":0.768704862493937,"y":0.46745031044667956}]}},"page":1},"text":"Total AUD"},{"location":{"bounding_box":{"left":0.8785319353787803,"top":0.45659469870869496,"width":0.055203975568377306,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.8785319353787803,"y":0.45659469870869496},{"x":0.9337359109471576,"y":0.45659469870869496},{"x":0.9337359109471576,"y":0.46745031044667956},{"x":0.8785319353787803,"y":0.46745031044667956}]}},"page":1},"text":"5,000.00"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.5160608301912549,"width":0.17054902400105615,"height":0.012584955727863112,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.5160608301912549},{"x":0.2503055568474219,"y":0.5160608301912549},{"x":0.2503055568474219,"y":0.528645785919118},{"x":0.07975653284636575,"y":0.528645785919118}]}},"page":1},"text":"VAT Amount Specification"},{"location":{"bounding_box":{"left":0.4503079629885866,"top":0.5295104579140573,"width":0.09202679252612161,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.4503079629885866,"y":0.5295104579140573},{"x":0.5423347555147082,"y":0.5295104579140573},{"x":0.5423347555147082,"y":0.5399294676509147},{"x":0.4503079629885866,"y":0.539492824826786}]}},"page":1},"text":"Inv. Disc. Base"},{"location":{"bounding_box":{"left":0.5656409158015618,"top":0.5295104579140573,"width":0.1085928436399457,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.5656409158015618,"y":0.5295104579140573},{"x":0.6742337594415075,"y":0.5295104579140573},{"x":0.6742337594415075,"y":0.5399294676509147},{"x":0.5656409158015618,"y":0.5399294676509147}]}},"page":1},"text":"Invoice Discount"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5416673844711098,"width":0.09140962741509927,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5416673844711098},{"x":0.17238834437523246,"y":0.5416673844711098},{"x":0.17238834437523246,"y":0.5525144233787778},{"x":0.08097871696013319,"y":0.5525144233787778}]}},"page":1},"text":"VAT Identifier"},{"location":{"bounding_box":{"left":0.2441704450391774,"top":0.5416673844711098,"width":0.04356295498138735,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.2441704450391774,"y":0.5416673844711098},{"x":0.28773340002056474,"y":0.5420954136419204},{"x":0.28773340002056474,"y":0.5520777805546491},{"x":0.2441704450391774,"y":0.5520777805546491}]}},"page":1},"text":"VAT %"},{"location":{"bounding_box":{"left":0.3337407232294869,"top":0.5420954136419204,"width":0.08343519523267845,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.3337407232294869,"y":0.5420954136419204},{"x":0.41717591846216534,"y":0.5420954136419204},{"x":0.41717591846216534,"y":0.5525144233787778},{"x":0.3337407232294869,"y":0.5520777805546491}]}},"page":1},"text":"Line Amount"},{"location":{"bounding_box":{"left":0.49079734671293995,"top":0.5425320564660491,"width":0.05459892050236537,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.49079734671293995,"y":0.5425320564660491},{"x":0.5453962672153053,"y":0.5429686584671763},{"x":0.5453962672153053,"y":0.5520777805546491},{"x":0.49079734671293995,"y":0.5516497513838385}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.623313465262188,"top":0.5420954136419204,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.623313465262188,"y":0.5420954136419204},{"x":0.6779123857645534,"y":0.5420954136419204},{"x":0.6779123857645534,"y":0.5520777805546491},{"x":0.623313465262188,"y":0.5520777805546491}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.7404857312366862,"top":0.5420954136419204,"width":0.06196834810734786,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.7404857312366862,"y":0.5420954136419204},{"x":0.802454079344034,"y":0.5420954136419204},{"x":0.802454079344034,"y":0.5525144233787778},{"x":0.7404857312366862,"y":0.5520777805546491}]}},"page":1},"text":"VAT Base"},{"location":{"bounding_box":{"left":0.8521521461336659,"top":0.5420954136419204,"width":0.08465739377175263,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8521521461336659,"y":0.5420954136419204},{"x":0.9368095399054185,"y":0.5425320564660491},{"x":0.9368095399054185,"y":0.5520777805546491},{"x":0.8521521461336659,"y":0.5520777805546491}]}},"page":1},"text":"VAT Amount"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5664006939257088,"width":0.05951185540949579,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5668372959268361},{"x":0.14049057236962897,"y":0.5664006939257088},{"x":0.14049057236962897,"y":0.5763830608384375},{"x":0.08097871696013319,"y":0.5768196628395647}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.27975894620018377,"top":0.5672739387509648,"width":0.008579508886392861,"height":0.008681052093660657,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5677020087447768},{"x":0.28773340002056474,"y":0.5672739387509648},{"x":0.28833845508657663,"y":0.5759549908446254},{"x":0.2803640012661957,"y":0.5759549908446254}]}},"page":1},"text":"0"},{"location":{"bounding_box":{"left":0.3656385096603971,"top":0.5668372959268361,"width":0.05031523911330754,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.3656385096603971,"y":0.5668372959268361},{"x":0.41595374877370467,"y":0.5672739387509648},{"x":0.41595374877370467,"y":0.5772563056636935},{"x":0.3656385096603971,"y":0.5772563056636935}]}},"page":1},"text":"5,000.00"},{"location":{"bounding_box":{"left":0.5190164779701909,"top":0.5672739387509648,"width":0.0276140761912389,"height":0.009545724088599883,"polygon":{"coordinates":[{"x":0.5190164779701909,"y":0.5672739387509648},{"x":0.5466305541614298,"y":0.5672739387509648},{"x":0.5466305541614298,"y":0.5768196628395647},{"x":0.5196335925926396,"y":0.5768196628395647}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.6509154241957632,"top":0.5668372959268361,"width":0.026996961568790168,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.6509154241957632,"y":0.5672739387509648},{"x":0.6779123857645534,"y":0.5668372959268361},{"x":0.6779123857645534,"y":0.5768196628395647},{"x":0.6509154241957632,"y":0.5768196628395647}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.7503116154762538,"top":0.5668372959268361,"width":0.05152529154410446,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.7503116154762538,"y":0.5668372959268361},{"x":0.8018369070203583,"y":0.5668372959268361},{"x":0.8018369070203583,"y":0.5772563056636935},{"x":0.7503116154762538,"y":0.5772563056636935}]}},"page":1},"text":"5,000.00"},{"location":{"bounding_box":{"left":0.9098125783366283,"top":0.5672739387509648,"width":0.026379789245114416,"height":0.009545724088599883,"polygon":{"coordinates":[{"x":0.9098125783366283,"y":0.5672739387509648},{"x":0.9361923675817427,"y":0.5672739387509648},{"x":0.9361923675817427,"y":0.5768196628395647},{"x":0.9098125783366283,"y":0.5763830608384375}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.2527620134820071,"top":0.5937451650257589,"width":0.03557644160456952,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.2527620134820071,"y":0.5937451650257589},{"x":0.28773340002056474,"y":0.5937451650257589},{"x":0.28833845508657663,"y":0.6032994619446755},{"x":0.2527620134820071,"y":0.6028628599435483}]}},"page":1},"text":"Total"},{"location":{"bounding_box":{"left":0.3607376847982771,"top":0.5933171358549484,"width":0.055821090190825984,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.3607376847982771,"y":0.5937451650257589},{"x":0.4165587749891031,"y":0.5933171358549484},{"x":0.4165587749891031,"y":0.6032994619446755},{"x":0.3607376847982771,"y":0.6037275319384876}]}},"page":1},"text":"5,000.00"},{"location":{"bounding_box":{"left":0.5165599636343787,"top":0.5937451650257589,"width":0.02821913125725084,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.5165599636343787,"y":0.5937451650257589},{"x":0.5447790948916296,"y":0.5937451650257589},{"x":0.5447790948916296,"y":0.6032994619446755},{"x":0.5165599636343787,"y":0.6028628599435483}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.6484710848188419,"top":0.5937451650257589,"width":0.02882412862203576,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.6484710848188419,"y":0.5941818078498876},{"x":0.6766902160760927,"y":0.5937451650257589},{"x":0.6772952134408776,"y":0.6032994619446755},{"x":0.6484710848188419,"y":0.6028628599435483}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.7466208718955442,"top":0.5933171358549484,"width":0.05583320744848985,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.7466208718955442,"y":0.5937451650257589},{"x":0.802454079344034,"y":0.5933171358549484},{"x":0.802454079344034,"y":0.6037275319384876},{"x":0.7466208718955442,"y":0.6041641747626163}]}},"page":1},"text":"5,000.00"},{"location":{"bounding_box":{"left":0.9061339520135824,"top":0.5937451650257589,"width":0.030058415568160357,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.9061339520135824,"y":0.5941818078498876},{"x":0.9361923675817427,"y":0.5937451650257589},{"x":0.9361923675817427,"y":0.6032994619446755},{"x":0.9067510666360311,"y":0.6028628599435483}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.6367138643159367,"width":0.10429700892995729,"height":0.01128364090879519,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.6367138643159367},{"x":0.18527572589009048,"y":0.6367138643159367},{"x":0.18527572589009048,"y":0.6479975052247319},{"x":0.08097871696013319,"y":0.6479975052247319}]}},"page":1},"text":"Ship-to Address"},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6506087076931845,"width":0.1588959294323226,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6506087076931845},{"x":0.24049178986551806,"y":0.6506087076931845},{"x":0.24049178986551806,"y":0.6614557466008524},{"x":0.08159586043319543,"y":0.6614557466008524}]}},"page":1},"text":"CRONUS International Ltd."},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6644949782401155,"width":0.06380763963091064,"height":0.011720283732923886,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6644949782401155},{"x":0.14540350006410607,"y":0.6649315802412427},{"x":0.14540350006410607,"y":0.6762152619730394},{"x":0.08159586043319543,"y":0.6757786191489107}]}},"page":1},"text":"5 The Ring"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.6788178507881738,"width":0.07669502114576864,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.6788178507881738},{"x":0.15767373810590182,"y":0.6792544936123025},{"x":0.15767373810590182,"y":0.6888002177009025},{"x":0.08097871696013319,"y":0.6883635748767737}]}},"page":1},"text":"Westminster"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.691839490163167,"width":0.1343554533487311,"height":0.010418928090854429,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.691839490163167},{"x":0.2147291296681591,"y":0.691839490163167},{"x":0.2147291296681591,"y":0.7022584182540215},{"x":0.08097871696013319,"y":0.7022584182540215}]}},"page":1},"text":"CANBERRA NSW 2600"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.7061623218882238,"width":0.05398176981664973,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.7061623218882238},{"x":0.13435544613607772,"y":0.7061623218882238},{"x":0.13435544613607772,"y":0.7165813316250812},{"x":0.08037367631942799,"y":0.7165813316250812}]}},"page":1},"text":"Australia"}],"page_read_results":[{"page":1,"elements":[{"id":"0","text":"Purchase","bounding_box":{"left":0.7245368812971513,"top":0.03992945489372671,"width":0.10000118864527552,"height":0.017362122047384562,"polygon":{"coordinates":[{"x":0.7245368812971513,"y":0.03992945489372671},{"x":0.8239209553199781,"y":0.040366077306354664},{"x":0.8245380699424268,"y":0.05685495452848331},{"x":0.7251539959196001,"y":0.05729157694111127}]}}},{"id":"1","text":"-","bounding_box":{"left":0.8288338685891484,"top":0.040366077306354664,"width":0.011048053928028323,"height":0.016488877222128648,"polygon":{"coordinates":[{"x":0.8288338685891484,"y":0.040366077306354664},{"x":0.8392647501935011,"y":0.040366077306354664},{"x":0.8398819225171767,"y":0.05685495452848331},{"x":0.8288338685891484,"y":0.05685495452848331}]}}},{"id":"2","text":"Invoice","bounding_box":{"left":0.8441656039062346,"top":0.040366077306354664,"width":0.08159588207115553,"height":0.016488877222128648,"polygon":{"coordinates":[{"x":0.8441656039062346,"y":0.040366077306354664},{"x":0.9251564309113782,"y":0.040802697167545025},{"x":0.9257614859773902,"y":0.05685495452848331},{"x":0.8447827762299103,"y":0.05685495452848331}]}}},{"id":"3","text":"Graphic","bounding_box":{"left":0.08037367631942799,"top":0.06119548567818885,"width":0.04662447389463778,"height":0.01172028883579903,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.06119548567818885},{"x":0.12638100674100355,"y":0.06163210809081681},{"x":0.12699815021406577,"y":0.07291577451398788},{"x":0.08097871696013319,"y":0.07247915210135993}]}}},{"id":"4","text":"Design","bounding_box":{"left":0.1300596619146629,"top":0.06119548567818885,"width":0.03988431423303471,"height":0.01172028883579903,"polygon":{"coordinates":[{"x":0.1300596619146629,"y":0.06163210809081681},{"x":0.1699439761476976,"y":0.06119548567818885},{"x":0.1699439761476976,"y":0.07291577451398788},{"x":0.1300596619146629,"y":0.07291577451398788}]}}},{"id":"5","text":"Institute","bounding_box":{"left":0.1730054878482947,"top":0.06076742589012718,"width":0.050920265328706,"height":0.012148348623860702,"polygon":{"coordinates":[{"x":0.1730054878482947,"y":0.06119548567818885},{"x":0.2239257531770007,"y":0.06076742589012718},{"x":0.2239257531770007,"y":0.07247915210135993},{"x":0.17362263132135694,"y":0.07291577451398788}]}}},{"id":"6","text":"Page","bounding_box":{"left":0.8914072140612812,"top":0.06163210809081681,"width":0.03067558789183611,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.8914072140612812,"y":0.06163210809081681},{"x":0.9220828019531173,"y":0.06163210809081681},{"x":0.9220828019531173,"y":0.07247915210135993},{"x":0.8914072140612812,"y":0.07247915210135993}]}}},{"id":"7","text":"1","bounding_box":{"left":0.9263786005998389,"top":0.06163210809081681,"width":0.005517968335182255,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.9263786005998389,"y":0.06163210809081681},{"x":0.9312915715702362,"y":0.06163210809081681},{"x":0.9318965689350212,"y":0.07247915210135993},{"x":0.9263786005998389,"y":0.07247915210135993}]}}},{"id":"8","text":"Bryce","bounding_box":{"left":0.08097871696013319,"top":0.07595500105037582,"width":0.031909874837960525,"height":0.010418989325356634,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.07595500105037582},{"x":0.11227144832503147,"y":0.07595500105037582},{"x":0.11288859179809371,"y":0.08637399037573246},{"x":0.08097871696013319,"y":0.0859373679631045}]}}},{"id":"9","text":"Jasso","bounding_box":{"left":0.11533296002562858,"top":0.07595500105037582,"width":0.032514908266012346,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.11533296002562858,"y":0.07595500105037582},{"x":0.14724282765093574,"y":0.07595500105037582},{"x":0.14784786829164093,"y":0.08680205016379412},{"x":0.11533296002562858,"y":0.08637399037573246}]}}},{"id":"10","text":"Arbachtalstrasse","bounding_box":{"left":0.08097871696013319,"top":0.0885399669839893,"width":0.09693969858263861,"height":0.010855611737984577,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.08941321180924522},{"x":0.1779184155427718,"y":0.0885399669839893},{"x":0.1779184155427718,"y":0.09939557872197388},{"x":0.08097871696013319,"y":0.09895895630934592}]}}},{"id":"11","text":"6","bounding_box":{"left":0.18159707071643114,"top":0.0885399669839893,"width":0.007974439395074168,"height":0.010855611737984577,"polygon":{"coordinates":[{"x":0.18159707071643114,"y":0.0885399669839893},{"x":0.1895715101115053,"y":0.0885399669839893},{"x":0.1895715101115053,"y":0.09939557872197388},{"x":0.18159707071643114,"y":0.09939557872197388}]}}},{"id":"12","text":"Unter","bounding_box":{"left":0.08037367631942799,"top":0.10199818794860907,"width":0.03495928370620059,"height":0.009982356706978293,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.10199818794860907},{"x":0.11533296002562858,"y":0.10199818794860907},{"x":0.11533296002562858,"y":0.1115439222429594},{"x":0.08097871696013319,"y":0.11198054465558736}]}}},{"id":"13","text":"Achalm","bounding_box":{"left":0.11778942387286712,"top":0.10156156553598111,"width":0.03988431423303471,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.11778942387286712,"y":0.10199818794860907},{"x":0.15767373810590182,"y":0.10156156553598111},{"x":0.15767373810590182,"y":0.11198054465558736},{"x":0.11778942387286712,"y":0.1115439222429594}]}}},{"id":"14","text":"5","bounding_box":{"left":0.9251564309113782,"top":0.09418180784988762,"width":0.00735731034731868,"height":0.009117674506288656,"polygon":{"coordinates":[{"x":0.9251564309113782,"y":0.1028628701492987},{"x":0.9257614859773902,"y":0.09418180784988762},{"x":0.9325137412586969,"y":0.09418180784988762},{"x":0.9318965689350212,"y":0.10329948235617628}]}}},{"id":"15","text":"5","bounding_box":{"left":0.8693232234628884,"top":0.10850470080944664,"width":0.007974424969767413,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.10850470080944664},{"x":0.8772976484326558,"y":0.10850470080944664},{"x":0.8772976484326558,"y":0.1189236799290529},{"x":0.8693232234628884,"y":0.1189236799290529}]}}},{"id":"16","text":"The","bounding_box":{"left":0.8803712773909167,"top":0.10850470080944664,"width":0.0214668759759441,"height":0.010855601532234208,"polygon":{"coordinates":[{"x":0.8803712773909167,"y":0.10850470080944664},{"x":0.9018381533668608,"y":0.10850470080944664},{"x":0.9018381533668608,"y":0.11936030234168085},{"x":0.8803712773909167,"y":0.1189236799290529}]}}},{"id":"17","text":"Ring","bounding_box":{"left":0.9049117246238948,"top":0.10850470080944664,"width":0.027602016634802107,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.9049117246238948,"y":0.10850470080944664},{"x":0.9325137412586969,"y":0.1089413232220746},{"x":0.9325137412586969,"y":0.11978836212974252},{"x":0.9049117246238948,"y":0.11936030234168085}]}}},{"id":"18","text":"DE-72800","bounding_box":{"left":0.08037367631942799,"top":0.13020735145509915,"width":0.05889471193643356,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.1306439738677271},{"x":0.1386512447827993,"y":0.13020735145509915},{"x":0.13926838825586155,"y":0.14149101277539503},{"x":0.08097871696013319,"y":0.14105440056851745}]}}},{"id":"19","text":"Eningen","bounding_box":{"left":0.1417127564833964,"top":0.13020735145509915,"width":0.0478587536281089,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.1417127564833964,"y":0.13020735145509915},{"x":0.1895715101115053,"y":0.1306439738677271},{"x":0.1895715101115053,"y":0.14149101277539503},{"x":0.14232989995645864,"y":0.14149101277539503}]}}},{"id":"20","text":"Westminster","bounding_box":{"left":0.8570529998463994,"top":0.12282759376900566,"width":0.07607785603474626,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.8570529998463994,"y":0.12282759376900566},{"x":0.9331308558811456,"y":0.12326421618163362},{"x":0.9331308558811456,"y":0.1332465728886119},{"x":0.8576701144688481,"y":0.13280996068173434}]}}},{"id":"21","text":"Germany","bounding_box":{"left":0.08037367631942799,"top":0.14453024441465817,"width":0.05520395393041716,"height":0.011283671526046257,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.14453024441465817},{"x":0.13557763024984515,"y":0.1453949266153478},{"x":0.13557763024984515,"y":0.15581391594070443},{"x":0.08037367631942799,"y":0.15451261132738683}]}}},{"id":"22","text":"CANBERRA","bounding_box":{"left":0.7999976227094489,"top":0.13672242694050302,"width":0.06502980210671794,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.7999976227094489,"y":0.13672242694050302},{"x":0.8650274248161668,"y":0.13715048672856467},{"x":0.8650274248161668,"y":0.14670479385323168},{"x":0.7999976227094489,"y":0.14670479385323168}]}}},{"id":"23","text":"NSW","bounding_box":{"left":0.8693232234628884,"top":0.13672242694050302,"width":0.025157619556653743,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.13715048672856467},{"x":0.8944808430195421,"y":0.13672242694050302},{"x":0.8944808430195421,"y":0.14670479385323168},{"x":0.8693232234628884,"y":0.14670479385323168}]}}},{"id":"24","text":"2600","bounding_box":{"left":0.904294610001446,"top":0.13672242694050302,"width":0.0276019589335752,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.904294610001446,"y":0.13672242694050302},{"x":0.9318965689350212,"y":0.13672242694050302},{"x":0.9318965689350212,"y":0.14756947605392132},{"x":0.904294610001446,"y":0.14713285364129336}]}}},{"id":"25","text":"Australia","bounding_box":{"left":0.8809763324569286,"top":0.1514733796881237,"width":0.05153740880176827,"height":0.00955430712466701,"polygon":{"coordinates":[{"x":0.8809763324569286,"y":0.15191000210075165},{"x":0.9325137412586969,"y":0.1514733796881237},{"x":0.9325137412586969,"y":0.1610276868127907},{"x":0.8809763324569286,"y":0.1610276868127907}]}}},{"id":"26","text":"Pay-to","bounding_box":{"left":0.08097871696013319,"top":0.18663425129839598,"width":0.0386500344995636,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.18663425129839598},{"x":0.11962875145969679,"y":0.18663425129839598},{"x":0.11962875145969679,"y":0.1974812902060639},{"x":0.08097871696013319,"y":0.19704466779343593}]}}},{"id":"27","text":"Vendor","bounding_box":{"left":0.12270236599265094,"top":0.18619762888576802,"width":0.043550866574337016,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.12270236599265094,"y":0.18663425129839598},{"x":0.16625323256698796,"y":0.18619762888576802},{"x":0.16564817750097602,"y":0.19791791261869185},{"x":0.12270236599265094,"y":0.1974812902060639}]}}},{"id":"28","text":"No.","bounding_box":{"left":0.16870968920157312,"top":0.18619762888576802,"width":0.0233182919698241,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.16870968920157312,"y":0.19791791261869185},{"x":0.16932683267463536,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.1974812902060639}]}}},{"id":"29","text":"30000","bounding_box":{"left":0.23619599121879647,"top":0.18619762888576802,"width":0.03558853001161988,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.18619762888576802},{"x":0.27178452123041635,"y":0.18619762888576802},{"x":0.27178452123041635,"y":0.19617999579849668},{"x":0.23619599121879647,"y":0.19617999579849668}]}}},{"id":"30","text":"Phone","bounding_box":{"left":0.666864331836525,"top":0.18011916560724173,"width":0.03804501549681849,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.18011916560724173},{"x":0.7049093473333435,"y":0.18011916560724173},{"x":0.7049093473333435,"y":0.19010153251997042},{"x":0.6674814464589738,"y":0.18967348293765912}]}}},{"id":"31","text":"No.","bounding_box":{"left":0.7079708013327137,"top":0.18011916560724173,"width":0.02208404829961985,"height":0.010418989325356648,"polygon":{"coordinates":[{"x":0.7079708013327137,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19053815493259837},{"x":0.7079708013327137,"y":0.19010153251997042}]}}},{"id":"32","text":"0666-666-6666","bounding_box":{"left":0.8423262618940982,"top":0.17969111602493043,"width":0.0901874793645987,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8423262618940982,"y":0.18011916560724173},{"x":0.9325137412586969,"y":0.17969111602493043},{"x":0.9325137412586969,"y":0.18967348293765912},{"x":0.8423262618940982,"y":0.18967348293765912}]}}},{"id":"33","text":"VAT","bounding_box":{"left":0.08097871696013319,"top":0.20052052184532704,"width":0.023318284757170724,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.20052052184532704},{"x":0.10429700171730391,"y":0.20052052184532704},{"x":0.10429700171730391,"y":0.21136756075299495},{"x":0.08097871696013319,"y":0.21093951117068366}]}}},{"id":"34","text":"Registration","bounding_box":{"left":0.10735851341790102,"top":0.20008389943269908,"width":0.07116494276557596,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.10735851341790102,"y":0.20052052184532704},{"x":0.17852345618347698,"y":0.20008389943269908},{"x":0.17852345618347698,"y":0.2118041831656229},{"x":0.10735851341790102,"y":0.21136756075299495}]}}},{"id":"35","text":"No.","bounding_box":{"left":0.18159707071643114,"top":0.20008389943269908,"width":0.023306189137467043,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.18159707071643114,"y":0.20008389943269908},{"x":0.20490325985389818,"y":0.20008389943269908},{"x":0.20490325985389818,"y":0.2118041831656229},{"x":0.18159707071643114,"y":0.2118041831656229}]}}},{"id":"36","text":"521478963","bounding_box":{"left":0.23497380710502905,"top":0.20052052184532704,"width":0.06625201507109887,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.20052052184532704},{"x":0.3012258221761279,"y":0.20052052184532704},{"x":0.3012258221761279,"y":0.21093951117068366},{"x":0.23557884774573423,"y":0.2105028887580557}]}}},{"id":"37","text":"Home","bounding_box":{"left":0.666864331836525,"top":0.19270414174660558,"width":0.036810728550694005,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.20355975348459018},{"x":0.666864331836525,"y":0.20355975348459018}]}}},{"id":"38","text":"Page","bounding_box":{"left":0.7067486316442531,"top":0.19270414174660558,"width":0.03129276021551175,"height":0.011292234150612562,"polygon":{"coordinates":[{"x":0.7067486316442531,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.20399637589721814},{"x":0.7067486316442531,"y":0.20355975348459018}]}}},{"id":"39","text":"Email","bounding_box":{"left":0.666864331836525,"top":0.2057257402985974,"width":0.033132044526421156,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2157080867998253},{"x":0.666864331836525,"y":0.2157080867998253}]}}},{"id":"40","text":"Document","bounding_box":{"left":0.08037367631942799,"top":0.22916630776444508,"width":0.06317840775079811,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.22916630776444508},{"x":0.1435520840702261,"y":0.22916630776444508},{"x":0.1435520840702261,"y":0.2395852970898017},{"x":0.08037367631942799,"y":0.2395852970898017}]}}},{"id":"41","text":"Date","bounding_box":{"left":0.1466256841778735,"top":0.22916630776444508,"width":0.027601987784188625,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.1466256841778735,"y":0.22916630776444508},{"x":0.17422767196206213,"y":0.22916630776444508},{"x":0.17422767196206213,"y":0.2395852970898017},{"x":0.1466256841778735,"y":0.2395852970898017}]}}},{"id":"42","text":"VAT","bounding_box":{"left":0.6674814464589738,"top":0.2200486332581564,"width":0.02454050493420501,"height":0.010855591326483838,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.2200486332581564},{"x":0.691404779069503,"y":0.2200486332581564},{"x":0.6920219513931788,"y":0.23090422458464024},{"x":0.6674814464589738,"y":0.23090422458464024}]}}},{"id":"43","text":"Registration","bounding_box":{"left":0.694478408027764,"top":0.2200486332581564,"width":0.07238711245403673,"height":0.010855591326483838,"polygon":{"coordinates":[{"x":0.694478408027764,"y":0.2200486332581564},{"x":0.7668655204818007,"y":0.2200486332581564},{"x":0.7668655204818007,"y":0.23090422458464024},{"x":0.6950955803514397,"y":0.23090422458464024}]}}},{"id":"44","text":"No.","bounding_box":{"left":0.7699391494400615,"top":0.21962056326434437,"width":0.02146687597594421,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.7699391494400615,"y":0.2200486332581564},{"x":0.7914060254160057,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.23090422458464024},{"x":0.7699391494400615,"y":0.23090422458464024}]}}},{"id":"45","text":"777777777","bounding_box":{"left":0.8687060511392126,"top":0.2200486332581564,"width":0.06442480474193302,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8687060511392126,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22048525567078436},{"x":0.9331308558811456,"y":0.22960293017707303},{"x":0.8687060511392126,"y":0.22916630776444508}]}}},{"id":"46","text":"June","bounding_box":{"left":0.23497380710502905,"top":0.22916630776444508,"width":0.02821911683194414,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.22916630776444508},{"x":0.2631929239369732,"y":0.22960293017707303},{"x":0.2631929239369732,"y":0.2395852970898017},{"x":0.23497380710502905,"y":0.2395852970898017}]}}},{"id":"47","text":"4,","bounding_box":{"left":0.26687157911063253,"top":0.22960293017707303,"width":0.011048053928028323,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.26687157911063253,"y":0.22960293017707303},{"x":0.27791963303866085,"y":0.22960293017707303},{"x":0.27791963303866085,"y":0.2395852970898017},{"x":0.26687157911063253,"y":0.2395852970898017}]}}},{"id":"48","text":"2025","bounding_box":{"left":0.2803640012661957,"top":0.22960293017707303,"width":0.02883627473031314,"height":0.01041041649503996,"polygon":{"coordinates":[{"x":0.2803640012661957,"y":0.22960293017707303},{"x":0.30920027599650884,"y":0.22960293017707303},{"x":0.30920027599650884,"y":0.240013346672113},{"x":0.2803640012661957,"y":0.2395852970898017}]}}},{"id":"49","text":"Invoice","bounding_box":{"left":0.08037367631942799,"top":0.24218790631643689,"width":0.04293373031392815,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.24218790631643689},{"x":0.12330740663335614,"y":0.24262452872906484},{"x":0.12270236599265094,"y":0.25260687523029274},{"x":0.08037367631942799,"y":0.25260687523029274}]}}},{"id":"50","text":"No.","bounding_box":{"left":0.1257638632679413,"top":0.24262452872906484,"width":0.022084005023699615,"height":0.009982346501227896,"polygon":{"coordinates":[{"x":0.1257638632679413,"y":0.24262452872906484},{"x":0.14784786829164093,"y":0.24305257831137614},{"x":0.14784786829164093,"y":0.25260687523029274},{"x":0.1257638632679413,"y":0.25260687523029274}]}}},{"id":"51","text":"108214","bounding_box":{"left":0.2374181753325639,"top":0.24262452872906484,"width":0.042340770867619865,"height":0.009545724088599966,"polygon":{"coordinates":[{"x":0.2374181753325639,"y":0.24262452872906484},{"x":0.2791418027271215,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2517336304050368}]}}},{"id":"52","text":"Giro","bounding_box":{"left":0.666864331836525,"top":0.23437152621771543,"width":0.02454044723297799,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.23480814863034338},{"x":0.691404779069503,"y":0.23437152621771543},{"x":0.691404779069503,"y":0.24435387271894335},{"x":0.6674814464589738,"y":0.24435387271894335}]}}},{"id":"53","text":"No.","bounding_box":{"left":0.6957005777162246,"top":0.23437152621771543,"width":0.022701162922068696,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.6957005777162246,"y":0.23437152621771543},{"x":0.7184017406382933,"y":0.23437152621771543},{"x":0.7184017406382933,"y":0.24392582313663205},{"x":0.6957005777162246,"y":0.24435387271894335}]}}},{"id":"54","text":"888-9999","bounding_box":{"left":0.8779148207563315,"top":0.23437152621771543,"width":0.0552160351248141,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8779148207563315,"y":0.23480814863034338},{"x":0.9325137412586969,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.24392582313663205},{"x":0.8779148207563315,"y":0.2434892007240041}]}}},{"id":"55","text":"Bank","bounding_box":{"left":0.6674814464589738,"top":0.24869441917727445,"width":0.02821913125725084,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.2578120936835631},{"x":0.6674814464589738,"y":0.2578120936835631}]}}},{"id":"56","text":"World","bounding_box":{"left":0.8294509832115972,"top":0.2482663491834624,"width":0.03557644160456963,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.8294509832115972,"y":0.2482663491834624},{"x":0.8650274248161668,"y":0.24869441917727445},{"x":0.8650274248161668,"y":0.2582487160961911},{"x":0.8294509832115972,"y":0.2586767860900031}]}}},{"id":"57","text":"Wide","bounding_box":{"left":0.8693232234628884,"top":0.24869441917727445,"width":0.03189775758029667,"height":0.009554296918916655,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.24869441917727445},{"x":0.9006159259771732,"y":0.24869441917727445},{"x":0.901220981043185,"y":0.2582487160961911},{"x":0.8699403380853371,"y":0.2582487160961911}]}}},{"id":"58","text":"Bank","bounding_box":{"left":0.904294610001446,"top":0.24869441917727445,"width":0.028836245879699685,"height":0.009554296918916655,"polygon":{"coordinates":[{"x":0.904294610001446,"y":0.24869441917727445},{"x":0.9325137412586969,"y":0.24869441917727445},{"x":0.9331308558811456,"y":0.2582487160961911},{"x":0.9049117246238948,"y":0.2582487160961911}]}}},{"id":"59","text":"Posting","bounding_box":{"left":0.07975653284636575,"top":0.26953237741648695,"width":0.04540228978087035,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269960447410299},{"x":0.1251588226272361,"y":0.26953237741648695},{"x":0.1251588226272361,"y":0.28125268156091154},{"x":0.08037367631942799,"y":0.2808160591482836}]}}},{"id":"60","text":"Date","bounding_box":{"left":0.12822033432783322,"top":0.26953237741648695,"width":0.03005844441877381,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.12822033432783322,"y":0.26953237741648695},{"x":0.15827877874660704,"y":0.26953237741648695},{"x":0.15827877874660704,"y":0.28125268156091154},{"x":0.12822033432783322,"y":0.28125268156091154}]}}},{"id":"61","text":"06/04/25","bounding_box":{"left":0.23497380710502905,"top":0.269960447410299,"width":0.05520396114307055,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.269960447410299},{"x":0.2901777682480996,"y":0.269960447410299},{"x":0.2901777682480996,"y":0.28037943673565563},{"x":0.23497380710502905,"y":0.2799428143230277}]}}},{"id":"62","text":"Account","bounding_box":{"left":0.666864331836525,"top":0.2634539345494614,"width":0.0503152391133076,"height":0.009117674506288698,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2634539345494614},{"x":0.7171795709498326,"y":0.2634539345494614},{"x":0.7165623986261569,"y":0.2725716090557501},{"x":0.6680986187826495,"y":0.2725716090557501}]}}},{"id":"63","text":"No.","bounding_box":{"left":0.7196360275844178,"top":0.2634539345494614,"width":0.0214668759759441,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.7196360275844178,"y":0.2634539345494614},{"x":0.7411029035603619,"y":0.2638905569620894},{"x":0.7404857312366862,"y":0.2729996790495621},{"x":0.7196360275844178,"y":0.2725716090557501}]}}},{"id":"64","text":"99-99-888","bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}}},{"id":"65","text":"Due","bounding_box":{"left":0.08097871696013319,"top":0.28341864796341804,"width":0.023318284757170724,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.28341864796341804},{"x":0.10429700171730391,"y":0.28341864796341804},{"x":0.10429700171730391,"y":0.29296439246351874},{"x":0.08097871696013319,"y":0.29296439246351874}]}}},{"id":"66","text":"Date","bounding_box":{"left":0.10859280036402551,"top":0.28341864796341804,"width":0.028219116831944127,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.10859280036402551,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.29253634288120745},{"x":0.10859280036402551,"y":0.29296439246351874}]}}},{"id":"67","text":"07/31/25","bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}}},{"id":"68","text":"Payment","bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.053376729175944534,"height":0.011283661320295846,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.13435544613607772,"y":0.3098984674800296},{"x":0.13435544613607772,"y":0.3207455063876975},{"x":0.08097871696013319,"y":0.3207455063876975}]}}},{"id":"69","text":"Terms","bounding_box":{"left":0.13742906066903188,"top":0.3098984674800296,"width":0.03619357065232506,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.13742906066903188,"y":0.3098984674800296},{"x":0.1730054878482947,"y":0.3098984674800296},{"x":0.17362263132135694,"y":0.3198808139812575},{"x":0.13742906066903188,"y":0.32030888397506957}]}}},{"id":"70","text":"End","bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.02147896438299446,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.2570578121287287,"y":0.3098984674800296},{"x":0.2570578121287287,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}}},{"id":"71","text":"of","bounding_box":{"left":0.2613536107754503,"top":0.3098984674800296,"width":0.012875278682500935,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.2613536107754503,"y":0.3098984674800296},{"x":0.2742288894579512,"y":0.3098984674800296},{"x":0.27362383439193927,"y":0.3194442119801303},{"x":0.2613536107754503,"y":0.3194442119801303}]}}},{"id":"72","text":"Next","bounding_box":{"left":0.27668534609253637,"top":0.3098984674800296,"width":0.02883627473031314,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.27668534609253637,"y":0.3098984674800296},{"x":0.3055216208228495,"y":0.3098984674800296},{"x":0.3055216208228495,"y":0.3194442119801303},{"x":0.27668534609253637,"y":0.3194442119801303}]}}},{"id":"73","text":"Month","bounding_box":{"left":0.30797807745743466,"top":0.3098984674800296,"width":0.03987221140067765,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.30797807745743466,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3472331453850501,"y":0.3194442119801303},{"x":0.30797807745743466,"y":0.3194442119801303}]}}},{"id":"74","text":"ABN","bounding_box":{"left":0.6680986187826495,"top":0.30338338178887536,"width":0.022701162922068585,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.6680986187826495,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.312501056295164},{"x":0.6680986187826495,"y":0.312501056295164}]}}},{"id":"75","text":"53001003000","bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}}},{"id":"76","text":"Shipment","bounding_box":{"left":0.08097871696013319,"top":0.32291149320170476,"width":0.05645034370889869,"height":0.011292234150612535,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.3233481156143327},{"x":0.13742906066903188,"y":0.32291149320170476},{"x":0.13742906066903188,"y":0.3342037273523173},{"x":0.08159586043319543,"y":0.3342037273523173}]}}},{"id":"77","text":"Method","bounding_box":{"left":0.14049057236962897,"top":0.32291149320170476,"width":0.0478587536281089,"height":0.011292234150612535,"polygon":{"coordinates":[{"x":0.14049057236962897,"y":0.32291149320170476},{"x":0.18834932599773788,"y":0.32291149320170476},{"x":0.18834932599773788,"y":0.3337671049396893},{"x":0.14049057236962897,"y":0.3342037273523173}]}}},{"id":"78","text":"Prices","bounding_box":{"left":0.08037367631942799,"top":0.33636969375482373,"width":0.03435423585284203,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.33636969375482373},{"x":0.11411077591186114,"y":0.33636969375482373},{"x":0.11472791217227002,"y":0.3476533754866204},{"x":0.08097871696013319,"y":0.34721673266249165}]}}},{"id":"79","text":"Including","bounding_box":{"left":0.11717228039980487,"top":0.33636969375482373,"width":0.05645035092155207,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.11717228039980487,"y":0.33636969375482373},{"x":0.1730054878482947,"y":0.33636969375482373},{"x":0.17362263132135694,"y":0.3476533754866204},{"x":0.11778942387286712,"y":0.3476533754866204}]}}},{"id":"80","text":"VAT","bounding_box":{"left":0.17730127206970955,"top":0.33636969375482373,"width":0.025762660197358955,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.17730127206970955,"y":0.33636969375482373},{"x":0.20245889162636332,"y":0.33636969375482373},{"x":0.2030639322670685,"y":0.3476533754866204},{"x":0.1779184155427718,"y":0.3476533754866204}]}}},{"id":"81","text":"No","bounding_box":{"left":0.23557884774573423,"top":0.3372343861612638,"width":0.017183165736272876,"height":0.008681072505161425,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3372343861612638},{"x":0.2527620134820071,"y":0.3372343861612638},{"x":0.2527620134820071,"y":0.3459154586664252},{"x":0.23557884774573423,"y":0.3459154586664252}]}}},{"id":"82","text":"Direct","bounding_box":{"left":0.5337431582212651,"top":0.38020306503994084,"width":0.0398722402512911,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5337431582212651,"y":0.38063970786406953},{"x":0.5736153984725562,"y":0.38020306503994084},{"x":0.5736153984725562,"y":0.39018543195266947},{"x":0.5343603305449408,"y":0.39018543195266947}]}}},{"id":"83","text":"Allow","bounding_box":{"left":0.679134555453014,"top":0.37977499504612877,"width":0.031909874837960595,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.679134555453014,"y":0.37977499504612877},{"x":0.7110444302909746,"y":0.37977499504612877},{"x":0.7110444302909746,"y":0.38975736195885746},{"x":0.679134555453014,"y":0.38975736195885746}]}}},{"id":"84","text":"Unit","bounding_box":{"left":0.43987705253362047,"top":0.3927965935981206,"width":0.028219131257250896,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.43987705253362047,"y":0.3927965935981206},{"x":0.4674790403178091,"y":0.3927965935981206},{"x":0.46809618379087137,"y":0.40277896051084927},{"x":0.4404941960066827,"y":0.40234235850972205}]}}},{"id":"85","text":"of","bounding_box":{"left":0.47055266927607003,"top":0.39235999159699336,"width":0.015948878790148335,"height":0.010418968913855908,"polygon":{"coordinates":[{"x":0.47055266927607003,"y":0.3927965935981206},{"x":0.48650154806621837,"y":0.39235999159699336},{"x":0.48650154806621837,"y":0.40277896051084927},{"x":0.47116978389851877,"y":0.40277896051084927}]}}},{"id":"86","text":"Unit","bounding_box":{"left":0.546013381837754,"top":0.39235999159699336,"width":0.02821913125725095,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.546013381837754,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.4019057156855933},{"x":0.546013381837754,"y":0.4019057156855933}]}}},{"id":"87","text":"Invoice","bounding_box":{"left":0.6779123857645534,"top":0.3927965935981206,"width":0.0460073232089222,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.6779123857645534,"y":0.3927965935981206},{"x":0.7239197089734756,"y":0.39322466359193264},{"x":0.7239197089734756,"y":0.4032070305046613},{"x":0.6779123857645534,"y":0.40277896051084927}]}}},{"id":"88","text":"VAT","bounding_box":{"left":0.7742349480867831,"top":0.39235999159699336,"width":0.0276019589335752,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.7742349480867831,"y":0.39235999159699336},{"x":0.8012319096555733,"y":0.39235999159699336},{"x":0.8018369070203583,"y":0.4014776456917813},{"x":0.774840003152795,"y":0.4019057156855933}]}}},{"id":"89","text":"No.","bounding_box":{"left":0.08221300390625766,"top":0.4053815493259837,"width":0.023923325397875936,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.4053815493259837},{"x":0.10551918583107135,"y":0.4053815493259837},{"x":0.1061363293041336,"y":0.4149273142375851},{"x":0.08221300390625766,"y":0.4149273142375851}]}}},{"id":"90","text":"Description","bounding_box":{"left":0.17607910238124885,"top":0.4049449473248565,"width":0.07238711245403665,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4053815493259837},{"x":0.2484662148352855,"y":0.4049449473248565},{"x":0.2484662148352855,"y":0.4166652310577803},{"x":0.17607910238124885,"y":0.415800559062841}]}}},{"id":"91","text":"Quantity","bounding_box":{"left":0.3570590296246177,"top":0.4049449473248565,"width":0.057055377136950525,"height":0.012156926557052528,"polygon":{"coordinates":[{"x":0.3570590296246177,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.4053815493259837},{"x":0.41411440676156824,"y":0.417101873881909},{"x":0.3576640558400162,"y":0.4162286290566531}]}}},{"id":"92","text":"Measure","bounding_box":{"left":0.43925993791117174,"top":0.4058181921501124,"width":0.0552160351248141,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.4058181921501124},{"x":0.49447597303598584,"y":0.4058181921501124},{"x":0.49447597303598584,"y":0.4153639162387123},{"x":0.43987705253362047,"y":0.4153639162387123}]}}},{"id":"93","text":"Cost","bounding_box":{"left":0.5447790948916296,"top":0.4053815493259837,"width":0.028836303580926592,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.5447790948916296,"y":0.4053815493259837},{"x":0.5736153984725562,"y":0.4053815493259837},{"x":0.5736153984725562,"y":0.4144992442437731},{"x":0.5447790948916296,"y":0.4144992442437731}]}}},{"id":"94","text":"Discount","bounding_box":{"left":0.5907985353582156,"top":0.4049449473248565,"width":0.058277604526638105,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5907985353582156,"y":0.4053815493259837},{"x":0.6490761398848537,"y":0.4049449473248565},{"x":0.6484710848188419,"y":0.4153639162387123},{"x":0.5907985353582156,"y":0.4153639162387123}]}}},{"id":"95","text":"%","bounding_box":{"left":0.6558283951661605,"top":0.4053815493259837,"width":0.00735731034731868,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.6558283951661605,"y":0.4153639162387123},{"x":0.6564455097886093,"y":0.4053815493259837},{"x":0.6631857055134792,"y":0.4053815493259837},{"x":0.6631857055134792,"y":0.4153639162387123}]}}},{"id":"96","text":"Discount","bounding_box":{"left":0.679134555453014,"top":0.4053815493259837,"width":0.057055377136950525,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.679134555453014,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4153639162387123},{"x":0.679134555453014,"y":0.4149273142375851}]}}},{"id":"97","text":"Identifier","bounding_box":{"left":0.7730006611406586,"top":0.4049449473248565,"width":0.06135117578367211,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4049449473248565},{"x":0.8343518369243307,"y":0.4049449473248565},{"x":0.8343518369243307,"y":0.415800559062841},{"x":0.7736177757631074,"y":0.4153639162387123}]}}},{"id":"98","text":"Amount","bounding_box":{"left":0.8809763324569286,"top":0.4053815493259837,"width":0.05275957849022894,"height":0.010419009736857332,"polygon":{"coordinates":[{"x":0.8809763324569286,"y":0.4053815493259837},{"x":0.9337359109471576,"y":0.4053815493259837},{"x":0.9337359109471576,"y":0.415800559062841},{"x":0.8815934470793774,"y":0.4153639162387123}]}}},{"id":"99","text":"Yearly","bounding_box":{"left":0.1754619589081866,"top":0.4296868296097721,"width":0.035576412753956094,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.1754619589081866,"y":0.4296868296097721},{"x":0.21043333102143752,"y":0.4296868296097721},{"x":0.2110383716621427,"y":0.44140711334269594},{"x":0.17607910238124885,"y":0.4409705113415687}]}}},{"id":"100","text":"license","bounding_box":{"left":0.21349484272203462,"top":0.4296868296097721,"width":0.04232868246056959,"height":0.012148353726735894,"polygon":{"coordinates":[{"x":0.21349484272203462,"y":0.4296868296097721},{"x":0.2552184989672057,"y":0.4296868296097721},{"x":0.2558235251826042,"y":0.441835183336508},{"x":0.21411198619509686,"y":0.44140711334269594}]}}},{"id":"101","text":"fee,","bounding_box":{"left":0.25827998181718936,"top":0.4296868296097721,"width":0.023318306395130828,"height":0.012148353726735894,"polygon":{"coordinates":[{"x":0.25827998181718936,"y":0.4296868296097721},{"x":0.28098114473925795,"y":0.4296868296097721},{"x":0.2815982882123202,"y":0.441835183336508},{"x":0.2588971252902516,"y":0.441835183336508}]}}},{"id":"102","text":"design","bounding_box":{"left":0.28405474484690535,"top":0.4296868296097721,"width":0.041094409939751886,"height":0.012148353726735894,"polygon":{"coordinates":[{"x":0.28405474484690535,"y":0.4296868296097721},{"x":0.3245440997206453,"y":0.4296868296097721},{"x":0.32514915478665724,"y":0.441835183336508},{"x":0.2846597999129173,"y":0.441835183336508}]}}},{"id":"103","text":"10","bounding_box":{"left":0.4104236631808586,"top":0.4296868296097721,"width":0.012270223616489051,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.4104236631808586,"y":0.4296868296097721},{"x":0.42269388679734765,"y":0.4296868296097721},{"x":0.42269388679734765,"y":0.43923255369837205},{"x":0.4104236631808586,"y":0.43923255369837205}]}}},{"id":"104","text":"500.00","bounding_box":{"left":0.5325088712751406,"top":0.43012343161089933,"width":0.03988429980772801,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5325088712751406,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.43012343161089933},{"x":0.5723931710828686,"y":0.44010579852362797},{"x":0.5325088712751406,"y":0.4396691965225008}]}}},{"id":"105","text":"No","bounding_box":{"left":0.6785295003870021,"top":0.43055150160471134,"width":0.017171077329222517,"height":0.008253022922850184,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.43055150160471134},{"x":0.6957005777162246,"y":0.43055150160471134},{"x":0.6957005777162246,"y":0.4388045245275615},{"x":0.6785295003870021,"y":0.4388045245275615}]}}},{"id":"106","text":"NON","bounding_box":{"left":0.7742349480867831,"top":0.4296868296097721,"width":0.02699696156879028,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7742349480867831,"y":0.4296868296097721},{"x":0.8006147373318976,"y":0.4296868296097721},{"x":0.8012319096555733,"y":0.4396691965225008},{"x":0.7742349480867831,"y":0.4396691965225008}]}}},{"id":"107","text":"GST","bounding_box":{"left":0.8079720476792163,"top":0.4296868296097721,"width":0.025157619556653743,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8079720476792163,"y":0.4296868296097721},{"x":0.8325124949121944,"y":0.4296868296097721},{"x":0.83312966723587,"y":0.44010579852362797},{"x":0.808589162301665,"y":0.4396691965225008}]}}},{"id":"108","text":"5,000.00","bounding_box":{"left":0.8834327890915138,"top":0.4296868296097721,"width":0.049698066789631845,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8834327890915138,"y":0.4296868296097721},{"x":0.9325137412586969,"y":0.4296868296097721},{"x":0.9331308558811456,"y":0.44053386851744003},{"x":0.8834327890915138,"y":0.44053386851744003}]}}},{"id":"109","text":"Total","bounding_box":{"left":0.7705563217637372,"top":0.4570313007098222,"width":0.03373704189120619,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.7705563217637372,"y":0.45745937070363424},{"x":0.8036762490324947,"y":0.4570313007098222},{"x":0.8042933636549434,"y":0.46745031044667956},{"x":0.7711613191285223,"y":0.46745031044667956}]}}},{"id":"110","text":"AUD","bounding_box":{"left":0.8067498779907556,"top":0.45659469870869496,"width":0.026379789245114416,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.8067498779907556,"y":0.45659469870869496},{"x":0.83312966723587,"y":0.45659469870869496},{"x":0.83312966723587,"y":0.46745031044667956},{"x":0.8067498779907556,"y":0.46745031044667956}]}}},{"id":"111","text":"5,000.00","bounding_box":{"left":0.8785319353787803,"top":0.4570313007098222,"width":0.05459892050236537,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8785319353787803,"y":0.4570313007098222},{"x":0.9331308558811456,"y":0.4570313007098222},{"x":0.9331308558811456,"y":0.4678783396174901},{"x":0.8791369904447922,"y":0.46745031044667956}]}}},{"id":"112","text":"VAT","bounding_box":{"left":0.08097871696013319,"top":0.5164888593620655,"width":0.02761408340389232,"height":0.012156926557052583,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5164888593620655},{"x":0.10859280036402551,"y":0.5164888593620655},{"x":0.10859280036402551,"y":0.528645785919118},{"x":0.08159586043319543,"y":0.528645785919118}]}}},{"id":"113","text":"Amount","bounding_box":{"left":0.11165430485196923,"top":0.5164888593620655,"width":0.05275960012818906,"height":0.012156926557052583,"polygon":{"coordinates":[{"x":0.11165430485196923,"y":0.5164888593620655},{"x":0.1644139049801583,"y":0.5164888593620655},{"x":0.1644139049801583,"y":0.528645785919118},{"x":0.11227144832503147,"y":0.528645785919118}]}}},{"id":"114","text":"Specification","bounding_box":{"left":0.1674875050878057,"top":0.5164888593620655,"width":0.08097870974747981,"height":0.012584996550864647,"polygon":{"coordinates":[{"x":0.1674875050878057,"y":0.5164888593620655},{"x":0.2484662148352855,"y":0.5164888593620655},{"x":0.2484662148352855,"y":0.5290738559129301},{"x":0.16809254572851087,"y":0.528645785919118}]}}},{"id":"115","text":"Inv.","bounding_box":{"left":0.4503079629885866,"top":0.529947100738186,"width":0.025157619556653743,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.4503079629885866,"y":0.529947100738186},{"x":0.47546558254524035,"y":0.529947100738186},{"x":0.47546558254524035,"y":0.5399294676509147},{"x":0.4503079629885866,"y":0.5399294676509147}]}}},{"id":"116","text":"Disc.","bounding_box":{"left":0.47852709424583745,"top":0.529947100738186,"width":0.03129273136489835,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.47852709424583745,"y":0.529947100738186},{"x":0.5098198256107358,"y":0.529947100738186},{"x":0.5098198256107358,"y":0.5399294676509147},{"x":0.47852709424583745,"y":0.5399294676509147}]}}},{"id":"117","text":"Base","bounding_box":{"left":0.512264222688884,"top":0.529947100738186,"width":0.03007053282582417,"height":0.010418968913855964,"polygon":{"coordinates":[{"x":0.512264222688884,"y":0.529947100738186},{"x":0.5417175831910325,"y":0.529947100738186},{"x":0.5423347555147082,"y":0.5403660696520419},{"x":0.5128813373113329,"y":0.5403660696520419}]}}},{"id":"118","text":"Invoice","bounding_box":{"left":0.5668752027476862,"top":0.529947100738186,"width":0.046624495532597954,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.5668752027476862,"y":0.529947100738186},{"x":0.6134996982802842,"y":0.529947100738186},{"x":0.6134996982802842,"y":0.5399294676509147},{"x":0.5668752027476862,"y":0.5399294676509147}]}}},{"id":"119","text":"Discount","bounding_box":{"left":0.61717832460333,"top":0.529947100738186,"width":0.05643826251450179,"height":0.010418968913855964,"polygon":{"coordinates":[{"x":0.61717832460333,"y":0.529947100738186},{"x":0.6736165871178318,"y":0.529947100738186},{"x":0.6736165871178318,"y":0.5403660696520419},{"x":0.61717832460333,"y":0.5399294676509147}]}}},{"id":"120","text":"VAT","bounding_box":{"left":0.08159586043319543,"top":0.5420954136419204,"width":0.026996939930830077,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5420954136419204},{"x":0.10859280036402551,"y":0.5420954136419204},{"x":0.10859280036402551,"y":0.5525144233787778},{"x":0.08221300390625766,"y":0.5525144233787778}]}}},{"id":"121","text":"Identifier","bounding_box":{"left":0.111037161378907,"top":0.5416673844711098,"width":0.06135118299632546,"height":0.011283640908795078,"polygon":{"coordinates":[{"x":0.111037161378907,"y":0.5420954136419204},{"x":0.17238834437523246,"y":0.5416673844711098},{"x":0.17238834437523246,"y":0.5529510253799049},{"x":0.11165430485196923,"y":0.5525144233787778}]}}},{"id":"122","text":"VAT","bounding_box":{"left":0.24600975820070034,"top":0.5416673844711098,"width":0.026379789245114443,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.24600975820070034,"y":0.5416673844711098},{"x":0.2723895474458148,"y":0.5416673844711098},{"x":0.2723895474458148,"y":0.5520777805546491},{"x":0.24600975820070034,"y":0.5520777805546491}]}}},{"id":"123","text":"%","bounding_box":{"left":0.28098114473925795,"top":0.5416673844711098,"width":0.006135111808244553,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.28098114473925795,"y":0.5416673844711098},{"x":0.2871162565475025,"y":0.5416673844711098},{"x":0.2871162565475025,"y":0.5520777805546491},{"x":0.28098114473925795,"y":0.5520777805546491}]}}},{"id":"124","text":"Line","bounding_box":{"left":0.33435786670254913,"top":0.5420954136419204,"width":0.02637981809572798,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.33435786670254913,"y":0.5420954136419204},{"x":0.3607376847982771,"y":0.5425320564660491},{"x":0.3607376847982771,"y":0.5525144233787778},{"x":0.33435786670254913,"y":0.5525144233787778}]}}},{"id":"125","text":"Amount","bounding_box":{"left":0.36441631112132294,"top":0.5425320564660491,"width":0.052759607340842396,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.36441631112132294,"y":0.5425320564660491},{"x":0.41717591846216534,"y":0.5425320564660491},{"x":0.41717591846216534,"y":0.5529510253799049},{"x":0.36441631112132294,"y":0.5525144233787778}]}}},{"id":"126","text":"Amount","bounding_box":{"left":0.49385885841353705,"top":0.5429686584671763,"width":0.05153740880176827,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.49385885841353705,"y":0.5429686584671763},{"x":0.5453962672153053,"y":0.5429686584671763},{"x":0.5453962672153053,"y":0.5525144233787778},{"x":0.49385885841353705,"y":0.5520777805546491}]}}},{"id":"127","text":"Amount","bounding_box":{"left":0.6251528072743244,"top":0.5425320564660491,"width":0.05214240616655319,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6251528072743244,"y":0.5429686584671763},{"x":0.6772952134408776,"y":0.5425320564660491},{"x":0.6772952134408776,"y":0.5525144233787778},{"x":0.6257699218967732,"y":0.5520777805546491}]}}},{"id":"128","text":"VAT","bounding_box":{"left":0.7429421878712713,"top":0.5420954136419204,"width":0.025762674622665682,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.7429421878712713,"y":0.5420954136419204},{"x":0.768704862493937,"y":0.5425320564660491},{"x":0.768704862493937,"y":0.5525144233787778},{"x":0.7429421878712713,"y":0.5525144233787778}]}}},{"id":"129","text":"Base","bounding_box":{"left":0.7723956060746467,"top":0.5425320564660491,"width":0.030058473269387265,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7723956060746467,"y":0.5425320564660491},{"x":0.802454079344034,"y":0.5425320564660491},{"x":0.802454079344034,"y":0.5525144233787778},{"x":0.7723956060746467,"y":0.5525144233787778}]}}},{"id":"130","text":"VAT","bounding_box":{"left":0.8527572011996778,"top":0.5425320564660491,"width":0.02699690386756315,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8527572011996778,"y":0.5425320564660491},{"x":0.8797541050672409,"y":0.5425320564660491},{"x":0.8797541050672409,"y":0.5525144233787778},{"x":0.8533743158221265,"y":0.5525144233787778}]}}},{"id":"131","text":"Amount","bounding_box":{"left":0.8834327890915138,"top":0.5425320564660491,"width":0.053376750813904694,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8834327890915138,"y":0.5425320564660491},{"x":0.9368095399054185,"y":0.5425320564660491},{"x":0.9368095399054185,"y":0.5525144233787778},{"x":0.8834327890915138,"y":0.5525144233787778}]}}},{"id":"132","text":"NON","bounding_box":{"left":0.08159586043319543,"top":0.5672739387509648,"width":0.027601980571535262,"height":0.009545724088599883,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5677020087447768},{"x":0.10919784100473069,"y":0.5672739387509648},{"x":0.10919784100473069,"y":0.5768196628395647},{"x":0.08159586043319543,"y":0.5768196628395647}]}}},{"id":"133","text":"GST","bounding_box":{"left":0.11595009628603745,"top":0.5668372959268361,"width":0.024540476083591528,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.11595009628603745,"y":0.5668372959268361},{"x":0.14049057236962897,"y":0.5668372959268361},{"x":0.14049057236962897,"y":0.5768196628395647},{"x":0.11656723975909969,"y":0.5768196628395647}]}}},{"id":"134","text":"0","bounding_box":{"left":0.27975894620018377,"top":0.5672739387509648,"width":0.007357310347318735,"height":0.008681052093660657,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5672739387509648},{"x":0.28649911307444026,"y":0.5672739387509648},{"x":0.2871162565475025,"y":0.5759549908446254},{"x":0.27975894620018377,"y":0.5759549908446254}]}}},{"id":"135","text":"5,000.00","bounding_box":{"left":0.36625565313345937,"top":0.5672739387509648,"width":0.049080952167183056,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.36625565313345937,"y":0.5672739387509648},{"x":0.4153366053006424,"y":0.5672739387509648},{"x":0.4153366053006424,"y":0.5776929076648206},{"x":0.36625565313345937,"y":0.5776929076648206}]}}},{"id":"136","text":"0.00","bounding_box":{"left":0.5196335925926396,"top":0.5672739387509648,"width":0.02514550229898993,"height":0.009545724088599883,"polygon":{"coordinates":[{"x":0.5196335925926396,"y":0.5672739387509648},{"x":0.5447790948916296,"y":0.5672739387509648},{"x":0.5447790948916296,"y":0.5768196628395647},{"x":0.5196335925926396,"y":0.5768196628395647}]}}},{"id":"137","text":"0.00","bounding_box":{"left":0.651532596519439,"top":0.5668372959268361,"width":0.02454044723297799,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.651532596519439,"y":0.5668372959268361},{"x":0.676073043752417,"y":0.5668372959268361},{"x":0.676073043752417,"y":0.5768196628395647},{"x":0.651532596519439,"y":0.5768196628395647}]}}},{"id":"138","text":"5,000.00","bounding_box":{"left":0.7509166705422657,"top":0.5672739387509648,"width":0.0503152391133076,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7509166705422657,"y":0.5672739387509648},{"x":0.8012319096555733,"y":0.5672739387509648},{"x":0.8012319096555733,"y":0.5776929076648206},{"x":0.7521509574883902,"y":0.5776929076648206}]}}},{"id":"139","text":"0.00","bounding_box":{"left":0.9098125783366283,"top":0.5672739387509648,"width":0.025157619556653743,"height":0.009545724088599883,"polygon":{"coordinates":[{"x":0.9098125783366283,"y":0.5672739387509648},{"x":0.9349701978932821,"y":0.5672739387509648},{"x":0.9343530255696063,"y":0.5768196628395647},{"x":0.9098125783366283,"y":0.5763830608384375}]}}},{"id":"140","text":"Total","bounding_box":{"left":0.2552184989672057,"top":0.5937451650257589,"width":0.032514901053359024,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.2552184989672057,"y":0.5937451650257589},{"x":0.28773340002056474,"y":0.5937451650257589},{"x":0.28773340002056474,"y":0.6032994619446755},{"x":0.2552184989672057,"y":0.6032994619446755}]}}},{"id":"141","text":"5,000.00","bounding_box":{"left":0.3619598544867378,"top":0.5937451650257589,"width":0.05399389428696688,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.3619598544867378,"y":0.5941818078498876},{"x":0.41595374877370467,"y":0.5937451650257589},{"x":0.41595374877370467,"y":0.6037275319384876},{"x":0.3619598544867378,"y":0.6037275319384876}]}}},{"id":"142","text":"0.00","bounding_box":{"left":0.5177942505805032,"top":0.5937451650257589,"width":0.026379846946341434,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.5177942505805032,"y":0.6032994619446755},{"x":0.5183993056465152,"y":0.5937451650257589},{"x":0.5441740975268446,"y":0.5937451650257589},{"x":0.5441740975268446,"y":0.6032994619446755}]}}},{"id":"143","text":"0.00","bounding_box":{"left":0.6490761398848537,"top":0.5937451650257589,"width":0.02699690386756326,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.6490761398848537,"y":0.5937451650257589},{"x":0.676073043752417,"y":0.5937451650257589},{"x":0.676073043752417,"y":0.6032994619446755},{"x":0.6490761398848537,"y":0.6032994619446755}]}}},{"id":"144","text":"5,000.00","bounding_box":{"left":0.7472379865179929,"top":0.5933171358549484,"width":0.053993923137580446,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.7472379865179929,"y":0.5941818078498876},{"x":0.8012319096555733,"y":0.5933171358549484},{"x":0.8012319096555733,"y":0.6041641747626163},{"x":0.7472379865179929,"y":0.6041641747626163}]}}},{"id":"145","text":"0.00","bounding_box":{"left":0.9085904086481675,"top":0.5937451650257589,"width":0.026379789245114527,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.9085904086481675,"y":0.5937451650257589},{"x":0.9349701978932821,"y":0.5937451650257589},{"x":0.9349701978932821,"y":0.6032994619446755},{"x":0.9085904086481675,"y":0.6032994619446755}]}}},{"id":"146","text":"Ship-to","bounding_box":{"left":0.08221300390625766,"top":0.637150466317064,"width":0.046007330421575565,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6375871091411927},{"x":0.12822033432783322,"y":0.637150466317064},{"x":0.12822033432783322,"y":0.6484341480488606},{"x":0.08221300390625766,"y":0.6484341480488606}]}}},{"id":"147","text":"Address","bounding_box":{"left":0.1325161329745548,"top":0.637150466317064,"width":0.05275959291553567,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.1325161329745548,"y":0.637150466317064},{"x":0.18527572589009048,"y":0.6375871091411927},{"x":0.18527572589009048,"y":0.6484341480488606},{"x":0.1325161329745548,"y":0.6484341480488606}]}}},{"id":"148","text":"CRONUS","bounding_box":{"left":0.08159586043319543,"top":0.651036736863995,"width":0.053376729175944534,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6514733796881237},{"x":0.13435544613607772,"y":0.651036736863995},{"x":0.13497258960913996,"y":0.6618923486019795},{"x":0.08221300390625766,"y":0.6614557466008524}]}}},{"id":"149","text":"International","bounding_box":{"left":0.13742906066903188,"top":0.651036736863995,"width":0.07606578205300274,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.13742906066903188,"y":0.651036736863995},{"x":0.21349484272203462,"y":0.651036736863995},{"x":0.21349484272203462,"y":0.6618923486019795},{"x":0.13803410130973706,"y":0.6618923486019795}]}}},{"id":"150","text":"Ltd.","bounding_box":{"left":0.21656845725498877,"top":0.651036736863995,"width":0.023923332610529285,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.21656845725498877,"y":0.651036736863995},{"x":0.24049178986551806,"y":0.651036736863995},{"x":0.24049178986551806,"y":0.6618923486019795},{"x":0.21656845725498877,"y":0.6618923486019795}]}}},{"id":"151","text":"5","bounding_box":{"left":0.08221300390625766,"top":0.6649315802412427,"width":0.007974439395074195,"height":0.010847038907668027,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6649315802412427},{"x":0.09018744330133185,"y":0.6649315802412427},{"x":0.09018744330133185,"y":0.6757786191489107},{"x":0.08221300390625766,"y":0.6757786191489107}]}}},{"id":"152","text":"The","bounding_box":{"left":0.09324895500192895,"top":0.6649315802412427,"width":0.021478957170341068,"height":0.010847038907668027,"polygon":{"coordinates":[{"x":0.09324895500192895,"y":0.6649315802412427},{"x":0.11411077591186114,"y":0.6649315802412427},{"x":0.11472791217227002,"y":0.6757786191489107},{"x":0.09324895500192895,"y":0.6757786191489107}]}}},{"id":"153","text":"Ring","bounding_box":{"left":0.11717228039980487,"top":0.6649315802412427,"width":0.027614076191238957,"height":0.011711751725608788,"polygon":{"coordinates":[{"x":0.11717228039980487,"y":0.6649315802412427},{"x":0.14478635659104383,"y":0.6653596502350547},{"x":0.14478635659104383,"y":0.6766433319668514},{"x":0.11717228039980487,"y":0.6757786191489107}]}}},{"id":"154","text":"Westminster","bounding_box":{"left":0.08221300390625766,"top":0.6788178507881738,"width":0.07546073419964416,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6788178507881738},{"x":0.15705659463283958,"y":0.679682522783113},{"x":0.15767373810590182,"y":0.6888002177009025},{"x":0.08221300390625766,"y":0.6888002177009025}]}}},{"id":"155","text":"CANBERRA","bounding_box":{"left":0.08159586043319543,"top":0.6922674785109761,"width":0.06564696721774031,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6922674785109761},{"x":0.14724282765093574,"y":0.6922674785109761},{"x":0.14724282765093574,"y":0.7022584182540215},{"x":0.08221300390625766,"y":0.7026864882478335}]}}},{"id":"156","text":"NSW","bounding_box":{"left":0.15092148282459508,"top":0.6922674785109761,"width":0.025762660197358955,"height":0.009990939743045324,"polygon":{"coordinates":[{"x":0.15092148282459508,"y":0.6922674785109761},{"x":0.17607910238124885,"y":0.6922674785109761},{"x":0.17668414302195404,"y":0.7022584182540215},{"x":0.15153862629765733,"y":0.7022584182540215}]}}},{"id":"157","text":"2600","bounding_box":{"left":0.18589286936315272,"top":0.6922674785109761,"width":0.028836260305006384,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.18589286936315272,"y":0.6922674785109761},{"x":0.21411198619509686,"y":0.6922674785109761},{"x":0.2147291296681591,"y":0.7026864882478335},{"x":0.18589286936315272,"y":0.7026864882478335}]}}},{"id":"158","text":"Australia","bounding_box":{"left":0.08221300390625766,"top":0.7065903918820359,"width":0.051525313182064575,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.7070270347061646},{"x":0.13373831708832223,"y":0.7065903918820359},{"x":0.13373831708832223,"y":0.7170094016188933},{"x":0.08281804454696286,"y":0.7165813316250812}]}}}],"selection_marks":[]}],"error":null}},"error":null} \ No newline at end of file diff --git a/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108216.json b/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108216.json deleted file mode 100644 index 303b306275..0000000000 --- a/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108216.json +++ /dev/null @@ -1 +0,0 @@ -{"outputs":{"1":{"page_count":1,"result":{"context":{"start_page":1,"end_page":1},"fields":{"amountDue":null,"billingAddress":null,"billingAddressRecipient":null,"customerAddress":{"value_text":"5 The Ring Westminster CANBERRA NSW 2600 Australia","value_number":null,"value_date":null,"confidence":0.865,"location":{"bounding_box":{"left":0.7997192719905435,"top":0.10790541914731037,"width":0.1336899346095075,"height":0.053421908496548445,"polygon":{"coordinates":[{"x":0.7997192719905435,"y":0.1605568139018976},{"x":0.8003243270565554,"y":0.10790541914731037},{"x":0.933409206600051,"y":0.10866736005895494},{"x":0.9328041515340391,"y":0.16132732764385882}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerAddressRecipient":null,"customerId":{"value_text":"99-99-888","value_number":null,"value_date":null,"confidence":0.777,"location":{"bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerName":{"value_text":"CRONUS International Ltd.","value_number":null,"value_date":null,"confidence":0.93,"location":{"bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.1595009556477211,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}},"page":1},"currency_symbol":null,"currency_code":null},"dueDate":{"value_text":"07/31/25","value_number":null,"value_date":"2025-07-31","confidence":0.975,"location":{"bounding_box":{"left":0.23497380710502905,"top":0.28298202555079005,"width":0.05459890607705861,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.29340101487614667},{"x":0.23557884774573423,"y":0.29296439246351874}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceDate":{"value_text":"June 4, 2025","value_number":null,"value_date":"2025-06-04","confidence":0.904,"location":{"bounding_box":{"left":0.23373952015890456,"top":0.22916630776444508,"width":0.07607789931066652,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23373952015890456,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.2395852970898017},{"x":0.23373952015890456,"y":0.2395852970898017}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceId":{"value_text":"108216","value_number":null,"value_date":null,"confidence":0.975,"location":{"bounding_box":{"left":0.23619599121879647,"top":0.24218790631643689,"width":0.04416801004739923,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.24218790631643689},{"x":0.2803640012661957,"y":0.2521702528176648},{"x":0.23681313469185872,"y":0.2521702528176648}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceTotal":{"value_text":"AUD 2,000.00","value_number":2000,"value_date":null,"confidence":0.442,"location":{"bounding_box":{"left":0.8067498779907556,"top":0.47048096925562605,"width":0.1257638632679413,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8067498779907556,"y":0.47048096925562605},{"x":0.9325137412586969,"y":0.47048096925562605},{"x":0.9325137412586969,"y":0.4808999381694819},{"x":0.8067498779907556,"y":0.4808999381694819}]}},"page":1},"currency_symbol":"AUD","currency_code":"AUD"},"previousUnpaidBalance":null,"purchaseOrder":null,"remittanceAddress":null,"remittanceAddressRecipient":null,"serviceAddress":null,"serviceAddressRecipient":null,"serviceEndDate":null,"serviceStartDate":null,"shippingAddress":{"value_text":"5 The Ring Westminster CANBERRA NSW 2600 Australia","value_number":null,"value_date":null,"confidence":0.886,"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6788178507881738,"width":0.13313326923496366,"height":0.05121310855970973,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6788178507881738},{"x":0.2147291296681591,"y":0.6788178507881738},{"x":0.2147291296681591,"y":0.7300309593478835},{"x":0.08159586043319543,"y":0.7300309593478835}]}},"page":1},"currency_symbol":null,"currency_code":null},"shippingAddressRecipient":{"value_text":"CRONUS International Ltd.","value_number":null,"value_date":null,"confidence":0.93,"location":{"bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.1595009556477211,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}},"page":1},"currency_symbol":null,"currency_code":null},"subTotal":{"value_text":"2,000.00","value_number":2000,"value_date":null,"confidence":0.652,"location":{"bounding_box":{"left":0.36257699795980003,"top":0.6072034064018794,"width":0.05337675081390464,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.36257699795980003,"y":0.6076400084030066},{"x":0.41595374877370467,"y":0.6072034064018794},{"x":0.41595374877370467,"y":0.6180504453095473},{"x":0.36319414143286227,"y":0.6180504453095473}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"totalTax":{"value_text":"0.00","value_number":0,"value_date":null,"confidence":0.968,"location":{"bounding_box":{"left":0.9079732363244919,"top":0.6076400084030066,"width":0.0276140761912389,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9079732363244919,"y":0.6171857324916066},{"x":0.9085904086481675,"y":0.6076400084030066},{"x":0.9355873125157308,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6171857324916066}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"vendorAddress":{"value_text":"Evan McIntosh Allan Turing Road, 20 Surrey ALBERTON QLD 4207 Australia","value_number":null,"value_date":null,"confidence":0.819,"location":{"bounding_box":{"left":0.08037367631942799,"top":0.07551837863774787,"width":0.12882538218119177,"height":0.06467133973007995,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.07551837863774787},{"x":0.20919905850061976,"y":0.07551837863774787},{"x":0.20919905850061976,"y":0.14018971836782781},{"x":0.08037367631942799,"y":0.14018971836782781}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorAddressRecipient":{"value_text":"First Up Consultants","value_number":null,"value_date":null,"confidence":0.927,"location":{"bounding_box":{"left":0.08097871696013319,"top":0.06119548567818885,"width":0.11902370360633822,"height":0.01130079167230364,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.06119548567818885},{"x":0.2000024205664714,"y":0.06121260582444624},{"x":0.2000024205664714,"y":0.0724962773504925},{"x":0.08097871696013319,"y":0.07247915210135993}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorName":{"value_text":"First Up Consultants","value_number":null,"value_date":null,"confidence":0.927,"location":{"bounding_box":{"left":0.08097871696013319,"top":0.06119548567818885,"width":0.11902370360633822,"height":0.01130079167230364,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.06119548567818885},{"x":0.2000024205664714,"y":0.06121260582444624},{"x":0.2000024205664714,"y":0.0724962773504925},{"x":0.08097871696013319,"y":0.07247915210135993}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerTaxId":{"value_text":"53001003000","value_number":null,"value_date":null,"confidence":0.568,"location":{"bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorTaxId":{"value_text":"274863274B01","value_number":null,"value_date":null,"confidence":0.957,"location":{"bounding_box":{"left":0.23619599121879647,"top":0.20052052184532704,"width":0.08650879534032585,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.20052052184532704},{"x":0.32208764308606014,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.21093951117068366},{"x":0.23619599121879647,"y":0.2105028887580557}]}},"page":1},"currency_symbol":null,"currency_code":null},"paymentTerms":{"value_text":"End of Next Month","value_number":null,"value_date":null,"confidence":0.919,"location":{"bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.11227144111237808,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}},"page":1},"currency_symbol":null,"currency_code":null}},"items":[{"fields":{"amount":{"value_text":"2,000.00","value_number":2000,"value_date":null,"confidence":0.956,"location":{"bounding_box":{"left":0.8834327890915138,"top":0.4296868296097721,"width":0.050303121855643784,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8834327890915138,"y":0.43012343161089933},{"x":0.9337359109471576,"y":0.4296868296097721},{"x":0.9337359109471576,"y":0.44053386851744003},{"x":0.8840499037139625,"y":0.44010579852362797}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"description":{"value_text":"IT Support Support period: December","value_number":null,"value_date":null,"confidence":0.948,"location":{"bounding_box":{"left":0.17607910238124885,"top":0.4296868296097721,"width":0.1601181063334367,"height":0.025169952278727703,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4296868296097721},{"x":0.33619720871468556,"y":0.4296868296097721},{"x":0.33619720871468556,"y":0.4548567818884998},{"x":0.17607910238124885,"y":0.4548567818884998}]}},"page":1},"currency_symbol":null,"currency_code":null},"unitPrice":{"value_text":"200.00","value_number":200,"value_date":null,"confidence":0.954,"location":{"bounding_box":{"left":0.5331260435988163,"top":0.43012343161089933,"width":0.039884299807727897,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.5331260435988163,"y":0.43012343161089933},{"x":0.5723931710828686,"y":0.43012343161089933},{"x":0.5730103434065442,"y":0.44053386851744003},{"x":0.5337431582212651,"y":0.4396691965225008}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"quantity":{"value_text":"10","value_number":10,"value_date":null,"confidence":0.956,"location":{"bounding_box":{"left":0.41104080665392084,"top":0.4296868296097721,"width":0.012270223616489051,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.41104080665392084,"y":0.4296868296097721},{"x":0.4233110302704099,"y":0.4296868296097721},{"x":0.4233110302704099,"y":0.43923255369837205},{"x":0.41104080665392084,"y":0.43923255369837205}]}},"page":1},"currency_symbol":null,"currency_code":null},"productCode":null,"unit":null,"date":null,"tax":null},"row_text":"IT Support 10 200.00 No NON GST 2,000.00 Support period: December","confidence":0.825,"location":{"bounding_box":{"left":0.17607910238124885,"top":0.4292501867856434,"width":0.7576568085659088,"height":0.0256065951028564,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.4548567818884998},{"x":0.17607910238124885,"y":0.4548567818884998}]}},"page":1}}],"key_value_pairs":[{"key":"Pay-to Vendor No.","value":"20000","confidence":0.875,"key_location":{"bounding_box":{"left":0.08037367631942799,"top":0.18619762888576802,"width":0.11165430485196923,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.1974812902060639},{"x":0.08037367631942799,"y":0.1974812902060639}]}},"page":1},"value_location":{"bounding_box":{"left":0.23619599121879647,"top":0.18619762888576802,"width":0.03619355622701831,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.19617999579849668},{"x":0.23619599121879647,"y":0.19617999579849668}]}},"page":1}},{"key":"Phone No.","value":"0666-666-6666","confidence":0.897,"key_location":{"bounding_box":{"left":0.6666707442200392,"top":0.17949420627715698,"width":0.06358981028644384,"height":0.011043948655441393,"polygon":{"coordinates":[{"x":0.6666707442200392,"y":0.18991319560251363},{"x":0.6668764490941889,"y":0.17949420627715698},{"x":0.7302605545064831,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19053815493259837}]}},"page":1},"value_location":{"bounding_box":{"left":0.8423262618940982,"top":0.17969111602493043,"width":0.0901874793645987,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8423262618940982,"y":0.18011916560724173},{"x":0.9325137412586969,"y":0.17969111602493043},{"x":0.9325137412586969,"y":0.18967348293765912},{"x":0.8423262618940982,"y":0.18967348293765912}]}},"page":1}},{"key":"VAT Registration No.","value":"274863274B01","confidence":0.875,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.20008389943269908,"width":0.12454168636682723,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.2118041831656229},{"x":0.08097871696013319,"y":0.2118041831656229}]}},"page":1},"value_location":{"bounding_box":{"left":0.23619599121879647,"top":0.20052052184532704,"width":0.08650879534032585,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.20052052184532704},{"x":0.32208764308606014,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.21093951117068366},{"x":0.23619599121879647,"y":0.2105028887580557}]}},"page":1}},{"key":"Document Date","value":"June 4, 2025","confidence":0.862,"key_location":{"bounding_box":{"left":0.08030107375059245,"top":0.22872968535181712,"width":0.09399920078030524,"height":0.011180930237001202,"polygon":{"coordinates":[{"x":0.08030107375059245,"y":0.2395852970898017},{"x":0.08037367631942799,"y":0.22872968535181712},{"x":0.1743002745308977,"y":0.22905500385083374},{"x":0.17422767196206213,"y":0.23991061558881832}]}},"page":1},"value_location":{"bounding_box":{"left":0.23373952015890456,"top":0.22916630776444508,"width":0.07607789931066652,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23373952015890456,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.2395852970898017},{"x":0.23373952015890456,"y":0.2395852970898017}]}},"page":1}},{"key":"VAT Registration No.","value":"777777777","confidence":0.318,"key_location":{"bounding_box":{"left":0.6674814464589738,"top":0.21962056326434437,"width":0.1239245789570319,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.23090422458464024},{"x":0.6674814464589738,"y":0.23090422458464024}]}},"page":1},"value_location":{"bounding_box":{"left":0.8687060511392126,"top":0.2200486332581564,"width":0.06442480474193302,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8687060511392126,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22048525567078436},{"x":0.9331308558811456,"y":0.22960293017707303},{"x":0.8687060511392126,"y":0.22916630776444508}]}},"page":1}},{"key":"Invoice No.","value":"108216","confidence":0.896,"key_location":{"bounding_box":{"left":0.0801800598523287,"top":0.24217933348612022,"width":0.06847856837947375,"height":0.011086771984023164,"polygon":{"coordinates":[{"x":0.0801800598523287,"y":0.25260687523029274},{"x":0.08038577915178503,"y":0.24217933348612022},{"x":0.14865862823180245,"y":0.2428385433144701},{"x":0.1484529089323461,"y":0.2532661054701434}]}},"page":1},"value_location":{"bounding_box":{"left":0.23619599121879647,"top":0.24218790631643689,"width":0.04416801004739923,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.24218790631643689},{"x":0.2803640012661957,"y":0.2521702528176648},{"x":0.23681313469185872,"y":0.2521702528176648}]}},"page":1}},{"key":"Giro No.","value":"888-9999","confidence":0.615,"key_location":{"bounding_box":{"left":0.666864331836525,"top":0.23413181355286092,"width":0.051718936861817166,"height":0.010478897080069521,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.23459411363343738},{"x":0.7184017406382933,"y":0.23413181355286092},{"x":0.7185832686983422,"y":0.24414841055235398},{"x":0.6670458598965741,"y":0.24461071063293044}]}},"page":1},"value_location":{"bounding_box":{"left":0.8779148207563315,"top":0.23437152621771543,"width":0.0552160351248141,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8779148207563315,"y":0.23480814863034338},{"x":0.9325137412586969,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.24392582313663205},{"x":0.8779148207563315,"y":0.2434892007240041}]}},"page":1}},{"key":"Bank","value":"World Wide Bank","confidence":0.875,"key_location":{"bounding_box":{"left":0.6674814464589738,"top":0.24869441917727445,"width":0.02821913125725084,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.2578120936835631},{"x":0.6674814464589738,"y":0.2578120936835631}]}},"page":1},"value_location":{"bounding_box":{"left":0.8294509832115972,"top":0.2482663491834624,"width":0.10367987266954848,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.8294509832115972,"y":0.2482663491834624},{"x":0.9331308558811456,"y":0.2482663491834624},{"x":0.9331308558811456,"y":0.2586767860900031},{"x":0.8294509832115972,"y":0.2586767860900031}]}},"page":1}},{"key":"Posting Date","value":"06/04/25","confidence":0.897,"key_location":{"bounding_box":{"left":0.07975653284636575,"top":0.269523824997671,"width":0.0791393893733035,"height":0.01172885656324052,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269523824997671},{"x":0.15889592221966925,"y":0.26953237741648695},{"x":0.15889592221966925,"y":0.28125268156091154},{"x":0.07975653284636575,"y":0.2812441087305949}]}},"page":1},"value_location":{"bounding_box":{"left":0.23497380710502905,"top":0.26953237741648695,"width":0.05520396114307055,"height":0.010847059319168684,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.26953237741648695},{"x":0.2901777682480996,"y":0.26953237741648695},{"x":0.2901777682480996,"y":0.28037943673565563},{"x":0.23557884774573423,"y":0.2799428143230277}]}},"page":1}},{"key":"Account No.","value":"99-99-888","confidence":0.888,"key_location":{"bounding_box":{"left":0.6664892161599902,"top":0.2623752071461154,"width":0.07461368740037166,"height":0.011677501227343567,"polygon":{"coordinates":[{"x":0.6664892161599902,"y":0.27253735855748495},{"x":0.6669127431659533,"y":0.2623752071461154},{"x":0.7411029035603619,"y":0.2638905569620894},{"x":0.7406914361108358,"y":0.27405270837345896}]}},"page":1},"value_location":{"bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}},"page":1}},{"key":"Due Date","value":"07/31/25","confidence":0.897,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.28341864796341804,"width":0.05583320023583645,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.29296439246351874},{"x":0.08097871696013319,"y":0.29296439246351874}]}},"page":1},"value_location":{"bounding_box":{"left":0.23497380710502905,"top":0.28298202555079005,"width":0.05459890607705861,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.29340101487614667},{"x":0.23557884774573423,"y":0.29296439246351874}]}},"page":1}},{"key":"Payment Terms","value":"End of Next Month","confidence":0.855,"key_location":{"bounding_box":{"left":0.08088190872658355,"top":0.30946184506740165,"width":0.09282542799596599,"height":0.01166035556671019,"polygon":{"coordinates":[{"x":0.08088190872658355,"y":0.3207455063876975},{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.17370733672254954,"y":0.30983853931381594},{"x":0.17361052848899988,"y":0.32112220063411184}]}},"page":1},"value_location":{"bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.11227144111237808,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}},"page":1}},{"key":"ABN","value":"53001003000","confidence":0.923,"key_location":{"bounding_box":{"left":0.6680986187826495,"top":0.30338338178887536,"width":0.022701162922068585,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.6680986187826495,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.312501056295164},{"x":0.6680986187826495,"y":0.312501056295164}]}},"page":1},"value_location":{"bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}},"page":1}},{"key":"Shipment","value":null,"confidence":0.21,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.32291149320170476,"width":0.05645034370889869,"height":0.011292234150612535,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.3233481156143327},{"x":0.13681191719596963,"y":0.32291149320170476},{"x":0.13742906066903188,"y":0.3337671049396893},{"x":0.08159586043319543,"y":0.3342037273523173}]}},"page":1},"value_location":null},{"key":"Unit of Measure","value":"10","confidence":0.875,"key_location":{"bounding_box":{"left":0.43925993791117174,"top":0.3927965935981206,"width":0.05459892050236531,"height":0.022567322640591747,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.3927965935981206},{"x":0.49385885841353705,"y":0.3927965935981206},{"x":0.49385885841353705,"y":0.4153639162387123},{"x":0.43925993791117174,"y":0.4153639162387123}]}},"page":1},"value_location":{"bounding_box":{"left":0.41104080665392084,"top":0.4296868296097721,"width":0.012270223616489051,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.41104080665392084,"y":0.4296868296097721},{"x":0.4233110302704099,"y":0.4296868296097721},{"x":0.4233110302704099,"y":0.43923255369837205},{"x":0.41104080665392084,"y":0.43923255369837205}]}},"page":1}},{"key":"Unit Cost","value":"200.00","confidence":0.897,"key_location":{"bounding_box":{"left":0.5447790948916296,"top":0.39235999159699336,"width":0.029453418203375437,"height":0.02213925264677974,"polygon":{"coordinates":[{"x":0.5447790948916296,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.4144992442437731},{"x":0.5447790948916296,"y":0.4144992442437731}]}},"page":1},"value_location":{"bounding_box":{"left":0.5331260435988163,"top":0.43012343161089933,"width":0.039884299807727897,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.5331260435988163,"y":0.43012343161089933},{"x":0.5723931710828686,"y":0.43012343161089933},{"x":0.5730103434065442,"y":0.44053386851744003},{"x":0.5337431582212651,"y":0.4396691965225008}]}},"page":1}},{"key":"Invoice","value":"No","confidence":0.906,"key_location":{"bounding_box":{"left":0.6785295003870021,"top":0.3927965935981206,"width":0.04539020858647347,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.3927965935981206},{"x":0.7239197089734756,"y":0.39322466359193264},{"x":0.7239197089734756,"y":0.40277896051084927},{"x":0.6785295003870021,"y":0.40277896051084927}]}},"page":1},"value_location":{"bounding_box":{"left":0.6785295003870021,"top":0.43055150160471134,"width":0.01778824965289827,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43923255369837205},{"x":0.6785295003870021,"y":0.4388045245275615}]}},"page":1}},{"key":"VAT Identifier","value":"NON GST","confidence":0.621,"key_location":{"bounding_box":{"left":0.7730006611406586,"top":0.39235999159699336,"width":0.06135117578367211,"height":0.023003924641718965,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.39235999159699336},{"x":0.8343518369243307,"y":0.39235999159699336},{"x":0.8343518369243307,"y":0.4153639162387123},{"x":0.7730006611406586,"y":0.4153639162387123}]}},"page":1},"value_location":{"bounding_box":{"left":0.7736177757631074,"top":0.4292501867856434,"width":0.060129006095211324,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.7736177757631074,"y":0.4292501867856434},{"x":0.8337467818583187,"y":0.4292501867856434},{"x":0.8337467818583187,"y":0.44010579852362797},{"x":0.7736177757631074,"y":0.44010579852362797}]}},"page":1}},{"key":"No.","value":null,"confidence":0.612,"key_location":{"bounding_box":{"left":0.08221300390625766,"top":0.4053815493259837,"width":0.022689045664404828,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4149273142375851},{"x":0.08221300390625766,"y":0.4149273142375851}]}},"page":1},"value_location":null},{"key":"Description","value":"IT Support","confidence":0.655,"key_location":{"bounding_box":{"left":0.17668414302195404,"top":0.4049449473248565,"width":0.0723992152863937,"height":0.012156926557052528,"polygon":{"coordinates":[{"x":0.17668414302195404,"y":0.4053815493259837},{"x":0.24908335830834774,"y":0.4049449473248565},{"x":0.24908335830834774,"y":0.417101873881909},{"x":0.17668414302195404,"y":0.4153639162387123}]}},"page":1},"value_location":{"bounding_box":{"left":0.1756676637823362,"top":0.42937004311807064,"width":0.06397705764594919,"height":0.012507922724017684,"polygon":{"coordinates":[{"x":0.1756676637823362,"y":0.4406879753481324},{"x":0.17609119078829916,"y":0.42937004311807064},{"x":0.23964472142828538,"y":0.43056007443502803},{"x":0.23922119442232243,"y":0.4418779658420883}]}},"page":1}},{"key":"Quantity","value":"Support period: December","confidence":0.187,"key_location":{"bounding_box":{"left":0.3570590296246177,"top":0.4049449473248565,"width":0.05643823366388828,"height":0.012156926557052528,"polygon":{"coordinates":[{"x":0.3570590296246177,"y":0.4049449473248565},{"x":0.413497263288506,"y":0.4049449473248565},{"x":0.413497263288506,"y":0.417101873881909},{"x":0.3570590296246177,"y":0.4162286290566531}]}},"page":1},"value_location":{"bounding_box":{"left":0.17607910238124885,"top":0.44291389032835327,"width":0.1601181063334367,"height":0.012268210059163176,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4434532438242759},{"x":0.33612459172054326,"y":0.44291389032835327},{"x":0.33619720871468556,"y":0.4546427468915938},{"x":0.1761517049500844,"y":0.45518210038751644}]}},"page":1}},{"key":"Discount %","value":null,"confidence":0.622,"key_location":{"bounding_box":{"left":0.5914157076818913,"top":0.4049449473248565,"width":0.07360928214249729,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5914157076818913,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4153639162387123},{"x":0.5914157076818913,"y":0.4153639162387123}]}},"page":1},"value_location":null},{"key":"Discount","value":null,"confidence":0.281,"key_location":{"bounding_box":{"left":0.679134555453014,"top":0.4053815493259837,"width":0.057055377136950525,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.679134555453014,"y":0.4058181921501124},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4153639162387123},{"x":0.679134555453014,"y":0.4149273142375851}]}},"page":1},"value_location":null},{"key":"Amount","value":"2,000.00","confidence":0.909,"key_location":{"bounding_box":{"left":0.8822106194030531,"top":0.4053815493259837,"width":0.05275957849022894,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.8822106194030531,"y":0.4053815493259837},{"x":0.9349701978932821,"y":0.4053815493259837},{"x":0.9349701978932821,"y":0.4153639162387123},{"x":0.8822106194030531,"y":0.4149273142375851}]}},"page":1},"value_location":{"bounding_box":{"left":0.8834327890915138,"top":0.4296868296097721,"width":0.050303121855643784,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8834327890915138,"y":0.43012343161089933},{"x":0.9337359109471576,"y":0.4296868296097721},{"x":0.9337359109471576,"y":0.44053386851744003},{"x":0.8840499037139625,"y":0.44010579852362797}]}},"page":1}},{"key":"Total AUD","value":"2,000.00","confidence":0.897,"key_location":{"bounding_box":{"left":0.7711613191285223,"top":0.47048096925562605,"width":0.06258546272979648,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7711613191285223,"y":0.47048096925562605},{"x":0.8337467818583187,"y":0.47048096925562605},{"x":0.8337467818583187,"y":0.4808999381694819},{"x":0.7711613191285223,"y":0.4808999381694819}]}},"page":1},"value_location":{"bounding_box":{"left":0.8791369904447922,"top":0.47048096925562605,"width":0.053376750813904694,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8791369904447922,"y":0.47091757125675326},{"x":0.9325137412586969,"y":0.47048096925562605},{"x":0.9325137412586969,"y":0.4808999381694819},{"x":0.8797541050672409,"y":0.4808999381694819}]}},"page":1}},{"key":"VAT Identifier","value":"NON GST","confidence":0.874,"key_location":{"bounding_box":{"left":0.08152325065170651,"top":0.5556735113504682,"width":0.09093769629236148,"height":0.011163784576367908,"polygon":{"coordinates":[{"x":0.08152325065170651,"y":0.5665205502581361},{"x":0.08159586043319543,"y":0.5556735113504682},{"x":0.172460946944068,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5668372959268361}]}},"page":1},"value_location":{"bounding_box":{"left":0.08159586043319543,"top":0.5802955373029566,"width":0.058894711936433544,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5907059333864958},{"x":0.08159586043319543,"y":0.5907059333864958}]}},"page":1}},{"key":"VAT %","value":"0","confidence":0.886,"key_location":{"bounding_box":{"left":0.24600975820070034,"top":0.5555536550180409,"width":0.04110649834680216,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.24600975820070034,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5659726239318967},{"x":0.24600975820070034,"y":0.5659726239318967}]}},"page":1},"value_location":{"bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.007357310347318735,"height":0.008681092916662192,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.28649911307444026,"y":0.5807235664737671},{"x":0.2871162565475025,"y":0.5894046593904293},{"x":0.27975894620018377,"y":0.5894046593904293}]}},"page":1}},{"key":"Ship-to Address","value":"CRONUS International Ltd. 5 The Ring Westminster CANBERRA NSW 2600 Australia","confidence":0.779,"key_location":{"bounding_box":{"left":0.08211619567270802,"top":0.6505658843646026,"width":0.10203415433716466,"height":0.01201135173367529,"polygon":{"coordinates":[{"x":0.08211619567270802,"y":0.6621063835988856},{"x":0.08221300390625766,"y":0.6505658843646026},{"x":0.18415035000987268,"y":0.651036736863995},{"x":0.184041438943966,"y":0.6625772360982779}]}},"page":1},"value_location":{"bounding_box":{"left":0.08159586043319543,"top":0.6644949782401155,"width":0.16011809912078334,"height":0.06553598110776804,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.7300309593478835},{"x":0.08159586043319543,"y":0.7300309593478835}]}},"page":1}}]},"read_results":[{"location":{"bounding_box":{"left":0.7245368812971513,"top":0.03992945489372671,"width":0.20245889162636332,"height":0.016925499634756605,"polygon":{"coordinates":[{"x":0.7245368812971513,"y":0.03992945489372671},{"x":0.9269957729235146,"y":0.03992945489372671},{"x":0.9269957729235146,"y":0.05685495452848331},{"x":0.7245368812971513,"y":0.05685495452848331}]}},"page":1},"text":"Purchase - Invoice"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.06119548567818885,"width":0.11962874424704342,"height":0.010855606635109392,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.06119548567818885},{"x":0.2000024205664714,"y":0.06119548567818885},{"x":0.19938527709340917,"y":0.07205109231329825},{"x":0.08037367631942799,"y":0.07205109231329825}]}},"page":1},"text":"First Up Consultants"},{"location":{"bounding_box":{"left":0.8908021589952693,"top":0.06163210809081681,"width":0.04171158226342764,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.8908021589952693,"y":0.06206873050344477},{"x":0.9325137412586969,"y":0.06163210809081681},{"x":0.9325137412586969,"y":0.07247915210135993},{"x":0.8914072140612812,"y":0.07247915210135993}]}},"page":1},"text":"Page 1"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.0750903188496862,"width":0.08833601288214513,"height":0.010410426700790343,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.0750903188496862},{"x":0.16809254572851087,"y":0.07551837863774787},{"x":0.16809254572851087,"y":0.08550074555047654},{"x":0.07975653284636575,"y":0.08507268576241486}]}},"page":1},"text":"Evan McIntosh"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.08767528478329967,"width":0.12883747058824208,"height":0.012148353726735894,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.08810334457136135},{"x":0.20859400343460782,"y":0.08767528478329967},{"x":0.20859400343460782,"y":0.09939557872197388},{"x":0.07975653284636575,"y":0.09982363851003556}]}},"page":1},"text":"Allan Turing Road, 20"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.10242624773667074,"width":0.03865003449956361,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.10242624773667074},{"x":0.11840656734592936,"y":0.1028628701492987},{"x":0.11840656734592936,"y":0.11284522685627699},{"x":0.07975653284636575,"y":0.11198054465558736}]}},"page":1},"text":"Surrey"},{"location":{"bounding_box":{"left":0.9251564309113782,"top":0.09418180784988762,"width":0.007974424969767413,"height":0.009117674506288656,"polygon":{"coordinates":[{"x":0.9251564309113782,"y":0.09418180784988762},{"x":0.9325137412586969,"y":0.09418180784988762},{"x":0.9331308558811456,"y":0.10329948235617628},{"x":0.9251564309113782,"y":0.1028628701492987}]}},"page":1},"text":"5"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.11588445849554013,"width":0.12883747058824208,"height":0.010418979119606236,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.11588445849554013},{"x":0.20859400343460782,"y":0.11588445849554013},{"x":0.20859400343460782,"y":0.12630343761514637},{"x":0.07975653284636575,"y":0.12630343761514637}]}},"page":1},"text":"ALBERTON QLD 4207"},{"location":{"bounding_box":{"left":0.8693232234628884,"top":0.10807664102138496,"width":0.06319051779580853,"height":0.011283661320295887,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.10807664102138496},{"x":0.9325137412586969,"y":0.10850470080944664},{"x":0.9325137412586969,"y":0.11936030234168085},{"x":0.8693232234628884,"y":0.11848705751642494}]}},"page":1},"text":"5 The Ring"},{"location":{"bounding_box":{"left":0.07913938937330352,"top":0.1306439738677271,"width":0.05399388707431353,"height":0.009109122087472749,"polygon":{"coordinates":[{"x":0.07913938937330352,"y":0.1306439738677271},{"x":0.13313327644761705,"y":0.1306439738677271},{"x":0.13313327644761705,"y":0.13975309595519986},{"x":0.07913938937330352,"y":0.13975309595519986}]}},"page":1},"text":"Australia"},{"location":{"bounding_box":{"left":0.8570529998463994,"top":0.12239953398094398,"width":0.07607785603474626,"height":0.010410426700790357,"polygon":{"coordinates":[{"x":0.8570529998463994,"y":0.12239953398094398},{"x":0.9331308558811456,"y":0.12282759376900566},{"x":0.9325137412586969,"y":0.13280996068173434},{"x":0.8570529998463994,"y":0.13238190089367266}]}},"page":1},"text":"Westminster"},{"location":{"bounding_box":{"left":0.7987753953197612,"top":0.13628580452787506,"width":0.13435546056138448,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.7987753953197612,"y":0.13628580452787506},{"x":0.9331308558811456,"y":0.13628580452787506},{"x":0.9331308558811456,"y":0.14713285364129336},{"x":0.7987753953197612,"y":0.14670479385323168}]}},"page":1},"text":"CANBERRA NSW 2600"},{"location":{"bounding_box":{"left":0.8791369904447922,"top":0.15104531990006204,"width":0.053376750813904694,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.8791369904447922,"y":0.1514733796881237},{"x":0.9325137412586969,"y":0.15104531990006204},{"x":0.9325137412586969,"y":0.1610276868127907},{"x":0.8791369904447922,"y":0.1610276868127907}]}},"page":1},"text":"Australia"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.18619762888576802,"width":0.11227144832503147,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.19704466779343593},{"x":0.07975653284636575,"y":0.1974812902060639}]}},"page":1},"text":"Pay-to Vendor No."},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.18619762888576802,"width":0.03865002728691022,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.18663425129839598},{"x":0.273006690918877,"y":0.18619762888576802},{"x":0.273006690918877,"y":0.19617999579849668},{"x":0.2343566636319668,"y":0.19574337338586872}]}},"page":1},"text":"20000"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.17969111602493043,"width":0.06379557286182047,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.17969111602493043},{"x":0.7300548496323336,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19010153251997042},{"x":0.6662592767705131,"y":0.18967348293765912}]}},"page":1},"text":"Phone No."},{"location":{"bounding_box":{"left":0.8411040922056375,"top":0.17969111602493043,"width":0.09324893336396878,"height":0.009545744500100733,"polygon":{"coordinates":[{"x":0.8411040922056375,"y":0.17969111602493043},{"x":0.9343530255696063,"y":0.17969111602493043},{"x":0.9343530255696063,"y":0.18923686052503116},{"x":0.8411040922056375,"y":0.18923686052503116}]}},"page":1},"text":"0666-666-6666"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.19965582943888702,"width":0.12514672700753243,"height":0.011711731314107937,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.19965582943888702},{"x":0.20490325985389818,"y":0.19965582943888702},{"x":0.20490325985389818,"y":0.21136756075299495},{"x":0.07975653284636575,"y":0.21136756075299495}]}},"page":1},"text":"VAT Registration No."},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.20008389943269908,"width":0.08834812292715552,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.20008389943269908},{"x":0.3227047865591223,"y":0.20008389943269908},{"x":0.3227047865591223,"y":0.2105028887580557},{"x":0.2343566636319668,"y":0.2105028887580557}]}},"page":1},"text":"274863274B01"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.19270414174660558,"width":0.0717821150892517,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.20355975348459018},{"x":0.6662592767705131,"y":0.20312313107196223}]}},"page":1},"text":"Home Page"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2057257402985974,"width":0.03435427191610885,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.20659896471235256},{"x":0.700613548686622,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2157080867998253},{"x":0.666864331836525,"y":0.21528003721751401}]}},"page":1},"text":"Email"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.22872968535181712,"width":0.09570542606182086,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.22872968535181712},{"x":0.1754619589081866,"y":0.22872968535181712},{"x":0.1754619589081866,"y":0.23914867467717374},{"x":0.07975653284636575,"y":0.23914867467717374}]}},"page":1},"text":"Document Date"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.21962056326434437,"width":0.12454169357948064,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.21962056326434437},{"x":0.7908009703499937,"y":0.21962056326434437},{"x":0.7908009703499937,"y":0.23090422458464024},{"x":0.6662592767705131,"y":0.23090422458464024}]}},"page":1},"text":"VAT Registration No."},{"location":{"bounding_box":{"left":0.8662617117622913,"top":0.2200486332581564,"width":0.0674741991848663,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.8662617117622913,"y":0.2200486332581564},{"x":0.9337359109471576,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22916630776444508},{"x":0.8662617117622913,"y":0.22872968535181712}]}},"page":1},"text":"777777777"},{"location":{"bounding_box":{"left":0.23313447951819938,"top":0.22916630776444508,"width":0.07668293995137171,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23313447951819938,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.2395852970898017},{"x":0.23313447951819938,"y":0.23914867467717374}]}},"page":1},"text":"June 4, 2025"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.24218790631643689,"width":0.06809133544527518,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.24218790631643689},{"x":0.14784786829164093,"y":0.24262452872906484},{"x":0.14784786829164093,"y":0.25260687523029274},{"x":0.07975653284636575,"y":0.2521702528176648}]}},"page":1},"text":"Invoice No."},{"location":{"bounding_box":{"left":0.23557884774573423,"top":0.24175128390380893,"width":0.044785153520461474,"height":0.009982346501227896,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.24175128390380893},{"x":0.2803640012661957,"y":0.24175128390380893},{"x":0.2803640012661957,"y":0.2517336304050368},{"x":0.23557884774573423,"y":0.2517336304050368}]}},"page":1},"text":"108216"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2339434562239034,"width":0.05214246386778021,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.23437152621771543},{"x":0.7177846260158445,"y":0.2339434562239034},{"x":0.7184017406382933,"y":0.24392582313663205},{"x":0.6662592767705131,"y":0.24392582313663205}]}},"page":1},"text":"Giro No."},{"location":{"bounding_box":{"left":0.8760754787441951,"top":0.23437152621771543,"width":0.057055377136950525,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.8760754787441951,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.2434892007240041},{"x":0.8760754787441951,"y":0.2434892007240041}]}},"page":1},"text":"888-9999"},{"location":{"bounding_box":{"left":0.666864331836525,"top":0.24869441917727445,"width":0.03129270251428484,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.24869441917727445},{"x":0.6981570343508099,"y":0.24869441917727445},{"x":0.6981570343508099,"y":0.2578120936835631},{"x":0.6680986187826495,"y":0.2578120936835631}]}},"page":1},"text":"Bank"},{"location":{"bounding_box":{"left":0.8282166962654727,"top":0.2482663491834624,"width":0.10613632930413364,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8282166962654727,"y":0.2482663491834624},{"x":0.9343530255696063,"y":0.2482663491834624},{"x":0.9343530255696063,"y":0.2582487160961911},{"x":0.8282166962654727,"y":0.2582487160961911}]}},"page":1},"text":"World Wide Bank"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.269095755003859,"width":0.0791393893733035,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269095755003859},{"x":0.15889592221966925,"y":0.269095755003859},{"x":0.15889592221966925,"y":0.2808160591482836},{"x":0.07975653284636575,"y":0.2808160591482836}]}},"page":1},"text":"Posting Date"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.269095755003859,"width":0.05643824808919504,"height":0.010847059319168684,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.269095755003859},{"x":0.29079491172116184,"y":0.269095755003859},{"x":0.29079491172116184,"y":0.2799428143230277},{"x":0.2343566636319668,"y":0.2799428143230277}]}},"page":1},"text":"06/04/25"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2630173121368335,"width":0.0748436267898488,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.2630173121368335},{"x":0.7411029035603619,"y":0.2630173121368335},{"x":0.7411029035603619,"y":0.2725716090557501},{"x":0.6662592767705131,"y":0.27213498664312213}]}},"page":1},"text":"Account No."},{"location":{"bounding_box":{"left":0.8693232234628884,"top":0.26258924214302143,"width":0.06502980210671794,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.26258924214302143},{"x":0.9343530255696063,"y":0.26258924214302143},{"x":0.9343530255696063,"y":0.27213498664312213},{"x":0.8693232234628884,"y":0.27213498664312213}]}},"page":1},"text":"99-99-888"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.28298202555079005,"width":0.058277568463371315,"height":0.009554317330417395,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.28341864796341804},{"x":0.13803410130973706,"y":0.28298202555079005},{"x":0.13803410130973706,"y":0.29253634288120745},{"x":0.07975653284636575,"y":0.29253634288120745}]}},"page":1},"text":"Due Date"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.28298202555079005,"width":0.055821104616132794,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.2343566636319668,"y":0.29253634288120745}]}},"page":1},"text":"07/31/25"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.09202677088816151,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.1730054878482947,"y":0.30946184506740165},{"x":0.1730054878482947,"y":0.32030888397506957},{"x":0.08097871696013319,"y":0.32030888397506957}]}},"page":1},"text":"Payment Terms"},{"location":{"bounding_box":{"left":0.23497380710502905,"top":0.30946184506740165,"width":0.11471582376521969,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.30946184506740165},{"x":0.34968963087024874,"y":0.30946184506740165},{"x":0.34968963087024874,"y":0.3194442119801303},{"x":0.23497380710502905,"y":0.31900758956750236}]}},"page":1},"text":"End of Next Month"},{"location":{"bounding_box":{"left":0.666864331836525,"top":0.30338338178887536,"width":0.028231248514914653,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.3038200042015033},{"x":0.694478408027764,"y":0.30338338178887536},{"x":0.6950955803514397,"y":0.312501056295164},{"x":0.6674814464589738,"y":0.3120644542940368}]}},"page":1},"text":"ABN"},{"location":{"bounding_box":{"left":0.8521521461336659,"top":0.3029467593762474,"width":0.08097870974747978,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8521521461336659,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31292912628897607},{"x":0.8521521461336659,"y":0.31292912628897607}]}},"page":1},"text":"53001003000"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.3224834232078927,"width":0.1104321207382018,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.32291149320170476},{"x":0.19018865358456755,"y":0.3224834232078927},{"x":0.19018865358456755,"y":0.3337671049396893},{"x":0.07975653284636575,"y":0.3337671049396893}]}},"page":1},"text":"Shipment Method"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.3359330713421958,"width":0.12330739942070276,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.3359330713421958},{"x":0.2030639322670685,"y":0.3359330713421958},{"x":0.2030639322670685,"y":0.3476533754866204},{"x":0.07975653284636575,"y":0.34721673266249165}]}},"page":1},"text":"Prices Including VAT"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.3372343861612638,"width":0.020861835335238915,"height":0.008681072505161425,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.3372343861612638},{"x":0.2546013554941435,"y":0.3372343861612638},{"x":0.2552184989672057,"y":0.3459154586664252},{"x":0.2343566636319668,"y":0.3459154586664252}]}},"page":1},"text":"No"},{"location":{"bounding_box":{"left":0.5319038162091286,"top":0.38020306503994084,"width":0.04110652719741559,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.5319038162091286,"y":0.38020306503994084},{"x":0.5730103434065442,"y":0.38020306503994084},{"x":0.5730103434065442,"y":0.38975736195885746},{"x":0.5319038162091286,"y":0.38975736195885746}]}},"page":1},"text":"Direct"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.37977499504612877,"width":0.039267185185279274,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.38020306503994084},{"x":0.7165623986261569,"y":0.37977499504612877},{"x":0.7165623986261569,"y":0.38975736195885746},{"x":0.6772952134408776,"y":0.38975736195885746}]}},"page":1},"text":"Allow"},{"location":{"bounding_box":{"left":0.4386548828451598,"top":0.39235999159699336,"width":0.047229492897382874,"height":0.010418968913855908,"polygon":{"coordinates":[{"x":0.4386548828451598,"y":0.39235999159699336},{"x":0.4858843757425427,"y":0.3927965935981206},{"x":0.4858843757425427,"y":0.40277896051084927},{"x":0.4386548828451598,"y":0.40234235850972205}]}},"page":1},"text":"Unit of"},{"location":{"bounding_box":{"left":0.5441740975268446,"top":0.39235999159699336,"width":0.030675587891835998,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.5441740975268446,"y":0.3927965935981206},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.5748496854186806,"y":0.4019057156855933},{"x":0.5447790948916296,"y":0.4019057156855933}]}},"page":1},"text":"Unit"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.3927965935981206,"width":0.047241667856273706,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.3927965935981206},{"x":0.7245368812971513,"y":0.3927965935981206},{"x":0.7245368812971513,"y":0.40277896051084927},{"x":0.6772952134408776,"y":0.40234235850972205}]}},"page":1},"text":"Invoice"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.39235999159699336,"width":0.028231248514914764,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.3927965935981206},{"x":0.8012319096555733,"y":0.39235999159699336},{"x":0.8012319096555733,"y":0.4019057156855933},{"x":0.7730006611406586,"y":0.4019057156855933}]}},"page":1},"text":"VAT"},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.4053815493259837,"width":0.023923325397875922,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.4058181921501124},{"x":0.10551918583107135,"y":0.4053815493259837},{"x":0.10551918583107135,"y":0.4149273142375851},{"x":0.08159586043319543,"y":0.4149273142375851}]}},"page":1},"text":"No."},{"location":{"bounding_box":{"left":0.1754619589081866,"top":0.4049449473248565,"width":0.07422645446617307,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.1754619589081866,"y":0.4049449473248565},{"x":0.24968841337435968,"y":0.4049449473248565},{"x":0.24968841337435968,"y":0.4166652310577803},{"x":0.1754619589081866,"y":0.415800559062841}]}},"page":1},"text":"Description"},{"location":{"bounding_box":{"left":0.35521968761248135,"top":0.4049449473248565,"width":0.058894719149086894,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.35521968761248135,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.4166652310577803},{"x":0.35521968761248135,"y":0.4162286290566531}]}},"page":1},"text":"Quantity"},{"location":{"bounding_box":{"left":0.43925993791117174,"top":0.4053815493259837,"width":0.0558332074484898,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.4053815493259837},{"x":0.49509314535966154,"y":0.4058181921501124},{"x":0.49509314535966154,"y":0.4149273142375851},{"x":0.43925993791117174,"y":0.4149273142375851}]}},"page":1},"text":"Measure"},{"location":{"bounding_box":{"left":0.5423347555147082,"top":0.4053815493259837,"width":0.03557644160456952,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.5423347555147082,"y":0.4053815493259837},{"x":0.5779111971192777,"y":0.4053815493259837},{"x":0.5779111971192777,"y":0.4144992442437731},{"x":0.5429398105807202,"y":0.4144992442437731}]}},"page":1},"text":"Cost"},{"location":{"bounding_box":{"left":0.5895642484120911,"top":0.4049449473248565,"width":0.07546074141229753,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5895642484120911,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4149273142375851},{"x":0.5895642484120911,"y":0.4149273142375851}]}},"page":1},"text":"Discount %"},{"location":{"bounding_box":{"left":0.6779123857645534,"top":0.4053815493259837,"width":0.0582775468254112,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.6779123857645534,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4149273142375851},{"x":0.6779123857645534,"y":0.4144992442437731}]}},"page":1},"text":"Discount"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.4049449473248565,"width":0.06074612071766017,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4153639162387123},{"x":0.7730006611406586,"y":0.4149273142375851}]}},"page":1},"text":"Identifier"},{"location":{"bounding_box":{"left":0.8797541050672409,"top":0.4053815493259837,"width":0.05521609282604112,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.8797541050672409,"y":0.4053815493259837},{"x":0.9349701978932821,"y":0.4053815493259837},{"x":0.9349701978932821,"y":0.4153639162387123},{"x":0.8797541050672409,"y":0.4149273142375851}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.17607910238124885,"top":0.4296868296097721,"width":0.06379554401120696,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4296868296097721},{"x":0.23987464639245581,"y":0.43012343161089933},{"x":0.23987464639245581,"y":0.4409705113415687},{"x":0.17607910238124885,"y":0.44010579852362797}]}},"page":1},"text":"IT Support"},{"location":{"bounding_box":{"left":0.4092014646417844,"top":0.4296868296097721,"width":0.014726709101687718,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.4092014646417844,"y":0.43012343161089933},{"x":0.4233110302704099,"y":0.4296868296097721},{"x":0.42392817374347214,"y":0.43923255369837205},{"x":0.40981860811484666,"y":0.4388045245275615}]}},"page":1},"text":"10"},{"location":{"bounding_box":{"left":0.5312867015866799,"top":0.4296868296097721,"width":0.04232869688587626,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5312867015866799,"y":0.4296868296097721},{"x":0.5736153984725562,"y":0.4296868296097721},{"x":0.5736153984725562,"y":0.44010579852362797},{"x":0.5312867015866799,"y":0.4396691965225008}]}},"page":1},"text":"200.00"},{"location":{"bounding_box":{"left":0.6779123857645534,"top":0.43055150160471134,"width":0.019627533963807675,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.6779123857645534,"y":0.43055150160471134},{"x":0.6969348646623491,"y":0.43055150160471134},{"x":0.697539919728361,"y":0.43923255369837205},{"x":0.6779123857645534,"y":0.4388045245275615}]}},"page":1},"text":"No"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.4292501867856434,"width":0.06196834810734786,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4292501867856434},{"x":0.8349690092480064,"y":0.4292501867856434},{"x":0.8343518369243307,"y":0.44010579852362797},{"x":0.7730006611406586,"y":0.4396691965225008}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.882815616767838,"top":0.4292501867856434,"width":0.050920294179319536,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.882815616767838,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.44010579852362797},{"x":0.882815616767838,"y":0.44010579852362797}]}},"page":1},"text":"2,000.00"},{"location":{"bounding_box":{"left":0.17422767196206213,"top":0.44313645733257445,"width":0.1613523932795612,"height":0.011720324555925365,"polygon":{"coordinates":[{"x":0.17422767196206213,"y":0.44313645733257445},{"x":0.3355800652416233,"y":0.44313645733257445},{"x":0.3355800652416233,"y":0.45442871189468775},{"x":0.17422767196206213,"y":0.4548567818884998}]}},"page":1},"text":"Support period: December"},{"location":{"bounding_box":{"left":0.7680998074279252,"top":0.47048096925562605,"width":0.06809137150854194,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7680998074279252,"y":0.47048096925562605},{"x":0.8361911789364671,"y":0.47048096925562605},{"x":0.8361911789364671,"y":0.48046333616835474},{"x":0.7680998074279252,"y":0.48046333616835474}]}},"page":1},"text":"Total AUD"},{"location":{"bounding_box":{"left":0.8772976484326558,"top":0.470052899261814,"width":0.057055377136950525,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8772976484326558,"y":0.47048096925562605},{"x":0.9343530255696063,"y":0.470052899261814},{"x":0.9343530255696063,"y":0.48046333616835474},{"x":0.8772976484326558,"y":0.4808999381694819}]}},"page":1},"text":"2,000.00"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5295104579140573,"width":0.1693268398872887,"height":0.012584955727863112,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5295104579140573},{"x":0.2503055568474219,"y":0.5295104579140573},{"x":0.2503055568474219,"y":0.5420954136419204},{"x":0.08097871696013319,"y":0.5420954136419204}]}},"page":1},"text":"VAT Amount Specification"},{"location":{"bounding_box":{"left":0.4496908483661378,"top":0.5433967284609884,"width":0.09386607683703108,"height":0.010419009736857276,"polygon":{"coordinates":[{"x":0.4496908483661378,"y":0.5433967284609884},{"x":0.5435569252031689,"y":0.5433967284609884},{"x":0.5435569252031689,"y":0.5538157381978457},{"x":0.4496908483661378,"y":0.553379095373717}]}},"page":1},"text":"Inv. Disc. Base"},{"location":{"bounding_box":{"left":0.5662580881252375,"top":0.5433967284609884,"width":0.10797567131627006,"height":0.010419009736857276,"polygon":{"coordinates":[{"x":0.5662580881252375,"y":0.5433967284609884},{"x":0.6742337594415075,"y":0.5433967284609884},{"x":0.6742337594415075,"y":0.5538157381978457},{"x":0.5662580881252375,"y":0.5538157381978457}]}},"page":1},"text":"Invoice Discount"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5555536550180409,"width":0.09140962741509927,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5555536550180409},{"x":0.17238834437523246,"y":0.5555536550180409},{"x":0.17238834437523246,"y":0.5664006939257088},{"x":0.08097871696013319,"y":0.5664006939257088}]}},"page":1},"text":"VAT Identifier"},{"location":{"bounding_box":{"left":0.2441704450391774,"top":0.5555536550180409,"width":0.04356295498138735,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.2441704450391774,"y":0.5555536550180409},{"x":0.28773340002056474,"y":0.5559902570191682},{"x":0.28773340002056474,"y":0.5659726239318967},{"x":0.2441704450391774,"y":0.5659726239318967}]}},"page":1},"text":"VAT %"},{"location":{"bounding_box":{"left":0.3337407232294869,"top":0.5559902570191682,"width":0.08343519523267845,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.3337407232294869,"y":0.5559902570191682},{"x":0.41717591846216534,"y":0.5559902570191682},{"x":0.41717591846216534,"y":0.5664006939257088},{"x":0.3337407232294869,"y":0.5655360219307696}]}},"page":1},"text":"Line Amount"},{"location":{"bounding_box":{"left":0.49141446133538874,"top":0.5564183270129802,"width":0.05398180587991658,"height":0.009554296918916516,"polygon":{"coordinates":[{"x":0.49141446133538874,"y":0.5564183270129802},{"x":0.5453962672153053,"y":0.5564183270129802},{"x":0.5453962672153053,"y":0.5659726239318967},{"x":0.49141446133538874,"y":0.5655360219307696}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.623313465262188,"top":0.5559902570191682,"width":0.053981748178689615,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.623313465262188,"y":0.5564183270129802},{"x":0.6772952134408776,"y":0.5559902570191682},{"x":0.6772952134408776,"y":0.5659726239318967},{"x":0.623313465262188,"y":0.5664006939257088}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.7404857312366862,"top":0.5559902570191682,"width":0.06196834810734786,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.7404857312366862,"y":0.5559902570191682},{"x":0.802454079344034,"y":0.5559902570191682},{"x":0.8018369070203583,"y":0.5664006939257088},{"x":0.7404857312366862,"y":0.5659726239318967}]}},"page":1},"text":"VAT Base"},{"location":{"bounding_box":{"left":0.8521521461336659,"top":0.5559902570191682,"width":0.08465739377175263,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.8521521461336659,"y":0.5559902570191682},{"x":0.9368095399054185,"y":0.5559902570191682},{"x":0.9368095399054185,"y":0.5664006939257088},{"x":0.8521521461336659,"y":0.5659726239318967}]}},"page":1},"text":"VAT Amount"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5798588944788279,"width":0.06012899888255803,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5798588944788279},{"x":0.14110771584269122,"y":0.5798588944788279},{"x":0.14110771584269122,"y":0.5902779042156853},{"x":0.08097871696013319,"y":0.5902779042156853}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.008579508886392861,"height":0.008681092916662192,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.28773340002056474,"y":0.5807235664737671},{"x":0.28833845508657663,"y":0.5889765893966172},{"x":0.27975894620018377,"y":0.5894046593904293}]}},"page":1},"text":"0"},{"location":{"bounding_box":{"left":0.3656385096603971,"top":0.5802955373029566,"width":0.05031523911330754,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.3656385096603971,"y":0.5802955373029566},{"x":0.41595374877370467,"y":0.5802955373029566},{"x":0.41595374877370467,"y":0.5902779042156853},{"x":0.3656385096603971,"y":0.5902779042156853}]}},"page":1},"text":"2,000.00"},{"location":{"bounding_box":{"left":0.5190164779701909,"top":0.5807235664737671,"width":0.0276140761912389,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.5190164779701909,"y":0.5807235664737671},{"x":0.546013381837754,"y":0.5807235664737671},{"x":0.5466305541614298,"y":0.5902779042156853},{"x":0.5196335925926396,"y":0.5898412613915565}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.6503104268309782,"top":0.5802955373029566,"width":0.0276019589335752,"height":0.009545724088599883,"polygon":{"coordinates":[{"x":0.6503104268309782,"y":0.5802955373029566},{"x":0.6779123857645534,"y":0.5807235664737671},{"x":0.6779123857645534,"y":0.5898412613915565},{"x":0.6509154241957632,"y":0.5898412613915565}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.7503116154762538,"top":0.5802955373029566,"width":0.05214246386778021,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.7503116154762538,"y":0.5802955373029566},{"x":0.802454079344034,"y":0.5802955373029566},{"x":0.802454079344034,"y":0.5907059333864958},{"x":0.7503116154762538,"y":0.5907059333864958}]}},"page":1},"text":"2,000.00"},{"location":{"bounding_box":{"left":0.9098125783366283,"top":0.5802955373029566,"width":0.026379789245114416,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.9098125783366283,"y":0.5807235664737671},{"x":0.9361923675817427,"y":0.5802955373029566},{"x":0.9361923675817427,"y":0.5902779042156853},{"x":0.9098125783366283,"y":0.5894046593904293}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.2527620134820071,"top":0.6076400084030066,"width":0.034971386538557636,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.2527620134820071,"y":0.6076400084030066},{"x":0.28773340002056474,"y":0.6076400084030066},{"x":0.28773340002056474,"y":0.6171857324916066},{"x":0.2527620134820071,"y":0.6167491304904794}]}},"page":1},"text":"Total"},{"location":{"bounding_box":{"left":0.3607376847982771,"top":0.6072034064018794,"width":0.055821090190825984,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.3607376847982771,"y":0.6076400084030066},{"x":0.4165587749891031,"y":0.6072034064018794},{"x":0.4165587749891031,"y":0.6176223753157353},{"x":0.3607376847982771,"y":0.6176223753157353}]}},"page":1},"text":"2,000.00"},{"location":{"bounding_box":{"left":0.5171771359580545,"top":0.6076400084030066,"width":0.027601958933575088,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.5171771359580545,"y":0.6076400084030066},{"x":0.5447790948916296,"y":0.6076400084030066},{"x":0.5447790948916296,"y":0.6171857324916066},{"x":0.5171771359580545,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.6478539124951661,"top":0.6076400084030066,"width":0.029441300945711513,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.6478539124951661,"y":0.6080680783968186},{"x":0.6772952134408776,"y":0.6076400084030066},{"x":0.6772952134408776,"y":0.6171857324916066},{"x":0.6484710848188419,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.7460158168295322,"top":0.6067667635777507,"width":0.05643826251450179,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.7460158168295322,"y":0.6072034064018794},{"x":0.802454079344034,"y":0.6067667635777507},{"x":0.802454079344034,"y":0.6176223753157353},{"x":0.7460158168295322,"y":0.6180504453095473}]}},"page":1},"text":"2,000.00"},{"location":{"bounding_box":{"left":0.9067510666360311,"top":0.6076400084030066,"width":0.030058473269387376,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9067510666360311,"y":0.6076400084030066},{"x":0.9361923675817427,"y":0.6076400084030066},{"x":0.9368095399054185,"y":0.6171857324916066},{"x":0.9067510666360311,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.6506087076931845,"width":0.10307482481618986,"height":0.011283640908795078,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.6506087076931845},{"x":0.18405354177632305,"y":0.6506087076931845},{"x":0.18405354177632305,"y":0.6618923486019795},{"x":0.08097871696013319,"y":0.6618923486019795}]}},"page":1},"text":"Ship-to Address"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.6640583354159868,"width":0.16073524259384558,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.6640583354159868},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.08097871696013319,"y":0.6749139471539713}]}},"page":1},"text":"CRONUS International Ltd."},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6783812487870465,"width":0.06380763963091064,"height":0.011283681731796724,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6783812487870465},{"x":0.14540350006410607,"y":0.6788178507881738},{"x":0.14540350006410607,"y":0.6896649305188433},{"x":0.08159586043319543,"y":0.6892368605250312}]}},"page":1},"text":"5 The Ring"},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6927041213351048,"width":0.0766829183134116,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6927041213351048},{"x":0.15827877874660704,"y":0.6927041213351048},{"x":0.15827877874660704,"y":0.7026864882478335},{"x":0.08159586043319543,"y":0.7022584182540215}]}},"page":1},"text":"Westminster"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.7052891178859695,"width":0.1349604939894363,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.7157081276228269},{"x":0.08097871696013319,"y":0.7052891178859695},{"x":0.2153341703088643,"y":0.7052891178859695},{"x":0.2153341703088643,"y":0.7157081276228269}]}},"page":1},"text":"CANBERRA NSW 2600"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.720048592435155,"width":0.053376729175944534,"height":0.009545805734602952,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.720048592435155},{"x":0.13373831708832223,"y":0.720048592435155},{"x":0.13435544613607772,"y":0.7295943981697579},{"x":0.08097871696013319,"y":0.7295943981697579}]}},"page":1},"text":"Australia"}],"page_read_results":[{"page":1,"elements":[{"id":"0","text":"Purchase","bounding_box":{"left":0.7245368812971513,"top":0.03992945489372671,"width":0.10000118864527552,"height":0.017362122047384562,"polygon":{"coordinates":[{"x":0.7245368812971513,"y":0.03992945489372671},{"x":0.8239209553199781,"y":0.040366077306354664},{"x":0.8245380699424268,"y":0.05685495452848331},{"x":0.7251539959196001,"y":0.05729157694111127}]}}},{"id":"1","text":"-","bounding_box":{"left":0.8288338685891484,"top":0.040366077306354664,"width":0.011048053928028323,"height":0.016488877222128648,"polygon":{"coordinates":[{"x":0.8288338685891484,"y":0.040366077306354664},{"x":0.8392647501935011,"y":0.040366077306354664},{"x":0.8398819225171767,"y":0.05685495452848331},{"x":0.8288338685891484,"y":0.05685495452848331}]}}},{"id":"2","text":"Invoice","bounding_box":{"left":0.8441656039062346,"top":0.040366077306354664,"width":0.08159588207115553,"height":0.016488877222128648,"polygon":{"coordinates":[{"x":0.8441656039062346,"y":0.040366077306354664},{"x":0.9251564309113782,"y":0.040802697167545025},{"x":0.9257614859773902,"y":0.05685495452848331},{"x":0.8447827762299103,"y":0.05685495452848331}]}}},{"id":"3","text":"First","bounding_box":{"left":0.08097871696013319,"top":0.06119548567818885,"width":0.024540468870938165,"height":0.011283666423171072,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.06119548567818885},{"x":0.10551918583107135,"y":0.06163210809081681},{"x":0.10551918583107135,"y":0.07205109231329825},{"x":0.08097871696013319,"y":0.07247915210135993}]}}},{"id":"4","text":"Up","bounding_box":{"left":0.10859280036402551,"top":0.06163210809081681,"width":0.017788206376978047,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.10859280036402551,"y":0.06163210809081681},{"x":0.12638100674100355,"y":0.06163210809081681},{"x":0.12638100674100355,"y":0.07247915210135993},{"x":0.10859280036402551,"y":0.07205109231329825}]}}},{"id":"5","text":"Consultants","bounding_box":{"left":0.13067680538772514,"top":0.06163210809081681,"width":0.06932561517874627,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.13067680538772514,"y":0.06163210809081681},{"x":0.2000024205664714,"y":0.06163210809081681},{"x":0.2000024205664714,"y":0.07247915210135993},{"x":0.13067680538772514,"y":0.07247915210135993}]}}},{"id":"6","text":"Page","bounding_box":{"left":0.8914072140612812,"top":0.06163210809081681,"width":0.03067558789183611,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.8914072140612812,"y":0.06163210809081681},{"x":0.9220828019531173,"y":0.06163210809081681},{"x":0.9220828019531173,"y":0.07247915210135993},{"x":0.8914072140612812,"y":0.07247915210135993}]}}},{"id":"7","text":"1","bounding_box":{"left":0.9263786005998389,"top":0.06163210809081681,"width":0.005517968335182255,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.9263786005998389,"y":0.06163210809081681},{"x":0.9312915715702362,"y":0.06163210809081681},{"x":0.9318965689350212,"y":0.07247915210135993},{"x":0.9263786005998389,"y":0.07247915210135993}]}}},{"id":"8","text":"Evan","bounding_box":{"left":0.08037367631942799,"top":0.07551837863774787,"width":0.026984837098473033,"height":0.009982366912728677,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.07551837863774787},{"x":0.10675347277719582,"y":0.07551837863774787},{"x":0.10735851341790102,"y":0.08550074555047654},{"x":0.08097871696013319,"y":0.08550074555047654}]}}},{"id":"9","text":"McIntosh","bounding_box":{"left":0.11165430485196923,"top":0.07551837863774787,"width":0.05459892771501873,"height":0.009982366912728677,"polygon":{"coordinates":[{"x":0.11165430485196923,"y":0.07551837863774787},{"x":0.16625323256698796,"y":0.07595500105037582},{"x":0.16625323256698796,"y":0.08550074555047654},{"x":0.11165430485196923,"y":0.08550074555047654}]}}},{"id":"10","text":"Allan","bounding_box":{"left":0.08097871696013319,"top":0.0885399669839893,"width":0.029453403778068613,"height":0.011283671526046257,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.0885399669839893},{"x":0.1104321207382018,"y":0.0885399669839893},{"x":0.1104321207382018,"y":0.09982363851003556},{"x":0.08097871696013319,"y":0.09982363851003556}]}}},{"id":"11","text":"Turing","bounding_box":{"left":0.11411077591186114,"top":0.0885399669839893,"width":0.03803289102650137,"height":0.011283671526046257,"polygon":{"coordinates":[{"x":0.11411077591186114,"y":0.0885399669839893},{"x":0.1521436669383625,"y":0.0885399669839893},{"x":0.1521436669383625,"y":0.09982363851003556},{"x":0.11411077591186114,"y":0.09982363851003556}]}}},{"id":"12","text":"Road,","bounding_box":{"left":0.1552172670460099,"top":0.08810334457136135,"width":0.03557642717926285,"height":0.011720293938674214,"polygon":{"coordinates":[{"x":0.1552172670460099,"y":0.0885399669839893},{"x":0.19079369422527276,"y":0.08810334457136135},{"x":0.19079369422527276,"y":0.09982363851003556},{"x":0.1552172670460099,"y":0.09982363851003556}]}}},{"id":"13","text":"20","bounding_box":{"left":0.1944723493989321,"top":0.08810334457136135,"width":0.014726709101687663,"height":0.011720293938674214,"polygon":{"coordinates":[{"x":0.1944723493989321,"y":0.08810334457136135},{"x":0.20919905850061976,"y":0.08810334457136135},{"x":0.20919905850061976,"y":0.09982363851003556},{"x":0.1944723493989321,"y":0.09982363851003556}]}}},{"id":"14","text":"Surrey","bounding_box":{"left":0.08097871696013319,"top":0.10242624773667074,"width":0.03742785038579617,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.11240860444364903},{"x":0.08159586043319543,"y":0.10242624773667074},{"x":0.11840656734592936,"y":0.1028628701492987},{"x":0.11778942387286712,"y":0.11284522685627699}]}}},{"id":"15","text":"5","bounding_box":{"left":0.9251564309113782,"top":0.09418180784988762,"width":0.00735731034731868,"height":0.009117674506288656,"polygon":{"coordinates":[{"x":0.9251564309113782,"y":0.1028628701492987},{"x":0.9257614859773902,"y":0.09418180784988762},{"x":0.9325137412586969,"y":0.09418180784988762},{"x":0.9318965689350212,"y":0.10329948235617628}]}}},{"id":"16","text":"ALBERTON","bounding_box":{"left":0.08037367631942799,"top":0.11588445849554013,"width":0.061956223637030655,"height":0.010418979119606236,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.11588445849554013},{"x":0.14232989995645864,"y":0.11632108090816809},{"x":0.14232989995645864,"y":0.12630343761514637},{"x":0.08037367631942799,"y":0.12630343761514637}]}}},{"id":"17","text":"QLD","bounding_box":{"left":0.1496871958784706,"top":0.11632108090816809,"width":0.0233182919698241,"height":0.00998235670697828,"polygon":{"coordinates":[{"x":0.1496871958784706,"y":0.11632108090816809},{"x":0.1730054878482947,"y":0.11632108090816809},{"x":0.1730054878482947,"y":0.12630343761514637},{"x":0.1496871958784706,"y":0.12630343761514637}]}}},{"id":"18","text":"4207","bounding_box":{"left":0.17914059965653922,"top":0.11588445849554013,"width":0.0294534037780686,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.17914059965653922,"y":0.11632108090816809},{"x":0.20859400343460782,"y":0.11588445849554013},{"x":0.20859400343460782,"y":0.12673149740320805},{"x":0.17914059965653922,"y":0.12630343761514637}]}}},{"id":"19","text":"5","bounding_box":{"left":0.8693232234628884,"top":0.10850470080944664,"width":0.007974424969767413,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.10850470080944664},{"x":0.8772976484326558,"y":0.10850470080944664},{"x":0.8772976484326558,"y":0.1189236799290529},{"x":0.8693232234628884,"y":0.1189236799290529}]}}},{"id":"20","text":"The","bounding_box":{"left":0.8803712773909167,"top":0.10850470080944664,"width":0.0214668759759441,"height":0.010855601532234208,"polygon":{"coordinates":[{"x":0.8803712773909167,"y":0.10850470080944664},{"x":0.9018381533668608,"y":0.10850470080944664},{"x":0.9018381533668608,"y":0.11936030234168085},{"x":0.8803712773909167,"y":0.1189236799290529}]}}},{"id":"21","text":"Ring","bounding_box":{"left":0.9049117246238948,"top":0.10850470080944664,"width":0.027602016634802107,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.9049117246238948,"y":0.10850470080944664},{"x":0.9325137412586969,"y":0.1089413232220746},{"x":0.9325137412586969,"y":0.11978836212974252},{"x":0.9049117246238948,"y":0.11936030234168085}]}}},{"id":"22","text":"Australia","bounding_box":{"left":0.08097871696013319,"top":0.1306439738677271,"width":0.05215455948748386,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.1310720336557888},{"x":0.13313327644761705,"y":0.1306439738677271},{"x":0.13313327644761705,"y":0.14018971836782781},{"x":0.08159586043319543,"y":0.14018971836782781}]}}},{"id":"23","text":"Westminster","bounding_box":{"left":0.8570529998463994,"top":0.12282759376900566,"width":0.07607785603474626,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.8570529998463994,"y":0.12282759376900566},{"x":0.9331308558811456,"y":0.12326421618163362},{"x":0.9331308558811456,"y":0.1332465728886119},{"x":0.8576701144688481,"y":0.13280996068173434}]}}},{"id":"24","text":"CANBERRA","bounding_box":{"left":0.7999976227094489,"top":0.13672242694050302,"width":0.06502980210671794,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.7999976227094489,"y":0.13672242694050302},{"x":0.8650274248161668,"y":0.13715048672856467},{"x":0.8650274248161668,"y":0.14670479385323168},{"x":0.7999976227094489,"y":0.14670479385323168}]}}},{"id":"25","text":"NSW","bounding_box":{"left":0.8693232234628884,"top":0.13672242694050302,"width":0.025157619556653743,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.13715048672856467},{"x":0.8944808430195421,"y":0.13672242694050302},{"x":0.8944808430195421,"y":0.14670479385323168},{"x":0.8693232234628884,"y":0.14670479385323168}]}}},{"id":"26","text":"2600","bounding_box":{"left":0.904294610001446,"top":0.13672242694050302,"width":0.0276019589335752,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.904294610001446,"y":0.13672242694050302},{"x":0.9318965689350212,"y":0.13672242694050302},{"x":0.9318965689350212,"y":0.14756947605392132},{"x":0.904294610001446,"y":0.14713285364129336}]}}},{"id":"27","text":"Australia","bounding_box":{"left":0.8809763324569286,"top":0.1514733796881237,"width":0.05153740880176827,"height":0.00955430712466701,"polygon":{"coordinates":[{"x":0.8809763324569286,"y":0.15191000210075165},{"x":0.9325137412586969,"y":0.1514733796881237},{"x":0.9325137412586969,"y":0.1610276868127907},{"x":0.8809763324569286,"y":0.1610276868127907}]}}},{"id":"28","text":"Pay-to","bounding_box":{"left":0.08037367631942799,"top":0.18663425129839598,"width":0.03987221861333104,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.18663425129839598},{"x":0.12024589493275903,"y":0.18663425129839598},{"x":0.12024589493275903,"y":0.1974812902060639},{"x":0.08037367631942799,"y":0.1974812902060639}]}}},{"id":"29","text":"Vendor","bounding_box":{"left":0.12330740663335614,"top":0.18619762888576802,"width":0.04294582593363182,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.12330740663335614,"y":0.18663425129839598},{"x":0.16625323256698796,"y":0.18619762888576802},{"x":0.16625323256698796,"y":0.1974812902060639},{"x":0.12330740663335614,"y":0.1974812902060639}]}}},{"id":"30","text":"No.","bounding_box":{"left":0.16932683267463536,"top":0.18619762888576802,"width":0.022701148496761858,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.16932683267463536,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18663425129839598},{"x":0.19202798117139722,"y":0.1974812902060639},{"x":0.16932683267463536,"y":0.1974812902060639}]}}},{"id":"31","text":"20000","bounding_box":{"left":0.23619599121879647,"top":0.18619762888576802,"width":0.03619355622701831,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.19617999579849668},{"x":0.23619599121879647,"y":0.19617999579849668}]}}},{"id":"32","text":"Phone","bounding_box":{"left":0.666864331836525,"top":0.18011916560724173,"width":0.03804501549681849,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.18011916560724173},{"x":0.7049093473333435,"y":0.18011916560724173},{"x":0.7049093473333435,"y":0.19010153251997042},{"x":0.6674814464589738,"y":0.18967348293765912}]}}},{"id":"33","text":"No.","bounding_box":{"left":0.7079708013327137,"top":0.18011916560724173,"width":0.02208404829961985,"height":0.010418989325356648,"polygon":{"coordinates":[{"x":0.7079708013327137,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19053815493259837},{"x":0.7079708013327137,"y":0.19010153251997042}]}}},{"id":"34","text":"0666-666-6666","bounding_box":{"left":0.8423262618940982,"top":0.17969111602493043,"width":0.0901874793645987,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8423262618940982,"y":0.18011916560724173},{"x":0.9325137412586969,"y":0.17969111602493043},{"x":0.9325137412586969,"y":0.18967348293765912},{"x":0.8423262618940982,"y":0.18967348293765912}]}}},{"id":"35","text":"VAT","bounding_box":{"left":0.08097871696013319,"top":0.20052052184532704,"width":0.023318284757170724,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.20052052184532704},{"x":0.10429700171730391,"y":0.20052052184532704},{"x":0.10429700171730391,"y":0.21136756075299495},{"x":0.08097871696013319,"y":0.21093951117068366}]}}},{"id":"36","text":"Registration","bounding_box":{"left":0.10735851341790102,"top":0.20008389943269908,"width":0.07239922971170044,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.10735851341790102,"y":0.20052052184532704},{"x":0.17975774312960147,"y":0.20008389943269908},{"x":0.17914059965653922,"y":0.2118041831656229},{"x":0.10735851341790102,"y":0.21136756075299495}]}}},{"id":"37","text":"No.","bounding_box":{"left":0.18221421418949338,"top":0.20008389943269908,"width":0.023306189137467043,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.18221421418949338,"y":0.2118041831656229},{"x":0.18281925483019856,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.20008389943269908},{"x":0.20490325985389818,"y":0.2118041831656229}]}}},{"id":"38","text":"274863274B01","bounding_box":{"left":0.23619599121879647,"top":0.20052052184532704,"width":0.08650879534032585,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.20052052184532704},{"x":0.32208764308606014,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.21093951117068366},{"x":0.23619599121879647,"y":0.2105028887580557}]}}},{"id":"39","text":"Home","bounding_box":{"left":0.666864331836525,"top":0.19270414174660558,"width":0.036810728550694005,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.20355975348459018},{"x":0.666864331836525,"y":0.20355975348459018}]}}},{"id":"40","text":"Page","bounding_box":{"left":0.7067486316442531,"top":0.19270414174660558,"width":0.03129276021551175,"height":0.011292234150612562,"polygon":{"coordinates":[{"x":0.7067486316442531,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.20399637589721814},{"x":0.7067486316442531,"y":0.20355975348459018}]}}},{"id":"41","text":"Email","bounding_box":{"left":0.666864331836525,"top":0.2057257402985974,"width":0.033132044526421156,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2157080867998253},{"x":0.666864331836525,"y":0.2157080867998253}]}}},{"id":"42","text":"Document","bounding_box":{"left":0.08037367631942799,"top":0.22872968535181712,"width":0.06317840775079811,"height":0.010855611737984577,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.22872968535181712},{"x":0.1435520840702261,"y":0.22916630776444508},{"x":0.1435520840702261,"y":0.2395852970898017},{"x":0.08037367631942799,"y":0.2395852970898017}]}}},{"id":"43","text":"Date","bounding_box":{"left":0.1466256841778735,"top":0.22916630776444508,"width":0.027601987784188625,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.1466256841778735,"y":0.22916630776444508},{"x":0.17422767196206213,"y":0.22916630776444508},{"x":0.17422767196206213,"y":0.2395852970898017},{"x":0.1466256841778735,"y":0.2395852970898017}]}}},{"id":"44","text":"VAT","bounding_box":{"left":0.6674814464589738,"top":0.2200486332581564,"width":0.02454050493420501,"height":0.010855591326483838,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.2200486332581564},{"x":0.691404779069503,"y":0.2200486332581564},{"x":0.6920219513931788,"y":0.23090422458464024},{"x":0.6674814464589738,"y":0.23090422458464024}]}}},{"id":"45","text":"Registration","bounding_box":{"left":0.694478408027764,"top":0.2200486332581564,"width":0.07238711245403673,"height":0.010855591326483838,"polygon":{"coordinates":[{"x":0.694478408027764,"y":0.2200486332581564},{"x":0.7668655204818007,"y":0.2200486332581564},{"x":0.7668655204818007,"y":0.23090422458464024},{"x":0.6950955803514397,"y":0.23090422458464024}]}}},{"id":"46","text":"No.","bounding_box":{"left":0.7699391494400615,"top":0.21962056326434437,"width":0.02146687597594421,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.7699391494400615,"y":0.2200486332581564},{"x":0.7914060254160057,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.23090422458464024},{"x":0.7699391494400615,"y":0.23090422458464024}]}}},{"id":"47","text":"777777777","bounding_box":{"left":0.8687060511392126,"top":0.2200486332581564,"width":0.06442480474193302,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8687060511392126,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22048525567078436},{"x":0.9331308558811456,"y":0.22960293017707303},{"x":0.8687060511392126,"y":0.22916630776444508}]}}},{"id":"48","text":"June","bounding_box":{"left":0.23373952015890456,"top":0.22916630776444508,"width":0.028836260305006384,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23373952015890456,"y":0.22960293017707303},{"x":0.26257578046391095,"y":0.22916630776444508},{"x":0.26257578046391095,"y":0.2395852970898017},{"x":0.2343566636319668,"y":0.2395852970898017}]}}},{"id":"49","text":"4,","bounding_box":{"left":0.2662544356375703,"top":0.22916630776444508,"width":0.011665197401090566,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.2662544356375703,"y":0.22916630776444508},{"x":0.2773024895655986,"y":0.22960293017707303},{"x":0.27791963303866085,"y":0.2395852970898017},{"x":0.2662544356375703,"y":0.2395852970898017}]}}},{"id":"50","text":"2025","bounding_box":{"left":0.2803640012661957,"top":0.22960293017707303,"width":0.02945341820337538,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.2803640012661957,"y":0.22960293017707303},{"x":0.3098174194695711,"y":0.22960293017707303},{"x":0.3098174194695711,"y":0.2395852970898017},{"x":0.2803640012661957,"y":0.2395852970898017}]}}},{"id":"51","text":"Invoice","bounding_box":{"left":0.08037367631942799,"top":0.24262452872906484,"width":0.04232868967322295,"height":0.009982346501227896,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.24262452872906484},{"x":0.12270236599265094,"y":0.24262452872906484},{"x":0.12270236599265094,"y":0.25260687523029274},{"x":0.08037367631942799,"y":0.25260687523029274}]}}},{"id":"52","text":"No.","bounding_box":{"left":0.12638100674100355,"top":0.24262452872906484,"width":0.022084005023699615,"height":0.009982346501227896,"polygon":{"coordinates":[{"x":0.12638100674100355,"y":0.24262452872906484},{"x":0.14846501176470317,"y":0.24305257831137614},{"x":0.14846501176470317,"y":0.25260687523029274},{"x":0.12638100674100355,"y":0.25260687523029274}]}}},{"id":"53","text":"108216","bounding_box":{"left":0.23619599121879647,"top":0.24218790631643689,"width":0.04416801004739923,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.24218790631643689},{"x":0.2803640012661957,"y":0.2521702528176648},{"x":0.23681313469185872,"y":0.2521702528176648}]}}},{"id":"54","text":"Giro","bounding_box":{"left":0.666864331836525,"top":0.23437152621771543,"width":0.02454044723297799,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.23480814863034338},{"x":0.691404779069503,"y":0.23437152621771543},{"x":0.691404779069503,"y":0.24435387271894335},{"x":0.6674814464589738,"y":0.24435387271894335}]}}},{"id":"55","text":"No.","bounding_box":{"left":0.6957005777162246,"top":0.23437152621771543,"width":0.022701162922068696,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.6957005777162246,"y":0.23437152621771543},{"x":0.7184017406382933,"y":0.23437152621771543},{"x":0.7184017406382933,"y":0.24392582313663205},{"x":0.6957005777162246,"y":0.24435387271894335}]}}},{"id":"56","text":"888-9999","bounding_box":{"left":0.8779148207563315,"top":0.23437152621771543,"width":0.0552160351248141,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8779148207563315,"y":0.23480814863034338},{"x":0.9325137412586969,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.24392582313663205},{"x":0.8779148207563315,"y":0.2434892007240041}]}}},{"id":"57","text":"Bank","bounding_box":{"left":0.6674814464589738,"top":0.24869441917727445,"width":0.02821913125725084,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.2578120936835631},{"x":0.6674814464589738,"y":0.2578120936835631}]}}},{"id":"58","text":"World","bounding_box":{"left":0.8294509832115972,"top":0.2482663491834624,"width":0.03557644160456963,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.8294509832115972,"y":0.2482663491834624},{"x":0.8650274248161668,"y":0.24869441917727445},{"x":0.8650274248161668,"y":0.2582487160961911},{"x":0.8294509832115972,"y":0.2586767860900031}]}}},{"id":"59","text":"Wide","bounding_box":{"left":0.8693232234628884,"top":0.24869441917727445,"width":0.03189775758029667,"height":0.009554296918916655,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.24869441917727445},{"x":0.9006159259771732,"y":0.24869441917727445},{"x":0.901220981043185,"y":0.2582487160961911},{"x":0.8699403380853371,"y":0.2582487160961911}]}}},{"id":"60","text":"Bank","bounding_box":{"left":0.904294610001446,"top":0.24869441917727445,"width":0.028836245879699685,"height":0.009554296918916655,"polygon":{"coordinates":[{"x":0.904294610001446,"y":0.24869441917727445},{"x":0.9325137412586969,"y":0.24869441917727445},{"x":0.9331308558811456,"y":0.2582487160961911},{"x":0.9049117246238948,"y":0.2582487160961911}]}}},{"id":"61","text":"Posting","bounding_box":{"left":0.07975653284636575,"top":0.26953237741648695,"width":0.04540228978087035,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269960447410299},{"x":0.1251588226272361,"y":0.26953237741648695},{"x":0.1251588226272361,"y":0.28125268156091154},{"x":0.08037367631942799,"y":0.2808160591482836}]}}},{"id":"62","text":"Date","bounding_box":{"left":0.12822033432783322,"top":0.26953237741648695,"width":0.030675587891836026,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.12822033432783322,"y":0.26953237741648695},{"x":0.15827877874660704,"y":0.26953237741648695},{"x":0.15889592221966925,"y":0.28125268156091154},{"x":0.12883747780089547,"y":0.28125268156091154}]}}},{"id":"63","text":"06/04/25","bounding_box":{"left":0.23497380710502905,"top":0.26953237741648695,"width":0.05520396114307055,"height":0.010847059319168684,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.26953237741648695},{"x":0.2901777682480996,"y":0.26953237741648695},{"x":0.2901777682480996,"y":0.28037943673565563},{"x":0.23557884774573423,"y":0.2799428143230277}]}}},{"id":"64","text":"Account","bounding_box":{"left":0.666864331836525,"top":0.2634539345494614,"width":0.0503152391133076,"height":0.009117674506288698,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2634539345494614},{"x":0.7171795709498326,"y":0.2634539345494614},{"x":0.7165623986261569,"y":0.2725716090557501},{"x":0.6680986187826495,"y":0.2725716090557501}]}}},{"id":"65","text":"No.","bounding_box":{"left":0.7196360275844178,"top":0.2634539345494614,"width":0.0214668759759441,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.7196360275844178,"y":0.2634539345494614},{"x":0.7411029035603619,"y":0.2638905569620894},{"x":0.7404857312366862,"y":0.2729996790495621},{"x":0.7196360275844178,"y":0.2725716090557501}]}}},{"id":"66","text":"99-99-888","bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}}},{"id":"67","text":"Due","bounding_box":{"left":0.08097871696013319,"top":0.28341864796341804,"width":0.023318284757170724,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.28341864796341804},{"x":0.10429700171730391,"y":0.28341864796341804},{"x":0.10429700171730391,"y":0.29296439246351874},{"x":0.08097871696013319,"y":0.29296439246351874}]}}},{"id":"68","text":"Date","bounding_box":{"left":0.10859280036402551,"top":0.28341864796341804,"width":0.028219116831944127,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.10859280036402551,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.29253634288120745},{"x":0.10859280036402551,"y":0.29296439246351874}]}}},{"id":"69","text":"07/31/25","bounding_box":{"left":0.23497380710502905,"top":0.28298202555079005,"width":0.05459890607705861,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.29340101487614667},{"x":0.23557884774573423,"y":0.29296439246351874}]}}},{"id":"70","text":"Payment","bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.053376729175944534,"height":0.011283661320295846,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.13435544613607772,"y":0.3098984674800296},{"x":0.13435544613607772,"y":0.3207455063876975},{"x":0.08097871696013319,"y":0.3207455063876975}]}}},{"id":"71","text":"Terms","bounding_box":{"left":0.13742906066903188,"top":0.3098984674800296,"width":0.03619357065232506,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.13742906066903188,"y":0.3098984674800296},{"x":0.1730054878482947,"y":0.3098984674800296},{"x":0.17362263132135694,"y":0.3198808139812575},{"x":0.13742906066903188,"y":0.32030888397506957}]}}},{"id":"72","text":"End","bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.02147896438299446,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.2570578121287287,"y":0.3098984674800296},{"x":0.2570578121287287,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}}},{"id":"73","text":"of","bounding_box":{"left":0.2613536107754503,"top":0.3098984674800296,"width":0.012875278682500935,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.2613536107754503,"y":0.3098984674800296},{"x":0.2742288894579512,"y":0.3098984674800296},{"x":0.2742288894579512,"y":0.3194442119801303},{"x":0.2613536107754503,"y":0.3194442119801303}]}}},{"id":"74","text":"Next","bounding_box":{"left":0.27668534609253637,"top":0.3098984674800296,"width":0.02945341820337538,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.27668534609253637,"y":0.3098984674800296},{"x":0.30613876429591175,"y":0.3098984674800296},{"x":0.30613876429591175,"y":0.3194442119801303},{"x":0.27668534609253637,"y":0.3194442119801303}]}}},{"id":"75","text":"Month","bounding_box":{"left":0.3085831325234466,"top":0.3098984674800296,"width":0.03926715633466571,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.3085831325234466,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3194442119801303},{"x":0.3085831325234466,"y":0.3194442119801303}]}}},{"id":"76","text":"ABN","bounding_box":{"left":0.6680986187826495,"top":0.30338338178887536,"width":0.022701162922068585,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.6680986187826495,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.312501056295164},{"x":0.6680986187826495,"y":0.312501056295164}]}}},{"id":"77","text":"53001003000","bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}}},{"id":"78","text":"Shipment","bounding_box":{"left":0.08097871696013319,"top":0.32291149320170476,"width":0.05645034370889869,"height":0.011292234150612535,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.3233481156143327},{"x":0.13681191719596963,"y":0.32291149320170476},{"x":0.13742906066903188,"y":0.3337671049396893},{"x":0.08159586043319543,"y":0.3342037273523173}]}}},{"id":"79","text":"Method","bounding_box":{"left":0.13987342889656673,"top":0.32291149320170476,"width":0.0478587536281089,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.13987342889656673,"y":0.32291149320170476},{"x":0.18773218252467563,"y":0.32291149320170476},{"x":0.18773218252467563,"y":0.3337671049396893},{"x":0.14049057236962897,"y":0.3337671049396893}]}}},{"id":"80","text":"Prices","bounding_box":{"left":0.08037367631942799,"top":0.33636969375482373,"width":0.03435423585284203,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.33636969375482373},{"x":0.11411077591186114,"y":0.33636969375482373},{"x":0.11472791217227002,"y":0.3476533754866204},{"x":0.08097871696013319,"y":0.34721673266249165}]}}},{"id":"81","text":"Including","bounding_box":{"left":0.11717228039980487,"top":0.33636969375482373,"width":0.05645035092155207,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.11717228039980487,"y":0.33636969375482373},{"x":0.1730054878482947,"y":0.33636969375482373},{"x":0.17362263132135694,"y":0.3476533754866204},{"x":0.11778942387286712,"y":0.3476533754866204}]}}},{"id":"82","text":"VAT","bounding_box":{"left":0.17730127206970955,"top":0.33636969375482373,"width":0.025762660197358955,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.17730127206970955,"y":0.33636969375482373},{"x":0.20245889162636332,"y":0.33636969375482373},{"x":0.2030639322670685,"y":0.3476533754866204},{"x":0.1779184155427718,"y":0.3476533754866204}]}}},{"id":"83","text":"No","bounding_box":{"left":0.23557884774573423,"top":0.3372343861612638,"width":0.017183165736272876,"height":0.008681072505161425,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3372343861612638},{"x":0.2527620134820071,"y":0.3372343861612638},{"x":0.2527620134820071,"y":0.3459154586664252},{"x":0.23557884774573423,"y":0.3459154586664252}]}}},{"id":"84","text":"Direct","bounding_box":{"left":0.5337431582212651,"top":0.38020306503994084,"width":0.0398722402512911,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5337431582212651,"y":0.38063970786406953},{"x":0.5736153984725562,"y":0.38020306503994084},{"x":0.5736153984725562,"y":0.39018543195266947},{"x":0.5343603305449408,"y":0.39018543195266947}]}}},{"id":"85","text":"Allow","bounding_box":{"left":0.6797517277766898,"top":0.37977499504612877,"width":0.031909874837960484,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6797517277766898,"y":0.37977499504612877},{"x":0.7116616026146503,"y":0.37977499504612877},{"x":0.7116616026146503,"y":0.38975736195885746},{"x":0.6797517277766898,"y":0.38975736195885746}]}}},{"id":"86","text":"Unit","bounding_box":{"left":0.4404941960066827,"top":0.3927965935981206,"width":0.027601987784188653,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.4404941960066827,"y":0.3927965935981206},{"x":0.46809618379087137,"y":0.3927965935981206},{"x":0.46809618379087137,"y":0.40277896051084927},{"x":0.4404941960066827,"y":0.40234235850972205}]}}},{"id":"87","text":"of","bounding_box":{"left":0.47055266927607003,"top":0.3927965935981206,"width":0.015331706466472639,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.47055266927607003,"y":0.3927965935981206},{"x":0.4858843757425427,"y":0.3927965935981206},{"x":0.4858843757425427,"y":0.40277896051084927},{"x":0.47116978389851877,"y":0.40277896051084927}]}}},{"id":"88","text":"Unit","bounding_box":{"left":0.5453962672153053,"top":0.39235999159699336,"width":0.028836245879699685,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.5453962672153053,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.4014776456917813},{"x":0.546013381837754,"y":0.4019057156855933}]}}},{"id":"89","text":"Invoice","bounding_box":{"left":0.6785295003870021,"top":0.3927965935981206,"width":0.04539020858647347,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.3927965935981206},{"x":0.7239197089734756,"y":0.39322466359193264},{"x":0.7239197089734756,"y":0.40277896051084927},{"x":0.6785295003870021,"y":0.40277896051084927}]}}},{"id":"90","text":"VAT","bounding_box":{"left":0.7742349480867831,"top":0.39235999159699336,"width":0.026379789245114527,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.7742349480867831,"y":0.39235999159699336},{"x":0.8006147373318976,"y":0.39235999159699336},{"x":0.8006147373318976,"y":0.4019057156855933},{"x":0.774840003152795,"y":0.4019057156855933}]}}},{"id":"91","text":"No.","bounding_box":{"left":0.08221300390625766,"top":0.4053815493259837,"width":0.022689045664404828,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4149273142375851},{"x":0.08221300390625766,"y":0.4149273142375851}]}}},{"id":"92","text":"Description","bounding_box":{"left":0.17668414302195404,"top":0.4049449473248565,"width":0.0723992152863937,"height":0.012156926557052528,"polygon":{"coordinates":[{"x":0.17668414302195404,"y":0.4053815493259837},{"x":0.24908335830834774,"y":0.4049449473248565},{"x":0.24908335830834774,"y":0.417101873881909},{"x":0.17668414302195404,"y":0.4153639162387123}]}}},{"id":"93","text":"Quantity","bounding_box":{"left":0.3570590296246177,"top":0.4049449473248565,"width":0.05643823366388828,"height":0.012156926557052528,"polygon":{"coordinates":[{"x":0.3570590296246177,"y":0.4049449473248565},{"x":0.413497263288506,"y":0.4049449473248565},{"x":0.413497263288506,"y":0.417101873881909},{"x":0.3570590296246177,"y":0.4162286290566531}]}}},{"id":"94","text":"Measure","bounding_box":{"left":0.43925993791117174,"top":0.4058181921501124,"width":0.05459892050236531,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.4058181921501124},{"x":0.49385885841353705,"y":0.4058181921501124},{"x":0.49385885841353705,"y":0.4153639162387123},{"x":0.43987705253362047,"y":0.4153639162387123}]}}},{"id":"95","text":"Cost","bounding_box":{"left":0.5447790948916296,"top":0.4053815493259837,"width":0.028836303580926592,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.5447790948916296,"y":0.4053815493259837},{"x":0.5736153984725562,"y":0.4053815493259837},{"x":0.5736153984725562,"y":0.4144992442437731},{"x":0.5447790948916296,"y":0.4144992442437731}]}}},{"id":"96","text":"Discount","bounding_box":{"left":0.5914157076818913,"top":0.4049449473248565,"width":0.05766043220296235,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5914157076818913,"y":0.4049449473248565},{"x":0.6490761398848537,"y":0.4049449473248565},{"x":0.6490761398848537,"y":0.4153639162387123},{"x":0.5914157076818913,"y":0.4153639162387123}]}}},{"id":"97","text":"%","bounding_box":{"left":0.6564455097886093,"top":0.4053815493259837,"width":0.008579480035779352,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.6564455097886093,"y":0.4153639162387123},{"x":0.6570505648546212,"y":0.4053815493259837},{"x":0.6650249898243886,"y":0.4053815493259837},{"x":0.6650249898243886,"y":0.4153639162387123}]}}},{"id":"98","text":"Discount","bounding_box":{"left":0.679134555453014,"top":0.4053815493259837,"width":0.057055377136950525,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.679134555453014,"y":0.4058181921501124},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4153639162387123},{"x":0.679134555453014,"y":0.4149273142375851}]}}},{"id":"99","text":"Identifier","bounding_box":{"left":0.7730006611406586,"top":0.4049449473248565,"width":0.06135117578367211,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4053815493259837},{"x":0.8343518369243307,"y":0.4049449473248565},{"x":0.8343518369243307,"y":0.4153639162387123},{"x":0.7736177757631074,"y":0.4153639162387123}]}}},{"id":"100","text":"Amount","bounding_box":{"left":0.8822106194030531,"top":0.4053815493259837,"width":0.05275957849022894,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.8822106194030531,"y":0.4053815493259837},{"x":0.9349701978932821,"y":0.4053815493259837},{"x":0.9349701978932821,"y":0.4153639162387123},{"x":0.8822106194030531,"y":0.4149273142375851}]}}},{"id":"101","text":"IT","bounding_box":{"left":0.17607910238124885,"top":0.4296868296097721,"width":0.01165308014342678,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4296868296097721},{"x":0.18773218252467563,"y":0.43012343161089933},{"x":0.18773218252467563,"y":0.44053386851744003},{"x":0.17607910238124885,"y":0.44053386851744003}]}}},{"id":"102","text":"Support","bounding_box":{"left":0.19079369422527276,"top":0.43012343161089933,"width":0.048463808694120813,"height":0.010847079730669396,"polygon":{"coordinates":[{"x":0.19079369422527276,"y":0.43012343161089933},{"x":0.23925750291939357,"y":0.43055150160471134},{"x":0.23925750291939357,"y":0.4409705113415687},{"x":0.19079369422527276,"y":0.4409705113415687}]}}},{"id":"103","text":"10","bounding_box":{"left":0.41104080665392084,"top":0.4296868296097721,"width":0.012270223616489051,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.41104080665392084,"y":0.4296868296097721},{"x":0.4233110302704099,"y":0.4296868296097721},{"x":0.4233110302704099,"y":0.43923255369837205},{"x":0.41104080665392084,"y":0.43923255369837205}]}}},{"id":"104","text":"200.00","bounding_box":{"left":0.5331260435988163,"top":0.43012343161089933,"width":0.039884299807727897,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.5331260435988163,"y":0.43012343161089933},{"x":0.5723931710828686,"y":0.43012343161089933},{"x":0.5730103434065442,"y":0.44053386851744003},{"x":0.5337431582212651,"y":0.4396691965225008}]}}},{"id":"105","text":"No","bounding_box":{"left":0.6785295003870021,"top":0.43055150160471134,"width":0.01778824965289827,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43923255369837205},{"x":0.6785295003870021,"y":0.4388045245275615}]}}},{"id":"106","text":"NON","bounding_box":{"left":0.7736177757631074,"top":0.4296868296097721,"width":0.02821913125725084,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7736177757631074,"y":0.4296868296097721},{"x":0.8018369070203583,"y":0.4296868296097721},{"x":0.8018369070203583,"y":0.4396691965225008},{"x":0.7742349480867831,"y":0.4396691965225008}]}}},{"id":"107","text":"GST","bounding_box":{"left":0.808589162301665,"top":0.4292501867856434,"width":0.025157619556653743,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.808589162301665,"y":0.4296868296097721},{"x":0.8337467818583187,"y":0.4292501867856434},{"x":0.8337467818583187,"y":0.44010579852362797},{"x":0.808589162301665,"y":0.4396691965225008}]}}},{"id":"108","text":"2,000.00","bounding_box":{"left":0.8834327890915138,"top":0.4296868296097721,"width":0.050303121855643784,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8834327890915138,"y":0.43012343161089933},{"x":0.9337359109471576,"y":0.4296868296097721},{"x":0.9337359109471576,"y":0.44053386851744003},{"x":0.8840499037139625,"y":0.44010579852362797}]}}},{"id":"109","text":"Support","bounding_box":{"left":0.17607910238124885,"top":0.44357310015670315,"width":0.047846650795751844,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.44357310015670315},{"x":0.22330860970393845,"y":0.44357310015670315},{"x":0.2239257531770007,"y":0.4548567818884998},{"x":0.17668414302195404,"y":0.4548567818884998}]}}},{"id":"110","text":"period:","bounding_box":{"left":0.2263822242368926,"top":0.44313645733257445,"width":0.04294581150832508,"height":0.011720324555925365,"polygon":{"coordinates":[{"x":0.2263822242368926,"y":0.44357310015670315},{"x":0.2693280357452177,"y":0.44313645733257445},{"x":0.2693280357452177,"y":0.4548567818884998},{"x":0.22699936770995485,"y":0.4548567818884998}]}}},{"id":"111","text":"December","bounding_box":{"left":0.2723895474458148,"top":0.44313645733257445,"width":0.06380766126887077,"height":0.011720324555925365,"polygon":{"coordinates":[{"x":0.2723895474458148,"y":0.44313645733257445},{"x":0.3355800652416233,"y":0.44313645733257445},{"x":0.33619720871468556,"y":0.45442871189468775},{"x":0.273006690918877,"y":0.4548567818884998}]}}},{"id":"112","text":"Total","bounding_box":{"left":0.7711613191285223,"top":0.47048096925562605,"width":0.03251492990397242,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7711613191285223,"y":0.47048096925562605},{"x":0.8036762490324947,"y":0.47048096925562605},{"x":0.8036762490324947,"y":0.4808999381694819},{"x":0.7711613191285223,"y":0.4808999381694819}]}}},{"id":"113","text":"AUD","bounding_box":{"left":0.8067498779907556,"top":0.47048096925562605,"width":0.02699690386756315,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8067498779907556,"y":0.47048096925562605},{"x":0.8337467818583187,"y":0.47048096925562605},{"x":0.8337467818583187,"y":0.4808999381694819},{"x":0.8067498779907556,"y":0.4808999381694819}]}}},{"id":"114","text":"2,000.00","bounding_box":{"left":0.8791369904447922,"top":0.47048096925562605,"width":0.053376750813904694,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8791369904447922,"y":0.47091757125675326},{"x":0.9325137412586969,"y":0.47048096925562605},{"x":0.9325137412586969,"y":0.4808999381694819},{"x":0.8797541050672409,"y":0.4808999381694819}]}}},{"id":"115","text":"VAT","bounding_box":{"left":0.08221300390625766,"top":0.529947100738186,"width":0.02637979645776785,"height":0.012148312903734415,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.529947100738186},{"x":0.10859280036402551,"y":0.529947100738186},{"x":0.10859280036402551,"y":0.5420954136419204},{"x":0.08221300390625766,"y":0.5420954136419204}]}}},{"id":"116","text":"Amount","bounding_box":{"left":0.11165430485196923,"top":0.529947100738186,"width":0.05153741601442163,"height":0.012148312903734415,"polygon":{"coordinates":[{"x":0.11165430485196923,"y":0.529947100738186},{"x":0.16319172086639086,"y":0.529947100738186},{"x":0.16319172086639086,"y":0.5420954136419204},{"x":0.11165430485196923,"y":0.5420954136419204}]}}},{"id":"117","text":"Specification","bounding_box":{"left":0.16687036161474345,"top":0.529947100738186,"width":0.0822129966936043,"height":0.012584955727863112,"polygon":{"coordinates":[{"x":0.16687036161474345,"y":0.529947100738186},{"x":0.2484662148352855,"y":0.529947100738186},{"x":0.24908335830834774,"y":0.5425320564660491},{"x":0.16687036161474345,"y":0.5420954136419204}]}}},{"id":"118","text":"Inv.","bounding_box":{"left":0.4503079629885866,"top":0.5438333712851171,"width":0.025762674622665682,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.4503079629885866,"y":0.5438333712851171},{"x":0.47546558254524035,"y":0.5438333712851171},{"x":0.4760706376112523,"y":0.5538157381978457},{"x":0.4509251064616488,"y":0.5538157381978457}]}}},{"id":"119","text":"Disc.","bounding_box":{"left":0.47852709424583745,"top":0.5438333712851171,"width":0.030675616742449507,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.47852709424583745,"y":0.5438333712851171},{"x":0.509202710988287,"y":0.5438333712851171},{"x":0.509202710988287,"y":0.554252340198973},{"x":0.4791442377188997,"y":0.5538157381978457}]}}},{"id":"120","text":"Base","bounding_box":{"left":0.5116591676228721,"top":0.5433967284609884,"width":0.030058415568160357,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.5116591676228721,"y":0.5438333712851171},{"x":0.5417175831910325,"y":0.5433967284609884},{"x":0.5411004685685837,"y":0.554252340198973},{"x":0.5116591676228721,"y":0.554252340198973}]}}},{"id":"121","text":"Invoice","bounding_box":{"left":0.5668752027476862,"top":0.5433967284609884,"width":0.04722955059860989,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.5668752027476862,"y":0.5433967284609884},{"x":0.6134996982802842,"y":0.5438333712851171},{"x":0.6141047533462961,"y":0.554252340198973},{"x":0.5668752027476862,"y":0.5538157381978457}]}}},{"id":"122","text":"Discount","bounding_box":{"left":0.6165612099808813,"top":0.5433967284609884,"width":0.05828966408307501,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.6165612099808813,"y":0.5438333712851171},{"x":0.6748508740639563,"y":0.5433967284609884},{"x":0.6748508740639563,"y":0.554252340198973},{"x":0.6165612099808813,"y":0.554252340198973}]}}},{"id":"123","text":"VAT","bounding_box":{"left":0.08159586043319543,"top":0.5559902570191682,"width":0.025762652984705592,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5559902570191682},{"x":0.10735851341790102,"y":0.5559902570191682},{"x":0.10735851341790102,"y":0.5664006939257088},{"x":0.08221300390625766,"y":0.5664006939257088}]}}},{"id":"124","text":"Identifier","bounding_box":{"left":0.1104321207382018,"top":0.5559902570191682,"width":0.061956223637030655,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.1104321207382018,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5668372959268361},{"x":0.1104321207382018,"y":0.5664006939257088}]}}},{"id":"125","text":"VAT","bounding_box":{"left":0.24600975820070034,"top":0.5555536550180409,"width":0.026379789245114443,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.24600975820070034,"y":0.5555536550180409},{"x":0.2723895474458148,"y":0.5555536550180409},{"x":0.2723895474458148,"y":0.5659726239318967},{"x":0.24600975820070034,"y":0.5659726239318967}]}}},{"id":"126","text":"%","bounding_box":{"left":0.28098114473925795,"top":0.5555536550180409,"width":0.006135111808244553,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.28098114473925795,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5659726239318967},{"x":0.28098114473925795,"y":0.5659726239318967}]}}},{"id":"127","text":"Line","bounding_box":{"left":0.33435786670254913,"top":0.5559902570191682,"width":0.02637981809572798,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.33435786670254913,"y":0.5559902570191682},{"x":0.3607376847982771,"y":0.5564183270129802},{"x":0.3607376847982771,"y":0.5659726239318967},{"x":0.33435786670254913,"y":0.5659726239318967}]}}},{"id":"128","text":"Amount","bounding_box":{"left":0.3650334545943852,"top":0.5564183270129802,"width":0.052759607340842396,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.3650334545943852,"y":0.5564183270129802},{"x":0.4177930619352276,"y":0.5564183270129802},{"x":0.4177930619352276,"y":0.5664006939257088},{"x":0.3650334545943852,"y":0.5664006939257088}]}}},{"id":"129","text":"Amount","bounding_box":{"left":0.49385885841353705,"top":0.5568549290141074,"width":0.05153740880176827,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.49385885841353705,"y":0.5568549290141074},{"x":0.5453962672153053,"y":0.5568549290141074},{"x":0.5453962672153053,"y":0.5664006939257088},{"x":0.49385885841353705,"y":0.5659726239318967}]}}},{"id":"130","text":"Amount","bounding_box":{"left":0.6251528072743244,"top":0.5564183270129802,"width":0.05214240616655319,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.6251528072743244,"y":0.5568549290141074},{"x":0.6772952134408776,"y":0.5564183270129802},{"x":0.6772952134408776,"y":0.5664006939257088},{"x":0.6251528072743244,"y":0.5659726239318967}]}}},{"id":"131","text":"VAT","bounding_box":{"left":0.7429421878712713,"top":0.5559902570191682,"width":0.025762674622665682,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.7429421878712713,"y":0.5559902570191682},{"x":0.768704862493937,"y":0.5564183270129802},{"x":0.768704862493937,"y":0.5664006939257088},{"x":0.7429421878712713,"y":0.5664006939257088}]}}},{"id":"132","text":"Base","bounding_box":{"left":0.7723956060746467,"top":0.5564183270129802,"width":0.029441300945711513,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.7723956060746467,"y":0.5564183270129802},{"x":0.8018369070203583,"y":0.5564183270129802},{"x":0.8018369070203583,"y":0.5664006939257088},{"x":0.7723956060746467,"y":0.5664006939257088}]}}},{"id":"133","text":"VAT","bounding_box":{"left":0.8533743158221265,"top":0.5559902570191682,"width":0.026379789245114416,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.5559902570191682},{"x":0.8797541050672409,"y":0.5564183270129802},{"x":0.8797541050672409,"y":0.5664006939257088},{"x":0.8533743158221265,"y":0.5664006939257088}]}}},{"id":"134","text":"Amount","bounding_box":{"left":0.8834327890915138,"top":0.5564183270129802,"width":0.05399386543635343,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.8834327890915138,"y":0.5564183270129802},{"x":0.9374266545278672,"y":0.5564183270129802},{"x":0.9368095399054185,"y":0.5664006939257088},{"x":0.8834327890915138,"y":0.5664006939257088}]}}},{"id":"135","text":"NON","bounding_box":{"left":0.08159586043319543,"top":0.5802955373029566,"width":0.026996939930830077,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5807235664737671},{"x":0.10859280036402551,"y":0.5802955373029566},{"x":0.10859280036402551,"y":0.5902779042156853},{"x":0.08159586043319543,"y":0.5902779042156853}]}}},{"id":"136","text":"GST","bounding_box":{"left":0.11595009628603745,"top":0.5802955373029566,"width":0.024540476083591528,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.11595009628603745,"y":0.5802955373029566},{"x":0.13987342889656673,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5907059333864958},{"x":0.11595009628603745,"y":0.5907059333864958}]}}},{"id":"137","text":"0","bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.007357310347318735,"height":0.008681092916662192,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.28649911307444026,"y":0.5807235664737671},{"x":0.2871162565475025,"y":0.5894046593904293},{"x":0.27975894620018377,"y":0.5894046593904293}]}}},{"id":"138","text":"2,000.00","bounding_box":{"left":0.36625565313345937,"top":0.5802955373029566,"width":0.0496980956402453,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.36625565313345937,"y":0.5802955373029566},{"x":0.41595374877370467,"y":0.5807235664737671},{"x":0.41595374877370467,"y":0.5907059333864958},{"x":0.36625565313345937,"y":0.5907059333864958}]}}},{"id":"139","text":"0.00","bounding_box":{"left":0.5196335925926396,"top":0.5807235664737671,"width":0.02514550229898993,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.5196335925926396,"y":0.5807235664737671},{"x":0.5447790948916296,"y":0.5807235664737671},{"x":0.5447790948916296,"y":0.5902779042156853},{"x":0.5196335925926396,"y":0.5898412613915565}]}}},{"id":"140","text":"0.00","bounding_box":{"left":0.651532596519439,"top":0.5802955373029566,"width":0.02454044723297799,"height":0.009545724088599883,"polygon":{"coordinates":[{"x":0.651532596519439,"y":0.5898412613915565},{"x":0.6521497111418877,"y":0.5802955373029566},{"x":0.676073043752417,"y":0.5802955373029566},{"x":0.676073043752417,"y":0.5898412613915565}]}}},{"id":"141","text":"2,000.00","bounding_box":{"left":0.7521509574883902,"top":0.5802955373029566,"width":0.04968594953196803,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.7521509574883902,"y":0.5802955373029566},{"x":0.8018369070203583,"y":0.5802955373029566},{"x":0.8018369070203583,"y":0.5907059333864958},{"x":0.7527559548531751,"y":0.5911425762106245}]}}},{"id":"142","text":"0.00","bounding_box":{"left":0.9098125783366283,"top":0.5802955373029566,"width":0.026379789245114416,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.9098125783366283,"y":0.5802955373029566},{"x":0.9361923675817427,"y":0.5802955373029566},{"x":0.9355873125157308,"y":0.5902779042156853},{"x":0.9098125783366283,"y":0.5898412613915565}]}}},{"id":"143","text":"Total","bounding_box":{"left":0.2552184989672057,"top":0.6076400084030066,"width":0.03189775758029678,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.2552184989672057,"y":0.6076400084030066},{"x":0.2871162565475025,"y":0.6076400084030066},{"x":0.2871162565475025,"y":0.6171857324916066},{"x":0.2552184989672057,"y":0.6171857324916066}]}}},{"id":"144","text":"2,000.00","bounding_box":{"left":0.36257699795980003,"top":0.6072034064018794,"width":0.05337675081390464,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.36257699795980003,"y":0.6076400084030066},{"x":0.41595374877370467,"y":0.6072034064018794},{"x":0.41595374877370467,"y":0.6180504453095473},{"x":0.36319414143286227,"y":0.6180504453095473}]}}},{"id":"145","text":"0.00","bounding_box":{"left":0.5177942505805032,"top":0.6076400084030066,"width":0.026379846946341434,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.5177942505805032,"y":0.6076400084030066},{"x":0.5441740975268446,"y":0.6076400084030066},{"x":0.5441740975268446,"y":0.6171857324916066},{"x":0.5177942505805032,"y":0.6167491304904794}]}}},{"id":"146","text":"0.00","bounding_box":{"left":0.6496932545073025,"top":0.6076400084030066,"width":0.025762674622665682,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.6496932545073025,"y":0.6076400084030066},{"x":0.6754559291299682,"y":0.6076400084030066},{"x":0.6754559291299682,"y":0.6171857324916066},{"x":0.6496932545073025,"y":0.6171857324916066}]}}},{"id":"147","text":"2,000.00","bounding_box":{"left":0.7478551588416686,"top":0.6072034064018794,"width":0.053981748178689615,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.7478551588416686,"y":0.6076400084030066},{"x":0.8018369070203583,"y":0.6072034064018794},{"x":0.8018369070203583,"y":0.6180504453095473},{"x":0.7484602139076806,"y":0.6180504453095473}]}}},{"id":"148","text":"0.00","bounding_box":{"left":0.9079732363244919,"top":0.6076400084030066,"width":0.0276140761912389,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9079732363244919,"y":0.6171857324916066},{"x":0.9085904086481675,"y":0.6076400084030066},{"x":0.9355873125157308,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6171857324916066}]}}},{"id":"149","text":"Ship-to","bounding_box":{"left":0.08221300390625766,"top":0.651036736863995,"width":0.04662447389463781,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.651036736863995},{"x":0.12822033432783322,"y":0.651036736863995},{"x":0.12883747780089547,"y":0.6623204185957916},{"x":0.08281804454696286,"y":0.6618923486019795}]}}},{"id":"150","text":"Address","bounding_box":{"left":0.1325161329745548,"top":0.651036736863995,"width":0.05153740880176824,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.1325161329745548,"y":0.651036736863995},{"x":0.18405354177632305,"y":0.651036736863995},{"x":0.18405354177632305,"y":0.6618923486019795},{"x":0.1325161329745548,"y":0.6623204185957916}]}}},{"id":"151","text":"CRONUS","bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.052759585702882306,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.13435544613607772,"y":0.6644949782401155},{"x":0.13497258960913996,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}}},{"id":"152","text":"International","bounding_box":{"left":0.13742906066903188,"top":0.6644949782401155,"width":0.07668292552606498,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.13742906066903188,"y":0.6644949782401155},{"x":0.21411198619509686,"y":0.6644949782401155},{"x":0.21411198619509686,"y":0.6753420171477834},{"x":0.13803410130973706,"y":0.6753420171477834}]}}},{"id":"153","text":"Ltd.","bounding_box":{"left":0.21717349789569396,"top":0.6644949782401155,"width":0.0245404616582848,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.21717349789569396,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.21717349789569396,"y":0.6753420171477834}]}}},{"id":"154","text":"5","bounding_box":{"left":0.08159586043319543,"top":0.6788178507881738,"width":0.008591582868136424,"height":0.010847079730669451,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6788178507881738},{"x":0.08957029982826961,"y":0.6788178507881738},{"x":0.09018744330133185,"y":0.6896649305188433},{"x":0.08221300390625766,"y":0.6896649305188433}]}}},{"id":"155","text":"The","bounding_box":{"left":0.09386609126233782,"top":0.6788178507881738,"width":0.021466868763290764,"height":0.010847079730669451,"polygon":{"coordinates":[{"x":0.09386609126233782,"y":0.6788178507881738},{"x":0.11472791217227002,"y":0.6788178507881738},{"x":0.11533296002562858,"y":0.6896649305188433},{"x":0.09448323473540006,"y":0.6896649305188433}]}}},{"id":"156","text":"Ring","bounding_box":{"left":0.11778942387286712,"top":0.6788178507881738,"width":0.027614076191238957,"height":0.011283640908795078,"polygon":{"coordinates":[{"x":0.11778942387286712,"y":0.6788178507881738},{"x":0.14540350006410607,"y":0.6792544936123025},{"x":0.14540350006410607,"y":0.6901014916969689},{"x":0.11840656734592936,"y":0.6896649305188433}]}}},{"id":"157","text":"Westminster","bounding_box":{"left":0.08221300390625766,"top":0.6927041213351048,"width":0.07606577484034938,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6927041213351048},{"x":0.15767373810590182,"y":0.6931407641592335},{"x":0.15827877874660704,"y":0.7026864882478335},{"x":0.08221300390625766,"y":0.7026864882478335}]}}},{"id":"158","text":"CANBERRA","bounding_box":{"left":0.08159586043319543,"top":0.7057257607100982,"width":0.0662520078584455,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.7057257607100982},{"x":0.14724282765093574,"y":0.7057257607100982},{"x":0.14784786829164093,"y":0.7157081276228269},{"x":0.08221300390625766,"y":0.7161446888009525}]}}},{"id":"159","text":"NSW","bounding_box":{"left":0.15092148282459508,"top":0.7057257607100982,"width":0.02637978924511447,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.15092148282459508,"y":0.7057257607100982},{"x":0.17668414302195404,"y":0.7057257607100982},{"x":0.17730127206970955,"y":0.7161446888009525},{"x":0.15153862629765733,"y":0.7157081276228269}]}}},{"id":"160","text":"2600","bounding_box":{"left":0.18589286936315272,"top":0.7057257607100982,"width":0.028836260305006384,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.18589286936315272,"y":0.7057257607100982},{"x":0.2147291296681591,"y":0.7057257607100982},{"x":0.2147291296681591,"y":0.7161446888009525},{"x":0.1864979100038579,"y":0.7161446888009525}]}}},{"id":"161","text":"Australia","bounding_box":{"left":0.08281804454696286,"top":0.720048592435155,"width":0.051537401589114865,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.08281804454696286,"y":0.7204852352592837},{"x":0.13435544613607772,"y":0.720048592435155},{"x":0.13435544613607772,"y":0.7300309593478835},{"x":0.08281804454696286,"y":0.7295943981697579}]}}}],"selection_marks":[]}],"error":null}},"error":null} \ No newline at end of file diff --git a/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108218.json b/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108218.json deleted file mode 100644 index 56b27a3f3a..0000000000 --- a/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108218.json +++ /dev/null @@ -1 +0,0 @@ -{"outputs":{"1":{"page_count":1,"result":{"context":{"start_page":1,"end_page":1},"fields":{"amountDue":null,"billingAddress":null,"billingAddressRecipient":null,"customerAddress":{"value_text":"5 The Ring Westminster CANBERRA NSW 2600 Australia","value_number":null,"value_date":null,"confidence":0.866,"location":{"bounding_box":{"left":0.7997192719905435,"top":0.10790541914731037,"width":0.1336899346095075,"height":0.053421908496548445,"polygon":{"coordinates":[{"x":0.7997192719905435,"y":0.1605568139018976},{"x":0.8003243270565554,"y":0.10790541914731037},{"x":0.933409206600051,"y":0.10866736005895494},{"x":0.9328041515340391,"y":0.16132732764385882}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerAddressRecipient":null,"customerId":{"value_text":"99-99-888","value_number":null,"value_date":null,"confidence":0.683,"location":{"bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerName":{"value_text":"CRONUS International Ltd.","value_number":null,"value_date":null,"confidence":0.93,"location":{"bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.1595009556477211,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}},"page":1},"currency_symbol":null,"currency_code":null},"dueDate":{"value_text":"07/31/25","value_number":null,"value_date":"2025-07-31","confidence":0.97,"location":{"bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceDate":{"value_text":"June 4, 2025","value_number":null,"value_date":"2025-06-04","confidence":0.887,"location":{"bounding_box":{"left":0.23358221218887643,"top":0.2289351475184065,"width":0.0757753573523538,"height":0.011198055486133757,"polygon":{"coordinates":[{"x":0.23358221218887643,"y":0.23957672425948504},{"x":0.23373952015890456,"y":0.2289351475184065},{"x":0.3093575695412302,"y":0.22948307384464578},{"x":0.30920027599650884,"y":0.24013320300454025}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceId":{"value_text":"108218","value_number":null,"value_date":null,"confidence":0.969,"location":{"bounding_box":{"left":0.23619599121879647,"top":0.24218790631643689,"width":0.04356295498138729,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.24218790631643689},{"x":0.27975894620018377,"y":0.2521702528176648},{"x":0.23681313469185872,"y":0.2517336304050368}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceTotal":{"value_text":"AUD 1,600.00","value_number":1600,"value_date":null,"confidence":0.467,"location":{"bounding_box":{"left":0.8061327056670798,"top":0.470052899261814,"width":0.1269981502140658,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.8061327056670798,"y":0.470052899261814},{"x":0.9331308558811456,"y":0.470052899261814},{"x":0.9331308558811456,"y":0.48133658099361065},{"x":0.8061327056670798,"y":0.48133658099361065}]}},"page":1},"currency_symbol":"AUD","currency_code":"AUD"},"previousUnpaidBalance":null,"purchaseOrder":null,"remittanceAddress":null,"remittanceAddressRecipient":null,"serviceAddress":null,"serviceAddressRecipient":null,"serviceEndDate":null,"serviceStartDate":null,"shippingAddress":{"value_text":"5 The Ring Westminster CANBERRA NSW 2600 Australia","value_number":null,"value_date":null,"confidence":0.886,"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6788178507881738,"width":0.13313326923496366,"height":0.05121310855970973,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6788178507881738},{"x":0.2147291296681591,"y":0.6788178507881738},{"x":0.2147291296681591,"y":0.7300309593478835},{"x":0.08159586043319543,"y":0.7300309593478835}]}},"page":1},"currency_symbol":null,"currency_code":null},"shippingAddressRecipient":{"value_text":"CRONUS International Ltd.","value_number":null,"value_date":null,"confidence":0.93,"location":{"bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.1595009556477211,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}},"page":1},"currency_symbol":null,"currency_code":null},"subTotal":{"value_text":"1,600.00","value_number":1600,"value_date":null,"confidence":0.801,"location":{"bounding_box":{"left":0.36319414143286227,"top":0.6072034064018794,"width":0.052759607340842396,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.36319414143286227,"y":0.6080680783968186},{"x":0.41595374877370467,"y":0.6072034064018794},{"x":0.41595374877370467,"y":0.6176223753157353},{"x":0.3637991964988742,"y":0.6176223753157353}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"totalTax":{"value_text":"0.00","value_number":0,"value_date":null,"confidence":0.95,"location":{"bounding_box":{"left":0.9079732363244919,"top":0.6076400084030066,"width":0.0276140761912389,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9079732363244919,"y":0.6171857324916066},{"x":0.9085904086481675,"y":0.6076400084030066},{"x":0.9355873125157308,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6171857324916066}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"vendorAddress":{"value_text":"Evan McIntosh Allan Turing Road, 20 Surrey ALBERTON QLD 4207 Australia","value_number":null,"value_date":null,"confidence":0.819,"location":{"bounding_box":{"left":0.08037367631942799,"top":0.07551837863774787,"width":0.12882538218119177,"height":0.06467133973007995,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.07551837863774787},{"x":0.20919905850061976,"y":0.07551837863774787},{"x":0.20919905850061976,"y":0.14018971836782781},{"x":0.08037367631942799,"y":0.14018971836782781}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorAddressRecipient":{"value_text":"First Up Consultants","value_number":null,"value_date":null,"confidence":0.928,"location":{"bounding_box":{"left":0.08097871696013319,"top":0.06119548567818885,"width":0.11902370360633822,"height":0.01130079167230364,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.06119548567818885},{"x":0.2000024205664714,"y":0.06121260582444624},{"x":0.2000024205664714,"y":0.0724962773504925},{"x":0.08097871696013319,"y":0.07247915210135993}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorName":{"value_text":"First Up Consultants","value_number":null,"value_date":null,"confidence":0.928,"location":{"bounding_box":{"left":0.08097871696013319,"top":0.06119548567818885,"width":0.11902370360633822,"height":0.01130079167230364,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.06119548567818885},{"x":0.2000024205664714,"y":0.06121260582444624},{"x":0.2000024205664714,"y":0.0724962773504925},{"x":0.08097871696013319,"y":0.07247915210135993}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerTaxId":{"value_text":"53001003000","value_number":null,"value_date":null,"confidence":0.583,"location":{"bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorTaxId":{"value_text":"274863274B01","value_number":null,"value_date":null,"confidence":0.939,"location":{"bounding_box":{"left":0.23619599121879647,"top":0.20052052184532704,"width":0.08650879534032585,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.20052052184532704},{"x":0.32208764308606014,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.21093951117068366},{"x":0.23619599121879647,"y":0.2105028887580557}]}},"page":1},"currency_symbol":null,"currency_code":null},"paymentTerms":{"value_text":"End of Next Month","value_number":null,"value_date":null,"confidence":0.918,"location":{"bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.11227144111237808,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3198808139812575},{"x":0.23557884774573423,"y":0.3198808139812575}]}},"page":1},"currency_symbol":null,"currency_code":null}},"items":[{"fields":{"amount":{"value_text":"1,600.00","value_number":1600,"value_date":null,"confidence":0.954,"location":{"bounding_box":{"left":0.8846670760376383,"top":0.4296868296097721,"width":0.04846377984350736,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8846670760376383,"y":0.43012343161089933},{"x":0.9325137412586969,"y":0.4296868296097721},{"x":0.9331308558811456,"y":0.44053386851744003},{"x":0.8852721311036502,"y":0.44010579852362797}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"description":{"value_text":"IT Support Support period: January","value_number":null,"value_date":null,"confidence":0.943,"location":{"bounding_box":{"left":0.17560716404585772,"top":0.4296868296097721,"width":0.14363678947141864,"height":0.026496903942742622,"polygon":{"coordinates":[{"x":0.17560716404585772,"y":0.45484820905818313},{"x":0.17607910238124885,"y":0.4296868296097721},{"x":0.31924395351727636,"y":0.4310223541041037},{"x":0.31878410358893555,"y":0.45618373355251474}]}},"page":1},"currency_symbol":null,"currency_code":null},"unitPrice":{"value_text":"200.00","value_number":200,"value_date":null,"confidence":0.952,"location":{"bounding_box":{"left":0.5331260435988163,"top":0.43012343161089933,"width":0.039267127484052256,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5331260435988163,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.43012343161089933},{"x":0.5723931710828686,"y":0.44010579852362797},{"x":0.5331260435988163,"y":0.4396691965225008}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"quantity":{"value_text":"8","value_number":8,"value_date":null,"confidence":0.954,"location":{"bounding_box":{"left":0.4165587749891031,"top":0.43012343161089933,"width":0.007369398754369039,"height":0.008681092916662192,"polygon":{"coordinates":[{"x":0.4165587749891031,"y":0.43012343161089933},{"x":0.4233110302704099,"y":0.43012343161089933},{"x":0.42392817374347214,"y":0.4388045245275615},{"x":0.41717591846216534,"y":0.4388045245275615}]}},"page":1},"currency_symbol":null,"currency_code":null},"productCode":null,"unit":null,"date":null,"tax":null},"row_text":"IT Support 8 200.00 No NON GST 1,600.00 Support period: January","confidence":0.824,"location":{"bounding_box":{"left":0.17584917741707842,"top":0.4261681726408,"width":0.7573785011229236,"height":0.032429833220893156,"polygon":{"coordinates":[{"x":0.17584917741707842,"y":0.4550707760624043},{"x":0.17611539645301325,"y":0.4261681726408},{"x":0.933227678540002,"y":0.4296868296097721},{"x":0.9329614450787604,"y":0.45859800586169314}]}},"page":1}}],"key_value_pairs":[{"key":"Pay-to Vendor No.","value":"20000","confidence":0.875,"key_location":{"bounding_box":{"left":0.08037367631942799,"top":0.18619762888576802,"width":0.11165430485196923,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.1974812902060639},{"x":0.08037367631942799,"y":0.1974812902060639}]}},"page":1},"value_location":{"bounding_box":{"left":0.23619599121879647,"top":0.18619762888576802,"width":0.03619355622701831,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.19617999579849668},{"x":0.23619599121879647,"y":0.19617999579849668}]}},"page":1}},{"key":"Phone No.","value":"0666-666-6666","confidence":0.898,"key_location":{"bounding_box":{"left":0.6666707442200392,"top":0.17949420627715698,"width":0.06358981028644384,"height":0.011043948655441393,"polygon":{"coordinates":[{"x":0.6666707442200392,"y":0.18991319560251363},{"x":0.6668764490941889,"y":0.17949420627715698},{"x":0.7302605545064831,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19053815493259837}]}},"page":1},"value_location":{"bounding_box":{"left":0.8423262618940982,"top":0.17969111602493043,"width":0.0901874793645987,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8423262618940982,"y":0.18011916560724173},{"x":0.9325137412586969,"y":0.17969111602493043},{"x":0.9325137412586969,"y":0.18967348293765912},{"x":0.8423262618940982,"y":0.18967348293765912}]}},"page":1}},{"key":"VAT Registration No.","value":"274863274B01","confidence":0.875,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.20008389943269908,"width":0.12454168636682723,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.2118041831656229},{"x":0.08097871696013319,"y":0.2118041831656229}]}},"page":1},"value_location":{"bounding_box":{"left":0.23619599121879647,"top":0.20052052184532704,"width":0.08650879534032585,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.20052052184532704},{"x":0.32208764308606014,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.21093951117068366},{"x":0.23619599121879647,"y":0.2105028887580557}]}},"page":1}},{"key":"Document Date","value":"June 4, 2025","confidence":0.862,"key_location":{"bounding_box":{"left":0.08030107375059245,"top":0.22872968535181712,"width":0.09399920078030524,"height":0.011180930237001202,"polygon":{"coordinates":[{"x":0.08030107375059245,"y":0.2395852970898017},{"x":0.08037367631942799,"y":0.22872968535181712},{"x":0.1743002745308977,"y":0.22905500385083374},{"x":0.17422767196206213,"y":0.23991061558881832}]}},"page":1},"value_location":{"bounding_box":{"left":0.23358221218887643,"top":0.2289351475184065,"width":0.0757753573523538,"height":0.011198055486133757,"polygon":{"coordinates":[{"x":0.23358221218887643,"y":0.23957672425948504},{"x":0.23373952015890456,"y":0.2289351475184065},{"x":0.3093575695412302,"y":0.22948307384464578},{"x":0.30920027599650884,"y":0.24013320300454025}]}},"page":1}},{"key":"VAT Registration No.","value":"777777777","confidence":0.281,"key_location":{"bounding_box":{"left":0.6674814464589738,"top":0.21962056326434437,"width":0.1239245789570319,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.23090422458464024},{"x":0.6674814464589738,"y":0.23090422458464024}]}},"page":1},"value_location":{"bounding_box":{"left":0.8687060511392126,"top":0.2200486332581564,"width":0.06442480474193302,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8687060511392126,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22048525567078436},{"x":0.9331308558811456,"y":0.22960293017707303},{"x":0.8687060511392126,"y":0.22916630776444508}]}},"page":1}},{"key":"Invoice No.","value":"108218","confidence":0.897,"key_location":{"bounding_box":{"left":0.0801800598523287,"top":0.24217933348612022,"width":0.06847856837947375,"height":0.011086771984023164,"polygon":{"coordinates":[{"x":0.0801800598523287,"y":0.25260687523029274},{"x":0.08038577915178503,"y":0.24217933348612022},{"x":0.14865862823180245,"y":0.2428385433144701},{"x":0.1484529089323461,"y":0.2532661054701434}]}},"page":1},"value_location":{"bounding_box":{"left":0.23619599121879647,"top":0.24218790631643689,"width":0.04356295498138729,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.24218790631643689},{"x":0.27975894620018377,"y":0.2521702528176648},{"x":0.23681313469185872,"y":0.2517336304050368}]}},"page":1}},{"key":"Giro No.","value":"888-9999","confidence":0.612,"key_location":{"bounding_box":{"left":0.666864331836525,"top":0.23413181355286092,"width":0.051718936861817166,"height":0.010478897080069521,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.23459411363343738},{"x":0.7184017406382933,"y":0.23413181355286092},{"x":0.7185832686983422,"y":0.24414841055235398},{"x":0.6670458598965741,"y":0.24461071063293044}]}},"page":1},"value_location":{"bounding_box":{"left":0.8779148207563315,"top":0.23437152621771543,"width":0.0552160351248141,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8779148207563315,"y":0.23480814863034338},{"x":0.9325137412586969,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.24392582313663205},{"x":0.8779148207563315,"y":0.2434892007240041}]}},"page":1}},{"key":"Bank","value":"World Wide Bank","confidence":0.875,"key_location":{"bounding_box":{"left":0.6674814464589738,"top":0.24869441917727445,"width":0.02821913125725084,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.2578120936835631},{"x":0.6674814464589738,"y":0.2578120936835631}]}},"page":1},"value_location":{"bounding_box":{"left":0.8294509832115972,"top":0.2482663491834624,"width":0.10367987266954848,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.8294509832115972,"y":0.2482663491834624},{"x":0.9331308558811456,"y":0.2482663491834624},{"x":0.9331308558811456,"y":0.2586767860900031},{"x":0.8294509832115972,"y":0.2586767860900031}]}},"page":1}},{"key":"Posting Date","value":"06/04/25","confidence":0.898,"key_location":{"bounding_box":{"left":0.07975653284636575,"top":0.269523824997671,"width":0.0791393893733035,"height":0.01172885656324052,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269523824997671},{"x":0.15889592221966925,"y":0.26953237741648695},{"x":0.15889592221966925,"y":0.28125268156091154},{"x":0.07975653284636575,"y":0.2812441087305949}]}},"page":1},"value_location":{"bounding_box":{"left":0.23497380710502905,"top":0.26953237741648695,"width":0.055821104616132794,"height":0.010847059319168684,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.26953237741648695},{"x":0.29079491172116184,"y":0.26953237741648695},{"x":0.29079491172116184,"y":0.28037943673565563},{"x":0.23497380710502905,"y":0.2799428143230277}]}},"page":1}},{"key":"Account No.","value":"99-99-888","confidence":0.888,"key_location":{"bounding_box":{"left":0.6664892161599902,"top":0.2623752071461154,"width":0.07461368740037166,"height":0.011677501227343567,"polygon":{"coordinates":[{"x":0.6664892161599902,"y":0.27253735855748495},{"x":0.6669127431659533,"y":0.2623752071461154},{"x":0.7411029035603619,"y":0.2638905569620894},{"x":0.7406914361108358,"y":0.27405270837345896}]}},"page":1},"value_location":{"bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}},"page":1}},{"key":"Due Date","value":"07/31/25","confidence":0.899,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.28341864796341804,"width":0.05583320023583645,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.29296439246351874},{"x":0.08097871696013319,"y":0.29296439246351874}]}},"page":1},"value_location":{"bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}},"page":1}},{"key":"Payment Terms","value":"End of Next Month","confidence":0.856,"key_location":{"bounding_box":{"left":0.08088190872658355,"top":0.30946184506740165,"width":0.09282542799596599,"height":0.01166035556671019,"polygon":{"coordinates":[{"x":0.08088190872658355,"y":0.3207455063876975},{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.17370733672254954,"y":0.30983853931381594},{"x":0.17361052848899988,"y":0.32112220063411184}]}},"page":1},"value_location":{"bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.11227144111237808,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3198808139812575},{"x":0.23557884774573423,"y":0.3198808139812575}]}},"page":1}},{"key":"ABN","value":"53001003000","confidence":0.923,"key_location":{"bounding_box":{"left":0.6680986187826495,"top":0.30338338178887536,"width":0.022701162922068585,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.6680986187826495,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.312501056295164},{"x":0.6680986187826495,"y":0.312501056295164}]}},"page":1},"value_location":{"bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}},"page":1}},{"key":"Shipment Method","value":null,"confidence":0.172,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.32291149320170476,"width":0.10737060903760469,"height":0.011292234150612535,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.32291149320170476},{"x":0.18834932599773788,"y":0.32291149320170476},{"x":0.18834932599773788,"y":0.3342037273523173},{"x":0.08097871696013319,"y":0.3342037273523173}]}},"page":1},"value_location":null},{"key":"Unit of Measure","value":"8","confidence":0.875,"key_location":{"bounding_box":{"left":0.4404941960066827,"top":0.39235999159699336,"width":0.053981777029303124,"height":0.023003924641718965,"polygon":{"coordinates":[{"x":0.4404941960066827,"y":0.39235999159699336},{"x":0.49447597303598584,"y":0.39235999159699336},{"x":0.49447597303598584,"y":0.4153639162387123},{"x":0.4404941960066827,"y":0.4153639162387123}]}},"page":1},"value_location":{"bounding_box":{"left":0.4165587749891031,"top":0.43012343161089933,"width":0.007369398754369039,"height":0.008681092916662192,"polygon":{"coordinates":[{"x":0.4165587749891031,"y":0.43012343161089933},{"x":0.4233110302704099,"y":0.43012343161089933},{"x":0.42392817374347214,"y":0.4388045245275615},{"x":0.41717591846216534,"y":0.4388045245275615}]}},"page":1}},{"key":"Unit Cost","value":"200.00","confidence":0.898,"key_location":{"bounding_box":{"left":0.5447790948916296,"top":0.39235999159699336,"width":0.029453418203375437,"height":0.02213925264677974,"polygon":{"coordinates":[{"x":0.5447790948916296,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.4144992442437731},{"x":0.5447790948916296,"y":0.4144992442437731}]}},"page":1},"value_location":{"bounding_box":{"left":0.5331260435988163,"top":0.43012343161089933,"width":0.039267127484052256,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5331260435988163,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.43012343161089933},{"x":0.5723931710828686,"y":0.44010579852362797},{"x":0.5331260435988163,"y":0.4396691965225008}]}},"page":1}},{"key":"Invoice","value":"No","confidence":0.907,"key_location":{"bounding_box":{"left":0.6785295003870021,"top":0.3927965935981206,"width":0.04539020858647347,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.3927965935981206},{"x":0.7239197089734756,"y":0.39322466359193264},{"x":0.7239197089734756,"y":0.40277896051084927},{"x":0.6785295003870021,"y":0.40277896051084927}]}},"page":1},"value_location":{"bounding_box":{"left":0.6785295003870021,"top":0.43055150160471134,"width":0.01778824965289827,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43923255369837205},{"x":0.6785295003870021,"y":0.4388045245275615}]}},"page":1}},{"key":"VAT Identifier","value":"NON GST","confidence":0.867,"key_location":{"bounding_box":{"left":0.7729280729971298,"top":0.3922572401021979,"width":0.06159317472958603,"height":0.023106676136514404,"polygon":{"coordinates":[{"x":0.7729280729971298,"y":0.41514134923449114},{"x":0.7730853665418512,"y":0.3922572401021979},{"x":0.8345212477267159,"y":0.39247984792942064},{"x":0.8343518369243307,"y":0.4153639162387123}]}},"page":1},"value_location":{"bounding_box":{"left":0.7736177757631074,"top":0.4292501867856434,"width":0.05951189147276259,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.7736177757631074,"y":0.4292501867856434},{"x":0.83312966723587,"y":0.4292501867856434},{"x":0.83312966723587,"y":0.44010579852362797},{"x":0.7736177757631074,"y":0.44010579852362797}]}},"page":1}},{"key":"No.","value":null,"confidence":0.614,"key_location":{"bounding_box":{"left":0.08221300390625766,"top":0.4053815493259837,"width":0.022689045664404828,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4149273142375851},{"x":0.08221300390625766,"y":0.4149273142375851}]}},"page":1},"value_location":null},{"key":"Description","value":"IT Support","confidence":0.65,"key_location":{"bounding_box":{"left":0.17607910238124885,"top":0.4049449473248565,"width":0.07238711245403665,"height":0.012156926557052528,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4053815493259837},{"x":0.2484662148352855,"y":0.4049449473248565},{"x":0.2484662148352855,"y":0.417101873881909},{"x":0.17607910238124885,"y":0.4153639162387123}]}},"page":1},"value_location":{"bounding_box":{"left":0.1756676637823362,"top":0.4296868296097721,"width":0.06338411983760106,"height":0.01201992456399198,"polygon":{"coordinates":[{"x":0.1756676637823362,"y":0.4405252956871234},{"x":0.17607910238124885,"y":0.4296868296097721},{"x":0.23905178361993726,"y":0.4308682880964128},{"x":0.23864035944633133,"y":0.4417067541737641}]}},"page":1}},{"key":"Quantity","value":"Support period: January","confidence":0.093,"key_location":{"bounding_box":{"left":0.3570590296246177,"top":0.4049449473248565,"width":0.057660432202962464,"height":0.012156926557052528,"polygon":{"coordinates":[{"x":0.3570590296246177,"y":0.4049449473248565},{"x":0.4147194618275802,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.417101873881909},{"x":0.3576640558400162,"y":0.4162286290566531}]}},"page":1},"value_location":{"bounding_box":{"left":0.17597019131534217,"top":0.4426912825011306,"width":0.14304385166307051,"height":0.013047276219940285,"polygon":{"coordinates":[{"x":0.17597019131534217,"y":0.4550707760624043},{"x":0.17609119078829916,"y":0.4426912825011306},{"x":0.3190140429784127,"y":0.44335906515979717},{"x":0.318905131912506,"y":0.4557385587210709}]}},"page":1}},{"key":"Discount %","value":null,"confidence":0.612,"key_location":{"bounding_box":{"left":0.5914157076818913,"top":0.4049449473248565,"width":0.07360928214249729,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5914157076818913,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4153639162387123},{"x":0.5914157076818913,"y":0.4153639162387123}]}},"page":1},"value_location":null},{"key":"Discount","value":null,"confidence":0.28,"key_location":{"bounding_box":{"left":0.679134555453014,"top":0.4053815493259837,"width":0.057055377136950525,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.679134555453014,"y":0.4058181921501124},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4153639162387123},{"x":0.679134555453014,"y":0.4149273142375851}]}},"page":1},"value_location":null},{"key":"Amount","value":"1,600.00","confidence":0.908,"key_location":{"bounding_box":{"left":0.8815934470793774,"top":0.4053815493259837,"width":0.05275957849022894,"height":0.010419009736857332,"polygon":{"coordinates":[{"x":0.8815934470793774,"y":0.4053815493259837},{"x":0.9343530255696063,"y":0.4053815493259837},{"x":0.9343530255696063,"y":0.415800559062841},{"x":0.8815934470793774,"y":0.4149273142375851}]}},"page":1},"value_location":{"bounding_box":{"left":0.8846670760376383,"top":0.4296868296097721,"width":0.04846377984350736,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8846670760376383,"y":0.43012343161089933},{"x":0.9325137412586969,"y":0.4296868296097721},{"x":0.9331308558811456,"y":0.44053386851744003},{"x":0.8852721311036502,"y":0.44010579852362797}]}},"page":1}},{"key":"Total AUD","value":"1,600.00","confidence":0.899,"key_location":{"bounding_box":{"left":0.7705563217637372,"top":0.47048096925562605,"width":0.06319046009458151,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7705563217637372,"y":0.47048096925562605},{"x":0.8337467818583187,"y":0.47048096925562605},{"x":0.8337467818583187,"y":0.4808999381694819},{"x":0.7705563217637372,"y":0.4808999381694819}]}},"page":1},"value_location":{"bounding_box":{"left":0.8791369904447922,"top":0.470052899261814,"width":0.05399386543635343,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.8791369904447922,"y":0.47091757125675326},{"x":0.9331308558811456,"y":0.470052899261814},{"x":0.9331308558811456,"y":0.48133658099361065},{"x":0.8803712773909167,"y":0.4808999381694819}]}},"page":1}},{"key":"VAT Identifier","value":"NON GST","confidence":0.874,"key_location":{"bounding_box":{"left":0.08152325065170651,"top":0.5556735113504682,"width":0.09093769629236148,"height":0.011163784576367908,"polygon":{"coordinates":[{"x":0.08152325065170651,"y":0.5665205502581361},{"x":0.08159586043319543,"y":0.5556735113504682},{"x":0.172460946944068,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5668372959268361}]}},"page":1},"value_location":{"bounding_box":{"left":0.08159586043319543,"top":0.5802955373029566,"width":0.058894711936433544,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5907059333864958},{"x":0.08159586043319543,"y":0.5907059333864958}]}},"page":1}},{"key":"VAT %","value":"0","confidence":0.886,"key_location":{"bounding_box":{"left":0.24600975820070034,"top":0.5555536550180409,"width":0.04110649834680216,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.24600975820070034,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5659726239318967},{"x":0.24600975820070034,"y":0.5659726239318967}]}},"page":1},"value_location":{"bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.007357310347318735,"height":0.008681092916662192,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.2858940868590418,"y":0.5807235664737671},{"x":0.2871162565475025,"y":0.5889765893966172},{"x":0.2803640012661957,"y":0.5894046593904293}]}},"page":1}},{"key":"Ship-to Address","value":"CRONUS International Ltd. 5 The Ring Westminster CANBERRA NSW 2600 Australia","confidence":0.778,"key_location":{"bounding_box":{"left":0.08211619567270802,"top":0.6505658843646026,"width":0.10203415433716466,"height":0.01201135173367529,"polygon":{"coordinates":[{"x":0.08211619567270802,"y":0.6621063835988856},{"x":0.08221300390625766,"y":0.6505658843646026},{"x":0.18415035000987268,"y":0.651036736863995},{"x":0.184041438943966,"y":0.6625772360982779}]}},"page":1},"value_location":{"bounding_box":{"left":0.08159586043319543,"top":0.6644949782401155,"width":0.16011809912078334,"height":0.06553598110776804,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.7300309593478835},{"x":0.08159586043319543,"y":0.7300309593478835}]}},"page":1}}]},"read_results":[{"location":{"bounding_box":{"left":0.7245368812971513,"top":0.03992945489372671,"width":0.20245889162636332,"height":0.016925499634756605,"polygon":{"coordinates":[{"x":0.7245368812971513,"y":0.03992945489372671},{"x":0.9269957729235146,"y":0.03992945489372671},{"x":0.9269957729235146,"y":0.05685495452848331},{"x":0.7245368812971513,"y":0.05685495452848331}]}},"page":1},"text":"Purchase - Invoice"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.06119548567818885,"width":0.11962874424704342,"height":0.010855606635109392,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.06119548567818885},{"x":0.2000024205664714,"y":0.06119548567818885},{"x":0.19938527709340917,"y":0.07205109231329825},{"x":0.08037367631942799,"y":0.07205109231329825}]}},"page":1},"text":"First Up Consultants"},{"location":{"bounding_box":{"left":0.8908021589952693,"top":0.06163210809081681,"width":0.04171158226342764,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.8908021589952693,"y":0.06206873050344477},{"x":0.9325137412586969,"y":0.06163210809081681},{"x":0.9325137412586969,"y":0.07247915210135993},{"x":0.8914072140612812,"y":0.07247915210135993}]}},"page":1},"text":"Page 1"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.0750903188496862,"width":0.08833601288214513,"height":0.010410426700790343,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.0750903188496862},{"x":0.16809254572851087,"y":0.07551837863774787},{"x":0.16809254572851087,"y":0.08550074555047654},{"x":0.07975653284636575,"y":0.08507268576241486}]}},"page":1},"text":"Evan McIntosh"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.08767528478329967,"width":0.12883747058824208,"height":0.012148353726735894,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.08810334457136135},{"x":0.20859400343460782,"y":0.08767528478329967},{"x":0.20859400343460782,"y":0.09939557872197388},{"x":0.07975653284636575,"y":0.09982363851003556}]}},"page":1},"text":"Allan Turing Road, 20"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.10242624773667074,"width":0.03865003449956361,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.10242624773667074},{"x":0.11840656734592936,"y":0.1028628701492987},{"x":0.11840656734592936,"y":0.11284522685627699},{"x":0.07975653284636575,"y":0.11198054465558736}]}},"page":1},"text":"Surrey"},{"location":{"bounding_box":{"left":0.9251564309113782,"top":0.09418180784988762,"width":0.007974424969767413,"height":0.009117674506288656,"polygon":{"coordinates":[{"x":0.9251564309113782,"y":0.09418180784988762},{"x":0.9325137412586969,"y":0.09418180784988762},{"x":0.9331308558811456,"y":0.10329948235617628},{"x":0.9251564309113782,"y":0.1028628701492987}]}},"page":1},"text":"5"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.11588445849554013,"width":0.12883747058824208,"height":0.010418979119606236,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.11588445849554013},{"x":0.20859400343460782,"y":0.11588445849554013},{"x":0.20859400343460782,"y":0.12630343761514637},{"x":0.07975653284636575,"y":0.12630343761514637}]}},"page":1},"text":"ALBERTON QLD 4207"},{"location":{"bounding_box":{"left":0.8693232234628884,"top":0.10807664102138496,"width":0.06319051779580853,"height":0.011283661320295887,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.10807664102138496},{"x":0.9325137412586969,"y":0.10850470080944664},{"x":0.9325137412586969,"y":0.11936030234168085},{"x":0.8693232234628884,"y":0.11848705751642494}]}},"page":1},"text":"5 The Ring"},{"location":{"bounding_box":{"left":0.07913938937330352,"top":0.1306439738677271,"width":0.05399388707431353,"height":0.009109122087472749,"polygon":{"coordinates":[{"x":0.07913938937330352,"y":0.1306439738677271},{"x":0.13313327644761705,"y":0.1306439738677271},{"x":0.13313327644761705,"y":0.13975309595519986},{"x":0.07913938937330352,"y":0.13975309595519986}]}},"page":1},"text":"Australia"},{"location":{"bounding_box":{"left":0.8570529998463994,"top":0.12239953398094398,"width":0.07607785603474626,"height":0.010410426700790357,"polygon":{"coordinates":[{"x":0.8570529998463994,"y":0.12239953398094398},{"x":0.9331308558811456,"y":0.12282759376900566},{"x":0.9325137412586969,"y":0.13280996068173434},{"x":0.8570529998463994,"y":0.13238190089367266}]}},"page":1},"text":"Westminster"},{"location":{"bounding_box":{"left":0.7987753953197612,"top":0.13628580452787506,"width":0.13435546056138448,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.7987753953197612,"y":0.13628580452787506},{"x":0.9331308558811456,"y":0.13628580452787506},{"x":0.9331308558811456,"y":0.14713285364129336},{"x":0.7987753953197612,"y":0.14670479385323168}]}},"page":1},"text":"CANBERRA NSW 2600"},{"location":{"bounding_box":{"left":0.8791369904447922,"top":0.15104531990006204,"width":0.053376750813904694,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.8791369904447922,"y":0.1514733796881237},{"x":0.9325137412586969,"y":0.15104531990006204},{"x":0.9325137412586969,"y":0.1610276868127907},{"x":0.8791369904447922,"y":0.1610276868127907}]}},"page":1},"text":"Australia"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.18619762888576802,"width":0.11227144832503147,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.19704466779343593},{"x":0.07975653284636575,"y":0.1974812902060639}]}},"page":1},"text":"Pay-to Vendor No."},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.18619762888576802,"width":0.03865002728691022,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.18663425129839598},{"x":0.273006690918877,"y":0.18619762888576802},{"x":0.273006690918877,"y":0.19617999579849668},{"x":0.2343566636319668,"y":0.19574337338586872}]}},"page":1},"text":"20000"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.17969111602493043,"width":0.06379557286182047,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.17969111602493043},{"x":0.7300548496323336,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19010153251997042},{"x":0.6662592767705131,"y":0.18967348293765912}]}},"page":1},"text":"Phone No."},{"location":{"bounding_box":{"left":0.8411040922056375,"top":0.17969111602493043,"width":0.09324893336396878,"height":0.009545744500100733,"polygon":{"coordinates":[{"x":0.8411040922056375,"y":0.17969111602493043},{"x":0.9343530255696063,"y":0.17969111602493043},{"x":0.9343530255696063,"y":0.18923686052503116},{"x":0.8411040922056375,"y":0.18923686052503116}]}},"page":1},"text":"0666-666-6666"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.19965582943888702,"width":0.12514672700753243,"height":0.011711731314107937,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.19965582943888702},{"x":0.20490325985389818,"y":0.19965582943888702},{"x":0.20490325985389818,"y":0.21136756075299495},{"x":0.07975653284636575,"y":0.21136756075299495}]}},"page":1},"text":"VAT Registration No."},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.20008389943269908,"width":0.08834812292715552,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.20008389943269908},{"x":0.3227047865591223,"y":0.20008389943269908},{"x":0.3227047865591223,"y":0.2105028887580557},{"x":0.2343566636319668,"y":0.2105028887580557}]}},"page":1},"text":"274863274B01"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.19270414174660558,"width":0.0717821150892517,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.20355975348459018},{"x":0.6662592767705131,"y":0.20312313107196223}]}},"page":1},"text":"Home Page"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2057257402985974,"width":0.03435427191610885,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.20659896471235256},{"x":0.700613548686622,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2157080867998253},{"x":0.666864331836525,"y":0.21528003721751401}]}},"page":1},"text":"Email"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.22872968535181712,"width":0.0963225695348831,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.22872968535181712},{"x":0.17607910238124885,"y":0.22872968535181712},{"x":0.1754619589081866,"y":0.23914867467717374},{"x":0.07975653284636575,"y":0.23914867467717374}]}},"page":1},"text":"Document Date"},{"location":{"bounding_box":{"left":0.23313447951819938,"top":0.22916630776444508,"width":0.07668293995137171,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23313447951819938,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.22916630776444508},{"x":0.30920027599650884,"y":0.2395852970898017},{"x":0.23313447951819938,"y":0.2395852970898017}]}},"page":1},"text":"June 4, 2025"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.21962056326434437,"width":0.12454169357948064,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.21962056326434437},{"x":0.7908009703499937,"y":0.21962056326434437},{"x":0.7908009703499937,"y":0.23090422458464024},{"x":0.6662592767705131,"y":0.23090422458464024}]}},"page":1},"text":"VAT Registration No."},{"location":{"bounding_box":{"left":0.8662617117622913,"top":0.2200486332581564,"width":0.0674741991848663,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.8662617117622913,"y":0.2200486332581564},{"x":0.9337359109471576,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22916630776444508},{"x":0.8662617117622913,"y":0.22872968535181712}]}},"page":1},"text":"777777777"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.24218790631643689,"width":0.06809133544527518,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.24218790631643689},{"x":0.14784786829164093,"y":0.24262452872906484},{"x":0.14784786829164093,"y":0.25260687523029274},{"x":0.07975653284636575,"y":0.2521702528176648}]}},"page":1},"text":"Invoice No."},{"location":{"bounding_box":{"left":0.23557884774573423,"top":0.24218790631643689,"width":0.044180098454449535,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.24218790631643689},{"x":0.27975894620018377,"y":0.24218790631643689},{"x":0.27975894620018377,"y":0.2517336304050368},{"x":0.23557884774573423,"y":0.2517336304050368}]}},"page":1},"text":"108218"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2339434562239034,"width":0.05214246386778021,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.23437152621771543},{"x":0.7177846260158445,"y":0.2339434562239034},{"x":0.7184017406382933,"y":0.24392582313663205},{"x":0.6662592767705131,"y":0.24392582313663205}]}},"page":1},"text":"Giro No."},{"location":{"bounding_box":{"left":0.8760754787441951,"top":0.23437152621771543,"width":0.057055377136950525,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.8760754787441951,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.2434892007240041},{"x":0.8760754787441951,"y":0.2434892007240041}]}},"page":1},"text":"888-9999"},{"location":{"bounding_box":{"left":0.666864331836525,"top":0.24869441917727445,"width":0.03129270251428484,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.24869441917727445},{"x":0.6981570343508099,"y":0.24869441917727445},{"x":0.6981570343508099,"y":0.2578120936835631},{"x":0.6680986187826495,"y":0.2578120936835631}]}},"page":1},"text":"Bank"},{"location":{"bounding_box":{"left":0.8282166962654727,"top":0.2482663491834624,"width":0.10613632930413364,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8282166962654727,"y":0.2482663491834624},{"x":0.9343530255696063,"y":0.2482663491834624},{"x":0.9343530255696063,"y":0.2582487160961911},{"x":0.8282166962654727,"y":0.2582487160961911}]}},"page":1},"text":"World Wide Bank"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.269095755003859,"width":0.0791393893733035,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269095755003859},{"x":0.15889592221966925,"y":0.269095755003859},{"x":0.15889592221966925,"y":0.2808160591482836},{"x":0.07975653284636575,"y":0.2808160591482836}]}},"page":1},"text":"Posting Date"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.269095755003859,"width":0.05643824808919504,"height":0.010847059319168684,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.269095755003859},{"x":0.29079491172116184,"y":0.269095755003859},{"x":0.29079491172116184,"y":0.2799428143230277},{"x":0.2343566636319668,"y":0.27951474432921564}]}},"page":1},"text":"06/04/25"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2630173121368335,"width":0.0748436267898488,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.2630173121368335},{"x":0.7411029035603619,"y":0.2630173121368335},{"x":0.7411029035603619,"y":0.2725716090557501},{"x":0.6662592767705131,"y":0.27213498664312213}]}},"page":1},"text":"Account No."},{"location":{"bounding_box":{"left":0.8693232234628884,"top":0.26258924214302143,"width":0.06502980210671794,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.26258924214302143},{"x":0.9343530255696063,"y":0.26258924214302143},{"x":0.9343530255696063,"y":0.27213498664312213},{"x":0.8693232234628884,"y":0.27213498664312213}]}},"page":1},"text":"99-99-888"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.28298202555079005,"width":0.058277568463371315,"height":0.009554317330417395,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.28341864796341804},{"x":0.13803410130973706,"y":0.28298202555079005},{"x":0.13803410130973706,"y":0.29253634288120745},{"x":0.07975653284636575,"y":0.29253634288120745}]}},"page":1},"text":"Due Date"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.28255397596847875,"width":0.05643824808919504,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.28255397596847875},{"x":0.29079491172116184,"y":0.28298202555079005},{"x":0.29079491172116184,"y":0.29296439246351874},{"x":0.2343566636319668,"y":0.29253634288120745}]}},"page":1},"text":"07/31/25"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.09202677088816151,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.1730054878482947,"y":0.30946184506740165},{"x":0.1730054878482947,"y":0.32030888397506957},{"x":0.08097871696013319,"y":0.32030888397506957}]}},"page":1},"text":"Payment Terms"},{"location":{"bounding_box":{"left":0.23497380710502905,"top":0.30946184506740165,"width":0.11411076869920775,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.30946184506740165},{"x":0.3490845758042368,"y":0.30946184506740165},{"x":0.3490845758042368,"y":0.3194442119801303},{"x":0.23497380710502905,"y":0.31900758956750236}]}},"page":1},"text":"End of Next Month"},{"location":{"bounding_box":{"left":0.666864331836525,"top":0.30338338178887536,"width":0.028231248514914653,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.3038200042015033},{"x":0.694478408027764,"y":0.30338338178887536},{"x":0.6950955803514397,"y":0.312501056295164},{"x":0.6674814464589738,"y":0.3120644542940368}]}},"page":1},"text":"ABN"},{"location":{"bounding_box":{"left":0.8521521461336659,"top":0.3029467593762474,"width":0.08097870974747978,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8521521461336659,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31292912628897607},{"x":0.8521521461336659,"y":0.31292912628897607}]}},"page":1},"text":"53001003000"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.3224834232078927,"width":0.1104321207382018,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.32291149320170476},{"x":0.19018865358456755,"y":0.3224834232078927},{"x":0.19018865358456755,"y":0.3333304825270614},{"x":0.08037367631942799,"y":0.3337671049396893}]}},"page":1},"text":"Shipment Method"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.3359330713421958,"width":0.12330739942070276,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.3359330713421958},{"x":0.2030639322670685,"y":0.3359330713421958},{"x":0.2030639322670685,"y":0.3476533754866204},{"x":0.07975653284636575,"y":0.34721673266249165}]}},"page":1},"text":"Prices Including VAT"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.3372343861612638,"width":0.020861835335238915,"height":0.008681072505161425,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.3372343861612638},{"x":0.2546013554941435,"y":0.3372343861612638},{"x":0.2552184989672057,"y":0.3459154586664252},{"x":0.2343566636319668,"y":0.3459154586664252}]}},"page":1},"text":"No"},{"location":{"bounding_box":{"left":0.5319038162091286,"top":0.38020306503994084,"width":0.04110652719741559,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5319038162091286,"y":0.38020306503994084},{"x":0.5730103434065442,"y":0.38020306503994084},{"x":0.5730103434065442,"y":0.39018543195266947},{"x":0.5319038162091286,"y":0.39018543195266947}]}},"page":1},"text":"Direct"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.37977499504612877,"width":0.039267185185279274,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.38020306503994084},{"x":0.7165623986261569,"y":0.37977499504612877},{"x":0.7165623986261569,"y":0.38975736195885746},{"x":0.6772952134408776,"y":0.38975736195885746}]}},"page":1},"text":"Allow"},{"location":{"bounding_box":{"left":0.4386548828451598,"top":0.39235999159699336,"width":0.04784666522105857,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.4386548828451598,"y":0.39235999159699336},{"x":0.48650154806621837,"y":0.39235999159699336},{"x":0.48650154806621837,"y":0.40234235850972205},{"x":0.4386548828451598,"y":0.40234235850972205}]}},"page":1},"text":"Unit of"},{"location":{"bounding_box":{"left":0.5441740975268446,"top":0.39235999159699336,"width":0.030675587891835998,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.5441740975268446,"y":0.3927965935981206},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.5748496854186806,"y":0.4019057156855933},{"x":0.5447790948916296,"y":0.4019057156855933}]}},"page":1},"text":"Unit"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.3927965935981206,"width":0.047241667856273706,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.3927965935981206},{"x":0.7245368812971513,"y":0.3927965935981206},{"x":0.7245368812971513,"y":0.40277896051084927},{"x":0.6772952134408776,"y":0.40234235850972205}]}},"page":1},"text":"Invoice"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.39235999159699336,"width":0.028836245879699685,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.3927965935981206},{"x":0.8012319096555733,"y":0.39235999159699336},{"x":0.8018369070203583,"y":0.40234235850972205},{"x":0.7730006611406586,"y":0.40234235850972205}]}},"page":1},"text":"VAT"},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.4053815493259837,"width":0.023923325397875922,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.4058181921501124},{"x":0.10551918583107135,"y":0.4053815493259837},{"x":0.10551918583107135,"y":0.4149273142375851},{"x":0.08159586043319543,"y":0.4149273142375851}]}},"page":1},"text":"No."},{"location":{"bounding_box":{"left":0.1754619589081866,"top":0.4049449473248565,"width":0.07422645446617307,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.1754619589081866,"y":0.4049449473248565},{"x":0.24968841337435968,"y":0.4049449473248565},{"x":0.24968841337435968,"y":0.4166652310577803},{"x":0.1754619589081866,"y":0.415800559062841}]}},"page":1},"text":"Description"},{"location":{"bounding_box":{"left":0.35521968761248135,"top":0.4049449473248565,"width":0.058894719149086894,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.35521968761248135,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.4166652310577803},{"x":0.35521968761248135,"y":0.4162286290566531}]}},"page":1},"text":"Quantity"},{"location":{"bounding_box":{"left":0.43925993791117174,"top":0.4053815493259837,"width":0.056450322070938586,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.4053815493259837},{"x":0.4957102599821103,"y":0.4058181921501124},{"x":0.4957102599821103,"y":0.4149273142375851},{"x":0.43925993791117174,"y":0.4149273142375851}]}},"page":1},"text":"Measure"},{"location":{"bounding_box":{"left":0.5423347555147082,"top":0.4053815493259837,"width":0.03557644160456952,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.5423347555147082,"y":0.4053815493259837},{"x":0.5779111971192777,"y":0.4053815493259837},{"x":0.5779111971192777,"y":0.4144992442437731},{"x":0.5429398105807202,"y":0.4144992442437731}]}},"page":1},"text":"Cost"},{"location":{"bounding_box":{"left":0.5895642484120911,"top":0.4049449473248565,"width":0.07546074141229753,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5895642484120911,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4149273142375851},{"x":0.5895642484120911,"y":0.4149273142375851}]}},"page":1},"text":"Discount %"},{"location":{"bounding_box":{"left":0.6779123857645534,"top":0.4053815493259837,"width":0.0582775468254112,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.6779123857645534,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4149273142375851},{"x":0.6779123857645534,"y":0.4144992442437731}]}},"page":1},"text":"Discount"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.4049449473248565,"width":0.06074612071766017,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4153639162387123},{"x":0.7730006611406586,"y":0.4149273142375851}]}},"page":1},"text":"Identifier"},{"location":{"bounding_box":{"left":0.8803712773909167,"top":0.4053815493259837,"width":0.053981748178689615,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.8803712773909167,"y":0.4053815493259837},{"x":0.9343530255696063,"y":0.4053815493259837},{"x":0.9343530255696063,"y":0.4153639162387123},{"x":0.8803712773909167,"y":0.4149273142375851}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.17607910238124885,"top":0.4296868296097721,"width":0.06257335989743953,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4296868296097721},{"x":0.2386524622786884,"y":0.43055150160471134},{"x":0.2386524622786884,"y":0.4409705113415687},{"x":0.17607910238124885,"y":0.44010579852362797}]}},"page":1},"text":"IT Support"},{"location":{"bounding_box":{"left":0.4165587749891031,"top":0.43012343161089933,"width":0.007986542227431281,"height":0.008681092916662192,"polygon":{"coordinates":[{"x":0.4165587749891031,"y":0.43055150160471134},{"x":0.42392817374347214,"y":0.43012343161089933},{"x":0.4245453172165344,"y":0.4388045245275615},{"x":0.4165587749891031,"y":0.4388045245275615}]}},"page":1},"text":"8"},{"location":{"bounding_box":{"left":0.5312867015866799,"top":0.4296868296097721,"width":0.04232869688587626,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.5312867015866799,"y":0.4296868296097721},{"x":0.5736153984725562,"y":0.4296868296097721},{"x":0.5736153984725562,"y":0.4396691965225008},{"x":0.5312867015866799,"y":0.43923255369837205}]}},"page":1},"text":"200.00"},{"location":{"bounding_box":{"left":0.6779123857645534,"top":0.43055150160471134,"width":0.019627533963807675,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.6779123857645534,"y":0.43055150160471134},{"x":0.6969348646623491,"y":0.43055150160471134},{"x":0.697539919728361,"y":0.43923255369837205},{"x":0.6779123857645534,"y":0.4388045245275615}]}},"page":1},"text":"No"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.4292501867856434,"width":0.06196834810734786,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4292501867856434},{"x":0.8349690092480064,"y":0.4292501867856434},{"x":0.8349690092480064,"y":0.4396691965225008},{"x":0.7730006611406586,"y":0.4396691965225008}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.8834327890915138,"top":0.4292501867856434,"width":0.05092023647809252,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.8834327890915138,"y":0.4292501867856434},{"x":0.9343530255696063,"y":0.4292501867856434},{"x":0.9343530255696063,"y":0.44010579852362797},{"x":0.8834327890915138,"y":0.44010579852362797}]}},"page":1},"text":"1,600.00"},{"location":{"bounding_box":{"left":0.17422767196206213,"top":0.44313645733257445,"width":0.14478637101635056,"height":0.012156926557052583,"polygon":{"coordinates":[{"x":0.17422767196206213,"y":0.44313645733257445},{"x":0.3190140429784127,"y":0.44313645733257445},{"x":0.3190140429784127,"y":0.45529338388962703},{"x":0.17422767196206213,"y":0.4548567818884998}]}},"page":1},"text":"Support period: January"},{"location":{"bounding_box":{"left":0.7680998074279252,"top":0.470052899261814,"width":0.06870848613099079,"height":0.010410436906540754,"polygon":{"coordinates":[{"x":0.7680998074279252,"y":0.470052899261814},{"x":0.836808293558916,"y":0.470052899261814},{"x":0.836808293558916,"y":0.48046333616835474},{"x":0.7680998074279252,"y":0.48046333616835474}]}},"page":1},"text":"Total AUD"},{"location":{"bounding_box":{"left":0.8785319353787803,"top":0.470052899261814,"width":0.05643826251450179,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8785319353787803,"y":0.470052899261814},{"x":0.9349701978932821,"y":0.470052899261814},{"x":0.9349701978932821,"y":0.4808999381694819},{"x":0.8785319353787803,"y":0.4808999381694819}]}},"page":1},"text":"1,600.00"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5295104579140573,"width":0.1693268398872887,"height":0.012584955727863112,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5295104579140573},{"x":0.2503055568474219,"y":0.5295104579140573},{"x":0.2503055568474219,"y":0.5420954136419204},{"x":0.08097871696013319,"y":0.5420954136419204}]}},"page":1},"text":"VAT Amount Specification"},{"location":{"bounding_box":{"left":0.4496908483661378,"top":0.5433967284609884,"width":0.09386607683703108,"height":0.010419009736857276,"polygon":{"coordinates":[{"x":0.4496908483661378,"y":0.5433967284609884},{"x":0.5435569252031689,"y":0.5433967284609884},{"x":0.5435569252031689,"y":0.5538157381978457},{"x":0.4496908483661378,"y":0.553379095373717}]}},"page":1},"text":"Inv. Disc. Base"},{"location":{"bounding_box":{"left":0.5662580881252375,"top":0.5433967284609884,"width":0.1085927859387188,"height":0.010419009736857276,"polygon":{"coordinates":[{"x":0.5662580881252375,"y":0.5433967284609884},{"x":0.6748508740639563,"y":0.5433967284609884},{"x":0.6748508740639563,"y":0.5538157381978457},{"x":0.5662580881252375,"y":0.5538157381978457}]}},"page":1},"text":"Invoice Discount"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5555536550180409,"width":0.09140962741509927,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5555536550180409},{"x":0.17238834437523246,"y":0.5555536550180409},{"x":0.17238834437523246,"y":0.5664006939257088},{"x":0.08097871696013319,"y":0.5664006939257088}]}},"page":1},"text":"VAT Identifier"},{"location":{"bounding_box":{"left":0.2441704450391774,"top":0.5555536550180409,"width":0.04356295498138735,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.2441704450391774,"y":0.5555536550180409},{"x":0.28773340002056474,"y":0.5559902570191682},{"x":0.28773340002056474,"y":0.5659726239318967},{"x":0.2441704450391774,"y":0.5659726239318967}]}},"page":1},"text":"VAT %"},{"location":{"bounding_box":{"left":0.3337407232294869,"top":0.5559902570191682,"width":0.08405233870574069,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.3337407232294869,"y":0.5559902570191682},{"x":0.4177930619352276,"y":0.5559902570191682},{"x":0.4177930619352276,"y":0.5659726239318967},{"x":0.3337407232294869,"y":0.5659726239318967}]}},"page":1},"text":"Line Amount"},{"location":{"bounding_box":{"left":0.49141446133538874,"top":0.5564183270129802,"width":0.05398180587991658,"height":0.009554296918916516,"polygon":{"coordinates":[{"x":0.49141446133538874,"y":0.5564183270129802},{"x":0.5453962672153053,"y":0.5564183270129802},{"x":0.5453962672153053,"y":0.5659726239318967},{"x":0.49141446133538874,"y":0.5655360219307696}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.623313465262188,"top":0.5559902570191682,"width":0.053981748178689615,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.623313465262188,"y":0.5564183270129802},{"x":0.6772952134408776,"y":0.5559902570191682},{"x":0.6772952134408776,"y":0.5659726239318967},{"x":0.623313465262188,"y":0.5659726239318967}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.7404857312366862,"top":0.5559902570191682,"width":0.06258546272979659,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.7404857312366862,"y":0.5559902570191682},{"x":0.8030711939664827,"y":0.5559902570191682},{"x":0.8030711939664827,"y":0.5659726239318967},{"x":0.7404857312366862,"y":0.5659726239318967}]}},"page":1},"text":"VAT Base"},{"location":{"bounding_box":{"left":0.851535031511217,"top":0.5559902570191682,"width":0.08527450839420148,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.851535031511217,"y":0.5559902570191682},{"x":0.9368095399054185,"y":0.5564183270129802},{"x":0.9368095399054185,"y":0.5664006939257088},{"x":0.851535031511217,"y":0.5659726239318967}]}},"page":1},"text":"VAT Amount"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5798588944788279,"width":0.06012899888255803,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5798588944788279},{"x":0.14110771584269122,"y":0.5798588944788279},{"x":0.14110771584269122,"y":0.5902779042156853},{"x":0.08097871696013319,"y":0.5902779042156853}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.008579508886392861,"height":0.008681092916662192,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5811602092978958},{"x":0.28773340002056474,"y":0.5807235664737671},{"x":0.28833845508657663,"y":0.5889765893966172},{"x":0.27975894620018377,"y":0.5894046593904293}]}},"page":1},"text":"0"},{"location":{"bounding_box":{"left":0.3668727966065216,"top":0.5802955373029566,"width":0.049685978382581486,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.3668727966065216,"y":0.5802955373029566},{"x":0.4165587749891031,"y":0.5802955373029566},{"x":0.4165587749891031,"y":0.5907059333864958},{"x":0.3668727966065216,"y":0.5907059333864958}]}},"page":1},"text":"1,600.00"},{"location":{"bounding_box":{"left":0.5190164779701909,"top":0.5807235664737671,"width":0.0276140761912389,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.5190164779701909,"y":0.5807235664737671},{"x":0.546013381837754,"y":0.5807235664737671},{"x":0.5466305541614298,"y":0.5902779042156853},{"x":0.5190164779701909,"y":0.5898412613915565}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.6503104268309782,"top":0.5802955373029566,"width":0.0276019589335752,"height":0.009545724088599883,"polygon":{"coordinates":[{"x":0.6503104268309782,"y":0.5802955373029566},{"x":0.6779123857645534,"y":0.5802955373029566},{"x":0.6779123857645534,"y":0.5898412613915565},{"x":0.6503104268309782,"y":0.5898412613915565}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.7521509574883902,"top":0.5802955373029566,"width":0.050303121855643784,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.7521509574883902,"y":0.5802955373029566},{"x":0.802454079344034,"y":0.5802955373029566},{"x":0.802454079344034,"y":0.5907059333864958},{"x":0.7521509574883902,"y":0.5902779042156853}]}},"page":1},"text":"1,600.00"},{"location":{"bounding_box":{"left":0.9098125783366283,"top":0.5802955373029566,"width":0.026379789245114416,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.9098125783366283,"y":0.5802955373029566},{"x":0.9361923675817427,"y":0.5802955373029566},{"x":0.9361923675817427,"y":0.5902779042156853},{"x":0.910429750660304,"y":0.5894046593904293}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.2527620134820071,"top":0.6076400084030066,"width":0.034971386538557636,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.2527620134820071,"y":0.6076400084030066},{"x":0.28773340002056474,"y":0.6076400084030066},{"x":0.28773340002056474,"y":0.6171857324916066},{"x":0.2527620134820071,"y":0.6167491304904794}]}},"page":1},"text":"Total"},{"location":{"bounding_box":{"left":0.3619598544867378,"top":0.6072034064018794,"width":0.05459892050236531,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.3619598544867378,"y":0.6072034064018794},{"x":0.4165587749891031,"y":0.6072034064018794},{"x":0.4165587749891031,"y":0.6171857324916066},{"x":0.36257699795980003,"y":0.6176223753157353}]}},"page":1},"text":"1,600.00"},{"location":{"bounding_box":{"left":0.5171771359580545,"top":0.6076400084030066,"width":0.027601958933575088,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.5171771359580545,"y":0.6076400084030066},{"x":0.5447790948916296,"y":0.6076400084030066},{"x":0.5447790948916296,"y":0.6171857324916066},{"x":0.5171771359580545,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.6478539124951661,"top":0.6076400084030066,"width":0.029441300945711513,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.6478539124951661,"y":0.6080680783968186},{"x":0.6772952134408776,"y":0.6076400084030066},{"x":0.6772952134408776,"y":0.6171857324916066},{"x":0.6484710848188419,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.7478551588416686,"top":0.6067667635777507,"width":0.0552160351248141,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.7478551588416686,"y":0.6072034064018794},{"x":0.8030711939664827,"y":0.6067667635777507},{"x":0.8030711939664827,"y":0.6176223753157353},{"x":0.7478551588416686,"y":0.6176223753157353}]}},"page":1},"text":"1,600.00"},{"location":{"bounding_box":{"left":0.9067510666360311,"top":0.6076400084030066,"width":0.030058473269387376,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9067510666360311,"y":0.6076400084030066},{"x":0.9361923675817427,"y":0.6076400084030066},{"x":0.9368095399054185,"y":0.6171857324916066},{"x":0.9067510666360311,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.6506087076931845,"width":0.10307482481618986,"height":0.011283640908795078,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.6506087076931845},{"x":0.18405354177632305,"y":0.6506087076931845},{"x":0.18405354177632305,"y":0.6618923486019795},{"x":0.08097871696013319,"y":0.6618923486019795}]}},"page":1},"text":"Ship-to Address"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.6640583354159868,"width":0.16073524259384558,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.6640583354159868},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.08097871696013319,"y":0.6749139471539713}]}},"page":1},"text":"CRONUS International Ltd."},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6783812487870465,"width":0.06380763963091064,"height":0.011283681731796724,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6783812487870465},{"x":0.14540350006410607,"y":0.6788178507881738},{"x":0.14540350006410607,"y":0.6896649305188433},{"x":0.08159586043319543,"y":0.6892368605250312}]}},"page":1},"text":"5 The Ring"},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6927041213351048,"width":0.0766829183134116,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6927041213351048},{"x":0.15827877874660704,"y":0.6927041213351048},{"x":0.15827877874660704,"y":0.7026864882478335},{"x":0.08159586043319543,"y":0.7022584182540215}]}},"page":1},"text":"Westminster"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.7052891178859695,"width":0.1349604939894363,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.7157081276228269},{"x":0.08097871696013319,"y":0.7052891178859695},{"x":0.2153341703088643,"y":0.7052891178859695},{"x":0.2153341703088643,"y":0.7157081276228269}]}},"page":1},"text":"CANBERRA NSW 2600"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.720048592435155,"width":0.053376729175944534,"height":0.009545805734602952,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.720048592435155},{"x":0.13373831708832223,"y":0.720048592435155},{"x":0.13435544613607772,"y":0.7295943981697579},{"x":0.08097871696013319,"y":0.7295943981697579}]}},"page":1},"text":"Australia"}],"page_read_results":[{"page":1,"elements":[{"id":"0","text":"Purchase","bounding_box":{"left":0.7245368812971513,"top":0.03992945489372671,"width":0.10000118864527552,"height":0.017362122047384562,"polygon":{"coordinates":[{"x":0.7245368812971513,"y":0.03992945489372671},{"x":0.8239209553199781,"y":0.040366077306354664},{"x":0.8245380699424268,"y":0.05685495452848331},{"x":0.7251539959196001,"y":0.05729157694111127}]}}},{"id":"1","text":"-","bounding_box":{"left":0.8288338685891484,"top":0.040366077306354664,"width":0.011048053928028323,"height":0.016488877222128648,"polygon":{"coordinates":[{"x":0.8288338685891484,"y":0.040366077306354664},{"x":0.8392647501935011,"y":0.040366077306354664},{"x":0.8398819225171767,"y":0.05685495452848331},{"x":0.8288338685891484,"y":0.05685495452848331}]}}},{"id":"2","text":"Invoice","bounding_box":{"left":0.8441656039062346,"top":0.040366077306354664,"width":0.08159588207115553,"height":0.016488877222128648,"polygon":{"coordinates":[{"x":0.8441656039062346,"y":0.040366077306354664},{"x":0.9251564309113782,"y":0.040802697167545025},{"x":0.9257614859773902,"y":0.05685495452848331},{"x":0.8447827762299103,"y":0.05685495452848331}]}}},{"id":"3","text":"First","bounding_box":{"left":0.08097871696013319,"top":0.06119548567818885,"width":0.024540468870938165,"height":0.011283666423171072,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.06119548567818885},{"x":0.10551918583107135,"y":0.06163210809081681},{"x":0.10551918583107135,"y":0.07205109231329825},{"x":0.08097871696013319,"y":0.07247915210135993}]}}},{"id":"4","text":"Up","bounding_box":{"left":0.10859280036402551,"top":0.06163210809081681,"width":0.017788206376978047,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.10859280036402551,"y":0.06163210809081681},{"x":0.12638100674100355,"y":0.06163210809081681},{"x":0.12638100674100355,"y":0.07247915210135993},{"x":0.10859280036402551,"y":0.07205109231329825}]}}},{"id":"5","text":"Consultants","bounding_box":{"left":0.13067680538772514,"top":0.06163210809081681,"width":0.06932561517874627,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.13067680538772514,"y":0.06163210809081681},{"x":0.2000024205664714,"y":0.06163210809081681},{"x":0.2000024205664714,"y":0.07247915210135993},{"x":0.13067680538772514,"y":0.07247915210135993}]}}},{"id":"6","text":"Page","bounding_box":{"left":0.8914072140612812,"top":0.06163210809081681,"width":0.03067558789183611,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.8914072140612812,"y":0.06163210809081681},{"x":0.9220828019531173,"y":0.06163210809081681},{"x":0.9220828019531173,"y":0.07247915210135993},{"x":0.8914072140612812,"y":0.07247915210135993}]}}},{"id":"7","text":"1","bounding_box":{"left":0.9263786005998389,"top":0.06163210809081681,"width":0.005517968335182255,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.9263786005998389,"y":0.06163210809081681},{"x":0.9312915715702362,"y":0.06163210809081681},{"x":0.9318965689350212,"y":0.07247915210135993},{"x":0.9263786005998389,"y":0.07247915210135993}]}}},{"id":"8","text":"Evan","bounding_box":{"left":0.08037367631942799,"top":0.07551837863774787,"width":0.026984837098473033,"height":0.009982366912728677,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.07551837863774787},{"x":0.10675347277719582,"y":0.07551837863774787},{"x":0.10735851341790102,"y":0.08550074555047654},{"x":0.08097871696013319,"y":0.08550074555047654}]}}},{"id":"9","text":"McIntosh","bounding_box":{"left":0.11165430485196923,"top":0.07551837863774787,"width":0.05459892771501873,"height":0.009982366912728677,"polygon":{"coordinates":[{"x":0.11165430485196923,"y":0.07551837863774787},{"x":0.16625323256698796,"y":0.07595500105037582},{"x":0.16625323256698796,"y":0.08550074555047654},{"x":0.11165430485196923,"y":0.08550074555047654}]}}},{"id":"10","text":"Allan","bounding_box":{"left":0.08097871696013319,"top":0.0885399669839893,"width":0.029453403778068613,"height":0.011283671526046257,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.0885399669839893},{"x":0.1104321207382018,"y":0.0885399669839893},{"x":0.1104321207382018,"y":0.09982363851003556},{"x":0.08097871696013319,"y":0.09982363851003556}]}}},{"id":"11","text":"Turing","bounding_box":{"left":0.11411077591186114,"top":0.0885399669839893,"width":0.03803289102650137,"height":0.011283671526046257,"polygon":{"coordinates":[{"x":0.11411077591186114,"y":0.0885399669839893},{"x":0.1521436669383625,"y":0.0885399669839893},{"x":0.1521436669383625,"y":0.09982363851003556},{"x":0.11411077591186114,"y":0.09982363851003556}]}}},{"id":"12","text":"Road,","bounding_box":{"left":0.1552172670460099,"top":0.08810334457136135,"width":0.03557642717926285,"height":0.011720293938674214,"polygon":{"coordinates":[{"x":0.1552172670460099,"y":0.0885399669839893},{"x":0.19079369422527276,"y":0.08810334457136135},{"x":0.19079369422527276,"y":0.09982363851003556},{"x":0.1552172670460099,"y":0.09982363851003556}]}}},{"id":"13","text":"20","bounding_box":{"left":0.1944723493989321,"top":0.08810334457136135,"width":0.014726709101687663,"height":0.011720293938674214,"polygon":{"coordinates":[{"x":0.1944723493989321,"y":0.08810334457136135},{"x":0.20919905850061976,"y":0.08810334457136135},{"x":0.20919905850061976,"y":0.09982363851003556},{"x":0.1944723493989321,"y":0.09982363851003556}]}}},{"id":"14","text":"Surrey","bounding_box":{"left":0.08097871696013319,"top":0.10242624773667074,"width":0.03742785038579617,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.11240860444364903},{"x":0.08159586043319543,"y":0.10242624773667074},{"x":0.11840656734592936,"y":0.1028628701492987},{"x":0.11778942387286712,"y":0.11284522685627699}]}}},{"id":"15","text":"5","bounding_box":{"left":0.9251564309113782,"top":0.09418180784988762,"width":0.00735731034731868,"height":0.009117674506288656,"polygon":{"coordinates":[{"x":0.9251564309113782,"y":0.1028628701492987},{"x":0.9257614859773902,"y":0.09418180784988762},{"x":0.9325137412586969,"y":0.09418180784988762},{"x":0.9318965689350212,"y":0.10329948235617628}]}}},{"id":"16","text":"ALBERTON","bounding_box":{"left":0.08037367631942799,"top":0.11588445849554013,"width":0.061956223637030655,"height":0.010418979119606236,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.11588445849554013},{"x":0.14232989995645864,"y":0.11632108090816809},{"x":0.14232989995645864,"y":0.12630343761514637},{"x":0.08037367631942799,"y":0.12630343761514637}]}}},{"id":"17","text":"QLD","bounding_box":{"left":0.1496871958784706,"top":0.11632108090816809,"width":0.0233182919698241,"height":0.00998235670697828,"polygon":{"coordinates":[{"x":0.1496871958784706,"y":0.11632108090816809},{"x":0.1730054878482947,"y":0.11632108090816809},{"x":0.1730054878482947,"y":0.12630343761514637},{"x":0.1496871958784706,"y":0.12630343761514637}]}}},{"id":"18","text":"4207","bounding_box":{"left":0.17914059965653922,"top":0.11588445849554013,"width":0.0294534037780686,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.17914059965653922,"y":0.11632108090816809},{"x":0.20859400343460782,"y":0.11588445849554013},{"x":0.20859400343460782,"y":0.12673149740320805},{"x":0.17914059965653922,"y":0.12630343761514637}]}}},{"id":"19","text":"5","bounding_box":{"left":0.8693232234628884,"top":0.10850470080944664,"width":0.007974424969767413,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.10850470080944664},{"x":0.8772976484326558,"y":0.10850470080944664},{"x":0.8772976484326558,"y":0.1189236799290529},{"x":0.8693232234628884,"y":0.1189236799290529}]}}},{"id":"20","text":"The","bounding_box":{"left":0.8803712773909167,"top":0.10850470080944664,"width":0.0214668759759441,"height":0.010855601532234208,"polygon":{"coordinates":[{"x":0.8803712773909167,"y":0.10850470080944664},{"x":0.9018381533668608,"y":0.10850470080944664},{"x":0.9018381533668608,"y":0.11936030234168085},{"x":0.8803712773909167,"y":0.1189236799290529}]}}},{"id":"21","text":"Ring","bounding_box":{"left":0.9049117246238948,"top":0.10850470080944664,"width":0.027602016634802107,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.9049117246238948,"y":0.10850470080944664},{"x":0.9325137412586969,"y":0.1089413232220746},{"x":0.9325137412586969,"y":0.11978836212974252},{"x":0.9049117246238948,"y":0.11936030234168085}]}}},{"id":"22","text":"Australia","bounding_box":{"left":0.08097871696013319,"top":0.1306439738677271,"width":0.05215455948748386,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.1310720336557888},{"x":0.13313327644761705,"y":0.1306439738677271},{"x":0.13313327644761705,"y":0.14018971836782781},{"x":0.08159586043319543,"y":0.14018971836782781}]}}},{"id":"23","text":"Westminster","bounding_box":{"left":0.8570529998463994,"top":0.12282759376900566,"width":0.07607785603474626,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.8570529998463994,"y":0.12282759376900566},{"x":0.9331308558811456,"y":0.12326421618163362},{"x":0.9331308558811456,"y":0.1332465728886119},{"x":0.8576701144688481,"y":0.13280996068173434}]}}},{"id":"24","text":"CANBERRA","bounding_box":{"left":0.7999976227094489,"top":0.13672242694050302,"width":0.06502980210671794,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.7999976227094489,"y":0.13672242694050302},{"x":0.8650274248161668,"y":0.13715048672856467},{"x":0.8650274248161668,"y":0.14670479385323168},{"x":0.7999976227094489,"y":0.14670479385323168}]}}},{"id":"25","text":"NSW","bounding_box":{"left":0.8693232234628884,"top":0.13672242694050302,"width":0.025157619556653743,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.13715048672856467},{"x":0.8944808430195421,"y":0.13672242694050302},{"x":0.8944808430195421,"y":0.14670479385323168},{"x":0.8693232234628884,"y":0.14670479385323168}]}}},{"id":"26","text":"2600","bounding_box":{"left":0.904294610001446,"top":0.13672242694050302,"width":0.0276019589335752,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.904294610001446,"y":0.13672242694050302},{"x":0.9318965689350212,"y":0.13672242694050302},{"x":0.9318965689350212,"y":0.14756947605392132},{"x":0.904294610001446,"y":0.14713285364129336}]}}},{"id":"27","text":"Australia","bounding_box":{"left":0.8809763324569286,"top":0.1514733796881237,"width":0.05153740880176827,"height":0.00955430712466701,"polygon":{"coordinates":[{"x":0.8809763324569286,"y":0.15191000210075165},{"x":0.9325137412586969,"y":0.1514733796881237},{"x":0.9325137412586969,"y":0.1610276868127907},{"x":0.8809763324569286,"y":0.1610276868127907}]}}},{"id":"28","text":"Pay-to","bounding_box":{"left":0.08037367631942799,"top":0.18663425129839598,"width":0.03987221861333104,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.18663425129839598},{"x":0.12024589493275903,"y":0.18663425129839598},{"x":0.12024589493275903,"y":0.1974812902060639},{"x":0.08037367631942799,"y":0.1974812902060639}]}}},{"id":"29","text":"Vendor","bounding_box":{"left":0.12330740663335614,"top":0.18619762888576802,"width":0.04294582593363182,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.12330740663335614,"y":0.18663425129839598},{"x":0.16625323256698796,"y":0.18619762888576802},{"x":0.16625323256698796,"y":0.1974812902060639},{"x":0.12330740663335614,"y":0.1974812902060639}]}}},{"id":"30","text":"No.","bounding_box":{"left":0.16932683267463536,"top":0.18619762888576802,"width":0.022701148496761858,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.16932683267463536,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18663425129839598},{"x":0.19202798117139722,"y":0.1974812902060639},{"x":0.16932683267463536,"y":0.1974812902060639}]}}},{"id":"31","text":"20000","bounding_box":{"left":0.23619599121879647,"top":0.18619762888576802,"width":0.03619355622701831,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.19617999579849668},{"x":0.23619599121879647,"y":0.19617999579849668}]}}},{"id":"32","text":"Phone","bounding_box":{"left":0.666864331836525,"top":0.18011916560724173,"width":0.03804501549681849,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.18011916560724173},{"x":0.7049093473333435,"y":0.18011916560724173},{"x":0.7049093473333435,"y":0.19010153251997042},{"x":0.6674814464589738,"y":0.18967348293765912}]}}},{"id":"33","text":"No.","bounding_box":{"left":0.7079708013327137,"top":0.18011916560724173,"width":0.02208404829961985,"height":0.010418989325356648,"polygon":{"coordinates":[{"x":0.7079708013327137,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19053815493259837},{"x":0.7079708013327137,"y":0.19010153251997042}]}}},{"id":"34","text":"0666-666-6666","bounding_box":{"left":0.8423262618940982,"top":0.17969111602493043,"width":0.0901874793645987,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8423262618940982,"y":0.18011916560724173},{"x":0.9325137412586969,"y":0.17969111602493043},{"x":0.9325137412586969,"y":0.18967348293765912},{"x":0.8423262618940982,"y":0.18967348293765912}]}}},{"id":"35","text":"VAT","bounding_box":{"left":0.08097871696013319,"top":0.20052052184532704,"width":0.023318284757170724,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.20052052184532704},{"x":0.10429700171730391,"y":0.20052052184532704},{"x":0.10429700171730391,"y":0.21136756075299495},{"x":0.08097871696013319,"y":0.21093951117068366}]}}},{"id":"36","text":"Registration","bounding_box":{"left":0.10735851341790102,"top":0.20008389943269908,"width":0.07239922971170044,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.10735851341790102,"y":0.20052052184532704},{"x":0.17975774312960147,"y":0.20008389943269908},{"x":0.17975774312960147,"y":0.2118041831656229},{"x":0.10735851341790102,"y":0.21136756075299495}]}}},{"id":"37","text":"No.","bounding_box":{"left":0.18281925483019856,"top":0.20008389943269908,"width":0.022701148496761858,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.18281925483019856,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.2118041831656229},{"x":0.18281925483019856,"y":0.2118041831656229}]}}},{"id":"38","text":"274863274B01","bounding_box":{"left":0.23619599121879647,"top":0.20052052184532704,"width":0.08650879534032585,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.20052052184532704},{"x":0.32208764308606014,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.21093951117068366},{"x":0.23619599121879647,"y":0.2105028887580557}]}}},{"id":"39","text":"Home","bounding_box":{"left":0.666864331836525,"top":0.19270414174660558,"width":0.036810728550694005,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.20355975348459018},{"x":0.666864331836525,"y":0.20355975348459018}]}}},{"id":"40","text":"Page","bounding_box":{"left":0.7067486316442531,"top":0.19270414174660558,"width":0.03129276021551175,"height":0.011292234150612562,"polygon":{"coordinates":[{"x":0.7067486316442531,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.20399637589721814},{"x":0.7067486316442531,"y":0.20355975348459018}]}}},{"id":"41","text":"Email","bounding_box":{"left":0.666864331836525,"top":0.2057257402985974,"width":0.033132044526421156,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2157080867998253},{"x":0.666864331836525,"y":0.2157080867998253}]}}},{"id":"42","text":"Document","bounding_box":{"left":0.08037367631942799,"top":0.22872968535181712,"width":0.06317840775079811,"height":0.010855611737984577,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.22872968535181712},{"x":0.1435520840702261,"y":0.22916630776444508},{"x":0.1435520840702261,"y":0.2395852970898017},{"x":0.08037367631942799,"y":0.2395852970898017}]}}},{"id":"43","text":"Date","bounding_box":{"left":0.1466256841778735,"top":0.22916630776444508,"width":0.027601987784188625,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.1466256841778735,"y":0.22916630776444508},{"x":0.17422767196206213,"y":0.22916630776444508},{"x":0.17422767196206213,"y":0.2395852970898017},{"x":0.1466256841778735,"y":0.2395852970898017}]}}},{"id":"44","text":"June","bounding_box":{"left":0.23373952015890456,"top":0.22916630776444508,"width":0.029453403778068626,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23373952015890456,"y":0.22916630776444508},{"x":0.26257578046391095,"y":0.22916630776444508},{"x":0.2631929239369732,"y":0.2395852970898017},{"x":0.2343566636319668,"y":0.2395852970898017}]}}},{"id":"45","text":"4,","bounding_box":{"left":0.26564940942217186,"top":0.22916630776444508,"width":0.011653080143426753,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.26564940942217186,"y":0.22916630776444508},{"x":0.2773024895655986,"y":0.22960293017707303},{"x":0.2773024895655986,"y":0.2395852970898017},{"x":0.2662544356375703,"y":0.2395852970898017}]}}},{"id":"46","text":"2025","bounding_box":{"left":0.27975894620018377,"top":0.22960293017707303,"width":0.029441329796325078,"height":0.01041041649503996,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.22960293017707303},{"x":0.30920027599650884,"y":0.22960293017707303},{"x":0.30920027599650884,"y":0.240013346672113},{"x":0.2803640012661957,"y":0.2395852970898017}]}}},{"id":"47","text":"VAT","bounding_box":{"left":0.6674814464589738,"top":0.2200486332581564,"width":0.02454050493420501,"height":0.010855591326483838,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.2200486332581564},{"x":0.691404779069503,"y":0.2200486332581564},{"x":0.6920219513931788,"y":0.23090422458464024},{"x":0.6674814464589738,"y":0.23090422458464024}]}}},{"id":"48","text":"Registration","bounding_box":{"left":0.694478408027764,"top":0.2200486332581564,"width":0.07238711245403673,"height":0.010855591326483838,"polygon":{"coordinates":[{"x":0.694478408027764,"y":0.2200486332581564},{"x":0.7668655204818007,"y":0.2200486332581564},{"x":0.7668655204818007,"y":0.23090422458464024},{"x":0.6950955803514397,"y":0.23090422458464024}]}}},{"id":"49","text":"No.","bounding_box":{"left":0.7699391494400615,"top":0.21962056326434437,"width":0.02146687597594421,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.7699391494400615,"y":0.2200486332581564},{"x":0.7914060254160057,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.23090422458464024},{"x":0.7699391494400615,"y":0.23090422458464024}]}}},{"id":"50","text":"777777777","bounding_box":{"left":0.8687060511392126,"top":0.2200486332581564,"width":0.06442480474193302,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8687060511392126,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22048525567078436},{"x":0.9331308558811456,"y":0.22960293017707303},{"x":0.8687060511392126,"y":0.22916630776444508}]}}},{"id":"51","text":"Invoice","bounding_box":{"left":0.08037367631942799,"top":0.24262452872906484,"width":0.04232868967322295,"height":0.009982346501227896,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.24262452872906484},{"x":0.12270236599265094,"y":0.24262452872906484},{"x":0.12270236599265094,"y":0.25260687523029274},{"x":0.08037367631942799,"y":0.25260687523029274}]}}},{"id":"52","text":"No.","bounding_box":{"left":0.12638100674100355,"top":0.24262452872906484,"width":0.022084005023699615,"height":0.009982346501227896,"polygon":{"coordinates":[{"x":0.12638100674100355,"y":0.24262452872906484},{"x":0.14846501176470317,"y":0.24305257831137614},{"x":0.14846501176470317,"y":0.25260687523029274},{"x":0.12638100674100355,"y":0.25260687523029274}]}}},{"id":"53","text":"108218","bounding_box":{"left":0.23619599121879647,"top":0.24218790631643689,"width":0.04356295498138729,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.24218790631643689},{"x":0.27975894620018377,"y":0.2521702528176648},{"x":0.23681313469185872,"y":0.2517336304050368}]}}},{"id":"54","text":"Giro","bounding_box":{"left":0.666864331836525,"top":0.23437152621771543,"width":0.02454044723297799,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.23480814863034338},{"x":0.691404779069503,"y":0.23437152621771543},{"x":0.691404779069503,"y":0.24435387271894335},{"x":0.6674814464589738,"y":0.24435387271894335}]}}},{"id":"55","text":"No.","bounding_box":{"left":0.6957005777162246,"top":0.23437152621771543,"width":0.022701162922068696,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.6957005777162246,"y":0.23437152621771543},{"x":0.7184017406382933,"y":0.23437152621771543},{"x":0.7184017406382933,"y":0.24392582313663205},{"x":0.6957005777162246,"y":0.24435387271894335}]}}},{"id":"56","text":"888-9999","bounding_box":{"left":0.8779148207563315,"top":0.23437152621771543,"width":0.0552160351248141,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8779148207563315,"y":0.23480814863034338},{"x":0.9325137412586969,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.24392582313663205},{"x":0.8779148207563315,"y":0.2434892007240041}]}}},{"id":"57","text":"Bank","bounding_box":{"left":0.6674814464589738,"top":0.24869441917727445,"width":0.02821913125725084,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.2578120936835631},{"x":0.6674814464589738,"y":0.2578120936835631}]}}},{"id":"58","text":"World","bounding_box":{"left":0.8294509832115972,"top":0.2482663491834624,"width":0.03557644160456963,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.8294509832115972,"y":0.2482663491834624},{"x":0.8650274248161668,"y":0.24869441917727445},{"x":0.8650274248161668,"y":0.2582487160961911},{"x":0.8294509832115972,"y":0.2586767860900031}]}}},{"id":"59","text":"Wide","bounding_box":{"left":0.8693232234628884,"top":0.24869441917727445,"width":0.03189775758029667,"height":0.009554296918916655,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.24869441917727445},{"x":0.9006159259771732,"y":0.24869441917727445},{"x":0.901220981043185,"y":0.2582487160961911},{"x":0.8699403380853371,"y":0.2582487160961911}]}}},{"id":"60","text":"Bank","bounding_box":{"left":0.904294610001446,"top":0.24869441917727445,"width":0.028836245879699685,"height":0.009554296918916655,"polygon":{"coordinates":[{"x":0.904294610001446,"y":0.24869441917727445},{"x":0.9325137412586969,"y":0.24869441917727445},{"x":0.9331308558811456,"y":0.2582487160961911},{"x":0.9049117246238948,"y":0.2582487160961911}]}}},{"id":"61","text":"Posting","bounding_box":{"left":0.07975653284636575,"top":0.26953237741648695,"width":0.04540228978087035,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269960447410299},{"x":0.1251588226272361,"y":0.26953237741648695},{"x":0.1251588226272361,"y":0.28125268156091154},{"x":0.08037367631942799,"y":0.2808160591482836}]}}},{"id":"62","text":"Date","bounding_box":{"left":0.12822033432783322,"top":0.26953237741648695,"width":0.030675587891836026,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.12822033432783322,"y":0.26953237741648695},{"x":0.15827877874660704,"y":0.26953237741648695},{"x":0.15889592221966925,"y":0.28125268156091154},{"x":0.12883747780089547,"y":0.28125268156091154}]}}},{"id":"63","text":"06/04/25","bounding_box":{"left":0.23497380710502905,"top":0.26953237741648695,"width":0.055821104616132794,"height":0.010847059319168684,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.26953237741648695},{"x":0.29079491172116184,"y":0.26953237741648695},{"x":0.29079491172116184,"y":0.28037943673565563},{"x":0.23497380710502905,"y":0.2799428143230277}]}}},{"id":"64","text":"Account","bounding_box":{"left":0.666864331836525,"top":0.2634539345494614,"width":0.0503152391133076,"height":0.009117674506288698,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2634539345494614},{"x":0.7171795709498326,"y":0.2634539345494614},{"x":0.7165623986261569,"y":0.2725716090557501},{"x":0.6680986187826495,"y":0.2725716090557501}]}}},{"id":"65","text":"No.","bounding_box":{"left":0.7196360275844178,"top":0.2634539345494614,"width":0.0214668759759441,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.7196360275844178,"y":0.2634539345494614},{"x":0.7411029035603619,"y":0.2638905569620894},{"x":0.7404857312366862,"y":0.2729996790495621},{"x":0.7196360275844178,"y":0.2725716090557501}]}}},{"id":"66","text":"99-99-888","bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}}},{"id":"67","text":"Due","bounding_box":{"left":0.08097871696013319,"top":0.28341864796341804,"width":0.023318284757170724,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.28341864796341804},{"x":0.10429700171730391,"y":0.28341864796341804},{"x":0.10429700171730391,"y":0.29296439246351874},{"x":0.08097871696013319,"y":0.29296439246351874}]}}},{"id":"68","text":"Date","bounding_box":{"left":0.10859280036402551,"top":0.28341864796341804,"width":0.028219116831944127,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.10859280036402551,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.29253634288120745},{"x":0.10859280036402551,"y":0.29296439246351874}]}}},{"id":"69","text":"07/31/25","bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}}},{"id":"70","text":"Payment","bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.053376729175944534,"height":0.011283661320295846,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.13435544613607772,"y":0.3098984674800296},{"x":0.13435544613607772,"y":0.3207455063876975},{"x":0.08097871696013319,"y":0.3207455063876975}]}}},{"id":"71","text":"Terms","bounding_box":{"left":0.13742906066903188,"top":0.3098984674800296,"width":0.03619357065232506,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.13742906066903188,"y":0.3098984674800296},{"x":0.1730054878482947,"y":0.3098984674800296},{"x":0.17362263132135694,"y":0.3198808139812575},{"x":0.13742906066903188,"y":0.32030888397506957}]}}},{"id":"72","text":"End","bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.02147896438299446,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.2570578121287287,"y":0.3098984674800296},{"x":0.2570578121287287,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}}},{"id":"73","text":"of","bounding_box":{"left":0.2613536107754503,"top":0.3098984674800296,"width":0.012875278682500935,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.2613536107754503,"y":0.3098984674800296},{"x":0.2742288894579512,"y":0.3098984674800296},{"x":0.2742288894579512,"y":0.3194442119801303},{"x":0.2613536107754503,"y":0.3194442119801303}]}}},{"id":"74","text":"Next","bounding_box":{"left":0.2773024895655986,"top":0.3098984674800296,"width":0.028219131257250896,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.2773024895655986,"y":0.3098984674800296},{"x":0.3055216208228495,"y":0.3098984674800296},{"x":0.3055216208228495,"y":0.3198808139812575},{"x":0.2773024895655986,"y":0.3194442119801303}]}}},{"id":"75","text":"Month","bounding_box":{"left":0.30797807745743466,"top":0.3098984674800296,"width":0.03987221140067765,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.30797807745743466,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3194442119801303},{"x":0.30797807745743466,"y":0.3198808139812575}]}}},{"id":"76","text":"ABN","bounding_box":{"left":0.6680986187826495,"top":0.30338338178887536,"width":0.022701162922068585,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.6680986187826495,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.312501056295164},{"x":0.6680986187826495,"y":0.312501056295164}]}}},{"id":"77","text":"53001003000","bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}}},{"id":"78","text":"Shipment","bounding_box":{"left":0.08097871696013319,"top":0.32291149320170476,"width":0.05645034370889869,"height":0.011292234150612535,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.3233481156143327},{"x":0.13742906066903188,"y":0.32291149320170476},{"x":0.13742906066903188,"y":0.3337671049396893},{"x":0.08159586043319543,"y":0.3342037273523173}]}}},{"id":"79","text":"Method","bounding_box":{"left":0.14049057236962897,"top":0.32291149320170476,"width":0.0478587536281089,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.14049057236962897,"y":0.32291149320170476},{"x":0.18834932599773788,"y":0.32291149320170476},{"x":0.18834932599773788,"y":0.3337671049396893},{"x":0.14049057236962897,"y":0.3337671049396893}]}}},{"id":"80","text":"Prices","bounding_box":{"left":0.08037367631942799,"top":0.33636969375482373,"width":0.03435423585284203,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.33636969375482373},{"x":0.11411077591186114,"y":0.33636969375482373},{"x":0.11472791217227002,"y":0.3476533754866204},{"x":0.08097871696013319,"y":0.34721673266249165}]}}},{"id":"81","text":"Including","bounding_box":{"left":0.11717228039980487,"top":0.33636969375482373,"width":0.05645035092155207,"height":0.011720283732923886,"polygon":{"coordinates":[{"x":0.11717228039980487,"y":0.33636969375482373},{"x":0.17362263132135694,"y":0.33636969375482373},{"x":0.17362263132135694,"y":0.3480899774877476},{"x":0.11778942387286712,"y":0.3476533754866204}]}}},{"id":"82","text":"VAT","bounding_box":{"left":0.1779184155427718,"top":0.33636969375482373,"width":0.025145516724296713,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.1779184155427718,"y":0.33636969375482373},{"x":0.2030639322670685,"y":0.33636969375482373},{"x":0.2030639322670685,"y":0.3476533754866204},{"x":0.1779184155427718,"y":0.3476533754866204}]}}},{"id":"83","text":"No","bounding_box":{"left":0.23557884774573423,"top":0.3372343861612638,"width":0.017183165736272876,"height":0.008681072505161425,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3372343861612638},{"x":0.2527620134820071,"y":0.3372343861612638},{"x":0.2527620134820071,"y":0.3459154586664252},{"x":0.23557884774573423,"y":0.3459154586664252}]}}},{"id":"84","text":"Direct","bounding_box":{"left":0.5337431582212651,"top":0.38020306503994084,"width":0.0398722402512911,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5337431582212651,"y":0.38063970786406953},{"x":0.5736153984725562,"y":0.38020306503994084},{"x":0.5736153984725562,"y":0.39018543195266947},{"x":0.5343603305449408,"y":0.39018543195266947}]}}},{"id":"85","text":"Allow","bounding_box":{"left":0.6797517277766898,"top":0.37977499504612877,"width":0.031909874837960484,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6797517277766898,"y":0.37977499504612877},{"x":0.7116616026146503,"y":0.37977499504612877},{"x":0.7116616026146503,"y":0.38975736195885746},{"x":0.6797517277766898,"y":0.38975736195885746}]}}},{"id":"86","text":"Unit","bounding_box":{"left":0.4404941960066827,"top":0.39235999159699336,"width":0.028219131257250896,"height":0.010418968913855908,"polygon":{"coordinates":[{"x":0.4404941960066827,"y":0.3927965935981206},{"x":0.46809618379087137,"y":0.39235999159699336},{"x":0.4687133272639336,"y":0.40277896051084927},{"x":0.4404941960066827,"y":0.40234235850972205}]}}},{"id":"87","text":"of","bounding_box":{"left":0.47116978389851877,"top":0.39235999159699336,"width":0.014714591844023905,"height":0.010418968913855908,"polygon":{"coordinates":[{"x":0.47116978389851877,"y":0.39235999159699336},{"x":0.4858843757425427,"y":0.39235999159699336},{"x":0.4858843757425427,"y":0.40277896051084927},{"x":0.47116978389851877,"y":0.40277896051084927}]}}},{"id":"88","text":"Unit","bounding_box":{"left":0.5453962672153053,"top":0.39235999159699336,"width":0.028836245879699685,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.5453962672153053,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.4014776456917813},{"x":0.546013381837754,"y":0.4019057156855933}]}}},{"id":"89","text":"Invoice","bounding_box":{"left":0.6785295003870021,"top":0.3927965935981206,"width":0.04539020858647347,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.3927965935981206},{"x":0.7239197089734756,"y":0.39322466359193264},{"x":0.7239197089734756,"y":0.40277896051084927},{"x":0.6785295003870021,"y":0.40277896051084927}]}}},{"id":"90","text":"VAT","bounding_box":{"left":0.7742349480867831,"top":0.39235999159699336,"width":0.02699696156879028,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7742349480867831,"y":0.39235999159699336},{"x":0.8012319096555733,"y":0.39235999159699336},{"x":0.8012319096555733,"y":0.4019057156855933},{"x":0.774840003152795,"y":0.40234235850972205}]}}},{"id":"91","text":"No.","bounding_box":{"left":0.08221300390625766,"top":0.4053815493259837,"width":0.022689045664404828,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4149273142375851},{"x":0.08221300390625766,"y":0.4149273142375851}]}}},{"id":"92","text":"Description","bounding_box":{"left":0.17607910238124885,"top":0.4049449473248565,"width":0.07238711245403665,"height":0.012156926557052528,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4053815493259837},{"x":0.2484662148352855,"y":0.4049449473248565},{"x":0.2484662148352855,"y":0.417101873881909},{"x":0.17607910238124885,"y":0.4153639162387123}]}}},{"id":"93","text":"Quantity","bounding_box":{"left":0.3570590296246177,"top":0.4049449473248565,"width":0.057660432202962464,"height":0.012156926557052528,"polygon":{"coordinates":[{"x":0.3570590296246177,"y":0.4049449473248565},{"x":0.4147194618275802,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.417101873881909},{"x":0.3576640558400162,"y":0.4162286290566531}]}}},{"id":"94","text":"Measure","bounding_box":{"left":0.4404941960066827,"top":0.4058181921501124,"width":0.053981777029303124,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.4404941960066827,"y":0.4058181921501124},{"x":0.49447597303598584,"y":0.4058181921501124},{"x":0.49447597303598584,"y":0.4153639162387123},{"x":0.4404941960066827,"y":0.4149273142375851}]}}},{"id":"95","text":"Cost","bounding_box":{"left":0.5447790948916296,"top":0.4053815493259837,"width":0.028836303580926592,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.5447790948916296,"y":0.4053815493259837},{"x":0.5736153984725562,"y":0.4053815493259837},{"x":0.5736153984725562,"y":0.4144992442437731},{"x":0.5447790948916296,"y":0.4144992442437731}]}}},{"id":"96","text":"Discount","bounding_box":{"left":0.5914157076818913,"top":0.4049449473248565,"width":0.05766043220296235,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5914157076818913,"y":0.4049449473248565},{"x":0.6490761398848537,"y":0.4049449473248565},{"x":0.6490761398848537,"y":0.4153639162387123},{"x":0.5914157076818913,"y":0.4153639162387123}]}}},{"id":"97","text":"%","bounding_box":{"left":0.6564455097886093,"top":0.4053815493259837,"width":0.008579480035779352,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.6564455097886093,"y":0.4153639162387123},{"x":0.6570505648546212,"y":0.4053815493259837},{"x":0.6650249898243886,"y":0.4053815493259837},{"x":0.6650249898243886,"y":0.4153639162387123}]}}},{"id":"98","text":"Discount","bounding_box":{"left":0.679134555453014,"top":0.4053815493259837,"width":0.057055377136950525,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.679134555453014,"y":0.4058181921501124},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4153639162387123},{"x":0.679134555453014,"y":0.4149273142375851}]}}},{"id":"99","text":"Identifier","bounding_box":{"left":0.7730006611406586,"top":0.4049449473248565,"width":0.06135117578367211,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4049449473248565},{"x":0.8343518369243307,"y":0.4049449473248565},{"x":0.8343518369243307,"y":0.4153639162387123},{"x":0.7736177757631074,"y":0.4149273142375851}]}}},{"id":"100","text":"Amount","bounding_box":{"left":0.8815934470793774,"top":0.4053815493259837,"width":0.05275957849022894,"height":0.010419009736857332,"polygon":{"coordinates":[{"x":0.8815934470793774,"y":0.4053815493259837},{"x":0.9343530255696063,"y":0.4053815493259837},{"x":0.9343530255696063,"y":0.415800559062841},{"x":0.8815934470793774,"y":0.4149273142375851}]}}},{"id":"101","text":"IT","bounding_box":{"left":0.17607910238124885,"top":0.4296868296097721,"width":0.01165308014342678,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4296868296097721},{"x":0.18773218252467563,"y":0.43012343161089933},{"x":0.18773218252467563,"y":0.44053386851744003},{"x":0.17607910238124885,"y":0.44053386851744003}]}}},{"id":"102","text":"Support","bounding_box":{"left":0.19079369422527276,"top":0.43012343161089933,"width":0.04785876805341563,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.19079369422527276,"y":0.43012343161089933},{"x":0.2386524622786884,"y":0.4309881444288401},{"x":0.2386524622786884,"y":0.44140711334269594},{"x":0.19079369422527276,"y":0.44053386851744003}]}}},{"id":"103","text":"8","bounding_box":{"left":0.4165587749891031,"top":0.43012343161089933,"width":0.007369398754369039,"height":0.008681092916662192,"polygon":{"coordinates":[{"x":0.4165587749891031,"y":0.43012343161089933},{"x":0.4233110302704099,"y":0.43012343161089933},{"x":0.42392817374347214,"y":0.4388045245275615},{"x":0.41717591846216534,"y":0.4388045245275615}]}}},{"id":"104","text":"200.00","bounding_box":{"left":0.5331260435988163,"top":0.43012343161089933,"width":0.039267127484052256,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5331260435988163,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.43012343161089933},{"x":0.5723931710828686,"y":0.44010579852362797},{"x":0.5331260435988163,"y":0.4396691965225008}]}}},{"id":"105","text":"No","bounding_box":{"left":0.6785295003870021,"top":0.43055150160471134,"width":0.01778824965289827,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43923255369837205},{"x":0.6785295003870021,"y":0.4388045245275615}]}}},{"id":"106","text":"NON","bounding_box":{"left":0.7736177757631074,"top":0.4296868296097721,"width":0.02821913125725084,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7736177757631074,"y":0.4296868296097721},{"x":0.8018369070203583,"y":0.4296868296097721},{"x":0.8018369070203583,"y":0.4396691965225008},{"x":0.7742349480867831,"y":0.4396691965225008}]}}},{"id":"107","text":"GST","bounding_box":{"left":0.808589162301665,"top":0.4292501867856434,"width":0.02454050493420501,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.808589162301665,"y":0.4296868296097721},{"x":0.83312966723587,"y":0.4292501867856434},{"x":0.83312966723587,"y":0.44010579852362797},{"x":0.808589162301665,"y":0.4396691965225008}]}}},{"id":"108","text":"1,600.00","bounding_box":{"left":0.8846670760376383,"top":0.4296868296097721,"width":0.04846377984350736,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8846670760376383,"y":0.43012343161089933},{"x":0.9325137412586969,"y":0.4296868296097721},{"x":0.9331308558811456,"y":0.44053386851744003},{"x":0.8852721311036502,"y":0.44010579852362797}]}}},{"id":"109","text":"Support","bounding_box":{"left":0.17607910238124885,"top":0.44357310015670315,"width":0.0472295073226896,"height":0.011720283732923886,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.44357310015670315},{"x":0.22330860970393845,"y":0.44357310015670315},{"x":0.22330860970393845,"y":0.45529338388962703},{"x":0.17668414302195404,"y":0.4548567818884998}]}}},{"id":"110","text":"period:","bounding_box":{"left":0.2263822242368926,"top":0.44313645733257445,"width":0.042328668035262834,"height":0.012156926557052583,"polygon":{"coordinates":[{"x":0.2263822242368926,"y":0.44357310015670315},{"x":0.26871089227215544,"y":0.44313645733257445},{"x":0.26871089227215544,"y":0.45529338388962703},{"x":0.2263822242368926,"y":0.45529338388962703}]}}},{"id":"111","text":"January","bounding_box":{"left":0.27178452123041635,"top":0.44313645733257445,"width":0.04722952174799633,"height":0.01259356938118128,"polygon":{"coordinates":[{"x":0.27178452123041635,"y":0.44313645733257445},{"x":0.3190140429784127,"y":0.44357310015670315},{"x":0.31840898791240074,"y":0.45573002671375573},{"x":0.27178452123041635,"y":0.45529338388962703}]}}},{"id":"112","text":"Total","bounding_box":{"left":0.7705563217637372,"top":0.47048096925562605,"width":0.033119927268757454,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7705563217637372,"y":0.47048096925562605},{"x":0.8036762490324947,"y":0.47048096925562605},{"x":0.8036762490324947,"y":0.4808999381694819},{"x":0.7705563217637372,"y":0.4808999381694819}]}}},{"id":"113","text":"AUD","bounding_box":{"left":0.8061327056670798,"top":0.47048096925562605,"width":0.0276140761912389,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8061327056670798,"y":0.47048096925562605},{"x":0.8337467818583187,"y":0.47048096925562605},{"x":0.8337467818583187,"y":0.4808999381694819},{"x":0.8061327056670798,"y":0.4808999381694819}]}}},{"id":"114","text":"1,600.00","bounding_box":{"left":0.8791369904447922,"top":0.470052899261814,"width":0.05399386543635343,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.8791369904447922,"y":0.47091757125675326},{"x":0.9331308558811456,"y":0.470052899261814},{"x":0.9331308558811456,"y":0.48133658099361065},{"x":0.8803712773909167,"y":0.4808999381694819}]}}},{"id":"115","text":"VAT","bounding_box":{"left":0.08221300390625766,"top":0.529947100738186,"width":0.02637979645776785,"height":0.012148312903734415,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.529947100738186},{"x":0.10859280036402551,"y":0.529947100738186},{"x":0.10859280036402551,"y":0.5420954136419204},{"x":0.08221300390625766,"y":0.5420954136419204}]}}},{"id":"116","text":"Amount","bounding_box":{"left":0.11165430485196923,"top":0.529947100738186,"width":0.05215455948748385,"height":0.012148312903734415,"polygon":{"coordinates":[{"x":0.11165430485196923,"y":0.529947100738186},{"x":0.16319172086639086,"y":0.529947100738186},{"x":0.16380886433945308,"y":0.5420954136419204},{"x":0.11227144832503147,"y":0.5420954136419204}]}}},{"id":"117","text":"Specification","bounding_box":{"left":0.16687036161474345,"top":0.529947100738186,"width":0.08281805175961623,"height":0.012584955727863112,"polygon":{"coordinates":[{"x":0.16687036161474345,"y":0.529947100738186},{"x":0.24908335830834774,"y":0.529947100738186},{"x":0.24968841337435968,"y":0.5425320564660491},{"x":0.16687036161474345,"y":0.5420954136419204}]}}},{"id":"118","text":"Inv.","bounding_box":{"left":0.4503079629885866,"top":0.5438333712851171,"width":0.025157619556653743,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.4503079629885866,"y":0.5438333712851171},{"x":0.47546558254524035,"y":0.5438333712851171},{"x":0.47546558254524035,"y":0.5538157381978457},{"x":0.4503079629885866,"y":0.5538157381978457}]}}},{"id":"119","text":"Disc.","bounding_box":{"left":0.47852709424583745,"top":0.5438333712851171,"width":0.030675616742449507,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.47852709424583745,"y":0.5438333712851171},{"x":0.509202710988287,"y":0.5438333712851171},{"x":0.5085855386646113,"y":0.554252340198973},{"x":0.47852709424583745,"y":0.5538157381978457}]}}},{"id":"120","text":"Base","bounding_box":{"left":0.5116591676228721,"top":0.5433967284609884,"width":0.029441300945711624,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.5116591676228721,"y":0.5438333712851171},{"x":0.5411004685685837,"y":0.5433967284609884},{"x":0.5411004685685837,"y":0.554252340198973},{"x":0.5116591676228721,"y":0.554252340198973}]}}},{"id":"121","text":"Invoice","bounding_box":{"left":0.5668752027476862,"top":0.5433967284609884,"width":0.04722955059860989,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.5668752027476862,"y":0.5433967284609884},{"x":0.6134996982802842,"y":0.5438333712851171},{"x":0.6141047533462961,"y":0.554252340198973},{"x":0.5668752027476862,"y":0.5538157381978457}]}}},{"id":"122","text":"Discount","bounding_box":{"left":0.6165612099808813,"top":0.5433967284609884,"width":0.05828966408307501,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.6165612099808813,"y":0.5438333712851171},{"x":0.6748508740639563,"y":0.5433967284609884},{"x":0.6748508740639563,"y":0.554252340198973},{"x":0.61717832460333,"y":0.554252340198973}]}}},{"id":"123","text":"VAT","bounding_box":{"left":0.08159586043319543,"top":0.5559902570191682,"width":0.025762652984705592,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5559902570191682},{"x":0.10735851341790102,"y":0.5559902570191682},{"x":0.10735851341790102,"y":0.5664006939257088},{"x":0.08221300390625766,"y":0.5664006939257088}]}}},{"id":"124","text":"Identifier","bounding_box":{"left":0.1104321207382018,"top":0.5559902570191682,"width":0.061956223637030655,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.1104321207382018,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5668372959268361},{"x":0.1104321207382018,"y":0.5664006939257088}]}}},{"id":"125","text":"VAT","bounding_box":{"left":0.24600975820070034,"top":0.5555536550180409,"width":0.026379789245114443,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.24600975820070034,"y":0.5555536550180409},{"x":0.2723895474458148,"y":0.5555536550180409},{"x":0.2723895474458148,"y":0.5659726239318967},{"x":0.24600975820070034,"y":0.5659726239318967}]}}},{"id":"126","text":"%","bounding_box":{"left":0.28098114473925795,"top":0.5555536550180409,"width":0.006135111808244553,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.28098114473925795,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5659726239318967},{"x":0.28098114473925795,"y":0.5659726239318967}]}}},{"id":"127","text":"Line","bounding_box":{"left":0.33435786670254913,"top":0.5564183270129802,"width":0.025762674622665738,"height":0.009554296918916516,"polygon":{"coordinates":[{"x":0.33435786670254913,"y":0.5564183270129802},{"x":0.36012054132521487,"y":0.5564183270129802},{"x":0.36012054132521487,"y":0.5659726239318967},{"x":0.33435786670254913,"y":0.5659726239318967}]}}},{"id":"128","text":"Amount","bounding_box":{"left":0.3650334545943852,"top":0.5564183270129802,"width":0.052759607340842396,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.3650334545943852,"y":0.5564183270129802},{"x":0.4177930619352276,"y":0.5564183270129802},{"x":0.4177930619352276,"y":0.5664006939257088},{"x":0.3650334545943852,"y":0.5664006939257088}]}}},{"id":"129","text":"Amount","bounding_box":{"left":0.49385885841353705,"top":0.5568549290141074,"width":0.05153740880176827,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.49385885841353705,"y":0.5568549290141074},{"x":0.5453962672153053,"y":0.5568549290141074},{"x":0.5453962672153053,"y":0.5664006939257088},{"x":0.49385885841353705,"y":0.5659726239318967}]}}},{"id":"130","text":"Amount","bounding_box":{"left":0.6251528072743244,"top":0.5564183270129802,"width":0.05275957849022894,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.6251528072743244,"y":0.5568549290141074},{"x":0.6779123857645534,"y":0.5564183270129802},{"x":0.6772952134408776,"y":0.5664006939257088},{"x":0.6251528072743244,"y":0.5659726239318967}]}}},{"id":"131","text":"VAT","bounding_box":{"left":0.7423250732488226,"top":0.5559902570191682,"width":0.026996961568790168,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.7423250732488226,"y":0.5559902570191682},{"x":0.768704862493937,"y":0.5559902570191682},{"x":0.7693220348176127,"y":0.5664006939257088},{"x":0.7423250732488226,"y":0.5664006939257088}]}}},{"id":"132","text":"Base","bounding_box":{"left":0.7730006611406586,"top":0.5559902570191682,"width":0.028836245879699685,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.5559902570191682},{"x":0.8012319096555733,"y":0.5559902570191682},{"x":0.8018369070203583,"y":0.5664006939257088},{"x":0.7730006611406586,"y":0.5664006939257088}]}}},{"id":"133","text":"VAT","bounding_box":{"left":0.8533743158221265,"top":0.5559902570191682,"width":0.026379789245114416,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.5559902570191682},{"x":0.8797541050672409,"y":0.5564183270129802},{"x":0.8797541050672409,"y":0.5664006939257088},{"x":0.8539914881458023,"y":0.5664006939257088}]}}},{"id":"134","text":"Amount","bounding_box":{"left":0.8840499037139625,"top":0.5564183270129802,"width":0.05275963619145596,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.8840499037139625,"y":0.5564183270129802},{"x":0.9368095399054185,"y":0.5564183270129802},{"x":0.9368095399054185,"y":0.5664006939257088},{"x":0.8840499037139625,"y":0.5664006939257088}]}}},{"id":"135","text":"NON","bounding_box":{"left":0.08159586043319543,"top":0.5802955373029566,"width":0.026996939930830077,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5807235664737671},{"x":0.10859280036402551,"y":0.5802955373029566},{"x":0.10859280036402551,"y":0.5902779042156853},{"x":0.08159586043319543,"y":0.5902779042156853}]}}},{"id":"136","text":"GST","bounding_box":{"left":0.11595009628603745,"top":0.5802955373029566,"width":0.024540476083591528,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.11595009628603745,"y":0.5802955373029566},{"x":0.13987342889656673,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5907059333864958},{"x":0.11595009628603745,"y":0.5907059333864958}]}}},{"id":"137","text":"0","bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.007357310347318735,"height":0.008681092916662192,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.2858940868590418,"y":0.5807235664737671},{"x":0.2871162565475025,"y":0.5889765893966172},{"x":0.2803640012661957,"y":0.5894046593904293}]}}},{"id":"138","text":"1,600.00","bounding_box":{"left":0.36748994007958385,"top":0.5807235664737671,"width":0.048463808694120813,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.36748994007958385,"y":0.5807235664737671},{"x":0.41595374877370467,"y":0.5807235664737671},{"x":0.41595374877370467,"y":0.5907059333864958},{"x":0.3680949662949823,"y":0.5907059333864958}]}}},{"id":"139","text":"0.00","bounding_box":{"left":0.5196335925926396,"top":0.5807235664737671,"width":0.02514550229898993,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.5196335925926396,"y":0.5807235664737671},{"x":0.5447790948916296,"y":0.5807235664737671},{"x":0.5447790948916296,"y":0.5902779042156853},{"x":0.5196335925926396,"y":0.5898412613915565}]}}},{"id":"140","text":"0.00","bounding_box":{"left":0.6509154241957632,"top":0.5802955373029566,"width":0.025157619556653743,"height":0.009545724088599883,"polygon":{"coordinates":[{"x":0.6509154241957632,"y":0.5802955373029566},{"x":0.676073043752417,"y":0.5802955373029566},{"x":0.676073043752417,"y":0.5898412613915565},{"x":0.6509154241957632,"y":0.5898412613915565}]}}},{"id":"141","text":"1,600.00","bounding_box":{"left":0.7527559548531751,"top":0.5807235664737671,"width":0.04847595480239819,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7527559548531751,"y":0.5807235664737671},{"x":0.8012319096555733,"y":0.5807235664737671},{"x":0.8012319096555733,"y":0.5907059333864958},{"x":0.7533731271768509,"y":0.5907059333864958}]}}},{"id":"142","text":"0.00","bounding_box":{"left":0.9098125783366283,"top":0.5802955373029566,"width":0.026379789245114416,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.9098125783366283,"y":0.5802955373029566},{"x":0.9361923675817427,"y":0.5802955373029566},{"x":0.9355873125157308,"y":0.5902779042156853},{"x":0.9098125783366283,"y":0.5898412613915565}]}}},{"id":"143","text":"Total","bounding_box":{"left":0.2552184989672057,"top":0.6076400084030066,"width":0.03189775758029678,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.2552184989672057,"y":0.6076400084030066},{"x":0.2871162565475025,"y":0.6076400084030066},{"x":0.2871162565475025,"y":0.6171857324916066},{"x":0.2552184989672057,"y":0.6171857324916066}]}}},{"id":"144","text":"1,600.00","bounding_box":{"left":0.36319414143286227,"top":0.6072034064018794,"width":0.052759607340842396,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.36319414143286227,"y":0.6080680783968186},{"x":0.41595374877370467,"y":0.6072034064018794},{"x":0.41595374877370467,"y":0.6176223753157353},{"x":0.3637991964988742,"y":0.6176223753157353}]}}},{"id":"145","text":"0.00","bounding_box":{"left":0.5177942505805032,"top":0.6076400084030066,"width":0.026379846946341434,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.5177942505805032,"y":0.6076400084030066},{"x":0.5441740975268446,"y":0.6076400084030066},{"x":0.5441740975268446,"y":0.6171857324916066},{"x":0.5177942505805032,"y":0.6167491304904794}]}}},{"id":"146","text":"0.00","bounding_box":{"left":0.6496932545073025,"top":0.6076400084030066,"width":0.025762674622665682,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.6496932545073025,"y":0.6076400084030066},{"x":0.6754559291299682,"y":0.6076400084030066},{"x":0.6754559291299682,"y":0.6171857324916066},{"x":0.6496932545073025,"y":0.6171857324916066}]}}},{"id":"147","text":"1,600.00","bounding_box":{"left":0.7490773285301293,"top":0.6072034064018794,"width":0.05275957849022894,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.7490773285301293,"y":0.6076400084030066},{"x":0.8018369070203583,"y":0.6072034064018794},{"x":0.8018369070203583,"y":0.6180504453095473},{"x":0.7496945008538051,"y":0.6180504453095473}]}}},{"id":"148","text":"0.00","bounding_box":{"left":0.9079732363244919,"top":0.6076400084030066,"width":0.0276140761912389,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9079732363244919,"y":0.6171857324916066},{"x":0.9085904086481675,"y":0.6076400084030066},{"x":0.9355873125157308,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6171857324916066}]}}},{"id":"149","text":"Ship-to","bounding_box":{"left":0.08221300390625766,"top":0.651036736863995,"width":0.04662447389463781,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.651036736863995},{"x":0.12822033432783322,"y":0.651036736863995},{"x":0.12883747780089547,"y":0.6623204185957916},{"x":0.08281804454696286,"y":0.6618923486019795}]}}},{"id":"150","text":"Address","bounding_box":{"left":0.1325161329745548,"top":0.651036736863995,"width":0.05153740880176824,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.1325161329745548,"y":0.651036736863995},{"x":0.18405354177632305,"y":0.651036736863995},{"x":0.18405354177632305,"y":0.6618923486019795},{"x":0.1325161329745548,"y":0.6623204185957916}]}}},{"id":"151","text":"CRONUS","bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.052759585702882306,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.13435544613607772,"y":0.6644949782401155},{"x":0.13497258960913996,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}}},{"id":"152","text":"International","bounding_box":{"left":0.13742906066903188,"top":0.6644949782401155,"width":0.07730006899912722,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.13742906066903188,"y":0.6644949782401155},{"x":0.2147291296681591,"y":0.6644949782401155},{"x":0.2147291296681591,"y":0.6753420171477834},{"x":0.13803410130973706,"y":0.6753420171477834}]}}},{"id":"153","text":"Ltd.","bounding_box":{"left":0.21717349789569396,"top":0.6644949782401155,"width":0.0245404616582848,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.21717349789569396,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.2177906413687562,"y":0.6753420171477834}]}}},{"id":"154","text":"5","bounding_box":{"left":0.08159586043319543,"top":0.6788178507881738,"width":0.008591582868136424,"height":0.010847079730669451,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6788178507881738},{"x":0.08957029982826961,"y":0.6788178507881738},{"x":0.09018744330133185,"y":0.6896649305188433},{"x":0.08221300390625766,"y":0.6896649305188433}]}}},{"id":"155","text":"The","bounding_box":{"left":0.09386609126233782,"top":0.6788178507881738,"width":0.021466868763290764,"height":0.010847079730669451,"polygon":{"coordinates":[{"x":0.09386609126233782,"y":0.6788178507881738},{"x":0.11472791217227002,"y":0.6788178507881738},{"x":0.11533296002562858,"y":0.6896649305188433},{"x":0.09448323473540006,"y":0.6896649305188433}]}}},{"id":"156","text":"Ring","bounding_box":{"left":0.11778942387286712,"top":0.6788178507881738,"width":0.027614076191238957,"height":0.011283640908795078,"polygon":{"coordinates":[{"x":0.11778942387286712,"y":0.6788178507881738},{"x":0.14540350006410607,"y":0.6792544936123025},{"x":0.14540350006410607,"y":0.6901014916969689},{"x":0.11840656734592936,"y":0.6896649305188433}]}}},{"id":"157","text":"Westminster","bounding_box":{"left":0.08221300390625766,"top":0.6927041213351048,"width":0.07606577484034938,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6927041213351048},{"x":0.15767373810590182,"y":0.6931407641592335},{"x":0.15827877874660704,"y":0.7026864882478335},{"x":0.08221300390625766,"y":0.7026864882478335}]}}},{"id":"158","text":"CANBERRA","bounding_box":{"left":0.08159586043319543,"top":0.7057257607100982,"width":0.0662520078584455,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.7057257607100982},{"x":0.14724282765093574,"y":0.7057257607100982},{"x":0.14784786829164093,"y":0.7157081276228269},{"x":0.08221300390625766,"y":0.7161446888009525}]}}},{"id":"159","text":"NSW","bounding_box":{"left":0.15092148282459508,"top":0.7057257607100982,"width":0.02637978924511447,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.15092148282459508,"y":0.7057257607100982},{"x":0.17668414302195404,"y":0.7057257607100982},{"x":0.17730127206970955,"y":0.7161446888009525},{"x":0.15153862629765733,"y":0.7157081276228269}]}}},{"id":"160","text":"2600","bounding_box":{"left":0.18589286936315272,"top":0.7057257607100982,"width":0.028836260305006384,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.18589286936315272,"y":0.7057257607100982},{"x":0.2147291296681591,"y":0.7057257607100982},{"x":0.2147291296681591,"y":0.7161446888009525},{"x":0.1864979100038579,"y":0.7161446888009525}]}}},{"id":"161","text":"Australia","bounding_box":{"left":0.08281804454696286,"top":0.720048592435155,"width":0.051537401589114865,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.08281804454696286,"y":0.7204852352592837},{"x":0.13435544613607772,"y":0.720048592435155},{"x":0.13435544613607772,"y":0.7300309593478835},{"x":0.08281804454696286,"y":0.7295943981697579}]}}}],"selection_marks":[]}],"error":null}},"error":null} \ No newline at end of file diff --git a/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108220.json b/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108220.json deleted file mode 100644 index dfa59aae11..0000000000 --- a/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108220.json +++ /dev/null @@ -1 +0,0 @@ -{"outputs":{"1":{"page_count":1,"result":{"context":{"start_page":1,"end_page":1},"fields":{"amountDue":null,"billingAddress":null,"billingAddressRecipient":null,"customerAddress":{"value_text":"5 The Ring Westminster CANBERRA NSW 2600 Australia","value_number":null,"value_date":null,"confidence":0.854,"location":{"bounding_box":{"left":0.7997192719905435,"top":0.10790541914731037,"width":0.1336899346095075,"height":0.053421908496548445,"polygon":{"coordinates":[{"x":0.7997192719905435,"y":0.1605568139018976},{"x":0.8003243270565554,"y":0.10790541914731037},{"x":0.933409206600051,"y":0.10866736005895494},{"x":0.9328041515340391,"y":0.16132732764385882}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerAddressRecipient":null,"customerId":{"value_text":"99-99-888","value_number":null,"value_date":null,"confidence":0.584,"location":{"bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerName":{"value_text":"CRONUS International Ltd.","value_number":null,"value_date":null,"confidence":0.93,"location":{"bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.1595009556477211,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}},"page":1},"currency_symbol":null,"currency_code":null},"dueDate":{"value_text":"07/31/25","value_number":null,"value_date":"2025-07-31","confidence":0.975,"location":{"bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceDate":{"value_text":"June 4, 2025","value_number":null,"value_date":"2025-06-04","confidence":0.92,"location":{"bounding_box":{"left":0.2343566636319668,"top":0.22916630776444508,"width":0.07546075583760428,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.2395852970898017},{"x":0.2343566636319668,"y":0.2395852970898017}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceId":{"value_text":"108220","value_number":null,"value_date":null,"confidence":0.975,"location":{"bounding_box":{"left":0.2374181753325639,"top":0.24262452872906484,"width":0.042340770867619865,"height":0.009545724088599966,"polygon":{"coordinates":[{"x":0.2374181753325639,"y":0.24262452872906484},{"x":0.2791418027271215,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2521702528176648}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceTotal":{"value_text":"AUD 3,800.00","value_number":3800,"value_date":null,"confidence":0.447,"location":{"bounding_box":{"left":0.8067498779907556,"top":0.47048096925562605,"width":0.12638097789039004,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.8067498779907556,"y":0.47048096925562605},{"x":0.9331308558811456,"y":0.47048096925562605},{"x":0.9331308558811456,"y":0.48133658099361065},{"x":0.8067498779907556,"y":0.48133658099361065}]}},"page":1},"currency_symbol":"AUD","currency_code":"AUD"},"previousUnpaidBalance":null,"purchaseOrder":null,"remittanceAddress":null,"remittanceAddressRecipient":null,"serviceAddress":null,"serviceAddressRecipient":null,"serviceEndDate":null,"serviceStartDate":null,"shippingAddress":{"value_text":"5 The Ring Westminster CANBERRA NSW 2600 Australia","value_number":null,"value_date":null,"confidence":0.886,"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6788178507881738,"width":0.13313326923496366,"height":0.05121310855970973,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6788178507881738},{"x":0.2147291296681591,"y":0.6788178507881738},{"x":0.2147291296681591,"y":0.7300309593478835},{"x":0.08159586043319543,"y":0.7300309593478835}]}},"page":1},"currency_symbol":null,"currency_code":null},"shippingAddressRecipient":{"value_text":"CRONUS International Ltd.","value_number":null,"value_date":null,"confidence":0.93,"location":{"bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.1595009556477211,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}},"page":1},"currency_symbol":null,"currency_code":null},"subTotal":{"value_text":"3,800.00","value_number":3800,"value_date":null,"confidence":0.806,"location":{"bounding_box":{"left":0.3619598544867378,"top":0.6076400084030066,"width":0.05337675081390464,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.3619598544867378,"y":0.6080680783968186},{"x":0.4153366053006424,"y":0.6076400084030066},{"x":0.4153366053006424,"y":0.6176223753157353},{"x":0.3619598544867378,"y":0.6176223753157353}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"totalTax":{"value_text":"0.00","value_number":0,"value_date":null,"confidence":0.969,"location":{"bounding_box":{"left":0.9085904086481675,"top":0.6076400084030066,"width":0.026379789245114527,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9085904086481675,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6171857324916066},{"x":0.9085904086481675,"y":0.6171857324916066}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"vendorAddress":{"value_text":"Evan McIntosh Allan Turing Road, 20 Surrey ALBERTON QLD 4207 Australia","value_number":null,"value_date":null,"confidence":0.819,"location":{"bounding_box":{"left":0.08037367631942799,"top":0.07551837863774787,"width":0.12882538218119177,"height":0.06467133973007995,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.07551837863774787},{"x":0.20919905850061976,"y":0.07551837863774787},{"x":0.20919905850061976,"y":0.14018971836782781},{"x":0.08037367631942799,"y":0.14018971836782781}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorAddressRecipient":{"value_text":"First Up Consultants","value_number":null,"value_date":null,"confidence":0.928,"location":{"bounding_box":{"left":0.08097871696013319,"top":0.06119548567818885,"width":0.11902370360633822,"height":0.01130079167230364,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.06119548567818885},{"x":0.2000024205664714,"y":0.06121260582444624},{"x":0.2000024205664714,"y":0.0724962773504925},{"x":0.08097871696013319,"y":0.07247915210135993}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorName":{"value_text":"First Up Consultants","value_number":null,"value_date":null,"confidence":0.928,"location":{"bounding_box":{"left":0.08097871696013319,"top":0.06119548567818885,"width":0.11902370360633822,"height":0.01130079167230364,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.06119548567818885},{"x":0.2000024205664714,"y":0.06121260582444624},{"x":0.2000024205664714,"y":0.0724962773504925},{"x":0.08097871696013319,"y":0.07247915210135993}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerTaxId":{"value_text":"53001003000","value_number":null,"value_date":null,"confidence":0.652,"location":{"bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorTaxId":{"value_text":"274863274B01","value_number":null,"value_date":null,"confidence":0.956,"location":{"bounding_box":{"left":0.23619599121879647,"top":0.20052052184532704,"width":0.08650879534032585,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.21093951117068366},{"x":0.23619599121879647,"y":0.2105028887580557}]}},"page":1},"currency_symbol":null,"currency_code":null},"paymentTerms":{"value_text":"End of Next Month","value_number":null,"value_date":null,"confidence":0.918,"location":{"bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.11227144111237808,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3198808139812575},{"x":0.23557884774573423,"y":0.3198808139812575}]}},"page":1},"currency_symbol":null,"currency_code":null}},"items":[{"fields":{"amount":{"value_text":"3,800.00","value_number":3800,"value_date":null,"confidence":0.956,"location":{"bounding_box":{"left":0.882815616767838,"top":0.4296868296097721,"width":0.050920294179319536,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.882815616767838,"y":0.4296868296097721},{"x":0.9331308558811456,"y":0.4296868296097721},{"x":0.9337359109471576,"y":0.44053386851744003},{"x":0.8834327890915138,"y":0.44010579852362797}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"description":{"value_text":"IT Support Support period: February","value_number":null,"value_date":null,"confidence":0.948,"location":{"bounding_box":{"left":0.17607910238124885,"top":0.43012343161089933,"width":0.14968719587847062,"height":0.025169952278727703,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.43012343161089933},{"x":0.3257662982597195,"y":0.43012343161089933},{"x":0.3257662982597195,"y":0.45529338388962703},{"x":0.17607910238124885,"y":0.45529338388962703}]}},"page":1},"currency_symbol":null,"currency_code":null},"unitPrice":{"value_text":"200.00","value_number":200,"value_date":null,"confidence":0.955,"location":{"bounding_box":{"left":0.5331260435988163,"top":0.43012343161089933,"width":0.039884299807727897,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5331260435988163,"y":0.43012343161089933},{"x":0.5723931710828686,"y":0.43012343161089933},{"x":0.5730103434065442,"y":0.44010579852362797},{"x":0.5337431582212651,"y":0.4396691965225008}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"quantity":{"value_text":"19","value_number":19,"value_date":null,"confidence":0.956,"location":{"bounding_box":{"left":0.4104236631808586,"top":0.43012343161089933,"width":0.012887367089551294,"height":0.00910912208747272,"polygon":{"coordinates":[{"x":0.4104236631808586,"y":0.4388045245275615},{"x":0.41104080665392084,"y":0.43012343161089933},{"x":0.4233110302704099,"y":0.43012343161089933},{"x":0.42269388679734765,"y":0.43923255369837205}]}},"page":1},"currency_symbol":null,"currency_code":null},"productCode":null,"unit":null,"date":null,"tax":null},"row_text":"IT Support 19 200.00 No NON GST 3,800.00 Support period: February","confidence":0.834,"location":{"bounding_box":{"left":0.17584917741707842,"top":0.4261681726408,"width":0.7579835561889355,"height":0.032429833220893156,"polygon":{"coordinates":[{"x":0.17584917741707842,"y":0.4550707760624043},{"x":0.17611539645301325,"y":0.4261681726408},{"x":0.9338327336060139,"y":0.4296868296097721},{"x":0.9335665001447724,"y":0.45859800586169314}]}},"page":1}}],"key_value_pairs":[{"key":"Pay-to Vendor No.","value":"20000","confidence":0.875,"key_location":{"bounding_box":{"left":0.08037367631942799,"top":0.18619762888576802,"width":0.11165430485196923,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.1974812902060639},{"x":0.08037367631942799,"y":0.1974812902060639}]}},"page":1},"value_location":{"bounding_box":{"left":0.23619599121879647,"top":0.18619762888576802,"width":0.03619355622701831,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.19617999579849668},{"x":0.23619599121879647,"y":0.19617999579849668}]}},"page":1}},{"key":"Phone No.","value":"0666-666-6666","confidence":0.897,"key_location":{"bounding_box":{"left":0.6666707442200392,"top":0.17949420627715698,"width":0.06358981028644384,"height":0.011043948655441393,"polygon":{"coordinates":[{"x":0.6666707442200392,"y":0.18991319560251363},{"x":0.6668764490941889,"y":0.17949420627715698},{"x":0.7302605545064831,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19053815493259837}]}},"page":1},"value_location":{"bounding_box":{"left":0.8423262618940982,"top":0.17969111602493043,"width":0.0901874793645987,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8423262618940982,"y":0.18011916560724173},{"x":0.9325137412586969,"y":0.17969111602493043},{"x":0.9325137412586969,"y":0.18967348293765912},{"x":0.8423262618940982,"y":0.18967348293765912}]}},"page":1}},{"key":"VAT Registration No.","value":"274863274B01","confidence":0.875,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.20008389943269908,"width":0.12392454289376499,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.20008389943269908},{"x":0.20490325985389818,"y":0.20008389943269908},{"x":0.20490325985389818,"y":0.2118041831656229},{"x":0.08097871696013319,"y":0.2118041831656229}]}},"page":1},"value_location":{"bounding_box":{"left":0.23619599121879647,"top":0.20052052184532704,"width":0.08650879534032585,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.21093951117068366},{"x":0.23619599121879647,"y":0.2105028887580557}]}},"page":1}},{"key":"Document Date","value":"June 4, 2025","confidence":0.862,"key_location":{"bounding_box":{"left":0.08030107375059245,"top":0.22872968535181712,"width":0.09461634425336746,"height":0.011180930237001202,"polygon":{"coordinates":[{"x":0.08030107375059245,"y":0.2395852970898017},{"x":0.08037367631942799,"y":0.22872968535181712},{"x":0.1749174180039599,"y":0.22905500385083374},{"x":0.17484481543512437,"y":0.23991061558881832}]}},"page":1},"value_location":{"bounding_box":{"left":0.2343566636319668,"top":0.22916630776444508,"width":0.07546075583760428,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.2395852970898017},{"x":0.2343566636319668,"y":0.2395852970898017}]}},"page":1}},{"key":"VAT Registration No.","value":"777777777","confidence":0.279,"key_location":{"bounding_box":{"left":0.6674814464589738,"top":0.21962056326434437,"width":0.1239245789570319,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.23090422458464024},{"x":0.6674814464589738,"y":0.23090422458464024}]}},"page":1},"value_location":{"bounding_box":{"left":0.8687060511392126,"top":0.2200486332581564,"width":0.06442480474193302,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8687060511392126,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22048525567078436},{"x":0.9331308558811456,"y":0.22960293017707303},{"x":0.8687060511392126,"y":0.22916630776444508}]}},"page":1}},{"key":"Invoice No.","value":"108220","confidence":0.896,"key_location":{"bounding_box":{"left":0.08016796423262504,"top":0.24218790631643689,"width":0.06787352052611517,"height":0.01106962632338987,"polygon":{"coordinates":[{"x":0.08016796423262504,"y":0.25260687523029274},{"x":0.08037367631942799,"y":0.24218790631643689},{"x":0.1480414847587402,"y":0.2428385433144701},{"x":0.14783576545928387,"y":0.25325753263982675}]}},"page":1},"value_location":{"bounding_box":{"left":0.2374181753325639,"top":0.24262452872906484,"width":0.042340770867619865,"height":0.009545724088599966,"polygon":{"coordinates":[{"x":0.2374181753325639,"y":0.24262452872906484},{"x":0.2791418027271215,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2521702528176648}]}},"page":1}},{"key":"Giro No.","value":"888-9999","confidence":0.615,"key_location":{"bounding_box":{"left":0.666864331836525,"top":0.23413181355286092,"width":0.051718936861817166,"height":0.010478897080069521,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.23459411363343738},{"x":0.7184017406382933,"y":0.23413181355286092},{"x":0.7185832686983422,"y":0.24414841055235398},{"x":0.6670458598965741,"y":0.24461071063293044}]}},"page":1},"value_location":{"bounding_box":{"left":0.8779148207563315,"top":0.23437152621771543,"width":0.0552160351248141,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8779148207563315,"y":0.23480814863034338},{"x":0.9325137412586969,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.24392582313663205},{"x":0.8779148207563315,"y":0.2434892007240041}]}},"page":1}},{"key":"Bank","value":"World Wide Bank","confidence":0.875,"key_location":{"bounding_box":{"left":0.6674814464589738,"top":0.24869441917727445,"width":0.02821913125725084,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.2578120936835631},{"x":0.6674814464589738,"y":0.2578120936835631}]}},"page":1},"value_location":{"bounding_box":{"left":0.8294509832115972,"top":0.2482663491834624,"width":0.10367987266954848,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.8294509832115972,"y":0.2482663491834624},{"x":0.9331308558811456,"y":0.2482663491834624},{"x":0.9331308558811456,"y":0.2586767860900031},{"x":0.8294509832115972,"y":0.2586767860900031}]}},"page":1}},{"key":"Posting Date","value":"06/04/25","confidence":0.897,"key_location":{"bounding_box":{"left":0.07975653284636575,"top":0.269523824997671,"width":0.07791720525953608,"height":0.01172885656324052,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269523824997671},{"x":0.15767373810590182,"y":0.26953237741648695},{"x":0.15767373810590182,"y":0.28125268156091154},{"x":0.07975653284636575,"y":0.2812441087305949}]}},"page":1},"value_location":{"bounding_box":{"left":0.23497380710502905,"top":0.26953237741648695,"width":0.055821104616132794,"height":0.010847059319168684,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.269960447410299},{"x":0.2901777682480996,"y":0.26953237741648695},{"x":0.29079491172116184,"y":0.28037943673565563},{"x":0.23557884774573423,"y":0.2799428143230277}]}},"page":1}},{"key":"Account No.","value":"99-99-888","confidence":0.889,"key_location":{"bounding_box":{"left":0.6664892161599902,"top":0.2623752071461154,"width":0.07461368740037166,"height":0.011677501227343567,"polygon":{"coordinates":[{"x":0.6664892161599902,"y":0.27253735855748495},{"x":0.6669127431659533,"y":0.2623752071461154},{"x":0.7411029035603619,"y":0.2638905569620894},{"x":0.7406914361108358,"y":0.27405270837345896}]}},"page":1},"value_location":{"bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}},"page":1}},{"key":"Due Date","value":"07/31/25","confidence":0.897,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.28341864796341804,"width":0.05583320023583645,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.29296439246351874},{"x":0.08097871696013319,"y":0.29296439246351874}]}},"page":1},"value_location":{"bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}},"page":1}},{"key":"Payment Terms","value":"End of Next Month","confidence":0.855,"key_location":{"bounding_box":{"left":0.08088190872658355,"top":0.30946184506740165,"width":0.09282542799596599,"height":0.011668907985526111,"polygon":{"coordinates":[{"x":0.08088190872658355,"y":0.3207455063876975},{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.17370733672254954,"y":0.30984709173263186},{"x":0.17361052848899988,"y":0.32113075305292776}]}},"page":1},"value_location":{"bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.11227144111237808,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3198808139812575},{"x":0.23557884774573423,"y":0.3198808139812575}]}},"page":1}},{"key":"ABN","value":"53001003000","confidence":0.923,"key_location":{"bounding_box":{"left":0.6680986187826495,"top":0.30338338178887536,"width":0.022701162922068585,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.6680986187826495,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.312501056295164},{"x":0.6680986187826495,"y":0.312501056295164}]}},"page":1},"value_location":{"bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}},"page":1}},{"key":"Shipment Method","value":null,"confidence":0.159,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.32291149320170476,"width":0.10675346556454245,"height":0.011292234150612535,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.32291149320170476},{"x":0.18773218252467563,"y":0.32291149320170476},{"x":0.18773218252467563,"y":0.3342037273523173},{"x":0.08097871696013319,"y":0.3342037273523173}]}},"page":1},"value_location":null},{"key":"Unit of Measure","value":"19","confidence":0.875,"key_location":{"bounding_box":{"left":0.43925993791117174,"top":0.39235999159699336,"width":0.0552160351248141,"height":0.023003924641718965,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.39235999159699336},{"x":0.49447597303598584,"y":0.39235999159699336},{"x":0.49447597303598584,"y":0.4153639162387123},{"x":0.43925993791117174,"y":0.4153639162387123}]}},"page":1},"value_location":{"bounding_box":{"left":0.4104236631808586,"top":0.43012343161089933,"width":0.012887367089551294,"height":0.00910912208747272,"polygon":{"coordinates":[{"x":0.4104236631808586,"y":0.4388045245275615},{"x":0.41104080665392084,"y":0.43012343161089933},{"x":0.4233110302704099,"y":0.43012343161089933},{"x":0.42269388679734765,"y":0.43923255369837205}]}},"page":1}},{"key":"Unit Cost","value":"200.00","confidence":0.897,"key_location":{"bounding_box":{"left":0.5447790948916296,"top":0.39235999159699336,"width":0.029453418203375437,"height":0.022567322640591747,"polygon":{"coordinates":[{"x":0.5447790948916296,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.4149273142375851},{"x":0.5447790948916296,"y":0.4149273142375851}]}},"page":1},"value_location":{"bounding_box":{"left":0.5331260435988163,"top":0.43012343161089933,"width":0.039884299807727897,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5331260435988163,"y":0.43012343161089933},{"x":0.5723931710828686,"y":0.43012343161089933},{"x":0.5730103434065442,"y":0.44010579852362797},{"x":0.5337431582212651,"y":0.4396691965225008}]}},"page":1}},{"key":"Invoice","value":"No","confidence":0.676,"key_location":{"bounding_box":{"left":0.6785295003870021,"top":0.3927965935981206,"width":0.04539020858647347,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.3927965935981206},{"x":0.7239197089734756,"y":0.39322466359193264},{"x":0.7239197089734756,"y":0.40277896051084927},{"x":0.6785295003870021,"y":0.40277896051084927}]}},"page":1},"value_location":{"bounding_box":{"left":0.6785295003870021,"top":0.43055150160471134,"width":0.01778824965289827,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43923255369837205},{"x":0.6785295003870021,"y":0.4388045245275615}]}},"page":1}},{"key":"VAT Identifier","value":"NON GST","confidence":0.619,"key_location":{"bounding_box":{"left":0.7730006611406586,"top":0.39235999159699336,"width":0.06135117578367211,"height":0.023003924641718965,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.39235999159699336},{"x":0.8343518369243307,"y":0.39235999159699336},{"x":0.8343518369243307,"y":0.4153639162387123},{"x":0.7730006611406586,"y":0.4153639162387123}]}},"page":1},"value_location":{"bounding_box":{"left":0.7734483649607222,"top":0.42915604894416615,"width":0.05986283033519679,"height":0.011035355413623937,"polygon":{"coordinates":[{"x":0.7734483649607222,"y":0.4396606236921841},{"x":0.7736298930207711,"y":0.42915604894416615},{"x":0.833311195295919,"y":0.4296868296097721},{"x":0.83312966723587,"y":0.4401914043577901}]}},"page":1}},{"key":"No.","value":null,"confidence":0.61,"key_location":{"bounding_box":{"left":0.08221300390625766,"top":0.4053815493259837,"width":0.022689045664404828,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4149273142375851},{"x":0.08221300390625766,"y":0.4149273142375851}]}},"page":1},"value_location":null},{"key":"Description","value":"IT Support","confidence":0.659,"key_location":{"bounding_box":{"left":0.17607910238124885,"top":0.4053815493259837,"width":0.0717699689809744,"height":0.01172032455592531,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4053815493259837},{"x":0.24784907136222326,"y":0.4053815493259837},{"x":0.24784907136222326,"y":0.417101873881909},{"x":0.17607910238124885,"y":0.415800559062841}]}},"page":1},"value_location":{"bounding_box":{"left":0.17580078051295697,"top":0.42970393444740396,"width":0.0631420920410736,"height":0.011703178895291988,"polygon":{"coordinates":[{"x":0.17580078051295697,"y":0.4405509733550719},{"x":0.17609119078829916,"y":0.42970393444740396},{"x":0.23894287255403057,"y":0.43055150160471134},{"x":0.2386524622786884,"y":0.44140711334269594}]}},"page":1}},{"key":"Quantity","value":"Support period: February","confidence":0.092,"key_location":{"bounding_box":{"left":0.3570590296246177,"top":0.4049449473248565,"width":0.05643823366388828,"height":0.012156926557052528,"polygon":{"coordinates":[{"x":0.3570590296246177,"y":0.4049449473248565},{"x":0.413497263288506,"y":0.4053815493259837},{"x":0.413497263288506,"y":0.417101873881909},{"x":0.3570590296246177,"y":0.4162286290566531}]}},"page":1},"value_location":{"bounding_box":{"left":0.17668414302195404,"top":0.44313645733257445,"width":0.14908215523776544,"height":0.012156926557052583,"polygon":{"coordinates":[{"x":0.17668414302195404,"y":0.44313645733257445},{"x":0.3257662982597195,"y":0.44313645733257445},{"x":0.3257662982597195,"y":0.45529338388962703},{"x":0.17668414302195404,"y":0.45529338388962703}]}},"page":1}},{"key":"Discount %","value":null,"confidence":0.625,"key_location":{"bounding_box":{"left":0.5914157076818913,"top":0.4049449473248565,"width":0.07360928214249729,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5914157076818913,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4153639162387123},{"x":0.5914157076818913,"y":0.4153639162387123}]}},"page":1},"value_location":null},{"key":"Discount","value":null,"confidence":0.279,"key_location":{"bounding_box":{"left":0.679134555453014,"top":0.4053815493259837,"width":0.057055377136950525,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.679134555453014,"y":0.4058181921501124},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4153639162387123},{"x":0.679134555453014,"y":0.4149273142375851}]}},"page":1},"value_location":null},{"key":"Amount","value":"3,800.00","confidence":0.538,"key_location":{"bounding_box":{"left":0.8815934470793774,"top":0.4053815493259837,"width":0.05214246386778021,"height":0.010419009736857332,"polygon":{"coordinates":[{"x":0.8815934470793774,"y":0.4053815493259837},{"x":0.9337359109471576,"y":0.4053815493259837},{"x":0.9337359109471576,"y":0.415800559062841},{"x":0.8815934470793774,"y":0.4149273142375851}]}},"page":1},"value_location":{"bounding_box":{"left":0.882815616767838,"top":0.4296868296097721,"width":0.050920294179319536,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.882815616767838,"y":0.4296868296097721},{"x":0.9331308558811456,"y":0.4296868296097721},{"x":0.9337359109471576,"y":0.44053386851744003},{"x":0.8834327890915138,"y":0.44010579852362797}]}},"page":1}},{"key":"Total AUD","value":"3,800.00","confidence":0.898,"key_location":{"bounding_box":{"left":0.7705563217637372,"top":0.47048096925562605,"width":0.06257334547213278,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7705563217637372,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.4808999381694819},{"x":0.7705563217637372,"y":0.4808999381694819}]}},"page":1},"value_location":{"bounding_box":{"left":0.8785319353787803,"top":0.47048096925562605,"width":0.05459892050236537,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.8785319353787803,"y":0.47135421408088196},{"x":0.9331308558811456,"y":0.47048096925562605},{"x":0.9331308558811456,"y":0.48133658099361065},{"x":0.8791369904447922,"y":0.4808999381694819}]}},"page":1}},{"key":"VAT Identifier","value":"NON GST","confidence":0.874,"key_location":{"bounding_box":{"left":0.08152325065170651,"top":0.5556735113504682,"width":0.09093769629236148,"height":0.011163784576367908,"polygon":{"coordinates":[{"x":0.08152325065170651,"y":0.5665205502581361},{"x":0.08159586043319543,"y":0.5556735113504682},{"x":0.172460946944068,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5668372959268361}]}},"page":1},"value_location":{"bounding_box":{"left":0.08159586043319543,"top":0.5802955373029566,"width":0.058894711936433544,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5907059333864958},{"x":0.08159586043319543,"y":0.5907059333864958}]}},"page":1}},{"key":"VAT %","value":"0","confidence":0.881,"key_location":{"bounding_box":{"left":0.24600975820070034,"top":0.5555536550180409,"width":0.04110649834680216,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.24600975820070034,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5664006939257088},{"x":0.24600975820070034,"y":0.5664006939257088}]}},"page":1},"value_location":{"bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.006740166874256492,"height":0.008253022922850128,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.28649911307444026,"y":0.5807235664737671},{"x":0.28649911307444026,"y":0.5889765893966172},{"x":0.27975894620018377,"y":0.5889765893966172}]}},"page":1}},{"key":"Ship-to Address","value":"CRONUS International Ltd. 5 The Ring Westminster CANBERRA NSW 2600 Australia","confidence":0.779,"key_location":{"bounding_box":{"left":0.08211619567270802,"top":0.6505658843646026,"width":0.10203415433716466,"height":0.01201135173367529,"polygon":{"coordinates":[{"x":0.08211619567270802,"y":0.6621063835988856},{"x":0.08221300390625766,"y":0.6505658843646026},{"x":0.18415035000987268,"y":0.651036736863995},{"x":0.184041438943966,"y":0.6625772360982779}]}},"page":1},"value_location":{"bounding_box":{"left":0.08159586043319543,"top":0.6644949782401155,"width":0.16011809912078334,"height":0.06553598110776804,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.7300309593478835},{"x":0.08159586043319543,"y":0.7300309593478835}]}},"page":1}}]},"read_results":[{"location":{"bounding_box":{"left":0.7245368812971513,"top":0.03992945489372671,"width":0.20245889162636332,"height":0.016925499634756605,"polygon":{"coordinates":[{"x":0.7245368812971513,"y":0.03992945489372671},{"x":0.9269957729235146,"y":0.03992945489372671},{"x":0.9269957729235146,"y":0.05685495452848331},{"x":0.7245368812971513,"y":0.05685495452848331}]}},"page":1},"text":"Purchase - Invoice"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.06119548567818885,"width":0.11962874424704342,"height":0.010855606635109392,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.06119548567818885},{"x":0.2000024205664714,"y":0.06119548567818885},{"x":0.19938527709340917,"y":0.07205109231329825},{"x":0.08037367631942799,"y":0.07205109231329825}]}},"page":1},"text":"First Up Consultants"},{"location":{"bounding_box":{"left":0.8908021589952693,"top":0.06163210809081681,"width":0.04171158226342764,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.8908021589952693,"y":0.06206873050344477},{"x":0.9325137412586969,"y":0.06163210809081681},{"x":0.9325137412586969,"y":0.07247915210135993},{"x":0.8914072140612812,"y":0.07247915210135993}]}},"page":1},"text":"Page 1"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.0750903188496862,"width":0.08833601288214513,"height":0.010410426700790343,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.0750903188496862},{"x":0.16809254572851087,"y":0.07551837863774787},{"x":0.16809254572851087,"y":0.08550074555047654},{"x":0.07975653284636575,"y":0.08507268576241486}]}},"page":1},"text":"Evan McIntosh"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.08767528478329967,"width":0.12883747058824208,"height":0.012148353726735894,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.08810334457136135},{"x":0.20859400343460782,"y":0.08767528478329967},{"x":0.20859400343460782,"y":0.09939557872197388},{"x":0.07975653284636575,"y":0.09982363851003556}]}},"page":1},"text":"Allan Turing Road, 20"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.10242624773667074,"width":0.03865003449956361,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.10242624773667074},{"x":0.11840656734592936,"y":0.1028628701492987},{"x":0.11840656734592936,"y":0.11284522685627699},{"x":0.07975653284636575,"y":0.11198054465558736}]}},"page":1},"text":"Surrey"},{"location":{"bounding_box":{"left":0.9251564309113782,"top":0.09418180784988762,"width":0.007974424969767413,"height":0.009117674506288656,"polygon":{"coordinates":[{"x":0.9251564309113782,"y":0.09418180784988762},{"x":0.9325137412586969,"y":0.09418180784988762},{"x":0.9331308558811456,"y":0.10329948235617628},{"x":0.9251564309113782,"y":0.1028628701492987}]}},"page":1},"text":"5"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.11588445849554013,"width":0.12883747058824208,"height":0.010418979119606236,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.11588445849554013},{"x":0.20859400343460782,"y":0.11588445849554013},{"x":0.20859400343460782,"y":0.12630343761514637},{"x":0.07975653284636575,"y":0.12630343761514637}]}},"page":1},"text":"ALBERTON QLD 4207"},{"location":{"bounding_box":{"left":0.8693232234628884,"top":0.10807664102138496,"width":0.06319051779580853,"height":0.011283661320295887,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.10807664102138496},{"x":0.9325137412586969,"y":0.10850470080944664},{"x":0.9325137412586969,"y":0.11936030234168085},{"x":0.8693232234628884,"y":0.11848705751642494}]}},"page":1},"text":"5 The Ring"},{"location":{"bounding_box":{"left":0.07913938937330352,"top":0.1306439738677271,"width":0.05399388707431353,"height":0.009109122087472749,"polygon":{"coordinates":[{"x":0.07913938937330352,"y":0.1306439738677271},{"x":0.13313327644761705,"y":0.1306439738677271},{"x":0.13313327644761705,"y":0.13975309595519986},{"x":0.07913938937330352,"y":0.13975309595519986}]}},"page":1},"text":"Australia"},{"location":{"bounding_box":{"left":0.8570529998463994,"top":0.12239953398094398,"width":0.07607785603474626,"height":0.010410426700790357,"polygon":{"coordinates":[{"x":0.8570529998463994,"y":0.12239953398094398},{"x":0.9331308558811456,"y":0.12282759376900566},{"x":0.9325137412586969,"y":0.13280996068173434},{"x":0.8570529998463994,"y":0.13238190089367266}]}},"page":1},"text":"Westminster"},{"location":{"bounding_box":{"left":0.7987753953197612,"top":0.13628580452787506,"width":0.13435546056138448,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.7987753953197612,"y":0.13628580452787506},{"x":0.9331308558811456,"y":0.13628580452787506},{"x":0.9331308558811456,"y":0.14713285364129336},{"x":0.7987753953197612,"y":0.14670479385323168}]}},"page":1},"text":"CANBERRA NSW 2600"},{"location":{"bounding_box":{"left":0.8791369904447922,"top":0.15104531990006204,"width":0.053376750813904694,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.8791369904447922,"y":0.1514733796881237},{"x":0.9325137412586969,"y":0.15104531990006204},{"x":0.9325137412586969,"y":0.1610276868127907},{"x":0.8791369904447922,"y":0.1610276868127907}]}},"page":1},"text":"Australia"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.18619762888576802,"width":0.11227144832503147,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.19704466779343593},{"x":0.07975653284636575,"y":0.1974812902060639}]}},"page":1},"text":"Pay-to Vendor No."},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.18619762888576802,"width":0.03865002728691022,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.18663425129839598},{"x":0.273006690918877,"y":0.18619762888576802},{"x":0.273006690918877,"y":0.19617999579849668},{"x":0.2343566636319668,"y":0.19574337338586872}]}},"page":1},"text":"20000"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.17969111602493043,"width":0.06379557286182047,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.17969111602493043},{"x":0.7300548496323336,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19010153251997042},{"x":0.6662592767705131,"y":0.18967348293765912}]}},"page":1},"text":"Phone No."},{"location":{"bounding_box":{"left":0.8411040922056375,"top":0.17969111602493043,"width":0.09324893336396878,"height":0.009545744500100733,"polygon":{"coordinates":[{"x":0.8411040922056375,"y":0.17969111602493043},{"x":0.9343530255696063,"y":0.17969111602493043},{"x":0.9343530255696063,"y":0.18923686052503116},{"x":0.8411040922056375,"y":0.18923686052503116}]}},"page":1},"text":"0666-666-6666"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.19965582943888702,"width":0.12514672700753243,"height":0.011711731314107937,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.19965582943888702},{"x":0.20490325985389818,"y":0.19965582943888702},{"x":0.20490325985389818,"y":0.21136756075299495},{"x":0.07975653284636575,"y":0.21136756075299495}]}},"page":1},"text":"VAT Registration No."},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.20008389943269908,"width":0.08834812292715552,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.20008389943269908},{"x":0.3227047865591223,"y":0.20008389943269908},{"x":0.3227047865591223,"y":0.2105028887580557},{"x":0.2343566636319668,"y":0.2105028887580557}]}},"page":1},"text":"274863274B01"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.19270414174660558,"width":0.0717821150892517,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.20355975348459018},{"x":0.6662592767705131,"y":0.20312313107196223}]}},"page":1},"text":"Home Page"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2057257402985974,"width":0.03435427191610885,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.20659896471235256},{"x":0.700613548686622,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2157080867998253},{"x":0.666864331836525,"y":0.21528003721751401}]}},"page":1},"text":"Email"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.22872968535181712,"width":0.09508828258875862,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.22872968535181712},{"x":0.17484481543512437,"y":0.22872968535181712},{"x":0.17484481543512437,"y":0.23914867467717374},{"x":0.07975653284636575,"y":0.23914867467717374}]}},"page":1},"text":"Document Date"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.21962056326434437,"width":0.12454169357948064,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.21962056326434437},{"x":0.7908009703499937,"y":0.21962056326434437},{"x":0.7908009703499937,"y":0.23090422458464024},{"x":0.6662592767705131,"y":0.23090422458464024}]}},"page":1},"text":"VAT Registration No."},{"location":{"bounding_box":{"left":0.8662617117622913,"top":0.2200486332581564,"width":0.0674741991848663,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.8662617117622913,"y":0.2200486332581564},{"x":0.9337359109471576,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22916630776444508},{"x":0.8662617117622913,"y":0.22872968535181712}]}},"page":1},"text":"777777777"},{"location":{"bounding_box":{"left":0.23313447951819938,"top":0.22916630776444508,"width":0.07668293995137171,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23313447951819938,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.22916630776444508},{"x":0.30920027599650884,"y":0.2395852970898017},{"x":0.23313447951819938,"y":0.23914867467717374}]}},"page":1},"text":"June 4, 2025"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.24218790631643689,"width":0.06809133544527518,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.24218790631643689},{"x":0.14784786829164093,"y":0.24218790631643689},{"x":0.14784786829164093,"y":0.25260687523029274},{"x":0.07975653284636575,"y":0.2521702528176648}]}},"page":1},"text":"Invoice No."},{"location":{"bounding_box":{"left":0.23557884774573423,"top":0.24218790631643689,"width":0.044785153520461474,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.24218790631643689},{"x":0.2803640012661957,"y":0.24218790631643689},{"x":0.2803640012661957,"y":0.2521702528176648},{"x":0.23557884774573423,"y":0.2517336304050368}]}},"page":1},"text":"108220"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2339434562239034,"width":0.05214246386778021,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.23437152621771543},{"x":0.7177846260158445,"y":0.2339434562239034},{"x":0.7184017406382933,"y":0.24392582313663205},{"x":0.6662592767705131,"y":0.24392582313663205}]}},"page":1},"text":"Giro No."},{"location":{"bounding_box":{"left":0.8760754787441951,"top":0.23437152621771543,"width":0.057055377136950525,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.8760754787441951,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.2434892007240041},{"x":0.8760754787441951,"y":0.2434892007240041}]}},"page":1},"text":"888-9999"},{"location":{"bounding_box":{"left":0.666864331836525,"top":0.24869441917727445,"width":0.03129270251428484,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.24869441917727445},{"x":0.6981570343508099,"y":0.24869441917727445},{"x":0.6981570343508099,"y":0.2578120936835631},{"x":0.6680986187826495,"y":0.2578120936835631}]}},"page":1},"text":"Bank"},{"location":{"bounding_box":{"left":0.8282166962654727,"top":0.2482663491834624,"width":0.10613632930413364,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8282166962654727,"y":0.2482663491834624},{"x":0.9343530255696063,"y":0.2482663491834624},{"x":0.9343530255696063,"y":0.2582487160961911},{"x":0.8282166962654727,"y":0.2582487160961911}]}},"page":1},"text":"World Wide Bank"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.269095755003859,"width":0.0791393893733035,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269095755003859},{"x":0.15889592221966925,"y":0.269095755003859},{"x":0.15889592221966925,"y":0.2808160591482836},{"x":0.07975653284636575,"y":0.2808160591482836}]}},"page":1},"text":"Posting Date"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.269095755003859,"width":0.05643824808919504,"height":0.010847059319168684,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.269095755003859},{"x":0.29079491172116184,"y":0.26953237741648695},{"x":0.29079491172116184,"y":0.2799428143230277},{"x":0.2343566636319668,"y":0.27951474432921564}]}},"page":1},"text":"06/04/25"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2630173121368335,"width":0.0748436267898488,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.2630173121368335},{"x":0.7411029035603619,"y":0.2630173121368335},{"x":0.7411029035603619,"y":0.2725716090557501},{"x":0.6662592767705131,"y":0.27213498664312213}]}},"page":1},"text":"Account No."},{"location":{"bounding_box":{"left":0.8693232234628884,"top":0.26258924214302143,"width":0.06502980210671794,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.26258924214302143},{"x":0.9343530255696063,"y":0.26258924214302143},{"x":0.9343530255696063,"y":0.27213498664312213},{"x":0.8693232234628884,"y":0.27213498664312213}]}},"page":1},"text":"99-99-888"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.28298202555079005,"width":0.058277568463371315,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.28341864796341804},{"x":0.13803410130973706,"y":0.28298202555079005},{"x":0.13803410130973706,"y":0.29253634288120745},{"x":0.07975653284636575,"y":0.29296439246351874}]}},"page":1},"text":"Due Date"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.28255397596847875,"width":0.055821104616132794,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.28255397596847875},{"x":0.2901777682480996,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.2343566636319668,"y":0.29253634288120745}]}},"page":1},"text":"07/31/25"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.09264391436122375,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.17362263132135694,"y":0.30946184506740165},{"x":0.17362263132135694,"y":0.32030888397506957},{"x":0.08097871696013319,"y":0.32030888397506957}]}},"page":1},"text":"Payment Terms"},{"location":{"bounding_box":{"left":0.23497380710502905,"top":0.30946184506740165,"width":0.11411076869920775,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.30946184506740165},{"x":0.3490845758042368,"y":0.30946184506740165},{"x":0.3490845758042368,"y":0.3194442119801303},{"x":0.23497380710502905,"y":0.3194442119801303}]}},"page":1},"text":"End of Next Month"},{"location":{"bounding_box":{"left":0.666864331836525,"top":0.30338338178887536,"width":0.028231248514914653,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.3038200042015033},{"x":0.694478408027764,"y":0.30338338178887536},{"x":0.6950955803514397,"y":0.312501056295164},{"x":0.6674814464589738,"y":0.3120644542940368}]}},"page":1},"text":"ABN"},{"location":{"bounding_box":{"left":0.8521521461336659,"top":0.3029467593762474,"width":0.08097870974747978,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8521521461336659,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31292912628897607},{"x":0.8521521461336659,"y":0.31292912628897607}]}},"page":1},"text":"53001003000"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.3224834232078927,"width":0.1104321207382018,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.32291149320170476},{"x":0.1895715101115053,"y":0.3224834232078927},{"x":0.19018865358456755,"y":0.3337671049396893},{"x":0.07975653284636575,"y":0.3337671049396893}]}},"page":1},"text":"Shipment Method"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.3359330713421958,"width":0.12330739942070276,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.3359330713421958},{"x":0.2030639322670685,"y":0.3359330713421958},{"x":0.2030639322670685,"y":0.3476533754866204},{"x":0.07975653284636575,"y":0.34721673266249165}]}},"page":1},"text":"Prices Including VAT"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.3372343861612638,"width":0.020861835335238915,"height":0.008681072505161425,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.3372343861612638},{"x":0.2546013554941435,"y":0.3372343861612638},{"x":0.2552184989672057,"y":0.3459154586664252},{"x":0.2343566636319668,"y":0.3459154586664252}]}},"page":1},"text":"No"},{"location":{"bounding_box":{"left":0.5319038162091286,"top":0.38020306503994084,"width":0.04110652719741559,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.5319038162091286,"y":0.38020306503994084},{"x":0.5730103434065442,"y":0.38020306503994084},{"x":0.5730103434065442,"y":0.38975736195885746},{"x":0.5319038162091286,"y":0.38975736195885746}]}},"page":1},"text":"Direct"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.37977499504612877,"width":0.039267185185279274,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.38020306503994084},{"x":0.7165623986261569,"y":0.37977499504612877},{"x":0.7165623986261569,"y":0.38975736195885746},{"x":0.6772952134408776,"y":0.38975736195885746}]}},"page":1},"text":"Allow"},{"location":{"bounding_box":{"left":0.4386548828451598,"top":0.39235999159699336,"width":0.04784666522105857,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.4386548828451598,"y":0.39235999159699336},{"x":0.48650154806621837,"y":0.39235999159699336},{"x":0.48650154806621837,"y":0.40234235850972205},{"x":0.4386548828451598,"y":0.40234235850972205}]}},"page":1},"text":"Unit of"},{"location":{"bounding_box":{"left":0.5441740975268446,"top":0.39235999159699336,"width":0.030675587891835998,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.5441740975268446,"y":0.3927965935981206},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.5748496854186806,"y":0.4019057156855933},{"x":0.5447790948916296,"y":0.4019057156855933}]}},"page":1},"text":"Unit"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.3927965935981206,"width":0.047241667856273706,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.3927965935981206},{"x":0.7245368812971513,"y":0.3927965935981206},{"x":0.7245368812971513,"y":0.40277896051084927},{"x":0.6772952134408776,"y":0.40234235850972205}]}},"page":1},"text":"Invoice"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.39235999159699336,"width":0.028836245879699685,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.3927965935981206},{"x":0.8012319096555733,"y":0.39235999159699336},{"x":0.8018369070203583,"y":0.40234235850972205},{"x":0.7730006611406586,"y":0.4019057156855933}]}},"page":1},"text":"VAT"},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.4053815493259837,"width":0.023923325397875922,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.4058181921501124},{"x":0.10551918583107135,"y":0.4053815493259837},{"x":0.10551918583107135,"y":0.4149273142375851},{"x":0.08159586043319543,"y":0.4149273142375851}]}},"page":1},"text":"No."},{"location":{"bounding_box":{"left":0.1754619589081866,"top":0.4049449473248565,"width":0.07484359793923528,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.1754619589081866,"y":0.4049449473248565},{"x":0.2503055568474219,"y":0.4049449473248565},{"x":0.2503055568474219,"y":0.4166652310577803},{"x":0.1754619589081866,"y":0.415800559062841}]}},"page":1},"text":"Description"},{"location":{"bounding_box":{"left":0.35521968761248135,"top":0.4049449473248565,"width":0.058894719149086894,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.35521968761248135,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.4166652310577803},{"x":0.35521968761248135,"y":0.415800559062841}]}},"page":1},"text":"Quantity"},{"location":{"bounding_box":{"left":0.43925993791117174,"top":0.4053815493259837,"width":0.056450322070938586,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.4053815493259837},{"x":0.4957102599821103,"y":0.4058181921501124},{"x":0.4957102599821103,"y":0.4149273142375851},{"x":0.43925993791117174,"y":0.4149273142375851}]}},"page":1},"text":"Measure"},{"location":{"bounding_box":{"left":0.5423347555147082,"top":0.4053815493259837,"width":0.03557644160456952,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.5423347555147082,"y":0.4053815493259837},{"x":0.5779111971192777,"y":0.4053815493259837},{"x":0.5779111971192777,"y":0.4149273142375851},{"x":0.5423347555147082,"y":0.4144992442437731}]}},"page":1},"text":"Cost"},{"location":{"bounding_box":{"left":0.5895642484120911,"top":0.4049449473248565,"width":0.07546074141229753,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5895642484120911,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4149273142375851},{"x":0.5895642484120911,"y":0.4149273142375851}]}},"page":1},"text":"Discount %"},{"location":{"bounding_box":{"left":0.6779123857645534,"top":0.4053815493259837,"width":0.0582775468254112,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.6779123857645534,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4149273142375851},{"x":0.6779123857645534,"y":0.4144992442437731}]}},"page":1},"text":"Discount"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.4049449473248565,"width":0.06074612071766017,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4153639162387123},{"x":0.7730006611406586,"y":0.4149273142375851}]}},"page":1},"text":"Identifier"},{"location":{"bounding_box":{"left":0.8803712773909167,"top":0.4053815493259837,"width":0.053981748178689615,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.8803712773909167,"y":0.4053815493259837},{"x":0.9343530255696063,"y":0.4053815493259837},{"x":0.9343530255696063,"y":0.4153639162387123},{"x":0.8803712773909167,"y":0.4149273142375851}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.17607910238124885,"top":0.4296868296097721,"width":0.06317840053814472,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4296868296097721},{"x":0.23925750291939357,"y":0.43055150160471134},{"x":0.2386524622786884,"y":0.4409705113415687},{"x":0.17607910238124885,"y":0.44010579852362797}]}},"page":1},"text":"IT Support"},{"location":{"bounding_box":{"left":0.4104236631808586,"top":0.43012343161089933,"width":0.013504510562613536,"height":0.00910912208747272,"polygon":{"coordinates":[{"x":0.4104236631808586,"y":0.43012343161089933},{"x":0.4233110302704099,"y":0.43012343161089933},{"x":0.42392817374347214,"y":0.43923255369837205},{"x":0.4104236631808586,"y":0.4383678817034328}]}},"page":1},"text":"19"},{"location":{"bounding_box":{"left":0.5312867015866799,"top":0.4296868296097721,"width":0.04232869688587626,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.5312867015866799,"y":0.4296868296097721},{"x":0.5736153984725562,"y":0.4296868296097721},{"x":0.5736153984725562,"y":0.4396691965225008},{"x":0.5312867015866799,"y":0.43923255369837205}]}},"page":1},"text":"200.00"},{"location":{"bounding_box":{"left":0.6779123857645534,"top":0.43055150160471134,"width":0.019627533963807675,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.6779123857645534,"y":0.43055150160471134},{"x":0.6969348646623491,"y":0.43055150160471134},{"x":0.697539919728361,"y":0.43923255369837205},{"x":0.6779123857645534,"y":0.4388045245275615}]}},"page":1},"text":"No"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.4292501867856434,"width":0.06196834810734786,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4292501867856434},{"x":0.8349690092480064,"y":0.4292501867856434},{"x":0.8343518369243307,"y":0.44010579852362797},{"x":0.7730006611406586,"y":0.4396691965225008}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.8815934470793774,"top":0.4292501867856434,"width":0.05214246386778021,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.8815934470793774,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.44010579852362797},{"x":0.8815934470793774,"y":0.44010579852362797}]}},"page":1},"text":"3,800.00"},{"location":{"bounding_box":{"left":0.17422767196206213,"top":0.44313645733257445,"width":0.15153862629765735,"height":0.011720324555925365,"polygon":{"coordinates":[{"x":0.17422767196206213,"y":0.44313645733257445},{"x":0.3257662982597195,"y":0.44313645733257445},{"x":0.3257662982597195,"y":0.4548567818884998},{"x":0.17422767196206213,"y":0.4548567818884998}]}},"page":1},"text":"Support period: February"},{"location":{"bounding_box":{"left":0.7680998074279252,"top":0.470052899261814,"width":0.06809137150854194,"height":0.010410436906540754,"polygon":{"coordinates":[{"x":0.7680998074279252,"y":0.470052899261814},{"x":0.8361911789364671,"y":0.470052899261814},{"x":0.8361911789364671,"y":0.48046333616835474},{"x":0.7680998074279252,"y":0.48046333616835474}]}},"page":1},"text":"Total AUD"},{"location":{"bounding_box":{"left":0.8779148207563315,"top":0.47048096925562605,"width":0.05582109019082604,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8779148207563315,"y":0.47048096925562605},{"x":0.9337359109471576,"y":0.47048096925562605},{"x":0.9337359109471576,"y":0.4808999381694819},{"x":0.8779148207563315,"y":0.4808999381694819}]}},"page":1},"text":"3,800.00"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5295104579140573,"width":0.1693268398872887,"height":0.012584955727863112,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5295104579140573},{"x":0.2503055568474219,"y":0.5295104579140573},{"x":0.2503055568474219,"y":0.5420954136419204},{"x":0.08097871696013319,"y":0.5420954136419204}]}},"page":1},"text":"VAT Amount Specification"},{"location":{"bounding_box":{"left":0.4496908483661378,"top":0.5433967284609884,"width":0.09386607683703108,"height":0.010419009736857276,"polygon":{"coordinates":[{"x":0.4496908483661378,"y":0.5433967284609884},{"x":0.5435569252031689,"y":0.5433967284609884},{"x":0.5435569252031689,"y":0.5538157381978457},{"x":0.4496908483661378,"y":0.553379095373717}]}},"page":1},"text":"Inv. Disc. Base"},{"location":{"bounding_box":{"left":0.5662580881252375,"top":0.5433967284609884,"width":0.10797567131627006,"height":0.010419009736857276,"polygon":{"coordinates":[{"x":0.5662580881252375,"y":0.5433967284609884},{"x":0.6742337594415075,"y":0.5433967284609884},{"x":0.6742337594415075,"y":0.5538157381978457},{"x":0.5662580881252375,"y":0.5538157381978457}]}},"page":1},"text":"Invoice Discount"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5555536550180409,"width":0.09140962741509927,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5555536550180409},{"x":0.17238834437523246,"y":0.5555536550180409},{"x":0.17238834437523246,"y":0.5664006939257088},{"x":0.08097871696013319,"y":0.5664006939257088}]}},"page":1},"text":"VAT Identifier"},{"location":{"bounding_box":{"left":0.2441704450391774,"top":0.5555536550180409,"width":0.04356295498138735,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.2441704450391774,"y":0.5555536550180409},{"x":0.28773340002056474,"y":0.5555536550180409},{"x":0.28773340002056474,"y":0.5659726239318967},{"x":0.2441704450391774,"y":0.5664006939257088}]}},"page":1},"text":"VAT %"},{"location":{"bounding_box":{"left":0.3337407232294869,"top":0.5559902570191682,"width":0.08343519523267845,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.3337407232294869,"y":0.5559902570191682},{"x":0.41717591846216534,"y":0.5559902570191682},{"x":0.41717591846216534,"y":0.5659726239318967},{"x":0.3337407232294869,"y":0.5659726239318967}]}},"page":1},"text":"Line Amount"},{"location":{"bounding_box":{"left":0.49141446133538874,"top":0.5564183270129802,"width":0.05398180587991658,"height":0.009554296918916516,"polygon":{"coordinates":[{"x":0.49141446133538874,"y":0.5564183270129802},{"x":0.5453962672153053,"y":0.5564183270129802},{"x":0.5453962672153053,"y":0.5659726239318967},{"x":0.49141446133538874,"y":0.5659726239318967}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.623313465262188,"top":0.5564183270129802,"width":0.053981748178689615,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.623313465262188,"y":0.5564183270129802},{"x":0.6772952134408776,"y":0.5564183270129802},{"x":0.6772952134408776,"y":0.5664006939257088},{"x":0.623313465262188,"y":0.5659726239318967}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.7404857312366862,"top":0.5559902570191682,"width":0.06196834810734786,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.7404857312366862,"y":0.5559902570191682},{"x":0.802454079344034,"y":0.5559902570191682},{"x":0.802454079344034,"y":0.5659726239318967},{"x":0.7404857312366862,"y":0.5659726239318967}]}},"page":1},"text":"VAT Base"},{"location":{"bounding_box":{"left":0.8521521461336659,"top":0.5559902570191682,"width":0.08465739377175263,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.8521521461336659,"y":0.5559902570191682},{"x":0.9368095399054185,"y":0.5564183270129802},{"x":0.9368095399054185,"y":0.5664006939257088},{"x":0.8521521461336659,"y":0.5659726239318967}]}},"page":1},"text":"VAT Amount"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5798588944788279,"width":0.06012899888255803,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5798588944788279},{"x":0.14110771584269122,"y":0.5798588944788279},{"x":0.14110771584269122,"y":0.5902779042156853},{"x":0.08097871696013319,"y":0.5902779042156853}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.008579508886392861,"height":0.008253022922850128,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.28773340002056474,"y":0.5807235664737671},{"x":0.28833845508657663,"y":0.5889765893966172},{"x":0.2803640012661957,"y":0.5889765893966172}]}},"page":1},"text":"0"},{"location":{"bounding_box":{"left":0.36441631112132294,"top":0.5802955373029566,"width":0.051537437652381723,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.36441631112132294,"y":0.5802955373029566},{"x":0.41595374877370467,"y":0.5802955373029566},{"x":0.41595374877370467,"y":0.5902779042156853},{"x":0.36441631112132294,"y":0.5902779042156853}]}},"page":1},"text":"3,800.00"},{"location":{"bounding_box":{"left":0.5196335925926396,"top":0.5807235664737671,"width":0.026996961568790168,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.5196335925926396,"y":0.5807235664737671},{"x":0.546013381837754,"y":0.5807235664737671},{"x":0.5466305541614298,"y":0.5902779042156853},{"x":0.5196335925926396,"y":0.5898412613915565}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.6503104268309782,"top":0.5802955373029566,"width":0.0276019589335752,"height":0.009545724088599883,"polygon":{"coordinates":[{"x":0.6503104268309782,"y":0.5802955373029566},{"x":0.6779123857645534,"y":0.5807235664737671},{"x":0.6779123857645534,"y":0.5898412613915565},{"x":0.6509154241957632,"y":0.5898412613915565}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.7503116154762538,"top":0.5802955373029566,"width":0.05214246386778021,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7503116154762538,"y":0.5802955373029566},{"x":0.802454079344034,"y":0.5802955373029566},{"x":0.802454079344034,"y":0.5902779042156853},{"x":0.7503116154762538,"y":0.5902779042156853}]}},"page":1},"text":"3,800.00"},{"location":{"bounding_box":{"left":0.9098125783366283,"top":0.5802955373029566,"width":0.026379789245114416,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.9098125783366283,"y":0.5802955373029566},{"x":0.9361923675817427,"y":0.5802955373029566},{"x":0.9361923675817427,"y":0.5902779042156853},{"x":0.9098125783366283,"y":0.5894046593904293}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.2527620134820071,"top":0.6072034064018794,"width":0.03557644160456952,"height":0.009982326089727156,"polygon":{"coordinates":[{"x":0.2527620134820071,"y":0.6076400084030066},{"x":0.28833845508657663,"y":0.6072034064018794},{"x":0.28833845508657663,"y":0.6171857324916066},{"x":0.2527620134820071,"y":0.6167491304904794}]}},"page":1},"text":"Total"},{"location":{"bounding_box":{"left":0.3613548282713393,"top":0.6072034064018794,"width":0.0552039467177638,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.3613548282713393,"y":0.6076400084030066},{"x":0.4165587749891031,"y":0.6072034064018794},{"x":0.4165587749891031,"y":0.6171857324916066},{"x":0.3613548282713393,"y":0.6176223753157353}]}},"page":1},"text":"3,800.00"},{"location":{"bounding_box":{"left":0.5171771359580545,"top":0.6076400084030066,"width":0.027601958933575088,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.5171771359580545,"y":0.6076400084030066},{"x":0.5447790948916296,"y":0.6076400084030066},{"x":0.5447790948916296,"y":0.6171857324916066},{"x":0.5171771359580545,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.6478539124951661,"top":0.6076400084030066,"width":0.029441300945711513,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.6478539124951661,"y":0.6080680783968186},{"x":0.6766902160760927,"y":0.6076400084030066},{"x":0.6772952134408776,"y":0.6171857324916066},{"x":0.6484710848188419,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.7460158168295322,"top":0.6072034064018794,"width":0.057055377136950525,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7460158168295322,"y":0.6072034064018794},{"x":0.8030711939664827,"y":0.6072034064018794},{"x":0.8030711939664827,"y":0.6176223753157353},{"x":0.7460158168295322,"y":0.6176223753157353}]}},"page":1},"text":"3,800.00"},{"location":{"bounding_box":{"left":0.9061339520135824,"top":0.6076400084030066,"width":0.03067558789183611,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9061339520135824,"y":0.6080680783968186},{"x":0.9361923675817427,"y":0.6076400084030066},{"x":0.9368095399054185,"y":0.6171857324916066},{"x":0.9067510666360311,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.6506087076931845,"width":0.10307482481618986,"height":0.011283640908795078,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.6506087076931845},{"x":0.18405354177632305,"y":0.6506087076931845},{"x":0.18405354177632305,"y":0.6618923486019795},{"x":0.08097871696013319,"y":0.6618923486019795}]}},"page":1},"text":"Ship-to Address"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.6640583354159868,"width":0.16073524259384558,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.6640583354159868},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.08097871696013319,"y":0.6749139471539713}]}},"page":1},"text":"CRONUS International Ltd."},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6783812487870465,"width":0.06380763963091064,"height":0.011283681731796724,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6783812487870465},{"x":0.14540350006410607,"y":0.6788178507881738},{"x":0.14540350006410607,"y":0.6896649305188433},{"x":0.08159586043319543,"y":0.6892368605250312}]}},"page":1},"text":"5 The Ring"},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6927041213351048,"width":0.0766829183134116,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6927041213351048},{"x":0.15827877874660704,"y":0.6927041213351048},{"x":0.15827877874660704,"y":0.7026864882478335},{"x":0.08159586043319543,"y":0.7022584182540215}]}},"page":1},"text":"Westminster"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.7052891178859695,"width":0.1349604939894363,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.7157081276228269},{"x":0.08097871696013319,"y":0.7052891178859695},{"x":0.2153341703088643,"y":0.7052891178859695},{"x":0.2153341703088643,"y":0.7157081276228269}]}},"page":1},"text":"CANBERRA NSW 2600"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.720048592435155,"width":0.053376729175944534,"height":0.009545805734602952,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.720048592435155},{"x":0.13373831708832223,"y":0.720048592435155},{"x":0.13435544613607772,"y":0.7295943981697579},{"x":0.08097871696013319,"y":0.7295943981697579}]}},"page":1},"text":"Australia"}],"page_read_results":[{"page":1,"elements":[{"id":"0","text":"Purchase","bounding_box":{"left":0.7245368812971513,"top":0.03992945489372671,"width":0.10000118864527552,"height":0.017362122047384562,"polygon":{"coordinates":[{"x":0.7245368812971513,"y":0.03992945489372671},{"x":0.8239209553199781,"y":0.040366077306354664},{"x":0.8245380699424268,"y":0.05685495452848331},{"x":0.7251539959196001,"y":0.05729157694111127}]}}},{"id":"1","text":"-","bounding_box":{"left":0.8288338685891484,"top":0.040366077306354664,"width":0.011048053928028323,"height":0.016488877222128648,"polygon":{"coordinates":[{"x":0.8288338685891484,"y":0.040366077306354664},{"x":0.8392647501935011,"y":0.040366077306354664},{"x":0.8398819225171767,"y":0.05685495452848331},{"x":0.8288338685891484,"y":0.05685495452848331}]}}},{"id":"2","text":"Invoice","bounding_box":{"left":0.8441656039062346,"top":0.040366077306354664,"width":0.08159588207115553,"height":0.016488877222128648,"polygon":{"coordinates":[{"x":0.8441656039062346,"y":0.040366077306354664},{"x":0.9251564309113782,"y":0.040802697167545025},{"x":0.9257614859773902,"y":0.05685495452848331},{"x":0.8447827762299103,"y":0.05685495452848331}]}}},{"id":"3","text":"First","bounding_box":{"left":0.08097871696013319,"top":0.06119548567818885,"width":0.024540468870938165,"height":0.011283666423171072,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.06119548567818885},{"x":0.10551918583107135,"y":0.06163210809081681},{"x":0.10551918583107135,"y":0.07205109231329825},{"x":0.08097871696013319,"y":0.07247915210135993}]}}},{"id":"4","text":"Up","bounding_box":{"left":0.10859280036402551,"top":0.06163210809081681,"width":0.017788206376978047,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.10859280036402551,"y":0.06163210809081681},{"x":0.12638100674100355,"y":0.06163210809081681},{"x":0.12638100674100355,"y":0.07247915210135993},{"x":0.10859280036402551,"y":0.07205109231329825}]}}},{"id":"5","text":"Consultants","bounding_box":{"left":0.13067680538772514,"top":0.06163210809081681,"width":0.06932561517874627,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.13067680538772514,"y":0.06163210809081681},{"x":0.2000024205664714,"y":0.06163210809081681},{"x":0.2000024205664714,"y":0.07247915210135993},{"x":0.13067680538772514,"y":0.07247915210135993}]}}},{"id":"6","text":"Page","bounding_box":{"left":0.8914072140612812,"top":0.06163210809081681,"width":0.03067558789183611,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.8914072140612812,"y":0.06163210809081681},{"x":0.9220828019531173,"y":0.06163210809081681},{"x":0.9220828019531173,"y":0.07247915210135993},{"x":0.8914072140612812,"y":0.07247915210135993}]}}},{"id":"7","text":"1","bounding_box":{"left":0.9263786005998389,"top":0.06163210809081681,"width":0.005517968335182255,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.9263786005998389,"y":0.06163210809081681},{"x":0.9312915715702362,"y":0.06163210809081681},{"x":0.9318965689350212,"y":0.07247915210135993},{"x":0.9263786005998389,"y":0.07247915210135993}]}}},{"id":"8","text":"Evan","bounding_box":{"left":0.08037367631942799,"top":0.07551837863774787,"width":0.026984837098473033,"height":0.009982366912728677,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.07551837863774787},{"x":0.10675347277719582,"y":0.07551837863774787},{"x":0.10735851341790102,"y":0.08550074555047654},{"x":0.08097871696013319,"y":0.08550074555047654}]}}},{"id":"9","text":"McIntosh","bounding_box":{"left":0.11165430485196923,"top":0.07551837863774787,"width":0.05459892771501873,"height":0.009982366912728677,"polygon":{"coordinates":[{"x":0.11165430485196923,"y":0.07551837863774787},{"x":0.16625323256698796,"y":0.07595500105037582},{"x":0.16625323256698796,"y":0.08550074555047654},{"x":0.11165430485196923,"y":0.08550074555047654}]}}},{"id":"10","text":"Allan","bounding_box":{"left":0.08097871696013319,"top":0.0885399669839893,"width":0.029453403778068613,"height":0.011283671526046257,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.0885399669839893},{"x":0.1104321207382018,"y":0.0885399669839893},{"x":0.1104321207382018,"y":0.09982363851003556},{"x":0.08097871696013319,"y":0.09982363851003556}]}}},{"id":"11","text":"Turing","bounding_box":{"left":0.11411077591186114,"top":0.0885399669839893,"width":0.03803289102650137,"height":0.011283671526046257,"polygon":{"coordinates":[{"x":0.11411077591186114,"y":0.0885399669839893},{"x":0.1521436669383625,"y":0.0885399669839893},{"x":0.1521436669383625,"y":0.09982363851003556},{"x":0.11411077591186114,"y":0.09982363851003556}]}}},{"id":"12","text":"Road,","bounding_box":{"left":0.1552172670460099,"top":0.08810334457136135,"width":0.03557642717926285,"height":0.011720293938674214,"polygon":{"coordinates":[{"x":0.1552172670460099,"y":0.0885399669839893},{"x":0.19079369422527276,"y":0.08810334457136135},{"x":0.19079369422527276,"y":0.09982363851003556},{"x":0.1552172670460099,"y":0.09982363851003556}]}}},{"id":"13","text":"20","bounding_box":{"left":0.1944723493989321,"top":0.08810334457136135,"width":0.014726709101687663,"height":0.011720293938674214,"polygon":{"coordinates":[{"x":0.1944723493989321,"y":0.08810334457136135},{"x":0.20919905850061976,"y":0.08810334457136135},{"x":0.20919905850061976,"y":0.09982363851003556},{"x":0.1944723493989321,"y":0.09982363851003556}]}}},{"id":"14","text":"Surrey","bounding_box":{"left":0.08097871696013319,"top":0.10242624773667074,"width":0.03742785038579617,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.11240860444364903},{"x":0.08159586043319543,"y":0.10242624773667074},{"x":0.11840656734592936,"y":0.1028628701492987},{"x":0.11778942387286712,"y":0.11284522685627699}]}}},{"id":"15","text":"5","bounding_box":{"left":0.9251564309113782,"top":0.09418180784988762,"width":0.00735731034731868,"height":0.009117674506288656,"polygon":{"coordinates":[{"x":0.9251564309113782,"y":0.1028628701492987},{"x":0.9257614859773902,"y":0.09418180784988762},{"x":0.9325137412586969,"y":0.09418180784988762},{"x":0.9318965689350212,"y":0.10329948235617628}]}}},{"id":"16","text":"ALBERTON","bounding_box":{"left":0.08037367631942799,"top":0.11588445849554013,"width":0.061956223637030655,"height":0.010418979119606236,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.11588445849554013},{"x":0.14232989995645864,"y":0.11632108090816809},{"x":0.14232989995645864,"y":0.12630343761514637},{"x":0.08037367631942799,"y":0.12630343761514637}]}}},{"id":"17","text":"QLD","bounding_box":{"left":0.1496871958784706,"top":0.11632108090816809,"width":0.0233182919698241,"height":0.00998235670697828,"polygon":{"coordinates":[{"x":0.1496871958784706,"y":0.11632108090816809},{"x":0.1730054878482947,"y":0.11632108090816809},{"x":0.1730054878482947,"y":0.12630343761514637},{"x":0.1496871958784706,"y":0.12630343761514637}]}}},{"id":"18","text":"4207","bounding_box":{"left":0.17914059965653922,"top":0.11588445849554013,"width":0.0294534037780686,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.17914059965653922,"y":0.11632108090816809},{"x":0.20859400343460782,"y":0.11588445849554013},{"x":0.20859400343460782,"y":0.12673149740320805},{"x":0.17914059965653922,"y":0.12630343761514637}]}}},{"id":"19","text":"5","bounding_box":{"left":0.8693232234628884,"top":0.10850470080944664,"width":0.007974424969767413,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.10850470080944664},{"x":0.8772976484326558,"y":0.10850470080944664},{"x":0.8772976484326558,"y":0.1189236799290529},{"x":0.8693232234628884,"y":0.1189236799290529}]}}},{"id":"20","text":"The","bounding_box":{"left":0.8803712773909167,"top":0.10850470080944664,"width":0.0214668759759441,"height":0.010855601532234208,"polygon":{"coordinates":[{"x":0.8803712773909167,"y":0.10850470080944664},{"x":0.9018381533668608,"y":0.10850470080944664},{"x":0.9018381533668608,"y":0.11936030234168085},{"x":0.8803712773909167,"y":0.1189236799290529}]}}},{"id":"21","text":"Ring","bounding_box":{"left":0.9049117246238948,"top":0.10850470080944664,"width":0.027602016634802107,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.9049117246238948,"y":0.10850470080944664},{"x":0.9325137412586969,"y":0.1089413232220746},{"x":0.9325137412586969,"y":0.11978836212974252},{"x":0.9049117246238948,"y":0.11936030234168085}]}}},{"id":"22","text":"Australia","bounding_box":{"left":0.08097871696013319,"top":0.1306439738677271,"width":0.05215455948748386,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.1310720336557888},{"x":0.13313327644761705,"y":0.1306439738677271},{"x":0.13313327644761705,"y":0.14018971836782781},{"x":0.08159586043319543,"y":0.14018971836782781}]}}},{"id":"23","text":"Westminster","bounding_box":{"left":0.8570529998463994,"top":0.12282759376900566,"width":0.07607785603474626,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.8570529998463994,"y":0.12282759376900566},{"x":0.9331308558811456,"y":0.12326421618163362},{"x":0.9331308558811456,"y":0.1332465728886119},{"x":0.8576701144688481,"y":0.13280996068173434}]}}},{"id":"24","text":"CANBERRA","bounding_box":{"left":0.7999976227094489,"top":0.13672242694050302,"width":0.06502980210671794,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.7999976227094489,"y":0.13672242694050302},{"x":0.8650274248161668,"y":0.13715048672856467},{"x":0.8650274248161668,"y":0.14670479385323168},{"x":0.7999976227094489,"y":0.14670479385323168}]}}},{"id":"25","text":"NSW","bounding_box":{"left":0.8693232234628884,"top":0.13672242694050302,"width":0.025157619556653743,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.13715048672856467},{"x":0.8944808430195421,"y":0.13672242694050302},{"x":0.8944808430195421,"y":0.14670479385323168},{"x":0.8693232234628884,"y":0.14670479385323168}]}}},{"id":"26","text":"2600","bounding_box":{"left":0.904294610001446,"top":0.13672242694050302,"width":0.0276019589335752,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.904294610001446,"y":0.13672242694050302},{"x":0.9318965689350212,"y":0.13672242694050302},{"x":0.9318965689350212,"y":0.14756947605392132},{"x":0.904294610001446,"y":0.14713285364129336}]}}},{"id":"27","text":"Australia","bounding_box":{"left":0.8809763324569286,"top":0.1514733796881237,"width":0.05153740880176827,"height":0.00955430712466701,"polygon":{"coordinates":[{"x":0.8809763324569286,"y":0.15191000210075165},{"x":0.9325137412586969,"y":0.1514733796881237},{"x":0.9325137412586969,"y":0.1610276868127907},{"x":0.8809763324569286,"y":0.1610276868127907}]}}},{"id":"28","text":"Pay-to","bounding_box":{"left":0.08037367631942799,"top":0.18663425129839598,"width":0.03987221861333104,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.18663425129839598},{"x":0.12024589493275903,"y":0.18663425129839598},{"x":0.12024589493275903,"y":0.1974812902060639},{"x":0.08037367631942799,"y":0.1974812902060639}]}}},{"id":"29","text":"Vendor","bounding_box":{"left":0.12330740663335614,"top":0.18619762888576802,"width":0.04294582593363182,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.12330740663335614,"y":0.18663425129839598},{"x":0.16625323256698796,"y":0.18619762888576802},{"x":0.16625323256698796,"y":0.1974812902060639},{"x":0.12330740663335614,"y":0.1974812902060639}]}}},{"id":"30","text":"No.","bounding_box":{"left":0.16932683267463536,"top":0.18619762888576802,"width":0.022701148496761858,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.16932683267463536,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18663425129839598},{"x":0.19202798117139722,"y":0.1974812902060639},{"x":0.16932683267463536,"y":0.1974812902060639}]}}},{"id":"31","text":"20000","bounding_box":{"left":0.23619599121879647,"top":0.18619762888576802,"width":0.03619355622701831,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.19617999579849668},{"x":0.23619599121879647,"y":0.19617999579849668}]}}},{"id":"32","text":"Phone","bounding_box":{"left":0.666864331836525,"top":0.18011916560724173,"width":0.03804501549681849,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.18011916560724173},{"x":0.7049093473333435,"y":0.18011916560724173},{"x":0.7049093473333435,"y":0.19010153251997042},{"x":0.6674814464589738,"y":0.18967348293765912}]}}},{"id":"33","text":"No.","bounding_box":{"left":0.7079708013327137,"top":0.18011916560724173,"width":0.02208404829961985,"height":0.010418989325356648,"polygon":{"coordinates":[{"x":0.7079708013327137,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19053815493259837},{"x":0.7079708013327137,"y":0.19010153251997042}]}}},{"id":"34","text":"0666-666-6666","bounding_box":{"left":0.8423262618940982,"top":0.17969111602493043,"width":0.0901874793645987,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8423262618940982,"y":0.18011916560724173},{"x":0.9325137412586969,"y":0.17969111602493043},{"x":0.9325137412586969,"y":0.18967348293765912},{"x":0.8423262618940982,"y":0.18967348293765912}]}}},{"id":"35","text":"VAT","bounding_box":{"left":0.08097871696013319,"top":0.20052052184532704,"width":0.023318284757170724,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.20052052184532704},{"x":0.10429700171730391,"y":0.20052052184532704},{"x":0.10429700171730391,"y":0.21136756075299495},{"x":0.08097871696013319,"y":0.21093951117068366}]}}},{"id":"36","text":"Registration","bounding_box":{"left":0.10735851341790102,"top":0.20008389943269908,"width":0.07239922971170044,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.10735851341790102,"y":0.20052052184532704},{"x":0.17975774312960147,"y":0.20008389943269908},{"x":0.17975774312960147,"y":0.2118041831656229},{"x":0.10735851341790102,"y":0.21136756075299495}]}}},{"id":"37","text":"No.","bounding_box":{"left":0.18281925483019856,"top":0.20008389943269908,"width":0.022084005023699615,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.18281925483019856,"y":0.20008389943269908},{"x":0.20490325985389818,"y":0.20008389943269908},{"x":0.20490325985389818,"y":0.2118041831656229},{"x":0.18281925483019856,"y":0.2118041831656229}]}}},{"id":"38","text":"274863274B01","bounding_box":{"left":0.23619599121879647,"top":0.20052052184532704,"width":0.08650879534032585,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.21093951117068366},{"x":0.23619599121879647,"y":0.2105028887580557}]}}},{"id":"39","text":"Home","bounding_box":{"left":0.666864331836525,"top":0.19270414174660558,"width":0.036810728550694005,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.20355975348459018},{"x":0.666864331836525,"y":0.20355975348459018}]}}},{"id":"40","text":"Page","bounding_box":{"left":0.7067486316442531,"top":0.19270414174660558,"width":0.03129276021551175,"height":0.011292234150612562,"polygon":{"coordinates":[{"x":0.7067486316442531,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.20399637589721814},{"x":0.7067486316442531,"y":0.20355975348459018}]}}},{"id":"41","text":"Email","bounding_box":{"left":0.666864331836525,"top":0.2057257402985974,"width":0.033132044526421156,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2157080867998253},{"x":0.666864331836525,"y":0.2157080867998253}]}}},{"id":"42","text":"Document","bounding_box":{"left":0.08037367631942799,"top":0.22872968535181712,"width":0.06317840775079811,"height":0.010855611737984577,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.22872968535181712},{"x":0.1435520840702261,"y":0.22916630776444508},{"x":0.1435520840702261,"y":0.2395852970898017},{"x":0.08037367631942799,"y":0.2395852970898017}]}}},{"id":"43","text":"Date","bounding_box":{"left":0.1466256841778735,"top":0.22916630776444508,"width":0.028219131257250868,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.1466256841778735,"y":0.22916630776444508},{"x":0.17422767196206213,"y":0.22916630776444508},{"x":0.17484481543512437,"y":0.2395852970898017},{"x":0.1466256841778735,"y":0.2395852970898017}]}}},{"id":"44","text":"VAT","bounding_box":{"left":0.6674814464589738,"top":0.2200486332581564,"width":0.02454050493420501,"height":0.010855591326483838,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.2200486332581564},{"x":0.691404779069503,"y":0.2200486332581564},{"x":0.6920219513931788,"y":0.23090422458464024},{"x":0.6674814464589738,"y":0.23090422458464024}]}}},{"id":"45","text":"Registration","bounding_box":{"left":0.694478408027764,"top":0.2200486332581564,"width":0.07238711245403673,"height":0.010855591326483838,"polygon":{"coordinates":[{"x":0.694478408027764,"y":0.2200486332581564},{"x":0.7668655204818007,"y":0.2200486332581564},{"x":0.7668655204818007,"y":0.23090422458464024},{"x":0.6950955803514397,"y":0.23090422458464024}]}}},{"id":"46","text":"No.","bounding_box":{"left":0.7699391494400615,"top":0.21962056326434437,"width":0.02146687597594421,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.7699391494400615,"y":0.2200486332581564},{"x":0.7914060254160057,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.23090422458464024},{"x":0.7699391494400615,"y":0.23090422458464024}]}}},{"id":"47","text":"777777777","bounding_box":{"left":0.8687060511392126,"top":0.2200486332581564,"width":0.06442480474193302,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8687060511392126,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22048525567078436},{"x":0.9331308558811456,"y":0.22960293017707303},{"x":0.8687060511392126,"y":0.22916630776444508}]}}},{"id":"48","text":"June","bounding_box":{"left":0.2343566636319668,"top":0.22916630776444508,"width":0.028836260305006384,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.22916630776444508},{"x":0.2631929239369732,"y":0.22916630776444508},{"x":0.2631929239369732,"y":0.2395852970898017},{"x":0.2343566636319668,"y":0.2395852970898017}]}}},{"id":"49","text":"4,","bounding_box":{"left":0.26687157911063253,"top":0.22960293017707303,"width":0.011048053928028323,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.26687157911063253,"y":0.22960293017707303},{"x":0.27791963303866085,"y":0.22960293017707303},{"x":0.27791963303866085,"y":0.2395852970898017},{"x":0.26687157911063253,"y":0.2395852970898017}]}}},{"id":"50","text":"2025","bounding_box":{"left":0.28098114473925795,"top":0.22960293017707303,"width":0.02883627473031314,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.28098114473925795,"y":0.22960293017707303},{"x":0.3098174194695711,"y":0.23003097975938433},{"x":0.3098174194695711,"y":0.2395852970898017},{"x":0.28098114473925795,"y":0.2395852970898017}]}}},{"id":"51","text":"Invoice","bounding_box":{"left":0.08037367631942799,"top":0.24218790631643689,"width":0.04293373031392815,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.24218790631643689},{"x":0.12330740663335614,"y":0.24262452872906484},{"x":0.12330740663335614,"y":0.25260687523029274},{"x":0.08037367631942799,"y":0.25260687523029274}]}}},{"id":"52","text":"No.","bounding_box":{"left":0.1257638632679413,"top":0.24262452872906484,"width":0.022084005023699615,"height":0.009982346501227896,"polygon":{"coordinates":[{"x":0.1257638632679413,"y":0.24262452872906484},{"x":0.14784786829164093,"y":0.24305257831137614},{"x":0.14784786829164093,"y":0.25260687523029274},{"x":0.1257638632679413,"y":0.25260687523029274}]}}},{"id":"53","text":"108220","bounding_box":{"left":0.2374181753325639,"top":0.24262452872906484,"width":0.042340770867619865,"height":0.009545724088599966,"polygon":{"coordinates":[{"x":0.2374181753325639,"y":0.24262452872906484},{"x":0.2791418027271215,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2521702528176648}]}}},{"id":"54","text":"Giro","bounding_box":{"left":0.666864331836525,"top":0.23437152621771543,"width":0.02454044723297799,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.23480814863034338},{"x":0.691404779069503,"y":0.23437152621771543},{"x":0.691404779069503,"y":0.24435387271894335},{"x":0.6674814464589738,"y":0.24435387271894335}]}}},{"id":"55","text":"No.","bounding_box":{"left":0.6957005777162246,"top":0.23437152621771543,"width":0.022701162922068696,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.6957005777162246,"y":0.23437152621771543},{"x":0.7184017406382933,"y":0.23437152621771543},{"x":0.7184017406382933,"y":0.24392582313663205},{"x":0.6957005777162246,"y":0.24435387271894335}]}}},{"id":"56","text":"888-9999","bounding_box":{"left":0.8779148207563315,"top":0.23437152621771543,"width":0.0552160351248141,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8779148207563315,"y":0.23480814863034338},{"x":0.9325137412586969,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.24392582313663205},{"x":0.8779148207563315,"y":0.2434892007240041}]}}},{"id":"57","text":"Bank","bounding_box":{"left":0.6674814464589738,"top":0.24869441917727445,"width":0.02821913125725084,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.2578120936835631},{"x":0.6674814464589738,"y":0.2578120936835631}]}}},{"id":"58","text":"World","bounding_box":{"left":0.8294509832115972,"top":0.2482663491834624,"width":0.03557644160456963,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.8294509832115972,"y":0.2482663491834624},{"x":0.8650274248161668,"y":0.24869441917727445},{"x":0.8650274248161668,"y":0.2582487160961911},{"x":0.8294509832115972,"y":0.2586767860900031}]}}},{"id":"59","text":"Wide","bounding_box":{"left":0.8693232234628884,"top":0.24869441917727445,"width":0.03189775758029667,"height":0.009554296918916655,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.24869441917727445},{"x":0.9006159259771732,"y":0.24869441917727445},{"x":0.901220981043185,"y":0.2582487160961911},{"x":0.8699403380853371,"y":0.2582487160961911}]}}},{"id":"60","text":"Bank","bounding_box":{"left":0.904294610001446,"top":0.24869441917727445,"width":0.028836245879699685,"height":0.009554296918916655,"polygon":{"coordinates":[{"x":0.904294610001446,"y":0.24869441917727445},{"x":0.9325137412586969,"y":0.24869441917727445},{"x":0.9331308558811456,"y":0.2582487160961911},{"x":0.9049117246238948,"y":0.2582487160961911}]}}},{"id":"61","text":"Posting","bounding_box":{"left":0.07975653284636575,"top":0.26953237741648695,"width":0.04540228978087035,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269960447410299},{"x":0.1251588226272361,"y":0.26953237741648695},{"x":0.1251588226272361,"y":0.28125268156091154},{"x":0.08037367631942799,"y":0.2808160591482836}]}}},{"id":"62","text":"Date","bounding_box":{"left":0.12822033432783322,"top":0.26953237741648695,"width":0.0294534037780686,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.12822033432783322,"y":0.26953237741648695},{"x":0.15767373810590182,"y":0.26953237741648695},{"x":0.15767373810590182,"y":0.28125268156091154},{"x":0.12883747780089547,"y":0.28125268156091154}]}}},{"id":"63","text":"06/04/25","bounding_box":{"left":0.23497380710502905,"top":0.26953237741648695,"width":0.055821104616132794,"height":0.010847059319168684,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.269960447410299},{"x":0.2901777682480996,"y":0.26953237741648695},{"x":0.29079491172116184,"y":0.28037943673565563},{"x":0.23557884774573423,"y":0.2799428143230277}]}}},{"id":"64","text":"Account","bounding_box":{"left":0.666864331836525,"top":0.2634539345494614,"width":0.0503152391133076,"height":0.009117674506288698,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2634539345494614},{"x":0.7171795709498326,"y":0.2634539345494614},{"x":0.7165623986261569,"y":0.2725716090557501},{"x":0.6680986187826495,"y":0.2725716090557501}]}}},{"id":"65","text":"No.","bounding_box":{"left":0.7196360275844178,"top":0.2634539345494614,"width":0.0214668759759441,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.7196360275844178,"y":0.2634539345494614},{"x":0.7411029035603619,"y":0.2638905569620894},{"x":0.7404857312366862,"y":0.2729996790495621},{"x":0.7196360275844178,"y":0.2725716090557501}]}}},{"id":"66","text":"99-99-888","bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}}},{"id":"67","text":"Due","bounding_box":{"left":0.08097871696013319,"top":0.28341864796341804,"width":0.0239233326105293,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.28341864796341804},{"x":0.10490204957066249,"y":0.28341864796341804},{"x":0.10490204957066249,"y":0.29296439246351874},{"x":0.08097871696013319,"y":0.29296439246351874}]}}},{"id":"68","text":"Date","bounding_box":{"left":0.10919784100473069,"top":0.28341864796341804,"width":0.027614076191238943,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.10919784100473069,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.29253634288120745},{"x":0.10919784100473069,"y":0.29296439246351874}]}}},{"id":"69","text":"07/31/25","bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}}},{"id":"70","text":"Payment","bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.052759600128189046,"height":0.011283661320295846,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.13313327644761705,"y":0.3098984674800296},{"x":0.13373831708832223,"y":0.3207455063876975},{"x":0.08097871696013319,"y":0.3207455063876975}]}}},{"id":"71","text":"Terms","bounding_box":{"left":0.1361947737229074,"top":0.3098984674800296,"width":0.03742785759844955,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.1361947737229074,"y":0.3098984674800296},{"x":0.1730054878482947,"y":0.3098984674800296},{"x":0.17362263132135694,"y":0.3198808139812575},{"x":0.1361947737229074,"y":0.32030888397506957}]}}},{"id":"72","text":"End","bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.02147896438299446,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.2570578121287287,"y":0.3098984674800296},{"x":0.2570578121287287,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}}},{"id":"73","text":"of","bounding_box":{"left":0.2613536107754503,"top":0.3098984674800296,"width":0.012875278682500935,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.2613536107754503,"y":0.3098984674800296},{"x":0.2742288894579512,"y":0.3098984674800296},{"x":0.2742288894579512,"y":0.3194442119801303},{"x":0.2613536107754503,"y":0.3194442119801303}]}}},{"id":"74","text":"Next","bounding_box":{"left":0.27668534609253637,"top":0.3098984674800296,"width":0.028219131257250896,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.27668534609253637,"y":0.3098984674800296},{"x":0.30490447734978726,"y":0.3098984674800296},{"x":0.30490447734978726,"y":0.3198808139812575},{"x":0.27668534609253637,"y":0.3194442119801303}]}}},{"id":"75","text":"Month","bounding_box":{"left":0.30797807745743466,"top":0.3098984674800296,"width":0.03987221140067765,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.30797807745743466,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3194442119801303},{"x":0.30797807745743466,"y":0.3198808139812575}]}}},{"id":"76","text":"ABN","bounding_box":{"left":0.6680986187826495,"top":0.30338338178887536,"width":0.022701162922068585,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.6680986187826495,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.312501056295164},{"x":0.6680986187826495,"y":0.312501056295164}]}}},{"id":"77","text":"53001003000","bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}}},{"id":"78","text":"Shipment","bounding_box":{"left":0.08097871696013319,"top":0.32291149320170476,"width":0.05645034370889869,"height":0.011292234150612535,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.3233481156143327},{"x":0.13681191719596963,"y":0.32291149320170476},{"x":0.13742906066903188,"y":0.3342037273523173},{"x":0.08159586043319543,"y":0.3342037273523173}]}}},{"id":"79","text":"Method","bounding_box":{"left":0.13987342889656673,"top":0.32291149320170476,"width":0.0478587536281089,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.13987342889656673,"y":0.32291149320170476},{"x":0.18773218252467563,"y":0.32291149320170476},{"x":0.18773218252467563,"y":0.3337671049396893},{"x":0.14049057236962897,"y":0.3337671049396893}]}}},{"id":"80","text":"Prices","bounding_box":{"left":0.08037367631942799,"top":0.33636969375482373,"width":0.03435423585284203,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.33636969375482373},{"x":0.11411077591186114,"y":0.33636969375482373},{"x":0.11472791217227002,"y":0.3476533754866204},{"x":0.08097871696013319,"y":0.34721673266249165}]}}},{"id":"81","text":"Including","bounding_box":{"left":0.11717228039980487,"top":0.33636969375482373,"width":0.05645035092155207,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.11717228039980487,"y":0.33636969375482373},{"x":0.1730054878482947,"y":0.33636969375482373},{"x":0.17362263132135694,"y":0.3476533754866204},{"x":0.11778942387286712,"y":0.3476533754866204}]}}},{"id":"82","text":"VAT","bounding_box":{"left":0.17730127206970955,"top":0.33636969375482373,"width":0.025762660197358955,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.17730127206970955,"y":0.33636969375482373},{"x":0.20245889162636332,"y":0.33636969375482373},{"x":0.2030639322670685,"y":0.3476533754866204},{"x":0.1779184155427718,"y":0.3476533754866204}]}}},{"id":"83","text":"No","bounding_box":{"left":0.23557884774573423,"top":0.3372343861612638,"width":0.017183165736272876,"height":0.008681072505161425,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3372343861612638},{"x":0.2527620134820071,"y":0.3372343861612638},{"x":0.2527620134820071,"y":0.3459154586664252},{"x":0.23557884774573423,"y":0.3459154586664252}]}}},{"id":"84","text":"Direct","bounding_box":{"left":0.5337431582212651,"top":0.38020306503994084,"width":0.0398722402512911,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5337431582212651,"y":0.38020306503994084},{"x":0.5736153984725562,"y":0.38020306503994084},{"x":0.5736153984725562,"y":0.39018543195266947},{"x":0.5343603305449408,"y":0.39018543195266947}]}}},{"id":"85","text":"Allow","bounding_box":{"left":0.6797517277766898,"top":0.37977499504612877,"width":0.031909874837960484,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6797517277766898,"y":0.37977499504612877},{"x":0.7116616026146503,"y":0.37977499504612877},{"x":0.7116616026146503,"y":0.38975736195885746},{"x":0.6797517277766898,"y":0.38975736195885746}]}}},{"id":"86","text":"Unit","bounding_box":{"left":0.43987705253362047,"top":0.3927965935981206,"width":0.028219131257250896,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.43987705253362047,"y":0.3927965935981206},{"x":0.46809618379087137,"y":0.3927965935981206},{"x":0.46809618379087137,"y":0.40277896051084927},{"x":0.4404941960066827,"y":0.40234235850972205}]}}},{"id":"87","text":"of","bounding_box":{"left":0.47116978389851877,"top":0.39235999159699336,"width":0.015331764167699602,"height":0.010418968913855908,"polygon":{"coordinates":[{"x":0.47116978389851877,"y":0.3927965935981206},{"x":0.48650154806621837,"y":0.39235999159699336},{"x":0.48650154806621837,"y":0.40277896051084927},{"x":0.47116978389851877,"y":0.40277896051084927}]}}},{"id":"88","text":"Unit","bounding_box":{"left":0.5453962672153053,"top":0.39235999159699336,"width":0.028836245879699685,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.5453962672153053,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.4014776456917813},{"x":0.546013381837754,"y":0.4019057156855933}]}}},{"id":"89","text":"Invoice","bounding_box":{"left":0.6785295003870021,"top":0.3927965935981206,"width":0.04539020858647347,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.3927965935981206},{"x":0.7239197089734756,"y":0.39322466359193264},{"x":0.7239197089734756,"y":0.40277896051084927},{"x":0.6785295003870021,"y":0.40277896051084927}]}}},{"id":"90","text":"VAT","bounding_box":{"left":0.774840003152795,"top":0.39235999159699336,"width":0.02639190650277834,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.774840003152795,"y":0.39235999159699336},{"x":0.8012319096555733,"y":0.39235999159699336},{"x":0.8012319096555733,"y":0.40234235850972205},{"x":0.774840003152795,"y":0.40234235850972205}]}}},{"id":"91","text":"No.","bounding_box":{"left":0.08221300390625766,"top":0.4053815493259837,"width":0.022689045664404828,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4149273142375851},{"x":0.08221300390625766,"y":0.4149273142375851}]}}},{"id":"92","text":"Description","bounding_box":{"left":0.17607910238124885,"top":0.4053815493259837,"width":0.0717699689809744,"height":0.01172032455592531,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4053815493259837},{"x":0.24784907136222326,"y":0.4053815493259837},{"x":0.24784907136222326,"y":0.417101873881909},{"x":0.17607910238124885,"y":0.415800559062841}]}}},{"id":"93","text":"Quantity","bounding_box":{"left":0.3570590296246177,"top":0.4049449473248565,"width":0.05643823366388828,"height":0.012156926557052528,"polygon":{"coordinates":[{"x":0.3570590296246177,"y":0.4049449473248565},{"x":0.413497263288506,"y":0.4053815493259837},{"x":0.413497263288506,"y":0.417101873881909},{"x":0.3570590296246177,"y":0.4162286290566531}]}}},{"id":"94","text":"Measure","bounding_box":{"left":0.43925993791117174,"top":0.4058181921501124,"width":0.0552160351248141,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.4058181921501124},{"x":0.49447597303598584,"y":0.4058181921501124},{"x":0.49447597303598584,"y":0.4153639162387123},{"x":0.43987705253362047,"y":0.4153639162387123}]}}},{"id":"95","text":"Cost","bounding_box":{"left":0.5447790948916296,"top":0.4053815493259837,"width":0.029453418203375437,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.5447790948916296,"y":0.4053815493259837},{"x":0.574232513095005,"y":0.4053815493259837},{"x":0.574232513095005,"y":0.4149273142375851},{"x":0.5447790948916296,"y":0.4149273142375851}]}}},{"id":"96","text":"Discount","bounding_box":{"left":0.5914157076818913,"top":0.4049449473248565,"width":0.05766043220296235,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5914157076818913,"y":0.4049449473248565},{"x":0.6490761398848537,"y":0.4049449473248565},{"x":0.6490761398848537,"y":0.4153639162387123},{"x":0.5914157076818913,"y":0.4153639162387123}]}}},{"id":"97","text":"%","bounding_box":{"left":0.6564455097886093,"top":0.4053815493259837,"width":0.008579480035779352,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.6564455097886093,"y":0.4153639162387123},{"x":0.6570505648546212,"y":0.4053815493259837},{"x":0.6650249898243886,"y":0.4053815493259837},{"x":0.6650249898243886,"y":0.4153639162387123}]}}},{"id":"98","text":"Discount","bounding_box":{"left":0.679134555453014,"top":0.4053815493259837,"width":0.057055377136950525,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.679134555453014,"y":0.4058181921501124},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4153639162387123},{"x":0.679134555453014,"y":0.4149273142375851}]}}},{"id":"99","text":"Identifier","bounding_box":{"left":0.7730006611406586,"top":0.4049449473248565,"width":0.06135117578367211,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4053815493259837},{"x":0.8343518369243307,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4153639162387123},{"x":0.7736177757631074,"y":0.4153639162387123}]}}},{"id":"100","text":"Amount","bounding_box":{"left":0.8815934470793774,"top":0.4053815493259837,"width":0.05214246386778021,"height":0.010419009736857332,"polygon":{"coordinates":[{"x":0.8815934470793774,"y":0.4053815493259837},{"x":0.9337359109471576,"y":0.4053815493259837},{"x":0.9337359109471576,"y":0.415800559062841},{"x":0.8815934470793774,"y":0.4149273142375851}]}}},{"id":"101","text":"IT","bounding_box":{"left":0.17607910238124885,"top":0.43012343161089933,"width":0.01165308014342678,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.43012343161089933},{"x":0.18773218252467563,"y":0.43012343161089933},{"x":0.18773218252467563,"y":0.44053386851744003},{"x":0.17607910238124885,"y":0.44053386851744003}]}}},{"id":"102","text":"Support","bounding_box":{"left":0.19079369422527276,"top":0.43012343161089933,"width":0.04785876805341563,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.19079369422527276,"y":0.43012343161089933},{"x":0.2386524622786884,"y":0.43055150160471134},{"x":0.2386524622786884,"y":0.44140711334269594},{"x":0.19079369422527276,"y":0.44053386851744003}]}}},{"id":"103","text":"19","bounding_box":{"left":0.4104236631808586,"top":0.43012343161089933,"width":0.012887367089551294,"height":0.00910912208747272,"polygon":{"coordinates":[{"x":0.4104236631808586,"y":0.4388045245275615},{"x":0.41104080665392084,"y":0.43012343161089933},{"x":0.4233110302704099,"y":0.43012343161089933},{"x":0.42269388679734765,"y":0.43923255369837205}]}}},{"id":"104","text":"200.00","bounding_box":{"left":0.5331260435988163,"top":0.43012343161089933,"width":0.039884299807727897,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5331260435988163,"y":0.43012343161089933},{"x":0.5723931710828686,"y":0.43012343161089933},{"x":0.5730103434065442,"y":0.44010579852362797},{"x":0.5337431582212651,"y":0.4396691965225008}]}}},{"id":"105","text":"No","bounding_box":{"left":0.6785295003870021,"top":0.43055150160471134,"width":0.01778824965289827,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43923255369837205},{"x":0.6785295003870021,"y":0.4388045245275615}]}}},{"id":"106","text":"NON","bounding_box":{"left":0.7736177757631074,"top":0.4296868296097721,"width":0.02761413389246592,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7736177757631074,"y":0.43012343161089933},{"x":0.8006147373318976,"y":0.4296868296097721},{"x":0.8012319096555733,"y":0.4396691965225008},{"x":0.7742349480867831,"y":0.4396691965225008}]}}},{"id":"107","text":"GST","bounding_box":{"left":0.808589162301665,"top":0.4296868296097721,"width":0.02454050493420501,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.808589162301665,"y":0.4296868296097721},{"x":0.83312966723587,"y":0.4296868296097721},{"x":0.83312966723587,"y":0.44010579852362797},{"x":0.808589162301665,"y":0.4396691965225008}]}}},{"id":"108","text":"3,800.00","bounding_box":{"left":0.882815616767838,"top":0.4296868296097721,"width":0.050920294179319536,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.882815616767838,"y":0.4296868296097721},{"x":0.9331308558811456,"y":0.4296868296097721},{"x":0.9337359109471576,"y":0.44053386851744003},{"x":0.8834327890915138,"y":0.44010579852362797}]}}},{"id":"109","text":"Support","bounding_box":{"left":0.17668414302195404,"top":0.44357310015670315,"width":0.04724161015504666,"height":0.011720283732923886,"polygon":{"coordinates":[{"x":0.17668414302195404,"y":0.44357310015670315},{"x":0.22330860970393845,"y":0.44357310015670315},{"x":0.2239257531770007,"y":0.45529338388962703},{"x":0.17668414302195404,"y":0.4548567818884998}]}}},{"id":"110","text":"period:","bounding_box":{"left":0.22699936770995485,"top":0.44313645733257445,"width":0.04171152456220059,"height":0.012156926557052583,"polygon":{"coordinates":[{"x":0.22699936770995485,"y":0.44357310015670315},{"x":0.2680937776497067,"y":0.44313645733257445},{"x":0.26871089227215544,"y":0.45529338388962703},{"x":0.22699936770995485,"y":0.45529338388962703}]}}},{"id":"111","text":"February","bounding_box":{"left":0.27178452123041635,"top":0.44313645733257445,"width":0.053981777029303124,"height":0.012156926557052583,"polygon":{"coordinates":[{"x":0.27178452123041635,"y":0.44313645733257445},{"x":0.3257662982597195,"y":0.44313645733257445},{"x":0.3257662982597195,"y":0.45529338388962703},{"x":0.27178452123041635,"y":0.45529338388962703}]}}},{"id":"112","text":"Total","bounding_box":{"left":0.7705563217637372,"top":0.47048096925562605,"width":0.03373704189120619,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7705563217637372,"y":0.47048096925562605},{"x":0.8042933636549434,"y":0.47091757125675326},{"x":0.8042933636549434,"y":0.48046333616835474},{"x":0.7705563217637372,"y":0.4808999381694819}]}}},{"id":"113","text":"AUD","bounding_box":{"left":0.8067498779907556,"top":0.47048096925562605,"width":0.026379789245114416,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8067498779907556,"y":0.47091757125675326},{"x":0.83312966723587,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.4808999381694819},{"x":0.8073669926132043,"y":0.48046333616835474}]}}},{"id":"114","text":"3,800.00","bounding_box":{"left":0.8785319353787803,"top":0.47048096925562605,"width":0.05459892050236537,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.8785319353787803,"y":0.47135421408088196},{"x":0.9331308558811456,"y":0.47048096925562605},{"x":0.9331308558811456,"y":0.48133658099361065},{"x":0.8791369904447922,"y":0.4808999381694819}]}}},{"id":"115","text":"VAT","bounding_box":{"left":0.08221300390625766,"top":0.529947100738186,"width":0.02637979645776785,"height":0.012148312903734415,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.529947100738186},{"x":0.10859280036402551,"y":0.529947100738186},{"x":0.10859280036402551,"y":0.5420954136419204},{"x":0.08221300390625766,"y":0.5420954136419204}]}}},{"id":"116","text":"Amount","bounding_box":{"left":0.11165430485196923,"top":0.529947100738186,"width":0.05215455948748385,"height":0.012148312903734415,"polygon":{"coordinates":[{"x":0.11165430485196923,"y":0.529947100738186},{"x":0.16319172086639086,"y":0.529947100738186},{"x":0.16380886433945308,"y":0.5420954136419204},{"x":0.11227144832503147,"y":0.5420954136419204}]}}},{"id":"117","text":"Specification","bounding_box":{"left":0.16687036161474345,"top":0.529947100738186,"width":0.08281805175961623,"height":0.012584955727863112,"polygon":{"coordinates":[{"x":0.16687036161474345,"y":0.529947100738186},{"x":0.24908335830834774,"y":0.529947100738186},{"x":0.24968841337435968,"y":0.5425320564660491},{"x":0.16687036161474345,"y":0.5420954136419204}]}}},{"id":"118","text":"Inv.","bounding_box":{"left":0.4503079629885866,"top":0.5433967284609884,"width":0.025762674622665682,"height":0.010419009736857276,"polygon":{"coordinates":[{"x":0.4503079629885866,"y":0.5433967284609884},{"x":0.47546558254524035,"y":0.5438333712851171},{"x":0.4760706376112523,"y":0.5538157381978457},{"x":0.4503079629885866,"y":0.5538157381978457}]}}},{"id":"119","text":"Disc.","bounding_box":{"left":0.47852709424583745,"top":0.5438333712851171,"width":0.030675616742449507,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.47852709424583745,"y":0.5438333712851171},{"x":0.509202710988287,"y":0.5438333712851171},{"x":0.509202710988287,"y":0.554252340198973},{"x":0.47852709424583745,"y":0.5538157381978457}]}}},{"id":"120","text":"Base","bounding_box":{"left":0.512264222688884,"top":0.5433967284609884,"width":0.029453360502148418,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.512264222688884,"y":0.5438333712851171},{"x":0.5417175831910325,"y":0.5433967284609884},{"x":0.5417175831910325,"y":0.554252340198973},{"x":0.512264222688884,"y":0.554252340198973}]}}},{"id":"121","text":"Invoice","bounding_box":{"left":0.5668752027476862,"top":0.5433967284609884,"width":0.04722955059860989,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.5668752027476862,"y":0.5433967284609884},{"x":0.6134996982802842,"y":0.5438333712851171},{"x":0.6141047533462961,"y":0.554252340198973},{"x":0.5668752027476862,"y":0.5538157381978457}]}}},{"id":"122","text":"Discount","bounding_box":{"left":0.6177954969270057,"top":0.5433967284609884,"width":0.057055377136950525,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.6177954969270057,"y":0.5438333712851171},{"x":0.6748508740639563,"y":0.5433967284609884},{"x":0.6748508740639563,"y":0.554252340198973},{"x":0.6177954969270057,"y":0.554252340198973}]}}},{"id":"123","text":"VAT","bounding_box":{"left":0.08159586043319543,"top":0.5559902570191682,"width":0.025762652984705592,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5559902570191682},{"x":0.10735851341790102,"y":0.5559902570191682},{"x":0.10735851341790102,"y":0.5664006939257088},{"x":0.08221300390625766,"y":0.5664006939257088}]}}},{"id":"124","text":"Identifier","bounding_box":{"left":0.1104321207382018,"top":0.5559902570191682,"width":0.061956223637030655,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.1104321207382018,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5668372959268361},{"x":0.1104321207382018,"y":0.5664006939257088}]}}},{"id":"125","text":"VAT","bounding_box":{"left":0.24600975820070034,"top":0.5555536550180409,"width":0.026379789245114443,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.24600975820070034,"y":0.5555536550180409},{"x":0.2723895474458148,"y":0.5555536550180409},{"x":0.2723895474458148,"y":0.5664006939257088},{"x":0.24600975820070034,"y":0.5664006939257088}]}}},{"id":"126","text":"%","bounding_box":{"left":0.2803640012661957,"top":0.5555536550180409,"width":0.006752255281306796,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.2803640012661957,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5664006939257088},{"x":0.28098114473925795,"y":0.5664006939257088}]}}},{"id":"127","text":"Line","bounding_box":{"left":0.33435786670254913,"top":0.5559902570191682,"width":0.02637981809572798,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.33435786670254913,"y":0.5559902570191682},{"x":0.3607376847982771,"y":0.5559902570191682},{"x":0.3607376847982771,"y":0.5664006939257088},{"x":0.33435786670254913,"y":0.5659726239318967}]}}},{"id":"128","text":"Amount","bounding_box":{"left":0.36441631112132294,"top":0.5564183270129802,"width":0.052759607340842396,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.36441631112132294,"y":0.5564183270129802},{"x":0.41717591846216534,"y":0.5564183270129802},{"x":0.41717591846216534,"y":0.5664006939257088},{"x":0.36441631112132294,"y":0.5664006939257088}]}}},{"id":"129","text":"Amount","bounding_box":{"left":0.49385885841353705,"top":0.5568549290141074,"width":0.05153740880176827,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.49385885841353705,"y":0.5568549290141074},{"x":0.5453962672153053,"y":0.5568549290141074},{"x":0.5453962672153053,"y":0.5664006939257088},{"x":0.49385885841353705,"y":0.5659726239318967}]}}},{"id":"130","text":"Amount","bounding_box":{"left":0.6251528072743244,"top":0.5564183270129802,"width":0.05153740880176827,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.6251528072743244,"y":0.5568549290141074},{"x":0.6766902160760927,"y":0.5564183270129802},{"x":0.6766902160760927,"y":0.5668372959268361},{"x":0.6257699218967732,"y":0.5659726239318967}]}}},{"id":"131","text":"VAT","bounding_box":{"left":0.7429421878712713,"top":0.5559902570191682,"width":0.025762674622665682,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.7429421878712713,"y":0.5559902570191682},{"x":0.768704862493937,"y":0.5559902570191682},{"x":0.768704862493937,"y":0.5664006939257088},{"x":0.7429421878712713,"y":0.5659726239318967}]}}},{"id":"132","text":"Base","bounding_box":{"left":0.7723956060746467,"top":0.5564183270129802,"width":0.028836303580926592,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.7723956060746467,"y":0.5564183270129802},{"x":0.8012319096555733,"y":0.5564183270129802},{"x":0.8012319096555733,"y":0.5664006939257088},{"x":0.7723956060746467,"y":0.5664006939257088}]}}},{"id":"133","text":"VAT","bounding_box":{"left":0.8533743158221265,"top":0.5559902570191682,"width":0.026379789245114416,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.5559902570191682},{"x":0.8797541050672409,"y":0.5564183270129802},{"x":0.8797541050672409,"y":0.5664006939257088},{"x":0.8533743158221265,"y":0.5664006939257088}]}}},{"id":"134","text":"Amount","bounding_box":{"left":0.8834327890915138,"top":0.5564183270129802,"width":0.053376750813904694,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.8834327890915138,"y":0.5564183270129802},{"x":0.9368095399054185,"y":0.5568549290141074},{"x":0.9368095399054185,"y":0.5664006939257088},{"x":0.8834327890915138,"y":0.5664006939257088}]}}},{"id":"135","text":"NON","bounding_box":{"left":0.08159586043319543,"top":0.5802955373029566,"width":0.026996939930830077,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5807235664737671},{"x":0.10859280036402551,"y":0.5802955373029566},{"x":0.10859280036402551,"y":0.5902779042156853},{"x":0.08159586043319543,"y":0.5902779042156853}]}}},{"id":"136","text":"GST","bounding_box":{"left":0.11595009628603745,"top":0.5802955373029566,"width":0.024540476083591528,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.11595009628603745,"y":0.5802955373029566},{"x":0.13987342889656673,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5907059333864958},{"x":0.11595009628603745,"y":0.5907059333864958}]}}},{"id":"137","text":"0","bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.006740166874256492,"height":0.008253022922850128,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.28649911307444026,"y":0.5807235664737671},{"x":0.28649911307444026,"y":0.5889765893966172},{"x":0.27975894620018377,"y":0.5889765893966172}]}}},{"id":"138","text":"3,800.00","bounding_box":{"left":0.3656385096603971,"top":0.5807235664737671,"width":0.0496980956402453,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.3656385096603971,"y":0.5807235664737671},{"x":0.4153366053006424,"y":0.5807235664737671},{"x":0.4153366053006424,"y":0.5907059333864958},{"x":0.36625565313345937,"y":0.5907059333864958}]}}},{"id":"139","text":"0.00","bounding_box":{"left":0.5196335925926396,"top":0.5807235664737671,"width":0.02514550229898993,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.5196335925926396,"y":0.5807235664737671},{"x":0.5447790948916296,"y":0.5807235664737671},{"x":0.5441740975268446,"y":0.5902779042156853},{"x":0.5196335925926396,"y":0.5898412613915565}]}}},{"id":"140","text":"0.00","bounding_box":{"left":0.651532596519439,"top":0.5802955373029566,"width":0.02454044723297799,"height":0.009545724088599883,"polygon":{"coordinates":[{"x":0.651532596519439,"y":0.5898412613915565},{"x":0.6521497111418877,"y":0.5802955373029566},{"x":0.676073043752417,"y":0.5802955373029566},{"x":0.676073043752417,"y":0.5898412613915565}]}}},{"id":"141","text":"3,800.00","bounding_box":{"left":0.7521509574883902,"top":0.5802955373029566,"width":0.04908095216718311,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.7521509574883902,"y":0.5802955373029566},{"x":0.8012319096555733,"y":0.5802955373029566},{"x":0.8012319096555733,"y":0.5907059333864958},{"x":0.7527559548531751,"y":0.5907059333864958}]}}},{"id":"142","text":"0.00","bounding_box":{"left":0.9098125783366283,"top":0.5802955373029566,"width":0.026379789245114416,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.9098125783366283,"y":0.5802955373029566},{"x":0.9361923675817427,"y":0.5802955373029566},{"x":0.9355873125157308,"y":0.5902779042156853},{"x":0.9098125783366283,"y":0.5898412613915565}]}}},{"id":"143","text":"Total","bounding_box":{"left":0.2552184989672057,"top":0.6072034064018794,"width":0.032514901053359024,"height":0.009982326089727156,"polygon":{"coordinates":[{"x":0.2552184989672057,"y":0.6072034064018794},{"x":0.28773340002056474,"y":0.6072034064018794},{"x":0.28773340002056474,"y":0.6171857324916066},{"x":0.2552184989672057,"y":0.6171857324916066}]}}},{"id":"144","text":"3,800.00","bounding_box":{"left":0.3619598544867378,"top":0.6076400084030066,"width":0.05337675081390464,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.3619598544867378,"y":0.6080680783968186},{"x":0.4153366053006424,"y":0.6076400084030066},{"x":0.4153366053006424,"y":0.6176223753157353},{"x":0.3619598544867378,"y":0.6176223753157353}]}}},{"id":"145","text":"0.00","bounding_box":{"left":0.5177942505805032,"top":0.6076400084030066,"width":0.026379846946341434,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.5177942505805032,"y":0.6076400084030066},{"x":0.5441740975268446,"y":0.6076400084030066},{"x":0.5441740975268446,"y":0.6171857324916066},{"x":0.5177942505805032,"y":0.6167491304904794}]}}},{"id":"146","text":"0.00","bounding_box":{"left":0.6496932545073025,"top":0.6076400084030066,"width":0.025762674622665682,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.6496932545073025,"y":0.6076400084030066},{"x":0.6754559291299682,"y":0.6076400084030066},{"x":0.6754559291299682,"y":0.6171857324916066},{"x":0.6496932545073025,"y":0.6171857324916066}]}}},{"id":"147","text":"3,800.00","bounding_box":{"left":0.7472379865179929,"top":0.6072034064018794,"width":0.05459892050236537,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.7472379865179929,"y":0.6080680783968186},{"x":0.8012319096555733,"y":0.6072034064018794},{"x":0.8018369070203583,"y":0.6180504453095473},{"x":0.7478551588416686,"y":0.6180504453095473}]}}},{"id":"148","text":"0.00","bounding_box":{"left":0.9085904086481675,"top":0.6076400084030066,"width":0.026379789245114527,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9085904086481675,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6171857324916066},{"x":0.9085904086481675,"y":0.6171857324916066}]}}},{"id":"149","text":"Ship-to","bounding_box":{"left":0.08221300390625766,"top":0.651036736863995,"width":0.04662447389463781,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.651036736863995},{"x":0.12822033432783322,"y":0.651036736863995},{"x":0.12883747780089547,"y":0.6623204185957916},{"x":0.08281804454696286,"y":0.6618923486019795}]}}},{"id":"150","text":"Address","bounding_box":{"left":0.1325161329745548,"top":0.651036736863995,"width":0.05153740880176824,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.1325161329745548,"y":0.651036736863995},{"x":0.18405354177632305,"y":0.651036736863995},{"x":0.18405354177632305,"y":0.6618923486019795},{"x":0.1325161329745548,"y":0.6623204185957916}]}}},{"id":"151","text":"CRONUS","bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.052759585702882306,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.13435544613607772,"y":0.6644949782401155},{"x":0.13497258960913996,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}}},{"id":"152","text":"International","bounding_box":{"left":0.13742906066903188,"top":0.6644949782401155,"width":0.07730006899912722,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.13742906066903188,"y":0.6644949782401155},{"x":0.2147291296681591,"y":0.6644949782401155},{"x":0.21411198619509686,"y":0.6753420171477834},{"x":0.13803410130973706,"y":0.6753420171477834}]}}},{"id":"153","text":"Ltd.","bounding_box":{"left":0.21717349789569396,"top":0.6644949782401155,"width":0.0245404616582848,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.21717349789569396,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.21717349789569396,"y":0.6753420171477834}]}}},{"id":"154","text":"5","bounding_box":{"left":0.08159586043319543,"top":0.6788178507881738,"width":0.008591582868136424,"height":0.010847079730669451,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6788178507881738},{"x":0.08957029982826961,"y":0.6788178507881738},{"x":0.09018744330133185,"y":0.6896649305188433},{"x":0.08221300390625766,"y":0.6896649305188433}]}}},{"id":"155","text":"The","bounding_box":{"left":0.09386609126233782,"top":0.6788178507881738,"width":0.021466868763290764,"height":0.010847079730669451,"polygon":{"coordinates":[{"x":0.09386609126233782,"y":0.6788178507881738},{"x":0.11472791217227002,"y":0.6788178507881738},{"x":0.11533296002562858,"y":0.6896649305188433},{"x":0.09448323473540006,"y":0.6896649305188433}]}}},{"id":"156","text":"Ring","bounding_box":{"left":0.11778942387286712,"top":0.6788178507881738,"width":0.027614076191238957,"height":0.011283640908795078,"polygon":{"coordinates":[{"x":0.11778942387286712,"y":0.6788178507881738},{"x":0.14540350006410607,"y":0.6792544936123025},{"x":0.14540350006410607,"y":0.6901014916969689},{"x":0.11840656734592936,"y":0.6896649305188433}]}}},{"id":"157","text":"Westminster","bounding_box":{"left":0.08221300390625766,"top":0.6927041213351048,"width":0.07606577484034938,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6927041213351048},{"x":0.15767373810590182,"y":0.6931407641592335},{"x":0.15827877874660704,"y":0.7026864882478335},{"x":0.08221300390625766,"y":0.7026864882478335}]}}},{"id":"158","text":"CANBERRA","bounding_box":{"left":0.08159586043319543,"top":0.7057257607100982,"width":0.0662520078584455,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.7057257607100982},{"x":0.14724282765093574,"y":0.7057257607100982},{"x":0.14784786829164093,"y":0.7157081276228269},{"x":0.08221300390625766,"y":0.7161446888009525}]}}},{"id":"159","text":"NSW","bounding_box":{"left":0.15092148282459508,"top":0.7057257607100982,"width":0.02637978924511447,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.15092148282459508,"y":0.7057257607100982},{"x":0.17668414302195404,"y":0.7057257607100982},{"x":0.17730127206970955,"y":0.7161446888009525},{"x":0.15153862629765733,"y":0.7157081276228269}]}}},{"id":"160","text":"2600","bounding_box":{"left":0.18589286936315272,"top":0.7057257607100982,"width":0.028836260305006384,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.18589286936315272,"y":0.7057257607100982},{"x":0.2147291296681591,"y":0.7057257607100982},{"x":0.2147291296681591,"y":0.7161446888009525},{"x":0.1864979100038579,"y":0.7161446888009525}]}}},{"id":"161","text":"Australia","bounding_box":{"left":0.08281804454696286,"top":0.720048592435155,"width":0.051537401589114865,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.08281804454696286,"y":0.7204852352592837},{"x":0.13435544613607772,"y":0.720048592435155},{"x":0.13435544613607772,"y":0.7300309593478835},{"x":0.08281804454696286,"y":0.7295943981697579}]}}}],"selection_marks":[]}],"error":null}},"error":null} \ No newline at end of file diff --git a/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108222.json b/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108222.json deleted file mode 100644 index ce9b7de682..0000000000 --- a/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108222.json +++ /dev/null @@ -1 +0,0 @@ -{"outputs":{"1":{"page_count":1,"result":{"context":{"start_page":1,"end_page":1},"fields":{"amountDue":null,"billingAddress":null,"billingAddressRecipient":null,"customerAddress":{"value_text":"5 The Ring Westminster CANBERRA NSW 2600 Australia","value_number":null,"value_date":null,"confidence":0.862,"location":{"bounding_box":{"left":0.7997192719905435,"top":0.10790541914731037,"width":0.1336899346095075,"height":0.053421908496548445,"polygon":{"coordinates":[{"x":0.7997192719905435,"y":0.1605568139018976},{"x":0.8003243270565554,"y":0.10790541914731037},{"x":0.933409206600051,"y":0.10866736005895494},{"x":0.9328041515340391,"y":0.16132732764385882}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerAddressRecipient":null,"customerId":{"value_text":"99-99-888","value_number":null,"value_date":null,"confidence":0.748,"location":{"bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerName":{"value_text":"CRONUS International Ltd.","value_number":null,"value_date":null,"confidence":0.93,"location":{"bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.1570444990131359,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.23925750291939357,"y":0.6644949782401155},{"x":0.23925750291939357,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}},"page":1},"currency_symbol":null,"currency_code":null},"dueDate":{"value_text":"07/31/25","value_number":null,"value_date":"2025-07-31","confidence":0.97,"location":{"bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05399386543635343,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.29340101487614667},{"x":0.23557884774573423,"y":0.29296439246351874}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceDate":{"value_text":"June 4, 2025","value_number":null,"value_date":"2025-06-04","confidence":0.886,"location":{"bounding_box":{"left":0.23497380710502905,"top":0.22916630776444508,"width":0.0742264688914798,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.22916630776444508},{"x":0.30920027599650884,"y":0.22916630776444508},{"x":0.30920027599650884,"y":0.2395852970898017},{"x":0.23497380710502905,"y":0.2395852970898017}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceId":{"value_text":"108222","value_number":null,"value_date":null,"confidence":0.969,"location":{"bounding_box":{"left":0.2374181753325639,"top":0.24262452872906484,"width":0.042945825933631804,"height":0.009545724088599966,"polygon":{"coordinates":[{"x":0.2374181753325639,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.24262452872906484},{"x":0.2803640012661957,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2517336304050368}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceTotal":{"value_text":"AUD 800.00","value_number":800,"value_date":null,"confidence":0.419,"location":{"bounding_box":{"left":0.8067498779907556,"top":0.47048096925562605,"width":0.1257638632679413,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8067498779907556,"y":0.47048096925562605},{"x":0.9325137412586969,"y":0.47048096925562605},{"x":0.9325137412586969,"y":0.4808999381694819},{"x":0.8067498779907556,"y":0.4808999381694819}]}},"page":1},"currency_symbol":"AUD","currency_code":"AUD"},"previousUnpaidBalance":null,"purchaseOrder":null,"remittanceAddress":null,"remittanceAddressRecipient":null,"serviceAddress":null,"serviceAddressRecipient":null,"serviceEndDate":null,"serviceStartDate":null,"shippingAddress":{"value_text":"5 The Ring Westminster CANBERRA NSW 2600 Australia","value_number":null,"value_date":null,"confidence":0.886,"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6788178507881738,"width":0.13313326923496366,"height":0.05121310855970973,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6788178507881738},{"x":0.2147291296681591,"y":0.6788178507881738},{"x":0.2147291296681591,"y":0.7300309593478835},{"x":0.08159586043319543,"y":0.7300309593478835}]}},"page":1},"currency_symbol":null,"currency_code":null},"shippingAddressRecipient":{"value_text":"CRONUS International Ltd.","value_number":null,"value_date":null,"confidence":0.93,"location":{"bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.1570444990131359,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.23925750291939357,"y":0.6644949782401155},{"x":0.23925750291939357,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}},"page":1},"currency_symbol":null,"currency_code":null},"subTotal":{"value_text":"800.00","value_number":800,"value_date":null,"confidence":0.793,"location":{"bounding_box":{"left":0.7595082678357089,"top":0.6076400084030066,"width":0.04110646949618868,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7595082678357089,"y":0.6076400084030066},{"x":0.8006147373318976,"y":0.6076400084030066},{"x":0.8006147373318976,"y":0.6176223753157353},{"x":0.7595082678357089,"y":0.6171857324916066}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"totalTax":{"value_text":"0.00","value_number":0,"value_date":null,"confidence":0.95,"location":{"bounding_box":{"left":0.9085904086481675,"top":0.6076400084030066,"width":0.026379789245114527,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9085904086481675,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6171857324916066},{"x":0.9085904086481675,"y":0.6171857324916066}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"vendorAddress":{"value_text":"Evan McIntosh Allan Turing Road, 20 Surrey ALBERTON QLD 4207 Australia","value_number":null,"value_date":null,"confidence":0.819,"location":{"bounding_box":{"left":0.08037367631942799,"top":0.07551837863774787,"width":0.12882538218119177,"height":0.06467133973007995,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.07551837863774787},{"x":0.20919905850061976,"y":0.07551837863774787},{"x":0.20919905850061976,"y":0.14018971836782781},{"x":0.08037367631942799,"y":0.14018971836782781}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorAddressRecipient":{"value_text":"First Up Consultants","value_number":null,"value_date":null,"confidence":0.928,"location":{"bounding_box":{"left":0.08097871696013319,"top":0.06119548567818885,"width":0.11902370360633822,"height":0.01130079167230364,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.06119548567818885},{"x":0.2000024205664714,"y":0.06121260582444624},{"x":0.2000024205664714,"y":0.0724962773504925},{"x":0.08097871696013319,"y":0.07247915210135993}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorName":{"value_text":"First Up Consultants","value_number":null,"value_date":null,"confidence":0.928,"location":{"bounding_box":{"left":0.08097871696013319,"top":0.06119548567818885,"width":0.11902370360633822,"height":0.01130079167230364,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.06119548567818885},{"x":0.2000024205664714,"y":0.06121260582444624},{"x":0.2000024205664714,"y":0.0724962773504925},{"x":0.08097871696013319,"y":0.07247915210135993}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerTaxId":{"value_text":"53001003000","value_number":null,"value_date":null,"confidence":0.588,"location":{"bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorTaxId":{"value_text":"274863274B01","value_number":null,"value_date":null,"confidence":0.939,"location":{"bounding_box":{"left":0.23619599121879647,"top":0.20052052184532704,"width":0.08589165186726366,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.20052052184532704},{"x":0.32208764308606014,"y":0.20052052184532704},{"x":0.32208764308606014,"y":0.21093951117068366},{"x":0.23619599121879647,"y":0.2105028887580557}]}},"page":1},"currency_symbol":null,"currency_code":null},"paymentTerms":{"value_text":"End of Next Month","value_number":null,"value_date":null,"confidence":0.92,"location":{"bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.11227144111237808,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}},"page":1},"currency_symbol":null,"currency_code":null}},"items":[{"fields":{"amount":{"value_text":"800.00","value_number":800,"value_date":null,"confidence":0.954,"location":{"bounding_box":{"left":0.8938636706958664,"top":0.4292501867856434,"width":0.03987224025129121,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.8938636706958664,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.4396691965225008},{"x":0.8938636706958664,"y":0.4396691965225008}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"description":{"value_text":"IT Support Support period: March","value_number":null,"value_date":null,"confidence":0.947,"location":{"bounding_box":{"left":0.17607910238124885,"top":0.4279489127895769,"width":0.13373831708832223,"height":0.0269078690989229,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4279489127895769},{"x":0.3098174194695711,"y":0.4279489127895769},{"x":0.3098174194695711,"y":0.4548567818884998},{"x":0.17607910238124885,"y":0.4548567818884998}]}},"page":1},"currency_symbol":null,"currency_code":null},"unitPrice":{"value_text":"200.00","value_number":200,"value_date":null,"confidence":0.952,"location":{"bounding_box":{"left":0.5331260435988163,"top":0.43012343161089933,"width":0.03865001286160341,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5331260435988163,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.44010579852362797},{"x":0.5337431582212651,"y":0.4396691965225008}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"quantity":{"value_text":"4","value_number":4,"value_date":null,"confidence":0.953,"location":{"bounding_box":{"left":0.41595374877370467,"top":0.43055150160471134,"width":0.007357281496705226,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.41595374877370467,"y":0.4388045245275615},{"x":0.4165587749891031,"y":0.43055150160471134},{"x":0.4233110302704099,"y":0.43055150160471134},{"x":0.42269388679734765,"y":0.43923255369837205}]}},"page":1},"currency_symbol":null,"currency_code":null},"productCode":null,"unit":null,"date":null,"tax":null},"row_text":"IT Support 4 200.00 No NON GST 800.00 Support period: March","confidence":0.824,"location":{"bounding_box":{"left":0.17607910238124885,"top":0.4279489127895769,"width":0.7576568085659088,"height":0.0269078690989229,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4279489127895769},{"x":0.9337359109471576,"y":0.4279489127895769},{"x":0.9337359109471576,"y":0.4548567818884998},{"x":0.17607910238124885,"y":0.4548567818884998}]}},"page":1}}],"key_value_pairs":[{"key":"Pay-to Vendor No.","value":"20000","confidence":0.875,"key_location":{"bounding_box":{"left":0.08037367631942799,"top":0.18619762888576802,"width":0.11225934549267444,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.18619762888576802},{"x":0.19263302181210243,"y":0.18619762888576802},{"x":0.19263302181210243,"y":0.1974812902060639},{"x":0.08037367631942799,"y":0.1974812902060639}]}},"page":1},"value_location":{"bounding_box":{"left":0.23619599121879647,"top":0.18619762888576802,"width":0.03558853001161988,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.18619762888576802},{"x":0.27178452123041635,"y":0.18619762888576802},{"x":0.27178452123041635,"y":0.19617999579849668},{"x":0.23619599121879647,"y":0.19617999579849668}]}},"page":1}},{"key":"Phone No.","value":"0666-666-6666","confidence":0.898,"key_location":{"bounding_box":{"left":0.6666707442200392,"top":0.17949420627715698,"width":0.06358981028644384,"height":0.011043948655441393,"polygon":{"coordinates":[{"x":0.6666707442200392,"y":0.18991319560251363},{"x":0.6668764490941889,"y":0.17949420627715698},{"x":0.7302605545064831,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19053815493259837}]}},"page":1},"value_location":{"bounding_box":{"left":0.8423262618940982,"top":0.17969111602493043,"width":0.0901874793645987,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8423262618940982,"y":0.18011916560724173},{"x":0.9325137412586969,"y":0.17969111602493043},{"x":0.9325137412586969,"y":0.18967348293765912},{"x":0.8423262618940982,"y":0.18967348293765912}]}},"page":1}},{"key":"VAT Registration No.","value":"274863274B01","confidence":0.875,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.20008389943269908,"width":0.12454168636682723,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.2118041831656229},{"x":0.08097871696013319,"y":0.2118041831656229}]}},"page":1},"value_location":{"bounding_box":{"left":0.23619599121879647,"top":0.20052052184532704,"width":0.08589165186726366,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.20052052184532704},{"x":0.32208764308606014,"y":0.20052052184532704},{"x":0.32208764308606014,"y":0.21093951117068366},{"x":0.23619599121879647,"y":0.2105028887580557}]}},"page":1}},{"key":"Home","value":null,"confidence":0.177,"key_location":{"bounding_box":{"left":0.666864331836525,"top":0.19270414174660558,"width":0.036810728550694005,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.20355975348459018},{"x":0.666864331836525,"y":0.20355975348459018}]}},"page":1},"value_location":null},{"key":"Email","value":null,"confidence":0.151,"key_location":{"bounding_box":{"left":0.666864331836525,"top":0.2057257402985974,"width":0.033132044526421156,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2157080867998253},{"x":0.666864331836525,"y":0.2157080867998253}]}},"page":1},"value_location":null},{"key":"Document Date","value":"June 4, 2025","confidence":0.862,"key_location":{"bounding_box":{"left":0.08030107375059245,"top":0.2284043668528005,"width":0.09399920078030524,"height":0.011506248736017827,"polygon":{"coordinates":[{"x":0.08030107375059245,"y":0.2395852970898017},{"x":0.08037367631942799,"y":0.2284043668528005},{"x":0.1743002745308977,"y":0.22872968535181712},{"x":0.17422767196206213,"y":0.23991061558881832}]}},"page":1},"value_location":{"bounding_box":{"left":0.23497380710502905,"top":0.22916630776444508,"width":0.0742264688914798,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.22916630776444508},{"x":0.30920027599650884,"y":0.22916630776444508},{"x":0.30920027599650884,"y":0.2395852970898017},{"x":0.23497380710502905,"y":0.2395852970898017}]}},"page":1}},{"key":"VAT Registration No.","value":"777777777","confidence":0.318,"key_location":{"bounding_box":{"left":0.6674814464589738,"top":0.21962056326434437,"width":0.1239245789570319,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.23090422458464024},{"x":0.6674814464589738,"y":0.23090422458464024}]}},"page":1},"value_location":{"bounding_box":{"left":0.8687060511392126,"top":0.2200486332581564,"width":0.06442480474193302,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8687060511392126,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22048525567078436},{"x":0.9331308558811456,"y":0.22960293017707303},{"x":0.8687060511392126,"y":0.22916630776444508}]}},"page":1}},{"key":"Invoice No.","value":"108222","confidence":0.898,"key_location":{"bounding_box":{"left":0.08016796423262504,"top":0.24218790631643689,"width":0.06787352052611517,"height":0.01106962632338987,"polygon":{"coordinates":[{"x":0.08016796423262504,"y":0.25260687523029274},{"x":0.08037367631942799,"y":0.24218790631643689},{"x":0.1480414847587402,"y":0.2428385433144701},{"x":0.14783576545928387,"y":0.25325753263982675}]}},"page":1},"value_location":{"bounding_box":{"left":0.2374181753325639,"top":0.24262452872906484,"width":0.042945825933631804,"height":0.009545724088599966,"polygon":{"coordinates":[{"x":0.2374181753325639,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.24262452872906484},{"x":0.2803640012661957,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2517336304050368}]}},"page":1}},{"key":"Giro No.","value":"888-9999","confidence":0.886,"key_location":{"bounding_box":{"left":0.666864331836525,"top":0.23413181355286092,"width":0.051718936861817166,"height":0.010478897080069521,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.23459411363343738},{"x":0.7184017406382933,"y":0.23413181355286092},{"x":0.7185832686983422,"y":0.24414841055235398},{"x":0.6670458598965741,"y":0.24461071063293044}]}},"page":1},"value_location":{"bounding_box":{"left":0.8779148207563315,"top":0.23437152621771543,"width":0.0552160351248141,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8779148207563315,"y":0.23480814863034338},{"x":0.9325137412586969,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.24392582313663205},{"x":0.8779148207563315,"y":0.2434892007240041}]}},"page":1}},{"key":"Bank","value":"World Wide Bank","confidence":0.875,"key_location":{"bounding_box":{"left":0.6674814464589738,"top":0.24869441917727445,"width":0.02821913125725084,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.2578120936835631},{"x":0.6674814464589738,"y":0.2578120936835631}]}},"page":1},"value_location":{"bounding_box":{"left":0.8294509832115972,"top":0.2482663491834624,"width":0.10367987266954848,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.8294509832115972,"y":0.2482663491834624},{"x":0.9331308558811456,"y":0.2482663491834624},{"x":0.9331308558811456,"y":0.2586767860900031},{"x":0.8294509832115972,"y":0.2586767860900031}]}},"page":1}},{"key":"Posting Date","value":"06/04/25","confidence":0.898,"key_location":{"bounding_box":{"left":0.07975653284636575,"top":0.269523824997671,"width":0.0791393893733035,"height":0.01172885656324052,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269523824997671},{"x":0.15889592221966925,"y":0.26953237741648695},{"x":0.15889592221966925,"y":0.28125268156091154},{"x":0.07975653284636575,"y":0.2812441087305949}]}},"page":1},"value_location":{"bounding_box":{"left":0.23497380710502905,"top":0.269960447410299,"width":0.055821104616132794,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.269960447410299},{"x":0.2901777682480996,"y":0.269960447410299},{"x":0.29079491172116184,"y":0.28037943673565563},{"x":0.23497380710502905,"y":0.2799428143230277}]}},"page":1}},{"key":"Account No.","value":"99-99-888","confidence":0.893,"key_location":{"bounding_box":{"left":0.6664892161599902,"top":0.2623752071461154,"width":0.07461368740037166,"height":0.011677501227343567,"polygon":{"coordinates":[{"x":0.6664892161599902,"y":0.27253735855748495},{"x":0.6669127431659533,"y":0.2623752071461154},{"x":0.7411029035603619,"y":0.2638905569620894},{"x":0.7406914361108358,"y":0.27405270837345896}]}},"page":1},"value_location":{"bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}},"page":1}},{"key":"Due Date","value":"07/31/25","confidence":0.898,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.28341864796341804,"width":0.05583320023583645,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.29296439246351874},{"x":0.08097871696013319,"y":0.29296439246351874}]}},"page":1},"value_location":{"bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05399386543635343,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.29340101487614667},{"x":0.23557884774573423,"y":0.29296439246351874}]}},"page":1}},{"key":"Payment Terms","value":"End of Next Month","confidence":0.856,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.09264391436122375,"height":0.011283661320295846,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.17362263132135694,"y":0.30946184506740165},{"x":0.17362263132135694,"y":0.3207455063876975},{"x":0.08097871696013319,"y":0.3207455063876975}]}},"page":1},"value_location":{"bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.11227144111237808,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}},"page":1}},{"key":"ABN","value":"53001003000","confidence":0.923,"key_location":{"bounding_box":{"left":0.6680986187826495,"top":0.30338338178887536,"width":0.022701162922068585,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.6680986187826495,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.312501056295164},{"x":0.6680986187826495,"y":0.312501056295164}]}},"page":1},"value_location":{"bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}},"page":1}},{"key":"Unit of Measure","value":"4","confidence":0.869,"key_location":{"bounding_box":{"left":0.43925993791117174,"top":0.3927965935981206,"width":0.0552160351248141,"height":0.022567322640591747,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.3927965935981206},{"x":0.49447597303598584,"y":0.3927965935981206},{"x":0.49447597303598584,"y":0.4153639162387123},{"x":0.43925993791117174,"y":0.4153639162387123}]}},"page":1},"value_location":{"bounding_box":{"left":0.41595374877370467,"top":0.43055150160471134,"width":0.007357281496705226,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.41595374877370467,"y":0.4388045245275615},{"x":0.4165587749891031,"y":0.43055150160471134},{"x":0.4233110302704099,"y":0.43055150160471134},{"x":0.42269388679734765,"y":0.43923255369837205}]}},"page":1}},{"key":"Unit Cost","value":"200.00","confidence":0.881,"key_location":{"bounding_box":{"left":0.5447790948916296,"top":0.39235999159699336,"width":0.029453418203375437,"height":0.022567322640591747,"polygon":{"coordinates":[{"x":0.5447790948916296,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.4149273142375851},{"x":0.5447790948916296,"y":0.4149273142375851}]}},"page":1},"value_location":{"bounding_box":{"left":0.5331260435988163,"top":0.43012343161089933,"width":0.03865001286160341,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5331260435988163,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.44010579852362797},{"x":0.5337431582212651,"y":0.4396691965225008}]}},"page":1}},{"key":"Invoice","value":"No","confidence":0.915,"key_location":{"bounding_box":{"left":0.6785295003870021,"top":0.3927965935981206,"width":0.04539020858647347,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.3927965935981206},{"x":0.7239197089734756,"y":0.39322466359193264},{"x":0.7239197089734756,"y":0.40277896051084927},{"x":0.6785295003870021,"y":0.40277896051084927}]}},"page":1},"value_location":{"bounding_box":{"left":0.6785295003870021,"top":0.43055150160471134,"width":0.01778824965289827,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43923255369837205},{"x":0.6785295003870021,"y":0.4388045245275615}]}},"page":1}},{"key":"VAT Identifier","value":"NON GST","confidence":0.864,"key_location":{"bounding_box":{"left":0.7729038384818022,"top":0.39214595660008733,"width":0.0615205865860573,"height":0.023440567465847717,"polygon":{"coordinates":[{"x":0.7729038384818022,"y":0.3923685236043085},{"x":0.8342550142654743,"y":0.39214595660008733},{"x":0.8344244250678595,"y":0.4153639162387123},{"x":0.7730732492841874,"y":0.41558652406593505}]}},"page":1},"value_location":{"bounding_box":{"left":0.774065537284398,"top":0.42917315378179793,"width":0.06046782769998171,"height":0.011009718568676996,"polygon":{"coordinates":[{"x":0.774065537284398,"y":0.4396691965225008},{"x":0.7742470653444469,"y":0.42917315378179793},{"x":0.8345333649843797,"y":0.4296954024400888},{"x":0.8343518369243307,"y":0.44018287235047493}]}},"page":1}},{"key":"No.","value":"IT","confidence":0.622,"key_location":{"bounding_box":{"left":0.08221300390625766,"top":0.4053815493259837,"width":0.022689045664404828,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4149273142375851},{"x":0.08221300390625766,"y":0.4149273142375851}]}},"page":1},"value_location":{"bounding_box":{"left":0.17730127206970955,"top":0.4279489127895769,"width":0.008591597293443165,"height":0.014759515372187004,"polygon":{"coordinates":[{"x":0.17730127206970955,"y":0.4279489127895769},{"x":0.18589286936315272,"y":0.4279489127895769},{"x":0.18589286936315272,"y":0.4427084281617639},{"x":0.17730127206970955,"y":0.4427084281617639}]}},"page":1}},{"key":"Description","value":"Support Support period: March","confidence":0.861,"key_location":{"bounding_box":{"left":0.17668414302195404,"top":0.4049449473248565,"width":0.07178207181333146,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.17668414302195404,"y":0.4053815493259837},{"x":0.2484662148352855,"y":0.4049449473248565},{"x":0.2484662148352855,"y":0.4166652310577803},{"x":0.17668414302195404,"y":0.4153639162387123}]}},"page":1},"value_location":{"bounding_box":{"left":0.17607910238124885,"top":0.4279489127895769,"width":0.13373831708832223,"height":0.0269078690989229,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4279489127895769},{"x":0.3098174194695711,"y":0.4279489127895769},{"x":0.3098174194695711,"y":0.4548567818884998},{"x":0.17607910238124885,"y":0.4548567818884998}]}},"page":1}},{"key":"Quantity","value":null,"confidence":0.593,"key_location":{"bounding_box":{"left":0.3570590296246177,"top":0.4049449473248565,"width":0.05643823366388828,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.3570590296246177,"y":0.4049449473248565},{"x":0.413497263288506,"y":0.4053815493259837},{"x":0.413497263288506,"y":0.4166652310577803},{"x":0.3576640558400162,"y":0.4162286290566531}]}},"page":1},"value_location":null},{"key":"Discount %","value":null,"confidence":0.611,"key_location":{"bounding_box":{"left":0.5914157076818913,"top":0.4049449473248565,"width":0.07360928214249729,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5914157076818913,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4153639162387123},{"x":0.5914157076818913,"y":0.4153639162387123}]}},"page":1},"value_location":null},{"key":"Discount","value":null,"confidence":0.174,"key_location":{"bounding_box":{"left":0.679134555453014,"top":0.4053815493259837,"width":0.057055377136950525,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.679134555453014,"y":0.4058181921501124},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4153639162387123},{"x":0.679134555453014,"y":0.4149273142375851}]}},"page":1},"value_location":null},{"key":"Amount","value":"800.00","confidence":0.555,"key_location":{"bounding_box":{"left":0.8815934470793774,"top":0.4058181921501124,"width":0.05275957849022894,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.8815934470793774,"y":0.4058181921501124},{"x":0.9343530255696063,"y":0.4058181921501124},{"x":0.9343530255696063,"y":0.4153639162387123},{"x":0.8822106194030531,"y":0.4149273142375851}]}},"page":1},"value_location":{"bounding_box":{"left":0.8938636706958664,"top":0.4292501867856434,"width":0.03987224025129121,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.8938636706958664,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.4396691965225008},{"x":0.8938636706958664,"y":0.4396691965225008}]}},"page":1}},{"key":"Total AUD","value":"800.00","confidence":0.898,"key_location":{"bounding_box":{"left":0.7705563217637372,"top":0.47048096925562605,"width":0.06257334547213278,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7705563217637372,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.4808999381694819},{"x":0.7705563217637372,"y":0.4808999381694819}]}},"page":1},"value_location":{"bounding_box":{"left":0.8908021589952693,"top":0.47091757125675326,"width":0.04171158226342764,"height":0.009545764911601473,"polygon":{"coordinates":[{"x":0.8908021589952693,"y":0.47135421408088196},{"x":0.9325137412586969,"y":0.47091757125675326},{"x":0.9325137412586969,"y":0.48046333616835474},{"x":0.8908021589952693,"y":0.48046333616835474}]}},"page":1}},{"key":"Inv. Disc. Base Line Amount Amount","value":"800.00 0.00 800.00 0.00","confidence":0.248,"key_location":{"bounding_box":{"left":0.33427316130135654,"top":0.542977231297493,"width":0.2113046339739978,"height":0.024390886117950594,"polygon":{"coordinates":[{"x":0.33427316130135654,"y":0.5664948725901876},{"x":0.33446677776845585,"y":0.542977231297493},{"x":0.5455777952753543,"y":0.5438504761227488},{"x":0.5453841499576415,"y":0.5673681174154436}]}},"page":1},"value_location":{"bounding_box":{"left":0.37351614082192164,"top":0.5797476109767172,"width":0.17218265392638965,"height":0.03841411783494075,"polygon":{"coordinates":[{"x":0.37351614082192164,"y":0.6171857324916066},{"x":0.3739396678278846,"y":0.5797476109767172},{"x":0.5456987947483113,"y":0.5807321393040837},{"x":0.5452752677423484,"y":0.618161728811658}]}},"page":1}},{"key":"VAT Identifier","value":"NON GST","confidence":0.875,"key_location":{"bounding_box":{"left":0.08152325065170651,"top":0.5556735113504682,"width":0.09093769629236148,"height":0.011163784576367908,"polygon":{"coordinates":[{"x":0.08152325065170651,"y":0.5665205502581361},{"x":0.08159586043319543,"y":0.5556735113504682},{"x":0.172460946944068,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5668372959268361}]}},"page":1},"value_location":{"bounding_box":{"left":0.08159586043319543,"top":0.5802955373029566,"width":0.058894711936433544,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5907059333864958},{"x":0.08159586043319543,"y":0.5907059333864958}]}},"page":1}},{"key":"VAT %","value":"0","confidence":0.875,"key_location":{"bounding_box":{"left":0.24600975820070034,"top":0.5555536550180409,"width":0.04110649834680216,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.24600975820070034,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5659726239318967},{"x":0.24600975820070034,"y":0.5659726239318967}]}},"page":1},"value_location":{"bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.006740166874256492,"height":0.008253022922850128,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.28649911307444026,"y":0.5807235664737671},{"x":0.28649911307444026,"y":0.5889765893966172},{"x":0.27975894620018377,"y":0.5889765893966172}]}},"page":1}},{"key":"Ship-to Address","value":"CRONUS International Ltd. 5 The Ring Westminster CANBERRA NSW 2600 Australia","confidence":0.494,"key_location":{"bounding_box":{"left":0.08211619567270802,"top":0.6505658843646026,"width":0.10203415433716466,"height":0.01201135173367529,"polygon":{"coordinates":[{"x":0.08211619567270802,"y":0.6621063835988856},{"x":0.08221300390625766,"y":0.6505658843646026},{"x":0.18415035000987268,"y":0.651036736863995},{"x":0.184041438943966,"y":0.6625772360982779}]}},"page":1},"value_location":{"bounding_box":{"left":0.08159586043319543,"top":0.6644949782401155,"width":0.15766164248619813,"height":0.06553598110776804,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6644949782401155},{"x":0.23925750291939357,"y":0.6644949782401155},{"x":0.23925750291939357,"y":0.7300309593478835},{"x":0.08159586043319543,"y":0.7300309593478835}]}},"page":1}}]},"read_results":[{"location":{"bounding_box":{"left":0.7245368812971513,"top":0.03992945489372671,"width":0.20245889162636332,"height":0.016925499634756605,"polygon":{"coordinates":[{"x":0.7245368812971513,"y":0.03992945489372671},{"x":0.9269957729235146,"y":0.03992945489372671},{"x":0.9269957729235146,"y":0.05685495452848331},{"x":0.7245368812971513,"y":0.05685495452848331}]}},"page":1},"text":"Purchase - Invoice"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.06119548567818885,"width":0.11962874424704342,"height":0.010855606635109392,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.06119548567818885},{"x":0.2000024205664714,"y":0.06119548567818885},{"x":0.19938527709340917,"y":0.07205109231329825},{"x":0.08037367631942799,"y":0.07205109231329825}]}},"page":1},"text":"First Up Consultants"},{"location":{"bounding_box":{"left":0.8908021589952693,"top":0.06163210809081681,"width":0.04171158226342764,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.8908021589952693,"y":0.06206873050344477},{"x":0.9325137412586969,"y":0.06163210809081681},{"x":0.9325137412586969,"y":0.07247915210135993},{"x":0.8914072140612812,"y":0.07247915210135993}]}},"page":1},"text":"Page 1"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.0750903188496862,"width":0.08833601288214513,"height":0.010410426700790343,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.0750903188496862},{"x":0.16809254572851087,"y":0.07551837863774787},{"x":0.16809254572851087,"y":0.08550074555047654},{"x":0.07975653284636575,"y":0.08507268576241486}]}},"page":1},"text":"Evan McIntosh"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.08767528478329967,"width":0.12883747058824208,"height":0.012148353726735894,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.08810334457136135},{"x":0.20859400343460782,"y":0.08767528478329967},{"x":0.20859400343460782,"y":0.09939557872197388},{"x":0.07975653284636575,"y":0.09982363851003556}]}},"page":1},"text":"Allan Turing Road, 20"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.10242624773667074,"width":0.03865003449956361,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.10242624773667074},{"x":0.11840656734592936,"y":0.1028628701492987},{"x":0.11840656734592936,"y":0.11284522685627699},{"x":0.07975653284636575,"y":0.11198054465558736}]}},"page":1},"text":"Surrey"},{"location":{"bounding_box":{"left":0.9251564309113782,"top":0.09418180784988762,"width":0.007974424969767413,"height":0.009117674506288656,"polygon":{"coordinates":[{"x":0.9251564309113782,"y":0.09418180784988762},{"x":0.9325137412586969,"y":0.09418180784988762},{"x":0.9331308558811456,"y":0.10329948235617628},{"x":0.9251564309113782,"y":0.1028628701492987}]}},"page":1},"text":"5"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.11588445849554013,"width":0.12883747058824208,"height":0.010418979119606236,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.11588445849554013},{"x":0.20859400343460782,"y":0.11588445849554013},{"x":0.20859400343460782,"y":0.12630343761514637},{"x":0.07975653284636575,"y":0.12630343761514637}]}},"page":1},"text":"ALBERTON QLD 4207"},{"location":{"bounding_box":{"left":0.8693232234628884,"top":0.10807664102138496,"width":0.06319051779580853,"height":0.011283661320295887,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.10807664102138496},{"x":0.9325137412586969,"y":0.10850470080944664},{"x":0.9325137412586969,"y":0.11936030234168085},{"x":0.8693232234628884,"y":0.11848705751642494}]}},"page":1},"text":"5 The Ring"},{"location":{"bounding_box":{"left":0.07913938937330352,"top":0.1306439738677271,"width":0.05399388707431353,"height":0.009109122087472749,"polygon":{"coordinates":[{"x":0.07913938937330352,"y":0.1306439738677271},{"x":0.13313327644761705,"y":0.1306439738677271},{"x":0.13313327644761705,"y":0.13975309595519986},{"x":0.07913938937330352,"y":0.13975309595519986}]}},"page":1},"text":"Australia"},{"location":{"bounding_box":{"left":0.8570529998463994,"top":0.12239953398094398,"width":0.07607785603474626,"height":0.010410426700790357,"polygon":{"coordinates":[{"x":0.8570529998463994,"y":0.12239953398094398},{"x":0.9331308558811456,"y":0.12282759376900566},{"x":0.9325137412586969,"y":0.13280996068173434},{"x":0.8570529998463994,"y":0.13238190089367266}]}},"page":1},"text":"Westminster"},{"location":{"bounding_box":{"left":0.7987753953197612,"top":0.13628580452787506,"width":0.13435546056138448,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.7987753953197612,"y":0.13628580452787506},{"x":0.9331308558811456,"y":0.13628580452787506},{"x":0.9331308558811456,"y":0.14713285364129336},{"x":0.7987753953197612,"y":0.14670479385323168}]}},"page":1},"text":"CANBERRA NSW 2600"},{"location":{"bounding_box":{"left":0.8791369904447922,"top":0.15104531990006204,"width":0.053376750813904694,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.8791369904447922,"y":0.1514733796881237},{"x":0.9325137412586969,"y":0.15104531990006204},{"x":0.9325137412586969,"y":0.1610276868127907},{"x":0.8791369904447922,"y":0.1610276868127907}]}},"page":1},"text":"Australia"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.18619762888576802,"width":0.11227144832503147,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.19704466779343593},{"x":0.07975653284636575,"y":0.1974812902060639}]}},"page":1},"text":"Pay-to Vendor No."},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.18619762888576802,"width":0.03803288381384798,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.18663425129839598},{"x":0.2723895474458148,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.19617999579849668},{"x":0.2343566636319668,"y":0.19574337338586872}]}},"page":1},"text":"20000"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.17969111602493043,"width":0.06379557286182047,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.17969111602493043},{"x":0.7300548496323336,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19010153251997042},{"x":0.6662592767705131,"y":0.18967348293765912}]}},"page":1},"text":"Phone No."},{"location":{"bounding_box":{"left":0.8411040922056375,"top":0.17969111602493043,"width":0.09324893336396878,"height":0.009545744500100733,"polygon":{"coordinates":[{"x":0.8411040922056375,"y":0.17969111602493043},{"x":0.9343530255696063,"y":0.17969111602493043},{"x":0.9343530255696063,"y":0.18923686052503116},{"x":0.8411040922056375,"y":0.18923686052503116}]}},"page":1},"text":"0666-666-6666"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.19965582943888702,"width":0.12514672700753243,"height":0.011711731314107937,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.19965582943888702},{"x":0.20490325985389818,"y":0.19965582943888702},{"x":0.20490325985389818,"y":0.21136756075299495},{"x":0.07975653284636575,"y":0.21136756075299495}]}},"page":1},"text":"VAT Registration No."},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.20008389943269908,"width":0.08834812292715552,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.20008389943269908},{"x":0.3227047865591223,"y":0.20008389943269908},{"x":0.3227047865591223,"y":0.2105028887580557},{"x":0.2343566636319668,"y":0.2105028887580557}]}},"page":1},"text":"274863274B01"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.19270414174660558,"width":0.0717821150892517,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.20355975348459018},{"x":0.6662592767705131,"y":0.20312313107196223}]}},"page":1},"text":"Home Page"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2057257402985974,"width":0.03435427191610885,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.20659896471235256},{"x":0.700613548686622,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2157080867998253},{"x":0.666864331836525,"y":0.21528003721751401}]}},"page":1},"text":"Email"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.22872968535181712,"width":0.09508828258875862,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.22872968535181712},{"x":0.17484481543512437,"y":0.22872968535181712},{"x":0.17484481543512437,"y":0.23914867467717374},{"x":0.07975653284636575,"y":0.23914867467717374}]}},"page":1},"text":"Document Date"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.21962056326434437,"width":0.12454169357948064,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.21962056326434437},{"x":0.7908009703499937,"y":0.21962056326434437},{"x":0.7908009703499937,"y":0.23090422458464024},{"x":0.6662592767705131,"y":0.23090422458464024}]}},"page":1},"text":"VAT Registration No."},{"location":{"bounding_box":{"left":0.8662617117622913,"top":0.2200486332581564,"width":0.0674741991848663,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.8662617117622913,"y":0.2200486332581564},{"x":0.9337359109471576,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22916630776444508},{"x":0.8662617117622913,"y":0.22872968535181712}]}},"page":1},"text":"777777777"},{"location":{"bounding_box":{"left":0.23313447951819938,"top":0.22916630776444508,"width":0.07668293995137171,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23313447951819938,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.22916630776444508},{"x":0.30920027599650884,"y":0.2395852970898017},{"x":0.23313447951819938,"y":0.23914867467717374}]}},"page":1},"text":"June 4, 2025"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.24218790631643689,"width":0.06809133544527518,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.24218790631643689},{"x":0.14784786829164093,"y":0.24218790631643689},{"x":0.14784786829164093,"y":0.25260687523029274},{"x":0.07975653284636575,"y":0.2521702528176648}]}},"page":1},"text":"Invoice No."},{"location":{"bounding_box":{"left":0.23557884774573423,"top":0.24218790631643689,"width":0.044785153520461474,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.24218790631643689},{"x":0.2803640012661957,"y":0.24218790631643689},{"x":0.2803640012661957,"y":0.2517336304050368},{"x":0.23557884774573423,"y":0.2517336304050368}]}},"page":1},"text":"108222"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2339434562239034,"width":0.05214246386778021,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.23437152621771543},{"x":0.7177846260158445,"y":0.2339434562239034},{"x":0.7184017406382933,"y":0.24392582313663205},{"x":0.6662592767705131,"y":0.24392582313663205}]}},"page":1},"text":"Giro No."},{"location":{"bounding_box":{"left":0.8760754787441951,"top":0.23437152621771543,"width":0.057055377136950525,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.8760754787441951,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.2434892007240041},{"x":0.8760754787441951,"y":0.2434892007240041}]}},"page":1},"text":"888-9999"},{"location":{"bounding_box":{"left":0.666864331836525,"top":0.24869441917727445,"width":0.03129270251428484,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.24869441917727445},{"x":0.6981570343508099,"y":0.24869441917727445},{"x":0.6981570343508099,"y":0.2578120936835631},{"x":0.6680986187826495,"y":0.2578120936835631}]}},"page":1},"text":"Bank"},{"location":{"bounding_box":{"left":0.8282166962654727,"top":0.2482663491834624,"width":0.10613632930413364,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8282166962654727,"y":0.2482663491834624},{"x":0.9343530255696063,"y":0.2482663491834624},{"x":0.9343530255696063,"y":0.2582487160961911},{"x":0.8282166962654727,"y":0.2582487160961911}]}},"page":1},"text":"World Wide Bank"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.269095755003859,"width":0.0791393893733035,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269095755003859},{"x":0.15889592221966925,"y":0.269095755003859},{"x":0.15889592221966925,"y":0.2808160591482836},{"x":0.07975653284636575,"y":0.2808160591482836}]}},"page":1},"text":"Posting Date"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.26953237741648695,"width":0.05643824808919504,"height":0.010410436906540754,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.26953237741648695},{"x":0.29079491172116184,"y":0.26953237741648695},{"x":0.29079491172116184,"y":0.2799428143230277},{"x":0.2343566636319668,"y":0.27951474432921564}]}},"page":1},"text":"06/04/25"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2630173121368335,"width":0.0748436267898488,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.2630173121368335},{"x":0.7411029035603619,"y":0.2630173121368335},{"x":0.7411029035603619,"y":0.2725716090557501},{"x":0.6662592767705131,"y":0.27213498664312213}]}},"page":1},"text":"Account No."},{"location":{"bounding_box":{"left":0.8693232234628884,"top":0.26258924214302143,"width":0.06502980210671794,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.26258924214302143},{"x":0.9343530255696063,"y":0.26258924214302143},{"x":0.9343530255696063,"y":0.27213498664312213},{"x":0.8693232234628884,"y":0.27213498664312213}]}},"page":1},"text":"99-99-888"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.28298202555079005,"width":0.058277568463371315,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.28341864796341804},{"x":0.13803410130973706,"y":0.28298202555079005},{"x":0.13803410130973706,"y":0.29253634288120745},{"x":0.07975653284636575,"y":0.29296439246351874}]}},"page":1},"text":"Due Date"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.28255397596847875,"width":0.055821104616132794,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.28255397596847875},{"x":0.2901777682480996,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.2343566636319668,"y":0.29253634288120745}]}},"page":1},"text":"07/31/25"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.09202677088816151,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.1730054878482947,"y":0.30946184506740165},{"x":0.1730054878482947,"y":0.3198808139812575},{"x":0.08097871696013319,"y":0.32030888397506957}]}},"page":1},"text":"Payment Terms"},{"location":{"bounding_box":{"left":0.23497380710502905,"top":0.30946184506740165,"width":0.11411076869920775,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.30946184506740165},{"x":0.3490845758042368,"y":0.3098984674800296},{"x":0.3490845758042368,"y":0.3194442119801303},{"x":0.23497380710502905,"y":0.31900758956750236}]}},"page":1},"text":"End of Next Month"},{"location":{"bounding_box":{"left":0.666864331836525,"top":0.30338338178887536,"width":0.028231248514914653,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.3038200042015033},{"x":0.694478408027764,"y":0.30338338178887536},{"x":0.6950955803514397,"y":0.312501056295164},{"x":0.6674814464589738,"y":0.3120644542940368}]}},"page":1},"text":"ABN"},{"location":{"bounding_box":{"left":0.8521521461336659,"top":0.3029467593762474,"width":0.08097870974747978,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8521521461336659,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31292912628897607},{"x":0.8521521461336659,"y":0.31292912628897607}]}},"page":1},"text":"53001003000"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.3224834232078927,"width":0.1104321207382018,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.32291149320170476},{"x":0.1895715101115053,"y":0.3224834232078927},{"x":0.19018865358456755,"y":0.3337671049396893},{"x":0.07975653284636575,"y":0.3337671049396893}]}},"page":1},"text":"Shipment Method"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.3359330713421958,"width":0.12330739942070276,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.3359330713421958},{"x":0.2030639322670685,"y":0.3359330713421958},{"x":0.2030639322670685,"y":0.3476533754866204},{"x":0.07975653284636575,"y":0.34721673266249165}]}},"page":1},"text":"Prices Including VAT"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.3372343861612638,"width":0.020861835335238915,"height":0.008681072505161425,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.3372343861612638},{"x":0.2546013554941435,"y":0.3372343861612638},{"x":0.2552184989672057,"y":0.3459154586664252},{"x":0.23497380710502905,"y":0.3459154586664252}]}},"page":1},"text":"No"},{"location":{"bounding_box":{"left":0.5319038162091286,"top":0.38020306503994084,"width":0.04110652719741559,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.5319038162091286,"y":0.38020306503994084},{"x":0.5730103434065442,"y":0.38020306503994084},{"x":0.5730103434065442,"y":0.38975736195885746},{"x":0.5319038162091286,"y":0.38975736195885746}]}},"page":1},"text":"Direct"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.37977499504612877,"width":0.039267185185279274,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.38020306503994084},{"x":0.7165623986261569,"y":0.37977499504612877},{"x":0.7165623986261569,"y":0.38975736195885746},{"x":0.6772952134408776,"y":0.38975736195885746}]}},"page":1},"text":"Allow"},{"location":{"bounding_box":{"left":0.4386548828451598,"top":0.39235999159699336,"width":0.04784666522105857,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.4386548828451598,"y":0.39235999159699336},{"x":0.48650154806621837,"y":0.39235999159699336},{"x":0.48650154806621837,"y":0.40234235850972205},{"x":0.4386548828451598,"y":0.40234235850972205}]}},"page":1},"text":"Unit of"},{"location":{"bounding_box":{"left":0.5441740975268446,"top":0.39235999159699336,"width":0.030675587891835998,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.5441740975268446,"y":0.3927965935981206},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.5748496854186806,"y":0.4019057156855933},{"x":0.5447790948916296,"y":0.4019057156855933}]}},"page":1},"text":"Unit"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.3927965935981206,"width":0.047241667856273706,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.3927965935981206},{"x":0.7245368812971513,"y":0.3927965935981206},{"x":0.7245368812971513,"y":0.40277896051084927},{"x":0.6772952134408776,"y":0.40234235850972205}]}},"page":1},"text":"Invoice"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.39235999159699336,"width":0.028836245879699685,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.3927965935981206},{"x":0.8012319096555733,"y":0.39235999159699336},{"x":0.8018369070203583,"y":0.4019057156855933},{"x":0.7730006611406586,"y":0.4019057156855933}]}},"page":1},"text":"VAT"},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.4053815493259837,"width":0.023923325397875922,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.4058181921501124},{"x":0.10551918583107135,"y":0.4053815493259837},{"x":0.10551918583107135,"y":0.4149273142375851},{"x":0.08159586043319543,"y":0.4149273142375851}]}},"page":1},"text":"No."},{"location":{"bounding_box":{"left":0.1754619589081866,"top":0.4049449473248565,"width":0.07422645446617307,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.1754619589081866,"y":0.4049449473248565},{"x":0.24968841337435968,"y":0.4049449473248565},{"x":0.24968841337435968,"y":0.4162286290566531},{"x":0.1754619589081866,"y":0.415800559062841}]}},"page":1},"text":"Description"},{"location":{"bounding_box":{"left":0.35521968761248135,"top":0.4049449473248565,"width":0.058894719149086894,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.35521968761248135,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.4162286290566531},{"x":0.35521968761248135,"y":0.415800559062841}]}},"page":1},"text":"Quantity"},{"location":{"bounding_box":{"left":0.43925993791117174,"top":0.4053815493259837,"width":0.056450322070938586,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.4053815493259837},{"x":0.4957102599821103,"y":0.4058181921501124},{"x":0.4957102599821103,"y":0.4153639162387123},{"x":0.43925993791117174,"y":0.4149273142375851}]}},"page":1},"text":"Measure"},{"location":{"bounding_box":{"left":0.5423347555147082,"top":0.4053815493259837,"width":0.03557644160456952,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.5423347555147082,"y":0.4053815493259837},{"x":0.5779111971192777,"y":0.4053815493259837},{"x":0.5779111971192777,"y":0.4149273142375851},{"x":0.5429398105807202,"y":0.4144992442437731}]}},"page":1},"text":"Cost"},{"location":{"bounding_box":{"left":0.5895642484120911,"top":0.4049449473248565,"width":0.07546074141229753,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5895642484120911,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4149273142375851},{"x":0.5895642484120911,"y":0.4149273142375851}]}},"page":1},"text":"Discount %"},{"location":{"bounding_box":{"left":0.6779123857645534,"top":0.4053815493259837,"width":0.0582775468254112,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.6779123857645534,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4149273142375851},{"x":0.6779123857645534,"y":0.4144992442437731}]}},"page":1},"text":"Discount"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.4049449473248565,"width":0.06074612071766017,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4153639162387123},{"x":0.7730006611406586,"y":0.4149273142375851}]}},"page":1},"text":"Identifier"},{"location":{"bounding_box":{"left":0.8797541050672409,"top":0.4053815493259837,"width":0.05521609282604112,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.8797541050672409,"y":0.4053815493259837},{"x":0.9349701978932821,"y":0.4053815493259837},{"x":0.9349701978932821,"y":0.4153639162387123},{"x":0.8797541050672409,"y":0.4149273142375851}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.17730127206970955,"top":0.4275122699654482,"width":0.0631905177958085,"height":0.01562418736712623,"polygon":{"coordinates":[{"x":0.17730127206970955,"y":0.4275122699654482},{"x":0.24049178986551806,"y":0.4275122699654482},{"x":0.24049178986551806,"y":0.44313645733257445},{"x":0.17730127206970955,"y":0.4427084281617639}]}},"page":1},"text":"IT Support"},{"location":{"bounding_box":{"left":0.41595374877370467,"top":0.43055150160471134,"width":0.008591568442829711,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.41595374877370467,"y":0.43055150160471134},{"x":0.42392817374347214,"y":0.43055150160471134},{"x":0.4245453172165344,"y":0.43923255369837205},{"x":0.4165587749891031,"y":0.4388045245275615}]}},"page":1},"text":"4"},{"location":{"bounding_box":{"left":0.5312867015866799,"top":0.4296868296097721,"width":0.04232869688587626,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.5312867015866799,"y":0.4296868296097721},{"x":0.5736153984725562,"y":0.4296868296097721},{"x":0.5730103434065442,"y":0.4396691965225008},{"x":0.5312867015866799,"y":0.43923255369837205}]}},"page":1},"text":"200.00"},{"location":{"bounding_box":{"left":0.6779123857645534,"top":0.43055150160471134,"width":0.019627533963807675,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.6779123857645534,"y":0.43055150160471134},{"x":0.6969348646623491,"y":0.43055150160471134},{"x":0.697539919728361,"y":0.43923255369837205},{"x":0.6779123857645534,"y":0.4388045245275615}]}},"page":1},"text":"No"},{"location":{"bounding_box":{"left":0.7736177757631074,"top":0.4292501867856434,"width":0.060129006095211324,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.7736177757631074,"y":0.4292501867856434},{"x":0.8337467818583187,"y":0.4292501867856434},{"x":0.8337467818583187,"y":0.4396691965225008},{"x":0.7736177757631074,"y":0.4396691965225008}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.892024386384957,"top":0.4292501867856434,"width":0.04232863918464935,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.892024386384957,"y":0.4296868296097721},{"x":0.9343530255696063,"y":0.4292501867856434},{"x":0.9343530255696063,"y":0.4396691965225008},{"x":0.892024386384957,"y":0.4396691965225008}]}},"page":1},"text":"800.00"},{"location":{"bounding_box":{"left":0.17422767196206213,"top":0.4427084281617639,"width":0.13742906066903188,"height":0.012148353726735894,"polygon":{"coordinates":[{"x":0.17422767196206213,"y":0.44313645733257445},{"x":0.311656732631094,"y":0.4427084281617639},{"x":0.311656732631094,"y":0.45442871189468775},{"x":0.17422767196206213,"y":0.4548567818884998}]}},"page":1},"text":"Support period: March"},{"location":{"bounding_box":{"left":0.7680998074279252,"top":0.47048096925562605,"width":0.06932565845466643,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7680998074279252,"y":0.47048096925562605},{"x":0.8374254658825916,"y":0.47048096925562605},{"x":0.8374254658825916,"y":0.48046333616835474},{"x":0.7680998074279252,"y":0.48046333616835474}]}},"page":1},"text":"Total AUD"},{"location":{"bounding_box":{"left":0.888950757426696,"top":0.47048096925562605,"width":0.04540226814291026,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.888950757426696,"y":0.47048096925562605},{"x":0.9343530255696063,"y":0.47048096925562605},{"x":0.9343530255696063,"y":0.48046333616835474},{"x":0.888950757426696,"y":0.48046333616835474}]}},"page":1},"text":"800.00"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5295104579140573,"width":0.1693268398872887,"height":0.012584955727863112,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5295104579140573},{"x":0.2503055568474219,"y":0.5295104579140573},{"x":0.2503055568474219,"y":0.5420954136419204},{"x":0.08097871696013319,"y":0.5420954136419204}]}},"page":1},"text":"VAT Amount Specification"},{"location":{"bounding_box":{"left":0.4503079629885866,"top":0.5433967284609884,"width":0.09386613453825804,"height":0.010419009736857276,"polygon":{"coordinates":[{"x":0.4503079629885866,"y":0.5433967284609884},{"x":0.5441740975268446,"y":0.5433967284609884},{"x":0.5441740975268446,"y":0.5538157381978457},{"x":0.4503079629885866,"y":0.553379095373717}]}},"page":1},"text":"Inv. Disc. Base"},{"location":{"bounding_box":{"left":0.5662580881252375,"top":0.5433967284609884,"width":0.10797567131627006,"height":0.010419009736857276,"polygon":{"coordinates":[{"x":0.5662580881252375,"y":0.5433967284609884},{"x":0.6742337594415075,"y":0.5433967284609884},{"x":0.6742337594415075,"y":0.5538157381978457},{"x":0.5662580881252375,"y":0.5538157381978457}]}},"page":1},"text":"Invoice Discount"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5555536550180409,"width":0.09140962741509927,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5555536550180409},{"x":0.17238834437523246,"y":0.5555536550180409},{"x":0.17238834437523246,"y":0.5664006939257088},{"x":0.08097871696013319,"y":0.5664006939257088}]}},"page":1},"text":"VAT Identifier"},{"location":{"bounding_box":{"left":0.2441704450391774,"top":0.5555536550180409,"width":0.04356295498138735,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.2441704450391774,"y":0.5555536550180409},{"x":0.28773340002056474,"y":0.5559902570191682},{"x":0.28773340002056474,"y":0.5659726239318967},{"x":0.2441704450391774,"y":0.5659726239318967}]}},"page":1},"text":"VAT %"},{"location":{"bounding_box":{"left":0.3337407232294869,"top":0.5559902570191682,"width":0.08343519523267845,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.3337407232294869,"y":0.5559902570191682},{"x":0.41717591846216534,"y":0.5559902570191682},{"x":0.41717591846216534,"y":0.5664006939257088},{"x":0.3337407232294869,"y":0.5659726239318967}]}},"page":1},"text":"Line Amount"},{"location":{"bounding_box":{"left":0.49141446133538874,"top":0.5564183270129802,"width":0.05398180587991658,"height":0.009554296918916516,"polygon":{"coordinates":[{"x":0.49141446133538874,"y":0.5564183270129802},{"x":0.5453962672153053,"y":0.5564183270129802},{"x":0.5447790948916296,"y":0.5659726239318967},{"x":0.49141446133538874,"y":0.5655360219307696}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.623313465262188,"top":0.5564183270129802,"width":0.053981748178689615,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.623313465262188,"y":0.5564183270129802},{"x":0.6772952134408776,"y":0.5564183270129802},{"x":0.6772952134408776,"y":0.5664006939257088},{"x":0.623313465262188,"y":0.5659726239318967}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.7404857312366862,"top":0.5559902570191682,"width":0.06258546272979659,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.7404857312366862,"y":0.5559902570191682},{"x":0.8030711939664827,"y":0.5559902570191682},{"x":0.8030711939664827,"y":0.5659726239318967},{"x":0.7404857312366862,"y":0.5659726239318967}]}},"page":1},"text":"VAT Base"},{"location":{"bounding_box":{"left":0.8521521461336659,"top":0.5559902570191682,"width":0.08465739377175263,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.8521521461336659,"y":0.5559902570191682},{"x":0.9368095399054185,"y":0.5564183270129802},{"x":0.9368095399054185,"y":0.5664006939257088},{"x":0.8521521461336659,"y":0.5659726239318967}]}},"page":1},"text":"VAT Amount"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5798588944788279,"width":0.06012899888255803,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5798588944788279},{"x":0.14110771584269122,"y":0.5798588944788279},{"x":0.14110771584269122,"y":0.5902779042156853},{"x":0.08097871696013319,"y":0.5902779042156853}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.008579508886392861,"height":0.008253022922850128,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.28773340002056474,"y":0.5807235664737671},{"x":0.28833845508657663,"y":0.5889765893966172},{"x":0.2803640012661957,"y":0.5889765893966172}]}},"page":1},"text":"0"},{"location":{"bounding_box":{"left":0.37484725042690253,"top":0.5802955373029566,"width":0.041711524562200564,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.37484725042690253,"y":0.5802955373029566},{"x":0.4165587749891031,"y":0.5807235664737671},{"x":0.4165587749891031,"y":0.5902779042156853},{"x":0.37484725042690253,"y":0.5898412613915565}]}},"page":1},"text":"800.00"},{"location":{"bounding_box":{"left":0.5190164779701909,"top":0.5807235664737671,"width":0.0276140761912389,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.5190164779701909,"y":0.5807235664737671},{"x":0.5466305541614298,"y":0.5807235664737671},{"x":0.5466305541614298,"y":0.5902779042156853},{"x":0.5196335925926396,"y":0.5898412613915565}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.6503104268309782,"top":0.5802955373029566,"width":0.0276019589335752,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6503104268309782,"y":0.5802955373029566},{"x":0.6779123857645534,"y":0.5807235664737671},{"x":0.6779123857645534,"y":0.5902779042156853},{"x":0.6509154241957632,"y":0.5898412613915565}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.7601253824581576,"top":0.5802955373029566,"width":0.043550866574337044,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7601253824581576,"y":0.5802955373029566},{"x":0.8036762490324947,"y":0.5807235664737671},{"x":0.8036762490324947,"y":0.5902779042156853},{"x":0.7601253824581576,"y":0.5902779042156853}]}},"page":1},"text":"800.00"},{"location":{"bounding_box":{"left":0.9098125783366283,"top":0.5802955373029566,"width":0.026379789245114416,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.9098125783366283,"y":0.5802955373029566},{"x":0.9361923675817427,"y":0.5802955373029566},{"x":0.9361923675817427,"y":0.5902779042156853},{"x":0.9098125783366283,"y":0.5894046593904293}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.2527620134820071,"top":0.6076400084030066,"width":0.03557644160456952,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.2527620134820071,"y":0.6076400084030066},{"x":0.28773340002056474,"y":0.6076400084030066},{"x":0.28833845508657663,"y":0.6171857324916066},{"x":0.2527620134820071,"y":0.6167491304904794}]}},"page":1},"text":"Total"},{"location":{"bounding_box":{"left":0.3717736214686416,"top":0.6076400084030066,"width":0.044180127305063044,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.3717736214686416,"y":0.6076400084030066},{"x":0.41595374877370467,"y":0.6076400084030066},{"x":0.41595374877370467,"y":0.6171857324916066},{"x":0.3717736214686416,"y":0.6167491304904794}]}},"page":1},"text":"800.00"},{"location":{"bounding_box":{"left":0.5165599636343787,"top":0.6076400084030066,"width":0.028836303580926592,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.5165599636343787,"y":0.6076400084030066},{"x":0.5447790948916296,"y":0.6076400084030066},{"x":0.5453962672153053,"y":0.6171857324916066},{"x":0.5171771359580545,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.6478539124951661,"top":0.6076400084030066,"width":0.029441300945711513,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.6478539124951661,"y":0.6076400084030066},{"x":0.6766902160760927,"y":0.6076400084030066},{"x":0.6772952134408776,"y":0.6171857324916066},{"x":0.6484710848188419,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.7582860404460212,"top":0.6072034064018794,"width":0.04478515352046153,"height":0.009982326089727156,"polygon":{"coordinates":[{"x":0.7582860404460212,"y":0.6072034064018794},{"x":0.8030711939664827,"y":0.6072034064018794},{"x":0.8030711939664827,"y":0.6171857324916066},{"x":0.7582860404460212,"y":0.6167491304904794}]}},"page":1},"text":"800.00"},{"location":{"bounding_box":{"left":0.9061339520135824,"top":0.6076400084030066,"width":0.03067558789183611,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9061339520135824,"y":0.6080680783968186},{"x":0.9361923675817427,"y":0.6076400084030066},{"x":0.9368095399054185,"y":0.6171857324916066},{"x":0.9067510666360311,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.6506087076931845,"width":0.10307482481618986,"height":0.011283640908795078,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.6506087076931845},{"x":0.18405354177632305,"y":0.6506087076931845},{"x":0.18405354177632305,"y":0.6618923486019795},{"x":0.08097871696013319,"y":0.6618923486019795}]}},"page":1},"text":"Ship-to Address"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.6640583354159868,"width":0.1588959294323226,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.6640583354159868},{"x":0.23987464639245581,"y":0.6644949782401155},{"x":0.23987464639245581,"y":0.6753420171477834},{"x":0.08097871696013319,"y":0.6749139471539713}]}},"page":1},"text":"CRONUS International Ltd."},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6783812487870465,"width":0.06380763963091064,"height":0.011283681731796724,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6783812487870465},{"x":0.14540350006410607,"y":0.6788178507881738},{"x":0.14540350006410607,"y":0.6896649305188433},{"x":0.08159586043319543,"y":0.6892368605250312}]}},"page":1},"text":"5 The Ring"},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6927041213351048,"width":0.0766829183134116,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6927041213351048},{"x":0.15827877874660704,"y":0.6927041213351048},{"x":0.15827877874660704,"y":0.7026864882478335},{"x":0.08159586043319543,"y":0.7022584182540215}]}},"page":1},"text":"Westminster"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.7052891178859695,"width":0.1349604939894363,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.7157081276228269},{"x":0.08097871696013319,"y":0.7052891178859695},{"x":0.2153341703088643,"y":0.7052891178859695},{"x":0.2153341703088643,"y":0.7157081276228269}]}},"page":1},"text":"CANBERRA NSW 2600"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.720048592435155,"width":0.053376729175944534,"height":0.009545805734602952,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.720048592435155},{"x":0.13373831708832223,"y":0.720048592435155},{"x":0.13435544613607772,"y":0.7295943981697579},{"x":0.08097871696013319,"y":0.7295943981697579}]}},"page":1},"text":"Australia"}],"page_read_results":[{"page":1,"elements":[{"id":"0","text":"Purchase","bounding_box":{"left":0.7245368812971513,"top":0.03992945489372671,"width":0.10000118864527552,"height":0.017362122047384562,"polygon":{"coordinates":[{"x":0.7245368812971513,"y":0.03992945489372671},{"x":0.8239209553199781,"y":0.040366077306354664},{"x":0.8245380699424268,"y":0.05685495452848331},{"x":0.7251539959196001,"y":0.05729157694111127}]}}},{"id":"1","text":"-","bounding_box":{"left":0.8288338685891484,"top":0.040366077306354664,"width":0.011048053928028323,"height":0.016488877222128648,"polygon":{"coordinates":[{"x":0.8288338685891484,"y":0.040366077306354664},{"x":0.8392647501935011,"y":0.040366077306354664},{"x":0.8398819225171767,"y":0.05685495452848331},{"x":0.8288338685891484,"y":0.05685495452848331}]}}},{"id":"2","text":"Invoice","bounding_box":{"left":0.8441656039062346,"top":0.040366077306354664,"width":0.08159588207115553,"height":0.016488877222128648,"polygon":{"coordinates":[{"x":0.8441656039062346,"y":0.040366077306354664},{"x":0.9251564309113782,"y":0.040802697167545025},{"x":0.9257614859773902,"y":0.05685495452848331},{"x":0.8447827762299103,"y":0.05685495452848331}]}}},{"id":"3","text":"First","bounding_box":{"left":0.08097871696013319,"top":0.06119548567818885,"width":0.024540468870938165,"height":0.011283666423171072,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.06119548567818885},{"x":0.10551918583107135,"y":0.06163210809081681},{"x":0.10551918583107135,"y":0.07205109231329825},{"x":0.08097871696013319,"y":0.07247915210135993}]}}},{"id":"4","text":"Up","bounding_box":{"left":0.10859280036402551,"top":0.06163210809081681,"width":0.017788206376978047,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.10859280036402551,"y":0.06163210809081681},{"x":0.12638100674100355,"y":0.06163210809081681},{"x":0.12638100674100355,"y":0.07247915210135993},{"x":0.10859280036402551,"y":0.07205109231329825}]}}},{"id":"5","text":"Consultants","bounding_box":{"left":0.13067680538772514,"top":0.06163210809081681,"width":0.06932561517874627,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.13067680538772514,"y":0.06163210809081681},{"x":0.2000024205664714,"y":0.06163210809081681},{"x":0.2000024205664714,"y":0.07247915210135993},{"x":0.13067680538772514,"y":0.07247915210135993}]}}},{"id":"6","text":"Page","bounding_box":{"left":0.8914072140612812,"top":0.06163210809081681,"width":0.03067558789183611,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.8914072140612812,"y":0.06163210809081681},{"x":0.9220828019531173,"y":0.06163210809081681},{"x":0.9220828019531173,"y":0.07247915210135993},{"x":0.8914072140612812,"y":0.07247915210135993}]}}},{"id":"7","text":"1","bounding_box":{"left":0.9263786005998389,"top":0.06163210809081681,"width":0.005517968335182255,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.9263786005998389,"y":0.06163210809081681},{"x":0.9312915715702362,"y":0.06163210809081681},{"x":0.9318965689350212,"y":0.07247915210135993},{"x":0.9263786005998389,"y":0.07247915210135993}]}}},{"id":"8","text":"Evan","bounding_box":{"left":0.08037367631942799,"top":0.07551837863774787,"width":0.026984837098473033,"height":0.009982366912728677,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.07551837863774787},{"x":0.10675347277719582,"y":0.07551837863774787},{"x":0.10735851341790102,"y":0.08550074555047654},{"x":0.08097871696013319,"y":0.08550074555047654}]}}},{"id":"9","text":"McIntosh","bounding_box":{"left":0.11165430485196923,"top":0.07551837863774787,"width":0.05459892771501873,"height":0.009982366912728677,"polygon":{"coordinates":[{"x":0.11165430485196923,"y":0.07551837863774787},{"x":0.16625323256698796,"y":0.07595500105037582},{"x":0.16625323256698796,"y":0.08550074555047654},{"x":0.11165430485196923,"y":0.08550074555047654}]}}},{"id":"10","text":"Allan","bounding_box":{"left":0.08097871696013319,"top":0.0885399669839893,"width":0.029453403778068613,"height":0.011283671526046257,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.0885399669839893},{"x":0.1104321207382018,"y":0.0885399669839893},{"x":0.1104321207382018,"y":0.09982363851003556},{"x":0.08097871696013319,"y":0.09982363851003556}]}}},{"id":"11","text":"Turing","bounding_box":{"left":0.11411077591186114,"top":0.0885399669839893,"width":0.03803289102650137,"height":0.011283671526046257,"polygon":{"coordinates":[{"x":0.11411077591186114,"y":0.0885399669839893},{"x":0.1521436669383625,"y":0.0885399669839893},{"x":0.1521436669383625,"y":0.09982363851003556},{"x":0.11411077591186114,"y":0.09982363851003556}]}}},{"id":"12","text":"Road,","bounding_box":{"left":0.1552172670460099,"top":0.08810334457136135,"width":0.03557642717926285,"height":0.011720293938674214,"polygon":{"coordinates":[{"x":0.1552172670460099,"y":0.0885399669839893},{"x":0.19079369422527276,"y":0.08810334457136135},{"x":0.19079369422527276,"y":0.09982363851003556},{"x":0.1552172670460099,"y":0.09982363851003556}]}}},{"id":"13","text":"20","bounding_box":{"left":0.1944723493989321,"top":0.08810334457136135,"width":0.014726709101687663,"height":0.011720293938674214,"polygon":{"coordinates":[{"x":0.1944723493989321,"y":0.08810334457136135},{"x":0.20919905850061976,"y":0.08810334457136135},{"x":0.20919905850061976,"y":0.09982363851003556},{"x":0.1944723493989321,"y":0.09982363851003556}]}}},{"id":"14","text":"Surrey","bounding_box":{"left":0.08097871696013319,"top":0.10242624773667074,"width":0.03742785038579617,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.11240860444364903},{"x":0.08159586043319543,"y":0.10242624773667074},{"x":0.11840656734592936,"y":0.1028628701492987},{"x":0.11778942387286712,"y":0.11284522685627699}]}}},{"id":"15","text":"5","bounding_box":{"left":0.9251564309113782,"top":0.09418180784988762,"width":0.00735731034731868,"height":0.009117674506288656,"polygon":{"coordinates":[{"x":0.9251564309113782,"y":0.1028628701492987},{"x":0.9257614859773902,"y":0.09418180784988762},{"x":0.9325137412586969,"y":0.09418180784988762},{"x":0.9318965689350212,"y":0.10329948235617628}]}}},{"id":"16","text":"ALBERTON","bounding_box":{"left":0.08037367631942799,"top":0.11588445849554013,"width":0.061956223637030655,"height":0.010418979119606236,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.11588445849554013},{"x":0.14232989995645864,"y":0.11632108090816809},{"x":0.14232989995645864,"y":0.12630343761514637},{"x":0.08037367631942799,"y":0.12630343761514637}]}}},{"id":"17","text":"QLD","bounding_box":{"left":0.1496871958784706,"top":0.11632108090816809,"width":0.0233182919698241,"height":0.00998235670697828,"polygon":{"coordinates":[{"x":0.1496871958784706,"y":0.11632108090816809},{"x":0.1730054878482947,"y":0.11632108090816809},{"x":0.1730054878482947,"y":0.12630343761514637},{"x":0.1496871958784706,"y":0.12630343761514637}]}}},{"id":"18","text":"4207","bounding_box":{"left":0.17914059965653922,"top":0.11588445849554013,"width":0.0294534037780686,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.17914059965653922,"y":0.11632108090816809},{"x":0.20859400343460782,"y":0.11588445849554013},{"x":0.20859400343460782,"y":0.12673149740320805},{"x":0.17914059965653922,"y":0.12630343761514637}]}}},{"id":"19","text":"5","bounding_box":{"left":0.8693232234628884,"top":0.10850470080944664,"width":0.007974424969767413,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.10850470080944664},{"x":0.8772976484326558,"y":0.10850470080944664},{"x":0.8772976484326558,"y":0.1189236799290529},{"x":0.8693232234628884,"y":0.1189236799290529}]}}},{"id":"20","text":"The","bounding_box":{"left":0.8803712773909167,"top":0.10850470080944664,"width":0.0214668759759441,"height":0.010855601532234208,"polygon":{"coordinates":[{"x":0.8803712773909167,"y":0.10850470080944664},{"x":0.9018381533668608,"y":0.10850470080944664},{"x":0.9018381533668608,"y":0.11936030234168085},{"x":0.8803712773909167,"y":0.1189236799290529}]}}},{"id":"21","text":"Ring","bounding_box":{"left":0.9049117246238948,"top":0.10850470080944664,"width":0.027602016634802107,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.9049117246238948,"y":0.10850470080944664},{"x":0.9325137412586969,"y":0.1089413232220746},{"x":0.9325137412586969,"y":0.11978836212974252},{"x":0.9049117246238948,"y":0.11936030234168085}]}}},{"id":"22","text":"Australia","bounding_box":{"left":0.08097871696013319,"top":0.1306439738677271,"width":0.05215455948748386,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.1310720336557888},{"x":0.13313327644761705,"y":0.1306439738677271},{"x":0.13313327644761705,"y":0.14018971836782781},{"x":0.08159586043319543,"y":0.14018971836782781}]}}},{"id":"23","text":"Westminster","bounding_box":{"left":0.8570529998463994,"top":0.12282759376900566,"width":0.07607785603474626,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.8570529998463994,"y":0.12282759376900566},{"x":0.9331308558811456,"y":0.12326421618163362},{"x":0.9331308558811456,"y":0.1332465728886119},{"x":0.8576701144688481,"y":0.13280996068173434}]}}},{"id":"24","text":"CANBERRA","bounding_box":{"left":0.7999976227094489,"top":0.13672242694050302,"width":0.06502980210671794,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.7999976227094489,"y":0.13672242694050302},{"x":0.8650274248161668,"y":0.13715048672856467},{"x":0.8650274248161668,"y":0.14670479385323168},{"x":0.7999976227094489,"y":0.14670479385323168}]}}},{"id":"25","text":"NSW","bounding_box":{"left":0.8693232234628884,"top":0.13672242694050302,"width":0.025157619556653743,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.13715048672856467},{"x":0.8944808430195421,"y":0.13672242694050302},{"x":0.8944808430195421,"y":0.14670479385323168},{"x":0.8693232234628884,"y":0.14670479385323168}]}}},{"id":"26","text":"2600","bounding_box":{"left":0.904294610001446,"top":0.13672242694050302,"width":0.0276019589335752,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.904294610001446,"y":0.13672242694050302},{"x":0.9318965689350212,"y":0.13672242694050302},{"x":0.9318965689350212,"y":0.14756947605392132},{"x":0.904294610001446,"y":0.14713285364129336}]}}},{"id":"27","text":"Australia","bounding_box":{"left":0.8809763324569286,"top":0.1514733796881237,"width":0.05153740880176827,"height":0.00955430712466701,"polygon":{"coordinates":[{"x":0.8809763324569286,"y":0.15191000210075165},{"x":0.9325137412586969,"y":0.1514733796881237},{"x":0.9325137412586969,"y":0.1610276868127907},{"x":0.8809763324569286,"y":0.1610276868127907}]}}},{"id":"28","text":"Pay-to","bounding_box":{"left":0.08037367631942799,"top":0.18663425129839598,"width":0.03987221861333104,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.18663425129839598},{"x":0.12024589493275903,"y":0.18663425129839598},{"x":0.12024589493275903,"y":0.1974812902060639},{"x":0.08037367631942799,"y":0.1974812902060639}]}}},{"id":"29","text":"Vendor","bounding_box":{"left":0.12330740663335614,"top":0.18619762888576802,"width":0.043562954981387306,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.12330740663335614,"y":0.18663425129839598},{"x":0.16687036161474345,"y":0.18619762888576802},{"x":0.16625323256698796,"y":0.1974812902060639},{"x":0.12330740663335614,"y":0.1974812902060639}]}}},{"id":"30","text":"No.","bounding_box":{"left":0.16932683267463536,"top":0.18619762888576802,"width":0.02330618913746707,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.16932683267463536,"y":0.1974812902060639},{"x":0.1699439761476976,"y":0.18619762888576802},{"x":0.19263302181210243,"y":0.18663425129839598},{"x":0.19202798117139722,"y":0.1974812902060639}]}}},{"id":"31","text":"20000","bounding_box":{"left":0.23619599121879647,"top":0.18619762888576802,"width":0.03558853001161988,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.18619762888576802},{"x":0.27178452123041635,"y":0.18619762888576802},{"x":0.27178452123041635,"y":0.19617999579849668},{"x":0.23619599121879647,"y":0.19617999579849668}]}}},{"id":"32","text":"Phone","bounding_box":{"left":0.666864331836525,"top":0.18011916560724173,"width":0.03804501549681849,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.18011916560724173},{"x":0.7049093473333435,"y":0.18011916560724173},{"x":0.7049093473333435,"y":0.19010153251997042},{"x":0.6674814464589738,"y":0.18967348293765912}]}}},{"id":"33","text":"No.","bounding_box":{"left":0.7079708013327137,"top":0.18011916560724173,"width":0.02208404829961985,"height":0.010418989325356648,"polygon":{"coordinates":[{"x":0.7079708013327137,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19053815493259837},{"x":0.7079708013327137,"y":0.19010153251997042}]}}},{"id":"34","text":"0666-666-6666","bounding_box":{"left":0.8423262618940982,"top":0.17969111602493043,"width":0.0901874793645987,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8423262618940982,"y":0.18011916560724173},{"x":0.9325137412586969,"y":0.17969111602493043},{"x":0.9325137412586969,"y":0.18967348293765912},{"x":0.8423262618940982,"y":0.18967348293765912}]}}},{"id":"35","text":"VAT","bounding_box":{"left":0.08097871696013319,"top":0.20052052184532704,"width":0.023318284757170724,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.20052052184532704},{"x":0.10429700171730391,"y":0.20052052184532704},{"x":0.10429700171730391,"y":0.21136756075299495},{"x":0.08097871696013319,"y":0.21093951117068366}]}}},{"id":"36","text":"Registration","bounding_box":{"left":0.10735851341790102,"top":0.20008389943269908,"width":0.07239922971170044,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.10735851341790102,"y":0.20052052184532704},{"x":0.17975774312960147,"y":0.20008389943269908},{"x":0.17975774312960147,"y":0.2118041831656229},{"x":0.10735851341790102,"y":0.21136756075299495}]}}},{"id":"37","text":"No.","bounding_box":{"left":0.18281925483019856,"top":0.20008389943269908,"width":0.022701148496761858,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.18281925483019856,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.2118041831656229},{"x":0.18281925483019856,"y":0.2118041831656229}]}}},{"id":"38","text":"274863274B01","bounding_box":{"left":0.23619599121879647,"top":0.20052052184532704,"width":0.08589165186726366,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.20052052184532704},{"x":0.32208764308606014,"y":0.20052052184532704},{"x":0.32208764308606014,"y":0.21093951117068366},{"x":0.23619599121879647,"y":0.2105028887580557}]}}},{"id":"39","text":"Home","bounding_box":{"left":0.666864331836525,"top":0.19270414174660558,"width":0.036810728550694005,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.20355975348459018},{"x":0.666864331836525,"y":0.20355975348459018}]}}},{"id":"40","text":"Page","bounding_box":{"left":0.7067486316442531,"top":0.19270414174660558,"width":0.03129276021551175,"height":0.011292234150612562,"polygon":{"coordinates":[{"x":0.7067486316442531,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.20399637589721814},{"x":0.7067486316442531,"y":0.20355975348459018}]}}},{"id":"41","text":"Email","bounding_box":{"left":0.666864331836525,"top":0.2057257402985974,"width":0.033132044526421156,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2157080867998253},{"x":0.666864331836525,"y":0.2157080867998253}]}}},{"id":"42","text":"Document","bounding_box":{"left":0.08037367631942799,"top":0.22872968535181712,"width":0.0625733671100929,"height":0.010855611737984577,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.22872968535181712},{"x":0.1429470434295209,"y":0.22916630776444508},{"x":0.1429470434295209,"y":0.2395852970898017},{"x":0.08037367631942799,"y":0.2395852970898017}]}}},{"id":"43","text":"Date","bounding_box":{"left":0.14540350006410607,"top":0.22872968535181712,"width":0.028824171897956052,"height":0.010855611737984577,"polygon":{"coordinates":[{"x":0.14540350006410607,"y":0.22916630776444508},{"x":0.17362263132135694,"y":0.22872968535181712},{"x":0.17422767196206213,"y":0.2395852970898017},{"x":0.14600854070481126,"y":0.2395852970898017}]}}},{"id":"44","text":"VAT","bounding_box":{"left":0.6674814464589738,"top":0.2200486332581564,"width":0.02454050493420501,"height":0.010855591326483838,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.2200486332581564},{"x":0.691404779069503,"y":0.2200486332581564},{"x":0.6920219513931788,"y":0.23090422458464024},{"x":0.6674814464589738,"y":0.23090422458464024}]}}},{"id":"45","text":"Registration","bounding_box":{"left":0.694478408027764,"top":0.2200486332581564,"width":0.07238711245403673,"height":0.010855591326483838,"polygon":{"coordinates":[{"x":0.694478408027764,"y":0.2200486332581564},{"x":0.7668655204818007,"y":0.2200486332581564},{"x":0.7668655204818007,"y":0.23090422458464024},{"x":0.6950955803514397,"y":0.23090422458464024}]}}},{"id":"46","text":"No.","bounding_box":{"left":0.7699391494400615,"top":0.21962056326434437,"width":0.02146687597594421,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.7699391494400615,"y":0.2200486332581564},{"x":0.7914060254160057,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.23090422458464024},{"x":0.7699391494400615,"y":0.23090422458464024}]}}},{"id":"47","text":"777777777","bounding_box":{"left":0.8687060511392126,"top":0.2200486332581564,"width":0.06442480474193302,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8687060511392126,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22048525567078436},{"x":0.9331308558811456,"y":0.22960293017707303},{"x":0.8687060511392126,"y":0.22916630776444508}]}}},{"id":"48","text":"June","bounding_box":{"left":0.23497380710502905,"top":0.22916630776444508,"width":0.02821911683194414,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.22916630776444508},{"x":0.2631929239369732,"y":0.22960293017707303},{"x":0.2631929239369732,"y":0.2395852970898017},{"x":0.23557884774573423,"y":0.2395852970898017}]}}},{"id":"49","text":"4,","bounding_box":{"left":0.26564940942217186,"top":0.22960293017707303,"width":0.012270223616488996,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.26564940942217186,"y":0.22960293017707303},{"x":0.27791963303866085,"y":0.22960293017707303},{"x":0.27791963303866085,"y":0.2395852970898017},{"x":0.2662544356375703,"y":0.2395852970898017}]}}},{"id":"50","text":"2025","bounding_box":{"left":0.2803640012661957,"top":0.22960293017707303,"width":0.02883627473031314,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.2803640012661957,"y":0.22960293017707303},{"x":0.3085831325234466,"y":0.22960293017707303},{"x":0.30920027599650884,"y":0.2395852970898017},{"x":0.28098114473925795,"y":0.2395852970898017}]}}},{"id":"51","text":"Invoice","bounding_box":{"left":0.08037367631942799,"top":0.24218790631643689,"width":0.04293373031392815,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.24218790631643689},{"x":0.12330740663335614,"y":0.24262452872906484},{"x":0.12330740663335614,"y":0.25260687523029274},{"x":0.08037367631942799,"y":0.25260687523029274}]}}},{"id":"52","text":"No.","bounding_box":{"left":0.1257638632679413,"top":0.24262452872906484,"width":0.022084005023699615,"height":0.009982346501227896,"polygon":{"coordinates":[{"x":0.1257638632679413,"y":0.24262452872906484},{"x":0.14784786829164093,"y":0.24305257831137614},{"x":0.14784786829164093,"y":0.25260687523029274},{"x":0.1257638632679413,"y":0.25260687523029274}]}}},{"id":"53","text":"108222","bounding_box":{"left":0.2374181753325639,"top":0.24262452872906484,"width":0.042945825933631804,"height":0.009545724088599966,"polygon":{"coordinates":[{"x":0.2374181753325639,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.24262452872906484},{"x":0.2803640012661957,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2517336304050368}]}}},{"id":"54","text":"Giro","bounding_box":{"left":0.666864331836525,"top":0.23437152621771543,"width":0.02454044723297799,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.23480814863034338},{"x":0.691404779069503,"y":0.23437152621771543},{"x":0.691404779069503,"y":0.24435387271894335},{"x":0.6674814464589738,"y":0.24435387271894335}]}}},{"id":"55","text":"No.","bounding_box":{"left":0.6957005777162246,"top":0.23437152621771543,"width":0.022701162922068696,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.6957005777162246,"y":0.23437152621771543},{"x":0.7184017406382933,"y":0.23437152621771543},{"x":0.7184017406382933,"y":0.24392582313663205},{"x":0.6957005777162246,"y":0.24435387271894335}]}}},{"id":"56","text":"888-9999","bounding_box":{"left":0.8779148207563315,"top":0.23437152621771543,"width":0.0552160351248141,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8779148207563315,"y":0.23480814863034338},{"x":0.9325137412586969,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.24392582313663205},{"x":0.8779148207563315,"y":0.2434892007240041}]}}},{"id":"57","text":"Bank","bounding_box":{"left":0.6674814464589738,"top":0.24869441917727445,"width":0.02821913125725084,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.2578120936835631},{"x":0.6674814464589738,"y":0.2578120936835631}]}}},{"id":"58","text":"World","bounding_box":{"left":0.8294509832115972,"top":0.2482663491834624,"width":0.03557644160456963,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.8294509832115972,"y":0.2482663491834624},{"x":0.8650274248161668,"y":0.24869441917727445},{"x":0.8650274248161668,"y":0.2582487160961911},{"x":0.8294509832115972,"y":0.2586767860900031}]}}},{"id":"59","text":"Wide","bounding_box":{"left":0.8693232234628884,"top":0.24869441917727445,"width":0.03189775758029667,"height":0.009554296918916655,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.24869441917727445},{"x":0.9006159259771732,"y":0.24869441917727445},{"x":0.901220981043185,"y":0.2582487160961911},{"x":0.8699403380853371,"y":0.2582487160961911}]}}},{"id":"60","text":"Bank","bounding_box":{"left":0.904294610001446,"top":0.24869441917727445,"width":0.028836245879699685,"height":0.009554296918916655,"polygon":{"coordinates":[{"x":0.904294610001446,"y":0.24869441917727445},{"x":0.9325137412586969,"y":0.24869441917727445},{"x":0.9331308558811456,"y":0.2582487160961911},{"x":0.9049117246238948,"y":0.2582487160961911}]}}},{"id":"61","text":"Posting","bounding_box":{"left":0.07975653284636575,"top":0.26953237741648695,"width":0.04540228978087035,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269960447410299},{"x":0.1251588226272361,"y":0.26953237741648695},{"x":0.1251588226272361,"y":0.28125268156091154},{"x":0.08037367631942799,"y":0.2808160591482836}]}}},{"id":"62","text":"Date","bounding_box":{"left":0.12822033432783322,"top":0.26953237741648695,"width":0.030675587891836026,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.12822033432783322,"y":0.26953237741648695},{"x":0.15827877874660704,"y":0.26953237741648695},{"x":0.15889592221966925,"y":0.28125268156091154},{"x":0.12883747780089547,"y":0.28125268156091154}]}}},{"id":"63","text":"06/04/25","bounding_box":{"left":0.23497380710502905,"top":0.269960447410299,"width":0.055821104616132794,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.269960447410299},{"x":0.2901777682480996,"y":0.269960447410299},{"x":0.29079491172116184,"y":0.28037943673565563},{"x":0.23497380710502905,"y":0.2799428143230277}]}}},{"id":"64","text":"Account","bounding_box":{"left":0.666864331836525,"top":0.2634539345494614,"width":0.0503152391133076,"height":0.009117674506288698,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2634539345494614},{"x":0.7171795709498326,"y":0.2634539345494614},{"x":0.7165623986261569,"y":0.2725716090557501},{"x":0.6680986187826495,"y":0.2725716090557501}]}}},{"id":"65","text":"No.","bounding_box":{"left":0.7196360275844178,"top":0.2634539345494614,"width":0.0214668759759441,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.7196360275844178,"y":0.2634539345494614},{"x":0.7411029035603619,"y":0.2638905569620894},{"x":0.7404857312366862,"y":0.2729996790495621},{"x":0.7196360275844178,"y":0.2725716090557501}]}}},{"id":"66","text":"99-99-888","bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}}},{"id":"67","text":"Due","bounding_box":{"left":0.08097871696013319,"top":0.28341864796341804,"width":0.0239233326105293,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.28341864796341804},{"x":0.10490204957066249,"y":0.28341864796341804},{"x":0.10490204957066249,"y":0.29296439246351874},{"x":0.08097871696013319,"y":0.29296439246351874}]}}},{"id":"68","text":"Date","bounding_box":{"left":0.10919784100473069,"top":0.28341864796341804,"width":0.027614076191238943,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.10919784100473069,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.29253634288120745},{"x":0.10919784100473069,"y":0.29296439246351874}]}}},{"id":"69","text":"07/31/25","bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05399386543635343,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.29340101487614667},{"x":0.23557884774573423,"y":0.29296439246351874}]}}},{"id":"70","text":"Payment","bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.053376729175944534,"height":0.011283661320295846,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.13435544613607772,"y":0.3098984674800296},{"x":0.13435544613607772,"y":0.32030888397506957},{"x":0.08097871696013319,"y":0.3207455063876975}]}}},{"id":"71","text":"Terms","bounding_box":{"left":0.13742906066903188,"top":0.30946184506740165,"width":0.03619357065232506,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.13742906066903188,"y":0.3098984674800296},{"x":0.1730054878482947,"y":0.30946184506740165},{"x":0.17362263132135694,"y":0.3198808139812575},{"x":0.13742906066903188,"y":0.32030888397506957}]}}},{"id":"72","text":"End","bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.02147896438299446,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.2570578121287287,"y":0.3098984674800296},{"x":0.2570578121287287,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}}},{"id":"73","text":"of","bounding_box":{"left":0.2613536107754503,"top":0.3098984674800296,"width":0.012875278682500935,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.2613536107754503,"y":0.3098984674800296},{"x":0.2742288894579512,"y":0.3098984674800296},{"x":0.2742288894579512,"y":0.3194442119801303},{"x":0.2613536107754503,"y":0.3194442119801303}]}}},{"id":"74","text":"Next","bounding_box":{"left":0.27668534609253637,"top":0.3098984674800296,"width":0.02883627473031314,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.27668534609253637,"y":0.3098984674800296},{"x":0.3055216208228495,"y":0.3098984674800296},{"x":0.3055216208228495,"y":0.3194442119801303},{"x":0.27668534609253637,"y":0.3194442119801303}]}}},{"id":"75","text":"Month","bounding_box":{"left":0.30797807745743466,"top":0.3098984674800296,"width":0.03987221140067765,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.30797807745743466,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3194442119801303},{"x":0.30797807745743466,"y":0.3194442119801303}]}}},{"id":"76","text":"ABN","bounding_box":{"left":0.6680986187826495,"top":0.30338338178887536,"width":0.022701162922068585,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.6680986187826495,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.312501056295164},{"x":0.6680986187826495,"y":0.312501056295164}]}}},{"id":"77","text":"53001003000","bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}}},{"id":"78","text":"Shipment","bounding_box":{"left":0.08097871696013319,"top":0.32291149320170476,"width":0.05645034370889869,"height":0.011292234150612535,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.3233481156143327},{"x":0.13742906066903188,"y":0.32291149320170476},{"x":0.13742906066903188,"y":0.3342037273523173},{"x":0.08159586043319543,"y":0.3342037273523173}]}}},{"id":"79","text":"Method","bounding_box":{"left":0.14049057236962897,"top":0.32291149320170476,"width":0.0478587536281089,"height":0.011292234150612535,"polygon":{"coordinates":[{"x":0.14049057236962897,"y":0.32291149320170476},{"x":0.18834932599773788,"y":0.32291149320170476},{"x":0.18834932599773788,"y":0.3337671049396893},{"x":0.14049057236962897,"y":0.3342037273523173}]}}},{"id":"80","text":"Prices","bounding_box":{"left":0.08037367631942799,"top":0.33636969375482373,"width":0.03435423585284203,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.33636969375482373},{"x":0.11411077591186114,"y":0.33636969375482373},{"x":0.11472791217227002,"y":0.3476533754866204},{"x":0.08097871696013319,"y":0.34721673266249165}]}}},{"id":"81","text":"Including","bounding_box":{"left":0.11717228039980487,"top":0.33636969375482373,"width":0.05645035092155207,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.11717228039980487,"y":0.33636969375482373},{"x":0.17362263132135694,"y":0.33636969375482373},{"x":0.17362263132135694,"y":0.3476533754866204},{"x":0.11778942387286712,"y":0.3476533754866204}]}}},{"id":"82","text":"VAT","bounding_box":{"left":0.17730127206970955,"top":0.33636969375482373,"width":0.025762660197358955,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.17730127206970955,"y":0.33636969375482373},{"x":0.20245889162636332,"y":0.33636969375482373},{"x":0.2030639322670685,"y":0.3476533754866204},{"x":0.1779184155427718,"y":0.3476533754866204}]}}},{"id":"83","text":"No","bounding_box":{"left":0.23557884774573423,"top":0.3372343861612638,"width":0.017183165736272876,"height":0.008681072505161425,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3372343861612638},{"x":0.2527620134820071,"y":0.3372343861612638},{"x":0.2527620134820071,"y":0.3459154586664252},{"x":0.23557884774573423,"y":0.3459154586664252}]}}},{"id":"84","text":"Direct","bounding_box":{"left":0.5343603305449408,"top":0.38020306503994084,"width":0.03803284053792777,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.5343603305449408,"y":0.38020306503994084},{"x":0.5723931710828686,"y":0.38020306503994084},{"x":0.5723931710828686,"y":0.38975736195885746},{"x":0.5343603305449408,"y":0.38975736195885746}]}}},{"id":"85","text":"Allow","bounding_box":{"left":0.6797517277766898,"top":0.37977499504612877,"width":0.031909874837960484,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6797517277766898,"y":0.37977499504612877},{"x":0.7116616026146503,"y":0.37977499504612877},{"x":0.7116616026146503,"y":0.38975736195885746},{"x":0.6797517277766898,"y":0.38975736195885746}]}}},{"id":"86","text":"Unit","bounding_box":{"left":0.4404941960066827,"top":0.3927965935981206,"width":0.027601987784188653,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.4404941960066827,"y":0.3927965935981206},{"x":0.46809618379087137,"y":0.3927965935981206},{"x":0.46809618379087137,"y":0.40277896051084927},{"x":0.4404941960066827,"y":0.40234235850972205}]}}},{"id":"87","text":"of","bounding_box":{"left":0.47055266927607003,"top":0.3927965935981206,"width":0.015331706466472639,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.47055266927607003,"y":0.3927965935981206},{"x":0.4858843757425427,"y":0.3927965935981206},{"x":0.4858843757425427,"y":0.40277896051084927},{"x":0.47055266927607003,"y":0.40277896051084927}]}}},{"id":"88","text":"Unit","bounding_box":{"left":0.5453962672153053,"top":0.39235999159699336,"width":0.028836245879699685,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.5453962672153053,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.4014776456917813},{"x":0.546013381837754,"y":0.4019057156855933}]}}},{"id":"89","text":"Invoice","bounding_box":{"left":0.6785295003870021,"top":0.3927965935981206,"width":0.04539020858647347,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.3927965935981206},{"x":0.7239197089734756,"y":0.39322466359193264},{"x":0.7239197089734756,"y":0.40277896051084927},{"x":0.6785295003870021,"y":0.40277896051084927}]}}},{"id":"90","text":"VAT","bounding_box":{"left":0.7742349480867831,"top":0.39235999159699336,"width":0.0276019589335752,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.7742349480867831,"y":0.39235999159699336},{"x":0.8012319096555733,"y":0.39235999159699336},{"x":0.8018369070203583,"y":0.4014776456917813},{"x":0.774840003152795,"y":0.4019057156855933}]}}},{"id":"91","text":"No.","bounding_box":{"left":0.08221300390625766,"top":0.4053815493259837,"width":0.022689045664404828,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4149273142375851},{"x":0.08221300390625766,"y":0.4149273142375851}]}}},{"id":"92","text":"Description","bounding_box":{"left":0.17668414302195404,"top":0.4049449473248565,"width":0.07178207181333146,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.17668414302195404,"y":0.4053815493259837},{"x":0.2484662148352855,"y":0.4049449473248565},{"x":0.2484662148352855,"y":0.4166652310577803},{"x":0.17668414302195404,"y":0.4153639162387123}]}}},{"id":"93","text":"Quantity","bounding_box":{"left":0.3570590296246177,"top":0.4049449473248565,"width":0.05643823366388828,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.3570590296246177,"y":0.4049449473248565},{"x":0.413497263288506,"y":0.4053815493259837},{"x":0.413497263288506,"y":0.4166652310577803},{"x":0.3576640558400162,"y":0.4162286290566531}]}}},{"id":"94","text":"Measure","bounding_box":{"left":0.43925993791117174,"top":0.4058181921501124,"width":0.0552160351248141,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.4058181921501124},{"x":0.49447597303598584,"y":0.4058181921501124},{"x":0.49447597303598584,"y":0.4153639162387123},{"x":0.43987705253362047,"y":0.4153639162387123}]}}},{"id":"95","text":"Cost","bounding_box":{"left":0.5447790948916296,"top":0.4053815493259837,"width":0.029453418203375437,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.5447790948916296,"y":0.4053815493259837},{"x":0.574232513095005,"y":0.4053815493259837},{"x":0.574232513095005,"y":0.4149273142375851},{"x":0.5447790948916296,"y":0.4149273142375851}]}}},{"id":"96","text":"Discount","bounding_box":{"left":0.5914157076818913,"top":0.4049449473248565,"width":0.05766043220296235,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5914157076818913,"y":0.4049449473248565},{"x":0.6490761398848537,"y":0.4049449473248565},{"x":0.6490761398848537,"y":0.4153639162387123},{"x":0.5914157076818913,"y":0.4153639162387123}]}}},{"id":"97","text":"%","bounding_box":{"left":0.6564455097886093,"top":0.4053815493259837,"width":0.008579480035779352,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.6564455097886093,"y":0.4153639162387123},{"x":0.6570505648546212,"y":0.4053815493259837},{"x":0.6650249898243886,"y":0.4053815493259837},{"x":0.6650249898243886,"y":0.4153639162387123}]}}},{"id":"98","text":"Discount","bounding_box":{"left":0.679134555453014,"top":0.4053815493259837,"width":0.057055377136950525,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.679134555453014,"y":0.4058181921501124},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4153639162387123},{"x":0.679134555453014,"y":0.4149273142375851}]}}},{"id":"99","text":"Identifier","bounding_box":{"left":0.7730006611406586,"top":0.4049449473248565,"width":0.06135117578367211,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4053815493259837},{"x":0.8343518369243307,"y":0.4049449473248565},{"x":0.8343518369243307,"y":0.4153639162387123},{"x":0.7736177757631074,"y":0.4153639162387123}]}}},{"id":"100","text":"Amount","bounding_box":{"left":0.8815934470793774,"top":0.4058181921501124,"width":0.05275957849022894,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.8815934470793774,"y":0.4058181921501124},{"x":0.9343530255696063,"y":0.4058181921501124},{"x":0.9343530255696063,"y":0.4153639162387123},{"x":0.8822106194030531,"y":0.4149273142375851}]}}},{"id":"101","text":"IT","bounding_box":{"left":0.17730127206970955,"top":0.4279489127895769,"width":0.008591597293443165,"height":0.014759515372187004,"polygon":{"coordinates":[{"x":0.17730127206970955,"y":0.4279489127895769},{"x":0.18589286936315272,"y":0.4279489127895769},{"x":0.18589286936315272,"y":0.4427084281617639},{"x":0.17730127206970955,"y":0.4427084281617639}]}}},{"id":"102","text":"Support","bounding_box":{"left":0.19018865358456755,"top":0.4279489127895769,"width":0.04968599280788827,"height":0.01562418736712623,"polygon":{"coordinates":[{"x":0.19018865358456755,"y":0.4279489127895769},{"x":0.23987464639245581,"y":0.4279489127895769},{"x":0.23987464639245581,"y":0.44357310015670315},{"x":0.19018865358456755,"y":0.44313645733257445}]}}},{"id":"103","text":"4","bounding_box":{"left":0.41595374877370467,"top":0.43055150160471134,"width":0.007357281496705226,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.41595374877370467,"y":0.4388045245275615},{"x":0.4165587749891031,"y":0.43055150160471134},{"x":0.4233110302704099,"y":0.43055150160471134},{"x":0.42269388679734765,"y":0.43923255369837205}]}}},{"id":"104","text":"200.00","bounding_box":{"left":0.5331260435988163,"top":0.43012343161089933,"width":0.03865001286160341,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5331260435988163,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.44010579852362797},{"x":0.5337431582212651,"y":0.4396691965225008}]}}},{"id":"105","text":"No","bounding_box":{"left":0.6785295003870021,"top":0.43055150160471134,"width":0.01778824965289827,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43923255369837205},{"x":0.6785295003870021,"y":0.4388045245275615}]}}},{"id":"106","text":"NON","bounding_box":{"left":0.7742349480867831,"top":0.4296868296097721,"width":0.0276019589335752,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7742349480867831,"y":0.43012343161089933},{"x":0.8018369070203583,"y":0.4296868296097721},{"x":0.8018369070203583,"y":0.4396691965225008},{"x":0.7742349480867831,"y":0.4396691965225008}]}}},{"id":"107","text":"GST","bounding_box":{"left":0.808589162301665,"top":0.4296868296097721,"width":0.025762674622665682,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.808589162301665,"y":0.4296868296097721},{"x":0.8337467818583187,"y":0.4296868296097721},{"x":0.8343518369243307,"y":0.44010579852362797},{"x":0.808589162301665,"y":0.4396691965225008}]}}},{"id":"108","text":"800.00","bounding_box":{"left":0.8938636706958664,"top":0.4292501867856434,"width":0.03987224025129121,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.8938636706958664,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.4396691965225008},{"x":0.8938636706958664,"y":0.4396691965225008}]}}},{"id":"109","text":"Support","bounding_box":{"left":0.17607910238124885,"top":0.44357310015670315,"width":0.047846650795751844,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.44357310015670315},{"x":0.2239257531770007,"y":0.44357310015670315},{"x":0.2239257531770007,"y":0.4548567818884998},{"x":0.17668414302195404,"y":0.4548567818884998}]}}},{"id":"110","text":"period:","bounding_box":{"left":0.22699936770995485,"top":0.44313645733257445,"width":0.04109440993975186,"height":0.011720324555925365,"polygon":{"coordinates":[{"x":0.22699936770995485,"y":0.44357310015670315},{"x":0.2680937776497067,"y":0.44313645733257445},{"x":0.2680937776497067,"y":0.4548567818884998},{"x":0.22699936770995485,"y":0.4548567818884998}]}}},{"id":"111","text":"March","bounding_box":{"left":0.2711673777573541,"top":0.44313645733257445,"width":0.038650041712216976,"height":0.011720324555925365,"polygon":{"coordinates":[{"x":0.2711673777573541,"y":0.44313645733257445},{"x":0.3098174194695711,"y":0.44313645733257445},{"x":0.3098174194695711,"y":0.4548567818884998},{"x":0.2711673777573541,"y":0.4548567818884998}]}}},{"id":"112","text":"Total","bounding_box":{"left":0.7705563217637372,"top":0.47048096925562605,"width":0.03373704189120619,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7705563217637372,"y":0.47048096925562605},{"x":0.8042933636549434,"y":0.47048096925562605},{"x":0.8042933636549434,"y":0.4808999381694819},{"x":0.7705563217637372,"y":0.4808999381694819}]}}},{"id":"113","text":"AUD","bounding_box":{"left":0.8067498779907556,"top":0.47048096925562605,"width":0.026379789245114416,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8067498779907556,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.4808999381694819},{"x":0.8073669926132043,"y":0.4808999381694819}]}}},{"id":"114","text":"800.00","bounding_box":{"left":0.8908021589952693,"top":0.47091757125675326,"width":0.04171158226342764,"height":0.009545764911601473,"polygon":{"coordinates":[{"x":0.8908021589952693,"y":0.47135421408088196},{"x":0.9325137412586969,"y":0.47091757125675326},{"x":0.9325137412586969,"y":0.48046333616835474},{"x":0.8908021589952693,"y":0.48046333616835474}]}}},{"id":"115","text":"VAT","bounding_box":{"left":0.08221300390625766,"top":0.529947100738186,"width":0.02637979645776785,"height":0.012148312903734415,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.529947100738186},{"x":0.10859280036402551,"y":0.529947100738186},{"x":0.10859280036402551,"y":0.5420954136419204},{"x":0.08221300390625766,"y":0.5420954136419204}]}}},{"id":"116","text":"Amount","bounding_box":{"left":0.11165430485196923,"top":0.529947100738186,"width":0.05153741601442163,"height":0.012148312903734415,"polygon":{"coordinates":[{"x":0.11165430485196923,"y":0.529947100738186},{"x":0.16319172086639086,"y":0.529947100738186},{"x":0.16319172086639086,"y":0.5420954136419204},{"x":0.11227144832503147,"y":0.5420954136419204}]}}},{"id":"117","text":"Specification","bounding_box":{"left":0.16687036161474345,"top":0.529947100738186,"width":0.0822129966936043,"height":0.012584955727863112,"polygon":{"coordinates":[{"x":0.16687036161474345,"y":0.529947100738186},{"x":0.24908335830834774,"y":0.529947100738186},{"x":0.24908335830834774,"y":0.5425320564660491},{"x":0.16687036161474345,"y":0.5420954136419204}]}}},{"id":"118","text":"Inv.","bounding_box":{"left":0.4503079629885866,"top":0.5438333712851171,"width":0.025157619556653743,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.4503079629885866,"y":0.5438333712851171},{"x":0.47546558254524035,"y":0.5438333712851171},{"x":0.47546558254524035,"y":0.5538157381978457},{"x":0.4503079629885866,"y":0.5538157381978457}]}}},{"id":"119","text":"Disc.","bounding_box":{"left":0.47852709424583745,"top":0.5438333712851171,"width":0.030058444418773866,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.47852709424583745,"y":0.5438333712851171},{"x":0.5085855386646113,"y":0.5438333712851171},{"x":0.5085855386646113,"y":0.554252340198973},{"x":0.47852709424583745,"y":0.5538157381978457}]}}},{"id":"120","text":"Base","bounding_box":{"left":0.5116591676228721,"top":0.5438333712851171,"width":0.029441300945711624,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5116591676228721,"y":0.5438333712851171},{"x":0.5411004685685837,"y":0.5438333712851171},{"x":0.5404954135025718,"y":0.554252340198973},{"x":0.5116591676228721,"y":0.554252340198973}]}}},{"id":"121","text":"Invoice","bounding_box":{"left":0.5668752027476862,"top":0.5433967284609884,"width":0.04722955059860989,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.5668752027476862,"y":0.5433967284609884},{"x":0.6134996982802842,"y":0.5438333712851171},{"x":0.6141047533462961,"y":0.554252340198973},{"x":0.5668752027476862,"y":0.5538157381978457}]}}},{"id":"122","text":"Discount","bounding_box":{"left":0.6177954969270057,"top":0.5433967284609884,"width":0.057055377136950525,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.6177954969270057,"y":0.5438333712851171},{"x":0.6748508740639563,"y":0.5433967284609884},{"x":0.6748508740639563,"y":0.554252340198973},{"x":0.6177954969270057,"y":0.554252340198973}]}}},{"id":"123","text":"VAT","bounding_box":{"left":0.08159586043319543,"top":0.5559902570191682,"width":0.025762652984705592,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5559902570191682},{"x":0.10735851341790102,"y":0.5559902570191682},{"x":0.10735851341790102,"y":0.5664006939257088},{"x":0.08221300390625766,"y":0.5664006939257088}]}}},{"id":"124","text":"Identifier","bounding_box":{"left":0.1104321207382018,"top":0.5559902570191682,"width":0.061956223637030655,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.1104321207382018,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5668372959268361},{"x":0.1104321207382018,"y":0.5664006939257088}]}}},{"id":"125","text":"VAT","bounding_box":{"left":0.24600975820070034,"top":0.5555536550180409,"width":0.026379789245114443,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.24600975820070034,"y":0.5555536550180409},{"x":0.2723895474458148,"y":0.5555536550180409},{"x":0.2723895474458148,"y":0.5659726239318967},{"x":0.24600975820070034,"y":0.5659726239318967}]}}},{"id":"126","text":"%","bounding_box":{"left":0.28098114473925795,"top":0.5555536550180409,"width":0.006135111808244553,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.28098114473925795,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5659726239318967},{"x":0.28098114473925795,"y":0.5659726239318967}]}}},{"id":"127","text":"Line","bounding_box":{"left":0.33435786670254913,"top":0.5559902570191682,"width":0.02637981809572798,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.33435786670254913,"y":0.5559902570191682},{"x":0.3607376847982771,"y":0.5564183270129802},{"x":0.3607376847982771,"y":0.5664006939257088},{"x":0.33435786670254913,"y":0.5659726239318967}]}}},{"id":"128","text":"Amount","bounding_box":{"left":0.36441631112132294,"top":0.5564183270129802,"width":0.052759607340842396,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.36441631112132294,"y":0.5564183270129802},{"x":0.41717591846216534,"y":0.5564183270129802},{"x":0.41717591846216534,"y":0.5668372959268361},{"x":0.36441631112132294,"y":0.5664006939257088}]}}},{"id":"129","text":"Amount","bounding_box":{"left":0.49385885841353705,"top":0.5568549290141074,"width":0.05153740880176827,"height":0.009117694917789354,"polygon":{"coordinates":[{"x":0.49385885841353705,"y":0.5568549290141074},{"x":0.5453962672153053,"y":0.5568549290141074},{"x":0.5453962672153053,"y":0.5659726239318967},{"x":0.49385885841353705,"y":0.5659726239318967}]}}},{"id":"130","text":"Amount","bounding_box":{"left":0.6251528072743244,"top":0.5564183270129802,"width":0.05153740880176827,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.6251528072743244,"y":0.5568549290141074},{"x":0.6766902160760927,"y":0.5564183270129802},{"x":0.6766902160760927,"y":0.5664006939257088},{"x":0.6257699218967732,"y":0.5659726239318967}]}}},{"id":"131","text":"VAT","bounding_box":{"left":0.7417200181828106,"top":0.5559902570191682,"width":0.027602016634802107,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.7417200181828106,"y":0.5559902570191682},{"x":0.768704862493937,"y":0.5564183270129802},{"x":0.7693220348176127,"y":0.5664006939257088},{"x":0.7423250732488226,"y":0.5664006939257088}]}}},{"id":"132","text":"Base","bounding_box":{"left":0.7723956060746467,"top":0.5559902570191682,"width":0.029441300945711513,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.7723956060746467,"y":0.5564183270129802},{"x":0.8018369070203583,"y":0.5559902570191682},{"x":0.8018369070203583,"y":0.5664006939257088},{"x":0.7730006611406586,"y":0.5664006939257088}]}}},{"id":"133","text":"VAT","bounding_box":{"left":0.8527572011996778,"top":0.5559902570191682,"width":0.02699690386756315,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.8527572011996778,"y":0.5559902570191682},{"x":0.8797541050672409,"y":0.5564183270129802},{"x":0.8797541050672409,"y":0.5664006939257088},{"x":0.8533743158221265,"y":0.5664006939257088}]}}},{"id":"134","text":"Amount","bounding_box":{"left":0.8840499037139625,"top":0.5564183270129802,"width":0.05275963619145596,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.8840499037139625,"y":0.5564183270129802},{"x":0.9368095399054185,"y":0.5568549290141074},{"x":0.9361923675817427,"y":0.5664006939257088},{"x":0.8846670760376383,"y":0.5664006939257088}]}}},{"id":"135","text":"NON","bounding_box":{"left":0.08159586043319543,"top":0.5802955373029566,"width":0.026996939930830077,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5807235664737671},{"x":0.10859280036402551,"y":0.5802955373029566},{"x":0.10859280036402551,"y":0.5902779042156853},{"x":0.08159586043319543,"y":0.5902779042156853}]}}},{"id":"136","text":"GST","bounding_box":{"left":0.11595009628603745,"top":0.5802955373029566,"width":0.024540476083591528,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.11595009628603745,"y":0.5802955373029566},{"x":0.13987342889656673,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5907059333864958},{"x":0.11595009628603745,"y":0.5907059333864958}]}}},{"id":"137","text":"0","bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.006740166874256492,"height":0.008253022922850128,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.28649911307444026,"y":0.5807235664737671},{"x":0.28649911307444026,"y":0.5889765893966172},{"x":0.27975894620018377,"y":0.5889765893966172}]}}},{"id":"138","text":"800.00","bounding_box":{"left":0.37668656358842545,"top":0.5807235664737671,"width":0.038650041712216976,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.37668656358842545,"y":0.5807235664737671},{"x":0.4153366053006424,"y":0.5811602092978958},{"x":0.4153366053006424,"y":0.5902779042156853},{"x":0.3773037070614877,"y":0.5902779042156853}]}}},{"id":"139","text":"0.00","bounding_box":{"left":0.5196335925926396,"top":0.5807235664737671,"width":0.02514550229898993,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.5196335925926396,"y":0.5807235664737671},{"x":0.5447790948916296,"y":0.5807235664737671},{"x":0.5447790948916296,"y":0.5902779042156853},{"x":0.5196335925926396,"y":0.5898412613915565}]}}},{"id":"140","text":"0.00","bounding_box":{"left":0.651532596519439,"top":0.5802955373029566,"width":0.02454044723297799,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.651532596519439,"y":0.5898412613915565},{"x":0.6521497111418877,"y":0.5802955373029566},{"x":0.676073043752417,"y":0.5807235664737671},{"x":0.676073043752417,"y":0.5902779042156853}]}}},{"id":"141","text":"800.00","bounding_box":{"left":0.7619647244702941,"top":0.5807235664737671,"width":0.039267185185279274,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.7619647244702941,"y":0.5807235664737671},{"x":0.8012319096555733,"y":0.5807235664737671},{"x":0.8012319096555733,"y":0.5902779042156853},{"x":0.7625697218350791,"y":0.5902779042156853}]}}},{"id":"142","text":"0.00","bounding_box":{"left":0.9098125783366283,"top":0.5802955373029566,"width":0.026379789245114416,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.9098125783366283,"y":0.5802955373029566},{"x":0.9361923675817427,"y":0.5802955373029566},{"x":0.9355873125157308,"y":0.5902779042156853},{"x":0.9098125783366283,"y":0.5898412613915565}]}}},{"id":"143","text":"Total","bounding_box":{"left":0.2552184989672057,"top":0.6076400084030066,"width":0.032514901053359024,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.2552184989672057,"y":0.6076400084030066},{"x":0.28773340002056474,"y":0.6076400084030066},{"x":0.28773340002056474,"y":0.6171857324916066},{"x":0.2552184989672057,"y":0.6171857324916066}]}}},{"id":"144","text":"800.00","bounding_box":{"left":0.37362505188782835,"top":0.6076400084030066,"width":0.04171155341281407,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.37362505188782835,"y":0.6076400084030066},{"x":0.4153366053006424,"y":0.6080680783968186},{"x":0.4153366053006424,"y":0.6171857324916066},{"x":0.3742301069538403,"y":0.6171857324916066}]}}},{"id":"145","text":"0.00","bounding_box":{"left":0.5177942505805032,"top":0.6076400084030066,"width":0.027602016634802107,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.5177942505805032,"y":0.6171857324916066},{"x":0.5183993056465152,"y":0.6076400084030066},{"x":0.5453962672153053,"y":0.6076400084030066},{"x":0.5447790948916296,"y":0.6171857324916066}]}}},{"id":"146","text":"0.00","bounding_box":{"left":0.6490761398848537,"top":0.6076400084030066,"width":0.027614076191239012,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.6490761398848537,"y":0.6171857324916066},{"x":0.6496932545073025,"y":0.6076400084030066},{"x":0.6766902160760927,"y":0.6076400084030066},{"x":0.676073043752417,"y":0.6171857324916066}]}}},{"id":"147","text":"800.00","bounding_box":{"left":0.7595082678357089,"top":0.6076400084030066,"width":0.04110646949618868,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7595082678357089,"y":0.6076400084030066},{"x":0.8006147373318976,"y":0.6076400084030066},{"x":0.8006147373318976,"y":0.6176223753157353},{"x":0.7595082678357089,"y":0.6171857324916066}]}}},{"id":"148","text":"0.00","bounding_box":{"left":0.9085904086481675,"top":0.6076400084030066,"width":0.026379789245114527,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9085904086481675,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6171857324916066},{"x":0.9085904086481675,"y":0.6171857324916066}]}}},{"id":"149","text":"Ship-to","bounding_box":{"left":0.08221300390625766,"top":0.651036736863995,"width":0.04662447389463781,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.651036736863995},{"x":0.12822033432783322,"y":0.651036736863995},{"x":0.12883747780089547,"y":0.6623204185957916},{"x":0.08281804454696286,"y":0.6618923486019795}]}}},{"id":"150","text":"Address","bounding_box":{"left":0.1325161329745548,"top":0.651036736863995,"width":0.05153740880176824,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.1325161329745548,"y":0.651036736863995},{"x":0.18405354177632305,"y":0.651036736863995},{"x":0.18405354177632305,"y":0.6618923486019795},{"x":0.1325161329745548,"y":0.6623204185957916}]}}},{"id":"151","text":"CRONUS","bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.052759585702882306,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.13435544613607772,"y":0.6644949782401155},{"x":0.13497258960913996,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6749139471539713}]}}},{"id":"152","text":"International","bounding_box":{"left":0.13742906066903188,"top":0.6644949782401155,"width":0.0754486385799405,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.13742906066903188,"y":0.6644949782401155},{"x":0.21287769924897237,"y":0.6644949782401155},{"x":0.21287769924897237,"y":0.6753420171477834},{"x":0.13803410130973706,"y":0.6753420171477834}]}}},{"id":"153","text":"Ltd.","bounding_box":{"left":0.21595131378192653,"top":0.6644949782401155,"width":0.023306189137467043,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.21595131378192653,"y":0.6644949782401155},{"x":0.23925750291939357,"y":0.6644949782401155},{"x":0.23925750291939357,"y":0.6753420171477834},{"x":0.21595131378192653,"y":0.6753420171477834}]}}},{"id":"154","text":"5","bounding_box":{"left":0.08159586043319543,"top":0.6788178507881738,"width":0.008591582868136424,"height":0.010847079730669451,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6788178507881738},{"x":0.08957029982826961,"y":0.6788178507881738},{"x":0.09018744330133185,"y":0.6896649305188433},{"x":0.08221300390625766,"y":0.6896649305188433}]}}},{"id":"155","text":"The","bounding_box":{"left":0.09386609126233782,"top":0.6788178507881738,"width":0.021466868763290764,"height":0.010847079730669451,"polygon":{"coordinates":[{"x":0.09386609126233782,"y":0.6788178507881738},{"x":0.11472791217227002,"y":0.6788178507881738},{"x":0.11533296002562858,"y":0.6896649305188433},{"x":0.09448323473540006,"y":0.6896649305188433}]}}},{"id":"156","text":"Ring","bounding_box":{"left":0.11778942387286712,"top":0.6788178507881738,"width":0.027614076191238957,"height":0.011283640908795078,"polygon":{"coordinates":[{"x":0.11778942387286712,"y":0.6788178507881738},{"x":0.14540350006410607,"y":0.6792544936123025},{"x":0.14540350006410607,"y":0.6901014916969689},{"x":0.11840656734592936,"y":0.6896649305188433}]}}},{"id":"157","text":"Westminster","bounding_box":{"left":0.08221300390625766,"top":0.6927041213351048,"width":0.07606577484034938,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6927041213351048},{"x":0.15767373810590182,"y":0.6931407641592335},{"x":0.15827877874660704,"y":0.7026864882478335},{"x":0.08221300390625766,"y":0.7026864882478335}]}}},{"id":"158","text":"CANBERRA","bounding_box":{"left":0.08159586043319543,"top":0.7057257607100982,"width":0.0662520078584455,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.7057257607100982},{"x":0.14724282765093574,"y":0.7057257607100982},{"x":0.14784786829164093,"y":0.7157081276228269},{"x":0.08221300390625766,"y":0.7161446888009525}]}}},{"id":"159","text":"NSW","bounding_box":{"left":0.15092148282459508,"top":0.7057257607100982,"width":0.02637978924511447,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.15092148282459508,"y":0.7057257607100982},{"x":0.17668414302195404,"y":0.7057257607100982},{"x":0.17730127206970955,"y":0.7161446888009525},{"x":0.15153862629765733,"y":0.7157081276228269}]}}},{"id":"160","text":"2600","bounding_box":{"left":0.18589286936315272,"top":0.7057257607100982,"width":0.028836260305006384,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.18589286936315272,"y":0.7057257607100982},{"x":0.2147291296681591,"y":0.7057257607100982},{"x":0.2147291296681591,"y":0.7161446888009525},{"x":0.1864979100038579,"y":0.7161446888009525}]}}},{"id":"161","text":"Australia","bounding_box":{"left":0.08281804454696286,"top":0.720048592435155,"width":0.051537401589114865,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.08281804454696286,"y":0.7204852352592837},{"x":0.13435544613607772,"y":0.720048592435155},{"x":0.13435544613607772,"y":0.7300309593478835},{"x":0.08281804454696286,"y":0.7295943981697579}]}}}],"selection_marks":[]}],"error":null}},"error":null} \ No newline at end of file diff --git a/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108224.json b/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108224.json deleted file mode 100644 index 449f98139b..0000000000 --- a/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108224.json +++ /dev/null @@ -1 +0,0 @@ -{"outputs":{"1":{"page_count":1,"result":{"context":{"start_page":1,"end_page":1},"fields":{"amountDue":null,"billingAddress":null,"billingAddressRecipient":null,"customerAddress":{"value_text":"5 The Ring Westminster CANBERRA NSW 2600 Australia","value_number":null,"value_date":null,"confidence":0.865,"location":{"bounding_box":{"left":0.7997192719905435,"top":0.10790541914731037,"width":0.1336899346095075,"height":0.053421908496548445,"polygon":{"coordinates":[{"x":0.7997192719905435,"y":0.1605568139018976},{"x":0.8003243270565554,"y":0.10790541914731037},{"x":0.933409206600051,"y":0.10866736005895494},{"x":0.9328041515340391,"y":0.16132732764385882}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerAddressRecipient":null,"customerId":{"value_text":"99-99-888","value_number":null,"value_date":null,"confidence":0.756,"location":{"bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerName":{"value_text":"CRONUS International Ltd.","value_number":null,"value_date":null,"confidence":0.93,"location":{"bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.1595009556477211,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}},"page":1},"currency_symbol":null,"currency_code":null},"dueDate":{"value_text":"07/31/25","value_number":null,"value_date":"2025-07-31","confidence":0.975,"location":{"bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceDate":{"value_text":"June 4, 2025","value_number":null,"value_date":"2025-06-04","confidence":0.905,"location":{"bounding_box":{"left":0.2348164991350009,"top":0.22916630776444508,"width":0.07452898199917901,"height":0.010984020489227753,"polygon":{"coordinates":[{"x":0.2348164991350009,"y":0.2395852970898017},{"x":0.23497380710502905,"y":0.22916630776444508},{"x":0.3093454811341799,"y":0.2297313389283162},{"x":0.30918815873884503,"y":0.24015032825367283}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceId":{"value_text":"108224","value_number":null,"value_date":null,"confidence":0.975,"location":{"bounding_box":{"left":0.2374181753325639,"top":0.24262452872906484,"width":0.042340770867619865,"height":0.009545724088599966,"polygon":{"coordinates":[{"x":0.2374181753325639,"y":0.24262452872906484},{"x":0.2791418027271215,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2517336304050368}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceTotal":{"value_text":"AUD 2,800.00","value_number":2800,"value_date":null,"confidence":0.442,"location":{"bounding_box":{"left":0.8061327056670798,"top":0.47048096925562605,"width":0.12638103559161706,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.8061327056670798,"y":0.47048096925562605},{"x":0.9325137412586969,"y":0.47048096925562605},{"x":0.9325137412586969,"y":0.48133658099361065},{"x":0.8061327056670798,"y":0.48133658099361065}]}},"page":1},"currency_symbol":"AUD","currency_code":"AUD"},"previousUnpaidBalance":null,"purchaseOrder":null,"remittanceAddress":null,"remittanceAddressRecipient":null,"serviceAddress":null,"serviceAddressRecipient":null,"serviceEndDate":null,"serviceStartDate":null,"shippingAddress":{"value_text":"5 The Ring Westminster CANBERRA NSW 2600 Australia","value_number":null,"value_date":null,"confidence":0.886,"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6788178507881738,"width":0.13313326923496366,"height":0.05121310855970973,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6788178507881738},{"x":0.2147291296681591,"y":0.6788178507881738},{"x":0.2147291296681591,"y":0.7300309593478835},{"x":0.08159586043319543,"y":0.7300309593478835}]}},"page":1},"currency_symbol":null,"currency_code":null},"shippingAddressRecipient":{"value_text":"CRONUS International Ltd.","value_number":null,"value_date":null,"confidence":0.93,"location":{"bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.1595009556477211,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}},"page":1},"currency_symbol":null,"currency_code":null},"subTotal":{"value_text":"2,800.00","value_number":2800,"value_date":null,"confidence":0.645,"location":{"bounding_box":{"left":0.36257699795980003,"top":0.6076400084030066,"width":0.05398177702930307,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.36257699795980003,"y":0.6080680783968186},{"x":0.41595374877370467,"y":0.6076400084030066},{"x":0.4165587749891031,"y":0.6176223753157353},{"x":0.36257699795980003,"y":0.6176223753157353}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"totalTax":{"value_text":"0.00","value_number":0,"value_date":null,"confidence":0.968,"location":{"bounding_box":{"left":0.9085904086481675,"top":0.6076400084030066,"width":0.026379789245114527,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9085904086481675,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6171857324916066},{"x":0.9085904086481675,"y":0.6171857324916066}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"vendorAddress":{"value_text":"Evan McIntosh Allan Turing Road, 20 Surrey ALBERTON QLD 4207 Australia","value_number":null,"value_date":null,"confidence":0.819,"location":{"bounding_box":{"left":0.08037367631942799,"top":0.07551837863774787,"width":0.12882538218119177,"height":0.06467133973007995,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.07551837863774787},{"x":0.20919905850061976,"y":0.07551837863774787},{"x":0.20919905850061976,"y":0.14018971836782781},{"x":0.08037367631942799,"y":0.14018971836782781}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorAddressRecipient":{"value_text":"First Up Consultants","value_number":null,"value_date":null,"confidence":0.927,"location":{"bounding_box":{"left":0.08097871696013319,"top":0.06119548567818885,"width":0.11902370360633822,"height":0.01130079167230364,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.06119548567818885},{"x":0.2000024205664714,"y":0.06121260582444624},{"x":0.2000024205664714,"y":0.0724962773504925},{"x":0.08097871696013319,"y":0.07247915210135993}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorName":{"value_text":"First Up Consultants","value_number":null,"value_date":null,"confidence":0.927,"location":{"bounding_box":{"left":0.08097871696013319,"top":0.06119548567818885,"width":0.11902370360633822,"height":0.01130079167230364,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.06119548567818885},{"x":0.2000024205664714,"y":0.06121260582444624},{"x":0.2000024205664714,"y":0.0724962773504925},{"x":0.08097871696013319,"y":0.07247915210135993}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerTaxId":{"value_text":"53001003000","value_number":null,"value_date":null,"confidence":0.553,"location":{"bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorTaxId":{"value_text":"274863274B01","value_number":null,"value_date":null,"confidence":0.964,"location":{"bounding_box":{"left":0.23619599121879647,"top":0.20052052184532704,"width":0.08650879534032585,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.21093951117068366},{"x":0.23619599121879647,"y":0.2105028887580557}]}},"page":1},"currency_symbol":null,"currency_code":null},"paymentTerms":{"value_text":"End of Next Month","value_number":null,"value_date":null,"confidence":0.918,"location":{"bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.11227144111237808,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}},"page":1},"currency_symbol":null,"currency_code":null}},"items":[{"fields":{"amount":{"value_text":"2,800.00","value_number":2800,"value_date":null,"confidence":0.956,"location":{"bounding_box":{"left":0.8834327890915138,"top":0.4296868296097721,"width":0.050303121855643784,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8834327890915138,"y":0.4296868296097721},{"x":0.9331308558811456,"y":0.4296868296097721},{"x":0.9337359109471576,"y":0.44053386851744003},{"x":0.8834327890915138,"y":0.44010579852362797}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"description":{"value_text":"IT Support Support period: May","value_number":null,"value_date":null,"confidence":0.949,"location":{"bounding_box":{"left":0.17581288334531403,"top":0.4296868296097721,"width":0.12383983027991902,"height":0.025820589276760952,"polygon":{"coordinates":[{"x":0.17581288334531403,"y":0.45484820905818313},{"x":0.17607910238124885,"y":0.4296868296097721},{"x":0.29965271362523305,"y":0.43033746660780536},{"x":0.299386509014605,"y":0.45550741888653307}]}},"page":1},"currency_symbol":null,"currency_code":null},"unitPrice":{"value_text":"200.00","value_number":200,"value_date":null,"confidence":0.954,"location":{"bounding_box":{"left":0.5331260435988163,"top":0.43012343161089933,"width":0.03865001286160341,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5331260435988163,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.44010579852362797},{"x":0.5337431582212651,"y":0.4396691965225008}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"quantity":{"value_text":"14","value_number":14,"value_date":null,"confidence":0.956,"location":{"bounding_box":{"left":0.41104080665392084,"top":0.4296868296097721,"width":0.012887367089551294,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.41104080665392084,"y":0.4296868296097721},{"x":0.42392817374347214,"y":0.4296868296097721},{"x":0.42392817374347214,"y":0.4388045245275615},{"x":0.41104080665392084,"y":0.4388045245275615}]}},"page":1},"currency_symbol":null,"currency_code":null},"productCode":null,"unit":null,"date":null,"tax":null},"row_text":"IT Support 14 200.00 No NON GST 2,800.00 Support period: May","confidence":0.824,"location":{"bounding_box":{"left":0.17586128024943548,"top":0.42643356297360296,"width":0.7579714533565785,"height":0.03171069522632963,"polygon":{"coordinates":[{"x":0.17586128024943548,"y":0.45489956439408014},{"x":0.17610329362065621,"y":0.42643356297360296},{"x":0.9338327336060139,"y":0.4296782567794554},{"x":0.933590676958873,"y":0.4581442581999326}]}},"page":1}}],"key_value_pairs":[{"key":"Pay-to Vendor No.","value":"20000","confidence":0.875,"key_location":{"bounding_box":{"left":0.08037367631942799,"top":0.18619762888576802,"width":0.11165430485196923,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.1974812902060639},{"x":0.08037367631942799,"y":0.1974812902060639}]}},"page":1},"value_location":{"bounding_box":{"left":0.23619599121879647,"top":0.18619762888576802,"width":0.03619355622701831,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.19617999579849668},{"x":0.23619599121879647,"y":0.19617999579849668}]}},"page":1}},{"key":"Phone No.","value":"0666-666-6666","confidence":0.897,"key_location":{"bounding_box":{"left":0.6666707442200392,"top":0.17949420627715698,"width":0.06358981028644384,"height":0.011043948655441393,"polygon":{"coordinates":[{"x":0.6666707442200392,"y":0.18991319560251363},{"x":0.6668764490941889,"y":0.17949420627715698},{"x":0.7302605545064831,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19053815493259837}]}},"page":1},"value_location":{"bounding_box":{"left":0.8423262618940982,"top":0.17969111602493043,"width":0.0901874793645987,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8423262618940982,"y":0.18011916560724173},{"x":0.9325137412586969,"y":0.17969111602493043},{"x":0.9325137412586969,"y":0.18967348293765912},{"x":0.8423262618940982,"y":0.18967348293765912}]}},"page":1}},{"key":"VAT Registration No.","value":"274863274B01","confidence":0.875,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.20008389943269908,"width":0.12454168636682723,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.2118041831656229},{"x":0.08097871696013319,"y":0.2118041831656229}]}},"page":1},"value_location":{"bounding_box":{"left":0.23619599121879647,"top":0.20052052184532704,"width":0.08650879534032585,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.21093951117068366},{"x":0.23619599121879647,"y":0.2105028887580557}]}},"page":1}},{"key":"Document Date","value":"June 4, 2025","confidence":0.862,"key_location":{"bounding_box":{"left":0.08030107375059245,"top":0.22872968535181712,"width":0.09399920078030524,"height":0.011180930237001202,"polygon":{"coordinates":[{"x":0.08030107375059245,"y":0.2395852970898017},{"x":0.08037367631942799,"y":0.22872968535181712},{"x":0.1743002745308977,"y":0.22905500385083374},{"x":0.17422767196206213,"y":0.23991061558881832}]}},"page":1},"value_location":{"bounding_box":{"left":0.2348164991350009,"top":0.22916630776444508,"width":0.07452898199917901,"height":0.010984020489227753,"polygon":{"coordinates":[{"x":0.2348164991350009,"y":0.2395852970898017},{"x":0.23497380710502905,"y":0.22916630776444508},{"x":0.3093454811341799,"y":0.2297313389283162},{"x":0.30918815873884503,"y":0.24015032825367283}]}},"page":1}},{"key":"VAT Registration No.","value":"777777777","confidence":0.281,"key_location":{"bounding_box":{"left":0.6674814464589738,"top":0.21962056326434437,"width":0.1239245789570319,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.23090422458464024},{"x":0.6674814464589738,"y":0.23090422458464024}]}},"page":1},"value_location":{"bounding_box":{"left":0.8687060511392126,"top":0.2200486332581564,"width":0.06442480474193302,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8687060511392126,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22048525567078436},{"x":0.9331308558811456,"y":0.22960293017707303},{"x":0.8687060511392126,"y":0.22916630776444508}]}},"page":1}},{"key":"Invoice No.","value":"108224","confidence":0.896,"key_location":{"bounding_box":{"left":0.08016796423262504,"top":0.24218790631643689,"width":0.06787352052611517,"height":0.01106962632338987,"polygon":{"coordinates":[{"x":0.08016796423262504,"y":0.25260687523029274},{"x":0.08037367631942799,"y":0.24218790631643689},{"x":0.1480414847587402,"y":0.2428385433144701},{"x":0.14783576545928387,"y":0.25325753263982675}]}},"page":1},"value_location":{"bounding_box":{"left":0.2374181753325639,"top":0.24262452872906484,"width":0.042340770867619865,"height":0.009545724088599966,"polygon":{"coordinates":[{"x":0.2374181753325639,"y":0.24262452872906484},{"x":0.2791418027271215,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2517336304050368}]}},"page":1}},{"key":"Giro No.","value":"888-9999","confidence":0.611,"key_location":{"bounding_box":{"left":0.666864331836525,"top":0.23413181355286092,"width":0.051718936861817166,"height":0.010478897080069521,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.23459411363343738},{"x":0.7184017406382933,"y":0.23413181355286092},{"x":0.7185832686983422,"y":0.24414841055235398},{"x":0.6670458598965741,"y":0.24461071063293044}]}},"page":1},"value_location":{"bounding_box":{"left":0.8779148207563315,"top":0.23437152621771543,"width":0.0552160351248141,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8779148207563315,"y":0.23480814863034338},{"x":0.9325137412586969,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.24392582313663205},{"x":0.8779148207563315,"y":0.2434892007240041}]}},"page":1}},{"key":"Bank","value":"World Wide Bank","confidence":0.875,"key_location":{"bounding_box":{"left":0.6674814464589738,"top":0.24869441917727445,"width":0.02821913125725084,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.2578120936835631},{"x":0.6674814464589738,"y":0.2578120936835631}]}},"page":1},"value_location":{"bounding_box":{"left":0.8294509832115972,"top":0.2482663491834624,"width":0.10367987266954848,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.8294509832115972,"y":0.2482663491834624},{"x":0.9331308558811456,"y":0.2482663491834624},{"x":0.9331308558811456,"y":0.2586767860900031},{"x":0.8294509832115972,"y":0.2586767860900031}]}},"page":1}},{"key":"Posting Date","value":"06/04/25","confidence":0.897,"key_location":{"bounding_box":{"left":0.07975653284636575,"top":0.269523824997671,"width":0.0791393893733035,"height":0.01172885656324052,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269523824997671},{"x":0.15889592221966925,"y":0.26953237741648695},{"x":0.15889592221966925,"y":0.28125268156091154},{"x":0.07975653284636575,"y":0.2812441087305949}]}},"page":1},"value_location":{"bounding_box":{"left":0.23497380710502905,"top":0.269960447410299,"width":0.05459890607705861,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.269960447410299},{"x":0.28957271318208766,"y":0.269960447410299},{"x":0.28957271318208766,"y":0.2799428143230277},{"x":0.23497380710502905,"y":0.2799428143230277}]}},"page":1}},{"key":"Account No.","value":"99-99-888","confidence":0.888,"key_location":{"bounding_box":{"left":0.6664892161599902,"top":0.2623752071461154,"width":0.07461368740037166,"height":0.011677501227343567,"polygon":{"coordinates":[{"x":0.6664892161599902,"y":0.27253735855748495},{"x":0.6669127431659533,"y":0.2623752071461154},{"x":0.7411029035603619,"y":0.2638905569620894},{"x":0.7406914361108358,"y":0.27405270837345896}]}},"page":1},"value_location":{"bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}},"page":1}},{"key":"Due Date","value":"07/31/25","confidence":0.897,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.28341864796341804,"width":0.05583320023583645,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.29296439246351874},{"x":0.08097871696013319,"y":0.29296439246351874}]}},"page":1},"value_location":{"bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}},"page":1}},{"key":"Payment Terms","value":"End of Next Month","confidence":0.855,"key_location":{"bounding_box":{"left":0.08088190872658355,"top":0.3090851508209873,"width":0.09282542799596599,"height":0.012037049813124534,"polygon":{"coordinates":[{"x":0.08088190872658355,"y":0.3207455063876975},{"x":0.08097871696013319,"y":0.3090851508209873},{"x":0.17370733672254954,"y":0.30946184506740165},{"x":0.17361052848899988,"y":0.32112220063411184}]}},"page":1},"value_location":{"bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.11227144111237808,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}},"page":1}},{"key":"ABN","value":"53001003000","confidence":0.923,"key_location":{"bounding_box":{"left":0.6680986187826495,"top":0.30338338178887536,"width":0.022701162922068585,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.6680986187826495,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.312501056295164},{"x":0.6680986187826495,"y":0.312501056295164}]}},"page":1},"value_location":{"bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}},"page":1}},{"key":"Unit of Measure","value":"14","confidence":0.875,"key_location":{"bounding_box":{"left":0.43925993791117174,"top":0.39235999159699336,"width":0.0552160351248141,"height":0.023003924641718965,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.39235999159699336},{"x":0.49447597303598584,"y":0.39235999159699336},{"x":0.49447597303598584,"y":0.4153639162387123},{"x":0.43925993791117174,"y":0.4153639162387123}]}},"page":1},"value_location":{"bounding_box":{"left":0.41104080665392084,"top":0.4296868296097721,"width":0.012887367089551294,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.41104080665392084,"y":0.4296868296097721},{"x":0.42392817374347214,"y":0.4296868296097721},{"x":0.42392817374347214,"y":0.4388045245275615},{"x":0.41104080665392084,"y":0.4388045245275615}]}},"page":1}},{"key":"Unit Cost","value":"200.00","confidence":0.897,"key_location":{"bounding_box":{"left":0.5447790948916296,"top":0.39235999159699336,"width":0.029453418203375437,"height":0.022567322640591747,"polygon":{"coordinates":[{"x":0.5447790948916296,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.4149273142375851},{"x":0.5447790948916296,"y":0.4149273142375851}]}},"page":1},"value_location":{"bounding_box":{"left":0.5331260435988163,"top":0.43012343161089933,"width":0.03865001286160341,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5331260435988163,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.44010579852362797},{"x":0.5337431582212651,"y":0.4396691965225008}]}},"page":1}},{"key":"Invoice","value":"No","confidence":0.916,"key_location":{"bounding_box":{"left":0.6785295003870021,"top":0.3927965935981206,"width":0.04539020858647347,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.3927965935981206},{"x":0.7239197089734756,"y":0.39322466359193264},{"x":0.7239197089734756,"y":0.40277896051084927},{"x":0.6785295003870021,"y":0.40277896051084927}]}},"page":1},"value_location":{"bounding_box":{"left":0.6785295003870021,"top":0.43055150160471134,"width":0.01778824965289827,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43923255369837205},{"x":0.6785295003870021,"y":0.4388045245275615}]}},"page":1}},{"key":"VAT Identifier","value":"NON GST","confidence":0.874,"key_location":{"bounding_box":{"left":0.7729280729971298,"top":0.3922572401021979,"width":0.06098811966357409,"height":0.0235433189606431,"polygon":{"coordinates":[{"x":0.7729280729971298,"y":0.41557795123561836},{"x":0.773097483799515,"y":0.3922572401021979},{"x":0.8339161926607039,"y":0.39247984792942064},{"x":0.8337467818583187,"y":0.415800559062841}]}},"page":1},"value_location":{"bounding_box":{"left":0.7736177757631074,"top":0.4292501867856434,"width":0.060129006095211324,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.7736177757631074,"y":0.4292501867856434},{"x":0.8337467818583187,"y":0.4292501867856434},{"x":0.8337467818583187,"y":0.44010579852362797},{"x":0.7736177757631074,"y":0.44010579852362797}]}},"page":1}},{"key":"No.","value":"IT Support","confidence":0.494,"key_location":{"bounding_box":{"left":0.08221300390625766,"top":0.4053815493259837,"width":0.022689045664404828,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4149273142375851},{"x":0.08221300390625766,"y":0.4149273142375851}]}},"page":1},"value_location":{"bounding_box":{"left":0.17420346629734804,"top":0.4296868296097721,"width":0.05084766275987046,"height":0.026907869098922843,"polygon":{"coordinates":[{"x":0.17420346629734804,"y":0.454762603224021},{"x":0.17607910238124885,"y":0.4296868296097721},{"x":0.2250511290572185,"y":0.43151892509444606},{"x":0.22317550739862443,"y":0.45659469870869496}]}},"page":1}},{"key":"Description","value":"Support","confidence":0.922,"key_location":{"bounding_box":{"left":0.17607910238124885,"top":0.4049449473248565,"width":0.07238711245403665,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4053815493259837},{"x":0.2484662148352855,"y":0.4049449473248565},{"x":0.2484662148352855,"y":0.4166652310577803},{"x":0.17668414302195404,"y":0.4153639162387123}]}},"page":1},"value_location":{"bounding_box":{"left":0.19079369422527276,"top":0.43012343161089933,"width":0.048463808694120813,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.19079369422527276,"y":0.43012343161089933},{"x":0.23925750291939357,"y":0.4309881444288401},{"x":0.23925750291939357,"y":0.44140711334269594},{"x":0.19079369422527276,"y":0.4409705113415687}]}},"page":1}},{"key":"Quantity","value":null,"confidence":0.298,"key_location":{"bounding_box":{"left":0.3570590296246177,"top":0.4049449473248565,"width":0.05643823366388828,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.3570590296246177,"y":0.4049449473248565},{"x":0.413497263288506,"y":0.4053815493259837},{"x":0.413497263288506,"y":0.4166652310577803},{"x":0.3576640558400162,"y":0.4162286290566531}]}},"page":1},"value_location":null},{"key":"Discount %","value":null,"confidence":0.625,"key_location":{"bounding_box":{"left":0.5914157076818913,"top":0.4049449473248565,"width":0.07360928214249729,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5914157076818913,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4153639162387123},{"x":0.5914157076818913,"y":0.4153639162387123}]}},"page":1},"value_location":null},{"key":"Discount","value":null,"confidence":0.272,"key_location":{"bounding_box":{"left":0.679134555453014,"top":0.4053815493259837,"width":0.057055377136950525,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.679134555453014,"y":0.4058181921501124},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4153639162387123},{"x":0.679134555453014,"y":0.4149273142375851}]}},"page":1},"value_location":null},{"key":"Amount","value":"2,800.00","confidence":0.915,"key_location":{"bounding_box":{"left":0.8815934470793774,"top":0.4053815493259837,"width":0.05214246386778021,"height":0.010419009736857332,"polygon":{"coordinates":[{"x":0.8815934470793774,"y":0.4053815493259837},{"x":0.9337359109471576,"y":0.4053815493259837},{"x":0.9337359109471576,"y":0.415800559062841},{"x":0.8815934470793774,"y":0.4149273142375851}]}},"page":1},"value_location":{"bounding_box":{"left":0.8834327890915138,"top":0.4296868296097721,"width":0.050303121855643784,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8834327890915138,"y":0.4296868296097721},{"x":0.9331308558811456,"y":0.4296868296097721},{"x":0.9337359109471576,"y":0.44053386851744003},{"x":0.8834327890915138,"y":0.44010579852362797}]}},"page":1}},{"key":"period:","value":"May","confidence":0.355,"key_location":{"bounding_box":{"left":0.22699936770995485,"top":0.44357310015670315,"width":0.04171152456220059,"height":0.011720283732923886,"polygon":{"coordinates":[{"x":0.22699936770995485,"y":0.44357310015670315},{"x":0.26871089227215544,"y":0.44357310015670315},{"x":0.2680937776497067,"y":0.45529338388962703},{"x":0.22699936770995485,"y":0.4548567818884998}]}},"page":1},"value_location":{"bounding_box":{"left":0.27178452123041635,"top":0.44357310015670315,"width":0.027601987784188653,"height":0.011720283732923886,"polygon":{"coordinates":[{"x":0.27178452123041635,"y":0.44357310015670315},{"x":0.299386509014605,"y":0.44357310015670315},{"x":0.299386509014605,"y":0.45529338388962703},{"x":0.27178452123041635,"y":0.45529338388962703}]}},"page":1}},{"key":"Total AUD","value":"2,800.00","confidence":0.898,"key_location":{"bounding_box":{"left":0.7705563217637372,"top":0.47048096925562605,"width":0.06257334547213278,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7705563217637372,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.4808999381694819},{"x":0.7705563217637372,"y":0.4808999381694819}]}},"page":1},"value_location":{"bounding_box":{"left":0.8797541050672409,"top":0.47048096925562605,"width":0.05275963619145596,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.8797541050672409,"y":0.47135421408088196},{"x":0.9325137412586969,"y":0.47048096925562605},{"x":0.9325137412586969,"y":0.48133658099361065},{"x":0.8803712773909167,"y":0.4808999381694819}]}},"page":1}},{"key":"Inv. Disc. Base Line Amount Amount","value":"2,800.00 0.00 0.00","confidence":0.152,"key_location":{"bounding_box":{"left":0.33427316130135654,"top":0.5425320564660491,"width":0.21131669353043459,"height":0.024622025952488413,"polygon":{"coordinates":[{"x":0.33427316130135654,"y":0.5662722647629649},{"x":0.33446677776845585,"y":0.5425320564660491},{"x":0.5455898548317911,"y":0.5434138741216217},{"x":0.5453841499576415,"y":0.5671540824185375}]}},"page":1},"value_location":{"bounding_box":{"left":0.3662919472052238,"top":0.579251039986375,"width":0.17848714768640578,"height":0.037934692505231626,"polygon":{"coordinates":[{"x":0.3662919472052238,"y":0.6157132060042144},{"x":0.3668970022712357,"y":0.579251039986375},{"x":0.5447790948916296,"y":0.5807235664737671},{"x":0.5441740975268446,"y":0.6171857324916066}]}},"page":1}},{"key":"VAT Identifier","value":"NON GST","confidence":0.874,"key_location":{"bounding_box":{"left":0.08152325065170651,"top":0.5556735113504682,"width":0.09093769629236148,"height":0.011163784576367908,"polygon":{"coordinates":[{"x":0.08152325065170651,"y":0.5665205502581361},{"x":0.08159586043319543,"y":0.5556735113504682},{"x":0.172460946944068,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5668372959268361}]}},"page":1},"value_location":{"bounding_box":{"left":0.08159586043319543,"top":0.5802955373029566,"width":0.058894711936433544,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5907059333864958},{"x":0.08159586043319543,"y":0.5907059333864958}]}},"page":1}},{"key":"VAT %","value":"0","confidence":0.885,"key_location":{"bounding_box":{"left":0.24600975820070034,"top":0.5555536550180409,"width":0.04110649834680216,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.24600975820070034,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5659726239318967},{"x":0.24600975820070034,"y":0.5659726239318967}]}},"page":1},"value_location":{"bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.007357310347318735,"height":0.008681092916662192,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.2858940868590418,"y":0.5807235664737671},{"x":0.2871162565475025,"y":0.5889765893966172},{"x":0.2803640012661957,"y":0.5894046593904293}]}},"page":1}},{"key":"Ship-to Address","value":"CRONUS International Ltd. 5 The Ring Westminster CANBERRA NSW 2600 Australia","confidence":0.779,"key_location":{"bounding_box":{"left":0.08211619567270802,"top":0.6505658843646026,"width":0.10203415433716466,"height":0.01201135173367529,"polygon":{"coordinates":[{"x":0.08211619567270802,"y":0.6621063835988856},{"x":0.08221300390625766,"y":0.6505658843646026},{"x":0.18415035000987268,"y":0.651036736863995},{"x":0.184041438943966,"y":0.6625772360982779}]}},"page":1},"value_location":{"bounding_box":{"left":0.08159586043319543,"top":0.6644949782401155,"width":0.16011809912078334,"height":0.06553598110776804,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.7300309593478835},{"x":0.08159586043319543,"y":0.7300309593478835}]}},"page":1}}]},"read_results":[{"location":{"bounding_box":{"left":0.7245368812971513,"top":0.03992945489372671,"width":0.20245889162636332,"height":0.016925499634756605,"polygon":{"coordinates":[{"x":0.7245368812971513,"y":0.03992945489372671},{"x":0.9269957729235146,"y":0.03992945489372671},{"x":0.9269957729235146,"y":0.05685495452848331},{"x":0.7245368812971513,"y":0.05685495452848331}]}},"page":1},"text":"Purchase - Invoice"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.06119548567818885,"width":0.11962874424704342,"height":0.010855606635109392,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.06119548567818885},{"x":0.2000024205664714,"y":0.06119548567818885},{"x":0.19938527709340917,"y":0.07205109231329825},{"x":0.08037367631942799,"y":0.07205109231329825}]}},"page":1},"text":"First Up Consultants"},{"location":{"bounding_box":{"left":0.8908021589952693,"top":0.06163210809081681,"width":0.04171158226342764,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.8908021589952693,"y":0.06206873050344477},{"x":0.9325137412586969,"y":0.06163210809081681},{"x":0.9325137412586969,"y":0.07247915210135993},{"x":0.8914072140612812,"y":0.07247915210135993}]}},"page":1},"text":"Page 1"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.0750903188496862,"width":0.08833601288214513,"height":0.010410426700790343,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.0750903188496862},{"x":0.16809254572851087,"y":0.07551837863774787},{"x":0.16809254572851087,"y":0.08550074555047654},{"x":0.07975653284636575,"y":0.08507268576241486}]}},"page":1},"text":"Evan McIntosh"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.08767528478329967,"width":0.12883747058824208,"height":0.012148353726735894,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.08810334457136135},{"x":0.20859400343460782,"y":0.08767528478329967},{"x":0.20859400343460782,"y":0.09939557872197388},{"x":0.07975653284636575,"y":0.09982363851003556}]}},"page":1},"text":"Allan Turing Road, 20"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.10242624773667074,"width":0.03865003449956361,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.10242624773667074},{"x":0.11840656734592936,"y":0.1028628701492987},{"x":0.11840656734592936,"y":0.11284522685627699},{"x":0.07975653284636575,"y":0.11198054465558736}]}},"page":1},"text":"Surrey"},{"location":{"bounding_box":{"left":0.9251564309113782,"top":0.09418180784988762,"width":0.007974424969767413,"height":0.009117674506288656,"polygon":{"coordinates":[{"x":0.9251564309113782,"y":0.09418180784988762},{"x":0.9325137412586969,"y":0.09418180784988762},{"x":0.9331308558811456,"y":0.10329948235617628},{"x":0.9251564309113782,"y":0.1028628701492987}]}},"page":1},"text":"5"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.11588445849554013,"width":0.12883747058824208,"height":0.010418979119606236,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.11588445849554013},{"x":0.20859400343460782,"y":0.11588445849554013},{"x":0.20859400343460782,"y":0.12630343761514637},{"x":0.07975653284636575,"y":0.12630343761514637}]}},"page":1},"text":"ALBERTON QLD 4207"},{"location":{"bounding_box":{"left":0.8693232234628884,"top":0.10807664102138496,"width":0.06319051779580853,"height":0.011283661320295887,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.10807664102138496},{"x":0.9325137412586969,"y":0.10850470080944664},{"x":0.9325137412586969,"y":0.11936030234168085},{"x":0.8693232234628884,"y":0.11848705751642494}]}},"page":1},"text":"5 The Ring"},{"location":{"bounding_box":{"left":0.07913938937330352,"top":0.1306439738677271,"width":0.05399388707431353,"height":0.009109122087472749,"polygon":{"coordinates":[{"x":0.07913938937330352,"y":0.1306439738677271},{"x":0.13313327644761705,"y":0.1306439738677271},{"x":0.13313327644761705,"y":0.13975309595519986},{"x":0.07913938937330352,"y":0.13975309595519986}]}},"page":1},"text":"Australia"},{"location":{"bounding_box":{"left":0.8570529998463994,"top":0.12239953398094398,"width":0.07607785603474626,"height":0.010410426700790357,"polygon":{"coordinates":[{"x":0.8570529998463994,"y":0.12239953398094398},{"x":0.9331308558811456,"y":0.12282759376900566},{"x":0.9325137412586969,"y":0.13280996068173434},{"x":0.8570529998463994,"y":0.13238190089367266}]}},"page":1},"text":"Westminster"},{"location":{"bounding_box":{"left":0.7987753953197612,"top":0.13628580452787506,"width":0.13435546056138448,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.7987753953197612,"y":0.13628580452787506},{"x":0.9331308558811456,"y":0.13628580452787506},{"x":0.9331308558811456,"y":0.14713285364129336},{"x":0.7987753953197612,"y":0.14670479385323168}]}},"page":1},"text":"CANBERRA NSW 2600"},{"location":{"bounding_box":{"left":0.8791369904447922,"top":0.15104531990006204,"width":0.053376750813904694,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.8791369904447922,"y":0.1514733796881237},{"x":0.9325137412586969,"y":0.15104531990006204},{"x":0.9325137412586969,"y":0.1610276868127907},{"x":0.8791369904447922,"y":0.1610276868127907}]}},"page":1},"text":"Australia"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.18619762888576802,"width":0.11227144832503147,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.19704466779343593},{"x":0.07975653284636575,"y":0.1974812902060639}]}},"page":1},"text":"Pay-to Vendor No."},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.18619762888576802,"width":0.03865002728691022,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.18619762888576802},{"x":0.273006690918877,"y":0.18619762888576802},{"x":0.273006690918877,"y":0.19617999579849668},{"x":0.2343566636319668,"y":0.19574337338586872}]}},"page":1},"text":"20000"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.17969111602493043,"width":0.06379557286182047,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.17969111602493043},{"x":0.7300548496323336,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19010153251997042},{"x":0.6662592767705131,"y":0.18967348293765912}]}},"page":1},"text":"Phone No."},{"location":{"bounding_box":{"left":0.8411040922056375,"top":0.17969111602493043,"width":0.09324893336396878,"height":0.009545744500100733,"polygon":{"coordinates":[{"x":0.8411040922056375,"y":0.17969111602493043},{"x":0.9343530255696063,"y":0.17969111602493043},{"x":0.9343530255696063,"y":0.18923686052503116},{"x":0.8411040922056375,"y":0.18923686052503116}]}},"page":1},"text":"0666-666-6666"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.19965582943888702,"width":0.12514672700753243,"height":0.011711731314107937,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.19965582943888702},{"x":0.20490325985389818,"y":0.19965582943888702},{"x":0.20490325985389818,"y":0.21136756075299495},{"x":0.07975653284636575,"y":0.21136756075299495}]}},"page":1},"text":"VAT Registration No."},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.20008389943269908,"width":0.08834812292715552,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.20008389943269908},{"x":0.3227047865591223,"y":0.20008389943269908},{"x":0.3227047865591223,"y":0.2105028887580557},{"x":0.2343566636319668,"y":0.2105028887580557}]}},"page":1},"text":"274863274B01"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.19270414174660558,"width":0.0717821150892517,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.20355975348459018},{"x":0.6662592767705131,"y":0.20312313107196223}]}},"page":1},"text":"Home Page"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2057257402985974,"width":0.03435427191610885,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.20659896471235256},{"x":0.700613548686622,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2157080867998253},{"x":0.666864331836525,"y":0.21528003721751401}]}},"page":1},"text":"Email"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.22872968535181712,"width":0.09508828258875862,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.22872968535181712},{"x":0.17484481543512437,"y":0.22872968535181712},{"x":0.17484481543512437,"y":0.23914867467717374},{"x":0.07975653284636575,"y":0.23914867467717374}]}},"page":1},"text":"Document Date"},{"location":{"bounding_box":{"left":0.8662617117622913,"top":0.2200486332581564,"width":0.0674741991848663,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.8662617117622913,"y":0.2200486332581564},{"x":0.9337359109471576,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22916630776444508},{"x":0.8662617117622913,"y":0.22872968535181712}]}},"page":1},"text":"777777777"},{"location":{"bounding_box":{"left":0.23313447951819938,"top":0.22916630776444508,"width":0.07668293995137171,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23313447951819938,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.22916630776444508},{"x":0.30920027599650884,"y":0.2395852970898017},{"x":0.23313447951819938,"y":0.23914867467717374}]}},"page":1},"text":"June 4, 2025"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.21962056326434437,"width":0.12454169357948064,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.21962056326434437},{"x":0.7908009703499937,"y":0.21962056326434437},{"x":0.7908009703499937,"y":0.23090422458464024},{"x":0.6662592767705131,"y":0.23090422458464024}]}},"page":1},"text":"VAT Registration No."},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.24218790631643689,"width":0.06809133544527518,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.24218790631643689},{"x":0.14784786829164093,"y":0.24218790631643689},{"x":0.14784786829164093,"y":0.25260687523029274},{"x":0.07975653284636575,"y":0.2521702528176648}]}},"page":1},"text":"Invoice No."},{"location":{"bounding_box":{"left":0.23557884774573423,"top":0.24218790631643689,"width":0.044180098454449535,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.24218790631643689},{"x":0.27975894620018377,"y":0.24218790631643689},{"x":0.2791418027271215,"y":0.2517336304050368},{"x":0.23557884774573423,"y":0.2517336304050368}]}},"page":1},"text":"108224"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2339434562239034,"width":0.05214246386778021,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.23437152621771543},{"x":0.7177846260158445,"y":0.2339434562239034},{"x":0.7184017406382933,"y":0.24392582313663205},{"x":0.6662592767705131,"y":0.24392582313663205}]}},"page":1},"text":"Giro No."},{"location":{"bounding_box":{"left":0.8760754787441951,"top":0.23437152621771543,"width":0.057055377136950525,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.8760754787441951,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.2434892007240041},{"x":0.8760754787441951,"y":0.2434892007240041}]}},"page":1},"text":"888-9999"},{"location":{"bounding_box":{"left":0.666864331836525,"top":0.24869441917727445,"width":0.03129270251428484,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.24869441917727445},{"x":0.6981570343508099,"y":0.24869441917727445},{"x":0.6981570343508099,"y":0.2578120936835631},{"x":0.6680986187826495,"y":0.2578120936835631}]}},"page":1},"text":"Bank"},{"location":{"bounding_box":{"left":0.8282166962654727,"top":0.2482663491834624,"width":0.10613632930413364,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8282166962654727,"y":0.2482663491834624},{"x":0.9343530255696063,"y":0.2482663491834624},{"x":0.9343530255696063,"y":0.2582487160961911},{"x":0.8282166962654727,"y":0.2582487160961911}]}},"page":1},"text":"World Wide Bank"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.269095755003859,"width":0.0791393893733035,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269095755003859},{"x":0.15889592221966925,"y":0.269095755003859},{"x":0.15889592221966925,"y":0.2808160591482836},{"x":0.07975653284636575,"y":0.2808160591482836}]}},"page":1},"text":"Posting Date"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.26953237741648695,"width":0.055821104616132794,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.26953237741648695},{"x":0.2901777682480996,"y":0.26953237741648695},{"x":0.2901777682480996,"y":0.27951474432921564},{"x":0.2343566636319668,"y":0.27951474432921564}]}},"page":1},"text":"06/04/25"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2630173121368335,"width":0.0748436267898488,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.2630173121368335},{"x":0.7411029035603619,"y":0.2630173121368335},{"x":0.7411029035603619,"y":0.2725716090557501},{"x":0.6662592767705131,"y":0.27213498664312213}]}},"page":1},"text":"Account No."},{"location":{"bounding_box":{"left":0.8693232234628884,"top":0.26258924214302143,"width":0.06502980210671794,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.26258924214302143},{"x":0.9343530255696063,"y":0.26258924214302143},{"x":0.9343530255696063,"y":0.27213498664312213},{"x":0.8693232234628884,"y":0.27213498664312213}]}},"page":1},"text":"99-99-888"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.28298202555079005,"width":0.058277568463371315,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.28341864796341804},{"x":0.13803410130973706,"y":0.28298202555079005},{"x":0.13803410130973706,"y":0.29253634288120745},{"x":0.07975653284636575,"y":0.29296439246351874}]}},"page":1},"text":"Due Date"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.28255397596847875,"width":0.055821104616132794,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.28255397596847875},{"x":0.2901777682480996,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.2343566636319668,"y":0.29253634288120745}]}},"page":1},"text":"07/31/25"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.09202677088816151,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.1730054878482947,"y":0.30946184506740165},{"x":0.1730054878482947,"y":0.3198808139812575},{"x":0.08097871696013319,"y":0.32030888397506957}]}},"page":1},"text":"Payment Terms"},{"location":{"bounding_box":{"left":0.23497380710502905,"top":0.30946184506740165,"width":0.11411076869920775,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.30946184506740165},{"x":0.3490845758042368,"y":0.3098984674800296},{"x":0.3490845758042368,"y":0.3194442119801303},{"x":0.23497380710502905,"y":0.31900758956750236}]}},"page":1},"text":"End of Next Month"},{"location":{"bounding_box":{"left":0.666864331836525,"top":0.30338338178887536,"width":0.028231248514914653,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.3038200042015033},{"x":0.694478408027764,"y":0.30338338178887536},{"x":0.6950955803514397,"y":0.312501056295164},{"x":0.6674814464589738,"y":0.3120644542940368}]}},"page":1},"text":"ABN"},{"location":{"bounding_box":{"left":0.8521521461336659,"top":0.3029467593762474,"width":0.08097870974747978,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8521521461336659,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31292912628897607},{"x":0.8521521461336659,"y":0.31292912628897607}]}},"page":1},"text":"53001003000"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.3224834232078927,"width":0.1104321207382018,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.32291149320170476},{"x":0.1895715101115053,"y":0.3224834232078927},{"x":0.19018865358456755,"y":0.3337671049396893},{"x":0.07975653284636575,"y":0.3337671049396893}]}},"page":1},"text":"Shipment Method"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.3359330713421958,"width":0.12330739942070276,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.3359330713421958},{"x":0.2030639322670685,"y":0.3359330713421958},{"x":0.2030639322670685,"y":0.3476533754866204},{"x":0.07975653284636575,"y":0.34721673266249165}]}},"page":1},"text":"Prices Including VAT"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.3372343861612638,"width":0.020861835335238915,"height":0.008681072505161425,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.3372343861612638},{"x":0.2546013554941435,"y":0.3372343861612638},{"x":0.2552184989672057,"y":0.3459154586664252},{"x":0.2343566636319668,"y":0.3459154586664252}]}},"page":1},"text":"No"},{"location":{"bounding_box":{"left":0.5319038162091286,"top":0.38020306503994084,"width":0.04110652719741559,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5319038162091286,"y":0.38020306503994084},{"x":0.5730103434065442,"y":0.38020306503994084},{"x":0.5730103434065442,"y":0.39018543195266947},{"x":0.5319038162091286,"y":0.39018543195266947}]}},"page":1},"text":"Direct"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.37977499504612877,"width":0.039267185185279274,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.38020306503994084},{"x":0.7165623986261569,"y":0.37977499504612877},{"x":0.7165623986261569,"y":0.38975736195885746},{"x":0.6772952134408776,"y":0.38975736195885746}]}},"page":1},"text":"Allow"},{"location":{"bounding_box":{"left":0.4386548828451598,"top":0.39235999159699336,"width":0.04784666522105857,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.4386548828451598,"y":0.39235999159699336},{"x":0.48650154806621837,"y":0.39235999159699336},{"x":0.48650154806621837,"y":0.40234235850972205},{"x":0.4386548828451598,"y":0.40234235850972205}]}},"page":1},"text":"Unit of"},{"location":{"bounding_box":{"left":0.5441740975268446,"top":0.39235999159699336,"width":0.030675587891835998,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.5441740975268446,"y":0.3927965935981206},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.5748496854186806,"y":0.4019057156855933},{"x":0.5447790948916296,"y":0.4019057156855933}]}},"page":1},"text":"Unit"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.3927965935981206,"width":0.047241667856273706,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.3927965935981206},{"x":0.7245368812971513,"y":0.3927965935981206},{"x":0.7245368812971513,"y":0.40277896051084927},{"x":0.6772952134408776,"y":0.40234235850972205}]}},"page":1},"text":"Invoice"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.39235999159699336,"width":0.028836245879699685,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.3927965935981206},{"x":0.8012319096555733,"y":0.39235999159699336},{"x":0.8018369070203583,"y":0.40234235850972205},{"x":0.7730006611406586,"y":0.4019057156855933}]}},"page":1},"text":"VAT"},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.4053815493259837,"width":0.023923325397875922,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.4058181921501124},{"x":0.10551918583107135,"y":0.4053815493259837},{"x":0.10551918583107135,"y":0.4149273142375851},{"x":0.08159586043319543,"y":0.4149273142375851}]}},"page":1},"text":"No."},{"location":{"bounding_box":{"left":0.1754619589081866,"top":0.4049449473248565,"width":0.07422645446617307,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.1754619589081866,"y":0.4049449473248565},{"x":0.24968841337435968,"y":0.4049449473248565},{"x":0.24968841337435968,"y":0.4166652310577803},{"x":0.1754619589081866,"y":0.415800559062841}]}},"page":1},"text":"Description"},{"location":{"bounding_box":{"left":0.35521968761248135,"top":0.4049449473248565,"width":0.058894719149086894,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.35521968761248135,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.4166652310577803},{"x":0.35521968761248135,"y":0.415800559062841}]}},"page":1},"text":"Quantity"},{"location":{"bounding_box":{"left":0.43925993791117174,"top":0.4053815493259837,"width":0.056450322070938586,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.4053815493259837},{"x":0.4957102599821103,"y":0.4058181921501124},{"x":0.4957102599821103,"y":0.4149273142375851},{"x":0.43925993791117174,"y":0.4149273142375851}]}},"page":1},"text":"Measure"},{"location":{"bounding_box":{"left":0.5423347555147082,"top":0.4053815493259837,"width":0.03557644160456952,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.5423347555147082,"y":0.4053815493259837},{"x":0.5779111971192777,"y":0.4053815493259837},{"x":0.5779111971192777,"y":0.4149273142375851},{"x":0.5429398105807202,"y":0.4144992442437731}]}},"page":1},"text":"Cost"},{"location":{"bounding_box":{"left":0.5895642484120911,"top":0.4049449473248565,"width":0.07546074141229753,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5895642484120911,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4049449473248565},{"x":0.6650249898243886,"y":0.4149273142375851},{"x":0.5895642484120911,"y":0.4149273142375851}]}},"page":1},"text":"Discount %"},{"location":{"bounding_box":{"left":0.6779123857645534,"top":0.4053815493259837,"width":0.0582775468254112,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.6779123857645534,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4149273142375851},{"x":0.6779123857645534,"y":0.4144992442437731}]}},"page":1},"text":"Discount"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.4049449473248565,"width":0.06074612071766017,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4153639162387123},{"x":0.7730006611406586,"y":0.4149273142375851}]}},"page":1},"text":"Identifier"},{"location":{"bounding_box":{"left":0.8803712773909167,"top":0.4053815493259837,"width":0.05336463355624088,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.8803712773909167,"y":0.4053815493259837},{"x":0.9337359109471576,"y":0.4053815493259837},{"x":0.9337359109471576,"y":0.4153639162387123},{"x":0.8803712773909167,"y":0.4149273142375851}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.17607910238124885,"top":0.4296868296097721,"width":0.06317840053814472,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4296868296097721},{"x":0.23925750291939357,"y":0.43055150160471134},{"x":0.2386524622786884,"y":0.4409705113415687},{"x":0.17607910238124885,"y":0.44010579852362797}]}},"page":1},"text":"IT Support"},{"location":{"bounding_box":{"left":0.4104236631808586,"top":0.4296868296097721,"width":0.01412165403567578,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.4104236631808586,"y":0.43012343161089933},{"x":0.4245453172165344,"y":0.4296868296097721},{"x":0.4245453172165344,"y":0.4388045245275615},{"x":0.4104236631808586,"y":0.4388045245275615}]}},"page":1},"text":"14"},{"location":{"bounding_box":{"left":0.5312867015866799,"top":0.4296868296097721,"width":0.04232869688587626,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.5312867015866799,"y":0.4296868296097721},{"x":0.5736153984725562,"y":0.4296868296097721},{"x":0.5730103434065442,"y":0.4396691965225008},{"x":0.5312867015866799,"y":0.43923255369837205}]}},"page":1},"text":"200.00"},{"location":{"bounding_box":{"left":0.6779123857645534,"top":0.43055150160471134,"width":0.019627533963807675,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.6779123857645534,"y":0.43055150160471134},{"x":0.6969348646623491,"y":0.43055150160471134},{"x":0.697539919728361,"y":0.43923255369837205},{"x":0.6779123857645534,"y":0.4388045245275615}]}},"page":1},"text":"No"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.4292501867856434,"width":0.06196834810734786,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4292501867856434},{"x":0.8349690092480064,"y":0.4292501867856434},{"x":0.8343518369243307,"y":0.4396691965225008},{"x":0.7730006611406586,"y":0.4396691965225008}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.8822106194030531,"top":0.4292501867856434,"width":0.05152529154410446,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.8822106194030531,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.44010579852362797},{"x":0.8822106194030531,"y":0.44010579852362797}]}},"page":1},"text":"2,800.00"},{"location":{"bounding_box":{"left":0.17422767196206213,"top":0.44313645733257445,"width":0.12577595167499162,"height":0.011720324555925365,"polygon":{"coordinates":[{"x":0.17422767196206213,"y":0.44313645733257445},{"x":0.30000362363705374,"y":0.44313645733257445},{"x":0.30000362363705374,"y":0.4548567818884998},{"x":0.17422767196206213,"y":0.4548567818884998}]}},"page":1},"text":"Support period: May"},{"location":{"bounding_box":{"left":0.7680998074279252,"top":0.470052899261814,"width":0.06809137150854194,"height":0.010410436906540754,"polygon":{"coordinates":[{"x":0.7680998074279252,"y":0.470052899261814},{"x":0.8361911789364671,"y":0.470052899261814},{"x":0.8361911789364671,"y":0.48046333616835474},{"x":0.7680998074279252,"y":0.48046333616835474}]}},"page":1},"text":"Total AUD"},{"location":{"bounding_box":{"left":0.876680533810207,"top":0.47048096925562605,"width":0.057055377136950525,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.876680533810207,"y":0.47048096925562605},{"x":0.9337359109471576,"y":0.47048096925562605},{"x":0.9337359109471576,"y":0.4808999381694819},{"x":0.876680533810207,"y":0.4808999381694819}]}},"page":1},"text":"2,800.00"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5295104579140573,"width":0.1693268398872887,"height":0.012584955727863112,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5295104579140573},{"x":0.2503055568474219,"y":0.5295104579140573},{"x":0.2503055568474219,"y":0.5420954136419204},{"x":0.08097871696013319,"y":0.5420954136419204}]}},"page":1},"text":"VAT Amount Specification"},{"location":{"bounding_box":{"left":0.4503079629885866,"top":0.5433967284609884,"width":0.09324896221458229,"height":0.010419009736857276,"polygon":{"coordinates":[{"x":0.4503079629885866,"y":0.5433967284609884},{"x":0.5435569252031689,"y":0.5433967284609884},{"x":0.5435569252031689,"y":0.5538157381978457},{"x":0.4503079629885866,"y":0.5538157381978457}]}},"page":1},"text":"Inv. Disc. Base"},{"location":{"bounding_box":{"left":0.5662580881252375,"top":0.5433967284609884,"width":0.10797567131627006,"height":0.010419009736857276,"polygon":{"coordinates":[{"x":0.5662580881252375,"y":0.5433967284609884},{"x":0.6742337594415075,"y":0.5433967284609884},{"x":0.6742337594415075,"y":0.5538157381978457},{"x":0.5662580881252375,"y":0.5538157381978457}]}},"page":1},"text":"Invoice Discount"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5555536550180409,"width":0.09140962741509927,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5555536550180409},{"x":0.17238834437523246,"y":0.5555536550180409},{"x":0.17238834437523246,"y":0.5664006939257088},{"x":0.08097871696013319,"y":0.5664006939257088}]}},"page":1},"text":"VAT Identifier"},{"location":{"bounding_box":{"left":0.2441704450391774,"top":0.5555536550180409,"width":0.04356295498138735,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.2441704450391774,"y":0.5555536550180409},{"x":0.28773340002056474,"y":0.5559902570191682},{"x":0.28773340002056474,"y":0.5659726239318967},{"x":0.2441704450391774,"y":0.5659726239318967}]}},"page":1},"text":"VAT %"},{"location":{"bounding_box":{"left":0.3337407232294869,"top":0.5559902570191682,"width":0.08343519523267845,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.3337407232294869,"y":0.5559902570191682},{"x":0.41717591846216534,"y":0.5564183270129802},{"x":0.41717591846216534,"y":0.5664006939257088},{"x":0.3337407232294869,"y":0.5659726239318967}]}},"page":1},"text":"Line Amount"},{"location":{"bounding_box":{"left":0.49141446133538874,"top":0.5564183270129802,"width":0.05398180587991658,"height":0.009554296918916516,"polygon":{"coordinates":[{"x":0.49141446133538874,"y":0.5564183270129802},{"x":0.5453962672153053,"y":0.5564183270129802},{"x":0.5453962672153053,"y":0.5659726239318967},{"x":0.49141446133538874,"y":0.5655360219307696}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.623313465262188,"top":0.5559902570191682,"width":0.053981748178689615,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.623313465262188,"y":0.5559902570191682},{"x":0.6772952134408776,"y":0.5559902570191682},{"x":0.6772952134408776,"y":0.5659726239318967},{"x":0.623313465262188,"y":0.5659726239318967}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.7404857312366862,"top":0.5559902570191682,"width":0.06196834810734786,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.7404857312366862,"y":0.5559902570191682},{"x":0.802454079344034,"y":0.5559902570191682},{"x":0.802454079344034,"y":0.5664006939257088},{"x":0.7404857312366862,"y":0.5659726239318967}]}},"page":1},"text":"VAT Base"},{"location":{"bounding_box":{"left":0.851535031511217,"top":0.5559902570191682,"width":0.08527450839420148,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.851535031511217,"y":0.5559902570191682},{"x":0.9368095399054185,"y":0.5559902570191682},{"x":0.9368095399054185,"y":0.5664006939257088},{"x":0.851535031511217,"y":0.5659726239318967}]}},"page":1},"text":"VAT Amount"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5798588944788279,"width":0.06012899888255803,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5798588944788279},{"x":0.14110771584269122,"y":0.5798588944788279},{"x":0.14110771584269122,"y":0.5902779042156853},{"x":0.08097871696013319,"y":0.5902779042156853}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.008579508886392861,"height":0.008681092916662192,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5811602092978958},{"x":0.28773340002056474,"y":0.5807235664737671},{"x":0.28833845508657663,"y":0.5889765893966172},{"x":0.27975894620018377,"y":0.5894046593904293}]}},"page":1},"text":"0"},{"location":{"bounding_box":{"left":0.3650334545943852,"top":0.5802955373029566,"width":0.05152532039471791,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.3650334545943852,"y":0.5802955373029566},{"x":0.4165587749891031,"y":0.5802955373029566},{"x":0.4165587749891031,"y":0.5902779042156853},{"x":0.3650334545943852,"y":0.5902779042156853}]}},"page":1},"text":"2,800.00"},{"location":{"bounding_box":{"left":0.5196335925926396,"top":0.5807235664737671,"width":0.026996961568790168,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.5196335925926396,"y":0.5807235664737671},{"x":0.546013381837754,"y":0.5807235664737671},{"x":0.5466305541614298,"y":0.5902779042156853},{"x":0.5196335925926396,"y":0.5898412613915565}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.6503104268309782,"top":0.5802955373029566,"width":0.0276019589335752,"height":0.009545724088599883,"polygon":{"coordinates":[{"x":0.6503104268309782,"y":0.5802955373029566},{"x":0.6779123857645534,"y":0.5807235664737671},{"x":0.6779123857645534,"y":0.5898412613915565},{"x":0.6509154241957632,"y":0.5898412613915565}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.7509166705422657,"top":0.5802955373029566,"width":0.05153740880176827,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.7509166705422657,"y":0.5802955373029566},{"x":0.802454079344034,"y":0.5802955373029566},{"x":0.802454079344034,"y":0.5907059333864958},{"x":0.7509166705422657,"y":0.5907059333864958}]}},"page":1},"text":"2,800.00"},{"location":{"bounding_box":{"left":0.9098125783366283,"top":0.5802955373029566,"width":0.026379789245114416,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.9098125783366283,"y":0.5802955373029566},{"x":0.9361923675817427,"y":0.5802955373029566},{"x":0.9361923675817427,"y":0.5902779042156853},{"x":0.9098125783366283,"y":0.5894046593904293}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.2527620134820071,"top":0.6076400084030066,"width":0.034971386538557636,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.2527620134820071,"y":0.6076400084030066},{"x":0.28773340002056474,"y":0.6076400084030066},{"x":0.28773340002056474,"y":0.6171857324916066},{"x":0.2527620134820071,"y":0.6167491304904794}]}},"page":1},"text":"Total"},{"location":{"bounding_box":{"left":0.3607376847982771,"top":0.6076400084030066,"width":0.055216063975427554,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.3607376847982771,"y":0.6076400084030066},{"x":0.41595374877370467,"y":0.6076400084030066},{"x":0.41595374877370467,"y":0.6171857324916066},{"x":0.3607376847982771,"y":0.6171857324916066}]}},"page":1},"text":"2,800.00"},{"location":{"bounding_box":{"left":0.5171771359580545,"top":0.6076400084030066,"width":0.027601958933575088,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.5171771359580545,"y":0.6076400084030066},{"x":0.5447790948916296,"y":0.6076400084030066},{"x":0.5447790948916296,"y":0.6171857324916066},{"x":0.5171771359580545,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.6478539124951661,"top":0.6076400084030066,"width":0.029441300945711513,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.6478539124951661,"y":0.6080680783968186},{"x":0.6772952134408776,"y":0.6076400084030066},{"x":0.6772952134408776,"y":0.6171857324916066},{"x":0.6484710848188419,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.7466208718955442,"top":0.6067667635777507,"width":0.05583320744848985,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.7466208718955442,"y":0.6072034064018794},{"x":0.802454079344034,"y":0.6067667635777507},{"x":0.802454079344034,"y":0.6176223753157353},{"x":0.7466208718955442,"y":0.6180504453095473}]}},"page":1},"text":"2,800.00"},{"location":{"bounding_box":{"left":0.9061339520135824,"top":0.6076400084030066,"width":0.03067558789183611,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9061339520135824,"y":0.6080680783968186},{"x":0.9361923675817427,"y":0.6076400084030066},{"x":0.9368095399054185,"y":0.6171857324916066},{"x":0.9067510666360311,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.6506087076931845,"width":0.10307482481618986,"height":0.011283640908795078,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.6506087076931845},{"x":0.18405354177632305,"y":0.6506087076931845},{"x":0.18405354177632305,"y":0.6618923486019795},{"x":0.08097871696013319,"y":0.6618923486019795}]}},"page":1},"text":"Ship-to Address"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.6640583354159868,"width":0.16073524259384558,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.6640583354159868},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.08097871696013319,"y":0.6749139471539713}]}},"page":1},"text":"CRONUS International Ltd."},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6783812487870465,"width":0.06380763963091064,"height":0.011283681731796724,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6783812487870465},{"x":0.14540350006410607,"y":0.6788178507881738},{"x":0.14540350006410607,"y":0.6896649305188433},{"x":0.08159586043319543,"y":0.6892368605250312}]}},"page":1},"text":"5 The Ring"},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6927041213351048,"width":0.0766829183134116,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6927041213351048},{"x":0.15827877874660704,"y":0.6927041213351048},{"x":0.15827877874660704,"y":0.7026864882478335},{"x":0.08159586043319543,"y":0.7022584182540215}]}},"page":1},"text":"Westminster"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.7052891178859695,"width":0.1349604939894363,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.7157081276228269},{"x":0.08097871696013319,"y":0.7052891178859695},{"x":0.2153341703088643,"y":0.7052891178859695},{"x":0.2153341703088643,"y":0.7157081276228269}]}},"page":1},"text":"CANBERRA NSW 2600"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.720048592435155,"width":0.053376729175944534,"height":0.009545805734602952,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.720048592435155},{"x":0.13373831708832223,"y":0.720048592435155},{"x":0.13435544613607772,"y":0.7295943981697579},{"x":0.08097871696013319,"y":0.7295943981697579}]}},"page":1},"text":"Australia"}],"page_read_results":[{"page":1,"elements":[{"id":"0","text":"Purchase","bounding_box":{"left":0.7245368812971513,"top":0.03992945489372671,"width":0.10000118864527552,"height":0.017362122047384562,"polygon":{"coordinates":[{"x":0.7245368812971513,"y":0.03992945489372671},{"x":0.8239209553199781,"y":0.040366077306354664},{"x":0.8245380699424268,"y":0.05685495452848331},{"x":0.7251539959196001,"y":0.05729157694111127}]}}},{"id":"1","text":"-","bounding_box":{"left":0.8288338685891484,"top":0.040366077306354664,"width":0.011048053928028323,"height":0.016488877222128648,"polygon":{"coordinates":[{"x":0.8288338685891484,"y":0.040366077306354664},{"x":0.8392647501935011,"y":0.040366077306354664},{"x":0.8398819225171767,"y":0.05685495452848331},{"x":0.8288338685891484,"y":0.05685495452848331}]}}},{"id":"2","text":"Invoice","bounding_box":{"left":0.8441656039062346,"top":0.040366077306354664,"width":0.08159588207115553,"height":0.016488877222128648,"polygon":{"coordinates":[{"x":0.8441656039062346,"y":0.040366077306354664},{"x":0.9251564309113782,"y":0.040802697167545025},{"x":0.9257614859773902,"y":0.05685495452848331},{"x":0.8447827762299103,"y":0.05685495452848331}]}}},{"id":"3","text":"First","bounding_box":{"left":0.08097871696013319,"top":0.06119548567818885,"width":0.024540468870938165,"height":0.011283666423171072,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.06119548567818885},{"x":0.10551918583107135,"y":0.06163210809081681},{"x":0.10551918583107135,"y":0.07205109231329825},{"x":0.08097871696013319,"y":0.07247915210135993}]}}},{"id":"4","text":"Up","bounding_box":{"left":0.10859280036402551,"top":0.06163210809081681,"width":0.017788206376978047,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.10859280036402551,"y":0.06163210809081681},{"x":0.12638100674100355,"y":0.06163210809081681},{"x":0.12638100674100355,"y":0.07247915210135993},{"x":0.10859280036402551,"y":0.07205109231329825}]}}},{"id":"5","text":"Consultants","bounding_box":{"left":0.13067680538772514,"top":0.06163210809081681,"width":0.06932561517874627,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.13067680538772514,"y":0.06163210809081681},{"x":0.2000024205664714,"y":0.06163210809081681},{"x":0.2000024205664714,"y":0.07247915210135993},{"x":0.13067680538772514,"y":0.07247915210135993}]}}},{"id":"6","text":"Page","bounding_box":{"left":0.8914072140612812,"top":0.06163210809081681,"width":0.03067558789183611,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.8914072140612812,"y":0.06163210809081681},{"x":0.9220828019531173,"y":0.06163210809081681},{"x":0.9220828019531173,"y":0.07247915210135993},{"x":0.8914072140612812,"y":0.07247915210135993}]}}},{"id":"7","text":"1","bounding_box":{"left":0.9263786005998389,"top":0.06163210809081681,"width":0.005517968335182255,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.9263786005998389,"y":0.06163210809081681},{"x":0.9312915715702362,"y":0.06163210809081681},{"x":0.9318965689350212,"y":0.07247915210135993},{"x":0.9263786005998389,"y":0.07247915210135993}]}}},{"id":"8","text":"Evan","bounding_box":{"left":0.08037367631942799,"top":0.07551837863774787,"width":0.026984837098473033,"height":0.009982366912728677,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.07551837863774787},{"x":0.10675347277719582,"y":0.07551837863774787},{"x":0.10735851341790102,"y":0.08550074555047654},{"x":0.08097871696013319,"y":0.08550074555047654}]}}},{"id":"9","text":"McIntosh","bounding_box":{"left":0.11165430485196923,"top":0.07551837863774787,"width":0.05459892771501873,"height":0.009982366912728677,"polygon":{"coordinates":[{"x":0.11165430485196923,"y":0.07551837863774787},{"x":0.16625323256698796,"y":0.07595500105037582},{"x":0.16625323256698796,"y":0.08550074555047654},{"x":0.11165430485196923,"y":0.08550074555047654}]}}},{"id":"10","text":"Allan","bounding_box":{"left":0.08097871696013319,"top":0.0885399669839893,"width":0.029453403778068613,"height":0.011283671526046257,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.0885399669839893},{"x":0.1104321207382018,"y":0.0885399669839893},{"x":0.1104321207382018,"y":0.09982363851003556},{"x":0.08097871696013319,"y":0.09982363851003556}]}}},{"id":"11","text":"Turing","bounding_box":{"left":0.11411077591186114,"top":0.0885399669839893,"width":0.03803289102650137,"height":0.011283671526046257,"polygon":{"coordinates":[{"x":0.11411077591186114,"y":0.0885399669839893},{"x":0.1521436669383625,"y":0.0885399669839893},{"x":0.1521436669383625,"y":0.09982363851003556},{"x":0.11411077591186114,"y":0.09982363851003556}]}}},{"id":"12","text":"Road,","bounding_box":{"left":0.1552172670460099,"top":0.08810334457136135,"width":0.03557642717926285,"height":0.011720293938674214,"polygon":{"coordinates":[{"x":0.1552172670460099,"y":0.0885399669839893},{"x":0.19079369422527276,"y":0.08810334457136135},{"x":0.19079369422527276,"y":0.09982363851003556},{"x":0.1552172670460099,"y":0.09982363851003556}]}}},{"id":"13","text":"20","bounding_box":{"left":0.1944723493989321,"top":0.08810334457136135,"width":0.014726709101687663,"height":0.011720293938674214,"polygon":{"coordinates":[{"x":0.1944723493989321,"y":0.08810334457136135},{"x":0.20919905850061976,"y":0.08810334457136135},{"x":0.20919905850061976,"y":0.09982363851003556},{"x":0.1944723493989321,"y":0.09982363851003556}]}}},{"id":"14","text":"Surrey","bounding_box":{"left":0.08097871696013319,"top":0.10242624773667074,"width":0.03742785038579617,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.11240860444364903},{"x":0.08159586043319543,"y":0.10242624773667074},{"x":0.11840656734592936,"y":0.1028628701492987},{"x":0.11778942387286712,"y":0.11284522685627699}]}}},{"id":"15","text":"5","bounding_box":{"left":0.9251564309113782,"top":0.09418180784988762,"width":0.00735731034731868,"height":0.009117674506288656,"polygon":{"coordinates":[{"x":0.9251564309113782,"y":0.1028628701492987},{"x":0.9257614859773902,"y":0.09418180784988762},{"x":0.9325137412586969,"y":0.09418180784988762},{"x":0.9318965689350212,"y":0.10329948235617628}]}}},{"id":"16","text":"ALBERTON","bounding_box":{"left":0.08037367631942799,"top":0.11588445849554013,"width":0.061956223637030655,"height":0.010418979119606236,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.11588445849554013},{"x":0.14232989995645864,"y":0.11632108090816809},{"x":0.14232989995645864,"y":0.12630343761514637},{"x":0.08037367631942799,"y":0.12630343761514637}]}}},{"id":"17","text":"QLD","bounding_box":{"left":0.1496871958784706,"top":0.11632108090816809,"width":0.0233182919698241,"height":0.00998235670697828,"polygon":{"coordinates":[{"x":0.1496871958784706,"y":0.11632108090816809},{"x":0.1730054878482947,"y":0.11632108090816809},{"x":0.1730054878482947,"y":0.12630343761514637},{"x":0.1496871958784706,"y":0.12630343761514637}]}}},{"id":"18","text":"4207","bounding_box":{"left":0.17914059965653922,"top":0.11588445849554013,"width":0.0294534037780686,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.17914059965653922,"y":0.11632108090816809},{"x":0.20859400343460782,"y":0.11588445849554013},{"x":0.20859400343460782,"y":0.12673149740320805},{"x":0.17914059965653922,"y":0.12630343761514637}]}}},{"id":"19","text":"5","bounding_box":{"left":0.8693232234628884,"top":0.10850470080944664,"width":0.007974424969767413,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.10850470080944664},{"x":0.8772976484326558,"y":0.10850470080944664},{"x":0.8772976484326558,"y":0.1189236799290529},{"x":0.8693232234628884,"y":0.1189236799290529}]}}},{"id":"20","text":"The","bounding_box":{"left":0.8803712773909167,"top":0.10850470080944664,"width":0.0214668759759441,"height":0.010855601532234208,"polygon":{"coordinates":[{"x":0.8803712773909167,"y":0.10850470080944664},{"x":0.9018381533668608,"y":0.10850470080944664},{"x":0.9018381533668608,"y":0.11936030234168085},{"x":0.8803712773909167,"y":0.1189236799290529}]}}},{"id":"21","text":"Ring","bounding_box":{"left":0.9049117246238948,"top":0.10850470080944664,"width":0.027602016634802107,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.9049117246238948,"y":0.10850470080944664},{"x":0.9325137412586969,"y":0.1089413232220746},{"x":0.9325137412586969,"y":0.11978836212974252},{"x":0.9049117246238948,"y":0.11936030234168085}]}}},{"id":"22","text":"Australia","bounding_box":{"left":0.08097871696013319,"top":0.1306439738677271,"width":0.05215455948748386,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.1310720336557888},{"x":0.13313327644761705,"y":0.1306439738677271},{"x":0.13313327644761705,"y":0.14018971836782781},{"x":0.08159586043319543,"y":0.14018971836782781}]}}},{"id":"23","text":"Westminster","bounding_box":{"left":0.8570529998463994,"top":0.12282759376900566,"width":0.07607785603474626,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.8570529998463994,"y":0.12282759376900566},{"x":0.9331308558811456,"y":0.12326421618163362},{"x":0.9331308558811456,"y":0.1332465728886119},{"x":0.8576701144688481,"y":0.13280996068173434}]}}},{"id":"24","text":"CANBERRA","bounding_box":{"left":0.7999976227094489,"top":0.13672242694050302,"width":0.06502980210671794,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.7999976227094489,"y":0.13672242694050302},{"x":0.8650274248161668,"y":0.13715048672856467},{"x":0.8650274248161668,"y":0.14670479385323168},{"x":0.7999976227094489,"y":0.14670479385323168}]}}},{"id":"25","text":"NSW","bounding_box":{"left":0.8693232234628884,"top":0.13672242694050302,"width":0.025157619556653743,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.13715048672856467},{"x":0.8944808430195421,"y":0.13672242694050302},{"x":0.8944808430195421,"y":0.14670479385323168},{"x":0.8693232234628884,"y":0.14670479385323168}]}}},{"id":"26","text":"2600","bounding_box":{"left":0.904294610001446,"top":0.13672242694050302,"width":0.0276019589335752,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.904294610001446,"y":0.13672242694050302},{"x":0.9318965689350212,"y":0.13672242694050302},{"x":0.9318965689350212,"y":0.14756947605392132},{"x":0.904294610001446,"y":0.14713285364129336}]}}},{"id":"27","text":"Australia","bounding_box":{"left":0.8809763324569286,"top":0.1514733796881237,"width":0.05153740880176827,"height":0.00955430712466701,"polygon":{"coordinates":[{"x":0.8809763324569286,"y":0.15191000210075165},{"x":0.9325137412586969,"y":0.1514733796881237},{"x":0.9325137412586969,"y":0.1610276868127907},{"x":0.8809763324569286,"y":0.1610276868127907}]}}},{"id":"28","text":"Pay-to","bounding_box":{"left":0.08037367631942799,"top":0.18663425129839598,"width":0.03987221861333104,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.18663425129839598},{"x":0.12024589493275903,"y":0.18663425129839598},{"x":0.12024589493275903,"y":0.1974812902060639},{"x":0.08037367631942799,"y":0.1974812902060639}]}}},{"id":"29","text":"Vendor","bounding_box":{"left":0.12330740663335614,"top":0.18619762888576802,"width":0.04294582593363182,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.12330740663335614,"y":0.18663425129839598},{"x":0.16625323256698796,"y":0.18619762888576802},{"x":0.16625323256698796,"y":0.1974812902060639},{"x":0.12330740663335614,"y":0.1974812902060639}]}}},{"id":"30","text":"No.","bounding_box":{"left":0.16932683267463536,"top":0.18619762888576802,"width":0.022701148496761858,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.16932683267463536,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18663425129839598},{"x":0.19202798117139722,"y":0.1974812902060639},{"x":0.16932683267463536,"y":0.1974812902060639}]}}},{"id":"31","text":"20000","bounding_box":{"left":0.23619599121879647,"top":0.18619762888576802,"width":0.03619355622701831,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.19617999579849668},{"x":0.23619599121879647,"y":0.19617999579849668}]}}},{"id":"32","text":"Phone","bounding_box":{"left":0.666864331836525,"top":0.18011916560724173,"width":0.03804501549681849,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.18011916560724173},{"x":0.7049093473333435,"y":0.18011916560724173},{"x":0.7049093473333435,"y":0.19010153251997042},{"x":0.6674814464589738,"y":0.18967348293765912}]}}},{"id":"33","text":"No.","bounding_box":{"left":0.7079708013327137,"top":0.18011916560724173,"width":0.02208404829961985,"height":0.010418989325356648,"polygon":{"coordinates":[{"x":0.7079708013327137,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19053815493259837},{"x":0.7079708013327137,"y":0.19010153251997042}]}}},{"id":"34","text":"0666-666-6666","bounding_box":{"left":0.8423262618940982,"top":0.17969111602493043,"width":0.0901874793645987,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8423262618940982,"y":0.18011916560724173},{"x":0.9325137412586969,"y":0.17969111602493043},{"x":0.9325137412586969,"y":0.18967348293765912},{"x":0.8423262618940982,"y":0.18967348293765912}]}}},{"id":"35","text":"VAT","bounding_box":{"left":0.08097871696013319,"top":0.20052052184532704,"width":0.023318284757170724,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.20052052184532704},{"x":0.10429700171730391,"y":0.20052052184532704},{"x":0.10429700171730391,"y":0.21136756075299495},{"x":0.08097871696013319,"y":0.21093951117068366}]}}},{"id":"36","text":"Registration","bounding_box":{"left":0.10735851341790102,"top":0.20008389943269908,"width":0.07239922971170044,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.10735851341790102,"y":0.20052052184532704},{"x":0.17975774312960147,"y":0.20008389943269908},{"x":0.17975774312960147,"y":0.2118041831656229},{"x":0.10735851341790102,"y":0.21136756075299495}]}}},{"id":"37","text":"No.","bounding_box":{"left":0.18281925483019856,"top":0.20008389943269908,"width":0.022701148496761858,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.18281925483019856,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.2118041831656229},{"x":0.18281925483019856,"y":0.2118041831656229}]}}},{"id":"38","text":"274863274B01","bounding_box":{"left":0.23619599121879647,"top":0.20052052184532704,"width":0.08650879534032585,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.21093951117068366},{"x":0.23619599121879647,"y":0.2105028887580557}]}}},{"id":"39","text":"Home","bounding_box":{"left":0.666864331836525,"top":0.19270414174660558,"width":0.036810728550694005,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.20355975348459018},{"x":0.666864331836525,"y":0.20355975348459018}]}}},{"id":"40","text":"Page","bounding_box":{"left":0.7067486316442531,"top":0.19270414174660558,"width":0.03129276021551175,"height":0.011292234150612562,"polygon":{"coordinates":[{"x":0.7067486316442531,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.20399637589721814},{"x":0.7067486316442531,"y":0.20355975348459018}]}}},{"id":"41","text":"Email","bounding_box":{"left":0.666864331836525,"top":0.2057257402985974,"width":0.033132044526421156,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2157080867998253},{"x":0.666864331836525,"y":0.2157080867998253}]}}},{"id":"42","text":"Document","bounding_box":{"left":0.08037367631942799,"top":0.22872968535181712,"width":0.06317840775079811,"height":0.010855611737984577,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.22872968535181712},{"x":0.1435520840702261,"y":0.22916630776444508},{"x":0.1435520840702261,"y":0.2395852970898017},{"x":0.08037367631942799,"y":0.2395852970898017}]}}},{"id":"43","text":"Date","bounding_box":{"left":0.1466256841778735,"top":0.22916630776444508,"width":0.027601987784188625,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.1466256841778735,"y":0.22916630776444508},{"x":0.17422767196206213,"y":0.22916630776444508},{"x":0.17422767196206213,"y":0.2395852970898017},{"x":0.1466256841778735,"y":0.2395852970898017}]}}},{"id":"44","text":"777777777","bounding_box":{"left":0.8687060511392126,"top":0.2200486332581564,"width":0.06442480474193302,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8687060511392126,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22048525567078436},{"x":0.9331308558811456,"y":0.22960293017707303},{"x":0.8687060511392126,"y":0.22916630776444508}]}}},{"id":"45","text":"June","bounding_box":{"left":0.23497380710502905,"top":0.22916630776444508,"width":0.0276019733588819,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.22916630776444508},{"x":0.26257578046391095,"y":0.22960293017707303},{"x":0.26257578046391095,"y":0.2395852970898017},{"x":0.23497380710502905,"y":0.2395852970898017}]}}},{"id":"46","text":"4,","bounding_box":{"left":0.2662544356375703,"top":0.22960293017707303,"width":0.012270252467102505,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.2662544356375703,"y":0.22960293017707303},{"x":0.27791963303866085,"y":0.22960293017707303},{"x":0.2785246881046728,"y":0.2395852970898017},{"x":0.2662544356375703,"y":0.2395852970898017}]}}},{"id":"47","text":"2025","bounding_box":{"left":0.28098114473925795,"top":0.22960293017707303,"width":0.028219131257250896,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.28098114473925795,"y":0.22960293017707303},{"x":0.30920027599650884,"y":0.23003097975938433},{"x":0.30920027599650884,"y":0.2395852970898017},{"x":0.28098114473925795,"y":0.2395852970898017}]}}},{"id":"48","text":"VAT","bounding_box":{"left":0.6674814464589738,"top":0.2200486332581564,"width":0.02454050493420501,"height":0.010855591326483838,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.2200486332581564},{"x":0.691404779069503,"y":0.2200486332581564},{"x":0.6920219513931788,"y":0.23090422458464024},{"x":0.6674814464589738,"y":0.23090422458464024}]}}},{"id":"49","text":"Registration","bounding_box":{"left":0.694478408027764,"top":0.2200486332581564,"width":0.07238711245403673,"height":0.010855591326483838,"polygon":{"coordinates":[{"x":0.694478408027764,"y":0.2200486332581564},{"x":0.7668655204818007,"y":0.2200486332581564},{"x":0.7668655204818007,"y":0.23090422458464024},{"x":0.6950955803514397,"y":0.23090422458464024}]}}},{"id":"50","text":"No.","bounding_box":{"left":0.7699391494400615,"top":0.21962056326434437,"width":0.02146687597594421,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.7699391494400615,"y":0.2200486332581564},{"x":0.7914060254160057,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.23090422458464024},{"x":0.7699391494400615,"y":0.23090422458464024}]}}},{"id":"51","text":"Invoice","bounding_box":{"left":0.08037367631942799,"top":0.24218790631643689,"width":0.04293373031392815,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.24218790631643689},{"x":0.12330740663335614,"y":0.24262452872906484},{"x":0.12330740663335614,"y":0.25260687523029274},{"x":0.08037367631942799,"y":0.25260687523029274}]}}},{"id":"52","text":"No.","bounding_box":{"left":0.1257638632679413,"top":0.24262452872906484,"width":0.022084005023699615,"height":0.009982346501227896,"polygon":{"coordinates":[{"x":0.1257638632679413,"y":0.24262452872906484},{"x":0.14784786829164093,"y":0.24305257831137614},{"x":0.14784786829164093,"y":0.25260687523029274},{"x":0.1257638632679413,"y":0.25260687523029274}]}}},{"id":"53","text":"108224","bounding_box":{"left":0.2374181753325639,"top":0.24262452872906484,"width":0.042340770867619865,"height":0.009545724088599966,"polygon":{"coordinates":[{"x":0.2374181753325639,"y":0.24262452872906484},{"x":0.2791418027271215,"y":0.24262452872906484},{"x":0.27975894620018377,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2517336304050368}]}}},{"id":"54","text":"Giro","bounding_box":{"left":0.666864331836525,"top":0.23437152621771543,"width":0.02454044723297799,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.23480814863034338},{"x":0.691404779069503,"y":0.23437152621771543},{"x":0.691404779069503,"y":0.24435387271894335},{"x":0.6674814464589738,"y":0.24435387271894335}]}}},{"id":"55","text":"No.","bounding_box":{"left":0.6957005777162246,"top":0.23437152621771543,"width":0.022701162922068696,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.6957005777162246,"y":0.23437152621771543},{"x":0.7184017406382933,"y":0.23437152621771543},{"x":0.7184017406382933,"y":0.24392582313663205},{"x":0.6957005777162246,"y":0.24435387271894335}]}}},{"id":"56","text":"888-9999","bounding_box":{"left":0.8779148207563315,"top":0.23437152621771543,"width":0.0552160351248141,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8779148207563315,"y":0.23480814863034338},{"x":0.9325137412586969,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.24392582313663205},{"x":0.8779148207563315,"y":0.2434892007240041}]}}},{"id":"57","text":"Bank","bounding_box":{"left":0.6674814464589738,"top":0.24869441917727445,"width":0.02821913125725084,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.2578120936835631},{"x":0.6674814464589738,"y":0.2578120936835631}]}}},{"id":"58","text":"World","bounding_box":{"left":0.8294509832115972,"top":0.2482663491834624,"width":0.03557644160456963,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.8294509832115972,"y":0.2482663491834624},{"x":0.8650274248161668,"y":0.24869441917727445},{"x":0.8650274248161668,"y":0.2582487160961911},{"x":0.8294509832115972,"y":0.2586767860900031}]}}},{"id":"59","text":"Wide","bounding_box":{"left":0.8693232234628884,"top":0.24869441917727445,"width":0.03189775758029667,"height":0.009554296918916655,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.24869441917727445},{"x":0.9006159259771732,"y":0.24869441917727445},{"x":0.901220981043185,"y":0.2582487160961911},{"x":0.8699403380853371,"y":0.2582487160961911}]}}},{"id":"60","text":"Bank","bounding_box":{"left":0.904294610001446,"top":0.24869441917727445,"width":0.028836245879699685,"height":0.009554296918916655,"polygon":{"coordinates":[{"x":0.904294610001446,"y":0.24869441917727445},{"x":0.9325137412586969,"y":0.24869441917727445},{"x":0.9331308558811456,"y":0.2582487160961911},{"x":0.9049117246238948,"y":0.2582487160961911}]}}},{"id":"61","text":"Posting","bounding_box":{"left":0.07975653284636575,"top":0.26953237741648695,"width":0.04540228978087035,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269960447410299},{"x":0.1251588226272361,"y":0.26953237741648695},{"x":0.1251588226272361,"y":0.28125268156091154},{"x":0.08037367631942799,"y":0.2808160591482836}]}}},{"id":"62","text":"Date","bounding_box":{"left":0.12822033432783322,"top":0.26953237741648695,"width":0.030675587891836026,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.12822033432783322,"y":0.26953237741648695},{"x":0.15827877874660704,"y":0.26953237741648695},{"x":0.15889592221966925,"y":0.28125268156091154},{"x":0.12883747780089547,"y":0.28125268156091154}]}}},{"id":"63","text":"06/04/25","bounding_box":{"left":0.23497380710502905,"top":0.269960447410299,"width":0.05459890607705861,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.269960447410299},{"x":0.28957271318208766,"y":0.269960447410299},{"x":0.28957271318208766,"y":0.2799428143230277},{"x":0.23497380710502905,"y":0.2799428143230277}]}}},{"id":"64","text":"Account","bounding_box":{"left":0.666864331836525,"top":0.2634539345494614,"width":0.0503152391133076,"height":0.009117674506288698,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2634539345494614},{"x":0.7171795709498326,"y":0.2634539345494614},{"x":0.7165623986261569,"y":0.2725716090557501},{"x":0.6680986187826495,"y":0.2725716090557501}]}}},{"id":"65","text":"No.","bounding_box":{"left":0.7196360275844178,"top":0.2634539345494614,"width":0.0214668759759441,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.7196360275844178,"y":0.2634539345494614},{"x":0.7411029035603619,"y":0.2638905569620894},{"x":0.7404857312366862,"y":0.2729996790495621},{"x":0.7196360275844178,"y":0.2725716090557501}]}}},{"id":"66","text":"99-99-888","bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}}},{"id":"67","text":"Due","bounding_box":{"left":0.08097871696013319,"top":0.28341864796341804,"width":0.0239233326105293,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.28341864796341804},{"x":0.10490204957066249,"y":0.28341864796341804},{"x":0.10490204957066249,"y":0.29296439246351874},{"x":0.08097871696013319,"y":0.29296439246351874}]}}},{"id":"68","text":"Date","bounding_box":{"left":0.10919784100473069,"top":0.28341864796341804,"width":0.027614076191238943,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.10919784100473069,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.29253634288120745},{"x":0.10919784100473069,"y":0.29296439246351874}]}}},{"id":"69","text":"07/31/25","bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}}},{"id":"70","text":"Payment","bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.053376729175944534,"height":0.011283661320295846,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.13435544613607772,"y":0.3098984674800296},{"x":0.13435544613607772,"y":0.3207455063876975},{"x":0.08097871696013319,"y":0.3207455063876975}]}}},{"id":"71","text":"Terms","bounding_box":{"left":0.13742906066903188,"top":0.30946184506740165,"width":0.03619357065232506,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.13742906066903188,"y":0.3098984674800296},{"x":0.1730054878482947,"y":0.30946184506740165},{"x":0.17362263132135694,"y":0.3198808139812575},{"x":0.13742906066903188,"y":0.32030888397506957}]}}},{"id":"72","text":"End","bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.02147896438299446,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.2570578121287287,"y":0.3098984674800296},{"x":0.2570578121287287,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}}},{"id":"73","text":"of","bounding_box":{"left":0.2613536107754503,"top":0.3098984674800296,"width":0.012875278682500935,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.2613536107754503,"y":0.3098984674800296},{"x":0.2742288894579512,"y":0.3098984674800296},{"x":0.2742288894579512,"y":0.3194442119801303},{"x":0.2613536107754503,"y":0.3194442119801303}]}}},{"id":"74","text":"Next","bounding_box":{"left":0.27668534609253637,"top":0.3098984674800296,"width":0.02883627473031314,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.27668534609253637,"y":0.3098984674800296},{"x":0.3055216208228495,"y":0.3098984674800296},{"x":0.3055216208228495,"y":0.3194442119801303},{"x":0.27668534609253637,"y":0.3194442119801303}]}}},{"id":"75","text":"Month","bounding_box":{"left":0.30797807745743466,"top":0.3098984674800296,"width":0.03987221140067765,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.30797807745743466,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3194442119801303},{"x":0.30797807745743466,"y":0.3194442119801303}]}}},{"id":"76","text":"ABN","bounding_box":{"left":0.6680986187826495,"top":0.30338338178887536,"width":0.022701162922068585,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.6680986187826495,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.312501056295164},{"x":0.6680986187826495,"y":0.312501056295164}]}}},{"id":"77","text":"53001003000","bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}}},{"id":"78","text":"Shipment","bounding_box":{"left":0.08097871696013319,"top":0.32291149320170476,"width":0.05645034370889869,"height":0.011292234150612535,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.3233481156143327},{"x":0.13742906066903188,"y":0.32291149320170476},{"x":0.13742906066903188,"y":0.3342037273523173},{"x":0.08159586043319543,"y":0.3342037273523173}]}}},{"id":"79","text":"Method","bounding_box":{"left":0.14049057236962897,"top":0.32291149320170476,"width":0.0478587536281089,"height":0.011292234150612535,"polygon":{"coordinates":[{"x":0.14049057236962897,"y":0.32291149320170476},{"x":0.18834932599773788,"y":0.32291149320170476},{"x":0.18834932599773788,"y":0.3342037273523173},{"x":0.14049057236962897,"y":0.3342037273523173}]}}},{"id":"80","text":"Prices","bounding_box":{"left":0.08037367631942799,"top":0.33636969375482373,"width":0.03435423585284203,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.33636969375482373},{"x":0.11411077591186114,"y":0.33636969375482373},{"x":0.11472791217227002,"y":0.3476533754866204},{"x":0.08097871696013319,"y":0.34721673266249165}]}}},{"id":"81","text":"Including","bounding_box":{"left":0.11717228039980487,"top":0.33636969375482373,"width":0.05645035092155207,"height":0.011720283732923886,"polygon":{"coordinates":[{"x":0.11717228039980487,"y":0.33636969375482373},{"x":0.17362263132135694,"y":0.33636969375482373},{"x":0.17362263132135694,"y":0.3480899774877476},{"x":0.11778942387286712,"y":0.3476533754866204}]}}},{"id":"82","text":"VAT","bounding_box":{"left":0.1779184155427718,"top":0.33636969375482373,"width":0.025145516724296713,"height":0.011720283732923886,"polygon":{"coordinates":[{"x":0.1779184155427718,"y":0.33636969375482373},{"x":0.2030639322670685,"y":0.33636969375482373},{"x":0.2030639322670685,"y":0.3476533754866204},{"x":0.1779184155427718,"y":0.3480899774877476}]}}},{"id":"83","text":"No","bounding_box":{"left":0.23557884774573423,"top":0.3372343861612638,"width":0.017183165736272876,"height":0.008681072505161425,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3372343861612638},{"x":0.2527620134820071,"y":0.3372343861612638},{"x":0.2527620134820071,"y":0.3459154586664252},{"x":0.23557884774573423,"y":0.3459154586664252}]}}},{"id":"84","text":"Direct","bounding_box":{"left":0.5337431582212651,"top":0.38020306503994084,"width":0.03926718518527916,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5337431582212651,"y":0.38020306503994084},{"x":0.5730103434065442,"y":0.38020306503994084},{"x":0.5730103434065442,"y":0.39018543195266947},{"x":0.5337431582212651,"y":0.39018543195266947}]}}},{"id":"85","text":"Allow","bounding_box":{"left":0.6797517277766898,"top":0.37977499504612877,"width":0.031909874837960484,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6797517277766898,"y":0.37977499504612877},{"x":0.7116616026146503,"y":0.37977499504612877},{"x":0.7116616026146503,"y":0.38975736195885746},{"x":0.6797517277766898,"y":0.38975736195885746}]}}},{"id":"86","text":"Unit","bounding_box":{"left":0.4404941960066827,"top":0.3927965935981206,"width":0.027601987784188653,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.4404941960066827,"y":0.3927965935981206},{"x":0.4674790403178091,"y":0.3927965935981206},{"x":0.46809618379087137,"y":0.40277896051084927},{"x":0.4404941960066827,"y":0.40234235850972205}]}}},{"id":"87","text":"of","bounding_box":{"left":0.47055266927607003,"top":0.39235999159699336,"width":0.015948878790148335,"height":0.010418968913855908,"polygon":{"coordinates":[{"x":0.47055266927607003,"y":0.3927965935981206},{"x":0.4858843757425427,"y":0.39235999159699336},{"x":0.48650154806621837,"y":0.40277896051084927},{"x":0.47055266927607003,"y":0.40277896051084927}]}}},{"id":"88","text":"Unit","bounding_box":{"left":0.5453962672153053,"top":0.39235999159699336,"width":0.028836245879699685,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.5453962672153053,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.4014776456917813},{"x":0.546013381837754,"y":0.4019057156855933}]}}},{"id":"89","text":"Invoice","bounding_box":{"left":0.6785295003870021,"top":0.3927965935981206,"width":0.04539020858647347,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.3927965935981206},{"x":0.7239197089734756,"y":0.39322466359193264},{"x":0.7239197089734756,"y":0.40277896051084927},{"x":0.6785295003870021,"y":0.40277896051084927}]}}},{"id":"90","text":"VAT","bounding_box":{"left":0.774840003152795,"top":0.39235999159699336,"width":0.02639190650277834,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.774840003152795,"y":0.39235999159699336},{"x":0.8012319096555733,"y":0.39235999159699336},{"x":0.8012319096555733,"y":0.40234235850972205},{"x":0.774840003152795,"y":0.40234235850972205}]}}},{"id":"91","text":"No.","bounding_box":{"left":0.08221300390625766,"top":0.4053815493259837,"width":0.022689045664404828,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4053815493259837},{"x":0.10490204957066249,"y":0.4149273142375851},{"x":0.08221300390625766,"y":0.4149273142375851}]}}},{"id":"92","text":"Description","bounding_box":{"left":0.17607910238124885,"top":0.4049449473248565,"width":0.07238711245403665,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4053815493259837},{"x":0.2484662148352855,"y":0.4049449473248565},{"x":0.2484662148352855,"y":0.4166652310577803},{"x":0.17668414302195404,"y":0.4153639162387123}]}}},{"id":"93","text":"Quantity","bounding_box":{"left":0.3570590296246177,"top":0.4049449473248565,"width":0.05643823366388828,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.3570590296246177,"y":0.4049449473248565},{"x":0.413497263288506,"y":0.4053815493259837},{"x":0.413497263288506,"y":0.4166652310577803},{"x":0.3576640558400162,"y":0.4162286290566531}]}}},{"id":"94","text":"Measure","bounding_box":{"left":0.43925993791117174,"top":0.4058181921501124,"width":0.0552160351248141,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.4058181921501124},{"x":0.49385885841353705,"y":0.4058181921501124},{"x":0.49447597303598584,"y":0.4153639162387123},{"x":0.43987705253362047,"y":0.4153639162387123}]}}},{"id":"95","text":"Cost","bounding_box":{"left":0.5447790948916296,"top":0.4053815493259837,"width":0.029453418203375437,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.5447790948916296,"y":0.4053815493259837},{"x":0.574232513095005,"y":0.4053815493259837},{"x":0.574232513095005,"y":0.4149273142375851},{"x":0.5447790948916296,"y":0.4149273142375851}]}}},{"id":"96","text":"Discount","bounding_box":{"left":0.5914157076818913,"top":0.4049449473248565,"width":0.05766043220296235,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5914157076818913,"y":0.4049449473248565},{"x":0.6490761398848537,"y":0.4049449473248565},{"x":0.6490761398848537,"y":0.4153639162387123},{"x":0.5914157076818913,"y":0.4153639162387123}]}}},{"id":"97","text":"%","bounding_box":{"left":0.6564455097886093,"top":0.4053815493259837,"width":0.008579480035779352,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.6564455097886093,"y":0.4153639162387123},{"x":0.6570505648546212,"y":0.4053815493259837},{"x":0.6650249898243886,"y":0.4053815493259837},{"x":0.6650249898243886,"y":0.4153639162387123}]}}},{"id":"98","text":"Discount","bounding_box":{"left":0.679134555453014,"top":0.4053815493259837,"width":0.057055377136950525,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.679134555453014,"y":0.4058181921501124},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4153639162387123},{"x":0.679134555453014,"y":0.4149273142375851}]}}},{"id":"99","text":"Identifier","bounding_box":{"left":0.7730006611406586,"top":0.4049449473248565,"width":0.06074612071766017,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.415800559062841},{"x":0.7736177757631074,"y":0.4153639162387123}]}}},{"id":"100","text":"Amount","bounding_box":{"left":0.8815934470793774,"top":0.4053815493259837,"width":0.05214246386778021,"height":0.010419009736857332,"polygon":{"coordinates":[{"x":0.8815934470793774,"y":0.4053815493259837},{"x":0.9337359109471576,"y":0.4053815493259837},{"x":0.9337359109471576,"y":0.415800559062841},{"x":0.8815934470793774,"y":0.4149273142375851}]}}},{"id":"101","text":"IT","bounding_box":{"left":0.17607910238124885,"top":0.4296868296097721,"width":0.01165308014342678,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4296868296097721},{"x":0.18773218252467563,"y":0.43012343161089933},{"x":0.18773218252467563,"y":0.4409705113415687},{"x":0.17607910238124885,"y":0.44053386851744003}]}}},{"id":"102","text":"Support","bounding_box":{"left":0.19079369422527276,"top":0.43012343161089933,"width":0.048463808694120813,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.19079369422527276,"y":0.43012343161089933},{"x":0.23925750291939357,"y":0.4309881444288401},{"x":0.23925750291939357,"y":0.44140711334269594},{"x":0.19079369422527276,"y":0.4409705113415687}]}}},{"id":"103","text":"14","bounding_box":{"left":0.41104080665392084,"top":0.4296868296097721,"width":0.012887367089551294,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.41104080665392084,"y":0.4296868296097721},{"x":0.42392817374347214,"y":0.4296868296097721},{"x":0.42392817374347214,"y":0.4388045245275615},{"x":0.41104080665392084,"y":0.4388045245275615}]}}},{"id":"104","text":"200.00","bounding_box":{"left":0.5331260435988163,"top":0.43012343161089933,"width":0.03865001286160341,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5331260435988163,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.43012343161089933},{"x":0.5717760564604197,"y":0.44010579852362797},{"x":0.5337431582212651,"y":0.4396691965225008}]}}},{"id":"105","text":"No","bounding_box":{"left":0.6785295003870021,"top":0.43055150160471134,"width":0.01778824965289827,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.6785295003870021,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43055150160471134},{"x":0.6963177500399004,"y":0.43923255369837205},{"x":0.6785295003870021,"y":0.4388045245275615}]}}},{"id":"106","text":"NON","bounding_box":{"left":0.7736177757631074,"top":0.4296868296097721,"width":0.02761413389246592,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7736177757631074,"y":0.4296868296097721},{"x":0.8012319096555733,"y":0.4296868296097721},{"x":0.8012319096555733,"y":0.4396691965225008},{"x":0.7742349480867831,"y":0.4396691965225008}]}}},{"id":"107","text":"GST","bounding_box":{"left":0.808589162301665,"top":0.4292501867856434,"width":0.025157619556653743,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.808589162301665,"y":0.4296868296097721},{"x":0.8337467818583187,"y":0.4292501867856434},{"x":0.8337467818583187,"y":0.44010579852362797},{"x":0.808589162301665,"y":0.4396691965225008}]}}},{"id":"108","text":"2,800.00","bounding_box":{"left":0.8834327890915138,"top":0.4296868296097721,"width":0.050303121855643784,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8834327890915138,"y":0.4296868296097721},{"x":0.9331308558811456,"y":0.4296868296097721},{"x":0.9337359109471576,"y":0.44053386851744003},{"x":0.8834327890915138,"y":0.44010579852362797}]}}},{"id":"109","text":"Support","bounding_box":{"left":0.17607910238124885,"top":0.44357310015670315,"width":0.0472295073226896,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.44400970215783037},{"x":0.22330860970393845,"y":0.44357310015670315},{"x":0.22330860970393845,"y":0.4548567818884998},{"x":0.17668414302195404,"y":0.4548567818884998}]}}},{"id":"110","text":"period:","bounding_box":{"left":0.22699936770995485,"top":0.44357310015670315,"width":0.04171152456220059,"height":0.011720283732923886,"polygon":{"coordinates":[{"x":0.22699936770995485,"y":0.44357310015670315},{"x":0.26871089227215544,"y":0.44357310015670315},{"x":0.2680937776497067,"y":0.45529338388962703},{"x":0.22699936770995485,"y":0.4548567818884998}]}}},{"id":"111","text":"May","bounding_box":{"left":0.27178452123041635,"top":0.44357310015670315,"width":0.027601987784188653,"height":0.011720283732923886,"polygon":{"coordinates":[{"x":0.27178452123041635,"y":0.44357310015670315},{"x":0.299386509014605,"y":0.44357310015670315},{"x":0.299386509014605,"y":0.45529338388962703},{"x":0.27178452123041635,"y":0.45529338388962703}]}}},{"id":"112","text":"Total","bounding_box":{"left":0.7705563217637372,"top":0.47048096925562605,"width":0.033119927268757454,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7705563217637372,"y":0.47048096925562605},{"x":0.8036762490324947,"y":0.47048096925562605},{"x":0.8036762490324947,"y":0.4808999381694819},{"x":0.7705563217637372,"y":0.4808999381694819}]}}},{"id":"113","text":"AUD","bounding_box":{"left":0.8061327056670798,"top":0.47048096925562605,"width":0.026996961568790168,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8061327056670798,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.4808999381694819},{"x":0.8067498779907556,"y":0.4808999381694819}]}}},{"id":"114","text":"2,800.00","bounding_box":{"left":0.8797541050672409,"top":0.47048096925562605,"width":0.05275963619145596,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.8797541050672409,"y":0.47135421408088196},{"x":0.9325137412586969,"y":0.47048096925562605},{"x":0.9325137412586969,"y":0.48133658099361065},{"x":0.8803712773909167,"y":0.4808999381694819}]}}},{"id":"115","text":"VAT","bounding_box":{"left":0.08221300390625766,"top":0.529947100738186,"width":0.02637979645776785,"height":0.012148312903734415,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.529947100738186},{"x":0.10859280036402551,"y":0.529947100738186},{"x":0.10859280036402551,"y":0.5420954136419204},{"x":0.08221300390625766,"y":0.5420954136419204}]}}},{"id":"116","text":"Amount","bounding_box":{"left":0.11227144832503147,"top":0.529947100738186,"width":0.051537416014421605,"height":0.012148312903734415,"polygon":{"coordinates":[{"x":0.11227144832503147,"y":0.529947100738186},{"x":0.16319172086639086,"y":0.529947100738186},{"x":0.16380886433945308,"y":0.5420954136419204},{"x":0.11227144832503147,"y":0.5420954136419204}]}}},{"id":"117","text":"Specification","bounding_box":{"left":0.16687036161474345,"top":0.529947100738186,"width":0.08281805175961623,"height":0.012584955727863112,"polygon":{"coordinates":[{"x":0.16687036161474345,"y":0.529947100738186},{"x":0.24908335830834774,"y":0.529947100738186},{"x":0.24968841337435968,"y":0.5425320564660491},{"x":0.16687036161474345,"y":0.5420954136419204}]}}},{"id":"118","text":"Inv.","bounding_box":{"left":0.4503079629885866,"top":0.5438333712851171,"width":0.025762674622665682,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.4503079629885866,"y":0.5438333712851171},{"x":0.4760706376112523,"y":0.5438333712851171},{"x":0.4760706376112523,"y":0.5538157381978457},{"x":0.4503079629885866,"y":0.5538157381978457}]}}},{"id":"119","text":"Disc.","bounding_box":{"left":0.47852709424583745,"top":0.5438333712851171,"width":0.030675616742449507,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.47852709424583745,"y":0.5438333712851171},{"x":0.509202710988287,"y":0.5438333712851171},{"x":0.509202710988287,"y":0.554252340198973},{"x":0.47852709424583745,"y":0.5538157381978457}]}}},{"id":"120","text":"Base","bounding_box":{"left":0.512264222688884,"top":0.5433967284609884,"width":0.029453360502148418,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.512264222688884,"y":0.5438333712851171},{"x":0.5417175831910325,"y":0.5433967284609884},{"x":0.5417175831910325,"y":0.554252340198973},{"x":0.512264222688884,"y":0.554252340198973}]}}},{"id":"121","text":"Invoice","bounding_box":{"left":0.5668752027476862,"top":0.5433967284609884,"width":0.04722955059860989,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.5668752027476862,"y":0.5433967284609884},{"x":0.6134996982802842,"y":0.5438333712851171},{"x":0.6141047533462961,"y":0.554252340198973},{"x":0.5668752027476862,"y":0.5538157381978457}]}}},{"id":"122","text":"Discount","bounding_box":{"left":0.6165612099808813,"top":0.5433967284609884,"width":0.05828966408307501,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.6165612099808813,"y":0.5438333712851171},{"x":0.6748508740639563,"y":0.5433967284609884},{"x":0.6748508740639563,"y":0.554252340198973},{"x":0.6165612099808813,"y":0.554252340198973}]}}},{"id":"123","text":"VAT","bounding_box":{"left":0.08159586043319543,"top":0.5559902570191682,"width":0.025762652984705592,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5559902570191682},{"x":0.10735851341790102,"y":0.5559902570191682},{"x":0.10735851341790102,"y":0.5664006939257088},{"x":0.08221300390625766,"y":0.5664006939257088}]}}},{"id":"124","text":"Identifier","bounding_box":{"left":0.1104321207382018,"top":0.5559902570191682,"width":0.061956223637030655,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.1104321207382018,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5668372959268361},{"x":0.1104321207382018,"y":0.5664006939257088}]}}},{"id":"125","text":"VAT","bounding_box":{"left":0.24600975820070034,"top":0.5555536550180409,"width":0.026379789245114443,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.24600975820070034,"y":0.5555536550180409},{"x":0.2723895474458148,"y":0.5555536550180409},{"x":0.2723895474458148,"y":0.5659726239318967},{"x":0.24600975820070034,"y":0.5659726239318967}]}}},{"id":"126","text":"%","bounding_box":{"left":0.28098114473925795,"top":0.5555536550180409,"width":0.006135111808244553,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.28098114473925795,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5659726239318967},{"x":0.28098114473925795,"y":0.5659726239318967}]}}},{"id":"127","text":"Line","bounding_box":{"left":0.33435786670254913,"top":0.5559902570191682,"width":0.02637981809572798,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.33435786670254913,"y":0.5559902570191682},{"x":0.3607376847982771,"y":0.5564183270129802},{"x":0.3607376847982771,"y":0.5659726239318967},{"x":0.33435786670254913,"y":0.5659726239318967}]}}},{"id":"128","text":"Amount","bounding_box":{"left":0.3650334545943852,"top":0.5564183270129802,"width":0.05214246386778015,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.3650334545943852,"y":0.5564183270129802},{"x":0.41717591846216534,"y":0.5564183270129802},{"x":0.41717591846216534,"y":0.5664006939257088},{"x":0.3650334545943852,"y":0.5664006939257088}]}}},{"id":"129","text":"Amount","bounding_box":{"left":0.49385885841353705,"top":0.5568549290141074,"width":0.05153740880176827,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.49385885841353705,"y":0.5568549290141074},{"x":0.5453962672153053,"y":0.5568549290141074},{"x":0.5453962672153053,"y":0.5664006939257088},{"x":0.49385885841353705,"y":0.5659726239318967}]}}},{"id":"130","text":"Amount","bounding_box":{"left":0.6251528072743244,"top":0.5564183270129802,"width":0.05275957849022894,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.6251528072743244,"y":0.5568549290141074},{"x":0.6779123857645534,"y":0.5564183270129802},{"x":0.6779123857645534,"y":0.5664006939257088},{"x":0.6251528072743244,"y":0.5659726239318967}]}}},{"id":"131","text":"VAT","bounding_box":{"left":0.7423250732488226,"top":0.5559902570191682,"width":0.026996961568790168,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.7423250732488226,"y":0.5559902570191682},{"x":0.7693220348176127,"y":0.5564183270129802},{"x":0.7693220348176127,"y":0.5664006939257088},{"x":0.7423250732488226,"y":0.5659726239318967}]}}},{"id":"132","text":"Base","bounding_box":{"left":0.7723956060746467,"top":0.5564183270129802,"width":0.030058473269387265,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.7723956060746467,"y":0.5564183270129802},{"x":0.802454079344034,"y":0.5564183270129802},{"x":0.802454079344034,"y":0.5664006939257088},{"x":0.7723956060746467,"y":0.5664006939257088}]}}},{"id":"133","text":"VAT","bounding_box":{"left":0.8533743158221265,"top":0.5559902570191682,"width":0.026379789245114416,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.5559902570191682},{"x":0.8797541050672409,"y":0.5564183270129802},{"x":0.8797541050672409,"y":0.5664006939257088},{"x":0.8539914881458023,"y":0.5664006939257088}]}}},{"id":"134","text":"Amount","bounding_box":{"left":0.8840499037139625,"top":0.5564183270129802,"width":0.05275963619145596,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8840499037139625,"y":0.5564183270129802},{"x":0.9368095399054185,"y":0.5564183270129802},{"x":0.9368095399054185,"y":0.5668372959268361},{"x":0.8846670760376383,"y":0.5664006939257088}]}}},{"id":"135","text":"NON","bounding_box":{"left":0.08159586043319543,"top":0.5802955373029566,"width":0.026996939930830077,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5807235664737671},{"x":0.10859280036402551,"y":0.5802955373029566},{"x":0.10859280036402551,"y":0.5902779042156853},{"x":0.08159586043319543,"y":0.5902779042156853}]}}},{"id":"136","text":"GST","bounding_box":{"left":0.11595009628603745,"top":0.5802955373029566,"width":0.024540476083591528,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.11595009628603745,"y":0.5802955373029566},{"x":0.13987342889656673,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5907059333864958},{"x":0.11595009628603745,"y":0.5907059333864958}]}}},{"id":"137","text":"0","bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.007357310347318735,"height":0.008681092916662192,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.2858940868590418,"y":0.5807235664737671},{"x":0.2871162565475025,"y":0.5889765893966172},{"x":0.2803640012661957,"y":0.5894046593904293}]}}},{"id":"138","text":"2,800.00","bounding_box":{"left":0.3668727966065216,"top":0.5802955373029566,"width":0.049685978382581486,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.3668727966065216,"y":0.5807235664737671},{"x":0.41595374877370467,"y":0.5802955373029566},{"x":0.4165587749891031,"y":0.5907059333864958},{"x":0.36748994007958385,"y":0.5907059333864958}]}}},{"id":"139","text":"0.00","bounding_box":{"left":0.5196335925926396,"top":0.5807235664737671,"width":0.02514550229898993,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.5196335925926396,"y":0.5807235664737671},{"x":0.5447790948916296,"y":0.5807235664737671},{"x":0.5441740975268446,"y":0.5902779042156853},{"x":0.5196335925926396,"y":0.5898412613915565}]}}},{"id":"140","text":"0.00","bounding_box":{"left":0.651532596519439,"top":0.5802955373029566,"width":0.02454044723297799,"height":0.009545724088599883,"polygon":{"coordinates":[{"x":0.651532596519439,"y":0.5898412613915565},{"x":0.6521497111418877,"y":0.5802955373029566},{"x":0.676073043752417,"y":0.5802955373029566},{"x":0.676073043752417,"y":0.5898412613915565}]}}},{"id":"141","text":"2,800.00","bounding_box":{"left":0.7521509574883902,"top":0.5802955373029566,"width":0.04968594953196803,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.7521509574883902,"y":0.5802955373029566},{"x":0.8018369070203583,"y":0.5802955373029566},{"x":0.8018369070203583,"y":0.5907059333864958},{"x":0.7521509574883902,"y":0.5911425762106245}]}}},{"id":"142","text":"0.00","bounding_box":{"left":0.9098125783366283,"top":0.5802955373029566,"width":0.026379789245114416,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.9098125783366283,"y":0.5802955373029566},{"x":0.9361923675817427,"y":0.5802955373029566},{"x":0.9355873125157308,"y":0.5902779042156853},{"x":0.9098125783366283,"y":0.5898412613915565}]}}},{"id":"143","text":"Total","bounding_box":{"left":0.2552184989672057,"top":0.6076400084030066,"width":0.03189775758029678,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.2552184989672057,"y":0.6076400084030066},{"x":0.2871162565475025,"y":0.6076400084030066},{"x":0.2871162565475025,"y":0.6171857324916066},{"x":0.2552184989672057,"y":0.6171857324916066}]}}},{"id":"144","text":"2,800.00","bounding_box":{"left":0.36257699795980003,"top":0.6076400084030066,"width":0.05398177702930307,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.36257699795980003,"y":0.6080680783968186},{"x":0.41595374877370467,"y":0.6076400084030066},{"x":0.4165587749891031,"y":0.6176223753157353},{"x":0.36257699795980003,"y":0.6176223753157353}]}}},{"id":"145","text":"0.00","bounding_box":{"left":0.5177942505805032,"top":0.6076400084030066,"width":0.026379846946341434,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.5177942505805032,"y":0.6076400084030066},{"x":0.5441740975268446,"y":0.6076400084030066},{"x":0.5441740975268446,"y":0.6171857324916066},{"x":0.5177942505805032,"y":0.6167491304904794}]}}},{"id":"146","text":"0.00","bounding_box":{"left":0.6496932545073025,"top":0.6076400084030066,"width":0.025762674622665682,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.6496932545073025,"y":0.6076400084030066},{"x":0.6754559291299682,"y":0.6076400084030066},{"x":0.6754559291299682,"y":0.6171857324916066},{"x":0.6496932545073025,"y":0.6171857324916066}]}}},{"id":"147","text":"2,800.00","bounding_box":{"left":0.7472379865179929,"top":0.6072034064018794,"width":0.05459892050236537,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.7472379865179929,"y":0.6076400084030066},{"x":0.8018369070203583,"y":0.6072034064018794},{"x":0.8018369070203583,"y":0.6180504453095473},{"x":0.7478551588416686,"y":0.6180504453095473}]}}},{"id":"148","text":"0.00","bounding_box":{"left":0.9085904086481675,"top":0.6076400084030066,"width":0.026379789245114527,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9085904086481675,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6171857324916066},{"x":0.9085904086481675,"y":0.6171857324916066}]}}},{"id":"149","text":"Ship-to","bounding_box":{"left":0.08221300390625766,"top":0.651036736863995,"width":0.04662447389463781,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.651036736863995},{"x":0.12822033432783322,"y":0.651036736863995},{"x":0.12883747780089547,"y":0.6623204185957916},{"x":0.08281804454696286,"y":0.6618923486019795}]}}},{"id":"150","text":"Address","bounding_box":{"left":0.1325161329745548,"top":0.651036736863995,"width":0.05153740880176824,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.1325161329745548,"y":0.651036736863995},{"x":0.18405354177632305,"y":0.651036736863995},{"x":0.18405354177632305,"y":0.6618923486019795},{"x":0.1325161329745548,"y":0.6623204185957916}]}}},{"id":"151","text":"CRONUS","bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.052759585702882306,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.13435544613607772,"y":0.6644949782401155},{"x":0.13497258960913996,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}}},{"id":"152","text":"International","bounding_box":{"left":0.13742906066903188,"top":0.6644949782401155,"width":0.07668292552606498,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.13742906066903188,"y":0.6644949782401155},{"x":0.21411198619509686,"y":0.6644949782401155},{"x":0.21411198619509686,"y":0.6753420171477834},{"x":0.13803410130973706,"y":0.6753420171477834}]}}},{"id":"153","text":"Ltd.","bounding_box":{"left":0.21717349789569396,"top":0.6644949782401155,"width":0.0245404616582848,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.21717349789569396,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.21717349789569396,"y":0.6753420171477834}]}}},{"id":"154","text":"5","bounding_box":{"left":0.08159586043319543,"top":0.6788178507881738,"width":0.008591582868136424,"height":0.010847079730669451,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6788178507881738},{"x":0.08957029982826961,"y":0.6788178507881738},{"x":0.09018744330133185,"y":0.6896649305188433},{"x":0.08221300390625766,"y":0.6896649305188433}]}}},{"id":"155","text":"The","bounding_box":{"left":0.09386609126233782,"top":0.6788178507881738,"width":0.021466868763290764,"height":0.010847079730669451,"polygon":{"coordinates":[{"x":0.09386609126233782,"y":0.6788178507881738},{"x":0.11472791217227002,"y":0.6788178507881738},{"x":0.11533296002562858,"y":0.6896649305188433},{"x":0.09448323473540006,"y":0.6896649305188433}]}}},{"id":"156","text":"Ring","bounding_box":{"left":0.11778942387286712,"top":0.6788178507881738,"width":0.027614076191238957,"height":0.011283640908795078,"polygon":{"coordinates":[{"x":0.11778942387286712,"y":0.6788178507881738},{"x":0.14540350006410607,"y":0.6792544936123025},{"x":0.14540350006410607,"y":0.6901014916969689},{"x":0.11840656734592936,"y":0.6896649305188433}]}}},{"id":"157","text":"Westminster","bounding_box":{"left":0.08221300390625766,"top":0.6927041213351048,"width":0.07606577484034938,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6927041213351048},{"x":0.15767373810590182,"y":0.6931407641592335},{"x":0.15827877874660704,"y":0.7026864882478335},{"x":0.08221300390625766,"y":0.7026864882478335}]}}},{"id":"158","text":"CANBERRA","bounding_box":{"left":0.08159586043319543,"top":0.7057257607100982,"width":0.0662520078584455,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.7057257607100982},{"x":0.14724282765093574,"y":0.7057257607100982},{"x":0.14784786829164093,"y":0.7157081276228269},{"x":0.08221300390625766,"y":0.7161446888009525}]}}},{"id":"159","text":"NSW","bounding_box":{"left":0.15092148282459508,"top":0.7057257607100982,"width":0.02637978924511447,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.15092148282459508,"y":0.7057257607100982},{"x":0.17668414302195404,"y":0.7057257607100982},{"x":0.17730127206970955,"y":0.7161446888009525},{"x":0.15153862629765733,"y":0.7157081276228269}]}}},{"id":"160","text":"2600","bounding_box":{"left":0.18589286936315272,"top":0.7057257607100982,"width":0.028836260305006384,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.18589286936315272,"y":0.7057257607100982},{"x":0.2147291296681591,"y":0.7057257607100982},{"x":0.2147291296681591,"y":0.7161446888009525},{"x":0.1864979100038579,"y":0.7161446888009525}]}}},{"id":"161","text":"Australia","bounding_box":{"left":0.08281804454696286,"top":0.720048592435155,"width":0.051537401589114865,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.08281804454696286,"y":0.7204852352592837},{"x":0.13435544613607772,"y":0.720048592435155},{"x":0.13435544613607772,"y":0.7300309593478835},{"x":0.08281804454696286,"y":0.7295943981697579}]}}}],"selection_marks":[]}],"error":null}},"error":null} \ No newline at end of file diff --git a/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108226.json b/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108226.json deleted file mode 100644 index 4f7f3367b9..0000000000 --- a/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108226.json +++ /dev/null @@ -1 +0,0 @@ -{"outputs":{"1":{"page_count":1,"result":{"context":{"start_page":1,"end_page":1},"fields":{"amountDue":null,"billingAddress":null,"billingAddressRecipient":null,"customerAddress":{"value_text":"5 The Ring Westminster CANBERRA NSW 2600 Australia","value_number":null,"value_date":null,"confidence":0.72,"location":{"bounding_box":{"left":0.7997192719905435,"top":0.10790541914731037,"width":0.1336899346095075,"height":0.053421908496548445,"polygon":{"coordinates":[{"x":0.7997192719905435,"y":0.1605568139018976},{"x":0.8003243270565554,"y":0.10790541914731037},{"x":0.933409206600051,"y":0.10866736005895494},{"x":0.9328041515340391,"y":0.16132732764385882}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerAddressRecipient":null,"customerId":{"value_text":"99-99-888","value_number":null,"value_date":null,"confidence":0.797,"location":{"bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerName":{"value_text":"CRONUS International Ltd.","value_number":null,"value_date":null,"confidence":0.918,"location":{"bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.1570444990131359,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.23925750291939357,"y":0.6644949782401155},{"x":0.23925750291939357,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}},"page":1},"currency_symbol":null,"currency_code":null},"dueDate":{"value_text":"07/31/25","value_number":null,"value_date":"2025-07-31","confidence":0.976,"location":{"bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceDate":{"value_text":"June 4, 2025","value_number":null,"value_date":"2025-06-04","confidence":0.887,"location":{"bounding_box":{"left":0.23497380710502905,"top":0.22916630776444508,"width":0.07484361236454204,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.2395852970898017},{"x":0.23497380710502905,"y":0.2395852970898017}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceId":{"value_text":"108226","value_number":null,"value_date":null,"confidence":0.975,"location":{"bounding_box":{"left":0.2374181753325639,"top":0.24218790631643689,"width":0.04172362739455762,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.2374181753325639,"y":0.24218790631643689},{"x":0.2791418027271215,"y":0.24218790631643689},{"x":0.2791418027271215,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2521702528176648}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceTotal":{"value_text":"12,250.00","value_number":12250,"value_date":null,"confidence":0.926,"location":{"bounding_box":{"left":0.8723968524211493,"top":0.47091757125675326,"width":0.060734003459996355,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.8723968524211493,"y":0.47091757125675326},{"x":0.9331308558811456,"y":0.47091757125675326},{"x":0.9331308558811456,"y":0.4808999381694819},{"x":0.8730018497859342,"y":0.48046333616835474}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"previousUnpaidBalance":null,"purchaseOrder":null,"remittanceAddress":null,"remittanceAddressRecipient":null,"serviceAddress":null,"serviceAddressRecipient":null,"serviceEndDate":null,"serviceStartDate":null,"shippingAddress":{"value_text":"5 The Ring Westminster CANBERRA NSW 2600 Australia","value_number":null,"value_date":null,"confidence":0.88,"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6788178507881738,"width":0.13313326923496366,"height":0.05121310855970973,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6788178507881738},{"x":0.2147291296681591,"y":0.6788178507881738},{"x":0.2147291296681591,"y":0.7300309593478835},{"x":0.08159586043319543,"y":0.7300309593478835}]}},"page":1},"currency_symbol":null,"currency_code":null},"shippingAddressRecipient":{"value_text":"CRONUS International Ltd.","value_number":null,"value_date":null,"confidence":0.918,"location":{"bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.1570444990131359,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.23925750291939357,"y":0.6644949782401155},{"x":0.23925750291939357,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}},"page":1},"currency_symbol":null,"currency_code":null},"subTotal":{"value_text":"12,250.00","value_number":12250,"value_date":null,"confidence":0.536,"location":{"bounding_box":{"left":0.7411029035603619,"top":0.6072034064018794,"width":0.060734003459996355,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.7411029035603619,"y":0.6076400084030066},{"x":0.8012319096555733,"y":0.6072034064018794},{"x":0.8018369070203583,"y":0.6180504453095473},{"x":0.7417200181828106,"y":0.6176223753157353}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"totalTax":{"value_text":"0.00","value_number":0,"value_date":null,"confidence":0.968,"location":{"bounding_box":{"left":0.9085904086481675,"top":0.6076400084030066,"width":0.026379789245114527,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9085904086481675,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6171857324916066},{"x":0.9085904086481675,"y":0.6171857324916066}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"vendorAddress":{"value_text":"10 North Lake Avenue Atlanta, US-GA 31772 USA","value_number":null,"value_date":null,"confidence":0.884,"location":{"bounding_box":{"left":0.08097871696013319,"top":0.08897658939661726,"width":0.13129394164813402,"height":0.03645361359902358,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.08897658939661726},{"x":0.2122726586082672,"y":0.08897658939661726},{"x":0.2122726586082672,"y":0.12543020299564084},{"x":0.08097871696013319,"y":0.12543020299564084}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorAddressRecipient":{"value_text":"Fabrikam, Inc. Krystal York","value_number":null,"value_date":null,"confidence":0.904,"location":{"bounding_box":{"left":0.08037367631942799,"top":0.06163210809081681,"width":0.08097871696013317,"height":0.024741882284915646,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.06163210809081681},{"x":0.16135239327956116,"y":0.06163210809081681},{"x":0.16135239327956116,"y":0.08637399037573246},{"x":0.08037367631942799,"y":0.08637399037573246}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorName":{"value_text":"Fabrikam, Inc. Krystal York","value_number":null,"value_date":null,"confidence":0.904,"location":{"bounding_box":{"left":0.08037367631942799,"top":0.06163210809081681,"width":0.08097871696013317,"height":0.024741882284915646,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.06163210809081681},{"x":0.16135239327956116,"y":0.06163210809081681},{"x":0.16135239327956116,"y":0.08637399037573246},{"x":0.08037367631942799,"y":0.08637399037573246}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerTaxId":null,"vendorTaxId":{"value_text":"503912693","value_number":null,"value_date":null,"confidence":0.684,"location":{"bounding_box":{"left":0.23557884774573423,"top":0.20052052184532704,"width":0.06564697443039369,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.20052052184532704},{"x":0.3012258221761279,"y":0.20052052184532704},{"x":0.3012258221761279,"y":0.21093951117068366},{"x":0.23557884774573423,"y":0.2105028887580557}]}},"page":1},"currency_symbol":null,"currency_code":null},"paymentTerms":{"value_text":"End of Next Month","value_number":null,"value_date":null,"confidence":0.915,"location":{"bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.11165429763931589,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.3472331453850501,"y":0.3098984674800296},{"x":0.3472331453850501,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}},"page":1},"currency_symbol":null,"currency_code":null}},"items":[{"fields":{"amount":{"value_text":"9,000.00","value_number":9000,"value_date":null,"confidence":0.947,"location":{"bounding_box":{"left":0.882815616767838,"top":0.4296868296097721,"width":0.050920294179319536,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.882815616767838,"y":0.4296868296097721},{"x":0.9337359109471576,"y":0.4296868296097721},{"x":0.9337359109471576,"y":0.4409705113415687},{"x":0.8834327890915138,"y":0.44053386851744003}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"description":{"value_text":"Decaf coffee, Colombia","value_number":null,"value_date":null,"confidence":0.923,"location":{"bounding_box":{"left":0.17607910238124885,"top":0.4292501867856434,"width":0.1392562854235045,"height":0.01172032455592531,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4292501867856434},{"x":0.31533538780475334,"y":0.4292501867856434},{"x":0.31533538780475334,"y":0.4409705113415687},{"x":0.17607910238124885,"y":0.4409705113415687}]}},"page":1},"currency_symbol":null,"currency_code":null},"unitPrice":{"value_text":"180.00","value_number":180,"value_date":null,"confidence":0.945,"location":{"bounding_box":{"left":0.5343603305449408,"top":0.4296868296097721,"width":0.03865001286160341,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.5343603305449408,"y":0.4296868296097721},{"x":0.5730103434065442,"y":0.4296868296097721},{"x":0.5723931710828686,"y":0.4396691965225008},{"x":0.5343603305449408,"y":0.4396691965225008}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"quantity":{"value_text":"50","value_number":50,"value_date":null,"confidence":0.946,"location":{"bounding_box":{"left":0.4092014646417844,"top":0.4296868296097721,"width":0.014726709101687718,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.4092014646417844,"y":0.4296868296097721},{"x":0.42392817374347214,"y":0.4296868296097721},{"x":0.42392817374347214,"y":0.43923255369837205},{"x":0.4092014646417844,"y":0.43923255369837205}]}},"page":1},"currency_symbol":null,"currency_code":null},"productCode":{"value_text":"WDB-1000","value_number":null,"value_date":null,"confidence":0.94,"location":{"bounding_box":{"left":0.08221300390625766,"top":0.4296868296097721,"width":0.06441268027161584,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.43012343161089933},{"x":0.1466256841778735,"y":0.4296868296097721},{"x":0.1466256841778735,"y":0.44010579852362797},{"x":0.08221300390625766,"y":0.4396691965225008}]}},"page":1},"currency_symbol":null,"currency_code":null},"unit":{"value_text":"Piece","value_number":null,"value_date":null,"confidence":0.945,"location":{"bounding_box":{"left":0.4404941960066827,"top":0.43012343161089933,"width":0.03128064295784799,"height":0.009545764911601473,"polygon":{"coordinates":[{"x":0.4404941960066827,"y":0.43012343161089933},{"x":0.4717748389645307,"y":0.43055150160471134},{"x":0.47116978389851877,"y":0.4396691965225008},{"x":0.4404941960066827,"y":0.43923255369837205}]}},"page":1},"currency_symbol":null,"currency_code":null},"date":null,"tax":null},"row_text":"WDB-1000 Decaf coffee, Colombia 50 Piece 180.00 Yes NON GST 9,000.00","confidence":0.827,"location":{"bounding_box":{"left":0.08221300390625766,"top":0.4292501867856434,"width":0.8515229070409,"height":0.01172032455592531,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.4409705113415687},{"x":0.08221300390625766,"y":0.4409705113415687}]}},"page":1}},{"fields":{"amount":{"value_text":"3,250.00","value_number":3250,"value_date":null,"confidence":0.947,"location":{"bounding_box":{"left":0.882815616767838,"top":0.44313645733257445,"width":0.0503152391133076,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.882815616767838,"y":0.44313645733257445},{"x":0.9331308558811456,"y":0.44313645733257445},{"x":0.9331308558811456,"y":0.45399206907055906},{"x":0.8834327890915138,"y":0.45355546706943184}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"description":{"value_text":"Remote Pump","value_number":null,"value_date":null,"confidence":0.923,"location":{"bounding_box":{"left":0.1751957398722518,"top":0.44291389032835327,"width":0.08518978856770204,"height":0.012002819726360192,"polygon":{"coordinates":[{"x":0.1751957398722518,"y":0.4538122845719182},{"x":0.17547404731523691,"y":0.44291389032835327},{"x":0.26038552843995383,"y":0.44400970215783037},{"x":0.260107206571662,"y":0.45491671005471346}]}},"page":1},"currency_symbol":null,"currency_code":null},"unitPrice":{"value_text":"65.00","value_number":65,"value_date":null,"confidence":0.945,"location":{"bounding_box":{"left":0.5404954135025718,"top":0.44313645733257445,"width":0.03189775758029678,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.5404954135025718,"y":0.44313645733257445},{"x":0.5723931710828686,"y":0.44313645733257445},{"x":0.5723931710828686,"y":0.4526907950744926},{"x":0.5404954135025718,"y":0.4526907950744926}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"quantity":{"value_text":"50","value_number":50,"value_date":null,"confidence":0.945,"location":{"bounding_box":{"left":0.4092014646417844,"top":0.44313645733257445,"width":0.014109565628625476,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.4092014646417844,"y":0.44313645733257445},{"x":0.42269388679734765,"y":0.44313645733257445},{"x":0.4233110302704099,"y":0.45225415225036386},{"x":0.4092014646417844,"y":0.45225415225036386}]}},"page":1},"currency_symbol":null,"currency_code":null},"productCode":{"value_text":"F-100","value_number":null,"value_date":null,"confidence":0.943,"location":{"bounding_box":{"left":0.08159586043319543,"top":0.44313645733257445,"width":0.03373709959243315,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.44313645733257445},{"x":0.11533296002562858,"y":0.44313645733257445},{"x":0.11533296002562858,"y":0.4526907950744926},{"x":0.08159586043319543,"y":0.4526907950744926}]}},"page":1},"currency_symbol":null,"currency_code":null},"unit":{"value_text":"Piece","value_number":null,"value_date":null,"confidence":0.945,"location":{"bounding_box":{"left":0.4404941960066827,"top":0.44357310015670315,"width":0.030675587891836054,"height":0.009117694917789465,"polygon":{"coordinates":[{"x":0.4404941960066827,"y":0.44357310015670315},{"x":0.47116978389851877,"y":0.44357310015670315},{"x":0.47116978389851877,"y":0.4526907950744926},{"x":0.4404941960066827,"y":0.4526907950744926}]}},"page":1},"currency_symbol":null,"currency_code":null},"date":null,"tax":null},"row_text":"F-100 Remote Pump 50 Piece 65.00 Yes NON GST 3,250.00","confidence":0.824,"location":{"bounding_box":{"left":0.08159586043319543,"top":0.44313645733257445,"width":0.8515349954479502,"height":0.011292254562113302,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.44313645733257445},{"x":0.9331308558811456,"y":0.44313645733257445},{"x":0.9331308558811456,"y":0.45442871189468775},{"x":0.08159586043319543,"y":0.45442871189468775}]}},"page":1}}],"key_value_pairs":[{"key":"Pay-to Vendor No.","value":"10000","confidence":0.875,"key_location":{"bounding_box":{"left":0.08037367631942799,"top":0.18619762888576802,"width":0.11165430485196923,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.19791791261869185},{"x":0.08037367631942799,"y":0.19791791261869185}]}},"page":1},"value_location":{"bounding_box":{"left":0.2374181753325639,"top":0.18576100647314006,"width":0.03497137211325088,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.2374181753325639,"y":0.18576100647314006},{"x":0.2723895474458148,"y":0.18576100647314006},{"x":0.2723895474458148,"y":0.19617999579849668},{"x":0.2374181753325639,"y":0.19617999579849668}]}},"page":1}},{"key":"Phone No.","value":"0666-666-6666","confidence":0.9,"key_location":{"bounding_box":{"left":0.6666707442200392,"top":0.17949420627715698,"width":0.06358981028644384,"height":0.011043948655441393,"polygon":{"coordinates":[{"x":0.6666707442200392,"y":0.18991319560251363},{"x":0.6668764490941889,"y":0.17949420627715698},{"x":0.7302605545064831,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19053815493259837}]}},"page":1},"value_location":{"bounding_box":{"left":0.8423262618940982,"top":0.17969111602493043,"width":0.0901874793645987,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8423262618940982,"y":0.18011916560724173},{"x":0.9325137412586969,"y":0.17969111602493043},{"x":0.9325137412586969,"y":0.18967348293765912},{"x":0.8423262618940982,"y":0.18967348293765912}]}},"page":1}},{"key":"VAT Registration No.","value":"503912693","confidence":0.875,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.20008389943269908,"width":0.12454168636682723,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.2118041831656229},{"x":0.08097871696013319,"y":0.2118041831656229}]}},"page":1},"value_location":{"bounding_box":{"left":0.23557884774573423,"top":0.20052052184532704,"width":0.06564697443039369,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.20052052184532704},{"x":0.3012258221761279,"y":0.20052052184532704},{"x":0.3012258221761279,"y":0.21093951117068366},{"x":0.23557884774573423,"y":0.2105028887580557}]}},"page":1}},{"key":"Home Page","value":null,"confidence":0.111,"key_location":{"bounding_box":{"left":0.6667070382918037,"top":0.192207591167764,"width":0.07149164711268252,"height":0.011848712895667746,"polygon":{"coordinates":[{"x":0.6667070382918037,"y":0.20355975348459018},{"x":0.6668764490941889,"y":0.192207591167764},{"x":0.7381986854044862,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.20405630406343175}]}},"page":1},"value_location":null},{"key":"Email VAT Registration No.","value":"777777777","confidence":0.862,"key_location":{"bounding_box":{"left":0.666864331836525,"top":0.2057257402985974,"width":0.12454169357948064,"height":0.025178484286042857,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2057257402985974},{"x":0.7914060254160057,"y":0.2057257402985974},{"x":0.7914060254160057,"y":0.23090422458464024},{"x":0.666864331836525,"y":0.23090422458464024}]}},"page":1},"value_location":{"bounding_box":{"left":0.8687060511392126,"top":0.2200486332581564,"width":0.06442480474193302,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8687060511392126,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22048525567078436},{"x":0.9331308558811456,"y":0.22960293017707303},{"x":0.8687060511392126,"y":0.22916630776444508}]}},"page":1}},{"key":"Document Date","value":"June 4, 2025","confidence":0.862,"key_location":{"bounding_box":{"left":0.08030107375059245,"top":0.2284043668528005,"width":0.0952334877264297,"height":0.011506248736017827,"polygon":{"coordinates":[{"x":0.08030107375059245,"y":0.2395852970898017},{"x":0.08037367631942799,"y":0.2284043668528005},{"x":0.17553456147702215,"y":0.22872968535181712},{"x":0.1754619589081866,"y":0.23991061558881832}]}},"page":1},"value_location":{"bounding_box":{"left":0.23497380710502905,"top":0.22916630776444508,"width":0.07484361236454204,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.2395852970898017},{"x":0.23497380710502905,"y":0.2395852970898017}]}},"page":1}},{"key":"Invoice No.","value":"108226","confidence":0.9,"key_location":{"bounding_box":{"left":0.0802647652535213,"top":0.24218790631643689,"width":0.06769201410402631,"height":0.01076998549232172,"polygon":{"coordinates":[{"x":0.0802647652535213,"y":0.25260687523029274},{"x":0.08037367631942799,"y":0.24218790631643689},{"x":0.1479567793575476,"y":0.24253890248340199},{"x":0.14784786829164093,"y":0.2529578918087586}]}},"page":1},"value_location":{"bounding_box":{"left":0.2374181753325639,"top":0.24218790631643689,"width":0.04172362739455762,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.2374181753325639,"y":0.24218790631643689},{"x":0.2791418027271215,"y":0.24218790631643689},{"x":0.2791418027271215,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2521702528176648}]}},"page":1}},{"key":"Giro No.","value":"888-9999","confidence":0.9,"key_location":{"bounding_box":{"left":0.666864331836525,"top":0.23413181355286092,"width":0.051718936861817166,"height":0.010478897080069521,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.23459411363343738},{"x":0.7184017406382933,"y":0.23413181355286092},{"x":0.7185832686983422,"y":0.24414841055235398},{"x":0.6670458598965741,"y":0.24461071063293044}]}},"page":1},"value_location":{"bounding_box":{"left":0.8779148207563315,"top":0.23437152621771543,"width":0.0552160351248141,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8779148207563315,"y":0.23480814863034338},{"x":0.9325137412586969,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.24392582313663205},{"x":0.8779148207563315,"y":0.2434892007240041}]}},"page":1}},{"key":"Bank","value":"World Wide Bank","confidence":0.875,"key_location":{"bounding_box":{"left":0.6674814464589738,"top":0.24869441917727445,"width":0.02821913125725084,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.2578120936835631},{"x":0.6674814464589738,"y":0.2578120936835631}]}},"page":1},"value_location":{"bounding_box":{"left":0.8294509832115972,"top":0.2482663491834624,"width":0.10367987266954848,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.8294509832115972,"y":0.2482663491834624},{"x":0.9331308558811456,"y":0.2482663491834624},{"x":0.9331308558811456,"y":0.2586767860900031},{"x":0.8294509832115972,"y":0.2586767860900031}]}},"page":1}},{"key":"Posting Date","value":"06/04/25","confidence":0.9,"key_location":{"bounding_box":{"left":0.07975653284636575,"top":0.26953237741648695,"width":0.0791393893733035,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.26953237741648695},{"x":0.15889592221966925,"y":0.26953237741648695},{"x":0.15889592221966925,"y":0.28125268156091154},{"x":0.07975653284636575,"y":0.28125268156091154}]}},"page":1},"value_location":{"bounding_box":{"left":0.23497380710502905,"top":0.26953237741648695,"width":0.055821104616132794,"height":0.010410436906540754,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.26953237741648695},{"x":0.2901777682480996,"y":0.269960447410299},{"x":0.29079491172116184,"y":0.2799428143230277},{"x":0.23557884774573423,"y":0.2799428143230277}]}},"page":1}},{"key":"Account No.","value":"99-99-888","confidence":0.9,"key_location":{"bounding_box":{"left":0.6664892161599902,"top":0.2623752071461154,"width":0.07461368740037166,"height":0.011677501227343567,"polygon":{"coordinates":[{"x":0.6664892161599902,"y":0.27253735855748495},{"x":0.6669127431659533,"y":0.2623752071461154},{"x":0.7411029035603619,"y":0.2638905569620894},{"x":0.7406914361108358,"y":0.27405270837345896}]}},"page":1},"value_location":{"bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}},"page":1}},{"key":"Due Date","value":"07/31/25","confidence":0.901,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.28341864796341804,"width":0.05645034370889869,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.28341864796341804},{"x":0.13742906066903188,"y":0.28341864796341804},{"x":0.13742906066903188,"y":0.29296439246351874},{"x":0.08097871696013319,"y":0.29296439246351874}]}},"page":1},"value_location":{"bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}},"page":1}},{"key":"Payment Terms","value":"End of Next Month","confidence":0.856,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.09264391436122375,"height":0.011283661320295846,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.17362263132135694,"y":0.30946184506740165},{"x":0.17362263132135694,"y":0.3207455063876975},{"x":0.08097871696013319,"y":0.3207455063876975}]}},"page":1},"value_location":{"bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.11165429763931589,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.3472331453850501,"y":0.3098984674800296},{"x":0.3472331453850501,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}},"page":1}},{"key":"ABN","value":"53001003000","confidence":0.923,"key_location":{"bounding_box":{"left":0.6680986187826495,"top":0.30338338178887536,"width":0.022701162922068585,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.6680986187826495,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.312501056295164},{"x":0.6680986187826495,"y":0.312501056295164}]}},"page":1},"value_location":{"bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}},"page":1}},{"key":"Total AUD","value":"12,250.00","confidence":0.901,"key_location":{"bounding_box":{"left":0.7699391494400615,"top":0.47048096925562605,"width":0.06319051779580853,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7699391494400615,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.4808999381694819},{"x":0.7699391494400615,"y":0.4808999381694819}]}},"page":1},"value_location":{"bounding_box":{"left":0.8723968524211493,"top":0.47091757125675326,"width":0.060734003459996355,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.8723968524211493,"y":0.47091757125675326},{"x":0.9331308558811456,"y":0.47091757125675326},{"x":0.9331308558811456,"y":0.4808999381694819},{"x":0.8730018497859342,"y":0.48046333616835474}]}},"page":1}},{"key":"VAT Identifier","value":"NON GST","confidence":0.874,"key_location":{"bounding_box":{"left":0.08152325065170651,"top":0.5556735113504682,"width":0.09093769629236148,"height":0.011163784576367908,"polygon":{"coordinates":[{"x":0.08152325065170651,"y":0.5665205502581361},{"x":0.08159586043319543,"y":0.5556735113504682},{"x":0.172460946944068,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5668372959268361}]}},"page":1},"value_location":{"bounding_box":{"left":0.08159586043319543,"top":0.5802955373029566,"width":0.058894711936433544,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5907059333864958},{"x":0.08159586043319543,"y":0.5907059333864958}]}},"page":1}},{"key":"VAT %","value":"0","confidence":0.526,"key_location":{"bounding_box":{"left":0.24600975820070034,"top":0.5555536550180409,"width":0.04110649834680216,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.24600975820070034,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5664006939257088},{"x":0.24600975820070034,"y":0.5664006939257088}]}},"page":1},"value_location":{"bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.006135140658858007,"height":0.008681092916662192,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.2858940868590418,"y":0.5807235664737671},{"x":0.2858940868590418,"y":0.5894046593904293},{"x":0.27975894620018377,"y":0.5894046593904293}]}},"page":1}},{"key":"Ship-to Address","value":"CRONUS International Ltd. 5 The Ring Westminster CANBERRA NSW 2600 Australia","confidence":0.082,"key_location":{"bounding_box":{"left":0.08211619567270802,"top":0.6505658843646026,"width":0.10203415433716466,"height":0.01201135173367529,"polygon":{"coordinates":[{"x":0.08211619567270802,"y":0.6621063835988856},{"x":0.08221300390625766,"y":0.6505658843646026},{"x":0.18415035000987268,"y":0.651036736863995},{"x":0.184041438943966,"y":0.6625772360982779}]}},"page":1},"value_location":{"bounding_box":{"left":0.08159586043319543,"top":0.6644949782401155,"width":0.15766164248619813,"height":0.06553598110776804,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6644949782401155},{"x":0.23925750291939357,"y":0.6644949782401155},{"x":0.23925750291939357,"y":0.7300309593478835},{"x":0.08159586043319543,"y":0.7300309593478835}]}},"page":1}}]},"read_results":[{"location":{"bounding_box":{"left":0.08405232428043397,"top":0.03819153041921875,"width":0.4576652589105985,"height":0.01779874190857493,"polygon":{"coordinates":[{"x":0.08405232428043397,"y":0.03819153041921875},{"x":0.5417175831910325,"y":0.03819153041921875},{"x":0.5417175831910325,"y":0.05555364991516572},{"x":0.08405232428043397,"y":0.05599027232779368}]}},"page":1},"text":"1301010200002121300121331321132032"},{"location":{"bounding_box":{"left":0.7245368812971513,"top":0.03992945489372671,"width":0.20245889162636332,"height":0.016925499634756605,"polygon":{"coordinates":[{"x":0.7245368812971513,"y":0.03992945489372671},{"x":0.9269957729235146,"y":0.03992945489372671},{"x":0.9269957729235146,"y":0.05685495452848331},{"x":0.7245368812971513,"y":0.05685495452848331}]}},"page":1},"text":"Purchase - Invoice"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.06119548567818885,"width":0.08097871696013317,"height":0.009982361809853478,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.06119548567818885},{"x":0.16135239327956116,"y":0.06163210809081681},{"x":0.16135239327956116,"y":0.07117784748804233},{"x":0.08037367631942799,"y":0.07117784748804233}]}},"page":1},"text":"Fabrikam, Inc."},{"location":{"bounding_box":{"left":0.8908021589952693,"top":0.06163210809081681,"width":0.04171158226342764,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.8908021589952693,"y":0.06206873050344477},{"x":0.9325137412586969,"y":0.06163210809081681},{"x":0.9325137412586969,"y":0.07247915210135993},{"x":0.8914072140612812,"y":0.07247915210135993}]}},"page":1},"text":"Page 1"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.0750903188496862,"width":0.07178209345129158,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.07551837863774787},{"x":0.15153862629765733,"y":0.0750903188496862},{"x":0.15153862629765733,"y":0.0859373679631045},{"x":0.07975653284636575,"y":0.0859373679631045}]}},"page":1},"text":"Krystal York"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.0885399669839893,"width":0.13251612576190142,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.0885399669839893},{"x":0.21349484272203462,"y":0.0885399669839893},{"x":0.21349484272203462,"y":0.09895895630934592},{"x":0.08097871696013319,"y":0.09852233389671797}]}},"page":1},"text":"10 North Lake Avenue"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.10156156553598111,"width":0.13005965470200953,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.10199818794860907},{"x":0.21043333102143752,"y":0.10156156553598111},{"x":0.21043333102143752,"y":0.1115439222429594},{"x":0.08037367631942799,"y":0.11198054465558736}]}},"page":1},"text":"Atlanta, US-GA 31772"},{"location":{"bounding_box":{"left":0.9251564309113782,"top":0.09418180784988762,"width":0.007974424969767413,"height":0.009117674506288656,"polygon":{"coordinates":[{"x":0.9251564309113782,"y":0.09418180784988762},{"x":0.9325137412586969,"y":0.09418180784988762},{"x":0.9331308558811456,"y":0.10329948235617628},{"x":0.9251564309113782,"y":0.1028628701492987}]}},"page":1},"text":"5"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.11632108090816809,"width":0.025762652984705606,"height":0.009109122087472749,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.11632108090816809},{"x":0.1061363293041336,"y":0.11632108090816809},{"x":0.1061363293041336,"y":0.12543020299564084},{"x":0.08037367631942799,"y":0.12543020299564084}]}},"page":1},"text":"USA"},{"location":{"bounding_box":{"left":0.8693232234628884,"top":0.10807664102138496,"width":0.06319051779580853,"height":0.011283661320295887,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.10807664102138496},{"x":0.9325137412586969,"y":0.10850470080944664},{"x":0.9325137412586969,"y":0.11936030234168085},{"x":0.8693232234628884,"y":0.11848705751642494}]}},"page":1},"text":"5 The Ring"},{"location":{"bounding_box":{"left":0.8570529998463994,"top":0.12239953398094398,"width":0.07607785603474626,"height":0.010410426700790357,"polygon":{"coordinates":[{"x":0.8570529998463994,"y":0.12239953398094398},{"x":0.9331308558811456,"y":0.12282759376900566},{"x":0.9325137412586969,"y":0.13280996068173434},{"x":0.8570529998463994,"y":0.13238190089367266}]}},"page":1},"text":"Westminster"},{"location":{"bounding_box":{"left":0.7987753953197612,"top":0.13628580452787506,"width":0.13435546056138448,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.7987753953197612,"y":0.13628580452787506},{"x":0.9331308558811456,"y":0.13628580452787506},{"x":0.9331308558811456,"y":0.14713285364129336},{"x":0.7987753953197612,"y":0.14670479385323168}]}},"page":1},"text":"CANBERRA NSW 2600"},{"location":{"bounding_box":{"left":0.8791369904447922,"top":0.15104531990006204,"width":0.053376750813904694,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.8791369904447922,"y":0.1514733796881237},{"x":0.9325137412586969,"y":0.15104531990006204},{"x":0.9325137412586969,"y":0.1610276868127907},{"x":0.8791369904447922,"y":0.1610276868127907}]}},"page":1},"text":"Australia"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.18619762888576802,"width":0.11227144832503147,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.1974812902060639},{"x":0.07975653284636575,"y":0.1974812902060639}]}},"page":1},"text":"Pay-to Vendor No."},{"location":{"bounding_box":{"left":0.23557884774573423,"top":0.18576100647314006,"width":0.03804498664620504,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.18619762888576802},{"x":0.27362383439193927,"y":0.18576100647314006},{"x":0.27362383439193927,"y":0.19617999579849668},{"x":0.23557884774573423,"y":0.19574337338586872}]}},"page":1},"text":"10000"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.17969111602493043,"width":0.06379557286182047,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.17969111602493043},{"x":0.7300548496323336,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19010153251997042},{"x":0.6662592767705131,"y":0.18967348293765912}]}},"page":1},"text":"Phone No."},{"location":{"bounding_box":{"left":0.8411040922056375,"top":0.17969111602493043,"width":0.09324893336396878,"height":0.009545744500100733,"polygon":{"coordinates":[{"x":0.8411040922056375,"y":0.17969111602493043},{"x":0.9343530255696063,"y":0.17969111602493043},{"x":0.9343530255696063,"y":0.18923686052503116},{"x":0.8411040922056375,"y":0.18923686052503116}]}},"page":1},"text":"0666-666-6666"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.19965582943888702,"width":0.12514672700753243,"height":0.011711731314107937,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.19965582943888702},{"x":0.20490325985389818,"y":0.19965582943888702},{"x":0.20490325985389818,"y":0.21136756075299495},{"x":0.07975653284636575,"y":0.21136756075299495}]}},"page":1},"text":"VAT Registration No."},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.20008389943269908,"width":0.06748630201722336,"height":0.010855611737984577,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.20008389943269908},{"x":0.30184296564919016,"y":0.20008389943269908},{"x":0.30184296564919016,"y":0.21093951117068366},{"x":0.2343566636319668,"y":0.2105028887580557}]}},"page":1},"text":"503912693"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.19270414174660558,"width":0.0717821150892517,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.20355975348459018},{"x":0.6662592767705131,"y":0.20312313107196223}]}},"page":1},"text":"Home Page"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2057257402985974,"width":0.03435427191610885,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.20659896471235256},{"x":0.700613548686622,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2157080867998253},{"x":0.666864331836525,"y":0.21528003721751401}]}},"page":1},"text":"Email"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.22872968535181712,"width":0.09508828258875862,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.22872968535181712},{"x":0.17484481543512437,"y":0.22872968535181712},{"x":0.17484481543512437,"y":0.23914867467717374},{"x":0.07975653284636575,"y":0.23914867467717374}]}},"page":1},"text":"Document Date"},{"location":{"bounding_box":{"left":0.8662617117622913,"top":0.2200486332581564,"width":0.0674741991848663,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.8662617117622913,"y":0.2200486332581564},{"x":0.9337359109471576,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22916630776444508},{"x":0.8662617117622913,"y":0.22872968535181712}]}},"page":1},"text":"777777777"},{"location":{"bounding_box":{"left":0.23313447951819938,"top":0.22916630776444508,"width":0.07668293995137171,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23313447951819938,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.2395852970898017},{"x":0.23313447951819938,"y":0.23914867467717374}]}},"page":1},"text":"June 4, 2025"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.21962056326434437,"width":0.12454169357948064,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.21962056326434437},{"x":0.7908009703499937,"y":0.21962056326434437},{"x":0.7908009703499937,"y":0.23090422458464024},{"x":0.6662592767705131,"y":0.23090422458464024}]}},"page":1},"text":"VAT Registration No."},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.24218790631643689,"width":0.06809133544527518,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.24218790631643689},{"x":0.14784786829164093,"y":0.24218790631643689},{"x":0.14784786829164093,"y":0.25260687523029274},{"x":0.07975653284636575,"y":0.2521702528176648}]}},"page":1},"text":"Invoice No."},{"location":{"bounding_box":{"left":0.23619599121879647,"top":0.24218790631643689,"width":0.04416801004739923,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23619599121879647,"y":0.24218790631643689},{"x":0.2803640012661957,"y":0.24218790631643689},{"x":0.2803640012661957,"y":0.2521702528176648},{"x":0.23619599121879647,"y":0.2517336304050368}]}},"page":1},"text":"108226"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2339434562239034,"width":0.05214246386778021,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.23437152621771543},{"x":0.7177846260158445,"y":0.2339434562239034},{"x":0.7184017406382933,"y":0.24392582313663205},{"x":0.6662592767705131,"y":0.24392582313663205}]}},"page":1},"text":"Giro No."},{"location":{"bounding_box":{"left":0.8760754787441951,"top":0.23437152621771543,"width":0.057055377136950525,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.8760754787441951,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.2434892007240041},{"x":0.8760754787441951,"y":0.2434892007240041}]}},"page":1},"text":"888-9999"},{"location":{"bounding_box":{"left":0.666864331836525,"top":0.24869441917727445,"width":0.03129270251428484,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.24869441917727445},{"x":0.6981570343508099,"y":0.24869441917727445},{"x":0.6981570343508099,"y":0.2578120936835631},{"x":0.6680986187826495,"y":0.2578120936835631}]}},"page":1},"text":"Bank"},{"location":{"bounding_box":{"left":0.8282166962654727,"top":0.2482663491834624,"width":0.10613632930413364,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8282166962654727,"y":0.2482663491834624},{"x":0.9343530255696063,"y":0.2482663491834624},{"x":0.9343530255696063,"y":0.2582487160961911},{"x":0.8282166962654727,"y":0.2582487160961911}]}},"page":1},"text":"World Wide Bank"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.269095755003859,"width":0.0791393893733035,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269095755003859},{"x":0.15889592221966925,"y":0.269095755003859},{"x":0.15889592221966925,"y":0.2808160591482836},{"x":0.07975653284636575,"y":0.2808160591482836}]}},"page":1},"text":"Posting Date"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.269095755003859,"width":0.05643824808919504,"height":0.010847059319168684,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.269095755003859},{"x":0.29079491172116184,"y":0.26953237741648695},{"x":0.29079491172116184,"y":0.2799428143230277},{"x":0.2343566636319668,"y":0.27951474432921564}]}},"page":1},"text":"06/04/25"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2630173121368335,"width":0.0748436267898488,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.2630173121368335},{"x":0.7411029035603619,"y":0.2630173121368335},{"x":0.7411029035603619,"y":0.2725716090557501},{"x":0.6662592767705131,"y":0.27213498664312213}]}},"page":1},"text":"Account No."},{"location":{"bounding_box":{"left":0.8693232234628884,"top":0.26258924214302143,"width":0.06502980210671794,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.26258924214302143},{"x":0.9343530255696063,"y":0.26258924214302143},{"x":0.9343530255696063,"y":0.27213498664312213},{"x":0.8693232234628884,"y":0.27213498664312213}]}},"page":1},"text":"99-99-888"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.28298202555079005,"width":0.058277568463371315,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.28341864796341804},{"x":0.13803410130973706,"y":0.28298202555079005},{"x":0.13803410130973706,"y":0.29253634288120745},{"x":0.07975653284636575,"y":0.29296439246351874}]}},"page":1},"text":"Due Date"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.28255397596847875,"width":0.055821104616132794,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.28255397596847875},{"x":0.2901777682480996,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.2343566636319668,"y":0.29253634288120745}]}},"page":1},"text":"07/31/25"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.09202677088816151,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.1730054878482947,"y":0.30946184506740165},{"x":0.1730054878482947,"y":0.3198808139812575},{"x":0.08097871696013319,"y":0.32030888397506957}]}},"page":1},"text":"Payment Terms"},{"location":{"bounding_box":{"left":0.23497380710502905,"top":0.30946184506740165,"width":0.11471582376521969,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.30946184506740165},{"x":0.34968963087024874,"y":0.30946184506740165},{"x":0.34968963087024874,"y":0.3194442119801303},{"x":0.23497380710502905,"y":0.31900758956750236}]}},"page":1},"text":"End of Next Month"},{"location":{"bounding_box":{"left":0.666864331836525,"top":0.30338338178887536,"width":0.028231248514914653,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.3038200042015033},{"x":0.694478408027764,"y":0.30338338178887536},{"x":0.6950955803514397,"y":0.312501056295164},{"x":0.6674814464589738,"y":0.3120644542940368}]}},"page":1},"text":"ABN"},{"location":{"bounding_box":{"left":0.8521521461336659,"top":0.3029467593762474,"width":0.08097870974747978,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8521521461336659,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31292912628897607},{"x":0.8521521461336659,"y":0.31292912628897607}]}},"page":1},"text":"53001003000"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.3224834232078927,"width":0.1104321207382018,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.32291149320170476},{"x":0.19018865358456755,"y":0.3224834232078927},{"x":0.19018865358456755,"y":0.3337671049396893},{"x":0.07975653284636575,"y":0.3337671049396893}]}},"page":1},"text":"Shipment Method"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.3359330713421958,"width":0.12330739942070276,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.3359330713421958},{"x":0.2030639322670685,"y":0.3359330713421958},{"x":0.2030639322670685,"y":0.3476533754866204},{"x":0.07975653284636575,"y":0.34721673266249165}]}},"page":1},"text":"Prices Including VAT"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.3372343861612638,"width":0.020861835335238915,"height":0.008681072505161425,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.3372343861612638},{"x":0.2546013554941435,"y":0.3372343861612638},{"x":0.2552184989672057,"y":0.3459154586664252},{"x":0.2343566636319668,"y":0.3459154586664252}]}},"page":1},"text":"No"},{"location":{"bounding_box":{"left":0.5319038162091286,"top":0.38020306503994084,"width":0.04171158226342753,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5319038162091286,"y":0.38020306503994084},{"x":0.5736153984725562,"y":0.38020306503994084},{"x":0.5736153984725562,"y":0.39018543195266947},{"x":0.5319038162091286,"y":0.39018543195266947}]}},"page":1},"text":"Direct"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.37977499504612877,"width":0.03865007056283054,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.38020306503994084},{"x":0.7159452840037082,"y":0.37977499504612877},{"x":0.7159452840037082,"y":0.38975736195885746},{"x":0.6772952134408776,"y":0.38932075995773024}]}},"page":1},"text":"Allow"},{"location":{"bounding_box":{"left":0.4386548828451598,"top":0.39235999159699336,"width":0.04784666522105857,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.4386548828451598,"y":0.39235999159699336},{"x":0.48650154806621837,"y":0.39235999159699336},{"x":0.48650154806621837,"y":0.40234235850972205},{"x":0.4386548828451598,"y":0.40234235850972205}]}},"page":1},"text":"Unit of"},{"location":{"bounding_box":{"left":0.5441740975268446,"top":0.39235999159699336,"width":0.030675587891835998,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.5441740975268446,"y":0.3927965935981206},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.5748496854186806,"y":0.4019057156855933},{"x":0.5447790948916296,"y":0.4019057156855933}]}},"page":1},"text":"Unit"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.39235999159699336,"width":0.04785878247872244,"height":0.010418968913855908,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.39235999159699336},{"x":0.7251539959196001,"y":0.3927965935981206},{"x":0.7245368812971513,"y":0.40277896051084927},{"x":0.6772952134408776,"y":0.40234235850972205}]}},"page":1},"text":"Invoice"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.39235999159699336,"width":0.029453418203375437,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.3927965935981206},{"x":0.802454079344034,"y":0.39235999159699336},{"x":0.802454079344034,"y":0.40234235850972205},{"x":0.7730006611406586,"y":0.4019057156855933}]}},"page":1},"text":"VAT"},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.4058181921501124,"width":0.023923325397875922,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.4058181921501124},{"x":0.10551918583107135,"y":0.4058181921501124},{"x":0.10551918583107135,"y":0.4144992442437731},{"x":0.08159586043319543,"y":0.4144992442437731}]}},"page":1},"text":"No."},{"location":{"bounding_box":{"left":0.1754619589081866,"top":0.4049449473248565,"width":0.07484359793923528,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.1754619589081866,"y":0.4049449473248565},{"x":0.2503055568474219,"y":0.4049449473248565},{"x":0.2503055568474219,"y":0.4162286290566531},{"x":0.1754619589081866,"y":0.415800559062841}]}},"page":1},"text":"Description"},{"location":{"bounding_box":{"left":0.3558247426784933,"top":0.4049449473248565,"width":0.058289664083074955,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.3558247426784933,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.4049449473248565},{"x":0.413497263288506,"y":0.4162286290566531},{"x":0.3558247426784933,"y":0.415800559062841}]}},"page":1},"text":"Quantity"},{"location":{"bounding_box":{"left":0.43925993791117174,"top":0.4053815493259837,"width":0.056450322070938586,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.4053815493259837},{"x":0.4957102599821103,"y":0.4058181921501124},{"x":0.4957102599821103,"y":0.4149273142375851},{"x":0.43925993791117174,"y":0.4144992442437731}]}},"page":1},"text":"Measure"},{"location":{"bounding_box":{"left":0.5423347555147082,"top":0.4053815493259837,"width":0.03495926928089388,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.5423347555147082,"y":0.4053815493259837},{"x":0.5772940247956021,"y":0.4053815493259837},{"x":0.5772940247956021,"y":0.4144992442437731},{"x":0.5423347555147082,"y":0.4144992442437731}]}},"page":1},"text":"Cost"},{"location":{"bounding_box":{"left":0.5895642484120911,"top":0.4049449473248565,"width":0.07362145710138812,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5895642484120911,"y":0.4049449473248565},{"x":0.6631857055134792,"y":0.4049449473248565},{"x":0.6631857055134792,"y":0.4149273142375851},{"x":0.5895642484120911,"y":0.4149273142375851}]}},"page":1},"text":"Discount %"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.4053815493259837,"width":0.05889471914908695,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4053815493259837},{"x":0.7361899325899646,"y":0.4149273142375851},{"x":0.6772952134408776,"y":0.4149273142375851}]}},"page":1},"text":"Discount"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.4049449473248565,"width":0.06074612071766017,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4153639162387123},{"x":0.7730006611406586,"y":0.4149273142375851}]}},"page":1},"text":"Identifier"},{"location":{"bounding_box":{"left":0.8803712773909167,"top":0.4049449473248565,"width":0.05336463355624088,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8803712773909167,"y":0.4049449473248565},{"x":0.9337359109471576,"y":0.4053815493259837},{"x":0.9337359109471576,"y":0.4153639162387123},{"x":0.8803712773909167,"y":0.4149273142375851}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.4292501867856434,"width":0.06502982374467807,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.4296868296097721},{"x":0.1466256841778735,"y":0.4292501867856434},{"x":0.1466256841778735,"y":0.4396691965225008},{"x":0.08159586043319543,"y":0.4396691965225008}]}},"page":1},"text":"WDB-1000"},{"location":{"bounding_box":{"left":0.1754619589081866,"top":0.4292501867856434,"width":0.13987342889656673,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.1754619589081866,"y":0.4292501867856434},{"x":0.31533538780475334,"y":0.4292501867856434},{"x":0.31533538780475334,"y":0.44053386851744003},{"x":0.1754619589081866,"y":0.44053386851744003}]}},"page":1},"text":"Decaf coffee, Colombia"},{"location":{"bounding_box":{"left":0.4085843211687222,"top":0.4296868296097721,"width":0.0190225077484093,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.4085843211687222,"y":0.43012343161089933},{"x":0.42698968544406923,"y":0.4296868296097721},{"x":0.4276068289171315,"y":0.43923255369837205},{"x":0.4085843211687222,"y":0.4388045245275615}]}},"page":1},"text":"50"},{"location":{"bounding_box":{"left":0.43925993791117174,"top":0.43012343161089933,"width":0.03313204452642121,"height":0.009545764911601473,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.43012343161089933},{"x":0.47239198243759295,"y":0.43055150160471134},{"x":0.47239198243759295,"y":0.4396691965225008},{"x":0.43987705253362047,"y":0.43923255369837205}]}},"page":1},"text":"Piece"},{"location":{"bounding_box":{"left":0.5325088712751406,"top":0.4296868296097721,"width":0.04050147213140365,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.5325088712751406,"y":0.4296868296097721},{"x":0.5730103434065442,"y":0.4296868296097721},{"x":0.5730103434065442,"y":0.4396691965225008},{"x":0.5325088712751406,"y":0.43923255369837205}]}},"page":1},"text":"180.00"},{"location":{"bounding_box":{"left":0.6766902160760927,"top":0.43012343161089933,"width":0.023306160286853506,"height":0.009545764911601473,"polygon":{"coordinates":[{"x":0.6766902160760927,"y":0.43012343161089933},{"x":0.6999963763629462,"y":0.43055150160471134},{"x":0.6999963763629462,"y":0.4396691965225008},{"x":0.6772952134408776,"y":0.4396691965225008}]}},"page":1},"text":"Yes"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.4292501867856434,"width":0.06074612071766017,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4292501867856434},{"x":0.8337467818583187,"y":0.4292501867856434},{"x":0.8337467818583187,"y":0.4396691965225008},{"x":0.7730006611406586,"y":0.4396691965225008}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.8822106194030531,"top":0.4292501867856434,"width":0.05152529154410446,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.8822106194030531,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.44053386851744003},{"x":0.8822106194030531,"y":0.44053386851744003}]}},"page":1},"text":"9,000.00"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.44313645733257445,"width":0.03497137932590426,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.44357310015670315},{"x":0.11533296002562858,"y":0.44313645733257445},{"x":0.11595009628603745,"y":0.4526907950744926},{"x":0.08097871696013319,"y":0.45225415225036386}]}},"page":1},"text":"F-100"},{"location":{"bounding_box":{"left":0.1754619589081866,"top":0.44313645733257445,"width":0.08589165186726366,"height":0.011292254562113302,"polygon":{"coordinates":[{"x":0.1754619589081866,"y":0.44313645733257445},{"x":0.2613536107754503,"y":0.44400970215783037},{"x":0.2613536107754503,"y":0.45442871189468775},{"x":0.1754619589081866,"y":0.45355546706943184}]}},"page":1},"text":"Remote Pump"},{"location":{"bounding_box":{"left":0.40797929495332375,"top":0.44313645733257445,"width":0.01778822080228476,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.40797929495332375,"y":0.44357310015670315},{"x":0.4257675157556085,"y":0.44313645733257445},{"x":0.4257675157556085,"y":0.45225415225036386},{"x":0.4085843211687222,"y":0.45225415225036386}]}},"page":1},"text":"50"},{"location":{"bounding_box":{"left":0.43987705253362047,"top":0.44357310015670315,"width":0.03251492990397248,"height":0.009117694917789465,"polygon":{"coordinates":[{"x":0.43987705253362047,"y":0.44357310015670315},{"x":0.47239198243759295,"y":0.44357310015670315},{"x":0.47239198243759295,"y":0.4526907950744926},{"x":0.43987705253362047,"y":0.4526907950744926}]}},"page":1},"text":"Piece"},{"location":{"bounding_box":{"left":0.5386440119339986,"top":0.44313645733257445,"width":0.03436633147254564,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.5386440119339986,"y":0.44313645733257445},{"x":0.5730103434065442,"y":0.44313645733257445},{"x":0.5730103434065442,"y":0.4526907950744926},{"x":0.5392611265564473,"y":0.4526907950744926}]}},"page":1},"text":"65.00"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.44357310015670315,"width":0.023318335245744337,"height":0.009117694917789465,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.44357310015670315},{"x":0.700613548686622,"y":0.44357310015670315},{"x":0.700613548686622,"y":0.4526907950744926},{"x":0.6779123857645534,"y":0.4526907950744926}]}},"page":1},"text":"Yes"},{"location":{"bounding_box":{"left":0.7736177757631074,"top":0.4427084281617639,"width":0.06073406116122326,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.7736177757631074,"y":0.4427084281617639},{"x":0.8343518369243307,"y":0.4427084281617639},{"x":0.8343518369243307,"y":0.45355546706943184},{"x":0.7736177757631074,"y":0.45355546706943184}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.8815934470793774,"top":0.44313645733257445,"width":0.05275957849022894,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.8815934470793774,"y":0.44313645733257445},{"x":0.9343530255696063,"y":0.44313645733257445},{"x":0.9343530255696063,"y":0.45355546706943184},{"x":0.8815934470793774,"y":0.4531273970756198}]}},"page":1},"text":"3,250.00"},{"location":{"bounding_box":{"left":0.7693220348176127,"top":0.470052899261814,"width":0.06810343106497885,"height":0.010410436906540754,"polygon":{"coordinates":[{"x":0.7693220348176127,"y":0.47048096925562605},{"x":0.8374254658825916,"y":0.470052899261814},{"x":0.8374254658825916,"y":0.48046333616835474},{"x":0.7693220348176127,"y":0.48046333616835474}]}},"page":1},"text":"Total AUD"},{"location":{"bounding_box":{"left":0.870545393151349,"top":0.47048096925562605,"width":0.06380763241825727,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.870545393151349,"y":0.47048096925562605},{"x":0.9343530255696063,"y":0.47048096925562605},{"x":0.9343530255696063,"y":0.4808999381694819},{"x":0.870545393151349,"y":0.48046333616835474}]}},"page":1},"text":"12,250.00"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5295104579140573,"width":0.1693268398872887,"height":0.012584955727863112,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5295104579140573},{"x":0.2503055568474219,"y":0.5295104579140573},{"x":0.2503055568474219,"y":0.5420954136419204},{"x":0.08097871696013319,"y":0.5416673844711098}]}},"page":1},"text":"VAT Amount Specification"},{"location":{"bounding_box":{"left":0.4496908483661378,"top":0.5433967284609884,"width":0.0926439071485704,"height":0.010419009736857276,"polygon":{"coordinates":[{"x":0.4496908483661378,"y":0.5433967284609884},{"x":0.5423347555147082,"y":0.5433967284609884},{"x":0.5423347555147082,"y":0.5538157381978457},{"x":0.4496908483661378,"y":0.553379095373717}]}},"page":1},"text":"Inv. Disc. Base"},{"location":{"bounding_box":{"left":0.5656409158015618,"top":0.5433967284609884,"width":0.1085928436399457,"height":0.010419009736857276,"polygon":{"coordinates":[{"x":0.5656409158015618,"y":0.5433967284609884},{"x":0.6742337594415075,"y":0.5433967284609884},{"x":0.6742337594415075,"y":0.5538157381978457},{"x":0.5656409158015618,"y":0.5538157381978457}]}},"page":1},"text":"Invoice Discount"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5555536550180409,"width":0.09140962741509927,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5555536550180409},{"x":0.17238834437523246,"y":0.5555536550180409},{"x":0.17238834437523246,"y":0.5664006939257088},{"x":0.08097871696013319,"y":0.5664006939257088}]}},"page":1},"text":"VAT Identifier"},{"location":{"bounding_box":{"left":0.2441704450391774,"top":0.5555536550180409,"width":0.04356295498138735,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.2441704450391774,"y":0.5555536550180409},{"x":0.28773340002056474,"y":0.5555536550180409},{"x":0.28773340002056474,"y":0.5659726239318967},{"x":0.2441704450391774,"y":0.5664006939257088}]}},"page":1},"text":"VAT %"},{"location":{"bounding_box":{"left":0.3337407232294869,"top":0.5559902570191682,"width":0.08343519523267845,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.3337407232294869,"y":0.5559902570191682},{"x":0.41717591846216534,"y":0.5564183270129802},{"x":0.41717591846216534,"y":0.5664006939257088},{"x":0.3337407232294869,"y":0.5655360219307696}]}},"page":1},"text":"Line Amount"},{"location":{"bounding_box":{"left":0.49141446133538874,"top":0.5564183270129802,"width":0.05398180587991658,"height":0.009554296918916516,"polygon":{"coordinates":[{"x":0.49141446133538874,"y":0.5564183270129802},{"x":0.5453962672153053,"y":0.5564183270129802},{"x":0.5447790948916296,"y":0.5659726239318967},{"x":0.49141446133538874,"y":0.5655360219307696}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.623313465262188,"top":0.5564183270129802,"width":0.053981748178689615,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.623313465262188,"y":0.5564183270129802},{"x":0.6772952134408776,"y":0.5564183270129802},{"x":0.6772952134408776,"y":0.5664006939257088},{"x":0.623313465262188,"y":0.5659726239318967}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.7404857312366862,"top":0.5559902570191682,"width":0.06196834810734786,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.7404857312366862,"y":0.5559902570191682},{"x":0.802454079344034,"y":0.5559902570191682},{"x":0.802454079344034,"y":0.5664006939257088},{"x":0.7404857312366862,"y":0.5659726239318967}]}},"page":1},"text":"VAT Base"},{"location":{"bounding_box":{"left":0.8521521461336659,"top":0.5559902570191682,"width":0.08465739377175263,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.8521521461336659,"y":0.5559902570191682},{"x":0.9368095399054185,"y":0.5564183270129802},{"x":0.9368095399054185,"y":0.5664006939257088},{"x":0.8521521461336659,"y":0.5659726239318967}]}},"page":1},"text":"VAT Amount"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5798588944788279,"width":0.06012899888255803,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5798588944788279},{"x":0.14110771584269122,"y":0.5798588944788279},{"x":0.14110771584269122,"y":0.5902779042156853},{"x":0.08097871696013319,"y":0.5902779042156853}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.007974453820380978,"height":0.008681092916662192,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.2871162565475025,"y":0.5807235664737671},{"x":0.28773340002056474,"y":0.5889765893966172},{"x":0.27975894620018377,"y":0.5894046593904293}]}},"page":1},"text":"0"},{"location":{"bounding_box":{"left":0.3588983427861407,"top":0.5802955373029566,"width":0.05766043220296241,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.3588983427861407,"y":0.5802955373029566},{"x":0.4165587749891031,"y":0.5802955373029566},{"x":0.4165587749891031,"y":0.5902779042156853},{"x":0.3588983427861407,"y":0.5902779042156853}]}},"page":1},"text":"12,250.00"},{"location":{"bounding_box":{"left":0.4877237177546791,"top":0.5802955373029566,"width":0.058289664083074955,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.4877237177546791,"y":0.5802955373029566},{"x":0.546013381837754,"y":0.5802955373029566},{"x":0.546013381837754,"y":0.5907059333864958},{"x":0.4877237177546791,"y":0.5902779042156853}]}},"page":1},"text":"12,250.00"},{"location":{"bounding_box":{"left":0.6503104268309782,"top":0.5802955373029566,"width":0.0276019589335752,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6503104268309782,"y":0.5802955373029566},{"x":0.6779123857645534,"y":0.5807235664737671},{"x":0.6779123857645534,"y":0.5902779042156853},{"x":0.6509154241957632,"y":0.5898412613915565}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.7447815298834077,"top":0.5802955373029566,"width":0.05767254946062628,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7447815298834077,"y":0.5802955373029566},{"x":0.802454079344034,"y":0.5802955373029566},{"x":0.802454079344034,"y":0.5902779042156853},{"x":0.7447815298834077,"y":0.5902779042156853}]}},"page":1},"text":"12,250.00"},{"location":{"bounding_box":{"left":0.9098125783366283,"top":0.5802955373029566,"width":0.026379789245114416,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.9098125783366283,"y":0.5807235664737671},{"x":0.9361923675817427,"y":0.5802955373029566},{"x":0.9361923675817427,"y":0.5902779042156853},{"x":0.9098125783366283,"y":0.5894046593904293}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.2527620134820071,"top":0.6076400084030066,"width":0.03557644160456952,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.2527620134820071,"y":0.6076400084030066},{"x":0.28773340002056474,"y":0.6076400084030066},{"x":0.28833845508657663,"y":0.6171857324916066},{"x":0.2527620134820071,"y":0.6167491304904794}]}},"page":1},"text":"Total"},{"location":{"bounding_box":{"left":0.35398540066635686,"top":0.6072034064018794,"width":0.06319051779580848,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.35398540066635686,"y":0.6076400084030066},{"x":0.41717591846216534,"y":0.6072034064018794},{"x":0.41717591846216534,"y":0.6171857324916066},{"x":0.35398540066635686,"y":0.6176223753157353}]}},"page":1},"text":"12,250.00"},{"location":{"bounding_box":{"left":0.4834400363656213,"top":0.6067667635777507,"width":0.06319051779580853,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.4834400363656213,"y":0.6072034064018794},{"x":0.5466305541614298,"y":0.6067667635777507},{"x":0.5466305541614298,"y":0.6176223753157353},{"x":0.4834400363656213,"y":0.6176223753157353}]}},"page":1},"text":"12,250.00"},{"location":{"bounding_box":{"left":0.6484710848188419,"top":0.6076400084030066,"width":0.02882412862203576,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.6484710848188419,"y":0.6080680783968186},{"x":0.6772952134408776,"y":0.6076400084030066},{"x":0.6772952134408776,"y":0.6171857324916066},{"x":0.6484710848188419,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.7398806761706742,"top":0.6067667635777507,"width":0.06319051779580853,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.7398806761706742,"y":0.6067667635777507},{"x":0.8030711939664827,"y":0.6067667635777507},{"x":0.8030711939664827,"y":0.6176223753157353},{"x":0.7398806761706742,"y":0.6176223753157353}]}},"page":1},"text":"12,250.00"},{"location":{"bounding_box":{"left":0.9061339520135824,"top":0.6076400084030066,"width":0.030058415568160357,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9061339520135824,"y":0.6080680783968186},{"x":0.9361923675817427,"y":0.6076400084030066},{"x":0.9361923675817427,"y":0.6171857324916066},{"x":0.9067510666360311,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.6506087076931845,"width":0.10307482481618986,"height":0.011283640908795078,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.6506087076931845},{"x":0.18405354177632305,"y":0.6506087076931845},{"x":0.18405354177632305,"y":0.6618923486019795},{"x":0.08097871696013319,"y":0.6618923486019795}]}},"page":1},"text":"Ship-to Address"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.6640583354159868,"width":0.15827878595926037,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.6640583354159868},{"x":0.23925750291939357,"y":0.6644949782401155},{"x":0.23925750291939357,"y":0.6753420171477834},{"x":0.08097871696013319,"y":0.6749139471539713}]}},"page":1},"text":"CRONUS International Ltd."},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6783812487870465,"width":0.06380763963091064,"height":0.011283681731796724,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6783812487870465},{"x":0.14540350006410607,"y":0.6788178507881738},{"x":0.14540350006410607,"y":0.6896649305188433},{"x":0.08159586043319543,"y":0.6892368605250312}]}},"page":1},"text":"5 The Ring"},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6927041213351048,"width":0.0766829183134116,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6927041213351048},{"x":0.15827877874660704,"y":0.6927041213351048},{"x":0.15827877874660704,"y":0.7026864882478335},{"x":0.08159586043319543,"y":0.7022584182540215}]}},"page":1},"text":"Westminster"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.7052891178859695,"width":0.1349604939894363,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.7157081276228269},{"x":0.08097871696013319,"y":0.7052891178859695},{"x":0.2153341703088643,"y":0.7052891178859695},{"x":0.2153341703088643,"y":0.7157081276228269}]}},"page":1},"text":"CANBERRA NSW 2600"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.720048592435155,"width":0.053376729175944534,"height":0.009545805734602952,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.720048592435155},{"x":0.13373831708832223,"y":0.720048592435155},{"x":0.13435544613607772,"y":0.7295943981697579},{"x":0.08097871696013319,"y":0.7295943981697579}]}},"page":1},"text":"Australia"}],"page_read_results":[{"page":1,"elements":[{"id":"0","text":"1301010200002121300121331321132032","bounding_box":{"left":0.08405232428043397,"top":0.03906477269303708,"width":0.45704814428814977,"height":0.01648887722212864,"polygon":{"coordinates":[{"x":0.08405232428043397,"y":0.03992945489372671},{"x":0.5404954135025718,"y":0.03906477269303708},{"x":0.5411004685685837,"y":0.05555364991516572},{"x":0.08405232428043397,"y":0.055125590127104045}]}}},{"id":"1","text":"Purchase","bounding_box":{"left":0.7245368812971513,"top":0.03992945489372671,"width":0.10000118864527552,"height":0.017362122047384562,"polygon":{"coordinates":[{"x":0.7245368812971513,"y":0.03992945489372671},{"x":0.8239209553199781,"y":0.040366077306354664},{"x":0.8245380699424268,"y":0.05685495452848331},{"x":0.7251539959196001,"y":0.05729157694111127}]}}},{"id":"2","text":"-","bounding_box":{"left":0.8288338685891484,"top":0.040366077306354664,"width":0.011048053928028323,"height":0.016488877222128648,"polygon":{"coordinates":[{"x":0.8288338685891484,"y":0.040366077306354664},{"x":0.8392647501935011,"y":0.040366077306354664},{"x":0.8398819225171767,"y":0.05685495452848331},{"x":0.8288338685891484,"y":0.05685495452848331}]}}},{"id":"3","text":"Invoice","bounding_box":{"left":0.8441656039062346,"top":0.040366077306354664,"width":0.08159588207115553,"height":0.016488877222128648,"polygon":{"coordinates":[{"x":0.8441656039062346,"y":0.040366077306354664},{"x":0.9251564309113782,"y":0.040802697167545025},{"x":0.9257614859773902,"y":0.05685495452848331},{"x":0.8447827762299103,"y":0.05685495452848331}]}}},{"id":"4","text":"Fabrikam,","bounding_box":{"left":0.08097871696013319,"top":0.06163210809081681,"width":0.05767252782266612,"height":0.009982361809853478,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.06163210809081681},{"x":0.1386512447827993,"y":0.06163210809081681},{"x":0.1386512447827993,"y":0.07161446990067029},{"x":0.08097871696013319,"y":0.07161446990067029}]}}},{"id":"5","text":"Inc.","bounding_box":{"left":0.14110771584269122,"top":0.06163210809081681,"width":0.020244677436869946,"height":0.009982361809853478,"polygon":{"coordinates":[{"x":0.14110771584269122,"y":0.06163210809081681},{"x":0.16135239327956116,"y":0.06163210809081681},{"x":0.16135239327956116,"y":0.07161446990067029},{"x":0.14110771584269122,"y":0.07161446990067029}]}}},{"id":"6","text":"Page","bounding_box":{"left":0.8914072140612812,"top":0.06163210809081681,"width":0.03067558789183611,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.8914072140612812,"y":0.06163210809081681},{"x":0.9220828019531173,"y":0.06163210809081681},{"x":0.9220828019531173,"y":0.07247915210135993},{"x":0.8914072140612812,"y":0.07247915210135993}]}}},{"id":"7","text":"1","bounding_box":{"left":0.9263786005998389,"top":0.06163210809081681,"width":0.005517968335182255,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.9263786005998389,"y":0.06163210809081681},{"x":0.9312915715702362,"y":0.06163210809081681},{"x":0.9318965689350212,"y":0.07247915210135993},{"x":0.9263786005998389,"y":0.07247915210135993}]}}},{"id":"8","text":"Krystal","bounding_box":{"left":0.08037367631942799,"top":0.07551837863774787,"width":0.04109440272709847,"height":0.010855611737984591,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.07595500105037582},{"x":0.1208630311931679,"y":0.07551837863774787},{"x":0.12146807904652646,"y":0.0859373679631045},{"x":0.08097871696013319,"y":0.08637399037573246}]}}},{"id":"9","text":"York","bounding_box":{"left":0.12392453568111163,"top":0.07551837863774787,"width":0.026996947143483455,"height":0.010418989325356634,"polygon":{"coordinates":[{"x":0.12392453568111163,"y":0.07551837863774787},{"x":0.15030433935153284,"y":0.07551837863774787},{"x":0.15092148282459508,"y":0.0859373679631045},{"x":0.12454167915417387,"y":0.0859373679631045}]}}},{"id":"10","text":"10","bounding_box":{"left":0.08221300390625766,"top":0.08897658939661726,"width":0.012875271469847599,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.08897658939661726},{"x":0.09508827537610526,"y":0.08897658939661726},{"x":0.09508827537610526,"y":0.09895895630934592},{"x":0.08221300390625766,"y":0.09895895630934592}]}}},{"id":"11","text":"North","bounding_box":{"left":0.09754474643599717,"top":0.08897658939661726,"width":0.03558853001161988,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.09754474643599717,"y":0.08897658939661726},{"x":0.13313327644761705,"y":0.08897658939661726},{"x":0.13313327644761705,"y":0.09895895630934592},{"x":0.09754474643599717,"y":0.09895895630934592}]}}},{"id":"12","text":"Lake","bounding_box":{"left":0.13681191719596963,"top":0.08897658939661726,"width":0.027601987784188653,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.13681191719596963,"y":0.08897658939661726},{"x":0.1644139049801583,"y":0.08897658939661726},{"x":0.1644139049801583,"y":0.09895895630934592},{"x":0.13681191719596963,"y":0.09895895630934592}]}}},{"id":"13","text":"Avenue","bounding_box":{"left":0.16809254572851087,"top":0.08897658939661726,"width":0.04418011287975632,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.16809254572851087,"y":0.08897658939661726},{"x":0.2122726586082672,"y":0.08897658939661726},{"x":0.2122726586082672,"y":0.09895895630934592},{"x":0.16809254572851087,"y":0.09895895630934592}]}}},{"id":"14","text":"Atlanta,","bounding_box":{"left":0.08097871696013319,"top":0.10199818794860907,"width":0.04601943325393258,"height":0.01041041649503996,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.10199818794860907},{"x":0.12699815021406577,"y":0.10199818794860907},{"x":0.12699815021406577,"y":0.11198054465558736},{"x":0.08097871696013319,"y":0.11240860444364903}]}}},{"id":"15","text":"US-GA","bounding_box":{"left":0.12944251844160065,"top":0.10156156553598111,"width":0.039267170759972464,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.12944251844160065,"y":0.10199818794860907},{"x":0.16870968920157312,"y":0.10156156553598111},{"x":0.16870968920157312,"y":0.11198054465558736},{"x":0.1300596619146629,"y":0.11198054465558736}]}}},{"id":"16","text":"31772","bounding_box":{"left":0.1730054878482947,"top":0.10156156553598111,"width":0.03742784317314282,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.1730054878482947,"y":0.10156156553598111},{"x":0.21043333102143752,"y":0.10156156553598111},{"x":0.21043333102143752,"y":0.11198054465558736},{"x":0.17362263132135694,"y":0.11198054465558736}]}}},{"id":"17","text":"5","bounding_box":{"left":0.9251564309113782,"top":0.09418180784988762,"width":0.00735731034731868,"height":0.009117674506288656,"polygon":{"coordinates":[{"x":0.9251564309113782,"y":0.1028628701492987},{"x":0.9257614859773902,"y":0.09418180784988762},{"x":0.9325137412586969,"y":0.09418180784988762},{"x":0.9318965689350212,"y":0.10329948235617628}]}}},{"id":"18","text":"USA","bounding_box":{"left":0.08097871696013319,"top":0.11632108090816809,"width":0.0239233326105293,"height":0.009109122087472749,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.11632108090816809},{"x":0.10490204957066249,"y":0.11632108090816809},{"x":0.10490204957066249,"y":0.12543020299564084},{"x":0.08097871696013319,"y":0.12543020299564084}]}}},{"id":"19","text":"5","bounding_box":{"left":0.8693232234628884,"top":0.10850470080944664,"width":0.007974424969767413,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.10850470080944664},{"x":0.8772976484326558,"y":0.10850470080944664},{"x":0.8772976484326558,"y":0.1189236799290529},{"x":0.8693232234628884,"y":0.1189236799290529}]}}},{"id":"20","text":"The","bounding_box":{"left":0.8803712773909167,"top":0.10850470080944664,"width":0.0214668759759441,"height":0.010855601532234208,"polygon":{"coordinates":[{"x":0.8803712773909167,"y":0.10850470080944664},{"x":0.9018381533668608,"y":0.10850470080944664},{"x":0.9018381533668608,"y":0.11936030234168085},{"x":0.8803712773909167,"y":0.1189236799290529}]}}},{"id":"21","text":"Ring","bounding_box":{"left":0.9049117246238948,"top":0.10850470080944664,"width":0.027602016634802107,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.9049117246238948,"y":0.10850470080944664},{"x":0.9325137412586969,"y":0.1089413232220746},{"x":0.9325137412586969,"y":0.11978836212974252},{"x":0.9049117246238948,"y":0.11936030234168085}]}}},{"id":"22","text":"Westminster","bounding_box":{"left":0.8570529998463994,"top":0.12282759376900566,"width":0.07607785603474626,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.8570529998463994,"y":0.12282759376900566},{"x":0.9331308558811456,"y":0.12326421618163362},{"x":0.9331308558811456,"y":0.1332465728886119},{"x":0.8576701144688481,"y":0.13280996068173434}]}}},{"id":"23","text":"CANBERRA","bounding_box":{"left":0.7999976227094489,"top":0.13672242694050302,"width":0.06502980210671794,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.7999976227094489,"y":0.13672242694050302},{"x":0.8650274248161668,"y":0.13715048672856467},{"x":0.8650274248161668,"y":0.14670479385323168},{"x":0.7999976227094489,"y":0.14670479385323168}]}}},{"id":"24","text":"NSW","bounding_box":{"left":0.8693232234628884,"top":0.13672242694050302,"width":0.025157619556653743,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.13715048672856467},{"x":0.8944808430195421,"y":0.13672242694050302},{"x":0.8944808430195421,"y":0.14670479385323168},{"x":0.8693232234628884,"y":0.14670479385323168}]}}},{"id":"25","text":"2600","bounding_box":{"left":0.904294610001446,"top":0.13672242694050302,"width":0.0276019589335752,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.904294610001446,"y":0.13672242694050302},{"x":0.9318965689350212,"y":0.13672242694050302},{"x":0.9318965689350212,"y":0.14756947605392132},{"x":0.904294610001446,"y":0.14713285364129336}]}}},{"id":"26","text":"Australia","bounding_box":{"left":0.8809763324569286,"top":0.1514733796881237,"width":0.05153740880176827,"height":0.00955430712466701,"polygon":{"coordinates":[{"x":0.8809763324569286,"y":0.15191000210075165},{"x":0.9325137412586969,"y":0.1514733796881237},{"x":0.9325137412586969,"y":0.1610276868127907},{"x":0.8809763324569286,"y":0.1610276868127907}]}}},{"id":"27","text":"Pay-to","bounding_box":{"left":0.08037367631942799,"top":0.18663425129839598,"width":0.0392550751402688,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.18663425129839598},{"x":0.11962875145969679,"y":0.18663425129839598},{"x":0.11962875145969679,"y":0.19791791261869185},{"x":0.08037367631942799,"y":0.1974812902060639}]}}},{"id":"28","text":"Vendor","bounding_box":{"left":0.12330740663335614,"top":0.18619762888576802,"width":0.04294582593363182,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.12330740663335614,"y":0.18619762888576802},{"x":0.16625323256698796,"y":0.18619762888576802},{"x":0.16564817750097602,"y":0.19791791261869185},{"x":0.12330740663335614,"y":0.19791791261869185}]}}},{"id":"29","text":"No.","bounding_box":{"left":0.16870968920157312,"top":0.18619762888576802,"width":0.0233182919698241,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.16870968920157312,"y":0.19791791261869185},{"x":0.16932683267463536,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.1974812902060639}]}}},{"id":"30","text":"10000","bounding_box":{"left":0.2374181753325639,"top":0.18576100647314006,"width":0.03497137211325088,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.2374181753325639,"y":0.18576100647314006},{"x":0.2723895474458148,"y":0.18576100647314006},{"x":0.2723895474458148,"y":0.19617999579849668},{"x":0.2374181753325639,"y":0.19617999579849668}]}}},{"id":"31","text":"Phone","bounding_box":{"left":0.666864331836525,"top":0.18011916560724173,"width":0.03804501549681849,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.18011916560724173},{"x":0.7049093473333435,"y":0.18011916560724173},{"x":0.7049093473333435,"y":0.19010153251997042},{"x":0.6674814464589738,"y":0.18967348293765912}]}}},{"id":"32","text":"No.","bounding_box":{"left":0.7079708013327137,"top":0.18011916560724173,"width":0.02208404829961985,"height":0.010418989325356648,"polygon":{"coordinates":[{"x":0.7079708013327137,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19053815493259837},{"x":0.7079708013327137,"y":0.19010153251997042}]}}},{"id":"33","text":"0666-666-6666","bounding_box":{"left":0.8423262618940982,"top":0.17969111602493043,"width":0.0901874793645987,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8423262618940982,"y":0.18011916560724173},{"x":0.9325137412586969,"y":0.17969111602493043},{"x":0.9325137412586969,"y":0.18967348293765912},{"x":0.8423262618940982,"y":0.18967348293765912}]}}},{"id":"34","text":"VAT","bounding_box":{"left":0.08097871696013319,"top":0.20052052184532704,"width":0.0239233326105293,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.20052052184532704},{"x":0.10490204957066249,"y":0.20052052184532704},{"x":0.10429700171730391,"y":0.21136756075299495},{"x":0.08097871696013319,"y":0.21093951117068366}]}}},{"id":"35","text":"Registration","bounding_box":{"left":0.10735851341790102,"top":0.20008389943269908,"width":0.07300427035240563,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.10735851341790102,"y":0.21136756075299495},{"x":0.10797565689096326,"y":0.20052052184532704},{"x":0.18036278377030665,"y":0.20008389943269908},{"x":0.18036278377030665,"y":0.2118041831656229}]}}},{"id":"36","text":"No.","bounding_box":{"left":0.1834363983032608,"top":0.20008389943269908,"width":0.022084005023699615,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.1834363983032608,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.2118041831656229},{"x":0.1834363983032608,"y":0.2118041831656229}]}}},{"id":"37","text":"503912693","bounding_box":{"left":0.23557884774573423,"top":0.20052052184532704,"width":0.06564697443039369,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.20052052184532704},{"x":0.3012258221761279,"y":0.20052052184532704},{"x":0.3012258221761279,"y":0.21093951117068366},{"x":0.23557884774573423,"y":0.2105028887580557}]}}},{"id":"38","text":"Home","bounding_box":{"left":0.666864331836525,"top":0.19270414174660558,"width":0.036810728550694005,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.20355975348459018},{"x":0.666864331836525,"y":0.20355975348459018}]}}},{"id":"39","text":"Page","bounding_box":{"left":0.7067486316442531,"top":0.19270414174660558,"width":0.03129276021551175,"height":0.011292234150612562,"polygon":{"coordinates":[{"x":0.7067486316442531,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.20399637589721814},{"x":0.7067486316442531,"y":0.20355975348459018}]}}},{"id":"40","text":"Email","bounding_box":{"left":0.666864331836525,"top":0.2057257402985974,"width":0.033132044526421156,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2157080867998253},{"x":0.666864331836525,"y":0.2157080867998253}]}}},{"id":"41","text":"Document","bounding_box":{"left":0.08037367631942799,"top":0.22872968535181712,"width":0.06379555122386033,"height":0.010855611737984577,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.22872968535181712},{"x":0.14416922754328831,"y":0.22916630776444508},{"x":0.14416922754328831,"y":0.2395852970898017},{"x":0.08037367631942799,"y":0.2395852970898017}]}}},{"id":"42","text":"Date","bounding_box":{"left":0.1466256841778735,"top":0.22872968535181712,"width":0.02883627473031311,"height":0.010855611737984577,"polygon":{"coordinates":[{"x":0.1466256841778735,"y":0.22916630776444508},{"x":0.17484481543512437,"y":0.22872968535181712},{"x":0.1754619589081866,"y":0.2395852970898017},{"x":0.14724282765093574,"y":0.2395852970898017}]}}},{"id":"43","text":"777777777","bounding_box":{"left":0.8687060511392126,"top":0.2200486332581564,"width":0.06442480474193302,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8687060511392126,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22048525567078436},{"x":0.9331308558811456,"y":0.22960293017707303},{"x":0.8687060511392126,"y":0.22916630776444508}]}}},{"id":"44","text":"June","bounding_box":{"left":0.23497380710502905,"top":0.22916630776444508,"width":0.02821911683194414,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.22916630776444508},{"x":0.2631929239369732,"y":0.22960293017707303},{"x":0.2631929239369732,"y":0.2395852970898017},{"x":0.23497380710502905,"y":0.2395852970898017}]}}},{"id":"45","text":"4,","bounding_box":{"left":0.26687157911063253,"top":0.22960293017707303,"width":0.011048053928028323,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.26687157911063253,"y":0.22960293017707303},{"x":0.27791963303866085,"y":0.22960293017707303},{"x":0.27791963303866085,"y":0.2395852970898017},{"x":0.26687157911063253,"y":0.2395852970898017}]}}},{"id":"46","text":"2025","bounding_box":{"left":0.28098114473925795,"top":0.22960293017707303,"width":0.02883627473031314,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.28098114473925795,"y":0.22960293017707303},{"x":0.3098174194695711,"y":0.22960293017707303},{"x":0.3098174194695711,"y":0.2395852970898017},{"x":0.28098114473925795,"y":0.2395852970898017}]}}},{"id":"47","text":"VAT","bounding_box":{"left":0.6674814464589738,"top":0.2200486332581564,"width":0.02454050493420501,"height":0.010855591326483838,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.2200486332581564},{"x":0.691404779069503,"y":0.2200486332581564},{"x":0.6920219513931788,"y":0.23090422458464024},{"x":0.6674814464589738,"y":0.23090422458464024}]}}},{"id":"48","text":"Registration","bounding_box":{"left":0.694478408027764,"top":0.2200486332581564,"width":0.07238711245403673,"height":0.010855591326483838,"polygon":{"coordinates":[{"x":0.694478408027764,"y":0.2200486332581564},{"x":0.7668655204818007,"y":0.2200486332581564},{"x":0.7668655204818007,"y":0.23090422458464024},{"x":0.6950955803514397,"y":0.23090422458464024}]}}},{"id":"49","text":"No.","bounding_box":{"left":0.7699391494400615,"top":0.21962056326434437,"width":0.02146687597594421,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.7699391494400615,"y":0.2200486332581564},{"x":0.7914060254160057,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.23090422458464024},{"x":0.7699391494400615,"y":0.23090422458464024}]}}},{"id":"50","text":"Invoice","bounding_box":{"left":0.08037367631942799,"top":0.24218790631643689,"width":0.04232868967322295,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.24218790631643689},{"x":0.1220852225195887,"y":0.24262452872906484},{"x":0.12270236599265094,"y":0.25260687523029274},{"x":0.08037367631942799,"y":0.25260687523029274}]}}},{"id":"51","text":"No.","bounding_box":{"left":0.1257638632679413,"top":0.24262452872906484,"width":0.022084005023699615,"height":0.009982346501227896,"polygon":{"coordinates":[{"x":0.1257638632679413,"y":0.24262452872906484},{"x":0.14724282765093574,"y":0.24262452872906484},{"x":0.14784786829164093,"y":0.25260687523029274},{"x":0.12638100674100355,"y":0.25260687523029274}]}}},{"id":"52","text":"108226","bounding_box":{"left":0.2374181753325639,"top":0.24218790631643689,"width":0.04172362739455762,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.2374181753325639,"y":0.24218790631643689},{"x":0.2791418027271215,"y":0.24218790631643689},{"x":0.2791418027271215,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2521702528176648}]}}},{"id":"53","text":"Giro","bounding_box":{"left":0.666864331836525,"top":0.23437152621771543,"width":0.02454044723297799,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.23480814863034338},{"x":0.691404779069503,"y":0.23437152621771543},{"x":0.691404779069503,"y":0.24435387271894335},{"x":0.6674814464589738,"y":0.24435387271894335}]}}},{"id":"54","text":"No.","bounding_box":{"left":0.6957005777162246,"top":0.23437152621771543,"width":0.022701162922068696,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.6957005777162246,"y":0.23437152621771543},{"x":0.7184017406382933,"y":0.23437152621771543},{"x":0.7184017406382933,"y":0.24392582313663205},{"x":0.6957005777162246,"y":0.24435387271894335}]}}},{"id":"55","text":"888-9999","bounding_box":{"left":0.8779148207563315,"top":0.23437152621771543,"width":0.0552160351248141,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8779148207563315,"y":0.23480814863034338},{"x":0.9325137412586969,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.24392582313663205},{"x":0.8779148207563315,"y":0.2434892007240041}]}}},{"id":"56","text":"Bank","bounding_box":{"left":0.6674814464589738,"top":0.24869441917727445,"width":0.02821913125725084,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.2578120936835631},{"x":0.6674814464589738,"y":0.2578120936835631}]}}},{"id":"57","text":"World","bounding_box":{"left":0.8294509832115972,"top":0.2482663491834624,"width":0.03557644160456963,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.8294509832115972,"y":0.2482663491834624},{"x":0.8650274248161668,"y":0.24869441917727445},{"x":0.8650274248161668,"y":0.2582487160961911},{"x":0.8294509832115972,"y":0.2586767860900031}]}}},{"id":"58","text":"Wide","bounding_box":{"left":0.8693232234628884,"top":0.24869441917727445,"width":0.03189775758029667,"height":0.009554296918916655,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.24869441917727445},{"x":0.9006159259771732,"y":0.24869441917727445},{"x":0.901220981043185,"y":0.2582487160961911},{"x":0.8699403380853371,"y":0.2582487160961911}]}}},{"id":"59","text":"Bank","bounding_box":{"left":0.904294610001446,"top":0.24869441917727445,"width":0.028836245879699685,"height":0.009554296918916655,"polygon":{"coordinates":[{"x":0.904294610001446,"y":0.24869441917727445},{"x":0.9325137412586969,"y":0.24869441917727445},{"x":0.9331308558811456,"y":0.2582487160961911},{"x":0.9049117246238948,"y":0.2582487160961911}]}}},{"id":"60","text":"Posting","bounding_box":{"left":0.07975653284636575,"top":0.26953237741648695,"width":0.04540228978087035,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269960447410299},{"x":0.1251588226272361,"y":0.26953237741648695},{"x":0.1251588226272361,"y":0.28125268156091154},{"x":0.08037367631942799,"y":0.28125268156091154}]}}},{"id":"61","text":"Date","bounding_box":{"left":0.12822033432783322,"top":0.26953237741648695,"width":0.030675587891836026,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.12822033432783322,"y":0.26953237741648695},{"x":0.15827877874660704,"y":0.26953237741648695},{"x":0.15889592221966925,"y":0.28125268156091154},{"x":0.12883747780089547,"y":0.28125268156091154}]}}},{"id":"62","text":"06/04/25","bounding_box":{"left":0.23497380710502905,"top":0.26953237741648695,"width":0.055821104616132794,"height":0.010410436906540754,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.26953237741648695},{"x":0.2901777682480996,"y":0.269960447410299},{"x":0.29079491172116184,"y":0.2799428143230277},{"x":0.23557884774573423,"y":0.2799428143230277}]}}},{"id":"63","text":"Account","bounding_box":{"left":0.666864331836525,"top":0.2634539345494614,"width":0.0503152391133076,"height":0.009117674506288698,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2634539345494614},{"x":0.7171795709498326,"y":0.2634539345494614},{"x":0.7165623986261569,"y":0.2725716090557501},{"x":0.6680986187826495,"y":0.2725716090557501}]}}},{"id":"64","text":"No.","bounding_box":{"left":0.7196360275844178,"top":0.2634539345494614,"width":0.0214668759759441,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.7196360275844178,"y":0.2634539345494614},{"x":0.7411029035603619,"y":0.2638905569620894},{"x":0.7404857312366862,"y":0.2729996790495621},{"x":0.7196360275844178,"y":0.2725716090557501}]}}},{"id":"65","text":"99-99-888","bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}}},{"id":"66","text":"Due","bounding_box":{"left":0.08097871696013319,"top":0.28341864796341804,"width":0.0239233326105293,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.28341864796341804},{"x":0.10490204957066249,"y":0.28341864796341804},{"x":0.10490204957066249,"y":0.29296439246351874},{"x":0.08097871696013319,"y":0.29296439246351874}]}}},{"id":"67","text":"Date","bounding_box":{"left":0.10919784100473069,"top":0.28341864796341804,"width":0.028231219664301185,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.10919784100473069,"y":0.28341864796341804},{"x":0.13742906066903188,"y":0.28341864796341804},{"x":0.13742906066903188,"y":0.29253634288120745},{"x":0.10919784100473069,"y":0.29296439246351874}]}}},{"id":"68","text":"07/31/25","bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}}},{"id":"69","text":"Payment","bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.053376729175944534,"height":0.011283661320295846,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.13435544613607772,"y":0.3098984674800296},{"x":0.13435544613607772,"y":0.32030888397506957},{"x":0.08097871696013319,"y":0.3207455063876975}]}}},{"id":"70","text":"Terms","bounding_box":{"left":0.13742906066903188,"top":0.30946184506740165,"width":0.03619357065232506,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.13742906066903188,"y":0.3098984674800296},{"x":0.1730054878482947,"y":0.30946184506740165},{"x":0.17362263132135694,"y":0.3198808139812575},{"x":0.13742906066903188,"y":0.32030888397506957}]}}},{"id":"71","text":"End","bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.02147896438299446,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.2570578121287287,"y":0.3098984674800296},{"x":0.2570578121287287,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}}},{"id":"72","text":"of","bounding_box":{"left":0.2613536107754503,"top":0.3098984674800296,"width":0.012875278682500935,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.2613536107754503,"y":0.3098984674800296},{"x":0.2742288894579512,"y":0.3098984674800296},{"x":0.2742288894579512,"y":0.3194442119801303},{"x":0.2613536107754503,"y":0.3194442119801303}]}}},{"id":"73","text":"Next","bounding_box":{"left":0.27668534609253637,"top":0.3098984674800296,"width":0.02883627473031314,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.27668534609253637,"y":0.3098984674800296},{"x":0.3055216208228495,"y":0.3098984674800296},{"x":0.3055216208228495,"y":0.3194442119801303},{"x":0.27668534609253637,"y":0.3194442119801303}]}}},{"id":"74","text":"Month","bounding_box":{"left":0.3085831325234466,"top":0.3098984674800296,"width":0.03865001286160352,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.3085831325234466,"y":0.3098984674800296},{"x":0.3472331453850501,"y":0.3098984674800296},{"x":0.3472331453850501,"y":0.3194442119801303},{"x":0.3085831325234466,"y":0.3194442119801303}]}}},{"id":"75","text":"ABN","bounding_box":{"left":0.6680986187826495,"top":0.30338338178887536,"width":0.022701162922068585,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.6680986187826495,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.312501056295164},{"x":0.6680986187826495,"y":0.312501056295164}]}}},{"id":"76","text":"53001003000","bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}}},{"id":"77","text":"Shipment","bounding_box":{"left":0.08097871696013319,"top":0.32291149320170476,"width":0.05583320023583645,"height":0.011292234150612535,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.3233481156143327},{"x":0.1361947737229074,"y":0.32291149320170476},{"x":0.13681191719596963,"y":0.3342037273523173},{"x":0.08159586043319543,"y":0.3342037273523173}]}}},{"id":"78","text":"Method","bounding_box":{"left":0.13926838825586155,"top":0.32291149320170476,"width":0.04846379426881409,"height":0.011292234150612535,"polygon":{"coordinates":[{"x":0.13926838825586155,"y":0.32291149320170476},{"x":0.18773218252467563,"y":0.32291149320170476},{"x":0.18773218252467563,"y":0.3342037273523173},{"x":0.13987342889656673,"y":0.3342037273523173}]}}},{"id":"79","text":"Prices","bounding_box":{"left":0.08037367631942799,"top":0.33636969375482373,"width":0.03435423585284203,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.33636969375482373},{"x":0.11411077591186114,"y":0.33636969375482373},{"x":0.11472791217227002,"y":0.3476533754866204},{"x":0.08097871696013319,"y":0.34721673266249165}]}}},{"id":"80","text":"Including","bounding_box":{"left":0.11717228039980487,"top":0.33636969375482373,"width":0.05645035092155207,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.11717228039980487,"y":0.33636969375482373},{"x":0.1730054878482947,"y":0.33636969375482373},{"x":0.17362263132135694,"y":0.3476533754866204},{"x":0.11778942387286712,"y":0.3476533754866204}]}}},{"id":"81","text":"VAT","bounding_box":{"left":0.17730127206970955,"top":0.33636969375482373,"width":0.025762660197358955,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.17730127206970955,"y":0.33636969375482373},{"x":0.20245889162636332,"y":0.33636969375482373},{"x":0.2030639322670685,"y":0.3476533754866204},{"x":0.1779184155427718,"y":0.3476533754866204}]}}},{"id":"82","text":"No","bounding_box":{"left":0.23557884774573423,"top":0.3372343861612638,"width":0.017183165736272876,"height":0.008681072505161425,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3372343861612638},{"x":0.2527620134820071,"y":0.3372343861612638},{"x":0.2527620134820071,"y":0.3459154586664252},{"x":0.23557884774573423,"y":0.3459154586664252}]}}},{"id":"83","text":"Direct","bounding_box":{"left":0.5337431582212651,"top":0.38020306503994084,"width":0.0398722402512911,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5337431582212651,"y":0.38063970786406953},{"x":0.5736153984725562,"y":0.38020306503994084},{"x":0.5736153984725562,"y":0.39018543195266947},{"x":0.5343603305449408,"y":0.39018543195266947}]}}},{"id":"84","text":"Allow","bounding_box":{"left":0.6797517277766898,"top":0.37977499504612877,"width":0.031909874837960484,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6797517277766898,"y":0.37977499504612877},{"x":0.7116616026146503,"y":0.37977499504612877},{"x":0.7116616026146503,"y":0.38975736195885746},{"x":0.6797517277766898,"y":0.38975736195885746}]}}},{"id":"85","text":"Unit","bounding_box":{"left":0.4404941960066827,"top":0.3927965935981206,"width":0.027601987784188653,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.4404941960066827,"y":0.3927965935981206},{"x":0.46809618379087137,"y":0.3927965935981206},{"x":0.46809618379087137,"y":0.40277896051084927},{"x":0.4404941960066827,"y":0.40234235850972205}]}}},{"id":"86","text":"of","bounding_box":{"left":0.47055266927607003,"top":0.39235999159699336,"width":0.015948878790148335,"height":0.010418968913855908,"polygon":{"coordinates":[{"x":0.47055266927607003,"y":0.3927965935981206},{"x":0.48650154806621837,"y":0.39235999159699336},{"x":0.48650154806621837,"y":0.40277896051084927},{"x":0.47116978389851877,"y":0.40277896051084927}]}}},{"id":"87","text":"Unit","bounding_box":{"left":0.5453962672153053,"top":0.39235999159699336,"width":0.028836245879699685,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.5453962672153053,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.4014776456917813},{"x":0.546013381837754,"y":0.4019057156855933}]}}},{"id":"88","text":"Invoice","bounding_box":{"left":0.6779123857645534,"top":0.3927965935981206,"width":0.046624495532597954,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6779123857645534,"y":0.3927965935981206},{"x":0.7245368812971513,"y":0.39322466359193264},{"x":0.7245368812971513,"y":0.40277896051084927},{"x":0.6779123857645534,"y":0.40277896051084927}]}}},{"id":"89","text":"VAT","bounding_box":{"left":0.774840003152795,"top":0.39235999159699336,"width":0.02699690386756326,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.774840003152795,"y":0.39235999159699336},{"x":0.8018369070203583,"y":0.39235999159699336},{"x":0.8018369070203583,"y":0.40234235850972205},{"x":0.774840003152795,"y":0.40234235850972205}]}}},{"id":"90","text":"No.","bounding_box":{"left":0.08221300390625766,"top":0.4058181921501124,"width":0.023306181924813693,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.4058181921501124},{"x":0.10551918583107135,"y":0.4058181921501124},{"x":0.10551918583107135,"y":0.4144992442437731},{"x":0.08221300390625766,"y":0.4144992442437731}]}}},{"id":"91","text":"Description","bounding_box":{"left":0.17607910238124885,"top":0.4053815493259837,"width":0.07116494276557594,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4053815493259837},{"x":0.2472440451468248,"y":0.4053815493259837},{"x":0.2472440451468248,"y":0.4166652310577803},{"x":0.17607910238124885,"y":0.4153639162387123}]}}},{"id":"92","text":"Quantity","bounding_box":{"left":0.3576640558400162,"top":0.4049449473248565,"width":0.0558332074484898,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.3576640558400162,"y":0.4049449473248565},{"x":0.413497263288506,"y":0.4053815493259837},{"x":0.41288011981544376,"y":0.4166652310577803},{"x":0.3576640558400162,"y":0.415800559062841}]}}},{"id":"93","text":"Measure","bounding_box":{"left":0.43925993791117174,"top":0.4058181921501124,"width":0.0552160351248141,"height":0.00910912208747272,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.4058181921501124},{"x":0.49447597303598584,"y":0.4058181921501124},{"x":0.49447597303598584,"y":0.4149273142375851},{"x":0.43987705253362047,"y":0.4149273142375851}]}}},{"id":"94","text":"Cost","bounding_box":{"left":0.5447790948916296,"top":0.4053815493259837,"width":0.028836303580926592,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.5447790948916296,"y":0.4053815493259837},{"x":0.5736153984725562,"y":0.4053815493259837},{"x":0.5736153984725562,"y":0.4144992442437731},{"x":0.5447790948916296,"y":0.4144992442437731}]}}},{"id":"95","text":"Discount","bounding_box":{"left":0.5907985353582156,"top":0.4049449473248565,"width":0.05767254946062628,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5907985353582156,"y":0.4049449473248565},{"x":0.6484710848188419,"y":0.4049449473248565},{"x":0.6484710848188419,"y":0.4153639162387123},{"x":0.5907985353582156,"y":0.4153639162387123}]}}},{"id":"96","text":"%","bounding_box":{"left":0.6564455097886093,"top":0.4049449473248565,"width":0.006740195724869946,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.6564455097886093,"y":0.4049449473248565},{"x":0.6631857055134792,"y":0.4049449473248565},{"x":0.6631857055134792,"y":0.4153639162387123},{"x":0.6564455097886093,"y":0.4153639162387123}]}}},{"id":"97","text":"Discount","bounding_box":{"left":0.679134555453014,"top":0.4053815493259837,"width":0.05767254946062628,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.679134555453014,"y":0.4053815493259837},{"x":0.7368071049136403,"y":0.4053815493259837},{"x":0.7368071049136403,"y":0.4153639162387123},{"x":0.679134555453014,"y":0.4149273142375851}]}}},{"id":"98","text":"Identifier","bounding_box":{"left":0.7730006611406586,"top":0.4049449473248565,"width":0.06074612071766017,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4049449473248565},{"x":0.83312966723587,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.415800559062841},{"x":0.7736177757631074,"y":0.4153639162387123}]}}},{"id":"99","text":"Amount","bounding_box":{"left":0.8822106194030531,"top":0.4053815493259837,"width":0.05152529154410446,"height":0.010419009736857332,"polygon":{"coordinates":[{"x":0.8822106194030531,"y":0.4053815493259837},{"x":0.9337359109471576,"y":0.4053815493259837},{"x":0.9337359109471576,"y":0.415800559062841},{"x":0.8822106194030531,"y":0.4149273142375851}]}}},{"id":"100","text":"WDB-1000","bounding_box":{"left":0.08221300390625766,"top":0.4296868296097721,"width":0.06441268027161584,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.43012343161089933},{"x":0.1466256841778735,"y":0.4296868296097721},{"x":0.1466256841778735,"y":0.44010579852362797},{"x":0.08221300390625766,"y":0.4396691965225008}]}}},{"id":"101","text":"Decaf","bounding_box":{"left":0.17607910238124885,"top":0.4296868296097721,"width":0.033737085167126424,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4296868296097721},{"x":0.20981618754837528,"y":0.4296868296097721},{"x":0.20981618754837528,"y":0.44053386851744003},{"x":0.17607910238124885,"y":0.44053386851744003}]}}},{"id":"102","text":"coffee,","bounding_box":{"left":0.21287769924897237,"top":0.4292501867856434,"width":0.04050145770609698,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.21287769924897237,"y":0.4296868296097721},{"x":0.25337915695506935,"y":0.4292501867856434},{"x":0.25337915695506935,"y":0.44053386851744003},{"x":0.21287769924897237,"y":0.44053386851744003}]}}},{"id":"103","text":"Colombia","bounding_box":{"left":0.25644066865566645,"top":0.4292501867856434,"width":0.058894719149086894,"height":0.01172032455592531,"polygon":{"coordinates":[{"x":0.25644066865566645,"y":0.4292501867856434},{"x":0.31533538780475334,"y":0.4296868296097721},{"x":0.31533538780475334,"y":0.4409705113415687},{"x":0.25644066865566645,"y":0.44053386851744003}]}}},{"id":"104","text":"50","bounding_box":{"left":0.4092014646417844,"top":0.4296868296097721,"width":0.014726709101687718,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.4092014646417844,"y":0.4296868296097721},{"x":0.42392817374347214,"y":0.4296868296097721},{"x":0.42392817374347214,"y":0.43923255369837205},{"x":0.4092014646417844,"y":0.43923255369837205}]}}},{"id":"105","text":"Piece","bounding_box":{"left":0.4404941960066827,"top":0.43012343161089933,"width":0.03128064295784799,"height":0.009545764911601473,"polygon":{"coordinates":[{"x":0.4404941960066827,"y":0.43012343161089933},{"x":0.4717748389645307,"y":0.43055150160471134},{"x":0.47116978389851877,"y":0.4396691965225008},{"x":0.4404941960066827,"y":0.43923255369837205}]}}},{"id":"106","text":"180.00","bounding_box":{"left":0.5343603305449408,"top":0.4296868296097721,"width":0.03865001286160341,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.5343603305449408,"y":0.4296868296097721},{"x":0.5730103434065442,"y":0.4296868296097721},{"x":0.5723931710828686,"y":0.4396691965225008},{"x":0.5343603305449408,"y":0.4396691965225008}]}}},{"id":"107","text":"Yes","bounding_box":{"left":0.679134555453014,"top":0.43012343161089933,"width":0.020256765843920332,"height":0.009545764911601473,"polygon":{"coordinates":[{"x":0.679134555453014,"y":0.43012343161089933},{"x":0.6993913212969344,"y":0.43012343161089933},{"x":0.6987742066744855,"y":0.4396691965225008},{"x":0.679134555453014,"y":0.4396691965225008}]}}},{"id":"108","text":"NON","bounding_box":{"left":0.7736177757631074,"top":0.4296868296097721,"width":0.02761413389246592,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7736177757631074,"y":0.4296868296097721},{"x":0.8006147373318976,"y":0.4296868296097721},{"x":0.8012319096555733,"y":0.4396691965225008},{"x":0.7742349480867831,"y":0.44010579852362797}]}}},{"id":"109","text":"GST","bounding_box":{"left":0.808589162301665,"top":0.4296868296097721,"width":0.02454050493420501,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.808589162301665,"y":0.4296868296097721},{"x":0.83312966723587,"y":0.4296868296097721},{"x":0.83312966723587,"y":0.44010579852362797},{"x":0.808589162301665,"y":0.4396691965225008}]}}},{"id":"110","text":"9,000.00","bounding_box":{"left":0.882815616767838,"top":0.4296868296097721,"width":0.050920294179319536,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.882815616767838,"y":0.4296868296097721},{"x":0.9337359109471576,"y":0.4296868296097721},{"x":0.9337359109471576,"y":0.4409705113415687},{"x":0.8834327890915138,"y":0.44053386851744003}]}}},{"id":"111","text":"F-100","bounding_box":{"left":0.08159586043319543,"top":0.44313645733257445,"width":0.03373709959243315,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.44313645733257445},{"x":0.11533296002562858,"y":0.44313645733257445},{"x":0.11533296002562858,"y":0.4526907950744926},{"x":0.08159586043319543,"y":0.4526907950744926}]}}},{"id":"112","text":"Remote","bounding_box":{"left":0.1754619589081866,"top":0.44357310015670315,"width":0.04724161015504666,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.1754619589081866,"y":0.44357310015670315},{"x":0.22270356906323327,"y":0.44357310015670315},{"x":0.22270356906323327,"y":0.45442871189468775},{"x":0.17607910238124885,"y":0.45355546706943184}]}}},{"id":"113","text":"Pump","bounding_box":{"left":0.2263822242368926,"top":0.44357310015670315,"width":0.03373709959243318,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.2263822242368926,"y":0.44357310015670315},{"x":0.2601193238293258,"y":0.4444463449819591},{"x":0.2601193238293258,"y":0.45442871189468775},{"x":0.2263822242368926,"y":0.45442871189468775}]}}},{"id":"114","text":"50","bounding_box":{"left":0.4092014646417844,"top":0.44313645733257445,"width":0.014109565628625476,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.4092014646417844,"y":0.44313645733257445},{"x":0.42269388679734765,"y":0.44313645733257445},{"x":0.4233110302704099,"y":0.45225415225036386},{"x":0.4092014646417844,"y":0.45225415225036386}]}}},{"id":"115","text":"Piece","bounding_box":{"left":0.4404941960066827,"top":0.44357310015670315,"width":0.030675587891836054,"height":0.009117694917789465,"polygon":{"coordinates":[{"x":0.4404941960066827,"y":0.44357310015670315},{"x":0.47116978389851877,"y":0.44357310015670315},{"x":0.47116978389851877,"y":0.4526907950744926},{"x":0.4404941960066827,"y":0.4526907950744926}]}}},{"id":"116","text":"65.00","bounding_box":{"left":0.5404954135025718,"top":0.44313645733257445,"width":0.03189775758029678,"height":0.009554337741918162,"polygon":{"coordinates":[{"x":0.5404954135025718,"y":0.44313645733257445},{"x":0.5723931710828686,"y":0.44313645733257445},{"x":0.5723931710828686,"y":0.4526907950744926},{"x":0.5404954135025718,"y":0.4526907950744926}]}}},{"id":"117","text":"Yes","bounding_box":{"left":0.6797517277766898,"top":0.44357310015670315,"width":0.02086182090993216,"height":0.009117694917789465,"polygon":{"coordinates":[{"x":0.6797517277766898,"y":0.44357310015670315},{"x":0.700613548686622,"y":0.44357310015670315},{"x":0.700613548686622,"y":0.4526907950744926},{"x":0.6797517277766898,"y":0.4526907950744926}]}}},{"id":"118","text":"NON","bounding_box":{"left":0.7742349480867831,"top":0.44313645733257445,"width":0.02699696156879028,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.7742349480867831,"y":0.44357310015670315},{"x":0.8012319096555733,"y":0.44313645733257445},{"x":0.8012319096555733,"y":0.4531273970756198},{"x":0.7742349480867831,"y":0.45355546706943184}]}}},{"id":"119","text":"GST","bounding_box":{"left":0.808589162301665,"top":0.44313645733257445,"width":0.025157619556653743,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.808589162301665,"y":0.44313645733257445},{"x":0.8337467818583187,"y":0.44313645733257445},{"x":0.8337467818583187,"y":0.45399206907055906},{"x":0.8092063346253408,"y":0.45355546706943184}]}}},{"id":"120","text":"3,250.00","bounding_box":{"left":0.882815616767838,"top":0.44313645733257445,"width":0.0503152391133076,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.882815616767838,"y":0.44313645733257445},{"x":0.9331308558811456,"y":0.44313645733257445},{"x":0.9331308558811456,"y":0.45399206907055906},{"x":0.8834327890915138,"y":0.45355546706943184}]}}},{"id":"121","text":"Total","bounding_box":{"left":0.7699391494400615,"top":0.47048096925562605,"width":0.033737099592433206,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7699391494400615,"y":0.47048096925562605},{"x":0.8036762490324947,"y":0.47048096925562605},{"x":0.8036762490324947,"y":0.4808999381694819},{"x":0.7705563217637372,"y":0.4808999381694819}]}}},{"id":"122","text":"AUD","bounding_box":{"left":0.8067498779907556,"top":0.47048096925562605,"width":0.026379789245114416,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8067498779907556,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.4808999381694819},{"x":0.8067498779907556,"y":0.4808999381694819}]}}},{"id":"123","text":"12,250.00","bounding_box":{"left":0.8723968524211493,"top":0.47091757125675326,"width":0.060734003459996355,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.8723968524211493,"y":0.47091757125675326},{"x":0.9331308558811456,"y":0.47091757125675326},{"x":0.9331308558811456,"y":0.4808999381694819},{"x":0.8730018497859342,"y":0.48046333616835474}]}}},{"id":"124","text":"VAT","bounding_box":{"left":0.08159586043319543,"top":0.529947100738186,"width":0.026379796457767835,"height":0.012148312903734415,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.529947100738186},{"x":0.10797565689096326,"y":0.529947100738186},{"x":0.10797565689096326,"y":0.5420954136419204},{"x":0.08159586043319543,"y":0.5420954136419204}]}}},{"id":"125","text":"Amount","bounding_box":{"left":0.11165430485196923,"top":0.529947100738186,"width":0.05215455948748385,"height":0.012148312903734415,"polygon":{"coordinates":[{"x":0.11165430485196923,"y":0.529947100738186},{"x":0.16380886433945308,"y":0.529947100738186},{"x":0.16380886433945308,"y":0.5420954136419204},{"x":0.11165430485196923,"y":0.5420954136419204}]}}},{"id":"126","text":"Specification","bounding_box":{"left":0.16687036161474345,"top":0.529947100738186,"width":0.0822129966936043,"height":0.012584955727863112,"polygon":{"coordinates":[{"x":0.16687036161474345,"y":0.529947100738186},{"x":0.24908335830834774,"y":0.529947100738186},{"x":0.24908335830834774,"y":0.5425320564660491},{"x":0.1674875050878057,"y":0.5420954136419204}]}}},{"id":"127","text":"Inv.","bounding_box":{"left":0.4503079629885866,"top":0.5438333712851171,"width":0.025157619556653743,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.4503079629885866,"y":0.5438333712851171},{"x":0.47546558254524035,"y":0.5438333712851171},{"x":0.47546558254524035,"y":0.5538157381978457},{"x":0.4503079629885866,"y":0.5538157381978457}]}}},{"id":"128","text":"Disc.","bounding_box":{"left":0.4779099507727752,"top":0.5438333712851171,"width":0.031909874837960595,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.4779099507727752,"y":0.5438333712851171},{"x":0.509202710988287,"y":0.5438333712851171},{"x":0.5098198256107358,"y":0.554252340198973},{"x":0.47852709424583745,"y":0.5538157381978457}]}}},{"id":"129","text":"Base","bounding_box":{"left":0.512264222688884,"top":0.5438333712851171,"width":0.029453360502148418,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.512264222688884,"y":0.5438333712851171},{"x":0.5417175831910325,"y":0.5438333712851171},{"x":0.5417175831910325,"y":0.554252340198973},{"x":0.512264222688884,"y":0.554252340198973}]}}},{"id":"130","text":"Invoice","bounding_box":{"left":0.5668752027476862,"top":0.5438333712851171,"width":0.046624495532597954,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5668752027476862,"y":0.5438333712851171},{"x":0.6128825259566084,"y":0.5438333712851171},{"x":0.6134996982802842,"y":0.554252340198973},{"x":0.5668752027476862,"y":0.5538157381978457}]}}},{"id":"131","text":"Discount","bounding_box":{"left":0.61717832460333,"top":0.5433967284609884,"width":0.05705543483817754,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.61717832460333,"y":0.5438333712851171},{"x":0.6742337594415075,"y":0.5433967284609884},{"x":0.6742337594415075,"y":0.5538157381978457},{"x":0.61717832460333,"y":0.554252340198973}]}}},{"id":"132","text":"VAT","bounding_box":{"left":0.08159586043319543,"top":0.5559902570191682,"width":0.025762652984705592,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5559902570191682},{"x":0.10735851341790102,"y":0.5559902570191682},{"x":0.10735851341790102,"y":0.5664006939257088},{"x":0.08221300390625766,"y":0.5664006939257088}]}}},{"id":"133","text":"Identifier","bounding_box":{"left":0.1104321207382018,"top":0.5559902570191682,"width":0.061956223637030655,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.1104321207382018,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5668372959268361},{"x":0.1104321207382018,"y":0.5664006939257088}]}}},{"id":"134","text":"VAT","bounding_box":{"left":0.24600975820070034,"top":0.5555536550180409,"width":0.026379789245114443,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.24600975820070034,"y":0.5555536550180409},{"x":0.2723895474458148,"y":0.5555536550180409},{"x":0.2723895474458148,"y":0.5664006939257088},{"x":0.24600975820070034,"y":0.5664006939257088}]}}},{"id":"135","text":"%","bounding_box":{"left":0.2803640012661957,"top":0.5555536550180409,"width":0.006752255281306796,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.2803640012661957,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5664006939257088},{"x":0.28098114473925795,"y":0.5664006939257088}]}}},{"id":"136","text":"Line","bounding_box":{"left":0.33435786670254913,"top":0.5559902570191682,"width":0.02637981809572798,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.33435786670254913,"y":0.5559902570191682},{"x":0.3607376847982771,"y":0.5564183270129802},{"x":0.3607376847982771,"y":0.5659726239318967},{"x":0.33435786670254913,"y":0.5659726239318967}]}}},{"id":"137","text":"Amount","bounding_box":{"left":0.36441631112132294,"top":0.5564183270129802,"width":0.052759607340842396,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.36441631112132294,"y":0.5564183270129802},{"x":0.41717591846216534,"y":0.5564183270129802},{"x":0.41717591846216534,"y":0.5664006939257088},{"x":0.36441631112132294,"y":0.5659726239318967}]}}},{"id":"138","text":"Amount","bounding_box":{"left":0.49385885841353705,"top":0.5564183270129802,"width":0.05092023647809252,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.49385885841353705,"y":0.5564183270129802},{"x":0.5447790948916296,"y":0.5568549290141074},{"x":0.5447790948916296,"y":0.5664006939257088},{"x":0.49385885841353705,"y":0.5659726239318967}]}}},{"id":"139","text":"Amount","bounding_box":{"left":0.6251528072743244,"top":0.5564183270129802,"width":0.05214240616655319,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.6251528072743244,"y":0.5568549290141074},{"x":0.6772952134408776,"y":0.5564183270129802},{"x":0.6772952134408776,"y":0.5668372959268361},{"x":0.6257699218967732,"y":0.5659726239318967}]}}},{"id":"140","text":"VAT","bounding_box":{"left":0.7423250732488226,"top":0.5559902570191682,"width":0.026996961568790168,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.7423250732488226,"y":0.5559902570191682},{"x":0.7693220348176127,"y":0.5564183270129802},{"x":0.7693220348176127,"y":0.5664006939257088},{"x":0.7423250732488226,"y":0.5659726239318967}]}}},{"id":"141","text":"Base","bounding_box":{"left":0.7723956060746467,"top":0.5564183270129802,"width":0.028836303580926592,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7723956060746467,"y":0.5564183270129802},{"x":0.8012319096555733,"y":0.5564183270129802},{"x":0.8012319096555733,"y":0.5668372959268361},{"x":0.7723956060746467,"y":0.5664006939257088}]}}},{"id":"142","text":"VAT","bounding_box":{"left":0.8533743158221265,"top":0.5559902570191682,"width":0.026379789245114416,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.5559902570191682},{"x":0.8797541050672409,"y":0.5564183270129802},{"x":0.8797541050672409,"y":0.5664006939257088},{"x":0.8533743158221265,"y":0.5664006939257088}]}}},{"id":"143","text":"Amount","bounding_box":{"left":0.8846670760376383,"top":0.5564183270129802,"width":0.05275957849022894,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.8846670760376383,"y":0.5564183270129802},{"x":0.9374266545278672,"y":0.5568549290141074},{"x":0.9368095399054185,"y":0.5664006939257088},{"x":0.8846670760376383,"y":0.5664006939257088}]}}},{"id":"144","text":"NON","bounding_box":{"left":0.08159586043319543,"top":0.5802955373029566,"width":0.026996939930830077,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5807235664737671},{"x":0.10859280036402551,"y":0.5802955373029566},{"x":0.10859280036402551,"y":0.5902779042156853},{"x":0.08159586043319543,"y":0.5902779042156853}]}}},{"id":"145","text":"GST","bounding_box":{"left":0.11595009628603745,"top":0.5802955373029566,"width":0.024540476083591528,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.11595009628603745,"y":0.5802955373029566},{"x":0.13987342889656673,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5907059333864958},{"x":0.11595009628603745,"y":0.5907059333864958}]}}},{"id":"146","text":"0","bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.006135140658858007,"height":0.008681092916662192,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.2858940868590418,"y":0.5807235664737671},{"x":0.2858940868590418,"y":0.5894046593904293},{"x":0.27975894620018377,"y":0.5894046593904293}]}}},{"id":"147","text":"12,250.00","bounding_box":{"left":0.35950339785215263,"top":0.5807235664737671,"width":0.05645035092155204,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.35950339785215263,"y":0.5807235664737671},{"x":0.41595374877370467,"y":0.5807235664737671},{"x":0.41595374877370467,"y":0.5907059333864958},{"x":0.36012054132521487,"y":0.5907059333864958}]}}},{"id":"148","text":"12,250.00","bounding_box":{"left":0.4889580047008036,"top":0.5802955373029566,"width":0.055821090190825984,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.4889580047008036,"y":0.5802955373029566},{"x":0.5447790948916296,"y":0.5807235664737671},{"x":0.5447790948916296,"y":0.5907059333864958},{"x":0.4895751770244793,"y":0.5907059333864958}]}}},{"id":"149","text":"0.00","bounding_box":{"left":0.651532596519439,"top":0.5802955373029566,"width":0.02454044723297799,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.651532596519439,"y":0.5898412613915565},{"x":0.6521497111418877,"y":0.5802955373029566},{"x":0.676073043752417,"y":0.5807235664737671},{"x":0.676073043752417,"y":0.5902779042156853}]}}},{"id":"150","text":"12,250.00","bounding_box":{"left":0.7453987022070835,"top":0.5802955373029566,"width":0.05643820481327477,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.7453987022070835,"y":0.5802955373029566},{"x":0.8018369070203583,"y":0.5802955373029566},{"x":0.8018369070203583,"y":0.5907059333864958},{"x":0.7466208718955442,"y":0.5907059333864958}]}}},{"id":"151","text":"0.00","bounding_box":{"left":0.9098125783366283,"top":0.5802955373029566,"width":0.026379789245114416,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.9098125783366283,"y":0.5802955373029566},{"x":0.9361923675817427,"y":0.5802955373029566},{"x":0.9355873125157308,"y":0.5902779042156853},{"x":0.9098125783366283,"y":0.5898412613915565}]}}},{"id":"152","text":"Total","bounding_box":{"left":0.2552184989672057,"top":0.6076400084030066,"width":0.032514901053359024,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.2552184989672057,"y":0.6076400084030066},{"x":0.28773340002056474,"y":0.6076400084030066},{"x":0.28773340002056474,"y":0.6171857324916066},{"x":0.2552184989672057,"y":0.6171857324916066}]}}},{"id":"153","text":"12,250.00","bounding_box":{"left":0.35521968761248135,"top":0.6076400084030066,"width":0.06073406116122332,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.35521968761248135,"y":0.6080680783968186},{"x":0.41595374877370467,"y":0.6076400084030066},{"x":0.41595374877370467,"y":0.6176223753157353},{"x":0.3558247426784933,"y":0.6176223753157353}]}}},{"id":"154","text":"12,250.00","bounding_box":{"left":0.484662206054082,"top":0.6072034064018794,"width":0.059511891472762646,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.484662206054082,"y":0.6080680783968186},{"x":0.5441740975268446,"y":0.6072034064018794},{"x":0.5441740975268446,"y":0.6180504453095473},{"x":0.484662206054082,"y":0.6176223753157353}]}}},{"id":"155","text":"0.00","bounding_box":{"left":0.6490761398848537,"top":0.6076400084030066,"width":0.02699690386756326,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.6490761398848537,"y":0.6076400084030066},{"x":0.676073043752417,"y":0.6076400084030066},{"x":0.676073043752417,"y":0.6171857324916066},{"x":0.6490761398848537,"y":0.6171857324916066}]}}},{"id":"156","text":"12,250.00","bounding_box":{"left":0.7411029035603619,"top":0.6072034064018794,"width":0.060734003459996355,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.7411029035603619,"y":0.6076400084030066},{"x":0.8012319096555733,"y":0.6072034064018794},{"x":0.8018369070203583,"y":0.6180504453095473},{"x":0.7417200181828106,"y":0.6176223753157353}]}}},{"id":"157","text":"0.00","bounding_box":{"left":0.9085904086481675,"top":0.6076400084030066,"width":0.026379789245114527,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9085904086481675,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6076400084030066},{"x":0.9349701978932821,"y":0.6171857324916066},{"x":0.9085904086481675,"y":0.6171857324916066}]}}},{"id":"158","text":"Ship-to","bounding_box":{"left":0.08221300390625766,"top":0.651036736863995,"width":0.04662447389463781,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.651036736863995},{"x":0.12822033432783322,"y":0.651036736863995},{"x":0.12883747780089547,"y":0.6623204185957916},{"x":0.08281804454696286,"y":0.6618923486019795}]}}},{"id":"159","text":"Address","bounding_box":{"left":0.1325161329745548,"top":0.651036736863995,"width":0.05153740880176824,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.1325161329745548,"y":0.651036736863995},{"x":0.18405354177632305,"y":0.651036736863995},{"x":0.18405354177632305,"y":0.6618923486019795},{"x":0.1325161329745548,"y":0.6623204185957916}]}}},{"id":"160","text":"CRONUS","bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.051525313182064575,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.13373831708832223,"y":0.6644949782401155},{"x":0.13373831708832223,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}}},{"id":"161","text":"International","bounding_box":{"left":0.13681191719596963,"top":0.6644949782401155,"width":0.07668292552606498,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.13681191719596963,"y":0.6644949782401155},{"x":0.21349484272203462,"y":0.6644949782401155},{"x":0.21349484272203462,"y":0.6753420171477834},{"x":0.13681191719596963,"y":0.6753420171477834}]}}},{"id":"162","text":"Ltd.","bounding_box":{"left":0.21656845725498877,"top":0.6644949782401155,"width":0.0226890456644048,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.21656845725498877,"y":0.6644949782401155},{"x":0.23925750291939357,"y":0.6644949782401155},{"x":0.23925750291939357,"y":0.6753420171477834},{"x":0.21656845725498877,"y":0.6753420171477834}]}}},{"id":"163","text":"5","bounding_box":{"left":0.08159586043319543,"top":0.6788178507881738,"width":0.008591582868136424,"height":0.010847079730669451,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6788178507881738},{"x":0.08957029982826961,"y":0.6788178507881738},{"x":0.09018744330133185,"y":0.6896649305188433},{"x":0.08221300390625766,"y":0.6896649305188433}]}}},{"id":"164","text":"The","bounding_box":{"left":0.09386609126233782,"top":0.6788178507881738,"width":0.021466868763290764,"height":0.010847079730669451,"polygon":{"coordinates":[{"x":0.09386609126233782,"y":0.6788178507881738},{"x":0.11472791217227002,"y":0.6788178507881738},{"x":0.11533296002562858,"y":0.6896649305188433},{"x":0.09448323473540006,"y":0.6896649305188433}]}}},{"id":"165","text":"Ring","bounding_box":{"left":0.11778942387286712,"top":0.6788178507881738,"width":0.027614076191238957,"height":0.011283640908795078,"polygon":{"coordinates":[{"x":0.11778942387286712,"y":0.6788178507881738},{"x":0.14540350006410607,"y":0.6792544936123025},{"x":0.14540350006410607,"y":0.6901014916969689},{"x":0.11840656734592936,"y":0.6896649305188433}]}}},{"id":"166","text":"Westminster","bounding_box":{"left":0.08221300390625766,"top":0.6927041213351048,"width":0.07606577484034938,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6927041213351048},{"x":0.15767373810590182,"y":0.6931407641592335},{"x":0.15827877874660704,"y":0.7026864882478335},{"x":0.08221300390625766,"y":0.7026864882478335}]}}},{"id":"167","text":"CANBERRA","bounding_box":{"left":0.08159586043319543,"top":0.7057257607100982,"width":0.0662520078584455,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.7057257607100982},{"x":0.14724282765093574,"y":0.7057257607100982},{"x":0.14784786829164093,"y":0.7157081276228269},{"x":0.08221300390625766,"y":0.7161446888009525}]}}},{"id":"168","text":"NSW","bounding_box":{"left":0.15092148282459508,"top":0.7057257607100982,"width":0.02637978924511447,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.15092148282459508,"y":0.7057257607100982},{"x":0.17668414302195404,"y":0.7057257607100982},{"x":0.17730127206970955,"y":0.7161446888009525},{"x":0.15153862629765733,"y":0.7157081276228269}]}}},{"id":"169","text":"2600","bounding_box":{"left":0.18589286936315272,"top":0.7057257607100982,"width":0.028836260305006384,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.18589286936315272,"y":0.7057257607100982},{"x":0.2147291296681591,"y":0.7057257607100982},{"x":0.2147291296681591,"y":0.7161446888009525},{"x":0.1864979100038579,"y":0.7161446888009525}]}}},{"id":"170","text":"Australia","bounding_box":{"left":0.08281804454696286,"top":0.720048592435155,"width":0.051537401589114865,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.08281804454696286,"y":0.7204852352592837},{"x":0.13435544613607772,"y":0.720048592435155},{"x":0.13435544613607772,"y":0.7300309593478835},{"x":0.08281804454696286,"y":0.7295943981697579}]}}}],"selection_marks":[]}],"error":null}},"error":null} \ No newline at end of file diff --git a/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108228.json b/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108228.json deleted file mode 100644 index 0ecc45b6fc..0000000000 --- a/Apps/AU/EDocument_AU/demo data/.resources/ADIJsons/PurchaseInvoice108228.json +++ /dev/null @@ -1 +0,0 @@ -{"outputs":{"1":{"page_count":1,"result":{"context":{"start_page":1,"end_page":1},"fields":{"amountDue":null,"billingAddress":null,"billingAddressRecipient":null,"customerAddress":{"value_text":"5 The Ring Westminster CANBERRA NSW 2600 Australia","value_number":null,"value_date":null,"confidence":0.868,"location":{"bounding_box":{"left":0.7997192719905435,"top":0.10790541914731037,"width":0.1336899346095075,"height":0.053421908496548445,"polygon":{"coordinates":[{"x":0.7997192719905435,"y":0.1605568139018976},{"x":0.8003243270565554,"y":0.10790541914731037},{"x":0.933409206600051,"y":0.10866736005895494},{"x":0.9328041515340391,"y":0.16132732764385882}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerAddressRecipient":null,"customerId":{"value_text":"99-99-888","value_number":null,"value_date":null,"confidence":0.814,"location":{"bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerName":{"value_text":"CRONUS International Ltd.","value_number":null,"value_date":null,"confidence":0.919,"location":{"bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.1595009556477211,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}},"page":1},"currency_symbol":null,"currency_code":null},"dueDate":{"value_text":"07/31/25","value_number":null,"value_date":"2025-07-31","confidence":0.975,"location":{"bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.28341864796341804},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceDate":{"value_text":"June 4, 2025","value_number":null,"value_date":"2025-06-04","confidence":0.885,"location":{"bounding_box":{"left":0.23419935566193867,"top":0.22892659509959057,"width":0.07515821387929156,"height":0.011206607904949678,"polygon":{"coordinates":[{"x":0.23419935566193867,"y":0.23957672425948504},{"x":0.2343566636319668,"y":0.22892659509959057},{"x":0.3093575695412302,"y":0.22948307384464578},{"x":0.30920027599650884,"y":0.24013320300454025}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceId":{"value_text":"108228","value_number":null,"value_date":null,"confidence":0.975,"location":{"bounding_box":{"left":0.23681313469185872,"top":0.24218790631643689,"width":0.04294581150832505,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23681313469185872,"y":0.24218790631643689},{"x":0.27975894620018377,"y":0.24218790631643689},{"x":0.27975894620018377,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2521702528176648}]}},"page":1},"currency_symbol":null,"currency_code":null},"invoiceTotal":{"value_text":"16,940.00","value_number":16940,"value_date":null,"confidence":0.965,"location":{"bounding_box":{"left":0.8723968524211493,"top":0.47048096925562605,"width":0.06011688883754762,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8723968524211493,"y":0.47091757125675326},{"x":0.9325137412586969,"y":0.47048096925562605},{"x":0.9325137412586969,"y":0.4808999381694819},{"x":0.8730018497859342,"y":0.4808999381694819}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"previousUnpaidBalance":null,"purchaseOrder":null,"remittanceAddress":null,"remittanceAddressRecipient":null,"serviceAddress":null,"serviceAddressRecipient":null,"serviceEndDate":null,"serviceStartDate":null,"shippingAddress":{"value_text":"5 The Ring Westminster CANBERRA NSW 2600 Australia","value_number":null,"value_date":null,"confidence":0.881,"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6788178507881738,"width":0.13313326923496366,"height":0.05121310855970973,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6788178507881738},{"x":0.2147291296681591,"y":0.6788178507881738},{"x":0.2147291296681591,"y":0.7300309593478835},{"x":0.08159586043319543,"y":0.7300309593478835}]}},"page":1},"currency_symbol":null,"currency_code":null},"shippingAddressRecipient":{"value_text":"CRONUS International Ltd.","value_number":null,"value_date":null,"confidence":0.919,"location":{"bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.1595009556477211,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}},"page":1},"currency_symbol":null,"currency_code":null},"subTotal":{"value_text":"16,940.00","value_number":16940,"value_date":null,"confidence":0.789,"location":{"bounding_box":{"left":0.7404857312366862,"top":0.6076400084030066,"width":0.06196834810734786,"height":0.010410436906540754,"polygon":{"coordinates":[{"x":0.7404857312366862,"y":0.6076400084030066},{"x":0.8018369070203583,"y":0.6076400084030066},{"x":0.802454079344034,"y":0.6180504453095473},{"x":0.7411029035603619,"y":0.6180504453095473}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"totalTax":{"value_text":"0.00","value_number":0,"value_date":null,"confidence":0.971,"location":{"bounding_box":{"left":0.9085904086481675,"top":0.6076400084030066,"width":0.025762616921438775,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9085904086481675,"y":0.6076400084030066},{"x":0.9343530255696063,"y":0.6076400084030066},{"x":0.9343530255696063,"y":0.6171857324916066},{"x":0.9085904086481675,"y":0.6171857324916066}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"vendorAddress":{"value_text":"Aviator Way, 3000 Manchester Business Park COORPAROO QLD 4151 Australia","value_number":null,"value_date":null,"confidence":0.868,"location":{"bounding_box":{"left":0.08037367631942799,"top":0.08897658939661726,"width":0.15336584383947657,"height":0.05164975138383851,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.08897658939661726},{"x":0.23373952015890456,"y":0.08897658939661726},{"x":0.23373952015890456,"y":0.14062634078045577},{"x":0.08037367631942799,"y":0.14062634078045577}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorAddressRecipient":{"value_text":"Wide World Importers","value_number":null,"value_date":null,"confidence":0.889,"location":{"bounding_box":{"left":0.0802889709182354,"top":0.06119548567818885,"width":0.13329057720499182,"height":0.011771654377446365,"polygon":{"coordinates":[{"x":0.0802889709182354,"y":0.07247915210135993},{"x":0.08037367631942799,"y":0.06119548567818885},{"x":0.21357954812322721,"y":0.061683473632464146},{"x":0.21349484272203462,"y":0.07296714005563522}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorName":{"value_text":"Wide World Importers","value_number":null,"value_date":null,"confidence":0.889,"location":{"bounding_box":{"left":0.0802889709182354,"top":0.06119548567818885,"width":0.13329057720499182,"height":0.011771654377446365,"polygon":{"coordinates":[{"x":0.0802889709182354,"y":0.07247915210135993},{"x":0.08037367631942799,"y":0.06119548567818885},{"x":0.21357954812322721,"y":0.061683473632464146},{"x":0.21349484272203462,"y":0.07296714005563522}]}},"page":1},"currency_symbol":null,"currency_code":null},"customerTaxId":{"value_text":"53001003000","value_number":null,"value_date":null,"confidence":0.416,"location":{"bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}},"page":1},"currency_symbol":null,"currency_code":null},"vendorTaxId":{"value_text":"197548769B01","value_number":null,"value_date":null,"confidence":0.964,"location":{"bounding_box":{"left":0.23681313469185872,"top":0.20052052184532704,"width":0.08589165186726361,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23681313469185872,"y":0.20052052184532704},{"x":0.32208764308606014,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.21093951117068366},{"x":0.23681313469185872,"y":0.2105028887580557}]}},"page":1},"currency_symbol":null,"currency_code":null},"paymentTerms":{"value_text":"End of Next Month","value_number":null,"value_date":null,"confidence":0.915,"location":{"bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.11227144111237808,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3198808139812575},{"x":0.23557884774573423,"y":0.3198808139812575}]}},"page":1},"currency_symbol":null,"currency_code":null}},"items":[{"fields":{"amount":{"value_text":"14,950.00","value_number":14950,"value_date":null,"confidence":0.947,"location":{"bounding_box":{"left":0.8772976484326558,"top":0.4296868296097721,"width":0.05643826251450179,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8772976484326558,"y":0.43012343161089933},{"x":0.9337359109471576,"y":0.4296868296097721},{"x":0.9337359109471576,"y":0.44053386851744003},{"x":0.8779148207563315,"y":0.4396691965225008}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"description":{"value_text":"Grinder, Smart Grind Home","value_number":null,"value_date":null,"confidence":0.933,"location":{"bounding_box":{"left":0.17607910238124885,"top":0.4296868296097721,"width":0.16257456296802186,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4296868296097721},{"x":0.3386536653492707,"y":0.4296868296097721},{"x":0.3386536653492707,"y":0.44053386851744003},{"x":0.17607910238124885,"y":0.44053386851744003}]}},"page":1},"currency_symbol":null,"currency_code":null},"unitPrice":{"value_text":"299.00","value_number":299,"value_date":null,"confidence":0.946,"location":{"bounding_box":{"left":0.5331260435988163,"top":0.4296868296097721,"width":0.039267127484052256,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5331260435988163,"y":0.4296868296097721},{"x":0.5723931710828686,"y":0.4296868296097721},{"x":0.5723931710828686,"y":0.44010579852362797},{"x":0.5337431582212651,"y":0.4396691965225008}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"quantity":{"value_text":"50","value_number":50,"value_date":null,"confidence":0.946,"location":{"bounding_box":{"left":0.4092014646417844,"top":0.4296868296097721,"width":0.013492422155563233,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.4092014646417844,"y":0.4296868296097721},{"x":0.42269388679734765,"y":0.4296868296097721},{"x":0.42269388679734765,"y":0.4388045245275615},{"x":0.4092014646417844,"y":0.4388045245275615}]}},"page":1},"currency_symbol":null,"currency_code":null},"productCode":{"value_text":"GRH-1001","value_number":null,"value_date":null,"confidence":0.946,"location":{"bounding_box":{"left":0.08159586043319543,"top":0.43012343161089933,"width":0.06195622363703067,"height":0.009545764911601473,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.43012343161089933},{"x":0.1435520840702261,"y":0.43012343161089933},{"x":0.1435520840702261,"y":0.4396691965225008},{"x":0.08221300390625766,"y":0.4396691965225008}]}},"page":1},"currency_symbol":null,"currency_code":null},"unit":{"value_text":"Piece","value_number":null,"value_date":null,"confidence":0.946,"location":{"bounding_box":{"left":0.43987705253362047,"top":0.43012343161089933,"width":0.031897786430910235,"height":0.00910912208747272,"polygon":{"coordinates":[{"x":0.43987705253362047,"y":0.43012343161089933},{"x":0.4717748389645307,"y":0.43012343161089933},{"x":0.4717748389645307,"y":0.43923255369837205},{"x":0.43987705253362047,"y":0.4388045245275615}]}},"page":1},"currency_symbol":null,"currency_code":null},"date":null,"tax":null},"row_text":"GRH-1001 Grinder, Smart Grind Home 50 Piece 299.00 Yes NON GST 14,950.00","confidence":0.862,"location":{"bounding_box":{"left":0.08159586043319543,"top":0.4296868296097721,"width":0.8521400505139621,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.4296868296097721},{"x":0.9337359109471576,"y":0.4296868296097721},{"x":0.9337359109471576,"y":0.44053386851744003},{"x":0.08159586043319543,"y":0.44053386851744003}]}},"page":1}},{"fields":{"amount":{"value_text":"1,990.00","value_number":1990,"value_date":null,"confidence":0.947,"location":{"bounding_box":{"left":0.8846670760376383,"top":0.44313645733257445,"width":0.04968594953196803,"height":0.011292254562113302,"polygon":{"coordinates":[{"x":0.8846670760376383,"y":0.44357310015670315},{"x":0.9337359109471576,"y":0.44313645733257445},{"x":0.9343530255696063,"y":0.45442871189468775},{"x":0.8852721311036502,"y":0.45355546706943184}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"description":{"value_text":"Grinder, Precision Grind","value_number":null,"value_date":null,"confidence":0.923,"location":{"bounding_box":{"left":0.17607910238124885,"top":0.44313645733257445,"width":0.13987342889656673,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.44313645733257445},{"x":0.3159525312778156,"y":0.44313645733257445},{"x":0.3159525312778156,"y":0.45399206907055906},{"x":0.17607910238124885,"y":0.45399206907055906}]}},"page":1},"currency_symbol":null,"currency_code":null},"unitPrice":{"value_text":"199.00","value_number":199,"value_date":null,"confidence":0.946,"location":{"bounding_box":{"left":0.5337431582212651,"top":0.44357310015670315,"width":0.03803289823915468,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.5337431582212651,"y":0.44357310015670315},{"x":0.5717760564604197,"y":0.44357310015670315},{"x":0.5717760564604197,"y":0.4531273970756198},{"x":0.5343603305449408,"y":0.4531273970756198}]}},"page":1},"currency_symbol":null,"currency_code":"AUD"},"quantity":{"value_text":"10","value_number":10,"value_date":null,"confidence":0.946,"location":{"bounding_box":{"left":0.41104080665392084,"top":0.44357310015670315,"width":0.011653080143426808,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.41104080665392084,"y":0.44357310015670315},{"x":0.42269388679734765,"y":0.44357310015670315},{"x":0.42269388679734765,"y":0.45225415225036386},{"x":0.41104080665392084,"y":0.45225415225036386}]}},"page":1},"currency_symbol":null,"currency_code":null},"productCode":{"value_text":"GRH-1000","value_number":null,"value_date":null,"confidence":0.946,"location":{"bounding_box":{"left":0.08159586043319543,"top":0.44313645733257445,"width":0.06257336711009288,"height":0.009990939743045324,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.44357310015670315},{"x":0.1435520840702261,"y":0.44313645733257445},{"x":0.14416922754328831,"y":0.4531273970756198},{"x":0.08221300390625766,"y":0.4531273970756198}]}},"page":1},"currency_symbol":null,"currency_code":null},"unit":{"value_text":"Piece","value_number":null,"value_date":null,"confidence":0.946,"location":{"bounding_box":{"left":0.4404941960066827,"top":0.44357310015670315,"width":0.030675587891836054,"height":0.009117694917789465,"polygon":{"coordinates":[{"x":0.4404941960066827,"y":0.44357310015670315},{"x":0.47116978389851877,"y":0.44357310015670315},{"x":0.47116978389851877,"y":0.4526907950744926},{"x":0.4404941960066827,"y":0.4526907950744926}]}},"page":1},"currency_symbol":null,"currency_code":null},"date":null,"tax":null},"row_text":"GRH-1000 Grinder, Precision Grind 10 Piece 199.00 Yes NON GST 1,990.00","confidence":0.864,"location":{"bounding_box":{"left":0.08159586043319543,"top":0.44313645733257445,"width":0.8527571651364109,"height":0.011292254562113302,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.44313645733257445},{"x":0.9343530255696063,"y":0.44313645733257445},{"x":0.9343530255696063,"y":0.45442871189468775},{"x":0.08159586043319543,"y":0.45442871189468775}]}},"page":1}}],"key_value_pairs":[{"key":"Pay-to Vendor No.","value":"40000","confidence":0.875,"key_location":{"bounding_box":{"left":0.08037367631942799,"top":0.18619762888576802,"width":0.11165430485196923,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.19791791261869185},{"x":0.08037367631942799,"y":0.19791791261869185}]}},"page":1},"value_location":{"bounding_box":{"left":0.23557884774573423,"top":0.18619762888576802,"width":0.03681069970008055,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.19617999579849668},{"x":0.23557884774573423,"y":0.19574337338586872}]}},"page":1}},{"key":"Phone No.","value":"0666-666-6666","confidence":0.899,"key_location":{"bounding_box":{"left":0.6666707442200392,"top":0.17949420627715698,"width":0.06358981028644384,"height":0.011043948655441393,"polygon":{"coordinates":[{"x":0.6666707442200392,"y":0.18991319560251363},{"x":0.6668764490941889,"y":0.17949420627715698},{"x":0.7302605545064831,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19053815493259837}]}},"page":1},"value_location":{"bounding_box":{"left":0.8423262618940982,"top":0.17969111602493043,"width":0.0901874793645987,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8423262618940982,"y":0.18011916560724173},{"x":0.9325137412586969,"y":0.17969111602493043},{"x":0.9325137412586969,"y":0.18967348293765912},{"x":0.8423262618940982,"y":0.18967348293765912}]}},"page":1}},{"key":"VAT Registration No.","value":"197548769B01","confidence":0.875,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.20008389943269908,"width":0.12454168636682723,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.2118041831656229},{"x":0.08097871696013319,"y":0.2118041831656229}]}},"page":1},"value_location":{"bounding_box":{"left":0.23681313469185872,"top":0.20052052184532704,"width":0.08589165186726361,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23681313469185872,"y":0.20052052184532704},{"x":0.32208764308606014,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.21093951117068366},{"x":0.23681313469185872,"y":0.2105028887580557}]}},"page":1}},{"key":"Email VAT Registration No.","value":"777777777","confidence":0.605,"key_location":{"bounding_box":{"left":0.666864331836525,"top":0.2057257402985974,"width":0.12454169357948064,"height":0.025178484286042857,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2057257402985974},{"x":0.7914060254160057,"y":0.2057257402985974},{"x":0.7914060254160057,"y":0.23090422458464024},{"x":0.666864331836525,"y":0.23090422458464024}]}},"page":1},"value_location":{"bounding_box":{"left":0.8687060511392126,"top":0.2200486332581564,"width":0.06442480474193302,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8687060511392126,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22048525567078436},{"x":0.9331308558811456,"y":0.22960293017707303},{"x":0.8687060511392126,"y":0.22916630776444508}]}},"page":1}},{"key":"Document Date","value":"June 4, 2025","confidence":0.862,"key_location":{"bounding_box":{"left":0.08030107375059245,"top":0.2284043668528005,"width":0.09461634425336746,"height":0.011506248736017827,"polygon":{"coordinates":[{"x":0.08030107375059245,"y":0.2395852970898017},{"x":0.08037367631942799,"y":0.2284043668528005},{"x":0.1749174180039599,"y":0.22872968535181712},{"x":0.17484481543512437,"y":0.23991061558881832}]}},"page":1},"value_location":{"bounding_box":{"left":0.23419935566193867,"top":0.22892659509959057,"width":0.07515821387929156,"height":0.011206607904949678,"polygon":{"coordinates":[{"x":0.23419935566193867,"y":0.23957672425948504},{"x":0.2343566636319668,"y":0.22892659509959057},{"x":0.3093575695412302,"y":0.22948307384464578},{"x":0.30920027599650884,"y":0.24013320300454025}]}},"page":1}},{"key":"Invoice No.","value":"108228","confidence":0.897,"key_location":{"bounding_box":{"left":0.0802647652535213,"top":0.24218790631643689,"width":0.06820024651118187,"height":0.01076998549232172,"polygon":{"coordinates":[{"x":0.0802647652535213,"y":0.25260687523029274},{"x":0.08037367631942799,"y":0.24218790631643689},{"x":0.14846501176470317,"y":0.24253890248340199},{"x":0.14835610069879648,"y":0.2529578918087586}]}},"page":1},"value_location":{"bounding_box":{"left":0.23681313469185872,"top":0.24218790631643689,"width":0.04294581150832505,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23681313469185872,"y":0.24218790631643689},{"x":0.27975894620018377,"y":0.24218790631643689},{"x":0.27975894620018377,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2521702528176648}]}},"page":1}},{"key":"Giro No.","value":"888-9999","confidence":0.898,"key_location":{"bounding_box":{"left":0.666864331836525,"top":0.23413181355286092,"width":0.051718936861817166,"height":0.010478897080069521,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.23459411363343738},{"x":0.7184017406382933,"y":0.23413181355286092},{"x":0.7185832686983422,"y":0.24414841055235398},{"x":0.6670458598965741,"y":0.24461071063293044}]}},"page":1},"value_location":{"bounding_box":{"left":0.8779148207563315,"top":0.23437152621771543,"width":0.0552160351248141,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8779148207563315,"y":0.23480814863034338},{"x":0.9325137412586969,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.24392582313663205},{"x":0.8779148207563315,"y":0.2434892007240041}]}},"page":1}},{"key":"Bank","value":"World Wide Bank","confidence":0.875,"key_location":{"bounding_box":{"left":0.6674814464589738,"top":0.24869441917727445,"width":0.02821913125725084,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.2578120936835631},{"x":0.6674814464589738,"y":0.2578120936835631}]}},"page":1},"value_location":{"bounding_box":{"left":0.8294509832115972,"top":0.2482663491834624,"width":0.10367987266954848,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.8294509832115972,"y":0.2482663491834624},{"x":0.9331308558811456,"y":0.2482663491834624},{"x":0.9331308558811456,"y":0.2586767860900031},{"x":0.8294509832115972,"y":0.2586767860900031}]}},"page":1}},{"key":"Posting Date","value":"06/04/25","confidence":0.898,"key_location":{"bounding_box":{"left":0.07975653284636575,"top":0.269523824997671,"width":0.0791393893733035,"height":0.01172885656324052,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269523824997671},{"x":0.15889592221966925,"y":0.26953237741648695},{"x":0.15889592221966925,"y":0.28125268156091154},{"x":0.07975653284636575,"y":0.2812441087305949}]}},"page":1},"value_location":{"bounding_box":{"left":0.23497380710502905,"top":0.26953237741648695,"width":0.05520396114307055,"height":0.010410436906540754,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.26953237741648695},{"x":0.2901777682480996,"y":0.26953237741648695},{"x":0.2901777682480996,"y":0.2799428143230277},{"x":0.23557884774573423,"y":0.2799428143230277}]}},"page":1}},{"key":"Account No.","value":"99-99-888","confidence":0.898,"key_location":{"bounding_box":{"left":0.6664892161599902,"top":0.2623752071461154,"width":0.07461368740037166,"height":0.011677501227343567,"polygon":{"coordinates":[{"x":0.6664892161599902,"y":0.27253735855748495},{"x":0.6669127431659533,"y":0.2623752071461154},{"x":0.7411029035603619,"y":0.2638905569620894},{"x":0.7406914361108358,"y":0.27405270837345896}]}},"page":1},"value_location":{"bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}},"page":1}},{"key":"Due Date","value":"07/31/25","confidence":0.899,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.28341864796341804,"width":0.05583320023583645,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.29296439246351874},{"x":0.08097871696013319,"y":0.29296439246351874}]}},"page":1},"value_location":{"bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.28341864796341804},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}},"page":1}},{"key":"Payment Terms","value":"End of Next Month","confidence":0.855,"key_location":{"bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.09264391436122375,"height":0.011283661320295846,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.17362263132135694,"y":0.30946184506740165},{"x":0.17362263132135694,"y":0.3207455063876975},{"x":0.08097871696013319,"y":0.3207455063876975}]}},"page":1},"value_location":{"bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.11227144111237808,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3198808139812575},{"x":0.23557884774573423,"y":0.3198808139812575}]}},"page":1}},{"key":"ABN","value":"53001003000","confidence":0.923,"key_location":{"bounding_box":{"left":0.6680986187826495,"top":0.30338338178887536,"width":0.022701162922068585,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.6680986187826495,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.312501056295164},{"x":0.6680986187826495,"y":0.312501056295164}]}},"page":1},"value_location":{"bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}},"page":1}},{"key":"Total AUD","value":"16,940.00","confidence":0.899,"key_location":{"bounding_box":{"left":0.7705563217637372,"top":0.47048096925562605,"width":0.06257334547213278,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7705563217637372,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.4808999381694819},{"x":0.7705563217637372,"y":0.4808999381694819}]}},"page":1},"value_location":{"bounding_box":{"left":0.8723968524211493,"top":0.47048096925562605,"width":0.06011688883754762,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8723968524211493,"y":0.47091757125675326},{"x":0.9325137412586969,"y":0.47048096925562605},{"x":0.9325137412586969,"y":0.4808999381694819},{"x":0.8730018497859342,"y":0.4808999381694819}]}},"page":1}},{"key":"VAT Identifier","value":"NON GST","confidence":0.875,"key_location":{"bounding_box":{"left":0.08152325065170651,"top":0.5556735113504682,"width":0.09093769629236148,"height":0.011163784576367908,"polygon":{"coordinates":[{"x":0.08152325065170651,"y":0.5665205502581361},{"x":0.08159586043319543,"y":0.5556735113504682},{"x":0.172460946944068,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5668372959268361}]}},"page":1},"value_location":{"bounding_box":{"left":0.08159586043319543,"top":0.5802955373029566,"width":0.058894711936433544,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5907059333864958},{"x":0.08159586043319543,"y":0.5907059333864958}]}},"page":1}},{"key":"VAT %","value":"0","confidence":0.894,"key_location":{"bounding_box":{"left":0.24478758851223964,"top":0.5555536550180409,"width":0.04232866803526286,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.24478758851223964,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5664006939257088},{"x":0.24478758851223964,"y":0.5664006939257088}]}},"page":1},"value_location":{"bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.006740166874256492,"height":0.008253022922850128,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.28649911307444026,"y":0.5807235664737671},{"x":0.28649911307444026,"y":0.5889765893966172},{"x":0.27975894620018377,"y":0.5889765893966172}]}},"page":1}},{"key":"Ship-to Address","value":"CRONUS International Ltd. 5 The Ring Westminster CANBERRA NSW 2600 Australia","confidence":0.173,"key_location":{"bounding_box":{"left":0.08211619567270802,"top":0.6505658843646026,"width":0.10203415433716466,"height":0.01201135173367529,"polygon":{"coordinates":[{"x":0.08211619567270802,"y":0.6621063835988856},{"x":0.08221300390625766,"y":0.6505658843646026},{"x":0.18415035000987268,"y":0.651036736863995},{"x":0.184041438943966,"y":0.6625772360982779}]}},"page":1},"value_location":{"bounding_box":{"left":0.08159586043319543,"top":0.6644949782401155,"width":0.16011809912078334,"height":0.06553598110776804,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.7300309593478835},{"x":0.08159586043319543,"y":0.7300309593478835}]}},"page":1}}]},"read_results":[{"location":{"bounding_box":{"left":0.7245368812971513,"top":0.03992945489372671,"width":0.20245889162636332,"height":0.016925499634756605,"polygon":{"coordinates":[{"x":0.7245368812971513,"y":0.03992945489372671},{"x":0.9269957729235146,"y":0.03992945489372671},{"x":0.9269957729235146,"y":0.05685495452848331},{"x":0.7245368812971513,"y":0.05685495452848331}]}},"page":1},"text":"Purchase - Invoice"},{"location":{"bounding_box":{"left":0.07913938937330352,"top":0.06076742589012718,"width":0.1343554533487311,"height":0.011711726211232745,"polygon":{"coordinates":[{"x":0.07913938937330352,"y":0.06076742589012718},{"x":0.21349484272203462,"y":0.06119548567818885},{"x":0.21287769924897237,"y":0.07247915210135993},{"x":0.07913938937330352,"y":0.07205109231329825}]}},"page":1},"text":"Wide World Importers"},{"location":{"bounding_box":{"left":0.8908021589952693,"top":0.06163210809081681,"width":0.04171158226342764,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.8908021589952693,"y":0.06206873050344477},{"x":0.9325137412586969,"y":0.06163210809081681},{"x":0.9325137412586969,"y":0.07247915210135993},{"x":0.8914072140612812,"y":0.07247915210135993}]}},"page":1},"text":"Page 1"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.07551837863774787,"width":0.073004277565059,"height":0.010418989325356634,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.07551837863774787},{"x":0.15276081041142475,"y":0.07551837863774787},{"x":0.15276081041142475,"y":0.0859373679631045},{"x":0.07975653284636575,"y":0.08550074555047654}]}},"page":1},"text":"Toby Rhode"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.0885399669839893,"width":0.10981497726513956,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.0885399669839893},{"x":0.1895715101115053,"y":0.08897658939661726},{"x":0.1895715101115053,"y":0.09895895630934592},{"x":0.07975653284636575,"y":0.09895895630934592}]}},"page":1},"text":"Aviator Way, 3000"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.10112494312335316,"width":0.15398298731253882,"height":0.010855601532234208,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.10156156553598111},{"x":0.2343566636319668,"y":0.10112494312335316},{"x":0.2343566636319668,"y":0.1115439222429594},{"x":0.08037367631942799,"y":0.11198054465558736}]}},"page":1},"text":"Manchester Business Park"},{"location":{"bounding_box":{"left":0.9251564309113782,"top":0.09418180784988762,"width":0.007974424969767413,"height":0.009117674506288656,"polygon":{"coordinates":[{"x":0.9251564309113782,"y":0.09418180784988762},{"x":0.9325137412586969,"y":0.09418180784988762},{"x":0.9331308558811456,"y":0.10329948235617628},{"x":0.9251564309113782,"y":0.1028628701492987}]}},"page":1},"text":"5"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.11544783608291218,"width":0.14416922033063495,"height":0.010855601532234194,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.11544783608291218},{"x":0.22454289665006294,"y":0.11544783608291218},{"x":0.22454289665006294,"y":0.12630343761514637},{"x":0.08037367631942799,"y":0.12630343761514637}]}},"page":1},"text":"COORPAROO QLD 4151"},{"location":{"bounding_box":{"left":0.8693232234628884,"top":0.10807664102138496,"width":0.06319051779580853,"height":0.011283661320295887,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.10807664102138496},{"x":0.9325137412586969,"y":0.10850470080944664},{"x":0.9325137412586969,"y":0.11936030234168085},{"x":0.8693232234628884,"y":0.11848705751642494}]}},"page":1},"text":"5 The Ring"},{"location":{"bounding_box":{"left":0.07913938937330352,"top":0.1306439738677271,"width":0.054598927715018716,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.07913938937330352,"y":0.1306439738677271},{"x":0.13373831708832223,"y":0.1306439738677271},{"x":0.13373831708832223,"y":0.14018971836782781},{"x":0.07913938937330352,"y":0.14018971836782781}]}},"page":1},"text":"Australia"},{"location":{"bounding_box":{"left":0.8570529998463994,"top":0.12239953398094398,"width":0.07607785603474626,"height":0.010410426700790357,"polygon":{"coordinates":[{"x":0.8570529998463994,"y":0.12239953398094398},{"x":0.9331308558811456,"y":0.12282759376900566},{"x":0.9325137412586969,"y":0.13280996068173434},{"x":0.8570529998463994,"y":0.13238190089367266}]}},"page":1},"text":"Westminster"},{"location":{"bounding_box":{"left":0.7987753953197612,"top":0.13628580452787506,"width":0.13435546056138448,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.7987753953197612,"y":0.13628580452787506},{"x":0.9331308558811456,"y":0.13628580452787506},{"x":0.9331308558811456,"y":0.14713285364129336},{"x":0.7987753953197612,"y":0.14670479385323168}]}},"page":1},"text":"CANBERRA NSW 2600"},{"location":{"bounding_box":{"left":0.8791369904447922,"top":0.15104531990006204,"width":0.053376750813904694,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.8791369904447922,"y":0.1514733796881237},{"x":0.9325137412586969,"y":0.15104531990006204},{"x":0.9325137412586969,"y":0.1610276868127907},{"x":0.8791369904447922,"y":0.1610276868127907}]}},"page":1},"text":"Australia"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.18619762888576802,"width":0.11227144832503147,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.19704466779343593},{"x":0.07975653284636575,"y":0.1974812902060639}]}},"page":1},"text":"Pay-to Vendor No."},{"location":{"bounding_box":{"left":0.23497380710502905,"top":0.18619762888576802,"width":0.03803288381384798,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.18619762888576802},{"x":0.273006690918877,"y":0.18619762888576802},{"x":0.273006690918877,"y":0.19617999579849668},{"x":0.23497380710502905,"y":0.19574337338586872}]}},"page":1},"text":"40000"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.17969111602493043,"width":0.06379557286182047,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.17969111602493043},{"x":0.7300548496323336,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19010153251997042},{"x":0.6662592767705131,"y":0.18967348293765912}]}},"page":1},"text":"Phone No."},{"location":{"bounding_box":{"left":0.8411040922056375,"top":0.17969111602493043,"width":0.09324893336396878,"height":0.009545744500100733,"polygon":{"coordinates":[{"x":0.8411040922056375,"y":0.17969111602493043},{"x":0.9343530255696063,"y":0.17969111602493043},{"x":0.9343530255696063,"y":0.18923686052503116},{"x":0.8411040922056375,"y":0.18923686052503116}]}},"page":1},"text":"0666-666-6666"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.19965582943888702,"width":0.12514672700753243,"height":0.011711731314107937,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.19965582943888702},{"x":0.20490325985389818,"y":0.19965582943888702},{"x":0.20490325985389818,"y":0.21136756075299495},{"x":0.07975653284636575,"y":0.21136756075299495}]}},"page":1},"text":"VAT Registration No."},{"location":{"bounding_box":{"left":0.23497380710502905,"top":0.20008389943269908,"width":0.08773097945409328,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.20008389943269908},{"x":0.3227047865591223,"y":0.20008389943269908},{"x":0.3227047865591223,"y":0.2105028887580557},{"x":0.23497380710502905,"y":0.21006626634542774}]}},"page":1},"text":"197548769B01"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.19270414174660558,"width":0.0717821150892517,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.20355975348459018},{"x":0.6662592767705131,"y":0.20312313107196223}]}},"page":1},"text":"Home Page"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2057257402985974,"width":0.03435427191610885,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.20659896471235256},{"x":0.700613548686622,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2157080867998253},{"x":0.666864331836525,"y":0.21528003721751401}]}},"page":1},"text":"Email"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.22872968535181712,"width":0.09508828258875862,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.22872968535181712},{"x":0.17484481543512437,"y":0.22872968535181712},{"x":0.17484481543512437,"y":0.23914867467717374},{"x":0.07975653284636575,"y":0.23914867467717374}]}},"page":1},"text":"Document Date"},{"location":{"bounding_box":{"left":0.8662617117622913,"top":0.2200486332581564,"width":0.0674741991848663,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.8662617117622913,"y":0.2200486332581564},{"x":0.9337359109471576,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22916630776444508},{"x":0.8662617117622913,"y":0.22872968535181712}]}},"page":1},"text":"777777777"},{"location":{"bounding_box":{"left":0.23313447951819938,"top":0.22916630776444508,"width":0.07668293995137171,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23313447951819938,"y":0.22916630776444508},{"x":0.3098174194695711,"y":0.22916630776444508},{"x":0.30920027599650884,"y":0.2395852970898017},{"x":0.23313447951819938,"y":0.2395852970898017}]}},"page":1},"text":"June 4, 2025"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.21962056326434437,"width":0.12454169357948064,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.21962056326434437},{"x":0.7908009703499937,"y":0.21962056326434437},{"x":0.7908009703499937,"y":0.23090422458464024},{"x":0.6662592767705131,"y":0.23090422458464024}]}},"page":1},"text":"VAT Registration No."},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.24218790631643689,"width":0.06809133544527518,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.24218790631643689},{"x":0.14784786829164093,"y":0.24218790631643689},{"x":0.14784786829164093,"y":0.2521702528176648},{"x":0.07975653284636575,"y":0.2521702528176648}]}},"page":1},"text":"Invoice No."},{"location":{"bounding_box":{"left":0.23557884774573423,"top":0.24218790631643689,"width":0.045402296993523716,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.24218790631643689},{"x":0.28098114473925795,"y":0.24218790631643689},{"x":0.28098114473925795,"y":0.2521702528176648},{"x":0.23557884774573423,"y":0.2517336304050368}]}},"page":1},"text":"108228"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2339434562239034,"width":0.05214246386778021,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.23437152621771543},{"x":0.7177846260158445,"y":0.2339434562239034},{"x":0.7184017406382933,"y":0.24392582313663205},{"x":0.6662592767705131,"y":0.24392582313663205}]}},"page":1},"text":"Giro No."},{"location":{"bounding_box":{"left":0.8760754787441951,"top":0.23437152621771543,"width":0.057055377136950525,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.8760754787441951,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.2434892007240041},{"x":0.8760754787441951,"y":0.2434892007240041}]}},"page":1},"text":"888-9999"},{"location":{"bounding_box":{"left":0.666864331836525,"top":0.24869441917727445,"width":0.03129270251428484,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.24869441917727445},{"x":0.6981570343508099,"y":0.24869441917727445},{"x":0.6981570343508099,"y":0.2578120936835631},{"x":0.6680986187826495,"y":0.2578120936835631}]}},"page":1},"text":"Bank"},{"location":{"bounding_box":{"left":0.8282166962654727,"top":0.2482663491834624,"width":0.10613632930413364,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8282166962654727,"y":0.2482663491834624},{"x":0.9343530255696063,"y":0.2482663491834624},{"x":0.9343530255696063,"y":0.2582487160961911},{"x":0.8282166962654727,"y":0.2582487160961911}]}},"page":1},"text":"World Wide Bank"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.269095755003859,"width":0.0791393893733035,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269095755003859},{"x":0.15889592221966925,"y":0.269095755003859},{"x":0.15889592221966925,"y":0.2808160591482836},{"x":0.07975653284636575,"y":0.2808160591482836}]}},"page":1},"text":"Posting Date"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.269095755003859,"width":0.055821104616132794,"height":0.010847059319168684,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.269095755003859},{"x":0.2901777682480996,"y":0.269095755003859},{"x":0.2901777682480996,"y":0.2799428143230277},{"x":0.2343566636319668,"y":0.27951474432921564}]}},"page":1},"text":"06/04/25"},{"location":{"bounding_box":{"left":0.6662592767705131,"top":0.2630173121368335,"width":0.0748436267898488,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.6662592767705131,"y":0.2630173121368335},{"x":0.7411029035603619,"y":0.2630173121368335},{"x":0.7411029035603619,"y":0.2725716090557501},{"x":0.6662592767705131,"y":0.27213498664312213}]}},"page":1},"text":"Account No."},{"location":{"bounding_box":{"left":0.8693232234628884,"top":0.26258924214302143,"width":0.06502980210671794,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.26258924214302143},{"x":0.9343530255696063,"y":0.26258924214302143},{"x":0.9343530255696063,"y":0.27213498664312213},{"x":0.8693232234628884,"y":0.27213498664312213}]}},"page":1},"text":"99-99-888"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.28298202555079005,"width":0.058277568463371315,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.28341864796341804},{"x":0.13803410130973706,"y":0.28298202555079005},{"x":0.13803410130973706,"y":0.29253634288120745},{"x":0.07975653284636575,"y":0.29296439246351874}]}},"page":1},"text":"Due Date"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.28255397596847875,"width":0.055821104616132794,"height":0.010410416495039987,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.28255397596847875},{"x":0.2901777682480996,"y":0.28298202555079005},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.2343566636319668,"y":0.29253634288120745}]}},"page":1},"text":"07/31/25"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.09202677088816151,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.1730054878482947,"y":0.30946184506740165},{"x":0.1730054878482947,"y":0.3198808139812575},{"x":0.08097871696013319,"y":0.32030888397506957}]}},"page":1},"text":"Payment Terms"},{"location":{"bounding_box":{"left":0.23497380710502905,"top":0.30946184506740165,"width":0.11411076869920775,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.30946184506740165},{"x":0.3490845758042368,"y":0.30946184506740165},{"x":0.3490845758042368,"y":0.3194442119801303},{"x":0.23497380710502905,"y":0.3194442119801303}]}},"page":1},"text":"End of Next Month"},{"location":{"bounding_box":{"left":0.666864331836525,"top":0.30338338178887536,"width":0.028231248514914653,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.3038200042015033},{"x":0.694478408027764,"y":0.30338338178887536},{"x":0.6950955803514397,"y":0.312501056295164},{"x":0.6674814464589738,"y":0.3120644542940368}]}},"page":1},"text":"ABN"},{"location":{"bounding_box":{"left":0.8521521461336659,"top":0.3029467593762474,"width":0.08097870974747978,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8521521461336659,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31292912628897607},{"x":0.8521521461336659,"y":0.31292912628897607}]}},"page":1},"text":"53001003000"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.3224834232078927,"width":0.1104321207382018,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.32291149320170476},{"x":0.19018865358456755,"y":0.3224834232078927},{"x":0.19018865358456755,"y":0.3337671049396893},{"x":0.08037367631942799,"y":0.3337671049396893}]}},"page":1},"text":"Shipment Method"},{"location":{"bounding_box":{"left":0.07975653284636575,"top":0.3359330713421958,"width":0.12330739942070276,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.3359330713421958},{"x":0.2030639322670685,"y":0.3359330713421958},{"x":0.2030639322670685,"y":0.3476533754866204},{"x":0.07975653284636575,"y":0.34721673266249165}]}},"page":1},"text":"Prices Including VAT"},{"location":{"bounding_box":{"left":0.2343566636319668,"top":0.3372343861612638,"width":0.020861835335238915,"height":0.008681072505161425,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.3372343861612638},{"x":0.2546013554941435,"y":0.3372343861612638},{"x":0.2552184989672057,"y":0.3459154586664252},{"x":0.2343566636319668,"y":0.3459154586664252}]}},"page":1},"text":"No"},{"location":{"bounding_box":{"left":0.5319038162091286,"top":0.38020306503994084,"width":0.04110652719741559,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5319038162091286,"y":0.38020306503994084},{"x":0.5730103434065442,"y":0.38020306503994084},{"x":0.5730103434065442,"y":0.38975736195885746},{"x":0.5319038162091286,"y":0.39018543195266947}]}},"page":1},"text":"Direct"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.37977499504612877,"width":0.039267185185279274,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.38020306503994084},{"x":0.7165623986261569,"y":0.37977499504612877},{"x":0.7165623986261569,"y":0.38975736195885746},{"x":0.6772952134408776,"y":0.38932075995773024}]}},"page":1},"text":"Allow"},{"location":{"bounding_box":{"left":0.4386548828451598,"top":0.39235999159699336,"width":0.04846377984350736,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.4386548828451598,"y":0.39235999159699336},{"x":0.48711866268866716,"y":0.39235999159699336},{"x":0.48650154806621837,"y":0.40234235850972205},{"x":0.4386548828451598,"y":0.40234235850972205}]}},"page":1},"text":"Unit of"},{"location":{"bounding_box":{"left":0.5441740975268446,"top":0.39235999159699336,"width":0.030675587891835998,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.5441740975268446,"y":0.3927965935981206},{"x":0.5748496854186806,"y":0.39235999159699336},{"x":0.5748496854186806,"y":0.4019057156855933},{"x":0.5441740975268446,"y":0.4019057156855933}]}},"page":1},"text":"Unit"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.39235999159699336,"width":0.047241667856273706,"height":0.010418968913855908,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.39235999159699336},{"x":0.7245368812971513,"y":0.3927965935981206},{"x":0.7245368812971513,"y":0.40277896051084927},{"x":0.6772952134408776,"y":0.40234235850972205}]}},"page":1},"text":"Invoice"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.39235999159699336,"width":0.028231248514914764,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.3927965935981206},{"x":0.8012319096555733,"y":0.39235999159699336},{"x":0.8012319096555733,"y":0.40234235850972205},{"x":0.7730006611406586,"y":0.4019057156855933}]}},"page":1},"text":"VAT"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.4053815493259837,"width":0.025157612344000407,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.4058181921501124},{"x":0.1061363293041336,"y":0.4053815493259837},{"x":0.1061363293041336,"y":0.4149273142375851},{"x":0.08097871696013319,"y":0.4144992442437731}]}},"page":1},"text":"No."},{"location":{"bounding_box":{"left":0.1754619589081866,"top":0.4049449473248565,"width":0.07484359793923528,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.1754619589081866,"y":0.4049449473248565},{"x":0.2503055568474219,"y":0.4049449473248565},{"x":0.2503055568474219,"y":0.4162286290566531},{"x":0.1754619589081866,"y":0.415800559062841}]}},"page":1},"text":"Description"},{"location":{"bounding_box":{"left":0.3558247426784933,"top":0.4049449473248565,"width":0.058289664083074955,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.3558247426784933,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.4049449473248565},{"x":0.41411440676156824,"y":0.4166652310577803},{"x":0.3558247426784933,"y":0.415800559062841}]}},"page":1},"text":"Quantity"},{"location":{"bounding_box":{"left":0.43925993791117174,"top":0.4053815493259837,"width":0.056450322070938586,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.4053815493259837},{"x":0.4957102599821103,"y":0.4058181921501124},{"x":0.4957102599821103,"y":0.4149273142375851},{"x":0.43925993791117174,"y":0.4144992442437731}]}},"page":1},"text":"Measure"},{"location":{"bounding_box":{"left":0.5423347555147082,"top":0.4053815493259837,"width":0.03557644160456952,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.5423347555147082,"y":0.4053815493259837},{"x":0.5779111971192777,"y":0.4053815493259837},{"x":0.5779111971192777,"y":0.4149273142375851},{"x":0.5423347555147082,"y":0.4144992442437731}]}},"page":1},"text":"Cost"},{"location":{"bounding_box":{"left":0.5895642484120911,"top":0.4045083045007278,"width":0.07362145710138812,"height":0.010419009736857332,"polygon":{"coordinates":[{"x":0.5895642484120911,"y":0.4049449473248565},{"x":0.6631857055134792,"y":0.4045083045007278},{"x":0.6631857055134792,"y":0.4149273142375851},{"x":0.5895642484120911,"y":0.4149273142375851}]}},"page":1},"text":"Discount %"},{"location":{"bounding_box":{"left":0.6779123857645534,"top":0.4053815493259837,"width":0.05889471914908695,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.6779123857645534,"y":0.4053815493259837},{"x":0.7368071049136403,"y":0.4053815493259837},{"x":0.7368071049136403,"y":0.4149273142375851},{"x":0.6779123857645534,"y":0.4149273142375851}]}},"page":1},"text":"Discount"},{"location":{"bounding_box":{"left":0.7730006611406586,"top":0.4049449473248565,"width":0.06074612071766017,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4153639162387123},{"x":0.7730006611406586,"y":0.4149273142375851}]}},"page":1},"text":"Identifier"},{"location":{"bounding_box":{"left":0.8803712773909167,"top":0.4053815493259837,"width":0.053981748178689615,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.8803712773909167,"y":0.4053815493259837},{"x":0.9343530255696063,"y":0.4053815493259837},{"x":0.9343530255696063,"y":0.4153639162387123},{"x":0.8803712773909167,"y":0.4149273142375851}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.4296868296097721,"width":0.06195622363703067,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.4296868296097721},{"x":0.1435520840702261,"y":0.4296868296097721},{"x":0.1435520840702261,"y":0.4396691965225008},{"x":0.08159586043319543,"y":0.43923255369837205}]}},"page":1},"text":"GRH-1001"},{"location":{"bounding_box":{"left":0.1754619589081866,"top":0.4292501867856434,"width":0.1644139049801583,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.1754619589081866,"y":0.4292501867856434},{"x":0.3398758638883449,"y":0.4292501867856434},{"x":0.3398758638883449,"y":0.44010579852362797},{"x":0.1754619589081866,"y":0.44010579852362797}]}},"page":1},"text":"Grinder, Smart Grind Home"},{"location":{"bounding_box":{"left":0.4085843211687222,"top":0.4296868296097721,"width":0.0190225077484093,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.4085843211687222,"y":0.43012343161089933},{"x":0.42698968544406923,"y":0.4296868296097721},{"x":0.4276068289171315,"y":0.4388045245275615},{"x":0.4092014646417844,"y":0.4388045245275615}]}},"page":1},"text":"50"},{"location":{"bounding_box":{"left":0.43925993791117174,"top":0.43012343161089933,"width":0.03313204452642121,"height":0.00910912208747272,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.43012343161089933},{"x":0.47239198243759295,"y":0.43055150160471134},{"x":0.4717748389645307,"y":0.43923255369837205},{"x":0.43987705253362047,"y":0.43923255369837205}]}},"page":1},"text":"Piece"},{"location":{"bounding_box":{"left":0.5312867015866799,"top":0.4296868296097721,"width":0.04172364181986432,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.5312867015866799,"y":0.4296868296097721},{"x":0.5730103434065442,"y":0.4296868296097721},{"x":0.5730103434065442,"y":0.4396691965225008},{"x":0.5312867015866799,"y":0.4396691965225008}]}},"page":1},"text":"299.00"},{"location":{"bounding_box":{"left":0.6766902160760927,"top":0.43012343161089933,"width":0.023306160286853506,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.6766902160760927,"y":0.43055150160471134},{"x":0.6999963763629462,"y":0.43012343161089933},{"x":0.6999963763629462,"y":0.44010579852362797},{"x":0.6766902160760927,"y":0.44010579852362797}]}},"page":1},"text":"Yes"},{"location":{"bounding_box":{"left":0.7736177757631074,"top":0.4296868296097721,"width":0.060129006095211324,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7736177757631074,"y":0.4296868296097721},{"x":0.8337467818583187,"y":0.4296868296097721},{"x":0.8337467818583187,"y":0.4396691965225008},{"x":0.7736177757631074,"y":0.43923255369837205}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.8754583641217464,"top":0.4292501867856434,"width":0.0582775468254112,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.8754583641217464,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.4292501867856434},{"x":0.9337359109471576,"y":0.44010579852362797},{"x":0.8754583641217464,"y":0.44010579852362797}]}},"page":1},"text":"14,950.00"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.4427084281617639,"width":0.06441268027161584,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.4526907950744926},{"x":0.08097871696013319,"y":0.4427084281617639},{"x":0.14478635659104383,"y":0.4427084281617639},{"x":0.14478635659104383,"y":0.4526907950744926}]}},"page":1},"text":"GRH-1000"},{"location":{"bounding_box":{"left":0.17484481543512437,"top":0.4427084281617639,"width":0.14416922754328831,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.17484481543512437,"y":0.44313645733257445},{"x":0.3190140429784127,"y":0.4427084281617639},{"x":0.3190140429784127,"y":0.45355546706943184},{"x":0.17484481543512437,"y":0.45355546706943184}]}},"page":1},"text":"Grinder, Precision Grind"},{"location":{"bounding_box":{"left":0.4104236631808586,"top":0.44357310015670315,"width":0.013504510562613536,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.4104236631808586,"y":0.44357310015670315},{"x":0.42392817374347214,"y":0.44357310015670315},{"x":0.42392817374347214,"y":0.45225415225036386},{"x":0.41104080665392084,"y":0.45225415225036386}]}},"page":1},"text":"10"},{"location":{"bounding_box":{"left":0.43987705253362047,"top":0.44357310015670315,"width":0.03251492990397248,"height":0.009117694917789465,"polygon":{"coordinates":[{"x":0.43987705253362047,"y":0.44357310015670315},{"x":0.47239198243759295,"y":0.44357310015670315},{"x":0.47239198243759295,"y":0.45225415225036386},{"x":0.43987705253362047,"y":0.4526907950744926}]}},"page":1},"text":"Piece"},{"location":{"bounding_box":{"left":0.5319038162091286,"top":0.44313645733257445,"width":0.04110652719741559,"height":0.009990939743045324,"polygon":{"coordinates":[{"x":0.5319038162091286,"y":0.44313645733257445},{"x":0.5730103434065442,"y":0.44313645733257445},{"x":0.5730103434065442,"y":0.4531273970756198},{"x":0.5319038162091286,"y":0.4526907950744926}]}},"page":1},"text":"199.00"},{"location":{"bounding_box":{"left":0.6772952134408776,"top":0.44357310015670315,"width":0.023318335245744337,"height":0.009117694917789465,"polygon":{"coordinates":[{"x":0.6772952134408776,"y":0.44357310015670315},{"x":0.700613548686622,"y":0.44357310015670315},{"x":0.700613548686622,"y":0.4526907950744926},{"x":0.6779123857645534,"y":0.4526907950744926}]}},"page":1},"text":"Yes"},{"location":{"bounding_box":{"left":0.7736177757631074,"top":0.4427084281617639,"width":0.061351233484899015,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7736177757631074,"y":0.4427084281617639},{"x":0.8343518369243307,"y":0.4427084281617639},{"x":0.8349690092480064,"y":0.4531273970756198},{"x":0.7736177757631074,"y":0.4531273970756198}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.8834327890915138,"top":0.44313645733257445,"width":0.050303121855643784,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.8834327890915138,"y":0.44313645733257445},{"x":0.9337359109471576,"y":0.44313645733257445},{"x":0.9337359109471576,"y":0.45399206907055906},{"x":0.8834327890915138,"y":0.45355546706943184}]}},"page":1},"text":"1,990.00"},{"location":{"bounding_box":{"left":0.768704862493937,"top":0.470052899261814,"width":0.06810343106497896,"height":0.010410436906540754,"polygon":{"coordinates":[{"x":0.768704862493937,"y":0.47048096925562605},{"x":0.836808293558916,"y":0.470052899261814},{"x":0.836808293558916,"y":0.48046333616835474},{"x":0.768704862493937,"y":0.48046333616835474}]}},"page":1},"text":"Total AUD"},{"location":{"bounding_box":{"left":0.870545393151349,"top":0.47048096925562605,"width":0.06319051779580853,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.870545393151349,"y":0.47048096925562605},{"x":0.9337359109471576,"y":0.47048096925562605},{"x":0.9337359109471576,"y":0.4808999381694819},{"x":0.870545393151349,"y":0.4808999381694819}]}},"page":1},"text":"16,940.00"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5295104579140573,"width":0.1693268398872887,"height":0.012584955727863112,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5295104579140573},{"x":0.2503055568474219,"y":0.5295104579140573},{"x":0.2503055568474219,"y":0.5420954136419204},{"x":0.08097871696013319,"y":0.5420954136419204}]}},"page":1},"text":"VAT Amount Specification"},{"location":{"bounding_box":{"left":0.4503079629885866,"top":0.5433967284609884,"width":0.09202679252612161,"height":0.010419009736857276,"polygon":{"coordinates":[{"x":0.4503079629885866,"y":0.5433967284609884},{"x":0.5423347555147082,"y":0.5433967284609884},{"x":0.5423347555147082,"y":0.5538157381978457},{"x":0.4503079629885866,"y":0.553379095373717}]}},"page":1},"text":"Inv. Disc. Base"},{"location":{"bounding_box":{"left":0.5656409158015618,"top":0.5433967284609884,"width":0.1085928436399457,"height":0.010419009736857276,"polygon":{"coordinates":[{"x":0.5656409158015618,"y":0.5433967284609884},{"x":0.6742337594415075,"y":0.5433967284609884},{"x":0.6742337594415075,"y":0.5538157381978457},{"x":0.5656409158015618,"y":0.5538157381978457}]}},"page":1},"text":"Invoice Discount"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5555536550180409,"width":0.09140962741509927,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5555536550180409},{"x":0.17238834437523246,"y":0.5555536550180409},{"x":0.17238834437523246,"y":0.5664006939257088},{"x":0.08097871696013319,"y":0.5664006939257088}]}},"page":1},"text":"VAT Identifier"},{"location":{"bounding_box":{"left":0.2441704450391774,"top":0.5555536550180409,"width":0.04356295498138735,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.2441704450391774,"y":0.5555536550180409},{"x":0.28773340002056474,"y":0.5559902570191682},{"x":0.28773340002056474,"y":0.5659726239318967},{"x":0.2441704450391774,"y":0.5664006939257088}]}},"page":1},"text":"VAT %"},{"location":{"bounding_box":{"left":0.33312357975642465,"top":0.5559902570191682,"width":0.08405233870574069,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.33312357975642465,"y":0.5559902570191682},{"x":0.41717591846216534,"y":0.5564183270129802},{"x":0.41717591846216534,"y":0.5664006939257088},{"x":0.33312357975642465,"y":0.5659726239318967}]}},"page":1},"text":"Line Amount"},{"location":{"bounding_box":{"left":0.49079734671293995,"top":0.5564183270129802,"width":0.05459892050236537,"height":0.009554296918916516,"polygon":{"coordinates":[{"x":0.49079734671293995,"y":0.5564183270129802},{"x":0.5453962672153053,"y":0.5564183270129802},{"x":0.5447790948916296,"y":0.5659726239318967},{"x":0.49079734671293995,"y":0.5655360219307696}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.6239305798846367,"top":0.5564183270129802,"width":0.05336463355624088,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.6239305798846367,"y":0.5564183270129802},{"x":0.6772952134408776,"y":0.5564183270129802},{"x":0.6772952134408776,"y":0.5664006939257088},{"x":0.6239305798846367,"y":0.5664006939257088}]}},"page":1},"text":"Amount"},{"location":{"bounding_box":{"left":0.7404857312366862,"top":0.5559902570191682,"width":0.06196834810734786,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.7404857312366862,"y":0.5559902570191682},{"x":0.802454079344034,"y":0.5559902570191682},{"x":0.8018369070203583,"y":0.5664006939257088},{"x":0.7404857312366862,"y":0.5659726239318967}]}},"page":1},"text":"VAT Base"},{"location":{"bounding_box":{"left":0.8521521461336659,"top":0.5559902570191682,"width":0.08465739377175263,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.8521521461336659,"y":0.5559902570191682},{"x":0.9368095399054185,"y":0.5564183270129802},{"x":0.9368095399054185,"y":0.5664006939257088},{"x":0.8521521461336659,"y":0.5659726239318967}]}},"page":1},"text":"VAT Amount"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.5798588944788279,"width":0.06012899888255803,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.5798588944788279},{"x":0.14110771584269122,"y":0.5798588944788279},{"x":0.14110771584269122,"y":0.5902779042156853},{"x":0.08097871696013319,"y":0.5902779042156853}]}},"page":1},"text":"NON GST"},{"location":{"bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.008579508886392861,"height":0.008253022922850128,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.28773340002056474,"y":0.5807235664737671},{"x":0.28833845508657663,"y":0.5889765893966172},{"x":0.27975894620018377,"y":0.5889765893966172}]}},"page":1},"text":"0"},{"location":{"bounding_box":{"left":0.3588983427861407,"top":0.5802955373029566,"width":0.05766043220296241,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.3588983427861407,"y":0.5802955373029566},{"x":0.4165587749891031,"y":0.5802955373029566},{"x":0.4165587749891031,"y":0.5907059333864958},{"x":0.3588983427861407,"y":0.5902779042156853}]}},"page":1},"text":"16,940.00"},{"location":{"bounding_box":{"left":0.4877237177546791,"top":0.5798588944788279,"width":0.058289664083074955,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.4877237177546791,"y":0.5798588944788279},{"x":0.546013381837754,"y":0.5798588944788279},{"x":0.546013381837754,"y":0.5907059333864958},{"x":0.4877237177546791,"y":0.5902779042156853}]}},"page":1},"text":"16,940.00"},{"location":{"bounding_box":{"left":0.6503104268309782,"top":0.5802955373029566,"width":0.0276019589335752,"height":0.009545724088599883,"polygon":{"coordinates":[{"x":0.6503104268309782,"y":0.5802955373029566},{"x":0.6779123857645534,"y":0.5802955373029566},{"x":0.6779123857645534,"y":0.5898412613915565},{"x":0.6509154241957632,"y":0.5898412613915565}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.7447815298834077,"top":0.5802955373029566,"width":0.05767254946062628,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.7447815298834077,"y":0.5802955373029566},{"x":0.802454079344034,"y":0.5802955373029566},{"x":0.802454079344034,"y":0.5907059333864958},{"x":0.7447815298834077,"y":0.5902779042156853}]}},"page":1},"text":"16,940.00"},{"location":{"bounding_box":{"left":0.9098125783366283,"top":0.5802955373029566,"width":0.026379789245114416,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.9098125783366283,"y":0.5807235664737671},{"x":0.9361923675817427,"y":0.5802955373029566},{"x":0.9361923675817427,"y":0.5902779042156853},{"x":0.9098125783366283,"y":0.5898412613915565}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.2527620134820071,"top":0.6076400084030066,"width":0.034971386538557636,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.2527620134820071,"y":0.6076400084030066},{"x":0.28773340002056474,"y":0.6076400084030066},{"x":0.28773340002056474,"y":0.6171857324916066},{"x":0.2527620134820071,"y":0.6167491304904794}]}},"page":1},"text":"Total"},{"location":{"bounding_box":{"left":0.35398540066635686,"top":0.6076400084030066,"width":0.06319051779580848,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.35398540066635686,"y":0.6076400084030066},{"x":0.41717591846216534,"y":0.6076400084030066},{"x":0.41717591846216534,"y":0.6171857324916066},{"x":0.35398540066635686,"y":0.6176223753157353}]}},"page":1},"text":"16,940.00"},{"location":{"bounding_box":{"left":0.4834400363656213,"top":0.6067667635777507,"width":0.06319051779580853,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.4834400363656213,"y":0.6072034064018794},{"x":0.5466305541614298,"y":0.6067667635777507},{"x":0.5466305541614298,"y":0.6176223753157353},{"x":0.4834400363656213,"y":0.6180504453095473}]}},"page":1},"text":"16,940.00"},{"location":{"bounding_box":{"left":0.6478539124951661,"top":0.6076400084030066,"width":0.029441300945711513,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.6478539124951661,"y":0.6076400084030066},{"x":0.6766902160760927,"y":0.6076400084030066},{"x":0.6772952134408776,"y":0.6171857324916066},{"x":0.6484710848188419,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.7398806761706742,"top":0.6072034064018794,"width":0.06319051779580853,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7398806761706742,"y":0.6072034064018794},{"x":0.8030711939664827,"y":0.6072034064018794},{"x":0.8030711939664827,"y":0.6176223753157353},{"x":0.7398806761706742,"y":0.6176223753157353}]}},"page":1},"text":"16,940.00"},{"location":{"bounding_box":{"left":0.9067510666360311,"top":0.6076400084030066,"width":0.029441300945711624,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9067510666360311,"y":0.6080680783968186},{"x":0.9361923675817427,"y":0.6076400084030066},{"x":0.9361923675817427,"y":0.6171857324916066},{"x":0.9067510666360311,"y":0.6167491304904794}]}},"page":1},"text":"0.00"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.6506087076931845,"width":0.10307482481618986,"height":0.011283640908795078,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.6506087076931845},{"x":0.18405354177632305,"y":0.6506087076931845},{"x":0.18405354177632305,"y":0.6618923486019795},{"x":0.08097871696013319,"y":0.6618923486019795}]}},"page":1},"text":"Ship-to Address"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.6640583354159868,"width":0.16073524259384558,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.6640583354159868},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.08097871696013319,"y":0.6749139471539713}]}},"page":1},"text":"CRONUS International Ltd."},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6783812487870465,"width":0.06380763963091064,"height":0.011283681731796724,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6783812487870465},{"x":0.14540350006410607,"y":0.6788178507881738},{"x":0.14540350006410607,"y":0.6896649305188433},{"x":0.08159586043319543,"y":0.6892368605250312}]}},"page":1},"text":"5 The Ring"},{"location":{"bounding_box":{"left":0.08159586043319543,"top":0.6927041213351048,"width":0.0766829183134116,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6927041213351048},{"x":0.15827877874660704,"y":0.6927041213351048},{"x":0.15827877874660704,"y":0.7026864882478335},{"x":0.08159586043319543,"y":0.7022584182540215}]}},"page":1},"text":"Westminster"},{"location":{"bounding_box":{"left":0.08037367631942799,"top":0.7052891178859695,"width":0.1349604939894363,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.7157081276228269},{"x":0.08097871696013319,"y":0.7052891178859695},{"x":0.2153341703088643,"y":0.7052891178859695},{"x":0.2153341703088643,"y":0.7157081276228269}]}},"page":1},"text":"CANBERRA NSW 2600"},{"location":{"bounding_box":{"left":0.08097871696013319,"top":0.720048592435155,"width":0.053376729175944534,"height":0.009545805734602952,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.720048592435155},{"x":0.13373831708832223,"y":0.720048592435155},{"x":0.13435544613607772,"y":0.7295943981697579},{"x":0.08097871696013319,"y":0.7295943981697579}]}},"page":1},"text":"Australia"}],"page_read_results":[{"page":1,"elements":[{"id":"0","text":"Purchase","bounding_box":{"left":0.7245368812971513,"top":0.03992945489372671,"width":0.10000118864527552,"height":0.017362122047384562,"polygon":{"coordinates":[{"x":0.7245368812971513,"y":0.03992945489372671},{"x":0.8239209553199781,"y":0.040366077306354664},{"x":0.8245380699424268,"y":0.05685495452848331},{"x":0.7251539959196001,"y":0.05729157694111127}]}}},{"id":"1","text":"-","bounding_box":{"left":0.8288338685891484,"top":0.040366077306354664,"width":0.011048053928028323,"height":0.016488877222128648,"polygon":{"coordinates":[{"x":0.8288338685891484,"y":0.040366077306354664},{"x":0.8392647501935011,"y":0.040366077306354664},{"x":0.8398819225171767,"y":0.05685495452848331},{"x":0.8288338685891484,"y":0.05685495452848331}]}}},{"id":"2","text":"Invoice","bounding_box":{"left":0.8441656039062346,"top":0.040366077306354664,"width":0.08159588207115553,"height":0.016488877222128648,"polygon":{"coordinates":[{"x":0.8441656039062346,"y":0.040366077306354664},{"x":0.9251564309113782,"y":0.040802697167545025},{"x":0.9257614859773902,"y":0.05685495452848331},{"x":0.8447827762299103,"y":0.05685495452848331}]}}},{"id":"3","text":"Wide","bounding_box":{"left":0.08037367631942799,"top":0.06119548567818885,"width":0.03128062853254124,"height":0.011283666423171072,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.06119548567818885},{"x":0.11165430485196923,"y":0.06163210809081681},{"x":0.11165430485196923,"y":0.07247915210135993},{"x":0.08037367631942799,"y":0.07247915210135993}]}}},{"id":"4","text":"World","bounding_box":{"left":0.11472791217227002,"top":0.06163210809081681,"width":0.03619357065232506,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.11472791217227002,"y":0.06163210809081681},{"x":0.15092148282459508,"y":0.06163210809081681},{"x":0.15092148282459508,"y":0.07247915210135993},{"x":0.11472791217227002,"y":0.07247915210135993}]}}},{"id":"5","text":"Importers","bounding_box":{"left":0.15398299452519218,"top":0.06163210809081681,"width":0.05951184819684244,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.15398299452519218,"y":0.06163210809081681},{"x":0.21349484272203462,"y":0.06206873050344477},{"x":0.21349484272203462,"y":0.07247915210135993},{"x":0.15398299452519218,"y":0.07247915210135993}]}}},{"id":"6","text":"Page","bounding_box":{"left":0.8914072140612812,"top":0.06163210809081681,"width":0.03067558789183611,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.8914072140612812,"y":0.06163210809081681},{"x":0.9220828019531173,"y":0.06163210809081681},{"x":0.9220828019531173,"y":0.07247915210135993},{"x":0.8914072140612812,"y":0.07247915210135993}]}}},{"id":"7","text":"1","bounding_box":{"left":0.9263786005998389,"top":0.06163210809081681,"width":0.005517968335182255,"height":0.010847044010543115,"polygon":{"coordinates":[{"x":0.9263786005998389,"y":0.06163210809081681},{"x":0.9312915715702362,"y":0.06163210809081681},{"x":0.9318965689350212,"y":0.07247915210135993},{"x":0.9263786005998389,"y":0.07247915210135993}]}}},{"id":"8","text":"Toby","bounding_box":{"left":0.08159586043319543,"top":0.07551837863774787,"width":0.029441300945711568,"height":0.010418989325356634,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.07551837863774787},{"x":0.111037161378907,"y":0.07551837863774787},{"x":0.111037161378907,"y":0.0859373679631045},{"x":0.08221300390625766,"y":0.0859373679631045}]}}},{"id":"9","text":"Rhode","bounding_box":{"left":0.11349363243879891,"top":0.07551837863774787,"width":0.03926717797262584,"height":0.010855611737984591,"polygon":{"coordinates":[{"x":0.11349363243879891,"y":0.07551837863774787},{"x":0.15276081041142475,"y":0.07595500105037582},{"x":0.15276081041142475,"y":0.08637399037573246},{"x":0.11411077591186114,"y":0.0859373679631045}]}}},{"id":"10","text":"Aviator","bounding_box":{"left":0.08097871696013319,"top":0.08897658939661726,"width":0.04232868967322295,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.08897658939661726},{"x":0.12330740663335614,"y":0.08897658939661726},{"x":0.12330740663335614,"y":0.09939557872197388},{"x":0.08159586043319543,"y":0.09895895630934592}]}}},{"id":"11","text":"Way,","bounding_box":{"left":0.1257638632679413,"top":0.08897658939661726,"width":0.030675587891836054,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.1257638632679413,"y":0.08897658939661726},{"x":0.15643945115977737,"y":0.08897658939661726},{"x":0.15643945115977737,"y":0.09939557872197388},{"x":0.12638100674100355,"y":0.09939557872197388}]}}},{"id":"12","text":"3000","bounding_box":{"left":0.1595130656927315,"top":0.08897658939661726,"width":0.028836260305006384,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.1595130656927315,"y":0.08897658939661726},{"x":0.18834932599773788,"y":0.08897658939661726},{"x":0.18834932599773788,"y":0.09939557872197388},{"x":0.1595130656927315,"y":0.09939557872197388}]}}},{"id":"13","text":"Manchester","bounding_box":{"left":0.08097871696013319,"top":0.10199818794860907,"width":0.0699427658644619,"height":0.009982356706978293,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.10199818794860907},{"x":0.15092148282459508,"y":0.10199818794860907},{"x":0.15092148282459508,"y":0.11198054465558736},{"x":0.08097871696013319,"y":0.11198054465558736}]}}},{"id":"14","text":"Business","bounding_box":{"left":0.153377953884487,"top":0.10156156553598111,"width":0.051525305969411184,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.153377953884487,"y":0.10199818794860907},{"x":0.20490325985389818,"y":0.10156156553598111},{"x":0.20490325985389818,"y":0.11198054465558736},{"x":0.15398299452519218,"y":0.11198054465558736}]}}},{"id":"15","text":"Park","bounding_box":{"left":0.20797687438685233,"top":0.10156156553598111,"width":0.02576264577205223,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.20797687438685233,"y":0.10156156553598111},{"x":0.23373952015890456,"y":0.10156156553598111},{"x":0.23373952015890456,"y":0.11198054465558736},{"x":0.20797687438685233,"y":0.11198054465558736}]}}},{"id":"16","text":"5","bounding_box":{"left":0.9251564309113782,"top":0.09418180784988762,"width":0.00735731034731868,"height":0.009117674506288656,"polygon":{"coordinates":[{"x":0.9251564309113782,"y":0.1028628701492987},{"x":0.9257614859773902,"y":0.09418180784988762},{"x":0.9325137412586969,"y":0.09418180784988762},{"x":0.9318965689350212,"y":0.10329948235617628}]}}},{"id":"17","text":"COORPAROO","bounding_box":{"left":0.08037367631942799,"top":0.11588445849554013,"width":0.0791393893733035,"height":0.010418979119606236,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.11588445849554013},{"x":0.1595130656927315,"y":0.11632108090816809},{"x":0.1595130656927315,"y":0.12630343761514637},{"x":0.08097871696013319,"y":0.12630343761514637}]}}},{"id":"18","text":"QLD","bounding_box":{"left":0.16503104845322053,"top":0.11588445849554013,"width":0.02392331818522253,"height":0.010418979119606236,"polygon":{"coordinates":[{"x":0.16503104845322053,"y":0.11588445849554013},{"x":0.18895436663844306,"y":0.11588445849554013},{"x":0.18895436663844306,"y":0.12630343761514637},{"x":0.16503104845322053,"y":0.12630343761514637}]}}},{"id":"19","text":"4151","bounding_box":{"left":0.19508949287199434,"top":0.11544783608291218,"width":0.028836260305006356,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.19508949287199434,"y":0.11588445849554013},{"x":0.2239257531770007,"y":0.11544783608291218},{"x":0.2239257531770007,"y":0.12673149740320805},{"x":0.19508949287199434,"y":0.12630343761514637}]}}},{"id":"20","text":"5","bounding_box":{"left":0.8693232234628884,"top":0.10850470080944664,"width":0.007974424969767413,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.10850470080944664},{"x":0.8772976484326558,"y":0.10850470080944664},{"x":0.8772976484326558,"y":0.1189236799290529},{"x":0.8693232234628884,"y":0.1189236799290529}]}}},{"id":"21","text":"The","bounding_box":{"left":0.8803712773909167,"top":0.10850470080944664,"width":0.0214668759759441,"height":0.010855601532234208,"polygon":{"coordinates":[{"x":0.8803712773909167,"y":0.10850470080944664},{"x":0.9018381533668608,"y":0.10850470080944664},{"x":0.9018381533668608,"y":0.11936030234168085},{"x":0.8803712773909167,"y":0.1189236799290529}]}}},{"id":"22","text":"Ring","bounding_box":{"left":0.9049117246238948,"top":0.10850470080944664,"width":0.027602016634802107,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.9049117246238948,"y":0.10850470080944664},{"x":0.9325137412586969,"y":0.1089413232220746},{"x":0.9325137412586969,"y":0.11978836212974252},{"x":0.9049117246238948,"y":0.11936030234168085}]}}},{"id":"23","text":"Australia","bounding_box":{"left":0.08097871696013319,"top":0.1306439738677271,"width":0.05153741601442162,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.1310720336557888},{"x":0.1325161329745548,"y":0.1306439738677271},{"x":0.1325161329745548,"y":0.14018971836782781},{"x":0.08159586043319543,"y":0.14062634078045577}]}}},{"id":"24","text":"Westminster","bounding_box":{"left":0.8570529998463994,"top":0.12282759376900566,"width":0.07607785603474626,"height":0.01041897911960625,"polygon":{"coordinates":[{"x":0.8570529998463994,"y":0.12282759376900566},{"x":0.9331308558811456,"y":0.12326421618163362},{"x":0.9331308558811456,"y":0.1332465728886119},{"x":0.8576701144688481,"y":0.13280996068173434}]}}},{"id":"25","text":"CANBERRA","bounding_box":{"left":0.7999976227094489,"top":0.13672242694050302,"width":0.06502980210671794,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.7999976227094489,"y":0.13672242694050302},{"x":0.8650274248161668,"y":0.13715048672856467},{"x":0.8650274248161668,"y":0.14670479385323168},{"x":0.7999976227094489,"y":0.14670479385323168}]}}},{"id":"26","text":"NSW","bounding_box":{"left":0.8693232234628884,"top":0.13672242694050302,"width":0.025157619556653743,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.13715048672856467},{"x":0.8944808430195421,"y":0.13672242694050302},{"x":0.8944808430195421,"y":0.14670479385323168},{"x":0.8693232234628884,"y":0.14670479385323168}]}}},{"id":"27","text":"2600","bounding_box":{"left":0.904294610001446,"top":0.13672242694050302,"width":0.0276019589335752,"height":0.0108470491134183,"polygon":{"coordinates":[{"x":0.904294610001446,"y":0.13672242694050302},{"x":0.9318965689350212,"y":0.13672242694050302},{"x":0.9318965689350212,"y":0.14756947605392132},{"x":0.904294610001446,"y":0.14713285364129336}]}}},{"id":"28","text":"Australia","bounding_box":{"left":0.8809763324569286,"top":0.1514733796881237,"width":0.05153740880176827,"height":0.00955430712466701,"polygon":{"coordinates":[{"x":0.8809763324569286,"y":0.15191000210075165},{"x":0.9325137412586969,"y":0.1514733796881237},{"x":0.9325137412586969,"y":0.1610276868127907},{"x":0.8809763324569286,"y":0.1610276868127907}]}}},{"id":"29","text":"Pay-to","bounding_box":{"left":0.08037367631942799,"top":0.18663425129839598,"width":0.0392550751402688,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.18663425129839598},{"x":0.11962875145969679,"y":0.18663425129839598},{"x":0.1190237108189916,"y":0.19791791261869185},{"x":0.08037367631942799,"y":0.1974812902060639}]}}},{"id":"30","text":"Vendor","bounding_box":{"left":0.12330740663335614,"top":0.18619762888576802,"width":0.04294582593363182,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.12330740663335614,"y":0.18663425129839598},{"x":0.16625323256698796,"y":0.18619762888576802},{"x":0.16564817750097602,"y":0.1974812902060639},{"x":0.12330740663335614,"y":0.19791791261869185}]}}},{"id":"31","text":"No.","bounding_box":{"left":0.16870968920157312,"top":0.18619762888576802,"width":0.0233182919698241,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.16870968920157312,"y":0.1974812902060639},{"x":0.16932683267463536,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.18619762888576802},{"x":0.19202798117139722,"y":0.1974812902060639}]}}},{"id":"32","text":"40000","bounding_box":{"left":0.23557884774573423,"top":0.18619762888576802,"width":0.03681069970008055,"height":0.009982366912728663,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.18619762888576802},{"x":0.2723895474458148,"y":0.19617999579849668},{"x":0.23557884774573423,"y":0.19574337338586872}]}}},{"id":"33","text":"Phone","bounding_box":{"left":0.666864331836525,"top":0.18011916560724173,"width":0.03804501549681849,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.18011916560724173},{"x":0.7049093473333435,"y":0.18011916560724173},{"x":0.7049093473333435,"y":0.19010153251997042},{"x":0.6674814464589738,"y":0.18967348293765912}]}}},{"id":"34","text":"No.","bounding_box":{"left":0.7079708013327137,"top":0.18011916560724173,"width":0.02208404829961985,"height":0.010418989325356648,"polygon":{"coordinates":[{"x":0.7079708013327137,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.18011916560724173},{"x":0.7300548496323336,"y":0.19053815493259837},{"x":0.7079708013327137,"y":0.19010153251997042}]}}},{"id":"35","text":"0666-666-6666","bounding_box":{"left":0.8423262618940982,"top":0.17969111602493043,"width":0.0901874793645987,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8423262618940982,"y":0.18011916560724173},{"x":0.9325137412586969,"y":0.17969111602493043},{"x":0.9325137412586969,"y":0.18967348293765912},{"x":0.8423262618940982,"y":0.18967348293765912}]}}},{"id":"36","text":"VAT","bounding_box":{"left":0.08097871696013319,"top":0.20052052184532704,"width":0.023318284757170724,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.20052052184532704},{"x":0.10429700171730391,"y":0.20052052184532704},{"x":0.10429700171730391,"y":0.21093951117068366},{"x":0.08097871696013319,"y":0.21093951117068366}]}}},{"id":"37","text":"Registration","bounding_box":{"left":0.10797565689096326,"top":0.20008389943269908,"width":0.07238712687934339,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.10797565689096326,"y":0.20052052184532704},{"x":0.18036278377030665,"y":0.20008389943269908},{"x":0.18036278377030665,"y":0.2118041831656229},{"x":0.10797565689096326,"y":0.21136756075299495}]}}},{"id":"38","text":"No.","bounding_box":{"left":0.1834363983032608,"top":0.20008389943269908,"width":0.022084005023699615,"height":0.01172028373292383,"polygon":{"coordinates":[{"x":0.1834363983032608,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.20008389943269908},{"x":0.20552040332696042,"y":0.2118041831656229},{"x":0.1834363983032608,"y":0.2118041831656229}]}}},{"id":"39","text":"197548769B01","bounding_box":{"left":0.23681313469185872,"top":0.20052052184532704,"width":0.08589165186726361,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.23681313469185872,"y":0.20052052184532704},{"x":0.32208764308606014,"y":0.20052052184532704},{"x":0.3227047865591223,"y":0.21093951117068366},{"x":0.23681313469185872,"y":0.2105028887580557}]}}},{"id":"40","text":"Home","bounding_box":{"left":0.666864331836525,"top":0.19270414174660558,"width":0.036810728550694005,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.19270414174660558},{"x":0.703675060387219,"y":0.20355975348459018},{"x":0.666864331836525,"y":0.20355975348459018}]}}},{"id":"41","text":"Page","bounding_box":{"left":0.7067486316442531,"top":0.19270414174660558,"width":0.03129276021551175,"height":0.011292234150612562,"polygon":{"coordinates":[{"x":0.7067486316442531,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.19270414174660558},{"x":0.7380413918597648,"y":0.20399637589721814},{"x":0.7067486316442531,"y":0.20355975348459018}]}}},{"id":"42","text":"Email","bounding_box":{"left":0.666864331836525,"top":0.2057257402985974,"width":0.033132044526421156,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2057257402985974},{"x":0.6999963763629462,"y":0.2157080867998253},{"x":0.666864331836525,"y":0.2157080867998253}]}}},{"id":"43","text":"Document","bounding_box":{"left":0.08037367631942799,"top":0.22872968535181712,"width":0.0625733671100929,"height":0.010855611737984577,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.22872968535181712},{"x":0.1429470434295209,"y":0.22916630776444508},{"x":0.1429470434295209,"y":0.2395852970898017},{"x":0.08037367631942799,"y":0.2395852970898017}]}}},{"id":"44","text":"Date","bounding_box":{"left":0.14540350006410607,"top":0.22872968535181712,"width":0.029441315371018295,"height":0.010855611737984577,"polygon":{"coordinates":[{"x":0.14540350006410607,"y":0.22916630776444508},{"x":0.17484481543512437,"y":0.22872968535181712},{"x":0.17484481543512437,"y":0.2395852970898017},{"x":0.14540350006410607,"y":0.2395852970898017}]}}},{"id":"45","text":"777777777","bounding_box":{"left":0.8687060511392126,"top":0.2200486332581564,"width":0.06442480474193302,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8687060511392126,"y":0.2200486332581564},{"x":0.9331308558811456,"y":0.22048525567078436},{"x":0.9331308558811456,"y":0.22960293017707303},{"x":0.8687060511392126,"y":0.22916630776444508}]}}},{"id":"46","text":"June","bounding_box":{"left":0.2343566636319668,"top":0.22916630776444508,"width":0.028836260305006384,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.2343566636319668,"y":0.22916630776444508},{"x":0.2631929239369732,"y":0.22916630776444508},{"x":0.2631929239369732,"y":0.2395852970898017},{"x":0.23497380710502905,"y":0.2395852970898017}]}}},{"id":"47","text":"4,","bounding_box":{"left":0.2662544356375703,"top":0.22916630776444508,"width":0.011665197401090566,"height":0.01041898932535662,"polygon":{"coordinates":[{"x":0.2662544356375703,"y":0.22916630776444508},{"x":0.2773024895655986,"y":0.22960293017707303},{"x":0.27791963303866085,"y":0.2395852970898017},{"x":0.2662544356375703,"y":0.2395852970898017}]}}},{"id":"48","text":"2025","bounding_box":{"left":0.2803640012661957,"top":0.22960293017707303,"width":0.02883627473031314,"height":0.01041041649503996,"polygon":{"coordinates":[{"x":0.2803640012661957,"y":0.22960293017707303},{"x":0.30920027599650884,"y":0.22960293017707303},{"x":0.30920027599650884,"y":0.240013346672113},{"x":0.2803640012661957,"y":0.2395852970898017}]}}},{"id":"49","text":"VAT","bounding_box":{"left":0.6674814464589738,"top":0.2200486332581564,"width":0.02454050493420501,"height":0.010855591326483838,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.2200486332581564},{"x":0.691404779069503,"y":0.2200486332581564},{"x":0.6920219513931788,"y":0.23090422458464024},{"x":0.6674814464589738,"y":0.23090422458464024}]}}},{"id":"50","text":"Registration","bounding_box":{"left":0.694478408027764,"top":0.2200486332581564,"width":0.07238711245403673,"height":0.010855591326483838,"polygon":{"coordinates":[{"x":0.694478408027764,"y":0.2200486332581564},{"x":0.7668655204818007,"y":0.2200486332581564},{"x":0.7668655204818007,"y":0.23090422458464024},{"x":0.6950955803514397,"y":0.23090422458464024}]}}},{"id":"51","text":"No.","bounding_box":{"left":0.7699391494400615,"top":0.21962056326434437,"width":0.02146687597594421,"height":0.011283661320295874,"polygon":{"coordinates":[{"x":0.7699391494400615,"y":0.2200486332581564},{"x":0.7914060254160057,"y":0.21962056326434437},{"x":0.7914060254160057,"y":0.23090422458464024},{"x":0.7699391494400615,"y":0.23090422458464024}]}}},{"id":"52","text":"Invoice","bounding_box":{"left":0.08037367631942799,"top":0.24218790631643689,"width":0.04293373031392815,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.24218790631643689},{"x":0.12330740663335614,"y":0.24262452872906484},{"x":0.12270236599265094,"y":0.25260687523029274},{"x":0.08037367631942799,"y":0.25260687523029274}]}}},{"id":"53","text":"No.","bounding_box":{"left":0.1257638632679413,"top":0.24262452872906484,"width":0.022701148496761858,"height":0.009982346501227896,"polygon":{"coordinates":[{"x":0.1257638632679413,"y":0.24262452872906484},{"x":0.14846501176470317,"y":0.24262452872906484},{"x":0.14784786829164093,"y":0.25260687523029274},{"x":0.1257638632679413,"y":0.25260687523029274}]}}},{"id":"54","text":"108228","bounding_box":{"left":0.23681313469185872,"top":0.24218790631643689,"width":0.04294581150832505,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.23681313469185872,"y":0.24218790631643689},{"x":0.27975894620018377,"y":0.24218790631643689},{"x":0.27975894620018377,"y":0.2521702528176648},{"x":0.2374181753325639,"y":0.2521702528176648}]}}},{"id":"55","text":"Giro","bounding_box":{"left":0.666864331836525,"top":0.23437152621771543,"width":0.02454044723297799,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.23480814863034338},{"x":0.691404779069503,"y":0.23437152621771543},{"x":0.691404779069503,"y":0.24435387271894335},{"x":0.6674814464589738,"y":0.24435387271894335}]}}},{"id":"56","text":"No.","bounding_box":{"left":0.6957005777162246,"top":0.23437152621771543,"width":0.022701162922068696,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.6957005777162246,"y":0.23437152621771543},{"x":0.7184017406382933,"y":0.23437152621771543},{"x":0.7184017406382933,"y":0.24392582313663205},{"x":0.6957005777162246,"y":0.24435387271894335}]}}},{"id":"57","text":"888-9999","bounding_box":{"left":0.8779148207563315,"top":0.23437152621771543,"width":0.0552160351248141,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.8779148207563315,"y":0.23480814863034338},{"x":0.9325137412586969,"y":0.23437152621771543},{"x":0.9331308558811456,"y":0.24392582313663205},{"x":0.8779148207563315,"y":0.2434892007240041}]}}},{"id":"58","text":"Bank","bounding_box":{"left":0.6674814464589738,"top":0.24869441917727445,"width":0.02821913125725084,"height":0.00911767450628867,"polygon":{"coordinates":[{"x":0.6674814464589738,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.24869441917727445},{"x":0.6957005777162246,"y":0.2578120936835631},{"x":0.6674814464589738,"y":0.2578120936835631}]}}},{"id":"59","text":"World","bounding_box":{"left":0.8294509832115972,"top":0.2482663491834624,"width":0.03557644160456963,"height":0.010410436906540699,"polygon":{"coordinates":[{"x":0.8294509832115972,"y":0.2482663491834624},{"x":0.8650274248161668,"y":0.24869441917727445},{"x":0.8650274248161668,"y":0.2582487160961911},{"x":0.8294509832115972,"y":0.2586767860900031}]}}},{"id":"60","text":"Wide","bounding_box":{"left":0.8693232234628884,"top":0.24869441917727445,"width":0.03189775758029667,"height":0.009554296918916655,"polygon":{"coordinates":[{"x":0.8693232234628884,"y":0.24869441917727445},{"x":0.9006159259771732,"y":0.24869441917727445},{"x":0.901220981043185,"y":0.2582487160961911},{"x":0.8699403380853371,"y":0.2582487160961911}]}}},{"id":"61","text":"Bank","bounding_box":{"left":0.904294610001446,"top":0.24869441917727445,"width":0.028836245879699685,"height":0.009554296918916655,"polygon":{"coordinates":[{"x":0.904294610001446,"y":0.24869441917727445},{"x":0.9325137412586969,"y":0.24869441917727445},{"x":0.9331308558811456,"y":0.2582487160961911},{"x":0.9049117246238948,"y":0.2582487160961911}]}}},{"id":"62","text":"Posting","bounding_box":{"left":0.07975653284636575,"top":0.26953237741648695,"width":0.04540228978087035,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.07975653284636575,"y":0.269960447410299},{"x":0.1251588226272361,"y":0.26953237741648695},{"x":0.1251588226272361,"y":0.28125268156091154},{"x":0.08037367631942799,"y":0.2808160591482836}]}}},{"id":"63","text":"Date","bounding_box":{"left":0.12822033432783322,"top":0.26953237741648695,"width":0.030675587891836026,"height":0.011720304144424598,"polygon":{"coordinates":[{"x":0.12822033432783322,"y":0.26953237741648695},{"x":0.15827877874660704,"y":0.26953237741648695},{"x":0.15889592221966925,"y":0.28125268156091154},{"x":0.12883747780089547,"y":0.28125268156091154}]}}},{"id":"64","text":"06/04/25","bounding_box":{"left":0.23497380710502905,"top":0.26953237741648695,"width":0.05520396114307055,"height":0.010410436906540754,"polygon":{"coordinates":[{"x":0.23497380710502905,"y":0.26953237741648695},{"x":0.2901777682480996,"y":0.26953237741648695},{"x":0.2901777682480996,"y":0.2799428143230277},{"x":0.23557884774573423,"y":0.2799428143230277}]}}},{"id":"65","text":"Account","bounding_box":{"left":0.666864331836525,"top":0.2634539345494614,"width":0.0503152391133076,"height":0.009117674506288698,"polygon":{"coordinates":[{"x":0.666864331836525,"y":0.2634539345494614},{"x":0.7171795709498326,"y":0.2634539345494614},{"x":0.7165623986261569,"y":0.2725716090557501},{"x":0.6680986187826495,"y":0.2725716090557501}]}}},{"id":"66","text":"No.","bounding_box":{"left":0.7196360275844178,"top":0.2634539345494614,"width":0.0214668759759441,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.7196360275844178,"y":0.2634539345494614},{"x":0.7411029035603619,"y":0.2638905569620894},{"x":0.7404857312366862,"y":0.2729996790495621},{"x":0.7196360275844178,"y":0.2725716090557501}]}}},{"id":"67","text":"99-99-888","bounding_box":{"left":0.8711625654750248,"top":0.26258924214302143,"width":0.06257334547213278,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.8711625654750248,"y":0.2630173121368335},{"x":0.9337359109471576,"y":0.26258924214302143},{"x":0.9337359109471576,"y":0.2725716090557501},{"x":0.8723968524211493,"y":0.27213498664312213}]}}},{"id":"68","text":"Due","bounding_box":{"left":0.08097871696013319,"top":0.28341864796341804,"width":0.023318284757170724,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.28341864796341804},{"x":0.10429700171730391,"y":0.28341864796341804},{"x":0.10429700171730391,"y":0.29296439246351874},{"x":0.08097871696013319,"y":0.29296439246351874}]}}},{"id":"69","text":"Date","bounding_box":{"left":0.10919784100473069,"top":0.28341864796341804,"width":0.027614076191238943,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.10919784100473069,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.28341864796341804},{"x":0.13681191719596963,"y":0.29253634288120745},{"x":0.10919784100473069,"y":0.29296439246351874}]}}},{"id":"70","text":"07/31/25","bounding_box":{"left":0.23557884774573423,"top":0.28298202555079005,"width":0.05459892050236537,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.28298202555079005},{"x":0.28957271318208766,"y":0.28341864796341804},{"x":0.2901777682480996,"y":0.29296439246351874},{"x":0.23557884774573423,"y":0.29296439246351874}]}}},{"id":"71","text":"Payment","bounding_box":{"left":0.08097871696013319,"top":0.30946184506740165,"width":0.053376729175944534,"height":0.011283661320295846,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.30946184506740165},{"x":0.13435544613607772,"y":0.3098984674800296},{"x":0.13435544613607772,"y":0.32030888397506957},{"x":0.08097871696013319,"y":0.3207455063876975}]}}},{"id":"72","text":"Terms","bounding_box":{"left":0.13742906066903188,"top":0.30946184506740165,"width":0.03619357065232506,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.13742906066903188,"y":0.3098984674800296},{"x":0.1730054878482947,"y":0.30946184506740165},{"x":0.17362263132135694,"y":0.3198808139812575},{"x":0.13742906066903188,"y":0.32030888397506957}]}}},{"id":"73","text":"End","bounding_box":{"left":0.23557884774573423,"top":0.3098984674800296,"width":0.02147896438299446,"height":0.009545744500100706,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3098984674800296},{"x":0.2570578121287287,"y":0.3098984674800296},{"x":0.2570578121287287,"y":0.3194442119801303},{"x":0.23557884774573423,"y":0.3194442119801303}]}}},{"id":"74","text":"of","bounding_box":{"left":0.2613536107754503,"top":0.3098984674800296,"width":0.012875278682500935,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.2613536107754503,"y":0.3098984674800296},{"x":0.2742288894579512,"y":0.3098984674800296},{"x":0.2742288894579512,"y":0.3198808139812575},{"x":0.2613536107754503,"y":0.3194442119801303}]}}},{"id":"75","text":"Next","bounding_box":{"left":0.27668534609253637,"top":0.3098984674800296,"width":0.028219131257250896,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.27668534609253637,"y":0.3098984674800296},{"x":0.30490447734978726,"y":0.3098984674800296},{"x":0.30490447734978726,"y":0.3198808139812575},{"x":0.27668534609253637,"y":0.3198808139812575}]}}},{"id":"76","text":"Month","bounding_box":{"left":0.30797807745743466,"top":0.3098984674800296,"width":0.03987221140067765,"height":0.009982346501227923,"polygon":{"coordinates":[{"x":0.30797807745743466,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3098984674800296},{"x":0.3478502888581123,"y":0.3194442119801303},{"x":0.30797807745743466,"y":0.3198808139812575}]}}},{"id":"77","text":"ABN","bounding_box":{"left":0.6680986187826495,"top":0.30338338178887536,"width":0.022701162922068585,"height":0.009117674506288642,"polygon":{"coordinates":[{"x":0.6680986187826495,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.30338338178887536},{"x":0.6907997817047181,"y":0.312501056295164},{"x":0.6680986187826495,"y":0.312501056295164}]}}},{"id":"78","text":"53001003000","bounding_box":{"left":0.8533743158221265,"top":0.3029467593762474,"width":0.07975654005901911,"height":0.010418989325356676,"polygon":{"coordinates":[{"x":0.8533743158221265,"y":0.30338338178887536},{"x":0.9325137412586969,"y":0.3029467593762474},{"x":0.9331308558811456,"y":0.31336574870160405},{"x":0.8539914881458023,"y":0.31292912628897607}]}}},{"id":"79","text":"Shipment","bounding_box":{"left":0.08097871696013319,"top":0.32291149320170476,"width":0.05645034370889869,"height":0.011292234150612535,"polygon":{"coordinates":[{"x":0.08097871696013319,"y":0.3233481156143327},{"x":0.13742906066903188,"y":0.32291149320170476},{"x":0.13742906066903188,"y":0.3342037273523173},{"x":0.08159586043319543,"y":0.3342037273523173}]}}},{"id":"80","text":"Method","bounding_box":{"left":0.14049057236962897,"top":0.32291149320170476,"width":0.0478587536281089,"height":0.011292234150612535,"polygon":{"coordinates":[{"x":0.14049057236962897,"y":0.32291149320170476},{"x":0.18834932599773788,"y":0.32291149320170476},{"x":0.18773218252467563,"y":0.3337671049396893},{"x":0.14049057236962897,"y":0.3342037273523173}]}}},{"id":"81","text":"Prices","bounding_box":{"left":0.08037367631942799,"top":0.33636969375482373,"width":0.03435423585284203,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.08037367631942799,"y":0.33636969375482373},{"x":0.11411077591186114,"y":0.33636969375482373},{"x":0.11472791217227002,"y":0.3476533754866204},{"x":0.08097871696013319,"y":0.34721673266249165}]}}},{"id":"82","text":"Including","bounding_box":{"left":0.11717228039980487,"top":0.33636969375482373,"width":0.05645035092155207,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.11717228039980487,"y":0.33636969375482373},{"x":0.17362263132135694,"y":0.33636969375482373},{"x":0.17362263132135694,"y":0.3476533754866204},{"x":0.11778942387286712,"y":0.3476533754866204}]}}},{"id":"83","text":"VAT","bounding_box":{"left":0.17730127206970955,"top":0.33636969375482373,"width":0.025762660197358955,"height":0.011283681731796669,"polygon":{"coordinates":[{"x":0.17730127206970955,"y":0.33636969375482373},{"x":0.20245889162636332,"y":0.33636969375482373},{"x":0.2030639322670685,"y":0.3476533754866204},{"x":0.1779184155427718,"y":0.3476533754866204}]}}},{"id":"84","text":"No","bounding_box":{"left":0.23557884774573423,"top":0.3372343861612638,"width":0.017183165736272876,"height":0.008681072505161425,"polygon":{"coordinates":[{"x":0.23557884774573423,"y":0.3372343861612638},{"x":0.2527620134820071,"y":0.3372343861612638},{"x":0.2527620134820071,"y":0.3459154586664252},{"x":0.23557884774573423,"y":0.3459154586664252}]}}},{"id":"85","text":"Direct","bounding_box":{"left":0.5337431582212651,"top":0.38020306503994084,"width":0.0398722402512911,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.5337431582212651,"y":0.38063970786406953},{"x":0.5736153984725562,"y":0.38020306503994084},{"x":0.5736153984725562,"y":0.39018543195266947},{"x":0.5343603305449408,"y":0.39018543195266947}]}}},{"id":"86","text":"Allow","bounding_box":{"left":0.6797517277766898,"top":0.37977499504612877,"width":0.031909874837960484,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6797517277766898,"y":0.37977499504612877},{"x":0.7116616026146503,"y":0.37977499504612877},{"x":0.7116616026146503,"y":0.38975736195885746},{"x":0.6797517277766898,"y":0.38975736195885746}]}}},{"id":"87","text":"Unit","bounding_box":{"left":0.4404941960066827,"top":0.39235999159699336,"width":0.028219131257250896,"height":0.010418968913855908,"polygon":{"coordinates":[{"x":0.4404941960066827,"y":0.3927965935981206},{"x":0.46809618379087137,"y":0.39235999159699336},{"x":0.4687133272639336,"y":0.40277896051084927},{"x":0.44109925107269465,"y":0.40234235850972205}]}}},{"id":"88","text":"of","bounding_box":{"left":0.47116978389851877,"top":0.39235999159699336,"width":0.015331764167699602,"height":0.010418968913855908,"polygon":{"coordinates":[{"x":0.47116978389851877,"y":0.39235999159699336},{"x":0.4858843757425427,"y":0.39235999159699336},{"x":0.48650154806621837,"y":0.40277896051084927},{"x":0.4717748389645307,"y":0.40277896051084927}]}}},{"id":"89","text":"Unit","bounding_box":{"left":0.5453962672153053,"top":0.39235999159699336,"width":0.028836245879699685,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.5453962672153053,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.39235999159699336},{"x":0.574232513095005,"y":0.4019057156855933},{"x":0.546013381837754,"y":0.4019057156855933}]}}},{"id":"90","text":"Invoice","bounding_box":{"left":0.6779123857645534,"top":0.3927965935981206,"width":0.046624495532597954,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.6779123857645534,"y":0.3927965935981206},{"x":0.7245368812971513,"y":0.39322466359193264},{"x":0.7245368812971513,"y":0.40277896051084927},{"x":0.6779123857645534,"y":0.40277896051084927}]}}},{"id":"91","text":"VAT","bounding_box":{"left":0.774840003152795,"top":0.39235999159699336,"width":0.02639190650277834,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.774840003152795,"y":0.39235999159699336},{"x":0.8012319096555733,"y":0.39235999159699336},{"x":0.8012319096555733,"y":0.40234235850972205},{"x":0.774840003152795,"y":0.40234235850972205}]}}},{"id":"92","text":"No.","bounding_box":{"left":0.08159586043319543,"top":0.4053815493259837,"width":0.023923325397875922,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.4053815493259837},{"x":0.10551918583107135,"y":0.4053815493259837},{"x":0.10551918583107135,"y":0.4149273142375851},{"x":0.08159586043319543,"y":0.4149273142375851}]}}},{"id":"93","text":"Description","bounding_box":{"left":0.17607910238124885,"top":0.4053815493259837,"width":0.07238711245403665,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4053815493259837},{"x":0.24784907136222326,"y":0.4053815493259837},{"x":0.2484662148352855,"y":0.4166652310577803},{"x":0.17607910238124885,"y":0.415800559062841}]}}},{"id":"94","text":"Quantity","bounding_box":{"left":0.3576640558400162,"top":0.4049449473248565,"width":0.0558332074484898,"height":0.012156926557052528,"polygon":{"coordinates":[{"x":0.3576640558400162,"y":0.4049449473248565},{"x":0.413497263288506,"y":0.4053815493259837},{"x":0.413497263288506,"y":0.417101873881909},{"x":0.35828119931307845,"y":0.415800559062841}]}}},{"id":"95","text":"Measure","bounding_box":{"left":0.43925993791117174,"top":0.4058181921501124,"width":0.0552160351248141,"height":0.009545724088599938,"polygon":{"coordinates":[{"x":0.43925993791117174,"y":0.4058181921501124},{"x":0.49447597303598584,"y":0.4058181921501124},{"x":0.49447597303598584,"y":0.4153639162387123},{"x":0.43987705253362047,"y":0.4149273142375851}]}}},{"id":"96","text":"Cost","bounding_box":{"left":0.5447790948916296,"top":0.4053815493259837,"width":0.029453418203375437,"height":0.009545764911601418,"polygon":{"coordinates":[{"x":0.5447790948916296,"y":0.4053815493259837},{"x":0.574232513095005,"y":0.4053815493259837},{"x":0.574232513095005,"y":0.4149273142375851},{"x":0.5447790948916296,"y":0.4149273142375851}]}}},{"id":"97","text":"Discount","bounding_box":{"left":0.5901814207357668,"top":0.4049449473248565,"width":0.05828966408307501,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5901814207357668,"y":0.4049449473248565},{"x":0.6484710848188419,"y":0.4049449473248565},{"x":0.6484710848188419,"y":0.4153639162387123},{"x":0.5907985353582156,"y":0.4153639162387123}]}}},{"id":"98","text":"%","bounding_box":{"left":0.6564455097886093,"top":0.4049449473248565,"width":0.006740195724869946,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.6564455097886093,"y":0.4049449473248565},{"x":0.6631857055134792,"y":0.4049449473248565},{"x":0.6631857055134792,"y":0.4153639162387123},{"x":0.6564455097886093,"y":0.4153639162387123}]}}},{"id":"99","text":"Discount","bounding_box":{"left":0.679134555453014,"top":0.4053815493259837,"width":0.05767254946062628,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.679134555453014,"y":0.4053815493259837},{"x":0.7368071049136403,"y":0.4053815493259837},{"x":0.7368071049136403,"y":0.4153639162387123},{"x":0.679134555453014,"y":0.4149273142375851}]}}},{"id":"100","text":"Identifier","bounding_box":{"left":0.7730006611406586,"top":0.4049449473248565,"width":0.06074612071766017,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7730006611406586,"y":0.4049449473248565},{"x":0.8337467818583187,"y":0.4053815493259837},{"x":0.8337467818583187,"y":0.4153639162387123},{"x":0.7736177757631074,"y":0.4153639162387123}]}}},{"id":"101","text":"Amount","bounding_box":{"left":0.8815934470793774,"top":0.4053815493259837,"width":0.05275957849022894,"height":0.010419009736857332,"polygon":{"coordinates":[{"x":0.8815934470793774,"y":0.4053815493259837},{"x":0.9343530255696063,"y":0.4053815493259837},{"x":0.9343530255696063,"y":0.415800559062841},{"x":0.8815934470793774,"y":0.4149273142375851}]}}},{"id":"102","text":"GRH-1001","bounding_box":{"left":0.08159586043319543,"top":0.43012343161089933,"width":0.06195622363703067,"height":0.009545764911601473,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.43012343161089933},{"x":0.1435520840702261,"y":0.43012343161089933},{"x":0.1435520840702261,"y":0.4396691965225008},{"x":0.08221300390625766,"y":0.4396691965225008}]}}},{"id":"103","text":"Grinder,","bounding_box":{"left":0.17607910238124885,"top":0.4296868296097721,"width":0.047846650795751844,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.4296868296097721},{"x":0.2239257531770007,"y":0.4296868296097721},{"x":0.2239257531770007,"y":0.44053386851744003},{"x":0.17668414302195404,"y":0.44053386851744003}]}}},{"id":"104","text":"Smart","bounding_box":{"left":0.22699936770995485,"top":0.4296868296097721,"width":0.035576412753956094,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.22699936770995485,"y":0.4296868296097721},{"x":0.26257578046391095,"y":0.4296868296097721},{"x":0.26257578046391095,"y":0.44053386851744003},{"x":0.22699936770995485,"y":0.44053386851744003}]}}},{"id":"105","text":"Grind","bounding_box":{"left":0.26564940942217186,"top":0.4296868296097721,"width":0.03251490105335897,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.26564940942217186,"y":0.4296868296097721},{"x":0.2981643104755308,"y":0.4296868296097721},{"x":0.2981643104755308,"y":0.44053386851744003},{"x":0.26564940942217186,"y":0.44053386851744003}]}}},{"id":"106","text":"Home","bounding_box":{"left":0.3012258221761279,"top":0.4296868296097721,"width":0.037427843173142794,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.3012258221761279,"y":0.4296868296097721},{"x":0.3386536653492707,"y":0.4296868296097721},{"x":0.3386536653492707,"y":0.44053386851744003},{"x":0.3012258221761279,"y":0.44053386851744003}]}}},{"id":"107","text":"50","bounding_box":{"left":0.4092014646417844,"top":0.4296868296097721,"width":0.013492422155563233,"height":0.00911769491778941,"polygon":{"coordinates":[{"x":0.4092014646417844,"y":0.4296868296097721},{"x":0.42269388679734765,"y":0.4296868296097721},{"x":0.42269388679734765,"y":0.4388045245275615},{"x":0.4092014646417844,"y":0.4388045245275615}]}}},{"id":"108","text":"Piece","bounding_box":{"left":0.43987705253362047,"top":0.43012343161089933,"width":0.031897786430910235,"height":0.00910912208747272,"polygon":{"coordinates":[{"x":0.43987705253362047,"y":0.43012343161089933},{"x":0.4717748389645307,"y":0.43012343161089933},{"x":0.4717748389645307,"y":0.43923255369837205},{"x":0.43987705253362047,"y":0.4388045245275615}]}}},{"id":"109","text":"299.00","bounding_box":{"left":0.5331260435988163,"top":0.4296868296097721,"width":0.039267127484052256,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5331260435988163,"y":0.4296868296097721},{"x":0.5723931710828686,"y":0.4296868296097721},{"x":0.5723931710828686,"y":0.44010579852362797},{"x":0.5337431582212651,"y":0.4396691965225008}]}}},{"id":"110","text":"Yes","bounding_box":{"left":0.679134555453014,"top":0.43012343161089933,"width":0.020256765843920332,"height":0.009982366912728635,"polygon":{"coordinates":[{"x":0.679134555453014,"y":0.43012343161089933},{"x":0.6987742066744855,"y":0.43012343161089933},{"x":0.6993913212969344,"y":0.44010579852362797},{"x":0.679134555453014,"y":0.44010579852362797}]}}},{"id":"111","text":"NON","bounding_box":{"left":0.7742349480867831,"top":0.4296868296097721,"width":0.0276019589335752,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.7742349480867831,"y":0.4296868296097721},{"x":0.8018369070203583,"y":0.4296868296097721},{"x":0.8018369070203583,"y":0.4396691965225008},{"x":0.7742349480867831,"y":0.4396691965225008}]}}},{"id":"112","text":"GST","bounding_box":{"left":0.8079720476792163,"top":0.4296868296097721,"width":0.025157619556653743,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8079720476792163,"y":0.4296868296097721},{"x":0.83312966723587,"y":0.43012343161089933},{"x":0.83312966723587,"y":0.44010579852362797},{"x":0.8079720476792163,"y":0.4396691965225008}]}}},{"id":"113","text":"14,950.00","bounding_box":{"left":0.8772976484326558,"top":0.4296868296097721,"width":0.05643826251450179,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.8772976484326558,"y":0.43012343161089933},{"x":0.9337359109471576,"y":0.4296868296097721},{"x":0.9337359109471576,"y":0.44053386851744003},{"x":0.8779148207563315,"y":0.4396691965225008}]}}},{"id":"114","text":"GRH-1000","bounding_box":{"left":0.08159586043319543,"top":0.44313645733257445,"width":0.06257336711009288,"height":0.009990939743045324,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.44357310015670315},{"x":0.1435520840702261,"y":0.44313645733257445},{"x":0.14416922754328831,"y":0.4531273970756198},{"x":0.08221300390625766,"y":0.4531273970756198}]}}},{"id":"115","text":"Grinder,","bounding_box":{"left":0.17607910238124885,"top":0.44313645733257445,"width":0.047846650795751844,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.17607910238124885,"y":0.44357310015670315},{"x":0.2239257531770007,"y":0.44313645733257445},{"x":0.2239257531770007,"y":0.45355546706943184},{"x":0.17607910238124885,"y":0.45399206907055906}]}}},{"id":"116","text":"Precision","bounding_box":{"left":0.2263822242368926,"top":0.44313645733257445,"width":0.053981777029303096,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.2263822242368926,"y":0.44313645733257445},{"x":0.2803640012661957,"y":0.44313645733257445},{"x":0.2803640012661957,"y":0.45355546706943184},{"x":0.22699936770995485,"y":0.45355546706943184}]}}},{"id":"117","text":"Grind","bounding_box":{"left":0.28405474484690535,"top":0.44313645733257445,"width":0.031897786430910235,"height":0.010855611737984605,"polygon":{"coordinates":[{"x":0.28405474484690535,"y":0.44313645733257445},{"x":0.3159525312778156,"y":0.44313645733257445},{"x":0.3159525312778156,"y":0.45399206907055906},{"x":0.28405474484690535,"y":0.45355546706943184}]}}},{"id":"118","text":"10","bounding_box":{"left":0.41104080665392084,"top":0.44357310015670315,"width":0.011653080143426808,"height":0.008681052093660713,"polygon":{"coordinates":[{"x":0.41104080665392084,"y":0.44357310015670315},{"x":0.42269388679734765,"y":0.44357310015670315},{"x":0.42269388679734765,"y":0.45225415225036386},{"x":0.41104080665392084,"y":0.45225415225036386}]}}},{"id":"119","text":"Piece","bounding_box":{"left":0.4404941960066827,"top":0.44357310015670315,"width":0.030675587891836054,"height":0.009117694917789465,"polygon":{"coordinates":[{"x":0.4404941960066827,"y":0.44357310015670315},{"x":0.47116978389851877,"y":0.44357310015670315},{"x":0.47116978389851877,"y":0.4526907950744926},{"x":0.4404941960066827,"y":0.4526907950744926}]}}},{"id":"120","text":"199.00","bounding_box":{"left":0.5337431582212651,"top":0.44357310015670315,"width":0.03803289823915468,"height":0.009554296918916627,"polygon":{"coordinates":[{"x":0.5337431582212651,"y":0.44357310015670315},{"x":0.5717760564604197,"y":0.44357310015670315},{"x":0.5717760564604197,"y":0.4531273970756198},{"x":0.5343603305449408,"y":0.4531273970756198}]}}},{"id":"121","text":"Yes","bounding_box":{"left":0.6797517277766898,"top":0.44357310015670315,"width":0.02086182090993216,"height":0.009117694917789465,"polygon":{"coordinates":[{"x":0.6797517277766898,"y":0.44357310015670315},{"x":0.700613548686622,"y":0.44357310015670315},{"x":0.700613548686622,"y":0.4526907950744926},{"x":0.6797517277766898,"y":0.4526907950744926}]}}},{"id":"122","text":"NON","bounding_box":{"left":0.7742349480867831,"top":0.44313645733257445,"width":0.0276019589335752,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.7742349480867831,"y":0.44357310015670315},{"x":0.8018369070203583,"y":0.44313645733257445},{"x":0.8018369070203583,"y":0.4531273970756198},{"x":0.7742349480867831,"y":0.45355546706943184}]}}},{"id":"123","text":"GST","bounding_box":{"left":0.808589162301665,"top":0.44313645733257445,"width":0.025157619556653743,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.808589162301665,"y":0.44313645733257445},{"x":0.8337467818583187,"y":0.44313645733257445},{"x":0.8337467818583187,"y":0.45355546706943184},{"x":0.808589162301665,"y":0.45355546706943184}]}}},{"id":"124","text":"1,990.00","bounding_box":{"left":0.8846670760376383,"top":0.44313645733257445,"width":0.04968594953196803,"height":0.011292254562113302,"polygon":{"coordinates":[{"x":0.8846670760376383,"y":0.44357310015670315},{"x":0.9337359109471576,"y":0.44313645733257445},{"x":0.9343530255696063,"y":0.45442871189468775},{"x":0.8852721311036502,"y":0.45355546706943184}]}}},{"id":"125","text":"Total","bounding_box":{"left":0.7705563217637372,"top":0.47048096925562605,"width":0.03373704189120619,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.7705563217637372,"y":0.47091757125675326},{"x":0.8036762490324947,"y":0.47048096925562605},{"x":0.8042933636549434,"y":0.4808999381694819},{"x":0.7711613191285223,"y":0.4808999381694819}]}}},{"id":"126","text":"AUD","bounding_box":{"left":0.8067498779907556,"top":0.47048096925562605,"width":0.026379789245114416,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8067498779907556,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.47048096925562605},{"x":0.83312966723587,"y":0.4808999381694819},{"x":0.8067498779907556,"y":0.4808999381694819}]}}},{"id":"127","text":"16,940.00","bounding_box":{"left":0.8723968524211493,"top":0.47048096925562605,"width":0.06011688883754762,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8723968524211493,"y":0.47091757125675326},{"x":0.9325137412586969,"y":0.47048096925562605},{"x":0.9325137412586969,"y":0.4808999381694819},{"x":0.8730018497859342,"y":0.4808999381694819}]}}},{"id":"128","text":"VAT","bounding_box":{"left":0.08221300390625766,"top":0.529947100738186,"width":0.02637979645776785,"height":0.012148312903734415,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.529947100738186},{"x":0.10859280036402551,"y":0.529947100738186},{"x":0.10859280036402551,"y":0.5420954136419204},{"x":0.08221300390625766,"y":0.5420954136419204}]}}},{"id":"129","text":"Amount","bounding_box":{"left":0.11165430485196923,"top":0.529947100738186,"width":0.05215455948748385,"height":0.012148312903734415,"polygon":{"coordinates":[{"x":0.11165430485196923,"y":0.529947100738186},{"x":0.16380886433945308,"y":0.529947100738186},{"x":0.16380886433945308,"y":0.5420954136419204},{"x":0.11165430485196923,"y":0.5420954136419204}]}}},{"id":"130","text":"Specification","bounding_box":{"left":0.1674875050878057,"top":0.529947100738186,"width":0.08159585322054205,"height":0.012584955727863112,"polygon":{"coordinates":[{"x":0.1674875050878057,"y":0.529947100738186},{"x":0.24908335830834774,"y":0.529947100738186},{"x":0.24908335830834774,"y":0.5425320564660491},{"x":0.1674875050878057,"y":0.5420954136419204}]}}},{"id":"131","text":"Inv.","bounding_box":{"left":0.4503079629885866,"top":0.5438333712851171,"width":0.025762674622665682,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.4503079629885866,"y":0.5438333712851171},{"x":0.47546558254524035,"y":0.5438333712851171},{"x":0.4760706376112523,"y":0.5538157381978457},{"x":0.4509251064616488,"y":0.553379095373717}]}}},{"id":"132","text":"Disc.","bounding_box":{"left":0.47852709424583745,"top":0.5438333712851171,"width":0.030675616742449507,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.47852709424583745,"y":0.5438333712851171},{"x":0.5085855386646113,"y":0.5438333712851171},{"x":0.509202710988287,"y":0.554252340198973},{"x":0.47852709424583745,"y":0.5538157381978457}]}}},{"id":"133","text":"Base","bounding_box":{"left":0.5116591676228721,"top":0.5438333712851171,"width":0.029441300945711624,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.5116591676228721,"y":0.5438333712851171},{"x":0.5411004685685837,"y":0.5438333712851171},{"x":0.5411004685685837,"y":0.5538157381978457},{"x":0.5116591676228721,"y":0.554252340198973}]}}},{"id":"134","text":"Invoice","bounding_box":{"left":0.5668752027476862,"top":0.5433967284609884,"width":0.046624495532597954,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.5668752027476862,"y":0.5433967284609884},{"x":0.6134996982802842,"y":0.5438333712851171},{"x":0.6134996982802842,"y":0.554252340198973},{"x":0.5668752027476862,"y":0.554252340198973}]}}},{"id":"135","text":"Discount","bounding_box":{"left":0.61717832460333,"top":0.5433967284609884,"width":0.05767254946062628,"height":0.01085561173798455,"polygon":{"coordinates":[{"x":0.61717832460333,"y":0.5438333712851171},{"x":0.6748508740639563,"y":0.5433967284609884},{"x":0.6748508740639563,"y":0.554252340198973},{"x":0.61717832460333,"y":0.554252340198973}]}}},{"id":"136","text":"VAT","bounding_box":{"left":0.08159586043319543,"top":0.5559902570191682,"width":0.025762652984705592,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5559902570191682},{"x":0.10735851341790102,"y":0.5559902570191682},{"x":0.10735851341790102,"y":0.5664006939257088},{"x":0.08221300390625766,"y":0.5664006939257088}]}}},{"id":"137","text":"Identifier","bounding_box":{"left":0.1104321207382018,"top":0.5559902570191682,"width":0.061956223637030655,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.1104321207382018,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5559902570191682},{"x":0.17238834437523246,"y":0.5668372959268361},{"x":0.1104321207382018,"y":0.5664006939257088}]}}},{"id":"138","text":"VAT","bounding_box":{"left":0.24478758851223964,"top":0.5555536550180409,"width":0.027601958933575144,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.24478758851223964,"y":0.5555536550180409},{"x":0.2723895474458148,"y":0.5555536550180409},{"x":0.2723895474458148,"y":0.5664006939257088},{"x":0.24478758851223964,"y":0.5664006939257088}]}}},{"id":"139","text":"%","bounding_box":{"left":0.28098114473925795,"top":0.5555536550180409,"width":0.006135111808244553,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.28098114473925795,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5555536550180409},{"x":0.2871162565475025,"y":0.5664006939257088},{"x":0.28098114473925795,"y":0.5664006939257088}]}}},{"id":"140","text":"Line","bounding_box":{"left":0.33435786670254913,"top":0.5559902570191682,"width":0.026996961568790168,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.33435786670254913,"y":0.5559902570191682},{"x":0.3613548282713393,"y":0.5559902570191682},{"x":0.3613548282713393,"y":0.5664006939257088},{"x":0.33435786670254913,"y":0.5664006939257088}]}}},{"id":"141","text":"Amount","bounding_box":{"left":0.3650334545943852,"top":0.5559902570191682,"width":0.05214246386778015,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.3650334545943852,"y":0.5559902570191682},{"x":0.41717591846216534,"y":0.5564183270129802},{"x":0.41717591846216534,"y":0.5664006939257088},{"x":0.3650334545943852,"y":0.5664006939257088}]}}},{"id":"142","text":"Amount","bounding_box":{"left":0.49385885841353705,"top":0.5564183270129802,"width":0.05153740880176827,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.49385885841353705,"y":0.5564183270129802},{"x":0.5447790948916296,"y":0.5568549290141074},{"x":0.5453962672153053,"y":0.5664006939257088},{"x":0.49385885841353705,"y":0.5659726239318967}]}}},{"id":"143","text":"Amount","bounding_box":{"left":0.6245356349506487,"top":0.5564183270129802,"width":0.05275957849022894,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.6245356349506487,"y":0.5568549290141074},{"x":0.6772952134408776,"y":0.5564183270129802},{"x":0.6766902160760927,"y":0.5668372959268361},{"x":0.6245356349506487,"y":0.5659726239318967}]}}},{"id":"144","text":"VAT","bounding_box":{"left":0.7429421878712713,"top":0.5559902570191682,"width":0.025762674622665682,"height":0.010410436906540643,"polygon":{"coordinates":[{"x":0.7429421878712713,"y":0.5559902570191682},{"x":0.768704862493937,"y":0.5564183270129802},{"x":0.768704862493937,"y":0.5664006939257088},{"x":0.7429421878712713,"y":0.5664006939257088}]}}},{"id":"145","text":"Base","bounding_box":{"left":0.7723956060746467,"top":0.5564183270129802,"width":0.028836303580926592,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.7723956060746467,"y":0.5564183270129802},{"x":0.8012319096555733,"y":0.5564183270129802},{"x":0.8012319096555733,"y":0.5664006939257088},{"x":0.7723956060746467,"y":0.5664006939257088}]}}},{"id":"146","text":"VAT","bounding_box":{"left":0.8527572011996778,"top":0.5564183270129802,"width":0.02699690386756315,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.8527572011996778,"y":0.5564183270129802},{"x":0.8797541050672409,"y":0.5564183270129802},{"x":0.8797541050672409,"y":0.5664006939257088},{"x":0.8533743158221265,"y":0.5664006939257088}]}}},{"id":"147","text":"Amount","bounding_box":{"left":0.8840499037139625,"top":0.5564183270129802,"width":0.053376750813904694,"height":0.010418968913855853,"polygon":{"coordinates":[{"x":0.8840499037139625,"y":0.5564183270129802},{"x":0.9374266545278672,"y":0.5564183270129802},{"x":0.9368095399054185,"y":0.5668372959268361},{"x":0.8840499037139625,"y":0.5664006939257088}]}}},{"id":"148","text":"NON","bounding_box":{"left":0.08159586043319543,"top":0.5802955373029566,"width":0.026996939930830077,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.5807235664737671},{"x":0.10859280036402551,"y":0.5802955373029566},{"x":0.10859280036402551,"y":0.5902779042156853},{"x":0.08159586043319543,"y":0.5902779042156853}]}}},{"id":"149","text":"GST","bounding_box":{"left":0.11595009628603745,"top":0.5802955373029566,"width":0.024540476083591528,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.11595009628603745,"y":0.5802955373029566},{"x":0.13987342889656673,"y":0.5802955373029566},{"x":0.14049057236962897,"y":0.5907059333864958},{"x":0.11595009628603745,"y":0.5907059333864958}]}}},{"id":"150","text":"0","bounding_box":{"left":0.27975894620018377,"top":0.5807235664737671,"width":0.006740166874256492,"height":0.008253022922850128,"polygon":{"coordinates":[{"x":0.27975894620018377,"y":0.5807235664737671},{"x":0.28649911307444026,"y":0.5807235664737671},{"x":0.28649911307444026,"y":0.5889765893966172},{"x":0.27975894620018377,"y":0.5889765893966172}]}}},{"id":"151","text":"16,940.00","bounding_box":{"left":0.36012054132521487,"top":0.5807235664737671,"width":0.0558332074484898,"height":0.010419009736857388,"polygon":{"coordinates":[{"x":0.36012054132521487,"y":0.5811602092978958},{"x":0.41595374877370467,"y":0.5807235664737671},{"x":0.41595374877370467,"y":0.5911425762106245},{"x":0.3607376847982771,"y":0.5907059333864958}]}}},{"id":"152","text":"16,940.00","bounding_box":{"left":0.4895751770244793,"top":0.5802955373029566,"width":0.05582109019082604,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.4895751770244793,"y":0.5802955373029566},{"x":0.5447790948916296,"y":0.5802955373029566},{"x":0.5453962672153053,"y":0.5911425762106245},{"x":0.49018017438926426,"y":0.5907059333864958}]}}},{"id":"153","text":"0.00","bounding_box":{"left":0.6509154241957632,"top":0.5802955373029566,"width":0.025157619556653743,"height":0.009545724088599883,"polygon":{"coordinates":[{"x":0.6509154241957632,"y":0.5802955373029566},{"x":0.676073043752417,"y":0.5802955373029566},{"x":0.676073043752417,"y":0.5898412613915565},{"x":0.6509154241957632,"y":0.5898412613915565}]}}},{"id":"154","text":"16,940.00","bounding_box":{"left":0.7460158168295322,"top":0.5802955373029566,"width":0.05582109019082604,"height":0.01041039608353922,"polygon":{"coordinates":[{"x":0.7460158168295322,"y":0.5802955373029566},{"x":0.8012319096555733,"y":0.5807235664737671},{"x":0.8018369070203583,"y":0.5907059333864958},{"x":0.7460158168295322,"y":0.5907059333864958}]}}},{"id":"155","text":"0.00","bounding_box":{"left":0.9098125783366283,"top":0.5802955373029566,"width":0.025157619556653743,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.9098125783366283,"y":0.5802955373029566},{"x":0.9349701978932821,"y":0.5802955373029566},{"x":0.9349701978932821,"y":0.5902779042156853},{"x":0.9098125783366283,"y":0.5902779042156853}]}}},{"id":"156","text":"Total","bounding_box":{"left":0.2552184989672057,"top":0.6076400084030066,"width":0.03189775758029678,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.2552184989672057,"y":0.6076400084030066},{"x":0.2871162565475025,"y":0.6076400084030066},{"x":0.2871162565475025,"y":0.6171857324916066},{"x":0.2552184989672057,"y":0.6171857324916066}]}}},{"id":"157","text":"16,940.00","bounding_box":{"left":0.35521968761248135,"top":0.6076400084030066,"width":0.06073406116122332,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.35521968761248135,"y":0.6080680783968186},{"x":0.4153366053006424,"y":0.6076400084030066},{"x":0.41595374877370467,"y":0.6176223753157353},{"x":0.35521968761248135,"y":0.6176223753157353}]}}},{"id":"158","text":"16,940.00","bounding_box":{"left":0.484662206054082,"top":0.6072034064018794,"width":0.060116888837547566,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.484662206054082,"y":0.6080680783968186},{"x":0.5447790948916296,"y":0.6072034064018794},{"x":0.5447790948916296,"y":0.6180504453095473},{"x":0.484662206054082,"y":0.6176223753157353}]}}},{"id":"159","text":"0.00","bounding_box":{"left":0.6490761398848537,"top":0.6076400084030066,"width":0.027614076191239012,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.6490761398848537,"y":0.6171857324916066},{"x":0.6496932545073025,"y":0.6076400084030066},{"x":0.6766902160760927,"y":0.6076400084030066},{"x":0.676073043752417,"y":0.6171857324916066}]}}},{"id":"160","text":"16,940.00","bounding_box":{"left":0.7404857312366862,"top":0.6076400084030066,"width":0.06196834810734786,"height":0.010410436906540754,"polygon":{"coordinates":[{"x":0.7404857312366862,"y":0.6076400084030066},{"x":0.8018369070203583,"y":0.6076400084030066},{"x":0.802454079344034,"y":0.6180504453095473},{"x":0.7411029035603619,"y":0.6180504453095473}]}}},{"id":"161","text":"0.00","bounding_box":{"left":0.9085904086481675,"top":0.6076400084030066,"width":0.025762616921438775,"height":0.009545724088599994,"polygon":{"coordinates":[{"x":0.9085904086481675,"y":0.6076400084030066},{"x":0.9343530255696063,"y":0.6076400084030066},{"x":0.9343530255696063,"y":0.6171857324916066},{"x":0.9085904086481675,"y":0.6171857324916066}]}}},{"id":"162","text":"Ship-to","bounding_box":{"left":0.08221300390625766,"top":0.651036736863995,"width":0.04662447389463781,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.651036736863995},{"x":0.12822033432783322,"y":0.651036736863995},{"x":0.12883747780089547,"y":0.6623204185957916},{"x":0.08281804454696286,"y":0.6618923486019795}]}}},{"id":"163","text":"Address","bounding_box":{"left":0.1325161329745548,"top":0.651036736863995,"width":0.05153740880176824,"height":0.011283681731796613,"polygon":{"coordinates":[{"x":0.1325161329745548,"y":0.651036736863995},{"x":0.18405354177632305,"y":0.651036736863995},{"x":0.18405354177632305,"y":0.6618923486019795},{"x":0.1325161329745548,"y":0.6623204185957916}]}}},{"id":"164","text":"CRONUS","bounding_box":{"left":0.08221300390625766,"top":0.6644949782401155,"width":0.052759585702882306,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6644949782401155},{"x":0.13435544613607772,"y":0.6644949782401155},{"x":0.13497258960913996,"y":0.6753420171477834},{"x":0.08221300390625766,"y":0.6753420171477834}]}}},{"id":"165","text":"International","bounding_box":{"left":0.13742906066903188,"top":0.6644949782401155,"width":0.07730006899912722,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.13742906066903188,"y":0.6644949782401155},{"x":0.2147291296681591,"y":0.6644949782401155},{"x":0.2147291296681591,"y":0.6753420171477834},{"x":0.13803410130973706,"y":0.6753420171477834}]}}},{"id":"166","text":"Ltd.","bounding_box":{"left":0.21717349789569396,"top":0.6644949782401155,"width":0.0245404616582848,"height":0.010847038907667916,"polygon":{"coordinates":[{"x":0.21717349789569396,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6644949782401155},{"x":0.24171395955397876,"y":0.6753420171477834},{"x":0.2177906413687562,"y":0.6753420171477834}]}}},{"id":"167","text":"5","bounding_box":{"left":0.08159586043319543,"top":0.6788178507881738,"width":0.008591582868136424,"height":0.010847079730669451,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.6788178507881738},{"x":0.08957029982826961,"y":0.6788178507881738},{"x":0.09018744330133185,"y":0.6896649305188433},{"x":0.08221300390625766,"y":0.6896649305188433}]}}},{"id":"168","text":"The","bounding_box":{"left":0.09386609126233782,"top":0.6788178507881738,"width":0.021466868763290764,"height":0.010847079730669451,"polygon":{"coordinates":[{"x":0.09386609126233782,"y":0.6788178507881738},{"x":0.11472791217227002,"y":0.6788178507881738},{"x":0.11533296002562858,"y":0.6896649305188433},{"x":0.09448323473540006,"y":0.6896649305188433}]}}},{"id":"169","text":"Ring","bounding_box":{"left":0.11778942387286712,"top":0.6788178507881738,"width":0.027614076191238957,"height":0.011283640908795078,"polygon":{"coordinates":[{"x":0.11778942387286712,"y":0.6788178507881738},{"x":0.14540350006410607,"y":0.6792544936123025},{"x":0.14540350006410607,"y":0.6901014916969689},{"x":0.11840656734592936,"y":0.6896649305188433}]}}},{"id":"170","text":"Westminster","bounding_box":{"left":0.08221300390625766,"top":0.6927041213351048,"width":0.07606577484034938,"height":0.00998236691272869,"polygon":{"coordinates":[{"x":0.08221300390625766,"y":0.6927041213351048},{"x":0.15767373810590182,"y":0.6931407641592335},{"x":0.15827877874660704,"y":0.7026864882478335},{"x":0.08221300390625766,"y":0.7026864882478335}]}}},{"id":"171","text":"CANBERRA","bounding_box":{"left":0.08159586043319543,"top":0.7057257607100982,"width":0.0662520078584455,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.08159586043319543,"y":0.7057257607100982},{"x":0.14724282765093574,"y":0.7057257607100982},{"x":0.14784786829164093,"y":0.7157081276228269},{"x":0.08221300390625766,"y":0.7161446888009525}]}}},{"id":"172","text":"NSW","bounding_box":{"left":0.15092148282459508,"top":0.7057257607100982,"width":0.02637978924511447,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.15092148282459508,"y":0.7057257607100982},{"x":0.17668414302195404,"y":0.7057257607100982},{"x":0.17730127206970955,"y":0.7161446888009525},{"x":0.15153862629765733,"y":0.7157081276228269}]}}},{"id":"173","text":"2600","bounding_box":{"left":0.18589286936315272,"top":0.7057257607100982,"width":0.028836260305006384,"height":0.010418928090854318,"polygon":{"coordinates":[{"x":0.18589286936315272,"y":0.7057257607100982},{"x":0.2147291296681591,"y":0.7057257607100982},{"x":0.2147291296681591,"y":0.7161446888009525},{"x":0.1864979100038579,"y":0.7161446888009525}]}}},{"id":"174","text":"Australia","bounding_box":{"left":0.08281804454696286,"top":0.720048592435155,"width":0.051537401589114865,"height":0.00998236691272858,"polygon":{"coordinates":[{"x":0.08281804454696286,"y":0.7204852352592837},{"x":0.13435544613607772,"y":0.720048592435155},{"x":0.13435544613607772,"y":0.7300309593478835},{"x":0.08281804454696286,"y":0.7295943981697579}]}}}],"selection_marks":[]}],"error":null}},"error":null} \ No newline at end of file diff --git a/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108214.pdf b/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108214.pdf deleted file mode 100644 index 26051bf8fc..0000000000 Binary files a/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108214.pdf and /dev/null differ diff --git a/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108216.pdf b/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108216.pdf deleted file mode 100644 index ac91fa5eac..0000000000 Binary files a/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108216.pdf and /dev/null differ diff --git a/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108218.pdf b/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108218.pdf deleted file mode 100644 index 63857f5478..0000000000 Binary files a/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108218.pdf and /dev/null differ diff --git a/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108220.pdf b/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108220.pdf deleted file mode 100644 index 0037c7856d..0000000000 Binary files a/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108220.pdf and /dev/null differ diff --git a/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108222.pdf b/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108222.pdf deleted file mode 100644 index 668774b310..0000000000 Binary files a/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108222.pdf and /dev/null differ diff --git a/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108224.pdf b/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108224.pdf deleted file mode 100644 index d984b63ef5..0000000000 Binary files a/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108224.pdf and /dev/null differ diff --git a/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108226.pdf b/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108226.pdf deleted file mode 100644 index ba5d13778b..0000000000 Binary files a/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108226.pdf and /dev/null differ diff --git a/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108228.pdf b/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108228.pdf deleted file mode 100644 index f9a27bbdea..0000000000 Binary files a/Apps/AU/EDocument_AU/demo data/.resources/PDFs/PurchaseInvoice108228.pdf and /dev/null differ diff --git a/Apps/AU/EDocument_AU/demo data/3.Transactions/CreateDemoEDocsAU.Codeunit.al b/Apps/AU/EDocument_AU/demo data/3.Transactions/CreateDemoEDocsAU.Codeunit.al new file mode 100644 index 0000000000..742746c292 --- /dev/null +++ b/Apps/AU/EDocument_AU/demo data/3.Transactions/CreateDemoEDocsAU.Codeunit.al @@ -0,0 +1,111 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.Localization; + +using Microsoft.DemoData.Common; +using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Purchases; +using Microsoft.eServices.EDocument.DemoData; +using Microsoft.eServices.EDocument.Processing.Import.Purchase; +using Microsoft.Purchases.Document; + +codeunit 17213 "Create Demo EDocs AU" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + var + ContosoInboundEDocument: Codeunit "Contoso Inbound E-Document"; + + trigger OnRun() + begin + GenerateContosoInboundEDocuments(); + end; + + procedure GetShipmentDHLInvoiceDescription(): Text[100] + var + ShipmentDHLLbl: Label 'Shipment, DHL', MaxLength = 100; + begin + exit(ShipmentDHLLbl); + end; + + local procedure GenerateContosoInboundEDocuments() + var + CreateVendor: Codeunit "Create Vendor"; + CreateAUGLAccounts: Codeunit "Create AU GL Accounts"; + CreateCommonUnitOfMeasure: Codeunit "Create Common Unit Of Measure"; + CreateEDocumentMasterData: Codeunit "Create E-Document Master Data"; + CreateJobItem: Codeunit "Create Job Item"; + CreateAllocationAccountAU: Codeunit "Create Allocation Account AU"; + CreateDeferralTemplate: Codeunit "Create Deferral Template"; + CreateGLAccount: Codeunit "Create G/L Account"; + EDocSamplePurchaseInvoice: Codeunit "E-Doc Sample Purchase Invoice"; + ITServicesJanuaryLbl: Label 'IT Services Support period: January', MaxLength = 100; + ITServicesFebruaryLbl: Label 'IT Services Support period: February', MaxLength = 100; + ITServicesMarchLbl: Label 'IT Services Support period: March', MaxLength = 100; + ITServicesAprilLbl: Label 'IT Services Support period: April', MaxLength = 100; + ITServicesMayLbl: Label 'IT Services Support period: May', MaxLength = 100; + begin + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.EUGraphicDesign(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '245'); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"Allocation Account", CreateAllocationAccountAU.Licenses(), '', + 6, 500, CreateDeferralTemplate.DeferralCode1Y(), ''); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1419'); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccount.ConsultantServices(), + ITServicesJanuaryLbl, 6, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1425'); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccount.ConsultantServices(), + ITServicesFebruaryLbl, 19, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1437'); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccount.ConsultantServices(), + ITServicesMarchLbl, 2, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1456'); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccount.ConsultantServices(), + ITServicesAprilLbl, 7, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1479'); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccount.ConsultantServices(), + ITServicesMayLbl, 16, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.ExportFabrikam(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), 'F12938'); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.WholeDecafBeansColombia(), + '', 50, 5, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateJobItem.ItemConsumable(), + '', 50, 65, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateAUGLAccounts.FreightExpensesRetail(), + GetShipmentDHLInvoiceDescription(), 1, 60, '', ''); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticWorldImporter(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '000982'); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.SmartGrindHome(), + '', 100, 299, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.PrecisionGrindHome(), + '', 50, 199, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.Generate(); + end; + +} diff --git a/Apps/AU/EDocument_AU/demo data/3.Transactions/CreateEDocSampleInvAU.Codeunit.al b/Apps/AU/EDocument_AU/demo data/3.Transactions/CreateEDocSampleInvAU.Codeunit.al new file mode 100644 index 0000000000..b641f94b22 --- /dev/null +++ b/Apps/AU/EDocument_AU/demo data/3.Transactions/CreateEDocSampleInvAU.Codeunit.al @@ -0,0 +1,57 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.Localization; + +using Microsoft.DemoData.Common; +using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Purchases; +using Microsoft.eServices.EDocument.DemoData; +using Microsoft.eServices.EDocument.Processing.Import.Purchase; +using Microsoft.Purchases.Document; + +codeunit 17214 "Create E-Doc Sample Inv. AU" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + var + EDocSamplePurchaseInvoice: Codeunit "E-Doc Sample Purchase Invoice"; + CreateVendor: Codeunit "Create Vendor"; + CreateEDocumentMasterData: Codeunit "Create E-Document Master Data"; + CreateJobItem: Codeunit "Create Job Item"; + CreateCommonUnitOfMeasure: Codeunit "Create Common Unit Of Measure"; + CreateDemoEDocsAU: Codeunit "Create Demo EDocs AU"; + CreateAllocationAccountAU: Codeunit "Create Allocation Account AU"; + + trigger OnRun() + var + YearlyLicenstCostLbl: Label 'Yearly license cost mapped to a G/L account'; + BasicCoffeeEquipmentLbl: Label 'Basic coffee equipment mapped to vendor''s Item References'; + CoffeeBeansAndPartsLbl: Label 'Coffee beans and parts with shipping cost that needs human intervention'; + begin + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.ExportFabrikam(), '108256', CoffeeBeansAndPartsLbl); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.WholeDecafBeansColombia(), '', 50, 5, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateJobItem.ItemConsumable(), '', 50, 65, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::" ", '', CreateDemoEDocsAU.GetShipmentDHLInvoiceDescription(), 1, 60, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.DomesticWorldImporter(), '108528', BasicCoffeeEquipmentLbl); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.SmartGrindHome(), '', 100, 299, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.PrecisionGrindHome(), '', 50, 199, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.EUGraphicDesign(), '108244', YearlyLicenstCostLbl); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::" ", '', CreateAllocationAccountAU.LicensesDescription(), 6, 500, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + end; +} diff --git a/Apps/AU/EDocument_AU/demo data/3.Transactions/CreateEDocsFromResourcesAU.Codeunit.al b/Apps/AU/EDocument_AU/demo data/3.Transactions/CreateEDocsFromResourcesAU.Codeunit.al index 2c515903c1..479fea0e03 100644 --- a/Apps/AU/EDocument_AU/demo data/3.Transactions/CreateEDocsFromResourcesAU.Codeunit.al +++ b/Apps/AU/EDocument_AU/demo data/3.Transactions/CreateEDocsFromResourcesAU.Codeunit.al @@ -1,20 +1,24 @@ +#if not CLEAN28 // ------------------------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. // ------------------------------------------------------------------------------------------------ namespace Microsoft.DemoData.Localization; -using Microsoft.eServices.EDocument.Format; -using Microsoft.eServices.EDocument.DemoData; -using Microsoft.DemoData.Jobs; using Microsoft.DemoData.Finance; -using Microsoft.Purchases.Document; -using Microsoft.Inventory.Item; using Microsoft.DemoData.Foundation; +using Microsoft.DemoData.Jobs; +using Microsoft.eServices.EDocument.DemoData; +using Microsoft.eServices.EDocument.Format; +using Microsoft.Inventory.Item; +using Microsoft.Purchases.Document; codeunit 17211 "Create EDocs From Resources AU" { Access = Internal; + ObsoleteReason = 'A new implementation in Create Demo EDocs US and Create E-Doc Sample Inv. US codeunits are used instead.'; + ObsoleteState = Pending; + ObsoleteTag = '28.0'; InherentEntitlements = X; InherentPermissions = X; EventSubscriberInstance = Manual; @@ -98,4 +102,5 @@ codeunit 17211 "Create EDocs From Resources AU" NavApp.GetResource(ResourceName, InStr); IsHandled := true; end; -} \ No newline at end of file +} +#endif \ No newline at end of file diff --git a/Apps/AU/EDocument_AU/demo data/EDocDemodataAU.Codeunit.al b/Apps/AU/EDocument_AU/demo data/EDocDemodataAU.Codeunit.al index f704b07c81..98ccf1c211 100644 --- a/Apps/AU/EDocument_AU/demo data/EDocDemodataAU.Codeunit.al +++ b/Apps/AU/EDocument_AU/demo data/EDocDemodataAU.Codeunit.al @@ -25,7 +25,10 @@ codeunit 17212 "E-Doc. Demodata AU" begin case ContosoDemoDataLevel of Enum::"Contoso Demo Data Level"::"Transactional Data": - Codeunit.Run(Codeunit::"Create EDocs From Resources AU"); + begin + Codeunit.Run(Codeunit::"Create Demo EDocs AU"); + Codeunit.Run(Codeunit::"Create E-Doc Sample Inv. AU"); + end; end; end; } \ No newline at end of file diff --git a/Apps/AU/EDocument_AU/demo data/app.json b/Apps/AU/EDocument_AU/demo data/app.json index cd643937e3..af6118c8f9 100644 --- a/Apps/AU/EDocument_AU/demo data/app.json +++ b/Apps/AU/EDocument_AU/demo data/app.json @@ -51,8 +51,5 @@ "includeSourceInSymbolFile": true }, "application": "28.0.0.0", - "target": "OnPrem", - "resourceFolders": [ - ".resources" - ] + "target": "OnPrem" } diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Bank/2. Master Data/CreateBankAccountBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Bank/2. Master Data/CreateBankAccountBE.Codeunit.al index e5397e7b7f..42aa6b4c87 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Bank/2. Master Data/CreateBankAccountBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Bank/2. Master Data/CreateBankAccountBE.Codeunit.al @@ -6,9 +6,9 @@ namespace Microsoft.DemoData.Bank; using Microsoft.Bank.BankAccount; +using Microsoft.DemoData.CRM; using Microsoft.DemoTool; using Microsoft.DemoTool.Helpers; -using Microsoft.DemoData.CRM; codeunit 11371 "Create Bank Account BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Bank/3.Transaction Data/CreateCodaDocument.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Bank/3.Transaction Data/CreateCodaDocument.Codeunit.al index 02cb35a278..688bea3252 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Bank/3.Transaction Data/CreateCodaDocument.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Bank/3.Transaction Data/CreateCodaDocument.Codeunit.al @@ -5,12 +5,12 @@ namespace Microsoft.DemoData.Bank; -using Microsoft.DemoTool.Helpers; -using Microsoft.Sales.Customer; -using Microsoft.Purchases.Vendor; using Microsoft.DemoData.Finance; -using Microsoft.DemoData.Sales; using Microsoft.DemoData.Purchases; +using Microsoft.DemoData.Sales; +using Microsoft.DemoTool.Helpers; +using Microsoft.Purchases.Vendor; +using Microsoft.Sales.Customer; codeunit 11415 "Create Coda Document" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/CRM/1.Setup Data/CreateWordTemplateBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/CRM/1.Setup Data/CreateWordTemplateBE.Codeunit.al index 1d06949e97..88b3bc0b94 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/CRM/1.Setup Data/CreateWordTemplateBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/CRM/1.Setup Data/CreateWordTemplateBE.Codeunit.al @@ -5,11 +5,11 @@ namespace Microsoft.DemoData.CRM; -using Microsoft.Sales.Customer; -using Microsoft.Purchases.Vendor; using Microsoft.CRM.Contact; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Foundation; +using Microsoft.DemoTool.Helpers; +using Microsoft.Purchases.Vendor; +using Microsoft.Sales.Customer; codeunit 11410 "Create Word Template BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/ContosoBELocalization.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/ContosoBELocalization.Codeunit.al index a0275406ca..d20ae258c8 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/ContosoBELocalization.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/ContosoBELocalization.Codeunit.al @@ -5,15 +5,15 @@ namespace Microsoft.DemoData.Localization; -using Microsoft.DemoData.Finance; using Microsoft.DemoData.Bank; +using Microsoft.DemoData.CRM; +using Microsoft.DemoData.Finance; using Microsoft.DemoData.FixedAsset; +using Microsoft.DemoData.Foundation; +using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Inventory; using Microsoft.DemoData.Purchases; using Microsoft.DemoData.Sales; -using Microsoft.DemoData.HumanResources; -using Microsoft.DemoData.Foundation; -using Microsoft.DemoData.CRM; using Microsoft.DemoTool; codeunit 11355 "Contoso BE Localization" diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/CreateBEGLAccounts.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/CreateBEGLAccounts.Codeunit.al index cc82005f9a..cf5593e0f7 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/CreateBEGLAccounts.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/CreateBEGLAccounts.Codeunit.al @@ -5,14 +5,14 @@ namespace Microsoft.DemoData.Localization; -using Microsoft.Inventory.Setup; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Common; -using Microsoft.DemoData.Service; -using Microsoft.DemoData.Manufacturing; using Microsoft.DemoData.FixedAsset; using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Manufacturing; +using Microsoft.DemoData.Service; +using Microsoft.DemoTool.Helpers; +using Microsoft.Inventory.Setup; codeunit 11345 "Create BE GL Accounts" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreateGLAccountBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreateGLAccountBE.Codeunit.al index cf90303b73..67966fd3bd 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreateGLAccountBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreateGLAccountBE.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Foundation.Enums; -using Microsoft.DemoTool.Helpers; codeunit 11357 "Create GL Account BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreateGenJnlTemplateBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreateGenJnlTemplateBE.Codeunit.al index 3be474730b..157fd0d4ec 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreateGenJnlTemplateBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreateGenJnlTemplateBE.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.DemoData.Foundation; -using Microsoft.Finance.GeneralLedger.Journal; using Microsoft.DemoData.Bank; +using Microsoft.DemoData.Foundation; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Journal; codeunit 11362 "Create Gen. Jnl Template BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreatePostingGroupBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreatePostingGroupBE.Codeunit.al index db5b4a31e6..33ce36cdd0 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreatePostingGroupBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreatePostingGroupBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Setup; codeunit 11364 "Create Posting Group BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreateVATPostingGroupBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreateVATPostingGroupBE.Codeunit.al index c732720d49..441e1e51ec 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreateVATPostingGroupBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreateVATPostingGroupBE.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; using Microsoft.Finance.VAT.Setup; using Microsoft.Foundation.Enums; -using Microsoft.DemoTool.Helpers; codeunit 11365 "Create VAT Posting Group BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreateVATStatementBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreateVATStatementBE.Codeunit.al index c218678844..4ee326aa5f 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreateVATStatementBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/1. Setup Data/CreateVATStatementBE.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Finance; +using Microsoft.DemoData.Foundation; using Microsoft.DemoTool.Helpers; using Microsoft.Finance.VAT.Reporting; using Microsoft.Foundation.Enums; -using Microsoft.DemoData.Foundation; codeunit 11425 "Create VAT Statement BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/2. Master Data/CreateColumnLayoutBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/2. Master Data/CreateColumnLayoutBE.Codeunit.al index 33dc5c4016..766c87ac5e 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/2. Master Data/CreateColumnLayoutBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/2. Master Data/CreateColumnLayoutBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.FinancialReports; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.FinancialReports; codeunit 11404 "Create Column Layout BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/2. Master Data/CreateCurrencyExRateBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/2. Master Data/CreateCurrencyExRateBE.Codeunit.al index b6d7877324..38572b64f3 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/2. Master Data/CreateCurrencyExRateBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Finance/2. Master Data/CreateCurrencyExRateBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.Currency; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.Currency; codeunit 11367 "Create Currency Ex. Rate BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/FixedAsset/1. Setup Data/CreateFAPostingGrpBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/FixedAsset/1. Setup Data/CreateFAPostingGrpBE.Codeunit.al index 297220fa00..f60cbaadee 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/FixedAsset/1. Setup Data/CreateFAPostingGrpBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/FixedAsset/1. Setup Data/CreateFAPostingGrpBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.FixedAsset; -using Microsoft.FixedAssets.FixedAsset; using Microsoft.DemoData.Finance; +using Microsoft.FixedAssets.FixedAsset; codeunit 11392 "Create FA Posting Grp. BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Foundation/1. Setup Data/CreateCompanyInformationBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Foundation/1. Setup Data/CreateCompanyInformationBE.Codeunit.al index 8af117eb2d..27e4f6f048 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Foundation/1. Setup Data/CreateCompanyInformationBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Foundation/1. Setup Data/CreateCompanyInformationBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.Foundation.Company; using Microsoft.DemoTool; +using Microsoft.Foundation.Company; codeunit 11356 "Create Company Information BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Foundation/1. Setup Data/CreateNoSeriesBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Foundation/1. Setup Data/CreateNoSeriesBE.Codeunit.al index d963ec2542..5c73c87af4 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Foundation/1. Setup Data/CreateNoSeriesBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Foundation/1. Setup Data/CreateNoSeriesBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.Foundation.NoSeries; using Microsoft.DemoTool.Helpers; +using Microsoft.Foundation.NoSeries; codeunit 11351 "Create No. Series BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Foundation/1. Setup Data/CreatePostCodeBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Foundation/1. Setup Data/CreatePostCodeBE.Codeunit.al index 36e402e33d..7d8c61b23f 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Foundation/1. Setup Data/CreatePostCodeBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Foundation/1. Setup Data/CreatePostCodeBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.Foundation.Address; using Microsoft.DemoTool.Helpers; +using Microsoft.Foundation.Address; codeunit 11352 "Create Post Code BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Foundation/1. Setup Data/CreateUOMTranslationBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Foundation/1. Setup Data/CreateUOMTranslationBE.Codeunit.al index 3cce4c5fd1..8f826040d0 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Foundation/1. Setup Data/CreateUOMTranslationBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Foundation/1. Setup Data/CreateUOMTranslationBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.Foundation.UOM; using Microsoft.DemoTool.Helpers; +using Microsoft.Foundation.UOM; codeunit 11417 "Create UOM Translation BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/HumanResources/1. Setup Data/CreateEmplPostingGroupBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/HumanResources/1. Setup Data/CreateEmplPostingGroupBE.Codeunit.al index 38304f9045..7641e3040a 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/HumanResources/1. Setup Data/CreateEmplPostingGroupBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/HumanResources/1. Setup Data/CreateEmplPostingGroupBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.HumanResources; -using Microsoft.HumanResources.Employee; using Microsoft.DemoData.Finance; +using Microsoft.HumanResources.Employee; codeunit 11398 "Create Empl. Posting Group BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Inventory/1. Setup Data/CreateInvSetupBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Inventory/1. Setup Data/CreateInvSetupBE.Codeunit.al index ce546f7066..4f784cca24 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Inventory/1. Setup Data/CreateInvSetupBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Inventory/1. Setup Data/CreateInvSetupBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Setup; using Microsoft.DemoData.Finance; +using Microsoft.Inventory.Setup; codeunit 11374 "Create Inv. Setup BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Inventory/2. Master Data/CreateInvPostingSetupBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Inventory/2. Master Data/CreateInvPostingSetupBE.Codeunit.al index 69ceb0ffb9..cfd15b7a92 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Inventory/2. Master Data/CreateInvPostingSetupBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Inventory/2. Master Data/CreateInvPostingSetupBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Item; using Microsoft.DemoData.Finance; +using Microsoft.Inventory.Item; codeunit 11373 "Create Inv. Posting Setup BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Inventory/2. Master Data/CreateLocationBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Inventory/2. Master Data/CreateLocationBE.Codeunit.al index 455de4a8c6..48e9a0b7a5 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Inventory/2. Master Data/CreateLocationBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Inventory/2. Master Data/CreateLocationBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Location; using Microsoft.DemoData.Foundation; +using Microsoft.Inventory.Location; codeunit 11378 "Create Location BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/1. Setup Data/CreatePurchPayableSetupBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/1. Setup Data/CreatePurchPayableSetupBE.Codeunit.al index 8b753eb0b6..d36f2acba4 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/1. Setup Data/CreatePurchPayableSetupBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/1. Setup Data/CreatePurchPayableSetupBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Setup; using Microsoft.DemoData.Finance; +using Microsoft.Purchases.Setup; codeunit 11379 "Create Purch. Payable Setup BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/1. Setup Data/CreateVendorPostingGrpBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/1. Setup Data/CreateVendorPostingGrpBE.Codeunit.al index f92f4bb47a..82d48e2a80 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/1. Setup Data/CreateVendorPostingGrpBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/1. Setup Data/CreateVendorPostingGrpBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; using Microsoft.DemoData.Finance; +using Microsoft.Purchases.Vendor; codeunit 11380 "Create Vendor Posting Grp BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/2. Master Data/CreatePurchDimValueBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/2. Master Data/CreatePurchDimValueBE.Codeunit.al index dd8be75b24..ea418ad8fb 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/2. Master Data/CreatePurchDimValueBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/2. Master Data/CreatePurchDimValueBE.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Purchases; +using Microsoft.DemoData.Finance; using Microsoft.Finance.Dimension; using Microsoft.Purchases.Vendor; -using Microsoft.DemoData.Finance; codeunit 11381 "Create Purch. Dim. Value BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/2. Master Data/CreateVendorBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/2. Master Data/CreateVendorBE.Codeunit.al index 8a68a85e15..c015870f00 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/2. Master Data/CreateVendorBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/2. Master Data/CreateVendorBE.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; using Microsoft.DemoData.Finance; using Microsoft.DemoTool; +using Microsoft.Purchases.Vendor; codeunit 11382 "Create Vendor BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/2. Master Data/CreateVendorTemplateBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/2. Master Data/CreateVendorTemplateBE.Codeunit.al index 598475ae0b..1399ed20c3 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/2. Master Data/CreateVendorTemplateBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/2. Master Data/CreateVendorTemplateBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; using Microsoft.DemoTool; +using Microsoft.Purchases.Vendor; codeunit 11383 "Create Vendor Template BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/3.Transactions Data/CreatePurchaseDocumentBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/3.Transactions Data/CreatePurchaseDocumentBE.Codeunit.al index 87fd9be83e..550fb92b21 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/3.Transactions Data/CreatePurchaseDocumentBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Purchases/3.Transactions Data/CreatePurchaseDocumentBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Document; using Microsoft.Projects.Resources.Resource; +using Microsoft.Purchases.Document; codeunit 11400 "Create Purchase Document BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/1. Setup Data/CreateCustPostingGrpBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/1. Setup Data/CreateCustPostingGrpBE.Codeunit.al index 653e5b924b..a9a1f78623 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/1. Setup Data/CreateCustPostingGrpBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/1. Setup Data/CreateCustPostingGrpBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoData.Finance; +using Microsoft.Sales.Customer; codeunit 11384 "Create Cust. Posting Grp BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/1. Setup Data/CreateSalesRecSetupBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/1. Setup Data/CreateSalesRecSetupBE.Codeunit.al index 45e9f8721a..63c01ecd66 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/1. Setup Data/CreateSalesRecSetupBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/1. Setup Data/CreateSalesRecSetupBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Setup; using Microsoft.DemoData.Finance; +using Microsoft.Sales.Setup; codeunit 11386 "Create Sales Rec. Setup BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/2. Master Data/CreateCustomerBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/2. Master Data/CreateCustomerBE.Codeunit.al index b46495a046..11fdb7ee4b 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/2. Master Data/CreateCustomerBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/2. Master Data/CreateCustomerBE.Codeunit.al @@ -5,11 +5,11 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoData.Finance; -using Microsoft.DemoTool; using Microsoft.DemoData.Foundation; using Microsoft.DemoData.Purchases; +using Microsoft.DemoTool; +using Microsoft.Sales.Customer; codeunit 11387 "Create Customer BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/2. Master Data/CreateSalesDimValueBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/2. Master Data/CreateSalesDimValueBE.Codeunit.al index ec50fba01c..a04d1f615a 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/2. Master Data/CreateSalesDimValueBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/2. Master Data/CreateSalesDimValueBE.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Sales; +using Microsoft.DemoData.Finance; using Microsoft.Finance.Dimension; using Microsoft.Sales.Customer; -using Microsoft.DemoData.Finance; codeunit 11389 "Create Sales Dim Value BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/2. Master Data/CreateShipToAddressBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/2. Master Data/CreateShipToAddressBE.Codeunit.al index 7bb41374a7..d2b349fc5d 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/2. Master Data/CreateShipToAddressBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoData/Sales/2. Master Data/CreateShipToAddressBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoTool; +using Microsoft.Sales.Customer; codeunit 11391 "Create Ship-to Address BE" { diff --git a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoTool/Contoso Helpers/ContosoMiscellaneousBE.Codeunit.al b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoTool/Contoso Helpers/ContosoMiscellaneousBE.Codeunit.al index 92ef3e3d38..196cf809fc 100644 --- a/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoTool/Contoso Helpers/ContosoMiscellaneousBE.Codeunit.al +++ b/Apps/BE/ContosoCoffeeDemoDatasetBE/app/DemoTool/Contoso Helpers/ContosoMiscellaneousBE.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoTool.Helpers; -using Microsoft.Inventory.Intrastat; using Microsoft.Bank.Payment; +using Microsoft.Inventory.Intrastat; codeunit 11402 "Contoso Miscellaneous BE" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Bank/1.Setup Data/CreateCABankExpImpSetup.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Bank/1.Setup Data/CreateCABankExpImpSetup.Codeunit.al index 936c3184ce..ef6cd74b8c 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Bank/1.Setup Data/CreateCABankExpImpSetup.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Bank/1.Setup Data/CreateCABankExpImpSetup.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Bank; -using Microsoft.DemoData.Foundation; using Microsoft.Bank.ElectronicFundsTransfer; +using Microsoft.DemoData.Foundation; using Microsoft.DemoTool.Helpers; codeunit 27016 "Create CA Bank Exp/Imp Setup" diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Bank/1.Setup Data/CreateCAPayMethodTrans.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Bank/1.Setup Data/CreateCAPayMethodTrans.Codeunit.al index dc098c74d9..6ff699c30a 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Bank/1.Setup Data/CreateCAPayMethodTrans.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Bank/1.Setup Data/CreateCAPayMethodTrans.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Bank; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Foundation; +using Microsoft.DemoTool.Helpers; codeunit 27079 "Create CA Pay. Method Trans." { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Bank/3.Transaction Data/CreateCAGenJournalLine.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Bank/3.Transaction Data/CreateCAGenJournalLine.Codeunit.al index 2a7d9dc8d8..cd37ea3023 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Bank/3.Transaction Data/CreateCAGenJournalLine.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Bank/3.Transaction Data/CreateCAGenJournalLine.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Bank; -using Microsoft.Finance.GeneralLedger.Journal; using Microsoft.DemoData.Finance; +using Microsoft.Finance.GeneralLedger.Journal; codeunit 27025 "Create CA Gen. Journal Line" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/CAContosoLocalization.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/CAContosoLocalization.Codeunit.al index 40f683bdb1..23c4988bcc 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/CAContosoLocalization.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/CAContosoLocalization.Codeunit.al @@ -5,14 +5,14 @@ namespace Microsoft.DemoData.Localization; -using Microsoft.DemoData.Foundation; -using Microsoft.DemoData.Finance; using Microsoft.DemoData.Bank; +using Microsoft.DemoData.CRM; +using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Foundation; +using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Inventory; using Microsoft.DemoData.Purchases; using Microsoft.DemoData.Sales; -using Microsoft.DemoData.CRM; -using Microsoft.DemoData.HumanResources; using Microsoft.DemoTool; codeunit 27054 "CA Contoso Localization" @@ -97,6 +97,7 @@ codeunit 27054 "CA Contoso Localization" Codeunit.Run(Codeunit::"Create CA Column Layout"); CreateCATaxArea.UpdateTaxAreaOnCompanyInformation(); CreateCAGeneralLedgerSetup.UpdateMaxVATDifferenceAllowedOnGeneralLedgerSetup(); + Codeunit.Run(Codeunit::"Create Allocation Account CA"); end; end; end; @@ -155,7 +156,7 @@ codeunit 27054 "CA Contoso Localization" begin case ContosoDemoDataLevel of Enum::"Contoso Demo Data Level"::"Setup Data": - Codeunit.Run(Codeunit::"Create CA Inv. Posting Group"); + Codeunit.Run(Codeunit::"Create CA Inv. Posting Group"); end; end; diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/CRM/1.Setup Data/CreateCAWordTemplate.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/CRM/1.Setup Data/CreateCAWordTemplate.Codeunit.al index abddb66e3c..3c11fd231c 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/CRM/1.Setup Data/CreateCAWordTemplate.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/CRM/1.Setup Data/CreateCAWordTemplate.Codeunit.al @@ -5,11 +5,11 @@ namespace Microsoft.DemoData.CRM; -using Microsoft.Sales.Customer; -using Microsoft.Purchases.Vendor; using Microsoft.CRM.Contact; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Foundation; +using Microsoft.DemoTool.Helpers; +using Microsoft.Purchases.Vendor; +using Microsoft.Sales.Customer; codeunit 27068 "Create CA Word Template" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAAccScheduleLine.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAAccScheduleLine.Codeunit.al index 34fd62d3ff..d736cd8500 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAAccScheduleLine.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAAccScheduleLine.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.FinancialReports; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.FinancialReports; codeunit 27043 "Create CA Acc. Schedule Line" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAGLAccounts.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAGLAccounts.Codeunit.al index d05e7bb813..5fab51273a 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAGLAccounts.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAGLAccounts.Codeunit.al @@ -5,16 +5,16 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Inventory.Setup; -using Microsoft.Finance.GeneralLedger.Account; -using Microsoft.Foundation.Enums; using Microsoft.DemoData.Common; -using Microsoft.DemoData.Service; -using Microsoft.DemoData.Manufacturing; using Microsoft.DemoData.FixedAsset; using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Manufacturing; +using Microsoft.DemoData.Service; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Foundation.Enums; +using Microsoft.Inventory.Setup; codeunit 27009 "Create CA GL Accounts" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAGenJournalTemplate.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAGenJournalTemplate.Codeunit.al index 3f564cc5a0..e63083ac8e 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAGenJournalTemplate.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAGenJournalTemplate.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Finance; +using Microsoft.DemoData.FixedAsset; using Microsoft.Finance.GeneralLedger.Journal; using Microsoft.Finance.GeneralLedger.Reports; -using Microsoft.DemoData.FixedAsset; codeunit 27029 "Create CA Gen Journal Template" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAPostingGroup.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAPostingGroup.Codeunit.al index af84988bd2..a600095f2f 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAPostingGroup.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAPostingGroup.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Setup; codeunit 27028 "Create CA Posting Group" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAVatPostingGroup.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAVatPostingGroup.Codeunit.al index 91d913897c..60849f80cb 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAVatPostingGroup.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/1.Setup Data/CreateCAVatPostingGroup.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; using Microsoft.Finance.VAT.Setup; using Microsoft.Foundation.Enums; -using Microsoft.DemoTool.Helpers; codeunit 27038 "Create CA Vat Posting Group" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateAllocationAccountCA.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateAllocationAccountCA.Codeunit.al new file mode 100644 index 0000000000..71979fd990 --- /dev/null +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateAllocationAccountCA.Codeunit.al @@ -0,0 +1,48 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DemoData.Finance; + +using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.AllocationAccount; + +codeunit 27095 "Create Allocation Account CA" +{ + InherentEntitlements = X; + InherentPermissions = X; + + trigger OnRun() + var + AllocationAccount: Record "Allocation Account"; + AllocAccountDistribution: Record "Alloc. Account Distribution"; + ContosoAllocationAccount: Codeunit "Contoso Allocation Account"; + CreateDimensionValue: Codeunit "Create Dimension Value"; + CreateGLAccount: Codeunit "Create G/L Account"; + begin + ContosoAllocationAccount.InsertAllocationAccount( + Licenses(), LicensesDescription(), + AllocationAccount."Account Type"::Fixed, AllocationAccount."Document Lines Split"::"Split Amount"); + ContosoAllocationAccount.InsertAllocationAccountDistribution( + Licenses(), 10000, AllocAccountDistribution."Account Type"::Fixed, 1, 50, + AllocAccountDistribution."Destination Account Type"::"G/L Account", CreateGLAccount.OtherComputerExpenses(), CreateDimensionValue.AdministrationDepartment(), ''); + ContosoAllocationAccount.InsertAllocationAccountDistribution( + Licenses(), 20000, AllocAccountDistribution."Account Type"::Fixed, 1, 50, + AllocAccountDistribution."Destination Account Type"::"G/L Account", CreateGLAccount.OtherComputerExpenses(), CreateDimensionValue.SalesDepartment(), ''); + end; + + procedure Licenses(): Code[20] + begin + exit(LicensesTok); + end; + + procedure LicensesDescription(): Text[100] + begin + exit(YearlyLicenseFeeTok); + end; + + var + LicensesTok: Label 'LICENSES', MaxLength = 20; + YearlyLicenseFeeTok: Label 'Yearly license fee, design software', MaxLength = 100; +} diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCAColumnLayout.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCAColumnLayout.Codeunit.al index e34a10e33f..02c96fe7c5 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCAColumnLayout.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCAColumnLayout.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; using Microsoft.Finance.FinancialReports; using Microsoft.Foundation.Enums; -using Microsoft.DemoTool.Helpers; codeunit 27042 "Create CA Column Layout" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCAInvPostingSetup.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCAInvPostingSetup.Codeunit.al index e4ba47b70f..26d921a613 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCAInvPostingSetup.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCAInvPostingSetup.Codeunit.al @@ -7,8 +7,8 @@ namespace Microsoft.DemoData.Inventory; using Microsoft.DemoData.Finance; -using Microsoft.Inventory.Item; using Microsoft.DemoTool.Helpers; +using Microsoft.Inventory.Item; codeunit 27060 "Create CA Inv. Posting Setup" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCATaxArea.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCATaxArea.Codeunit.al index 562f15f14f..94873b267b 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCATaxArea.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCATaxArea.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.SalesTax; +using Microsoft.DemoData.Foundation; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.SalesTax; using Microsoft.Foundation.Company; -using Microsoft.DemoData.Foundation; codeunit 27019 "Create CA Tax Area" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCATaxDetail.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCATaxDetail.Codeunit.al index f9cad4bf81..fee078beb9 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCATaxDetail.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCATaxDetail.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.SalesTax; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.SalesTax; codeunit 27050 "Create CA Tax Detail" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCATaxJurisdTransl.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCATaxJurisdTransl.Codeunit.al index ae0a73142c..fcdcd181b0 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCATaxJurisdTransl.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCATaxJurisdTransl.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Foundation; +using Microsoft.DemoTool.Helpers; codeunit 27048 "Create CA Tax Jurisd. Transl." { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCATaxJurisdiction.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCATaxJurisdiction.Codeunit.al index 2d71fc73b9..e44cfd7502 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCATaxJurisdiction.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Finance/2.Master Data/CreateCATaxJurisdiction.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.SalesTax; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.SalesTax; codeunit 27052 "Create CA Tax Jurisdiction" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Foundation/1.Setup Data/CreateCACompanyInformation.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Foundation/1.Setup Data/CreateCACompanyInformation.Codeunit.al index 3732532117..9b089d4990 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Foundation/1.Setup Data/CreateCACompanyInformation.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Foundation/1.Setup Data/CreateCACompanyInformation.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.Foundation.Company; using Microsoft.DemoTool; +using Microsoft.Foundation.Company; codeunit 27018 "Create CA Company Information" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Inventory/2.Master Data/CreateCAItem.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Inventory/2.Master Data/CreateCAItem.Codeunit.al index c8b419c7a5..b977d8f13d 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Inventory/2.Master Data/CreateCAItem.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Inventory/2.Master Data/CreateCAItem.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Item; using Microsoft.DemoData.Finance; +using Microsoft.Inventory.Item; codeunit 27057 "Create CA Item" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Inventory/2.Master Data/CreateCAItemCharge.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Inventory/2.Master Data/CreateCAItemCharge.Codeunit.al index 01eecf7506..6000a05087 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Inventory/2.Master Data/CreateCAItemCharge.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Inventory/2.Master Data/CreateCAItemCharge.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Item; using Microsoft.DemoData.Finance; +using Microsoft.Inventory.Item; codeunit 27059 "Create CA Item Charge" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Inventory/2.Master Data/CreateCALocation.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Inventory/2.Master Data/CreateCALocation.Codeunit.al index 98e0cf627b..83f08825a3 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Inventory/2.Master Data/CreateCALocation.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Inventory/2.Master Data/CreateCALocation.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Location; using Microsoft.DemoData.Foundation; +using Microsoft.Inventory.Location; codeunit 27056 "Create CA Location" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Purchases/2.Master Data/CreateCAPurchDimValue.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Purchases/2.Master Data/CreateCAPurchDimValue.Codeunit.al index 6de7026ebb..3e74f7cd33 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Purchases/2.Master Data/CreateCAPurchDimValue.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Purchases/2.Master Data/CreateCAPurchDimValue.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Purchases; +using Microsoft.DemoData.Finance; using Microsoft.Finance.Dimension; using Microsoft.Purchases.Vendor; -using Microsoft.DemoData.Finance; codeunit 27083 "Create CA Purch. Dim. Value" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Purchases/2.Master Data/CreateCAVendBankAccount.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Purchases/2.Master Data/CreateCAVendBankAccount.Codeunit.al index 1d32d3df7c..810bb5a1a6 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Purchases/2.Master Data/CreateCAVendBankAccount.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Purchases/2.Master Data/CreateCAVendBankAccount.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; using Microsoft.DemoData.Foundation; +using Microsoft.Purchases.Vendor; codeunit 27073 "Create CA Vend. Bank Account" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Purchases/2.Master Data/CreateCAVendor.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Purchases/2.Master Data/CreateCAVendor.Codeunit.al index b1c111a9bb..4ea65d4570 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Purchases/2.Master Data/CreateCAVendor.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Purchases/2.Master Data/CreateCAVendor.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; using Microsoft.DemoData.Finance; using Microsoft.DemoTool; +using Microsoft.Purchases.Vendor; codeunit 27067 "Create CA Vendor" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Purchases/3.Transactions/CreateCAPurchaseLine.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Purchases/3.Transactions/CreateCAPurchaseLine.Codeunit.al index 33210a6dab..c82c9d9864 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Purchases/3.Transactions/CreateCAPurchaseLine.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Purchases/3.Transactions/CreateCAPurchaseLine.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Document; using Microsoft.Projects.Resources.Resource; +using Microsoft.Purchases.Document; codeunit 27053 "Create CA Purchase Line" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/2.Master Data/CreateCACustBankAccount.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/2.Master Data/CreateCACustBankAccount.Codeunit.al index 6ff83eefb9..b337f092ec 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/2.Master Data/CreateCACustBankAccount.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/2.Master Data/CreateCACustBankAccount.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoData.Foundation; +using Microsoft.Sales.Customer; codeunit 27070 "Create CA Cust. Bank Account" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/2.Master Data/CreateCACustomer.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/2.Master Data/CreateCACustomer.Codeunit.al index 02b2bb0f30..918fa0674a 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/2.Master Data/CreateCACustomer.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/2.Master Data/CreateCACustomer.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoData.Finance; -using Microsoft.DemoTool; using Microsoft.DemoData.Foundation; +using Microsoft.DemoTool; +using Microsoft.Sales.Customer; codeunit 27081 "Create CA Customer" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/2.Master Data/CreateCASalesDimValue.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/2.Master Data/CreateCASalesDimValue.Codeunit.al index 26a98295cb..28cdc4f97f 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/2.Master Data/CreateCASalesDimValue.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/2.Master Data/CreateCASalesDimValue.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Sales; +using Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; using Microsoft.Finance.Dimension; using Microsoft.Sales.Customer; -using Microsoft.DemoTool.Helpers; -using Microsoft.DemoData.Finance; codeunit 27082 "Create CA Sales Dim. Value" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/2.Master Data/CreateCAShipToAddress.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/2.Master Data/CreateCAShipToAddress.Codeunit.al index dec0945aaa..c5e91ba4eb 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/2.Master Data/CreateCAShipToAddress.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/2.Master Data/CreateCAShipToAddress.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoTool; using Microsoft.DemoTool.Helpers; +using Microsoft.Sales.Customer; codeunit 27027 "Create CA Ship-to Address" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/3.Transaction Data/CreateCASalesDocument.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/3.Transaction Data/CreateCASalesDocument.Codeunit.al index 63b680f672..79f1d49c45 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/3.Transaction Data/CreateCASalesDocument.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoData/Sales/3.Transaction Data/CreateCASalesDocument.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Document; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; +using Microsoft.Sales.Document; codeunit 27013 "Create CA Sales Document" { diff --git a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoTool/Contoso Helpers/ContosoCATranslation.Codeunit.al b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoTool/Contoso Helpers/ContosoCATranslation.Codeunit.al index 27ffb3ab22..3acf545b87 100644 --- a/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoTool/Contoso Helpers/ContosoCATranslation.Codeunit.al +++ b/Apps/CA/ContosoCoffeeDemoDatasetCA/app/DemoTool/Contoso Helpers/ContosoCATranslation.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoTool.Helpers; -using Microsoft.Foundation.UOM; -using Microsoft.Foundation.PaymentTerms; using Microsoft.Bank.BankAccount; using Microsoft.Foundation.Address; +using Microsoft.Foundation.PaymentTerms; +using Microsoft.Foundation.UOM; codeunit 27077 "Contoso CA Translation" { diff --git a/Apps/CA/EDocument_CA/demo data/3.Transactions/CreateDemoEDocsCA.Codeunit.al b/Apps/CA/EDocument_CA/demo data/3.Transactions/CreateDemoEDocsCA.Codeunit.al new file mode 100644 index 0000000000..6245a390e4 --- /dev/null +++ b/Apps/CA/EDocument_CA/demo data/3.Transactions/CreateDemoEDocsCA.Codeunit.al @@ -0,0 +1,110 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.Localization; + +using Microsoft.DemoData.Common; +using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Purchases; +using Microsoft.eServices.EDocument.DemoData; +using Microsoft.eServices.EDocument.Processing.Import.Purchase; +using Microsoft.Purchases.Document; + +codeunit 11506 "Create Demo EDocs CA" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + var + ContosoInboundEDocument: Codeunit "Contoso Inbound E-Document"; + + trigger OnRun() + begin + GenerateContosoInboundEDocuments(); + end; + + procedure GetShipmentDHLInvoiceDescription(): Text[100] + var + ShipmentDHLLbl: Label 'Shipment, DHL', MaxLength = 100; + begin + exit(ShipmentDHLLbl); + end; + + local procedure GenerateContosoInboundEDocuments() + var + CreateVendor: Codeunit "Create Vendor"; + CreateGLAccount: Codeunit "Create G/L Account"; + CreateCommonUnitOfMeasure: Codeunit "Create Common Unit Of Measure"; + CreateEDocumentMasterData: Codeunit "Create E-Document Master Data"; + CreateJobItem: Codeunit "Create Job Item"; + CreateAllocationAccountCA: Codeunit "Create Allocation Account CA"; + CreateDeferralTemplate: Codeunit "Create Deferral Template"; + EDocSamplePurchaseInvoice: Codeunit "E-Doc Sample Purchase Invoice"; + ITServicesJanuaryLbl: Label 'IT Services Support period: January', MaxLength = 100; + ITServicesFebruaryLbl: Label 'IT Services Support period: February', MaxLength = 100; + ITServicesMarchLbl: Label 'IT Services Support period: March', MaxLength = 100; + ITServicesAprilLbl: Label 'IT Services Support period: April', MaxLength = 100; + ITServicesMayLbl: Label 'IT Services Support period: May', MaxLength = 100; + begin + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.EUGraphicDesign(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '245', 390); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"Allocation Account", CreateAllocationAccountCA.Licenses(), + '', 6, 500, CreateDeferralTemplate.DeferralCode1Y(), ''); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1419', 156); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccount.OtherComputerExpenses(), + ITServicesJanuaryLbl, 6, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1425', 494); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccount.OtherComputerExpenses(), + ITServicesFebruaryLbl, 19, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1437', 52); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccount.OtherComputerExpenses(), + ITServicesMarchLbl, 2, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1456', 182); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccount.OtherComputerExpenses(), + ITServicesAprilLbl, 7, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1479', 416); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccount.OtherComputerExpenses(), + ITServicesMayLbl, 16, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.ExportFabrikam(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), 'F12938', 7.8); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.WholeDecafBeansColombia(), + '', 50, 5, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateJobItem.ItemConsumable(), + '', 50, 65, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccount.DeliveryExpenses(), + GetShipmentDHLInvoiceDescription(), 1, 60, '', ''); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticWorldImporter(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '000982'); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.SmartGrindHome(), + '', 100, 299, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.PrecisionGrindHome(), + '', 50, 199, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.Generate(); + end; + +} diff --git a/Apps/CA/EDocument_CA/demo data/3.Transactions/CreateEDocSampleInvCA.Codeunit.al b/Apps/CA/EDocument_CA/demo data/3.Transactions/CreateEDocSampleInvCA.Codeunit.al new file mode 100644 index 0000000000..1e653167cd --- /dev/null +++ b/Apps/CA/EDocument_CA/demo data/3.Transactions/CreateEDocSampleInvCA.Codeunit.al @@ -0,0 +1,57 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.Localization; + +using Microsoft.DemoData.Common; +using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Purchases; +using Microsoft.eServices.EDocument.DemoData; +using Microsoft.eServices.EDocument.Processing.Import.Purchase; +using Microsoft.Purchases.Document; + +codeunit 11507 "Create E-Doc Sample Inv. CA" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + var + EDocSamplePurchaseInvoice: Codeunit "E-Doc Sample Purchase Invoice"; + CreateVendor: Codeunit "Create Vendor"; + CreateEDocumentMasterData: Codeunit "Create E-Document Master Data"; + CreateJobItem: Codeunit "Create Job Item"; + CreateCommonUnitOfMeasure: Codeunit "Create Common Unit Of Measure"; + CreateDemoEDocsCA: Codeunit "Create Demo EDocs CA"; + CreateAllocationAccountCA: Codeunit "Create Allocation Account CA"; + + trigger OnRun() + var + YearlyLicenstCostLbl: Label 'Yearly license cost mapped to a G/L account'; + BasicCoffeeEquipmentLbl: Label 'Basic coffee equipment mapped to vendor''s Item References'; + CoffeeBeansAndPartsLbl: Label 'Coffee beans and parts with shipping cost that needs human intervention'; + begin + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.ExportFabrikam(), '108925', CoffeeBeansAndPartsLbl, 7.8); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.WholeDecafBeansColombia(), '', 50, 5, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateJobItem.ItemConsumable(), '', 50, 65, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::" ", '', CreateDemoEDocsCA.GetShipmentDHLInvoiceDescription(), 1, 60, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.DomesticWorldImporter(), '108426', BasicCoffeeEquipmentLbl); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.SmartGrindHome(), '', 100, 299, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.PrecisionGrindHome(), '', 50, 199, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.EUGraphicDesign(), '108427', YearlyLicenstCostLbl, 390); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::" ", '', CreateAllocationAccountCA.LicensesDescription(), 6, 500, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + end; +} diff --git a/Apps/CA/EDocument_CA/demo data/EDocDemodataCA.Codeunit.al b/Apps/CA/EDocument_CA/demo data/EDocDemodataCA.Codeunit.al new file mode 100644 index 0000000000..55a90b23a4 --- /dev/null +++ b/Apps/CA/EDocument_CA/demo data/EDocDemodataCA.Codeunit.al @@ -0,0 +1,34 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DemoData.Localization; + +using Microsoft.DemoTool; + +codeunit 11505 "E-Doc. Demodata CA" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Contoso Demo Tool", 'OnAfterGeneratingDemoData', '', false, false)] + local procedure LocalizationContosoDemoData(Module: Enum "Contoso Demo Data Module"; ContosoDemoDataLevel: Enum "Contoso Demo Data Level") + begin + if Module <> Enum::"Contoso Demo Data Module"::"E-Document Contoso Module" then + exit; + EDocumentModule(ContosoDemoDataLevel); + end; + + local procedure EDocumentModule(ContosoDemoDataLevel: Enum "Contoso Demo Data Level") + begin + case ContosoDemoDataLevel of + Enum::"Contoso Demo Data Level"::"Transactional Data": + begin + Codeunit.Run(Codeunit::"Create Demo EDocs CA"); + Codeunit.Run(Codeunit::"Create E-Doc Sample Inv. CA"); + end; + end; + end; +} diff --git a/Apps/CA/EDocument_CA/demo data/ExtensionLogo.png b/Apps/CA/EDocument_CA/demo data/ExtensionLogo.png new file mode 100644 index 0000000000..79a3aa399d Binary files /dev/null and b/Apps/CA/EDocument_CA/demo data/ExtensionLogo.png differ diff --git a/Apps/CA/EDocument_CA/demo data/app.json b/Apps/CA/EDocument_CA/demo data/app.json new file mode 100644 index 0000000000..93253f7a28 --- /dev/null +++ b/Apps/CA/EDocument_CA/demo data/app.json @@ -0,0 +1,55 @@ +{ + "id": "d67591a4-895c-4d2e-8e94-402badd1a5c7", + "name": "E-Document Core Demo Data (CA)", + "publisher": "Microsoft", + "brief": "The Dynamics 365 Business Central E-Documents module enables different models of electronic invoicing, available for additional localizations.", + "description": "Business Central's E-Documents module is the foundation layer for all e-invoicing standards covering most common processes, but it can be used for other electronic documents. The module is easily extendable with the country-based e-invoicing apps. The E-Documents app covers both sales and purchase processes and can have different lifecycles from standard invoices in Business Central.", + "version": "28.0.0.0", + "privacyStatement": "https://go.microsoft.com/fwlink/?LinkId=724009", + "EULA": "https://go.microsoft.com/fwlink/?linkid=2009120", + "help": "https://go.microsoft.com/fwlink/?linkid=2204541", + "url": "https://go.microsoft.com/fwlink/?LinkId=724011", + "logo": "ExtensionLogo.png", + "contextSensitiveHelpUrl": "https://go.microsoft.com/fwlink/?linkid=2206603", + "dependencies": [ + { + "id": "e1d97edc-c239-46b4-8d84-6368bdf67c8b", + "name": "E-Document Core", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "de0dddf3-9917-430d-8d20-6e7679a08500", + "name": "E-Document Core Demo Data", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "5a0b41e9-7a42-4123-d521-2265186cfb31", + "name": "Contoso Coffee Demo Dataset", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "5b0b41a1-7b42-3113-a521-2265186cfb33", + "name": "Contoso Coffee Demo Dataset (CA)", + "publisher": "Microsoft", + "version": "28.0.0.0" + } + ], + "screenshots": [], + "platform": "28.0.0.0", + "idRanges": [ + { + "from": 11505, + "to": 11510 + } + ], + "resourceExposurePolicy": { + "allowDebugging": true, + "allowDownloadingSource": true, + "includeSourceInSymbolFile": true + }, + "application": "28.0.0.0", + "target": "OnPrem" +} diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Bank/1.Setup Data/CreateCHBankExImport.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Bank/1.Setup Data/CreateCHBankExImport.Codeunit.al index c1ed6e22e9..fa404bfa5e 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Bank/1.Setup Data/CreateCHBankExImport.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Bank/1.Setup Data/CreateCHBankExImport.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Bank; -using Microsoft.DemoTool.Helpers; +using Microsoft.Bank.DirectDebit; using Microsoft.DemoData.Foundation; +using Microsoft.DemoTool.Helpers; using System.IO; -using Microsoft.Bank.DirectDebit; codeunit 11587 "Create CH Bank Ex/Import" { diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Bank/1.Setup Data/CreateCHESRSetup.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Bank/1.Setup Data/CreateCHESRSetup.Codeunit.al index 10cda290b0..ff5fbe3387 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Bank/1.Setup Data/CreateCHESRSetup.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Bank/1.Setup Data/CreateCHESRSetup.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Bank; -using Microsoft.DemoTool.Helpers; -using Microsoft.DemoData.Finance; using Microsoft.Bank.Payment; +using Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; codeunit 11628 "Create CH ESR Setup" { diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Bank/1.Setup Data/CreateCHLSVSetup.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Bank/1.Setup Data/CreateCHLSVSetup.Codeunit.al index 6bde504520..395cd47b72 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Bank/1.Setup Data/CreateCHLSVSetup.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Bank/1.Setup Data/CreateCHLSVSetup.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Bank; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; codeunit 11626 "Create CH LSV Setup" { diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Bank/1.Setup Data/CreateCHPaymentMethod.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Bank/1.Setup Data/CreateCHPaymentMethod.Codeunit.al index e0a353648a..059738868a 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Bank/1.Setup Data/CreateCHPaymentMethod.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Bank/1.Setup Data/CreateCHPaymentMethod.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Bank; -using Microsoft.DemoTool.Helpers; using Microsoft.Bank.Payment; +using Microsoft.DemoTool.Helpers; codeunit 11609 "Create CH Payment Method" { diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/CHContosoLocalization.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/CHContosoLocalization.Codeunit.al index 58dd8e4ea6..484a53ee5c 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/CHContosoLocalization.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/CHContosoLocalization.Codeunit.al @@ -5,16 +5,16 @@ namespace Microsoft.DemoData.Localization; -using Microsoft.DemoTool; using Microsoft.DemoData.Bank; +using Microsoft.DemoData.CRM; using Microsoft.DemoData.Finance; -using Microsoft.DemoData.Purchases; -using Microsoft.DemoData.Sales; using Microsoft.DemoData.FixedAsset; -using Microsoft.DemoData.Inventory; -using Microsoft.DemoData.CRM; -using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Foundation; +using Microsoft.DemoData.HumanResources; +using Microsoft.DemoData.Inventory; +using Microsoft.DemoData.Purchases; +using Microsoft.DemoData.Sales; +using Microsoft.DemoTool; codeunit 11620 "CH Contoso Localization" { diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/CRM/CreateCHWordTemplates.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/CRM/CreateCHWordTemplates.Codeunit.al index d5f6568155..365b292336 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/CRM/CreateCHWordTemplates.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/CRM/CreateCHWordTemplates.Codeunit.al @@ -5,11 +5,11 @@ namespace Microsoft.DemoData.CRM; -using Microsoft.DemoTool.Helpers; +using Microsoft.CRM.Contact; using Microsoft.DemoData.Foundation; -using Microsoft.Sales.Customer; +using Microsoft.DemoTool.Helpers; using Microsoft.Purchases.Vendor; -using Microsoft.CRM.Contact; +using Microsoft.Sales.Customer; codeunit 11634 "Create CH Word Templates" { diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Finance/1.Setup Data/CreateCHGLAccounts.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Finance/1.Setup Data/CreateCHGLAccounts.Codeunit.al index d72bd9ec69..bb2496ef95 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Finance/1.Setup Data/CreateCHGLAccounts.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Finance/1.Setup Data/CreateCHGLAccounts.Codeunit.al @@ -5,16 +5,16 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Inventory.Setup; using Microsoft.DemoData.Common; -using Microsoft.DemoData.Service; -using Microsoft.DemoData.Manufacturing; using Microsoft.DemoData.FixedAsset; using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Jobs; -using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.DemoData.Manufacturing; +using Microsoft.DemoData.Service; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Foundation.Enums; +using Microsoft.Inventory.Setup; codeunit 11580 "Create CH GL Accounts" { diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Finance/1.Setup Data/CreateCHVATPostingGroups.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Finance/1.Setup Data/CreateCHVATPostingGroups.Codeunit.al index fdf4ad7318..09d4f91f3a 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Finance/1.Setup Data/CreateCHVATPostingGroups.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Finance/1.Setup Data/CreateCHVATPostingGroups.Codeunit.al @@ -7,8 +7,8 @@ namespace Microsoft.DemoData.Finance; using Microsoft.DemoTool.Helpers; using Microsoft.Finance.GeneralLedger.Account; -using Microsoft.Finance.VAT.Setup; using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Finance.VAT.Setup; using Microsoft.Foundation.Enums; codeunit 11616 "Create CH VAT Posting Groups" diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/FixedAsset/1.Setup Data/CreateCHFAPostingGrp.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/FixedAsset/1.Setup Data/CreateCHFAPostingGrp.Codeunit.al index 888d0abf05..b4d685e2ac 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/FixedAsset/1.Setup Data/CreateCHFAPostingGrp.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/FixedAsset/1.Setup Data/CreateCHFAPostingGrp.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.FixedAsset; -using Microsoft.FixedAssets.FixedAsset; using Microsoft.DemoData.Finance; +using Microsoft.FixedAssets.FixedAsset; codeunit 11600 "Create CH FA Posting Grp." { diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Foundation/1.Setup Data/CreateCHCompanyInformation.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Foundation/1.Setup Data/CreateCHCompanyInformation.Codeunit.al index d2fbfd1ff0..aac8c4c6ff 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Foundation/1.Setup Data/CreateCHCompanyInformation.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Foundation/1.Setup Data/CreateCHCompanyInformation.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.Foundation.Company; using Microsoft.DemoTool; +using Microsoft.Foundation.Company; codeunit 11590 "Create CH Company Information" { diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Inventory/1.Setup Data/CreateCHInvPostingSetup.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Inventory/1.Setup Data/CreateCHInvPostingSetup.Codeunit.al index 60ef040572..33716bd05c 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Inventory/1.Setup Data/CreateCHInvPostingSetup.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Inventory/1.Setup Data/CreateCHInvPostingSetup.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Item; using Microsoft.DemoData.Finance; +using Microsoft.Inventory.Item; codeunit 11603 "Create CH Inv. Posting Setup" { diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Inventory/2.Master Data/CreateCHLocation.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Inventory/2.Master Data/CreateCHLocation.Codeunit.al index 50084aa9b0..168af394a8 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Inventory/2.Master Data/CreateCHLocation.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Inventory/2.Master Data/CreateCHLocation.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Location; using Microsoft.DemoData.Foundation; +using Microsoft.Inventory.Location; codeunit 11607 "Create CH Location" { diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Purchases/1.Setup Data/CreateCHVendorPostingGrp.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Purchases/1.Setup Data/CreateCHVendorPostingGrp.Codeunit.al index d5e67c2db2..1ab4b27404 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Purchases/1.Setup Data/CreateCHVendorPostingGrp.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Purchases/1.Setup Data/CreateCHVendorPostingGrp.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; using Microsoft.DemoData.Finance; +using Microsoft.Purchases.Vendor; codeunit 11618 "Create CH Vendor Posting Grp" { diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Purchases/2.Master Data/CreateCHPurchDimValue.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Purchases/2.Master Data/CreateCHPurchDimValue.Codeunit.al index 2f460afd72..b922e79814 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Purchases/2.Master Data/CreateCHPurchDimValue.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Purchases/2.Master Data/CreateCHPurchDimValue.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Finance.Dimension; using Microsoft.DemoData.Finance; +using Microsoft.Finance.Dimension; using Microsoft.Purchases.Vendor; codeunit 11596 "Create CH Purch. Dim. Value" diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Purchases/2.Master Data/CreateCHVendor.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Purchases/2.Master Data/CreateCHVendor.Codeunit.al index 7d2fe2dcad..6e190b4b16 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Purchases/2.Master Data/CreateCHVendor.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Purchases/2.Master Data/CreateCHVendor.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; -using Microsoft.DemoTool; using Microsoft.DemoData.Foundation; using Microsoft.DemoData.Inventory; +using Microsoft.DemoTool; +using Microsoft.Purchases.Vendor; codeunit 11619 "Create CH Vendor" { diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Sales/1.Setup Data/CreateCHCustPostingGrp.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Sales/1.Setup Data/CreateCHCustPostingGrp.Codeunit.al index 32f10c847a..f354459e1b 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Sales/1.Setup Data/CreateCHCustPostingGrp.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Sales/1.Setup Data/CreateCHCustPostingGrp.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoData.Finance; +using Microsoft.Sales.Customer; codeunit 11593 "Create CH Cust. Posting Grp" { diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Sales/2.Master Data/CreateCHCustomer.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Sales/2.Master Data/CreateCHCustomer.Codeunit.al index feafceb49e..209da0a811 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Sales/2.Master Data/CreateCHCustomer.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Sales/2.Master Data/CreateCHCustomer.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; -using Microsoft.DemoTool; using Microsoft.DemoData.Foundation; using Microsoft.DemoData.Inventory; +using Microsoft.DemoTool; +using Microsoft.Sales.Customer; codeunit 11594 "Create CH Customer" { diff --git a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Sales/2.Master Data/CreateCHSalesDimValue.Codeunit.al b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Sales/2.Master Data/CreateCHSalesDimValue.Codeunit.al index 9663a9781a..f0e3f291de 100644 --- a/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Sales/2.Master Data/CreateCHSalesDimValue.Codeunit.al +++ b/Apps/CH/ContosoCoffeeDemoDatasetCH/app/DemoData/Sales/2.Master Data/CreateCHSalesDimValue.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Finance.Dimension; using Microsoft.DemoData.Finance; +using Microsoft.Finance.Dimension; using Microsoft.Sales.Customer; codeunit 11595 "Create CH Sales Dim. Value" diff --git a/Apps/CZ/AdvancePaymentsLocalization/app/Src/Codeunits/AltCustVATRegImplCZZ.Codeunit.al b/Apps/CZ/AdvancePaymentsLocalization/app/Src/Codeunits/AltCustVATRegImplCZZ.Codeunit.al index c5b2fbfe94..8985c9e45f 100644 --- a/Apps/CZ/AdvancePaymentsLocalization/app/Src/Codeunits/AltCustVATRegImplCZZ.Codeunit.al +++ b/Apps/CZ/AdvancePaymentsLocalization/app/Src/Codeunits/AltCustVATRegImplCZZ.Codeunit.al @@ -6,9 +6,9 @@ namespace Microsoft.Finance.AdvancePayments; using Microsoft.Finance.VAT.Registration; using Microsoft.Sales.Customer; -using System.Telemetry; using System.Diagnostics; using System.Environment.Configuration; +using System.Telemetry; codeunit 11732 "Alt. Cust. VAT Reg. Impl. CZZ" implements "Alt. Cust. VAT Reg. Adv. CZZ" { diff --git a/Apps/CZ/AdvancePaymentsLocalization/app/Src/Codeunits/DocumentTypeHandlerCZZ.Codeunit.al b/Apps/CZ/AdvancePaymentsLocalization/app/Src/Codeunits/DocumentTypeHandlerCZZ.Codeunit.al index edfb359a19..ca977e74eb 100644 --- a/Apps/CZ/AdvancePaymentsLocalization/app/Src/Codeunits/DocumentTypeHandlerCZZ.Codeunit.al +++ b/Apps/CZ/AdvancePaymentsLocalization/app/Src/Codeunits/DocumentTypeHandlerCZZ.Codeunit.al @@ -6,8 +6,8 @@ namespace Microsoft.Finance.AdvancePayments; using Microsoft.Finance.GeneralLedger.Ledger; using Microsoft.Finance.ReceivablesPayables; -using Microsoft.Sales.Receivables; using Microsoft.Purchases.Payables; +using Microsoft.Sales.Receivables; codeunit 31141 "Document Type Handler CZZ" { diff --git a/Apps/CZ/AdvancePaymentsLocalization/app/Src/Codeunits/RelPurchAdvLetterDocCZZ.Codeunit.al b/Apps/CZ/AdvancePaymentsLocalization/app/Src/Codeunits/RelPurchAdvLetterDocCZZ.Codeunit.al index 41cc8825cc..4f3e94f4b2 100644 --- a/Apps/CZ/AdvancePaymentsLocalization/app/Src/Codeunits/RelPurchAdvLetterDocCZZ.Codeunit.al +++ b/Apps/CZ/AdvancePaymentsLocalization/app/Src/Codeunits/RelPurchAdvLetterDocCZZ.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.Finance.AdvancePayments; using Microsoft.Bank; -using Microsoft.Purchases.Setup; using Microsoft.Finance.VAT.Setup; +using Microsoft.Purchases.Setup; codeunit 31018 "Rel. Purch.Adv.Letter Doc. CZZ" { diff --git a/Apps/CZ/AdvancePaymentsLocalization/app/Src/Pages/AdvPaymentCloseDialogCZZ.Page.al b/Apps/CZ/AdvancePaymentsLocalization/app/Src/Pages/AdvPaymentCloseDialogCZZ.Page.al index a8c5f88de9..f7eda2cbc6 100644 --- a/Apps/CZ/AdvancePaymentsLocalization/app/Src/Pages/AdvPaymentCloseDialogCZZ.Page.al +++ b/Apps/CZ/AdvancePaymentsLocalization/app/Src/Pages/AdvPaymentCloseDialogCZZ.Page.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.AdvancePayments; -using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Finance.Currency; +using Microsoft.Finance.GeneralLedger.Setup; page 31177 "Adv. Payment Close Dialog CZZ" { diff --git a/Apps/CZ/AdvancePaymentsLocalization/app/Src/Reports/PurchAdvanceLettersVATCZZ.Report.al b/Apps/CZ/AdvancePaymentsLocalization/app/Src/Reports/PurchAdvanceLettersVATCZZ.Report.al index 81c2db2df4..88860a0f87 100644 --- a/Apps/CZ/AdvancePaymentsLocalization/app/Src/Reports/PurchAdvanceLettersVATCZZ.Report.al +++ b/Apps/CZ/AdvancePaymentsLocalization/app/Src/Reports/PurchAdvanceLettersVATCZZ.Report.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.AdvancePayments; -using Microsoft.Finance.VAT.Ledger; using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Finance.VAT.Ledger; using System.Utilities; report 31025 "Purch. Advance Letters VAT CZZ" diff --git a/Apps/CZ/AdvancePaymentsLocalization/app/Src/Reports/SalesAdvanceLetterCZZ.Report.al b/Apps/CZ/AdvancePaymentsLocalization/app/Src/Reports/SalesAdvanceLetterCZZ.Report.al index e603a639e1..5e10b0ba25 100644 --- a/Apps/CZ/AdvancePaymentsLocalization/app/Src/Reports/SalesAdvanceLetterCZZ.Report.al +++ b/Apps/CZ/AdvancePaymentsLocalization/app/Src/Reports/SalesAdvanceLetterCZZ.Report.al @@ -16,8 +16,8 @@ using Microsoft.Utilities; using System.EMail; using System.Globalization; using System.Security.User; -using System.Utilities; using System.Text; +using System.Utilities; report 31014 "Sales - Advance Letter CZZ" { diff --git a/Apps/CZ/AdvancePaymentsLocalization/app/Src/Reports/SalesInvoicewithAdvCZZ.Report.al b/Apps/CZ/AdvancePaymentsLocalization/app/Src/Reports/SalesInvoicewithAdvCZZ.Report.al index 8249a5d9a9..d4e3fa408e 100644 --- a/Apps/CZ/AdvancePaymentsLocalization/app/Src/Reports/SalesInvoicewithAdvCZZ.Report.al +++ b/Apps/CZ/AdvancePaymentsLocalization/app/Src/Reports/SalesInvoicewithAdvCZZ.Report.al @@ -28,8 +28,8 @@ using Microsoft.Utilities; using System.EMail; using System.Globalization; using System.Security.User; -using System.Utilities; using System.Text; +using System.Utilities; report 31018 "Sales - Invoice with Adv. CZZ" { diff --git a/Apps/CZ/AdvancedLocalizationPack/app/Src/Codeunits/DimensionAutoCreateMgtCZA.Codeunit.al b/Apps/CZ/AdvancedLocalizationPack/app/Src/Codeunits/DimensionAutoCreateMgtCZA.Codeunit.al index 159732243e..d12a38745f 100644 --- a/Apps/CZ/AdvancedLocalizationPack/app/Src/Codeunits/DimensionAutoCreateMgtCZA.Codeunit.al +++ b/Apps/CZ/AdvancedLocalizationPack/app/Src/Codeunits/DimensionAutoCreateMgtCZA.Codeunit.al @@ -12,10 +12,10 @@ using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.FixedAssets.FixedAsset; using Microsoft.FixedAssets.Insurance; -using Microsoft.Manufacturing.WorkCenter; using Microsoft.HumanResources.Employee; using Microsoft.Inventory.Item; using Microsoft.Inventory.Location; +using Microsoft.Manufacturing.WorkCenter; using Microsoft.Projects.Project.Job; using Microsoft.Projects.Resources.Resource; using Microsoft.Purchases.Vendor; diff --git a/Apps/CZ/BankingDocumentsLocalization/app/Src/PageExtensions/UserSetupCZB.PageExt.al b/Apps/CZ/BankingDocumentsLocalization/app/Src/PageExtensions/UserSetupCZB.PageExt.al index 430907bb42..93e568c796 100644 --- a/Apps/CZ/BankingDocumentsLocalization/app/Src/PageExtensions/UserSetupCZB.PageExt.al +++ b/Apps/CZ/BankingDocumentsLocalization/app/Src/PageExtensions/UserSetupCZB.PageExt.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Bank.Documents; -using System.Security.User; using Microsoft.Finance.GeneralLedger.Setup; +using System.Security.User; pageextension 31283 "User Setup CZB" extends "User Setup" { diff --git a/Apps/CZ/BankingDocumentsLocalization/app/Src/Reports/SuggestPaymentsCZB.Report.al b/Apps/CZ/BankingDocumentsLocalization/app/Src/Reports/SuggestPaymentsCZB.Report.al index a514cf4492..90d16cfa26 100644 --- a/Apps/CZ/BankingDocumentsLocalization/app/Src/Reports/SuggestPaymentsCZB.Report.al +++ b/Apps/CZ/BankingDocumentsLocalization/app/Src/Reports/SuggestPaymentsCZB.Report.al @@ -473,19 +473,8 @@ report 31280 "Suggest Payments CZB" if PaymentOrderLineCZB."Payment Order Currency Code" <> PaymentOrderHeaderCZB."Currency Code" then PaymentOrderLineCZB.Validate("Payment Order Currency Code", PaymentOrderHeaderCZB."Currency Code"); end; + PaymentOrderLineCZB.SetUsePaymentDiscount(UsePaymentDisc); PaymentOrderLineCZB.Validate("Applies-to C/V/E Entry No.", CustLedgerEntry."Entry No."); - if not UsePaymentDisc and PaymentOrderLineCZB."Pmt. Discount Possible" and - (PaymentOrderHeaderCZB."Document Date" <= CustLedgerEntry."Pmt. Discount Date") - then begin - PaymentOrderLineCZB."Pmt. Discount Possible" := false; - PaymentOrderLineCZB."Pmt. Discount Date" := 0D; - PaymentOrderLineCZB."Amount (Paym. Order Currency)" += PaymentOrderLineCZB."Remaining Pmt. Disc. Possible"; - PaymentOrderLineCZB."Remaining Pmt. Disc. Possible" := 0; - PaymentOrderLineCZB.Validate("Amount (Paym. Order Currency)"); - PaymentOrderLineCZB."Original Amount" := PaymentOrderLineCZB.Amount; - PaymentOrderLineCZB."Original Amount (LCY)" := PaymentOrderLineCZB."Amount (LCY)"; - PaymentOrderLineCZB."Orig. Amount(Pay.Order Curr.)" := PaymentOrderLineCZB."Amount (Paym. Order Currency)"; - end; AddPaymentLine(); end; @@ -507,20 +496,8 @@ report 31280 "Suggest Payments CZB" if PaymentOrderLineCZB."Payment Order Currency Code" <> PaymentOrderHeaderCZB."Currency Code" then PaymentOrderLineCZB.Validate("Payment Order Currency Code", PaymentOrderHeaderCZB."Currency Code"); end; + PaymentOrderLineCZB.SetUsePaymentDiscount(UsePaymentDisc); PaymentOrderLineCZB.Validate("Applies-to C/V/E Entry No.", VendorLedgerEntry."Entry No."); - if not UsePaymentDisc and PaymentOrderLineCZB."Pmt. Discount Possible" and - (PaymentOrderHeaderCZB."Document Date" <= VendorLedgerEntry."Pmt. Discount Date") - then begin - PaymentOrderLineCZB."Pmt. Discount Possible" := false; - PaymentOrderLineCZB."Pmt. Discount Date" := 0D; - PaymentOrderLineCZB."Amount (Paym. Order Currency)" -= PaymentOrderLineCZB."Remaining Pmt. Disc. Possible"; - PaymentOrderLineCZB."Remaining Pmt. Disc. Possible" := 0; - PaymentOrderLineCZB.Validate("Amount (Paym. Order Currency)"); - PaymentOrderLineCZB."Original Amount" := PaymentOrderLineCZB.Amount; - PaymentOrderLineCZB."Original Amount (LCY)" := PaymentOrderLineCZB."Amount (LCY)"; - PaymentOrderLineCZB."Orig. Amount(Pay.Order Curr.)" := PaymentOrderLineCZB."Amount (Paym. Order Currency)"; - PaymentOrderLineCZB."Due Date" := VendorLedgerEntry."Due Date"; - end; AddPaymentLine(); end; diff --git a/Apps/CZ/BankingDocumentsLocalization/app/Src/Tables/PaymentOrderLineCZB.Table.al b/Apps/CZ/BankingDocumentsLocalization/app/Src/Tables/PaymentOrderLineCZB.Table.al index 5c23880b6b..a803d6aa4d 100644 --- a/Apps/CZ/BankingDocumentsLocalization/app/Src/Tables/PaymentOrderLineCZB.Table.al +++ b/Apps/CZ/BankingDocumentsLocalization/app/Src/Tables/PaymentOrderLineCZB.Table.al @@ -842,7 +842,7 @@ table 31257 "Payment Order Line CZB" BankAccount: Record "Bank Account"; Vendor: Record Vendor; PaymentOrderManagementCZB: Codeunit "Payment Order Management CZB"; - GLSetupRead: Boolean; + GLSetupRead, UsePaymentDiscount : Boolean; ExistEntryErr: Label 'For the field %1 in table %2 exist more than one value %3.', Comment = '%1 = FieldCaption, %2 = TableCaption, %3 = Applies-to Doc. No.'; NotExistEntryErr: Label 'For the field %1 in table %2 not exist value %3.', Comment = '%1 = FieldCaption, %2 = TableCaption, %3 = Applies-to Doc. No.'; StatusCheckSuspended: Boolean; @@ -1067,11 +1067,13 @@ table 31257 "Payment Order Line CZB" Validate("Amount (Paym. Order Currency)", GetRemainingAmountFromEntry(CustLedgerEntry)) else Validate("Amount (LCY)", GetRemainingAmountLCYFromEntry(CustLedgerEntry)); - "Pmt. Discount Date" := CustLedgerEntry."Pmt. Discount Date"; - "Pmt. Discount Possible" := true; - "Remaining Pmt. Disc. Possible" := CustLedgerEntry."Remaining Pmt. Disc. Possible"; - if ("Remaining Pmt. Disc. Possible" <> 0) and ("Pmt. Discount Date" <> 0D) then - "Due Date" := "Pmt. Discount Date"; + if UsePaymentDiscount then begin + "Pmt. Discount Date" := CustLedgerEntry.GetPmtDiscountDate(); + "Remaining Pmt. Disc. Possible" := CustLedgerEntry."Remaining Pmt. Disc. Possible"; + "Pmt. Discount Possible" := ("Remaining Pmt. Disc. Possible" <> 0) and ("Pmt. Discount Date" <> 0D); + if "Pmt. Discount Possible" then + "Due Date" := "Pmt. Discount Date"; + end; "Original Amount" := Amount; "Original Amount (LCY)" := "Amount (LCY)"; "Orig. Amount(Pay.Order Curr.)" := "Amount (Paym. Order Currency)"; @@ -1092,11 +1094,13 @@ table 31257 "Payment Order Line CZB" Validate("Amount (Paym. Order Currency)", GetRemainingAmountFromEntry(VendorLedgerEntry)) else Validate("Amount (LCY)", GetRemainingAmountLCYFromEntry(VendorLedgerEntry)); - "Pmt. Discount Date" := VendorLedgerEntry."Pmt. Discount Date"; - "Pmt. Discount Possible" := true; - "Remaining Pmt. Disc. Possible" := VendorLedgerEntry."Remaining Pmt. Disc. Possible"; - if ("Remaining Pmt. Disc. Possible" <> 0) and ("Pmt. Discount Date" <> 0D) then - "Due Date" := "Pmt. Discount Date"; + if UsePaymentDiscount then begin + "Pmt. Discount Date" := VendorLedgerEntry.GetPmtDiscountDate(); + "Remaining Pmt. Disc. Possible" := VendorLedgerEntry."Remaining Pmt. Disc. Possible"; + "Pmt. Discount Possible" := ("Remaining Pmt. Disc. Possible" <> 0) and ("Pmt. Discount Date" <> 0D); + if "Pmt. Discount Possible" then + "Due Date" := "Pmt. Discount Date"; + end; "Original Amount" := Amount; "Original Amount (LCY)" := "Amount (LCY)"; "Orig. Amount(Pay.Order Curr.)" := "Amount (Paym. Order Currency)"; @@ -1126,8 +1130,9 @@ table 31257 "Payment Order Line CZB" begin GetPaymentOrder(); CustLedgerEntry.CalcFields("Remaining Amount"); - if (CustLedgerEntry."Document Type" = CustLedgerEntry."Document Type"::Invoice) and - (PaymentOrderHeaderCZB."Document Date" <= CustLedgerEntry."Pmt. Discount Date") + if UsePaymentDiscount and + (CustLedgerEntry."Document Type" = CustLedgerEntry."Document Type"::Invoice) and + (PaymentOrderHeaderCZB."Document Date" <= CustLedgerEntry.GetPmtDiscountDate()) then exit(-(CustLedgerEntry."Remaining Amount" - CustLedgerEntry."Remaining Pmt. Disc. Possible")); exit(-CustLedgerEntry."Remaining Amount"); @@ -1135,28 +1140,21 @@ table 31257 "Payment Order Line CZB" local procedure GetRemainingAmountLCYFromEntry(CustLedgerEntry: Record "Cust. Ledger Entry"): Decimal var - CurrencyAmount: Decimal; CurrFactor: Decimal; begin GetPaymentOrder(); - CustLedgerEntry.CalcFields("Remaining Amount", "Remaining Amt. (LCY)"); - if (CustLedgerEntry."Document Type" = CustLedgerEntry."Document Type"::Invoice) and - (PaymentOrderHeaderCZB."Document Date" <= CustLedgerEntry."Pmt. Discount Date") - then begin - CurrencyAmount := -(CustLedgerEntry."Remaining Amount" - CustLedgerEntry."Remaining Pmt. Disc. Possible"); - CurrFactor := CurrencyExchangeRate.ExchangeRate(PaymentOrderHeaderCZB."Document Date", CustLedgerEntry."Currency Code"); - exit(Round(CurrencyExchangeRate.ExchangeAmtFCYToLCY(PaymentOrderHeaderCZB."Document Date", - CustLedgerEntry."Currency Code", CurrencyAmount, CurrFactor))); - end; - exit(-CustLedgerEntry."Remaining Amt. (LCY)"); + CurrFactor := CurrencyExchangeRate.ExchangeRate(PaymentOrderHeaderCZB."Document Date", CustLedgerEntry."Currency Code"); + exit(Round(CurrencyExchangeRate.ExchangeAmtFCYToLCY(PaymentOrderHeaderCZB."Document Date", + CustLedgerEntry."Currency Code", GetRemainingAmountFromEntry(CustLedgerEntry), CurrFactor))); end; local procedure GetRemainingAmountFromEntry(VendorLedgerEntry: Record "Vendor Ledger Entry"): Decimal begin GetPaymentOrder(); VendorLedgerEntry.CalcFields("Remaining Amount"); - if (VendorLedgerEntry."Document Type" = VendorLedgerEntry."Document Type"::Invoice) and - (PaymentOrderHeaderCZB."Document Date" <= VendorLedgerEntry."Pmt. Discount Date") + if UsePaymentDiscount and + (VendorLedgerEntry."Document Type" = VendorLedgerEntry."Document Type"::Invoice) and + (PaymentOrderHeaderCZB."Document Date" <= VendorLedgerEntry.GetPmtDiscountDate()) then exit(-(VendorLedgerEntry."Remaining Amount" - VendorLedgerEntry."Remaining Pmt. Disc. Possible")); exit(-VendorLedgerEntry."Remaining Amount"); @@ -1164,20 +1162,12 @@ table 31257 "Payment Order Line CZB" local procedure GetRemainingAmountLCYFromEntry(VendorLedgerEntry: Record "Vendor Ledger Entry"): Decimal var - CurrencyAmount: Decimal; CurrFactor: Decimal; begin GetPaymentOrder(); - VendorLedgerEntry.CalcFields("Remaining Amount", "Remaining Amt. (LCY)"); - if (VendorLedgerEntry."Document Type" = VendorLedgerEntry."Document Type"::Invoice) and - (PaymentOrderHeaderCZB."Document Date" <= VendorLedgerEntry."Pmt. Discount Date") - then begin - CurrencyAmount := -(VendorLedgerEntry."Remaining Amount" - VendorLedgerEntry."Remaining Pmt. Disc. Possible"); - CurrFactor := CurrencyExchangeRate.ExchangeRate(PaymentOrderHeaderCZB."Document Date", VendorLedgerEntry."Currency Code"); - exit(Round(CurrencyExchangeRate.ExchangeAmtFCYToLCY(PaymentOrderHeaderCZB."Document Date", - VendorLedgerEntry."Currency Code", CurrencyAmount, CurrFactor))); - end; - exit(-VendorLedgerEntry."Remaining Amt. (LCY)"); + CurrFactor := CurrencyExchangeRate.ExchangeRate(PaymentOrderHeaderCZB."Document Date", VendorLedgerEntry."Currency Code"); + exit(Round(CurrencyExchangeRate.ExchangeAmtFCYToLCY(PaymentOrderHeaderCZB."Document Date", + VendorLedgerEntry."Currency Code", GetRemainingAmountFromEntry(VendorLedgerEntry), CurrFactor))); end; local procedure GetRemainingAmountFromEntry(EmployeeLedgerEntry: Record "Employee Ledger Entry"): Decimal @@ -1291,6 +1281,11 @@ table 31257 "Payment Order Line CZB" OnAfterCollectSuggestedApplication(Rec, CrossApplicationBufferCZL); end; + internal procedure SetUsePaymentDiscount(NewUsePaymentDiscount: Boolean) + begin + UsePaymentDiscount := NewUsePaymentDiscount; + end; + [IntegrationEvent(false, false)] local procedure OnBeforeUpdateAmountsFromVendorLedgerEntry(var PaymentOrderLineCZB: Record "Payment Order Line CZB"; xPaymentOrderLineCZB: Record "Payment Order Line CZB"; VendorLedgerEntry: Record "Vendor Ledger Entry"; var IsHandled: Boolean) begin diff --git a/Apps/CZ/BankingDocumentsLocalization/demo data/src/DemoData/Bank/2. Master Data/CreateBankAccountCZB.Codeunit.al b/Apps/CZ/BankingDocumentsLocalization/demo data/src/DemoData/Bank/2. Master Data/CreateBankAccountCZB.Codeunit.al index 62f8ba3b7f..621975503c 100644 --- a/Apps/CZ/BankingDocumentsLocalization/demo data/src/DemoData/Bank/2. Master Data/CreateBankAccountCZB.Codeunit.al +++ b/Apps/CZ/BankingDocumentsLocalization/demo data/src/DemoData/Bank/2. Master Data/CreateBankAccountCZB.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Bank; -using Microsoft.DemoData.BankDocuments; using Microsoft.Bank.BankAccount; using Microsoft.Bank.Documents; +using Microsoft.DemoData.BankDocuments; using Microsoft.DemoData.Finance; using Microsoft.DemoData.Foundation; diff --git a/Apps/CZ/CompensationLocalization/demo data/src/DemoData/Compensations/3. Transaction Data/CreateCompensationDocCZC.Codeunit.al b/Apps/CZ/CompensationLocalization/demo data/src/DemoData/Compensations/3. Transaction Data/CreateCompensationDocCZC.Codeunit.al index d9685986e4..502987b192 100644 --- a/Apps/CZ/CompensationLocalization/demo data/src/DemoData/Compensations/3. Transaction Data/CreateCompensationDocCZC.Codeunit.al +++ b/Apps/CZ/CompensationLocalization/demo data/src/DemoData/Compensations/3. Transaction Data/CreateCompensationDocCZC.Codeunit.al @@ -5,14 +5,14 @@ namespace Microsoft.DemoData.Compensations; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Localization; using Microsoft.DemoData.Purchases; using Microsoft.DemoData.Sales; +using Microsoft.DemoTool.Helpers; using Microsoft.Finance.Compensations; using Microsoft.Finance.GeneralLedger.Journal; -using Microsoft.Sales.Receivables; using Microsoft.Purchases.Payables; +using Microsoft.Sales.Receivables; codeunit 31482 "Create Compensation Doc. CZC" { diff --git a/Apps/CZ/CompensationLocalization/demo data/src/DemoData/ContosoCompensationsCZC.Codeunit.al b/Apps/CZ/CompensationLocalization/demo data/src/DemoData/ContosoCompensationsCZC.Codeunit.al index 841e3d3517..d8691b1f48 100644 --- a/Apps/CZ/CompensationLocalization/demo data/src/DemoData/ContosoCompensationsCZC.Codeunit.al +++ b/Apps/CZ/CompensationLocalization/demo data/src/DemoData/ContosoCompensationsCZC.Codeunit.al @@ -5,11 +5,11 @@ namespace Microsoft.DemoData.Localization; -using Microsoft.Finance.Compensations; -using Microsoft.Finance.GeneralLedger.Journal; using Microsoft.DemoData.Purchase; using Microsoft.DemoData.Sales; using Microsoft.DemoTool; +using Microsoft.Finance.Compensations; +using Microsoft.Finance.GeneralLedger.Journal; using Microsoft.Purchases.Document; codeunit 31465 "Contoso Compensations CZC" diff --git a/Apps/CZ/CompensationLocalization/demo data/src/DemoData/Purchase/3. Transaction Data/CreatePurchaseDocumentCZC.Codeunit.al b/Apps/CZ/CompensationLocalization/demo data/src/DemoData/Purchase/3. Transaction Data/CreatePurchaseDocumentCZC.Codeunit.al index 35f175b394..6bf08ef4d5 100644 --- a/Apps/CZ/CompensationLocalization/demo data/src/DemoData/Purchase/3. Transaction Data/CreatePurchaseDocumentCZC.Codeunit.al +++ b/Apps/CZ/CompensationLocalization/demo data/src/DemoData/Purchase/3. Transaction Data/CreatePurchaseDocumentCZC.Codeunit.al @@ -35,7 +35,7 @@ codeunit 31484 "Create Purchase Document CZC" CreateItem: Codeunit "Create Item"; CreatePaymentMethod: Codeunit "Create Payment Method"; begin - PurchaseHeader := ContosoCompensationsCZC.InsertPurchaseHeader(Enum::"Purchase Document Type"::"Credit Memo", CreateVendor.EUGraphicDesign(), '', ContosoUtilities.AdjustDate(19020101D), 20230101D, ContosoUtilities.AdjustDate(19020101D), CreatePaymentTerms.PaymentTermsCOD(), '', '', '', 20230101D, CreatePaymentMethod.Cash()); + PurchaseHeader := ContosoCompensationsCZC.InsertPurchaseHeader(Enum::"Purchase Document Type"::"Credit Memo", CreateVendor.EUGraphicDesign(), '', ContosoUtilities.AdjustDate(19020101D), ContosoUtilities.AdjustDate(19020101D), ContosoUtilities.AdjustDate(19020101D), CreatePaymentTerms.PaymentTermsCOD(), '', '', '', ContosoUtilities.AdjustDate(19020101D), CreatePaymentMethod.Cash()); ContosoPurchase.InsertPurchaseLineWithItem(PurchaseHeader, CreateItem.AthensDesk(), 4, '', 506.6); end; diff --git a/Apps/CZ/CompensationLocalization/demo data/src/DemoData/Sales/3. Transaction Data/CreateSalesDocumentCZC.Codeunit.al b/Apps/CZ/CompensationLocalization/demo data/src/DemoData/Sales/3. Transaction Data/CreateSalesDocumentCZC.Codeunit.al index 35668a99a4..774588b133 100644 --- a/Apps/CZ/CompensationLocalization/demo data/src/DemoData/Sales/3. Transaction Data/CreateSalesDocumentCZC.Codeunit.al +++ b/Apps/CZ/CompensationLocalization/demo data/src/DemoData/Sales/3. Transaction Data/CreateSalesDocumentCZC.Codeunit.al @@ -32,7 +32,7 @@ codeunit 31483 "Create Sales Document CZC" CreateItem: Codeunit "Create Item"; CreatePaymentMethod: Codeunit "Create Payment Method"; begin - SalesHeader := ContosoSales.InsertSalesHeader(Enum::"Sales Document Type"::"Credit Memo", CreateCustomer.DomesticAdatumCorporation(), '', ContosoUtilities.AdjustDate(19020101D), 20230117D, CreatePaymentTerms.PaymentTermsCOD(), '', 20230117D, CreatePaymentMethod.Cash(), '', ContosoUtilities.AdjustDate(0D), '', ''); + SalesHeader := ContosoSales.InsertSalesHeader(Enum::"Sales Document Type"::"Credit Memo", CreateCustomer.DomesticAdatumCorporation(), '', ContosoUtilities.AdjustDate(19020101D), ContosoUtilities.AdjustDate(19020101D), CreatePaymentTerms.PaymentTermsCOD(), '', ContosoUtilities.AdjustDate(19020101D), CreatePaymentMethod.Cash(), '', ContosoUtilities.AdjustDate(0D), '', ''); ContosoSales.InsertSalesLineWithItem(SalesHeader, CreateItem.AmsterdamLamp(), 3); end; diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Bank/1. Setup Data/CreateBankAccPostGrpCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Bank/1. Setup Data/CreateBankAccPostGrpCZ.Codeunit.al index c970c31fa5..6a0c41ee99 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Bank/1. Setup Data/CreateBankAccPostGrpCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Bank/1. Setup Data/CreateBankAccPostGrpCZ.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Bank; -using Microsoft.DemoTool.Helpers; -using Microsoft.DemoData.Finance; using Microsoft.Bank.BankAccount; +using Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; codeunit 31193 "Create Bank Acc. Post. Grp CZ" { diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Bank/1. Setup Data/CreatePaymentMethodCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Bank/1. Setup Data/CreatePaymentMethodCZ.Codeunit.al index 8b2b5cf9fb..cfb97fb68c 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Bank/1. Setup Data/CreatePaymentMethodCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Bank/1. Setup Data/CreatePaymentMethodCZ.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Bank; -using Microsoft.DemoTool.Helpers; using Microsoft.Bank.Payment; +using Microsoft.DemoTool.Helpers; codeunit 31206 "Create Payment Method CZ" { diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Bank/2. Master Data/CreateBankAccountCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Bank/2. Master Data/CreateBankAccountCZ.Codeunit.al index 64b5760db9..95800340b2 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Bank/2. Master Data/CreateBankAccountCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Bank/2. Master Data/CreateBankAccountCZ.Codeunit.al @@ -5,12 +5,12 @@ namespace Microsoft.DemoData.Bank; -using Microsoft.DemoTool; -using Microsoft.DemoTool.Helpers; +using Microsoft.Bank.BankAccount; +using Microsoft.DemoData.CRM; using Microsoft.DemoData.Finance; using Microsoft.DemoData.Foundation; -using Microsoft.DemoData.CRM; -using Microsoft.Bank.BankAccount; +using Microsoft.DemoTool; +using Microsoft.DemoTool.Helpers; using Microsoft.Finance.GeneralLedger.Journal; codeunit 31194 "Create Bank Account CZ" diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/ContosoCZLocalization.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/ContosoCZLocalization.Codeunit.al index 8e0308d99d..1b86fcedec 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/ContosoCZLocalization.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/ContosoCZLocalization.Codeunit.al @@ -5,15 +5,15 @@ namespace Microsoft.DemoData.Localization; -using Microsoft.DemoTool; -using Microsoft.DemoData.Foundation; -using Microsoft.DemoData.Finance; using Microsoft.DemoData.Bank; -using Microsoft.DemoData.Sales; +using Microsoft.DemoData.Finance; using Microsoft.DemoData.FixedAsset; +using Microsoft.DemoData.Foundation; +using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Inventory; using Microsoft.DemoData.Purchases; -using Microsoft.DemoData.HumanResources; +using Microsoft.DemoData.Sales; +using Microsoft.DemoTool; codeunit 31215 "Contoso CZ Localization" { diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/CreateCZGLAccounts.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/CreateCZGLAccounts.Codeunit.al index 81981162a0..cc2281e526 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/CreateCZGLAccounts.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/CreateCZGLAccounts.Codeunit.al @@ -5,13 +5,13 @@ namespace Microsoft.DemoData.Localization; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Common; -using Microsoft.DemoData.Service; -using Microsoft.DemoData.Manufacturing; using Microsoft.DemoData.FixedAsset; using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Manufacturing; +using Microsoft.DemoData.Service; +using Microsoft.DemoTool.Helpers; using Microsoft.Finance.GeneralLedger.Account; codeunit 31212 "Create CZ GL Accounts" diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateGLAccountCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateGLAccountCZ.Codeunit.al index fcfd103d7b..2ac775568b 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateGLAccountCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateGLAccountCZ.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.GeneralLedger.Account; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Foundation.Enums; codeunit 31182 "Create G/L Account CZ" diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateGenJnlBatchCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateGenJnlBatchCZ.Codeunit.al index 7f583590be..825bb2fa27 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateGenJnlBatchCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateGenJnlBatchCZ.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Bank; +using Microsoft.DemoTool.Helpers; using Microsoft.Finance.GeneralLedger.Journal; codeunit 31200 "Create Gen. Jnl. Batch CZ" diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateGenJnlTemplateCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateGenJnlTemplateCZ.Codeunit.al index 357357c10f..d5ba7a072d 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateGenJnlTemplateCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateGenJnlTemplateCZ.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Foundation; +using Microsoft.DemoTool.Helpers; using Microsoft.Finance.GeneralLedger.Journal; using Microsoft.Finance.GeneralLedger.Reports; diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateGeneralLedgerSetupCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateGeneralLedgerSetupCZ.Codeunit.al index 65bf40dec1..296dd57957 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateGeneralLedgerSetupCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateGeneralLedgerSetupCZ.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.GeneralLedger.Setup; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Foundation; +using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Finance.VAT.Setup; codeunit 31186 "Create General Ledger Setup CZ" diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateVATPostingGroupsCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateVATPostingGroupsCZ.Codeunit.al index 46a3a732d7..c75894b810 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateVATPostingGroupsCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateVATPostingGroupsCZ.Codeunit.al @@ -7,8 +7,8 @@ namespace Microsoft.DemoData.Finance; using Microsoft.DemoTool; using Microsoft.DemoTool.Helpers; -using Microsoft.Finance.VAT.Setup; using Microsoft.Finance.VAT.Clause; +using Microsoft.Finance.VAT.Setup; using Microsoft.Foundation.Enums; codeunit 31189 "Create Vat Posting Groups CZ" diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateVATReportSetupCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateVATReportSetupCZ.Codeunit.al index 836ad8746d..70b71a7af7 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateVATReportSetupCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateVATReportSetupCZ.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.VAT.Reporting; using Microsoft.DemoData.Foundation; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.VAT.Reporting; codeunit 31281 "Create VAT Report Setup CZ" { diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateVATStatementCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateVATStatementCZ.Codeunit.al index e5d7e4524f..537ddfa9df 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateVATStatementCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Finance/1. Setup Data/CreateVATStatementCZ.Codeunit.al @@ -6,8 +6,8 @@ namespace Microsoft.DemoData.Finance; using Microsoft.DemoTool; -using Microsoft.Finance.VAT.Reporting; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.VAT.Reporting; using Microsoft.Foundation.Enums; codeunit 31282 "Create VAT Statement CZ" diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/FixedAsset/1. Setup Data/CreateFAPostingGroupCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/FixedAsset/1. Setup Data/CreateFAPostingGroupCZ.Codeunit.al index 98682d9015..ddbd61c2dc 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/FixedAsset/1. Setup Data/CreateFAPostingGroupCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/FixedAsset/1. Setup Data/CreateFAPostingGroupCZ.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.FixedAsset; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; using Microsoft.FixedAssets.FixedAsset; codeunit 31185 "Create FA Posting Group CZ" diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Foundation/1. Setup Data/CreateCompanyInformationCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Foundation/1. Setup Data/CreateCompanyInformationCZ.Codeunit.al index 761b9a0709..71fceffbd6 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Foundation/1. Setup Data/CreateCompanyInformationCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Foundation/1. Setup Data/CreateCompanyInformationCZ.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.Foundation.Company; using Microsoft.DemoData.Bank; +using Microsoft.Foundation.Company; codeunit 31195 "Create Company Information CZ" { diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Foundation/1. Setup Data/CreateCustomReportLayoutCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Foundation/1. Setup Data/CreateCustomReportLayoutCZ.Codeunit.al index 2c0a04fd09..d4ade39a9b 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Foundation/1. Setup Data/CreateCustomReportLayoutCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Foundation/1. Setup Data/CreateCustomReportLayoutCZ.Codeunit.al @@ -6,11 +6,11 @@ namespace Microsoft.DemoData.Foundation; using Microsoft.Foundation.Reporting; -using System.Reflection; -using Microsoft.Sales.Reminder; using Microsoft.Purchases.Document; using Microsoft.Sales.Document; using Microsoft.Sales.History; +using Microsoft.Sales.Reminder; +using System.Reflection; codeunit 31294 "Create Custom Report Layout CZ" { diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Foundation/1. Setup Data/CreateStatRepSetupCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Foundation/1. Setup Data/CreateStatRepSetupCZ.Codeunit.al index be811169bb..65454489a9 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Foundation/1. Setup Data/CreateStatRepSetupCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Foundation/1. Setup Data/CreateStatRepSetupCZ.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.Foundation.Company; using Microsoft.DemoData.Finance; using Microsoft.DemoData.HumanResources; using Microsoft.Finance.VAT.Reporting; +using Microsoft.Foundation.Company; codeunit 31280 "Create Stat. Rep. Setup CZ" { diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Inventory/1. Setup Data/CreateInvtMvmtTemplCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Inventory/1. Setup Data/CreateInvtMvmtTemplCZ.Codeunit.al index efa6653f0c..6c44e90840 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Inventory/1. Setup Data/CreateInvtMvmtTemplCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Inventory/1. Setup Data/CreateInvtMvmtTemplCZ.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Journal; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; +using Microsoft.Inventory.Journal; codeunit 31202 "Create Invt. Mvmt. Templ. CZ" { diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Inventory/1. Setup Data/CreateInvtPostingSetupCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Inventory/1. Setup Data/CreateInvtPostingSetupCZ.Codeunit.al index e4c28a7a72..560903ecb8 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Inventory/1. Setup Data/CreateInvtPostingSetupCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Inventory/1. Setup Data/CreateInvtPostingSetupCZ.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Item; using Microsoft.DemoData.Finance; +using Microsoft.Inventory.Item; codeunit 31201 "Create Invt. Posting Setup CZ" { diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Inventory/2. Master Data/CreateItemChargeCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Inventory/2. Master Data/CreateItemChargeCZ.Codeunit.al index baa58c46ec..79a46e108b 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Inventory/2. Master Data/CreateItemChargeCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Inventory/2. Master Data/CreateItemChargeCZ.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Item; using Microsoft.DemoData.Finance; +using Microsoft.Inventory.Item; codeunit 31299 "Create Item Charge CZ" { diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Purchases/1. Setup Data/CreateVendorPostingGroupCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Purchases/1. Setup Data/CreateVendorPostingGroupCZ.Codeunit.al index aecd2efb17..48032e04dc 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Purchases/1. Setup Data/CreateVendorPostingGroupCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Purchases/1. Setup Data/CreateVendorPostingGroupCZ.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; using Microsoft.DemoData.Finance; +using Microsoft.Purchases.Vendor; codeunit 31204 "Create Vendor Posting Group CZ" { diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Purchases/2. Master Data/CreateVendorCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Purchases/2. Master Data/CreateVendorCZ.Codeunit.al index 3220bf9a7e..fb0f649fd2 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Purchases/2. Master Data/CreateVendorCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Purchases/2. Master Data/CreateVendorCZ.Codeunit.al @@ -6,9 +6,9 @@ namespace Microsoft.DemoData.Purchases; using Microsoft.CRM.Contact; -using Microsoft.DemoTool; using Microsoft.DemoData.Finance; using Microsoft.DemoData.Foundation; +using Microsoft.DemoTool; using Microsoft.Purchases.Vendor; codeunit 31298 "Create Vendor CZ" diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Sales/1. Setup Data/CreateCustPostingGroupCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Sales/1. Setup Data/CreateCustPostingGroupCZ.Codeunit.al index 8df641c1a5..02fa1cd53a 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Sales/1. Setup Data/CreateCustPostingGroupCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/Sales/1. Setup Data/CreateCustPostingGroupCZ.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoData.Finance; +using Microsoft.Sales.Customer; codeunit 31205 "Create Cust. Posting Group CZ" { diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoTool/Contoso Helpers/ContosoPostingSetupCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoTool/Contoso Helpers/ContosoPostingSetupCZ.Codeunit.al index 5e3faa6f7e..ba8d15415a 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoTool/Contoso Helpers/ContosoPostingSetupCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoTool/Contoso Helpers/ContosoPostingSetupCZ.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoTool.Helpers; -using Microsoft.Finance.VAT.Setup; using Microsoft.Finance.VAT.Clause; +using Microsoft.Finance.VAT.Setup; using Microsoft.Foundation.Enums; codeunit 31219 "Contoso Posting Setup CZ" diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/DataClassEvalHandlerCZL.Codeunit.al b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/DataClassEvalHandlerCZL.Codeunit.al index c5210460f9..2269605252 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/DataClassEvalHandlerCZL.Codeunit.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/DataClassEvalHandlerCZL.Codeunit.al @@ -17,8 +17,8 @@ using Microsoft.Finance.ReceivablesPayables; using Microsoft.Finance.Registration; using Microsoft.Finance.VAT.Calculation; using Microsoft.Finance.VAT.Ledger; -using Microsoft.Finance.VAT.Setup; using Microsoft.Finance.VAT.Reporting; +using Microsoft.Finance.VAT.Setup; using Microsoft.FixedAssets.Depreciation; using Microsoft.Foundation.AuditCodes; using Microsoft.Foundation.Company; @@ -46,13 +46,14 @@ using Microsoft.Sales.FinanceCharge; using Microsoft.Sales.History; using Microsoft.Sales.Receivables; using Microsoft.Sales.Reminder; +using Microsoft.Sales.Setup; using Microsoft.Service.Document; using Microsoft.Service.History; using System.Environment; using System.IO; +using System.Privacy; using System.Security.Encryption; using System.Security.User; -using System.Privacy; codeunit 11710 "Data Class. Eval. Handler CZL" { @@ -123,6 +124,7 @@ codeunit 11710 "Data Class. Eval. Handler CZL" SalesInvoiceHeader: Record "Sales Invoice Header"; SalesInvoiceLine: Record "Sales Invoice Line"; SalesLine: Record "Sales Line"; + SalesReceivablesSetup: Record "Sales & Receivables Setup"; SalesShipmentHeader: Record "Sales Shipment Header"; SalesShipmentLine: Record "Sales Shipment Line"; ServiceCrMemoHeader: Record "Service Cr.Memo Header"; @@ -440,6 +442,8 @@ codeunit 11710 "Data Class. Eval. Handler CZL" DataClassificationMgt.SetFieldToNormal(Database::"Sales Invoice Line", SalesInvoiceLine.FieldNo("Tariff No. CZL")); DataClassificationMgt.SetFieldToNormal(Database::"Sales Line", SalesLine.FieldNo("Negative CZL")); DataClassificationMgt.SetFieldToNormal(Database::"Sales Line", SalesLine.FieldNo("Tariff No. CZL")); + DataClassificationMgt.SetFieldToNormal(Database::"Sales & Receivables Setup", SalesReceivablesSetup.FieldNo("Print QR Payment CZL")); + DataClassificationMgt.SetFieldToNormal(Database::"Sales & Receivables Setup", SalesReceivablesSetup.FieldNo("Show VAT Corr When Posting CZL")); DataClassificationMgt.SetFieldToNormal(Database::"Sales Shipment Header", SalesShipmentHeader.FieldNo("Registration No. CZL")); DataClassificationMgt.SetFieldToNormal(Database::"Sales Shipment Header", SalesShipmentHeader.FieldNo("Tax Registration No. CZL")); DataClassificationMgt.SetFieldToNormal(Database::"Sales Shipment Header", SalesShipmentHeader.FieldNo("EU 3-Party Intermed. Role CZL")); diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/EETServiceManagementCZL.Codeunit.al b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/EETServiceManagementCZL.Codeunit.al index c69f7482f7..fef9f41c1a 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/EETServiceManagementCZL.Codeunit.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/EETServiceManagementCZL.Codeunit.al @@ -290,8 +290,11 @@ codeunit 31116 "EET Service Management CZL" var EETServiceSetupCZL: Record "EET Service Setup CZL"; SOAPWSRequestManagementCZL: Codeunit "SOAP WS Request Management CZL"; + IncorrectUrlErr: Label 'The Service URL is incorrectly set up on EET Service Setup page.'; begin EETServiceSetupCZL.Get(); + if (EETServiceSetupCZL."Service URL" <> GetWebServiceURLTxt()) and (EETServiceSetupCZL."Service URL" <> GetWebServicePlayGroundURLTxt()) then + Error(IncorrectUrlErr); SOAPWSRequestManagementCZL.SetTimeout(EETServiceSetupCZL."Limit Response Time"); if SOAPWSRequestManagementCZL.SendRequestToWebService(EETServiceSetupCZL."Service URL", RequestContentXmlDocument) then begin XmlDocument.ReadFrom(SOAPWSRequestManagementCZL.GetResponseAsText(), ResponseXmlDocument); diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/GenJnlCheckLineHandlerCZL.Codeunit.al b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/GenJnlCheckLineHandlerCZL.Codeunit.al index edb01653f8..722237f496 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/GenJnlCheckLineHandlerCZL.Codeunit.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/GenJnlCheckLineHandlerCZL.Codeunit.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.GeneralLedger.Journal; -using Microsoft.Finance.VAT.Setup; using Microsoft.Finance.VAT.Calculation; +using Microsoft.Finance.VAT.Setup; using Microsoft.Foundation.Enums; using Microsoft.Purchases.Vendor; using Microsoft.Sales.Customer; diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/GenJnlPostLineHandlerCZL.Codeunit.al b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/GenJnlPostLineHandlerCZL.Codeunit.al index 1d5e9c4499..52b0f17af3 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/GenJnlPostLineHandlerCZL.Codeunit.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/GenJnlPostLineHandlerCZL.Codeunit.al @@ -16,8 +16,8 @@ using Microsoft.Foundation.AuditCodes; using Microsoft.HumanResources.Employee; using Microsoft.Purchases.Vendor; using Microsoft.Sales.Customer; -using System.Utilities; using System.Security.User; +using System.Utilities; codeunit 31315 "Gen.Jnl. Post Line Handler CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/InstructionMgtCZL.Codeunit.al b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/InstructionMgtCZL.Codeunit.al index 67d924fb37..246bcc1b24 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/InstructionMgtCZL.Codeunit.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/InstructionMgtCZL.Codeunit.al @@ -12,40 +12,62 @@ codeunit 31028 "Instruction Mgt. CZL" var InstructionMgt: Codeunit "Instruction Mgt."; - WarnVATLCYDocumentTxt: Label 'Warn about VAT in local currency.'; - WarnVATLCYDocumentsDescriptionTxt: Label 'Show warning to check the VAT amount in local currency if the purchase document (invoice, credit memo) has been posted in a foreign currency.'; - + WarnVATLCYPurchDocumentTxt: Label 'Warn about VAT in local currency in purchase.'; + WarnVATLCYSalesDocumentTxt: Label 'Warn about VAT in local currency in sales.'; + WarnVATLCYPurchDocumentsDescriptionTxt: Label 'Show warning to check the VAT amount in local currency if the purchase document (invoice, credit memo) has been posted in a foreign currency.'; + WarnVATLCYSalesDocumentsDescriptionTxt: Label 'Show warning to check the VAT amount in local currency if the sales document (invoice, credit memo) has been posted in a foreign currency.'; procedure ShowVATLCYCorrectionConfirmationMessageCode(): Code[50] begin exit(UpperCase('ShowVATLCYCorrectionConfirmationMessage')); end; + procedure ShowVATLCYCorrectionConfirmationMessageForSalesCode(): Code[50] + begin + exit(UpperCase('ShowVATLCYCorrectionConfirmationMessageForSales')); + end; + procedure GetOpeningVATLCYCorrectionNotificationId(): Guid begin exit('F75390d9-F39A-4621-8982-61AB7DA2EE6C'); end; + procedure GetOpeningVATLCYCorrectionForSalesNotificationId(): Guid + begin + exit('1E9C0A99-46A9-4873-AAEB-27D195AA9430'); + end; + [EventSubscriber(ObjectType::Page, 1518, 'OnInitializingNotificationWithDefaultState', '', false, false)] local procedure OnInitializingNotificationWithDefaultState() var MyNotifications: Record "My Notifications"; begin MyNotifications.InsertDefault(GetOpeningVATLCYCorrectionNotificationId(), - WarnVATLCYDocumentTxt, - WarnVATLCYDocumentsDescriptionTxt, + WarnVATLCYPurchDocumentTxt, + WarnVATLCYPurchDocumentsDescriptionTxt, InstructionMgt.IsEnabled(GetOpeningVATLCYCorrectionNotificationId())); + MyNotifications.InsertDefault(GetOpeningVATLCYCorrectionForSalesNotificationId(), + WarnVATLCYSalesDocumentTxt, + WarnVATLCYSalesDocumentsDescriptionTxt, + InstructionMgt.IsEnabled(GetOpeningVATLCYCorrectionForSalesNotificationId())); end; [EventSubscriber(ObjectType::Table, 1518, 'OnStateChanged', '', false, false)] local procedure OnStateChanged(NotificationId: Guid; NewEnabledState: Boolean) + begin + if NewEnabledState then + InstructionMgt.EnableMessageForCurrentUser(GetInstructionType(NotificationId)) + else + InstructionMgt.DisableMessageForCurrentUser(GetInstructionType(NotificationId)); + end; + + local procedure GetInstructionType(NotificationId: Guid): Code[50] begin case NotificationId of GetOpeningVATLCYCorrectionNotificationId(): - if NewEnabledState then - InstructionMgt.EnableMessageForCurrentUser(ShowVATLCYCorrectionConfirmationMessageCode()) - else - InstructionMgt.DisableMessageForCurrentUser(ShowVATLCYCorrectionConfirmationMessageCode()); + exit(ShowVATLCYCorrectionConfirmationMessageCode()); + GetOpeningVATLCYCorrectionForSalesNotificationId(): + exit(ShowVATLCYCorrectionConfirmationMessageForSalesCode()) end; end; } diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/UpgradeApplicationCZL.Codeunit.al b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/UpgradeApplicationCZL.Codeunit.al index a1e0e2b375..ee77e28da5 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/UpgradeApplicationCZL.Codeunit.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/UpgradeApplicationCZL.Codeunit.al @@ -186,6 +186,7 @@ codeunit 31017 "Upgrade Application CZL" #if CLEAN28 UpgradeUseVATReturnPeriodInsteadOfVATPeriod(); #endif + UpgradeOriginalVATAmountsACYInVATEntries(); end; local procedure UpgradeReplaceVATDateCZL() @@ -644,6 +645,25 @@ codeunit 31017 "Upgrade Application CZL" UpgradeTag.SetUpgradeTag(UpgradeTagDefinitionsCZL.GetOriginalVATAmountsInVATEntriesUpgradeTag()); end; + local procedure UpgradeOriginalVATAmountsACYInVATEntries() + var + VATEntry: Record "VAT Entry"; + begin + if UpgradeTag.HasUpgradeTag(UpgradeTagDefinitionsCZL.GetOriginalVATAmountsACYInVATEntriesUpgradeTag()) then + exit; + + VATEntry.SetFilter("Non-Deductible VAT %", '<>%1', 0); + VATEntry.SetLoadFields("Entry No.", "Additional-Currency Base", "Additional-Currency Amount", "Non-Deductible VAT Base ACY", "Non-Deductible VAT Amount ACY"); + if VATEntry.FindSet() then + repeat + VATEntry."Original VAT Base ACY CZL" := VATEntry.CalcOriginalVATBaseACYCZL(); + VATEntry."Original VAT Amount ACY CZL" := VATEntry.CalcOriginalVATAmountACYCZL(); + if VATEntry.Modify() then; + until VATEntry.Next() = 0; + + UpgradeTag.SetUpgradeTag(UpgradeTagDefinitionsCZL.GetOriginalVATAmountsACYInVATEntriesUpgradeTag()); + end; + local procedure UpgradeEnableNonDeductibleVATCZ() var VATEntry: Record "VAT Entry"; diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/UpgradeTagDefinitionsCZL.Codeunit.al b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/UpgradeTagDefinitionsCZL.Codeunit.al index d33c8a48fb..08a5ef1794 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/UpgradeTagDefinitionsCZL.Codeunit.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/UpgradeTagDefinitionsCZL.Codeunit.al @@ -49,6 +49,7 @@ codeunit 31016 "Upgrade Tag Definitions CZL" PerCompanyUpgradeTags.Add(SetEnableNonDeductibleVATCZUpgradeTag()); PerCompanyUpgradeTags.Add(GetUseW1RegistrationNumberFromSalesDocUpgradeTag()); PerCompanyUpgradeTags.Add(GetUseVATReturnPeriodInsteadOfVATPeriodUpgradeTag()); + PerCompanyUpgradeTags.Add(GetOriginalVATAmountsACYInVATEntriesUpgradeTag()); end; procedure GetDataVersion174PerDatabaseUpgradeTag(): Code[250] @@ -217,4 +218,9 @@ codeunit 31016 "Upgrade Tag Definitions CZL" begin exit('CZL-579504-UseVATReturnPeriodInsteadOfVATPeriodUpgrade-20250909'); end; + + procedure GetOriginalVATAmountsACYInVATEntriesUpgradeTag(): Code[250] + begin + exit('CZL-616614-OriginalVATAmountsACYInVATEntriesTag-20251217'); + end; } diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATCorrNotifHandlerCZL.Codeunit.al b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATCorrNotifHandlerCZL.Codeunit.al index 67d7b781fa..09efd54743 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATCorrNotifHandlerCZL.Codeunit.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATCorrNotifHandlerCZL.Codeunit.al @@ -10,6 +10,7 @@ using Microsoft.Purchases.Document; using Microsoft.Purchases.History; using Microsoft.Sales.Document; using Microsoft.Sales.History; +using Microsoft.Sales.Setup; using Microsoft.Utilities; codeunit 31029 "VAT Corr. Notif. Handler CZL" @@ -111,6 +112,7 @@ codeunit 31029 "VAT Corr. Notif. Handler CZL" local procedure ShowVATLCYCorrectionAfterPostingSalesInvoice(var SalesHeader: Record "Sales Header"; var IsHandled: Boolean) var SalesInvoiceHeader: Record "Sales Invoice Header"; + SalesReceivablesSetup: Record "Sales & Receivables Setup"; InstructionMgt: Codeunit "Instruction Mgt."; InstructionMgtCZL: Codeunit "Instruction Mgt. CZL"; OfficeManagement: Codeunit "Office Management"; @@ -126,11 +128,13 @@ codeunit 31029 "VAT Corr. Notif. Handler CZL" if not SalesInvoiceHeader.IsVATLCYCorrectionAllowedCZL() then exit; + SalesReceivablesSetup.Get(); + if OfficeManagement.IsAvailable() then PopUpVATLCYCorrectionCZL := true else - if InstructionMgt.IsEnabled(InstructionMgtCZL.ShowVATLCYCorrectionConfirmationMessageCode()) then - if InstructionMgt.ShowConfirm(StrSubstNo(OpenInvoiceVATLCYCorrectionQst, SalesInvoiceHeader."No."), InstructionMgtCZL.ShowVATLCYCorrectionConfirmationMessageCode()) then + if InstructionMgt.IsEnabled(InstructionMgtCZL.ShowVATLCYCorrectionConfirmationMessageForSalesCode()) and SalesReceivablesSetup."Show VAT Corr When Posting CZL" then + if InstructionMgt.ShowConfirm(StrSubstNo(OpenInvoiceVATLCYCorrectionQst, SalesInvoiceHeader."No."), InstructionMgtCZL.ShowVATLCYCorrectionConfirmationMessageForSalesCode()) then PopUpVATLCYCorrectionCZL := true; if not PopUpVATLCYCorrectionCZL then @@ -156,6 +160,7 @@ codeunit 31029 "VAT Corr. Notif. Handler CZL" local procedure ShowVATLCYCorrectionAfterPostingSalesCreditMemo(var SalesHeader: Record "Sales Header"; var IsHandled: Boolean) var SalesCrMemoHeader: Record "Sales Cr.Memo Header"; + SalesReceivablesSetup: Record "Sales & Receivables Setup"; InstructionMgt: Codeunit "Instruction Mgt."; InstructionMgtCZL: Codeunit "Instruction Mgt. CZL"; OfficeManagement: Codeunit "Office Management"; @@ -170,11 +175,13 @@ codeunit 31029 "VAT Corr. Notif. Handler CZL" if not SalesCrMemoHeader.IsVATLCYCorrectionAllowedCZL() then exit; + SalesReceivablesSetup.Get(); + if OfficeManagement.IsAvailable() then PopUpVATLCYCorrectionCZL := true else - if InstructionMgt.IsEnabled(InstructionMgtCZL.ShowVATLCYCorrectionConfirmationMessageCode()) then - if InstructionMgt.ShowConfirm(StrSubstNo(OpenCrMemoVATLCYCorrectionQst, SalesCrMemoHeader."No."), InstructionMgtCZL.ShowVATLCYCorrectionConfirmationMessageCode()) then + if InstructionMgt.IsEnabled(InstructionMgtCZL.ShowVATLCYCorrectionConfirmationMessageForSalesCode()) and SalesReceivablesSetup."Show VAT Corr When Posting CZL" then + if InstructionMgt.ShowConfirm(StrSubstNo(OpenCrMemoVATLCYCorrectionQst, SalesCrMemoHeader."No."), InstructionMgtCZL.ShowVATLCYCorrectionConfirmationMessageForSalesCode()) then PopUpVATLCYCorrectionCZL := true; if not PopUpVATLCYCorrectionCZL then diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATCtrlReportMgtCZL.Codeunit.al b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATCtrlReportMgtCZL.Codeunit.al index bbd8759f77..b46d18dfa7 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATCtrlReportMgtCZL.Codeunit.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATCtrlReportMgtCZL.Codeunit.al @@ -68,7 +68,7 @@ codeunit 31102 "VAT Ctrl. Report Mgt. CZL" if VATCtrlReportHeaderCZL."No." = '' then exit; - GeneralLedgerSetup.Get(); + GeneralLedgerSetup.GetRecordOnce(); StatutoryReportingSetupCZL.Get(); if ProcessType = ProcessType::Rewrite then DeleteVATCtrlReportLines(VATCtrlReportHeaderCZL, StartDate, EndDate); @@ -320,9 +320,7 @@ codeunit 31102 "VAT Ctrl. Report Mgt. CZL" var Base, Amount : Decimal; begin - if GeneralLedgerSetup."Functional Currency CZL" and - (GeneralLedgerSetup."Additional Reporting Currency" <> '') - then begin + if GeneralLedgerSetup.IsFunctionalCurrencyEnabledCZL() then begin Base := TempVATEntry."Additional-Currency Base"; Amount := TempVATEntry."Additional-Currency Amount"; end else begin @@ -811,7 +809,7 @@ codeunit 31102 "VAT Ctrl. Report Mgt. CZL" if VATCtrlReportHeaderCZL."No." = '' then exit; - GeneralLedgerSetup.Get(); + GeneralLedgerSetup.GetRecordOnce(); TempVATCtrlReportBufferCZL.Reset(); TempVATCtrlReportBufferCZL.DeleteAll(); @@ -1052,7 +1050,7 @@ codeunit 31102 "VAT Ctrl. Report Mgt. CZL" if VATCtrlReportHeaderCZL."No." = '' then exit; - GeneralLedgerSetup.Get(); + GeneralLedgerSetup.GetRecordOnce(); Temp1VATCtrlReportBufferCZL.Reset(); Temp1VATCtrlReportBufferCZL.DeleteAll(); @@ -1312,8 +1310,8 @@ codeunit 31102 "VAT Ctrl. Report Mgt. CZL" TempVATEntry.Init(); TempVATEntry := VATEntry; if TempVATEntry."Original VAT Entry No. CZL" <> 0 then begin - TempVATEntry.Base := TempVATEntry."Original VAT Base CZL"; - TempVATEntry.Amount := TempVATEntry."Original VAT Amount CZL"; + TempVATEntry.Base := TempVATEntry.GetOriginalVATBaseCZL(); + TempVATEntry.Amount := TempVATEntry.GetOriginalVATAmountCZL(); end; OnBeforeInsertTempVATEntryForForPeriod(TempVATEntry); TempVATEntry.Insert(); diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATEntryHandlerCZL.Codeunit.al b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATEntryHandlerCZL.Codeunit.al index 57130a3d5a..be8db6e465 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATEntryHandlerCZL.Codeunit.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATEntryHandlerCZL.Codeunit.al @@ -15,6 +15,8 @@ codeunit 11741 "VAT Entry Handler CZL" exit; Rec."Original VAT Base CZL" := Rec.CalcOriginalVATBaseCZL(); Rec."Original VAT Amount CZL" := Rec.CalcOriginalVATAmountCZL(); + Rec."Original VAT Base ACY CZL" := Rec.CalcOriginalVATBaseACYCZL(); + Rec."Original VAT Amount ACY CZL" := Rec.CalcOriginalVATAmountACYCZL(); end; [EventSubscriber(ObjectType::Table, Database::"VAT Entry", 'OnBeforeValidateEvent', 'EU 3-Party Trade', false, false)] diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATLCYCorrectionPostCZL.Codeunit.al b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATLCYCorrectionPostCZL.Codeunit.al index 1327e834e5..820978772f 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATLCYCorrectionPostCZL.Codeunit.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATLCYCorrectionPostCZL.Codeunit.al @@ -4,9 +4,6 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Calculation; -#if not CLEAN28 -using Microsoft.Finance.VAT.Reporting; -#endif using Microsoft.Finance.Dimension; using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Finance.GeneralLedger.Journal; @@ -15,6 +12,9 @@ using Microsoft.Finance.GeneralLedger.Posting; using Microsoft.Finance.GeneralLedger.Preview; using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Finance.VAT.Ledger; +#if not CLEAN28 +using Microsoft.Finance.VAT.Reporting; +#endif using Microsoft.Finance.VAT.Setup; using Microsoft.Foundation.AuditCodes; diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATOrigDocVATDateMgtCZL.Codeunit.al b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATOrigDocVATDateMgtCZL.Codeunit.al index c37b10b9a5..157d1d3904 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATOrigDocVATDateMgtCZL.Codeunit.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATOrigDocVATDateMgtCZL.Codeunit.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT; -using Microsoft.Finance.VAT.Reporting; using Microsoft.Finance.VAT.Ledger; +using Microsoft.Finance.VAT.Reporting; using Microsoft.Purchases.History; using System.Security.User; @@ -28,16 +28,21 @@ codeunit 11733 "VAT Orig.Doc.VAT Date Mgt. CZL" procedure UpdateOrigDocVATDate(VATEntry: Record "VAT Entry") var + TempRelatedVATEntry: Record "VAT Entry" temporary; UserSetupAdvManagementCZL: Codeunit "User Setup Adv. Management CZL"; begin UserSetupAdvManagementCZL.CheckOrigDocVATDateChanging(); CheckVATEntry(VATEntry); CheckVATCtrlReport(VATEntry); - if not ConfirmAffectedVATEntries(VATEntry) then - Error(''); + GetRelatedVATEntries(VATEntry, TempRelatedVATEntry); + TempRelatedVATEntry.Reset(); + if not TempRelatedVATEntry.IsEmpty() then begin + if not ConfirmRelatedVATEntries(TempRelatedVATEntry) then + Error(''); - UpdateVATEntries(VATEntry); + UpdateRelatedVATEntries(VATEntry, TempRelatedVATEntry); + end; UpdatePostedDocuments(VATEntry); UpdateVATCtrlReportLines(VATEntry); @@ -69,14 +74,10 @@ codeunit 11733 "VAT Orig.Doc.VAT Date Mgt. CZL" Error(VATControlReportClosedErr, VATCtrlReportHeaderCZL."No."); end; - local procedure ConfirmAffectedVATEntries(VATEntry: Record "VAT Entry"): Boolean + local procedure ConfirmRelatedVATEntries(var TempRelatedVATEntry: Record "VAT Entry" temporary): Boolean var - TempRelatedVATEntry: Record "VAT Entry" temporary; ConfVATEntUpdateMgtCZL: Codeunit "Conf. VAT Ent. Update Mgt. CZL"; begin - GetRelatedVATEntries(VATEntry, TempRelatedVATEntry); - if TempRelatedVATEntry.IsEmpty() then - exit(true); exit(ConfVATEntUpdateMgtCZL.GetResponseOrDefault(TempRelatedVATEntry, true)); end; @@ -90,6 +91,12 @@ codeunit 11733 "VAT Orig.Doc.VAT Date Mgt. CZL" AddToBuffer(RelatedVATEntry, TempRelatedVATEntry); until RelatedVATEntry.Next() = 0; + VATEntry.CalcFields("VAT Ctrl. Report No. CZL", "VAT Ctrl. Report Line No. CZL"); + if (VATEntry."VAT Ctrl. Report No. CZL" = '') and + (VATEntry."VAT Ctrl. Report Line No. CZL" = 0) + then + exit; + FilterRelatedVATEntriesByVATCtrlReport(VATEntry, RelatedVATEntry); if RelatedVATEntry.FindSet() then repeat @@ -105,14 +112,17 @@ codeunit 11733 "VAT Orig.Doc.VAT Date Mgt. CZL" TempVATEntry.Insert(); end; - local procedure UpdateVATEntries(VATEntry: Record "VAT Entry") + local procedure UpdateRelatedVATEntries(VATEntry: Record "VAT Entry"; var TempRelatedVATEntry: Record "VAT Entry" temporary) var RelatedVATEntry: Record "VAT Entry"; begin - FilterRelatedVATEntries(VATEntry, RelatedVATEntry); - RelatedVATEntry.ModifyAll("Original Doc. VAT Date CZL", VATEntry."Original Doc. VAT Date CZL"); - FilterRelatedVATEntriesByVATCtrlReport(VATEntry, RelatedVATEntry); - RelatedVATEntry.ModifyAll("Original Doc. VAT Date CZL", VATEntry."Original Doc. VAT Date CZL"); + TempRelatedVATEntry.Reset(); + if TempRelatedVATEntry.FindSet() then + repeat + RelatedVATEntry.Get(TempRelatedVATEntry."Entry No."); + RelatedVATEntry."Original Doc. VAT Date CZL" := VATEntry."Original Doc. VAT Date CZL"; + RelatedVATEntry.Modify(true); + until TempRelatedVATEntry.Next() = 0; end; local procedure UpdatePostedDocuments(VATEntry: Record "VAT Entry") @@ -120,7 +130,7 @@ codeunit 11733 "VAT Orig.Doc.VAT Date Mgt. CZL" PurchInvHeader: Record "Purch. Inv. Header"; PurchCrMemoHeader: Record "Purch. Cr. Memo Hdr."; begin - if VATEntry.Type = VATEntry.Type::Purchase then + if VATEntry.Type <> VATEntry.Type::Purchase then exit; case VATEntry."Document Type" of diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATReportArchiveMgtCZL.Codeunit.al b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATReportArchiveMgtCZL.Codeunit.al index 08fa7e1102..62b4a8be6d 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATReportArchiveMgtCZL.Codeunit.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATReportArchiveMgtCZL.Codeunit.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Reporting; -using System.Utilities; using Microsoft.Foundation.Attachment; +using System.Utilities; codeunit 31173 "VAT Report Archive Mgt CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATReportSubmitCZL.Codeunit.al b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATReportSubmitCZL.Codeunit.al index 33499ca64e..26d698e997 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATReportSubmitCZL.Codeunit.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATReportSubmitCZL.Codeunit.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Reporting; -using System.Utilities; using Microsoft.Foundation.Attachment; +using System.Utilities; codeunit 31170 "VAT Report Submit CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATStatementCalculationCZL.Codeunit.al b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATStatementCalculationCZL.Codeunit.al index b4588407e6..93ab891268 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATStatementCalculationCZL.Codeunit.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VATStatementCalculationCZL.Codeunit.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Reporting; -using Microsoft.Finance.VAT.Ledger; using Microsoft.Finance.GeneralLedger.Ledger; +using Microsoft.Finance.VAT.Ledger; codeunit 11723 "VAT Statement Calculation CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VendEntryEditHandlerCZL.Codeunit.al b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VendEntryEditHandlerCZL.Codeunit.al index aec06cd301..65cb8597e9 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VendEntryEditHandlerCZL.Codeunit.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Codeunits/VendEntryEditHandlerCZL.Codeunit.al @@ -1,7 +1,7 @@ namespace Microsoft.Purchases.Payables; -using Microsoft.Finance.VAT.Ledger; using Microsoft.Finance.GeneralLedger.Ledger; +using Microsoft.Finance.VAT.Ledger; codeunit 31135 "Vend. Entry-Edit Handler CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/PageExtensions/FinanceManagerRCCZL.PageExt.al b/Apps/CZ/CoreLocalizationPack/app/Src/PageExtensions/FinanceManagerRCCZL.PageExt.al index 51706763c1..80acb3a2d7 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/PageExtensions/FinanceManagerRCCZL.PageExt.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/PageExtensions/FinanceManagerRCCZL.PageExt.al @@ -5,18 +5,18 @@ namespace Microsoft.Finance.RoleCenters; using Microsoft.Bank.Reports; -using Microsoft.Purchases.Reports; -using Microsoft.Purchases.Payables; using Microsoft.Finance; -using Microsoft.Inventory.Reports; -using Microsoft.Inventory.History; -using Microsoft.Purchases.Vendor; -using Microsoft.Sales.Reports; using Microsoft.Finance.GeneralLedger.Posting; using Microsoft.Finance.GeneralLedger.Reports; using Microsoft.Finance.VAT.Reporting; -using Microsoft.Sales.Receivables; +using Microsoft.Inventory.History; using Microsoft.Inventory.Reconciliation; +using Microsoft.Inventory.Reports; +using Microsoft.Purchases.Payables; +using Microsoft.Purchases.Reports; +using Microsoft.Purchases.Vendor; +using Microsoft.Sales.Receivables; +using Microsoft.Sales.Reports; pageextension 11793 "Finance Manager RC CZL" extends "Finance Manager Role Center" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/PageExtensions/SalesReceivablesSetupCZL.PageExt.al b/Apps/CZ/CoreLocalizationPack/app/Src/PageExtensions/SalesReceivablesSetupCZL.PageExt.al index a8914ff367..b84719034c 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/PageExtensions/SalesReceivablesSetupCZL.PageExt.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/PageExtensions/SalesReceivablesSetupCZL.PageExt.al @@ -16,6 +16,10 @@ pageextension 11718 "Sales & Receivables Setup CZL" extends "Sales & Receivables ApplicationArea = Basic, Suite; ToolTip = 'Specifies whether to print a code for QR payment on Sales Invoices and Advances'; } + field("Show VAT Corr When Posting CZL"; Rec."Show VAT Corr When Posting CZL") + { + ApplicationArea = Basic, Suite; + } } } } diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/PageExtensions/VATEntriesCZL.PageExt.al b/Apps/CZ/CoreLocalizationPack/app/Src/PageExtensions/VATEntriesCZL.PageExt.al index 3140905ea3..39a8ba3d49 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/PageExtensions/VATEntriesCZL.PageExt.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/PageExtensions/VATEntriesCZL.PageExt.al @@ -96,6 +96,18 @@ pageextension 11755 "VAT Entries CZL" extends "VAT Entries" ToolTip = 'Specifies the VAT amount of the entry before the deduction by the coefficient.'; Visible = NonDeductibleVATVisible; } + field("Original VAT Base ACY CZL"; Rec."Original VAT Base ACY CZL") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the additional-currency VAT base of the entry before the deduction by the coefficient.'; + Visible = NonDeductibleVATVisible; + } + field("Original VAT Amount ACY CZL"; Rec."Original VAT Amount ACY CZL") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the additional-currency VAT amount of the entry before the deduction by the coefficient.'; + Visible = NonDeductibleVATVisible; + } field("Non-Deductible VAT % CZL"; Rec."Non-Deductible VAT %") { ApplicationArea = Basic, Suite; diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/PageExtensions/VATEntriesPreviewCZL.PageExt.al b/Apps/CZ/CoreLocalizationPack/app/Src/PageExtensions/VATEntriesPreviewCZL.PageExt.al index 4248062151..a0410ef0df 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/PageExtensions/VATEntriesPreviewCZL.PageExt.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/PageExtensions/VATEntriesPreviewCZL.PageExt.al @@ -101,6 +101,18 @@ pageextension 11759 "VAT Entries Preview CZL" extends "VAT Entries Preview" ToolTip = 'Specifies the VAT amount of the entry before the deduction by the coefficient.'; Visible = NonDeductibleVATVisible; } + field("Original VAT Base ACY CZL"; Rec."Original VAT Base ACY CZL") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the additional-currency VAT base of the entry before the deduction by the coefficient.'; + Visible = NonDeductibleVATVisible; + } + field("Original VAT Amount ACY CZL"; Rec."Original VAT Amount ACY CZL") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the additional-currency VAT amount of the entry before the deduction by the coefficient.'; + Visible = NonDeductibleVATVisible; + } field("Non-Deductible VAT % CZL"; Rec."Non-Deductible VAT %") { ApplicationArea = Basic, Suite; diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Pages/AccountantCZRoleCenterCZL.Page.al b/Apps/CZ/CoreLocalizationPack/app/Src/Pages/AccountantCZRoleCenterCZL.Page.al index dea8b26aa4..c2abe2c5c0 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Pages/AccountantCZRoleCenterCZL.Page.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Pages/AccountantCZRoleCenterCZL.Page.al @@ -68,15 +68,15 @@ using Microsoft.Sales.Customer; using Microsoft.Sales.Document; using Microsoft.Sales.FinanceCharge; using Microsoft.Sales.History; -using Microsoft.Sales.Reminder; using Microsoft.Sales.Receivables; +using Microsoft.Sales.Reminder; using Microsoft.Sales.Reports; using System.Automation; using System.Email; using System.Environment; +using System.Integration.PowerBI; using System.Threading; using System.Visualization; -using System.Integration.PowerBI; page 31210 "Accountant CZ Role Center CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Pages/UserSetupCardCZL.Page.al b/Apps/CZ/CoreLocalizationPack/app/Src/Pages/UserSetupCardCZL.Page.al index 724b73cb94..ba9932f647 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Pages/UserSetupCardCZL.Page.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Pages/UserSetupCardCZL.Page.al @@ -130,6 +130,30 @@ page 31198 "User Setup Card CZL" actions { + area(Processing) + { + group(Functions) + { + Caption = 'Functions'; + + action("Copy User Setup CZL") + { + ApplicationArea = Basic, Suite; + Caption = 'Copy User Setup'; + Ellipsis = true; + Image = Copy; + ToolTip = 'Allows to copy user setup from user to another user.'; + + trigger OnAction() + var + CopyUserSetupCZL: Report "Copy User Setup CZL"; + begin + CopyUserSetupCZL.SetFromUserId(Rec."User ID"); + CopyUserSetupCZL.RunModal(); + end; + } + } + } area(navigation) { group("U&ser Check") @@ -183,6 +207,9 @@ page 31198 "User Setup Card CZL" } area(Promoted) { + actionref(CopyUserSetup_Promoted; "Copy User Setup CZL") + { + } actionref(Lines_Promoted; Lines) { } diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Pages/VATLCYCorrectionCZL.Page.al b/Apps/CZ/CoreLocalizationPack/app/Src/Pages/VATLCYCorrectionCZL.Page.al index f5b5f1300d..cfdf47359c 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Pages/VATLCYCorrectionCZL.Page.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Pages/VATLCYCorrectionCZL.Page.al @@ -4,13 +4,13 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Calculation; -using Microsoft.Sales.Receivables; using Microsoft.Finance.VAT.Ledger; using Microsoft.Finance.VAT.Setup; using Microsoft.Foundation.AuditCodes; using Microsoft.Purchases.History; using Microsoft.Purchases.Payables; using Microsoft.Sales.History; +using Microsoft.Sales.Receivables; page 31025 "VAT LCY Correction CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Pages/VATStatementPreviewCZL.Page.al b/Apps/CZ/CoreLocalizationPack/app/Src/Pages/VATStatementPreviewCZL.Page.al index a4a2ff119c..b1f6575c66 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Pages/VATStatementPreviewCZL.Page.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Pages/VATStatementPreviewCZL.Page.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Reporting; -using System.Text; using Microsoft.Finance.GeneralLedger.Setup; +using System.Text; page 31135 "VAT Statement Preview CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Pages/VIESDeclarationCZL.Page.al b/Apps/CZ/CoreLocalizationPack/app/Src/Pages/VIESDeclarationCZL.Page.al index eeef3a9f06..d3e2fe596e 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Pages/VIESDeclarationCZL.Page.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Pages/VIESDeclarationCZL.Page.al @@ -4,9 +4,9 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Reporting; +using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Foundation.Attachment; using Microsoft.Foundation.Company; -using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Utilities; page 31138 "VIES Declaration CZL" diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Pages/VIESDeclarationSubformCZL.Page.al b/Apps/CZ/CoreLocalizationPack/app/Src/Pages/VIESDeclarationSubformCZL.Page.al index 9d530adcf1..b2cc67d90c 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Pages/VIESDeclarationSubformCZL.Page.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Pages/VIESDeclarationSubformCZL.Page.al @@ -4,9 +4,9 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Reporting; +using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Purchases.Vendor; using Microsoft.Sales.Customer; -using Microsoft.Finance.GeneralLedger.Setup; page 31139 "VIES Declaration Subform CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/ReportExtensions/PurchaseCreditMemoCZL.ReportExt.al b/Apps/CZ/CoreLocalizationPack/app/Src/ReportExtensions/PurchaseCreditMemoCZL.ReportExt.al index c30b86f56e..6f90f73cad 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/ReportExtensions/PurchaseCreditMemoCZL.ReportExt.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/ReportExtensions/PurchaseCreditMemoCZL.ReportExt.al @@ -1,9 +1,9 @@ namespace Microsoft.Purchases.History; +using Microsoft.Finance.Currency; using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Finance.VAT.Calculation; using System.Utilities; -using Microsoft.Finance.Currency; reportextension 11705 "Purchase Credit Memo CZL" extends "Purchase - Credit Memo" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/CloseIncomeStatementCZL.Report.al b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/CloseIncomeStatementCZL.Report.al index 6088fae2f8..d596580962 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/CloseIncomeStatementCZL.Report.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/CloseIncomeStatementCZL.Report.al @@ -12,8 +12,8 @@ using Microsoft.Finance.GeneralLedger.Ledger; using Microsoft.Finance.GeneralLedger.Posting; using Microsoft.Foundation.AuditCodes; using Microsoft.Foundation.NoSeries; -using Microsoft.Inventory.Setup; using Microsoft.Foundation.Period; +using Microsoft.Inventory.Setup; using Microsoft.Utilities; using System.Globalization; using System.Utilities; diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/DocumentationforVATCZL.Report.al b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/DocumentationforVATCZL.Report.al index 4c7f4dc4c0..23b70ae502 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/DocumentationforVATCZL.Report.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/DocumentationforVATCZL.Report.al @@ -222,8 +222,8 @@ report 11757 "Documentation for VAT CZL" CountrySubTotalAmt[1] += "VAT Entry".Base; CountrySubTotalAmt[2] += "VAT Entry".Amount; - CountrySubTotalAmt[3] += "VAT Entry"."Original VAT Base CZL"; - CountrySubTotalAmt[4] += "VAT Entry"."Original VAT Amount CZL"; + CountrySubTotalAmt[3] += "VAT Entry".GetOriginalVATBaseCZL(); + CountrySubTotalAmt[4] += "VAT Entry".GetOriginalVATAmountCZL(); CountrySubTotalAmt[5] += "VAT Entry".CalcDeductibleVATBaseCZL(); SetRange(Number, 0); @@ -242,8 +242,8 @@ report 11757 "Documentation for VAT CZL" begin VATEntrySubtotalAmt[1] += Base; VATEntrySubtotalAmt[2] += Amount; - VATEntrySubtotalAmt[3] += "Original VAT Base CZL"; - VATEntrySubtotalAmt[4] += "Original VAT Amount CZL"; + VATEntrySubtotalAmt[3] += GetOriginalVATBaseCZL(); + VATEntrySubtotalAmt[4] += GetOriginalVATAmountCZL(); VATEntrySubtotalAmt[5] += CalcDeductibleVATBaseCZL(); case "VAT Posting Setup"."VAT Calculation Type" of @@ -399,6 +399,8 @@ report 11757 "Documentation for VAT CZL" "VAT Entry"."Non-Deductible VAT Amount" += VATEntry."Non-Deductible VAT Amount"; "VAT Entry"."Original VAT Base CZL" += VATEntry."Original VAT Base CZL"; "VAT Entry"."Original VAT Amount CZL" += VATEntry."Original VAT Amount CZL"; + "VAT Entry"."Original VAT Base ACY CZL" += VATEntry."Original VAT Base ACY CZL"; + "VAT Entry"."Original VAT Amount ACY CZL" += VATEntry."Original VAT Amount ACY CZL"; "VAT Entry".Modify(); end; until VATEntry.Next() = 0; @@ -607,15 +609,15 @@ report 11757 "Documentation for VAT CZL" begin VATBasePurchTotal[1] += VATEntry.Base; VATAmountPurchTotal[1] += VATEntry.Amount; - VATBasePurchTotal[2] += VATEntry."Original VAT Base CZL"; - VATAmountPurchTotal[2] += VATEntry."Original VAT Amount CZL"; + VATBasePurchTotal[2] += VATEntry.GetOriginalVATBaseCZL(); + VATAmountPurchTotal[2] += VATEntry.GetOriginalVATAmountCZL(); VATBasePurchTotal[3] += VATEntry.CalcDeductibleVATBaseCZL(); if VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Reverse Charge VAT" then begin - VATBaseReverseChargeVATTotal[1] -= VATEntry."Original VAT Base CZL"; - VATAmountReverseChargeVATTotal[1] -= VATEntry."Original VAT Amount CZL"; - VATBaseReverseChargeVATTotal[2] -= VATEntry."Original VAT Base CZL"; - VATAmountReverseChargeVATTotal[2] -= VATEntry."Original VAT Amount CZL"; + VATBaseReverseChargeVATTotal[1] -= VATEntry.GetOriginalVATBaseCZL(); + VATAmountReverseChargeVATTotal[1] -= VATEntry.GetOriginalVATAmountCZL(); + VATBaseReverseChargeVATTotal[2] -= VATEntry.GetOriginalVATBaseCZL(); + VATAmountReverseChargeVATTotal[2] -= VATEntry.GetOriginalVATAmountCZL(); VATBaseReverseChargeVATTotal[3] -= VATEntry.CalcDeductibleVATBaseCZL(); end; end; @@ -623,8 +625,8 @@ report 11757 "Documentation for VAT CZL" begin VATBaseSaleTotal[1] += VATEntry.Base; VATAmountSaleTotal[1] += VATEntry.Amount; - VATBaseSaleTotal[2] += VATEntry."Original VAT Base CZL"; - VATAmountSaleTotal[2] += VATEntry."Original VAT Amount CZL"; + VATBaseSaleTotal[2] += VATEntry.GetOriginalVATBaseCZL(); + VATAmountSaleTotal[2] += VATEntry.GetOriginalVATAmountCZL(); VATBaseSaleTotal[3] += VATEntry.CalcDeductibleVATBaseCZL(); end; end; diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/ExportVATCtrlDialogCZL.Report.al b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/ExportVATCtrlDialogCZL.Report.al index 6d9e587ac1..5215e90f3b 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/ExportVATCtrlDialogCZL.Report.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/ExportVATCtrlDialogCZL.Report.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Reporting; -using Microsoft.Foundation.Company; using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Foundation.Company; report 31104 "Export VAT Ctrl. Dialog CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/ExportVATStmtDialogCZL.Report.al b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/ExportVATStmtDialogCZL.Report.al index e8b2df9c35..93aeb21fb9 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/ExportVATStmtDialogCZL.Report.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/ExportVATStmtDialogCZL.Report.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Reporting; -using Microsoft.Foundation.Company; using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Foundation.Company; using System.Utilities; report 31003 "Export VAT Stmt. Dialog CZL" diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/SalesInvoiceCZL.Report.al b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/SalesInvoiceCZL.Report.al index 463af05b8b..3d0d7c2530 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/SalesInvoiceCZL.Report.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/SalesInvoiceCZL.Report.al @@ -27,8 +27,8 @@ using Microsoft.Utilities; using System.Email; using System.Globalization; using System.Security.User; -using System.Utilities; using System.Text; +using System.Utilities; report 31189 "Sales Invoice CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/ServiceInvoiceCZL.Report.al b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/ServiceInvoiceCZL.Report.al index db6f5cc562..33234b87d9 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/ServiceInvoiceCZL.Report.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/ServiceInvoiceCZL.Report.al @@ -5,6 +5,7 @@ namespace Microsoft.Service.History; using Microsoft.Bank.BankAccount; +using Microsoft.CRM.Team; using Microsoft.Finance.Currency; using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Finance.VAT.Calculation; @@ -17,15 +18,14 @@ using Microsoft.HumanResources.Employee; using Microsoft.Sales.Customer; using Microsoft.Sales.Receivables; using Microsoft.Sales.Reminder; -using Microsoft.Service.Setup; using Microsoft.Sales.Setup; +using Microsoft.Service.Setup; +using Microsoft.Utilities; using System.Email; using System.Globalization; using System.Security.User; -using System.Utilities; -using Microsoft.CRM.Team; -using Microsoft.Utilities; using System.Text; +using System.Utilities; report 31197 "Service Invoice CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/ServiceShipmentCZL.Report.al b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/ServiceShipmentCZL.Report.al index a521d36ea6..64933e7978 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/ServiceShipmentCZL.Report.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/ServiceShipmentCZL.Report.al @@ -4,18 +4,18 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Service.History; +using Microsoft.CRM.Team; using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Foundation.Address; using Microsoft.Foundation.Company; using Microsoft.HumanResources.Employee; using Microsoft.Inventory.Tracking; using Microsoft.Service.Setup; +using Microsoft.Utilities; using System.Email; using System.Globalization; using System.Security.User; using System.Utilities; -using Microsoft.CRM.Team; -using Microsoft.Utilities; report 31199 "Service Shipment CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/VATCtrlReportTestCZL.Report.al b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/VATCtrlReportTestCZL.Report.al index b0a20401cf..f1f723b933 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/VATCtrlReportTestCZL.Report.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/VATCtrlReportTestCZL.Report.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Reporting; -using System.Utilities; using Microsoft.Finance.GeneralLedger.Setup; +using System.Utilities; report 31103 "VAT Ctrl. Report - Test CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/VIESDeclarationTestCZL.Report.al b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/VIESDeclarationTestCZL.Report.al index b89a635b83..a3c31c79c9 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Reports/VIESDeclarationTestCZL.Report.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Reports/VIESDeclarationTestCZL.Report.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Reporting; -using System.Utilities; using Microsoft.Finance.GeneralLedger.Setup; +using System.Utilities; report 31064 "VIES Declaration - Test CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/EmployeeLedgerEntryCZL.TableExt.al b/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/EmployeeLedgerEntryCZL.TableExt.al index d89738c944..279a8ff483 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/EmployeeLedgerEntryCZL.TableExt.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/EmployeeLedgerEntryCZL.TableExt.al @@ -5,8 +5,8 @@ namespace Microsoft.HumanResources.Payables; using Microsoft.Bank.Setup; -using Microsoft.HumanResources.Employee; using Microsoft.Finance.ReceivablesPayables; +using Microsoft.HumanResources.Employee; tableextension 11790 "Employee Ledger Entry CZL" extends "Employee Ledger Entry" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/GeneralLedgerSetupCZL.TableExt.al b/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/GeneralLedgerSetupCZL.TableExt.al index 7164c9558e..d949f5032a 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/GeneralLedgerSetupCZL.TableExt.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/GeneralLedgerSetupCZL.TableExt.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.GeneralLedger.Setup; -using Microsoft.Finance.FinancialReports; using Microsoft.Finance.Currency; +using Microsoft.Finance.FinancialReports; using Microsoft.Finance.GeneralLedger.Journal; using Microsoft.Finance.GeneralLedger.Ledger; using Microsoft.Finance.VAT.Calculation; @@ -209,6 +209,11 @@ tableextension 11713 "General Ledger Setup CZL" extends "General Ledger Setup" exit((GetAdditionalCurrencyCodeCZL() <> '') and not IsManufacturingUsed()); end; + internal procedure IsFunctionalCurrencyEnabledCZL(): Boolean + begin + exit((GetAdditionalCurrencyCodeCZL() <> '') and "Functional Currency CZL"); + end; + procedure GetAdditionalCurrencyFactorCZL(Date: Date): Decimal var CurrencyExchangeRate: Record "Currency Exchange Rate"; diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/SalesReceivablesSetupCZL.TableExt.al b/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/SalesReceivablesSetupCZL.TableExt.al index e5e82ec620..e62666ad72 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/SalesReceivablesSetupCZL.TableExt.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/SalesReceivablesSetupCZL.TableExt.al @@ -34,6 +34,12 @@ tableextension 11714 "Sales & Receivables Setup CZL" extends "Sales & Receivable CreatePrintQROnPremFontkNotification(); end; } + field(11783; "Show VAT Corr When Posting CZL"; Boolean) + { + Caption = 'Show VAT Correction When Posting'; + DataClassification = CustomerContent; + ToolTip = 'Specifies whether the page for possible correction of the VAT amount in the local currency will be shown when posting a sales document in a foreign currency. If this is not activated, the VAT amount can only be changed from the posted sales document.'; + } } local procedure CreatePrintQROnPremFontkNotification() var diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/UserSetupCZL.TableExt.al b/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/UserSetupCZL.TableExt.al index b22582fdea..f2b22af493 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/UserSetupCZL.TableExt.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/UserSetupCZL.TableExt.al @@ -147,6 +147,9 @@ tableextension 11717 "User Setup CZL" extends "User Setup" UserSetup.Init(); UserSetup := Rec; + UserSetup."Employee No. CZL" := OldUserSetup."Employee No. CZL"; + UserSetup."Phone No." := OldUserSetup."Phone No."; + UserSetup."E-Mail" := OldUserSetup."E-Mail"; UserSetup."User Name CZL" := OldUserSetup."User Name CZL"; UserSetup."User ID" := ToUserId; if not UserSetup.Insert() then diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/VATEntryCZL.TableExt.al b/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/VATEntryCZL.TableExt.al index f611c9fe21..cb09ba4cd3 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/VATEntryCZL.TableExt.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/VATEntryCZL.TableExt.al @@ -4,8 +4,9 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Ledger; -using Microsoft.Finance.VAT.Calculation; +using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Finance.VAT; +using Microsoft.Finance.VAT.Calculation; using Microsoft.Finance.VAT.Reporting; tableextension 11737 "VAT Entry CZL" extends "VAT Entry" @@ -59,6 +60,18 @@ tableextension 11737 "VAT Entry CZL" extends "VAT Entry" Editable = false; DataClassification = CustomerContent; } + field(11735; "Original VAT Base ACY CZL"; Decimal) + { + Caption = 'Original VAT Base ACY'; + Editable = false; + DataClassification = CustomerContent; + } + field(11736; "Original VAT Amount ACY CZL"; Decimal) + { + Caption = 'Original VAT Amount ACY'; + Editable = false; + DataClassification = CustomerContent; + } field(11781; "Registration No. CZL"; Text[20]) { Caption = 'Registration No.'; @@ -261,7 +274,11 @@ tableextension 11737 "VAT Entry CZL" extends "VAT Entry" end; procedure CalcDeductibleVATBaseCZL(): Decimal + var + GeneralLedgerSetup: Record "General Ledger Setup"; begin + if GeneralLedgerSetup.IsAdditionalCurrencyEnabledCZL() then + exit("Original VAT Base ACY CZL" + "Non-Deductible VAT Base ACY"); exit("Original VAT Base CZL" + "Non-Deductible VAT Amount"); end; @@ -275,6 +292,30 @@ tableextension 11737 "VAT Entry CZL" extends "VAT Entry" exit(Amount + "Non-Deductible VAT Amount"); end; + internal procedure CalcOriginalVATBaseACYCZL(): Decimal + begin + exit("Additional-Currency Base" + "Non-Deductible VAT Base ACY"); + end; + + internal procedure CalcOriginalVATAmountACYCZL(): Decimal + begin + exit("Additional-Currency Amount" + "Non-Deductible VAT Amount ACY"); + end; + + internal procedure GetOriginalVATBaseCZL(): Decimal + var + GeneralLedgerSetup: Record "General Ledger Setup"; + begin + exit(GeneralLedgerSetup.IsAdditionalCurrencyEnabledCZL() ? "Original VAT Base ACY CZL" : "Original VAT Base CZL"); + end; + + internal procedure GetOriginalVATAmountCZL(): Decimal + var + GeneralLedgerSetup: Record "General Ledger Setup"; + begin + exit(GeneralLedgerSetup.IsAdditionalCurrencyEnabledCZL() ? "Original VAT Amount ACY CZL" : "Original VAT Amount CZL"); + end; + [IntegrationEvent(false, false)] local procedure OnAfterSetVATStatementLineFiltersCZL(var VATEntry: Record "VAT Entry"; VATStatementLine: Record "VAT Statement Line") begin diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/VATPostingSetupCZL.TableExt.al b/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/VATPostingSetupCZL.TableExt.al index 1ad427ce10..4542d60a89 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/VATPostingSetupCZL.TableExt.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/VATPostingSetupCZL.TableExt.al @@ -4,9 +4,9 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Setup; -using Microsoft.Finance.VAT.Calculation; using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Finance.ReceivablesPayables; +using Microsoft.Finance.VAT.Calculation; using Microsoft.Finance.VAT.Reporting; tableextension 11738 "VAT Posting Setup CZL" extends "VAT Posting Setup" diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/VATReportHeaderCZL.TableExt.al b/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/VATReportHeaderCZL.TableExt.al index ff3c5ee8b9..dbe583c021 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/VATReportHeaderCZL.TableExt.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/VATReportHeaderCZL.TableExt.al @@ -4,10 +4,10 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Reporting; -using System.Environment.Configuration; using Microsoft.Finance.VAT.Ledger; -using System.Utilities; using Microsoft.Utilities; +using System.Environment.Configuration; +using System.Utilities; tableextension 31060 "VAT Report Header CZL" extends "VAT Report Header" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/VATReturnPeriodCZL.TableExt.al b/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/VATReturnPeriodCZL.TableExt.al index f0175b52ee..ddf0278ac4 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/VATReturnPeriodCZL.TableExt.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/TableExtensions/VATReturnPeriodCZL.TableExt.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Reporting; -using System.Environment.Configuration; using Microsoft.Utilities; +using System.Environment.Configuration; tableextension 31066 "VAT Return Period CZL" extends "VAT Return Period" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Tables/StatutoryReportingSetupCZL.Table.al b/Apps/CZ/CoreLocalizationPack/app/Src/Tables/StatutoryReportingSetupCZL.Table.al index 428fea8cce..67fa99bea2 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Tables/StatutoryReportingSetupCZL.Table.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Tables/StatutoryReportingSetupCZL.Table.al @@ -5,12 +5,12 @@ namespace Microsoft.Foundation.Company; using Microsoft.Finance.VAT.Reporting; +using Microsoft.Foundation.Address; using Microsoft.Foundation.NoSeries; using Microsoft.Inventory.Intrastat; using Microsoft.Purchases.Vendor; using System.Email; using System.Reflection; -using Microsoft.Foundation.Address; table 31105 "Statutory Reporting Setup CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Tables/VATCtrlReportBufferCZL.Table.al b/Apps/CZ/CoreLocalizationPack/app/Src/Tables/VATCtrlReportBufferCZL.Table.al index dd90e102cb..59920ad234 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Tables/VATCtrlReportBufferCZL.Table.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Tables/VATCtrlReportBufferCZL.Table.al @@ -4,12 +4,12 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Reporting; +using Microsoft.Finance.Currency; +using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Finance.VAT.Setup; using Microsoft.Foundation.Enums; using Microsoft.Purchases.Vendor; using Microsoft.Sales.Customer; -using Microsoft.Finance.GeneralLedger.Setup; -using Microsoft.Finance.Currency; table 31109 "VAT Ctrl. Report Buffer CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Tables/VATCtrlReportLineCZL.Table.al b/Apps/CZ/CoreLocalizationPack/app/Src/Tables/VATCtrlReportLineCZL.Table.al index d73f26e19a..5b5b567744 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Tables/VATCtrlReportLineCZL.Table.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Tables/VATCtrlReportLineCZL.Table.al @@ -4,12 +4,12 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Reporting; +using Microsoft.Finance.Currency; +using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Finance.VAT.Setup; using Microsoft.Foundation.Navigate; -using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Purchases.Vendor; using Microsoft.Sales.Customer; -using Microsoft.Finance.Currency; table 31107 "VAT Ctrl. Report Line CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Tables/VIESDeclarationHeaderCZL.Table.al b/Apps/CZ/CoreLocalizationPack/app/Src/Tables/VIESDeclarationHeaderCZL.Table.al index 1d471b156d..5b2c558a74 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Tables/VIESDeclarationHeaderCZL.Table.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Tables/VIESDeclarationHeaderCZL.Table.al @@ -4,10 +4,10 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Reporting; +using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Foundation.Address; using Microsoft.Foundation.Attachment; using Microsoft.Foundation.Company; -using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Foundation.NoSeries; using Microsoft.HumanResources.Employee; using System.IO; diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/Tables/VIESDeclarationLineCZL.Table.al b/Apps/CZ/CoreLocalizationPack/app/Src/Tables/VIESDeclarationLineCZL.Table.al index 69151e1e1b..631c38311c 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/Tables/VIESDeclarationLineCZL.Table.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/Tables/VIESDeclarationLineCZL.Table.al @@ -4,11 +4,11 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Reporting; +using Microsoft.Finance.Currency; +using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Finance.VAT.Ledger; using Microsoft.Finance.VAT.Setup; using Microsoft.Foundation.Address; -using Microsoft.Finance.Currency; -using Microsoft.Finance.GeneralLedger.Setup; table 31076 "VIES Declaration Line CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/app/Src/XmlPorts/VATStatementDPHDP3CZL.XmlPort.al b/Apps/CZ/CoreLocalizationPack/app/Src/XmlPorts/VATStatementDPHDP3CZL.XmlPort.al index 5c23236801..608731775d 100644 --- a/Apps/CZ/CoreLocalizationPack/app/Src/XmlPorts/VATStatementDPHDP3CZL.XmlPort.al +++ b/Apps/CZ/CoreLocalizationPack/app/Src/XmlPorts/VATStatementDPHDP3CZL.XmlPort.al @@ -4,10 +4,10 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Finance.VAT.Reporting; +using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Foundation.Company; using System.Environment; using System.Utilities; -using Microsoft.Finance.GeneralLedger.Setup; xmlport 11766 "VAT Statement DPHDP3 CZL" { diff --git a/Apps/CZ/CoreLocalizationPack/test/Src/TestInitializeHandlerCZL.Codeunit.al b/Apps/CZ/CoreLocalizationPack/test/Src/TestInitializeHandlerCZL.Codeunit.al index 53d3ec0ca3..b757d70e03 100644 --- a/Apps/CZ/CoreLocalizationPack/test/Src/TestInitializeHandlerCZL.Codeunit.al +++ b/Apps/CZ/CoreLocalizationPack/test/Src/TestInitializeHandlerCZL.Codeunit.al @@ -41,7 +41,8 @@ codeunit 148104 "Test Initialize Handler CZL" TryBindSuppConfVATEntUpdate(); UpdateUserSetup(); end; - 137161: // SCM Warehouse Orders + 137161, // SCM Warehouse Orders + 139989: // Sub. Subcontracting Test DisableVATDateUsage(); end; diff --git a/Apps/CZ/FixedAssetLocalization/app/Src/Codeunits/FAInsertGLAccHandlerCZF.Codeunit.al b/Apps/CZ/FixedAssetLocalization/app/Src/Codeunits/FAInsertGLAccHandlerCZF.Codeunit.al index 35c1d4c33e..ff46f970e9 100644 --- a/Apps/CZ/FixedAssetLocalization/app/Src/Codeunits/FAInsertGLAccHandlerCZF.Codeunit.al +++ b/Apps/CZ/FixedAssetLocalization/app/Src/Codeunits/FAInsertGLAccHandlerCZF.Codeunit.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.FixedAssets; -using Microsoft.FixedAssets.Ledger; using Microsoft.FixedAssets.FixedAsset; +using Microsoft.FixedAssets.Ledger; codeunit 31234 "FA Insert G/L Acc. Handler CZF" { diff --git a/Apps/CZ/FixedAssetLocalization/app/Src/TableExtensions/FAPostingGroupCZF.TableExt.al b/Apps/CZ/FixedAssetLocalization/app/Src/TableExtensions/FAPostingGroupCZF.TableExt.al index 424dfbf477..2bce0c6139 100644 --- a/Apps/CZ/FixedAssetLocalization/app/Src/TableExtensions/FAPostingGroupCZF.TableExt.al +++ b/Apps/CZ/FixedAssetLocalization/app/Src/TableExtensions/FAPostingGroupCZF.TableExt.al @@ -36,6 +36,14 @@ tableextension 31245 "FA Posting Group CZF" extends "FA Posting Group" } } + trigger OnAfterDelete() + var + FAExtendedPostingGroupCZF: Record "FA Extended Posting Group CZF"; + begin + FAExtendedPostingGroupCZF.SetRange("FA Posting Group Code", Code); + FAExtendedPostingGroupCZF.DeleteAll(); + end; + var PostingSetupManagementCZF: Codeunit PostingSetupManagement; diff --git a/Apps/CZ/FixedAssetLocalization/demo data/src/ContosoFixedAssetCZF.Codeunit.al b/Apps/CZ/FixedAssetLocalization/demo data/src/ContosoFixedAssetCZF.Codeunit.al index 81abd00d56..6e691eecdb 100644 --- a/Apps/CZ/FixedAssetLocalization/demo data/src/ContosoFixedAssetCZF.Codeunit.al +++ b/Apps/CZ/FixedAssetLocalization/demo data/src/ContosoFixedAssetCZF.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoTool.Helpers; -using Microsoft.FixedAssets.Depreciation; using Microsoft.FixedAssets; +using Microsoft.FixedAssets.Depreciation; codeunit 31216 "Contoso Fixed Asset CZF" { diff --git a/Apps/CZ/FixedAssetLocalization/test/Src/TestInitializeHandlerCZF.Codeunit.al b/Apps/CZ/FixedAssetLocalization/test/Src/TestInitializeHandlerCZF.Codeunit.al index 9717f37e37..6fdecdd2bf 100644 --- a/Apps/CZ/FixedAssetLocalization/test/Src/TestInitializeHandlerCZF.Codeunit.al +++ b/Apps/CZ/FixedAssetLocalization/test/Src/TestInitializeHandlerCZF.Codeunit.al @@ -11,7 +11,8 @@ codeunit 148116 "Test Initialize Handler CZF" 134450, // "ERM Fixed Assets Journal" 134451, // "ERM Fixed Assets" 137026, // "Sales Correct Cr. Memo" - 139550: // "Intrastat Report Test" + 139550, // "Intrastat Report Test" + 148219: // "Sust. Value Chain Fixed Asset" UpdateFASetup(); end; end; diff --git a/Apps/CZ/IntrastatCZ/app/src/Codeunits/DataClassEvalHandlerCZ.Codeunit.al b/Apps/CZ/IntrastatCZ/app/src/Codeunits/DataClassEvalHandlerCZ.Codeunit.al index c0144fce54..62062856e5 100644 --- a/Apps/CZ/IntrastatCZ/app/src/Codeunits/DataClassEvalHandlerCZ.Codeunit.al +++ b/Apps/CZ/IntrastatCZ/app/src/Codeunits/DataClassEvalHandlerCZ.Codeunit.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Inventory.Intrastat; -using Microsoft.Foundation.Shipping; using Microsoft.FixedAssets.FixedAsset; +using Microsoft.Foundation.Shipping; using Microsoft.Inventory.Item; using Microsoft.Inventory.Journal; using Microsoft.Inventory.Ledger; diff --git a/Apps/CZ/IntrastatCZ/app/src/Codeunits/UpgradeApplicationCZ.Codeunit.al b/Apps/CZ/IntrastatCZ/app/src/Codeunits/UpgradeApplicationCZ.Codeunit.al index 8ec35cb8f6..c11e6c0be3 100644 --- a/Apps/CZ/IntrastatCZ/app/src/Codeunits/UpgradeApplicationCZ.Codeunit.al +++ b/Apps/CZ/IntrastatCZ/app/src/Codeunits/UpgradeApplicationCZ.Codeunit.al @@ -4,6 +4,7 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.Inventory.Intrastat; +using Microsoft.Foundation.Shipping; using Microsoft.Inventory.Transfer; using Microsoft.Purchases.Archive; using Microsoft.Purchases.Document; @@ -14,9 +15,8 @@ using Microsoft.Sales.History; using Microsoft.Service.Document; using Microsoft.Service.History; using System.Environment.Configuration; -using System.Upgrade; -using Microsoft.Foundation.Shipping; using System.IO; +using System.Upgrade; codeunit 31306 "Upgrade Application CZ" { diff --git a/Apps/CZ/IntrastatCZ/app/src/TableExtensions/IntrastatReportLineCZ.TableExt.al b/Apps/CZ/IntrastatCZ/app/src/TableExtensions/IntrastatReportLineCZ.TableExt.al index 92574a4fb3..49bdc70914 100644 --- a/Apps/CZ/IntrastatCZ/app/src/TableExtensions/IntrastatReportLineCZ.TableExt.al +++ b/Apps/CZ/IntrastatCZ/app/src/TableExtensions/IntrastatReportLineCZ.TableExt.al @@ -5,8 +5,8 @@ namespace Microsoft.Inventory.Intrastat; using Microsoft.FixedAssets.FixedAsset; -using Microsoft.Inventory.Item; using Microsoft.Foundation.Shipping; +using Microsoft.Inventory.Item; using Microsoft.Inventory.Ledger; tableextension 31300 "Intrastat Report Line CZ" extends "Intrastat Report Line" diff --git a/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Foundation/1. Setup Data/CreateShippingDataCZ.Codeunit.al b/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Foundation/1. Setup Data/CreateShippingDataCZ.Codeunit.al index 205a6152e4..f9017f1f67 100644 --- a/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Foundation/1. Setup Data/CreateShippingDataCZ.Codeunit.al +++ b/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Foundation/1. Setup Data/CreateShippingDataCZ.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Intrastat; +using Microsoft.DemoTool.Helpers; codeunit 31491 "Create Shipping Data CZ" { diff --git a/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Inventory/2. Master Data/CreateIntrastatItemCZ.Codeunit.al b/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Inventory/2. Master Data/CreateIntrastatItemCZ.Codeunit.al index 32c441de8c..c99f6e3196 100644 --- a/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Inventory/2. Master Data/CreateIntrastatItemCZ.Codeunit.al +++ b/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Inventory/2. Master Data/CreateIntrastatItemCZ.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Intrastat; using Microsoft.DemoData.Foundation; using Microsoft.DemoData.Intrastat; +using Microsoft.Inventory.Intrastat; using Microsoft.Inventory.Item; codeunit 11708 "Create Intrastat Item CZ" diff --git a/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Purchases/2. Master Data/CreateIntrastatVendorCZ.Codeunit.al b/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Purchases/2. Master Data/CreateIntrastatVendorCZ.Codeunit.al index ad4c032a89..5f378efbe2 100644 --- a/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Purchases/2. Master Data/CreateIntrastatVendorCZ.Codeunit.al +++ b/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Purchases/2. Master Data/CreateIntrastatVendorCZ.Codeunit.al @@ -7,8 +7,8 @@ namespace Microsoft.DemoData.Purchases; using Microsoft.DemoData.Foundation; using Microsoft.DemoData.Intrastat; -using Microsoft.Purchases.Vendor; using Microsoft.Inventory.Intrastat; +using Microsoft.Purchases.Vendor; codeunit 11707 "Create Intrastat Vendor CZ" { diff --git a/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Sales/2. Master Data/CreateIntrastatCustomerCZ.Codeunit.al b/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Sales/2. Master Data/CreateIntrastatCustomerCZ.Codeunit.al index 63eee1b03f..7fbad30865 100644 --- a/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Sales/2. Master Data/CreateIntrastatCustomerCZ.Codeunit.al +++ b/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Sales/2. Master Data/CreateIntrastatCustomerCZ.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Inventory.Intrastat; using Microsoft.DemoData.Foundation; using Microsoft.DemoData.Intrastat; +using Microsoft.Inventory.Intrastat; using Microsoft.Sales.Customer; codeunit 11706 "Create Intrastat Customer CZ" diff --git a/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Sales/3. Transactions/CreateSalesDocumentCZ.Codeunit.al b/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Sales/3. Transactions/CreateSalesDocumentCZ.Codeunit.al index cd6a07c66c..1f682075fc 100644 --- a/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Sales/3. Transactions/CreateSalesDocumentCZ.Codeunit.al +++ b/Apps/CZ/IntrastatCZ/demo data/src/DemoData/Sales/3. Transactions/CreateSalesDocumentCZ.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Sales; +using Microsoft.DemoData.Inventory; using Microsoft.DemoTool.Helpers; using Microsoft.Sales.Document; -using Microsoft.DemoData.Inventory; codeunit 11709 "Create Sales Document CZ" { diff --git a/Apps/CZ/IntrastatCZ/demo data/src/DemoTool/ImportTariffNumbersCZ.XmlPort.al b/Apps/CZ/IntrastatCZ/demo data/src/DemoTool/ImportTariffNumbersCZ.XmlPort.al index a2a9ed0bf4..76535263de 100644 --- a/Apps/CZ/IntrastatCZ/demo data/src/DemoTool/ImportTariffNumbersCZ.XmlPort.al +++ b/Apps/CZ/IntrastatCZ/demo data/src/DemoTool/ImportTariffNumbersCZ.XmlPort.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoTool.Helpers; -using Microsoft.Inventory.Intrastat; using Microsoft.Foundation.UOM; +using Microsoft.Inventory.Intrastat; xmlport 31221 "Import Tariff Numbers CZ" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/DEContosoLocalization.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/DEContosoLocalization.Codeunit.al index 50795d1a22..a6ece8e24f 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/DEContosoLocalization.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/DEContosoLocalization.Codeunit.al @@ -5,14 +5,14 @@ namespace Microsoft.DemoData.Localization; -using Microsoft.DemoData.Finance; -using Microsoft.DemoData.Purchases; using Microsoft.DemoData.Bank; +using Microsoft.DemoData.Finance; using Microsoft.DemoData.FixedAsset; -using Microsoft.DemoData.Inventory; -using Microsoft.DemoData.Sales; using Microsoft.DemoData.Foundation; using Microsoft.DemoData.HumanResources; +using Microsoft.DemoData.Inventory; +using Microsoft.DemoData.Purchases; +using Microsoft.DemoData.Sales; using Microsoft.DemoTool; codeunit 11113 "DE Contoso Localization" @@ -97,7 +97,10 @@ codeunit 11113 "DE Contoso Localization" Codeunit.Run(Codeunit::"Create DE Data Export Record"); end; Enum::"Contoso Demo Data Level"::"Master Data": - Codeunit.Run(Codeunit::"Create DE Currency Ex. Rate"); + begin + Codeunit.Run(Codeunit::"Create DE Currency Ex. Rate"); + Codeunit.Run(Codeunit::"Create Allocation Account DE"); + end; end; end; diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDECurrency.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDECurrency.Codeunit.al index aa3ae177e4..07f4823a6c 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDECurrency.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDECurrency.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.Currency; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.Currency; codeunit 11377 "Create DE Currency" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDEGLAcc.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDEGLAcc.Codeunit.al index 544da81100..b786f8e45a 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDEGLAcc.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDEGLAcc.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Foundation.Enums; -using Microsoft.DemoTool.Helpers; codeunit 11119 "Create DE GL Acc." { @@ -25,6 +25,7 @@ codeunit 11119 "Create DE GL Acc." CreateVATPostingGroup: Codeunit "Create VAT Posting Groups"; CreatePostingGroup: Codeunit "Create Posting Groups"; CreateGLAccount: Codeunit "Create G/L Account"; + CreateDEVATPostingGroups: Codeunit "Create DE VAT Posting Groups"; begin ContosoGLAccount.SetOverwriteData(true); ContosoGLAccount.InsertGLAccount(CreateGLAccount.RawMaterials(), CreateGLAccount.RawMaterialsName(), Enum::"G/L Account Income/Balance"::"Balance Sheet", Enum::"G/L Account Category"::Assets, Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::" ", '', '', true, false, false); @@ -180,7 +181,7 @@ codeunit 11119 "Create DE GL Acc." ContosoGLAccount.InsertGLAccount(PassengerCarCosts(), PassengerCarCostsName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); ContosoGLAccount.InsertGLAccount(TruckCosts(), TruckCostsName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); ContosoGLAccount.InsertGLAccount(Othervehicleexpenses(), OthervehicleexpensesName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); - ContosoGLAccount.InsertGLAccount(Freightfeesforgoods(), FreightfeesforgoodsName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); + ContosoGLAccount.InsertGLAccount(Freightfeesforgoods(), FreightfeesforgoodsName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', CreatePostingGroup.RetailPostingGroup(), 0, '', Enum::"General Posting Type"::"Purchase", '', CreateDEVATPostingGroups.VAT7(), true, false, false); ContosoGLAccount.InsertGLAccount(Customsandforwarding(), CustomsandforwardingName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); ContosoGLAccount.InsertGLAccount(Freightfeesprojects(), FreightfeesprojectsName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); ContosoGLAccount.InsertGLAccount(TravelExpenses(), TravelExpensesName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::"Begin-Total", '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', false, false, false); @@ -202,13 +203,13 @@ codeunit 11119 "Create DE GL Acc." ContosoGLAccount.InsertGLAccount(Dataservices(), DataservicesName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); ContosoGLAccount.InsertGLAccount(Postalfees(), PostalfeesName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); ContosoGLAccount.InsertGLAccount(ConsumableExpensiblehardware(), ConsumableExpensiblehardwareName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); - ContosoGLAccount.InsertGLAccount(Softwareandsubscriptionfees(), SoftwareandsubscriptionfeesName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); + ContosoGLAccount.InsertGLAccount(Softwareandsubscriptionfees(), SoftwareandsubscriptionfeesName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', CreatePostingGroup.ServicesPostingGroup(), 0, '', Enum::"General Posting Type"::"Purchase", '', CreateDEVATPostingGroups.VAT19(), true, false, false); ContosoGLAccount.InsertGLAccount(CorporateInsurance(), CorporateInsuranceName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); ContosoGLAccount.InsertGLAccount(BadDebtLosses(), BadDebtLossesName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); ContosoGLAccount.InsertGLAccount(AnnualinterrimReports(), AnnualinterrimReportsName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); ContosoGLAccount.InsertGLAccount(PayableInvoiceRounding(), PayableInvoiceRoundingName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, CreatePostingGroup.DomesticPostingGroup(), CreatePostingGroup.RetailPostingGroup(), 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); ContosoGLAccount.InsertGLAccount(AccountingServices(), AccountingServicesName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); - ContosoGLAccount.InsertGLAccount(LegalFeesandAttorneyServices(), LegalFeesandAttorneyServicesName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); + ContosoGLAccount.InsertGLAccount(LegalFeesandAttorneyServices(), LegalFeesandAttorneyServicesName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', CreatePostingGroup.ServicesPostingGroup(), 0, '', Enum::"General Posting Type"::"Purchase", '', CreateDEVATPostingGroups.VAT19(), true, false, false); ContosoGLAccount.InsertGLAccount(OtherExternalServices(), OtherExternalServicesName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); ContosoGLAccount.InsertGLAccount(Miscexternalexpenses(), MiscexternalexpensesName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::"Purchase", '', '', true, false, false); ContosoGLAccount.InsertGLAccount(PurchaseDiscounts(), PurchaseDiscountsName(), Enum::"G/L Account Income/Balance"::"Income Statement", Enum::"G/L Account Category"::"Expense", Enum::"G/L Account Type"::Posting, '', '', 0, '', Enum::"General Posting Type"::" ", '', '', true, false, false); diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDEGLAccounts.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDEGLAccounts.Codeunit.al index 75403a6490..9c691e1c50 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDEGLAccounts.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDEGLAccounts.Codeunit.al @@ -5,14 +5,14 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Inventory.Setup; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Common; -using Microsoft.DemoData.Service; -using Microsoft.DemoData.Manufacturing; using Microsoft.DemoData.FixedAsset; using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Manufacturing; +using Microsoft.DemoData.Service; +using Microsoft.DemoTool.Helpers; +using Microsoft.Inventory.Setup; codeunit 11080 "Create DE GL Accounts" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDEPostingGroups.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDEPostingGroups.Codeunit.al index cea1b6e3eb..d763d7ca67 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDEPostingGroups.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDEPostingGroups.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Setup; codeunit 11380 "Create DE Posting Groups" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDEVATPostingGroups.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDEVATPostingGroups.Codeunit.al index 1332af9f51..27b6a4d207 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDEVATPostingGroups.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/1.Setup data/CreateDEVATPostingGroups.Codeunit.al @@ -5,11 +5,11 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.VAT.Setup; -using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.DemoTool.Helpers; using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Finance.VAT.Setup; using Microsoft.Foundation.Enums; -using Microsoft.DemoTool.Helpers; codeunit 11379 "Create DE VAT Posting Groups" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/2. Master data/CreateAllocationAccountDE.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/2. Master data/CreateAllocationAccountDE.Codeunit.al new file mode 100644 index 0000000000..9888ed80a2 --- /dev/null +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/2. Master data/CreateAllocationAccountDE.Codeunit.al @@ -0,0 +1,48 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DemoData.Finance; + +using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.AllocationAccount; + +codeunit 11386 "Create Allocation Account DE" +{ + InherentEntitlements = X; + InherentPermissions = X; + + trigger OnRun() + var + AllocationAccount: Record "Allocation Account"; + AllocAccountDistribution: Record "Alloc. Account Distribution"; + ContosoAllocationAccount: Codeunit "Contoso Allocation Account"; + CreateDimensionValue: Codeunit "Create Dimension Value"; + CreateGLAccDE: Codeunit "Create DE GL Acc."; + begin + ContosoAllocationAccount.InsertAllocationAccount( + Licenses(), LicensesDescription(), + AllocationAccount."Account Type"::Fixed, AllocationAccount."Document Lines Split"::"Split Amount"); + ContosoAllocationAccount.InsertAllocationAccountDistribution( + Licenses(), 10000, AllocAccountDistribution."Account Type"::Fixed, 1, 50, + AllocAccountDistribution."Destination Account Type"::"G/L Account", CreateGLAccDE.Softwareandsubscriptionfees(), CreateDimensionValue.AdministrationDepartment(), ''); + ContosoAllocationAccount.InsertAllocationAccountDistribution( + Licenses(), 20000, AllocAccountDistribution."Account Type"::Fixed, 1, 50, + AllocAccountDistribution."Destination Account Type"::"G/L Account", CreateGLAccDE.Softwareandsubscriptionfees(), CreateDimensionValue.SalesDepartment(), ''); + end; + + procedure Licenses(): Code[20] + begin + exit(LicensesTok); + end; + + procedure LicensesDescription(): Text[100] + begin + exit(YearlyLicenseFeeTok); + end; + + var + LicensesTok: Label 'LICENSES', MaxLength = 20; + YearlyLicenseFeeTok: Label 'Yearly license fee, design software', MaxLength = 100; +} diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/2. Master data/CreateDECurrencyExRate.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/2. Master data/CreateDECurrencyExRate.Codeunit.al index af5efdd6ec..2949a35cb3 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/2. Master data/CreateDECurrencyExRate.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/2. Master data/CreateDECurrencyExRate.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.Currency; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.Currency; codeunit 11376 "Create DE Currency Ex. Rate" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/2. Master data/CreateDEDataExportRecord.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/2. Master data/CreateDEDataExportRecord.Codeunit.al index 816ae143b4..c95f3443c5 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/2. Master data/CreateDEDataExportRecord.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/2. Master data/CreateDEDataExportRecord.Codeunit.al @@ -6,23 +6,23 @@ namespace Microsoft.DemoData.Finance; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.Dimension; using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Finance.GeneralLedger.Ledger; -using Microsoft.Sales.Customer; -using Microsoft.Sales.Receivables; -using Microsoft.Purchases.Vendor; -using Microsoft.Purchases.Payables; +using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Finance.VAT.Ledger; +using Microsoft.Finance.VAT.Setup; +using Microsoft.FixedAssets.Depreciation; using Microsoft.FixedAssets.FixedAsset; using Microsoft.FixedAssets.Ledger; -using Microsoft.FixedAssets.Depreciation; using Microsoft.Foundation.Address; -using Microsoft.Finance.GeneralLedger.Setup; -using Microsoft.Finance.VAT.Setup; -using Microsoft.Finance.Dimension; using Microsoft.Inventory.Item; using Microsoft.Inventory.Ledger; +using Microsoft.Purchases.Payables; +using Microsoft.Purchases.Vendor; +using Microsoft.Sales.Customer; using Microsoft.Sales.History; +using Microsoft.Sales.Receivables; codeunit 11125 "Create DE Data Export Record" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/2. Master data/CreateDEVATStatement.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/2. Master data/CreateDEVATStatement.Codeunit.al index ad7543fce1..8e1306317a 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/2. Master data/CreateDEVATStatement.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Finance/2. Master data/CreateDEVATStatement.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; using Microsoft.Finance.VAT.Reporting; using Microsoft.Foundation.Enums; -using Microsoft.DemoTool.Helpers; codeunit 11120 "Create DE VAT Statement" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/FixedAsset/1. Setup Data/CreateDEFAPostingGrp.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/FixedAsset/1. Setup Data/CreateDEFAPostingGrp.Codeunit.al index 8e4bf08c7a..55fa4a6c70 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/FixedAsset/1. Setup Data/CreateDEFAPostingGrp.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/FixedAsset/1. Setup Data/CreateDEFAPostingGrp.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.FixedAsset; -using Microsoft.FixedAssets.FixedAsset; using Microsoft.DemoData.Finance; +using Microsoft.FixedAssets.FixedAsset; codeunit 11115 "Create DE FA Posting Grp." { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Foundation/1. SetupData/CreateDENoSeries.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Foundation/1. SetupData/CreateDENoSeries.Codeunit.al index de06db7c04..16657cf920 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Foundation/1. SetupData/CreateDENoSeries.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Foundation/1. SetupData/CreateDENoSeries.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.Foundation.NoSeries; using Microsoft.DemoTool.Helpers; +using Microsoft.Foundation.NoSeries; codeunit 11104 "Create DE No. Series" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Inventory/1. Setup Data/CreateDEInvPostingSetup.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Inventory/1. Setup Data/CreateDEInvPostingSetup.Codeunit.al index 773906698d..eba7a49bc1 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Inventory/1. Setup Data/CreateDEInvPostingSetup.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Inventory/1. Setup Data/CreateDEInvPostingSetup.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Item; using Microsoft.DemoData.Finance; +using Microsoft.Inventory.Item; codeunit 11093 "Create DE Inv. Posting Setup" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Inventory/2. Master Data/CreateDELocation.codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Inventory/2. Master Data/CreateDELocation.codeunit.al index 2d352a128f..1e6f338dd0 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Inventory/2. Master Data/CreateDELocation.codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Inventory/2. Master Data/CreateDELocation.codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Location; using Microsoft.DemoData.Foundation; +using Microsoft.Inventory.Location; codeunit 11097 "Create DE Location" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Purchases/1. SetupData/CreateDEPurchPayableSetup.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Purchases/1. SetupData/CreateDEPurchPayableSetup.Codeunit.al index 4ca3b9ae50..b3f92bbb43 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Purchases/1. SetupData/CreateDEPurchPayableSetup.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Purchases/1. SetupData/CreateDEPurchPayableSetup.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Setup; using Microsoft.DemoData.Foundation; +using Microsoft.Purchases.Setup; codeunit 11100 "Create DE Purch. Payable Setup" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Purchases/1. SetupData/CreateDEVendorPostingGrp.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Purchases/1. SetupData/CreateDEVendorPostingGrp.Codeunit.al index 68494b689b..5cdf2c3600 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Purchases/1. SetupData/CreateDEVendorPostingGrp.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Purchases/1. SetupData/CreateDEVendorPostingGrp.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; using Microsoft.DemoData.Finance; +using Microsoft.Purchases.Vendor; codeunit 11102 "Create DE Vendor Posting Grp" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Purchases/2. MasterData/CreateDEPurchDimValue.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Purchases/2. MasterData/CreateDEPurchDimValue.Codeunit.al index 724423b63a..7b3483ebeb 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Purchases/2. MasterData/CreateDEPurchDimValue.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Purchases/2. MasterData/CreateDEPurchDimValue.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Purchases; +using Microsoft.DemoData.Finance; using Microsoft.Finance.Dimension; using Microsoft.Purchases.Vendor; -using Microsoft.DemoData.Finance; codeunit 11090 "Create DE Purch. Dim. Value" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Purchases/2. MasterData/CreateDEVendor.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Purchases/2. MasterData/CreateDEVendor.Codeunit.al index f71419b0e8..471594b53d 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Purchases/2. MasterData/CreateDEVendor.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Purchases/2. MasterData/CreateDEVendor.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; using Microsoft.DemoData.Foundation; +using Microsoft.Purchases.Vendor; codeunit 11103 "Create DE Vendor" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/1. SetupData/CreateDECustPostingGrp.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/1. SetupData/CreateDECustPostingGrp.Codeunit.al index 4f2b3375e4..25aa6bada8 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/1. SetupData/CreateDECustPostingGrp.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/1. SetupData/CreateDECustPostingGrp.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoData.Finance; +using Microsoft.Sales.Customer; codeunit 11106 "Create DE Cust. Posting Grp" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/2. MasterData/CreateDECustomer.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/2. MasterData/CreateDECustomer.Codeunit.al index a4f774f819..9ba8e422ed 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/2. MasterData/CreateDECustomer.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/2. MasterData/CreateDECustomer.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoData.Foundation; +using Microsoft.Sales.Customer; codeunit 11108 "Create DE Customer" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/2. MasterData/CreateDESalesDimValue.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/2. MasterData/CreateDESalesDimValue.Codeunit.al index 1bd5b0d1ef..7eb7cd129a 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/2. MasterData/CreateDESalesDimValue.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/2. MasterData/CreateDESalesDimValue.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Sales; +using Microsoft.DemoData.Finance; using Microsoft.Finance.Dimension; using Microsoft.Sales.Customer; -using Microsoft.DemoData.Finance; codeunit 11101 "Create DE Sales Dim Value" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/2. MasterData/CreateDEShipToAddress.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/2. MasterData/CreateDEShipToAddress.Codeunit.al index 2326609e8b..98db728e44 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/2. MasterData/CreateDEShipToAddress.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/2. MasterData/CreateDEShipToAddress.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoTool; +using Microsoft.Sales.Customer; codeunit 11111 "Create DE Ship-to Address" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/3. TransactionData/CreateDESalesDocument.Codeunit.al b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/3. TransactionData/CreateDESalesDocument.Codeunit.al index adb38532f7..3a0483f6cd 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/3. TransactionData/CreateDESalesDocument.Codeunit.al +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/DemoData/Sales/3. TransactionData/CreateDESalesDocument.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Document; using Microsoft.DemoData.Foundation; +using Microsoft.Sales.Document; codeunit 11112 "Create DE Sales Document" { diff --git a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/app.json b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/app.json index 62f820c1f9..b2692a3247 100644 --- a/Apps/DE/ContosoCoffeeDemoDatasetDE/app/app.json +++ b/Apps/DE/ContosoCoffeeDemoDatasetDE/app/app.json @@ -28,7 +28,7 @@ "idRanges": [ { "from": 11080, - "to": 11385 + "to": 11386 } ], "resourceExposurePolicy": { diff --git a/Apps/DE/EDocumentDE/app/src/PEPPOL/EDocPEPPOLBIS30DE.Codeunit.al b/Apps/DE/EDocumentDE/app/src/PEPPOL/EDocPEPPOLBIS30DE.Codeunit.al index 0679f620fc..255c46d904 100644 --- a/Apps/DE/EDocumentDE/app/src/PEPPOL/EDocPEPPOLBIS30DE.Codeunit.al +++ b/Apps/DE/EDocumentDE/app/src/PEPPOL/EDocPEPPOLBIS30DE.Codeunit.al @@ -1,15 +1,15 @@ namespace Microsoft.eServices.EDocument.IO.Peppol; using Microsoft.eServices.EDocument; +using Microsoft.eServices.EDocument.Formats; +using Microsoft.Purchases.Document; using Microsoft.Sales.Customer; +using Microsoft.Sales.Document; using Microsoft.Sales.History; +using Microsoft.Sales.Peppol; using Microsoft.Service.Document; using Microsoft.Service.History; using System.Utilities; -using Microsoft.Sales.Peppol; -using Microsoft.eServices.EDocument.Formats; -using Microsoft.Sales.Document; -using Microsoft.Purchases.Document; codeunit 11035 "EDoc PEPPOL BIS 3.0 DE" implements "E-Document" { diff --git a/Apps/DE/EDocumentDE/app/src/XRechnung/ExportXRechnungDocument.Codeunit.al b/Apps/DE/EDocumentDE/app/src/XRechnung/ExportXRechnungDocument.Codeunit.al index 6801a60561..037191f8c1 100644 --- a/Apps/DE/EDocumentDE/app/src/XRechnung/ExportXRechnungDocument.Codeunit.al +++ b/Apps/DE/EDocumentDE/app/src/XRechnung/ExportXRechnungDocument.Codeunit.al @@ -679,6 +679,8 @@ codeunit 13916 "Export XRechnung Document" TaxCategoryElement := XmlElement.Create(TaxCategory, XmlNamespaceCAC); TaxCategoryElement.Add(XmlElement.Create('ID', XmlNamespaceCBC, TaxCategoryID)); TaxCategoryElement.Add(XmlElement.Create('Percent', XmlNamespaceCBC, FormatDecimal(Percent))); + if Percent = 0 then + TaxCategoryElement.Add(XmlElement.Create('TaxExemptionReasonCode', XmlNamespaceCBC, 'VATEX-EU-O')); InsertTaxScheme(TaxCategoryElement); RootElement.Add(TaxCategoryElement); end; @@ -727,7 +729,6 @@ codeunit 13916 "Export XRechnung Document" TaxTotalElement := XmlElement.Create('TaxTotal', XmlNamespaceCAC); TaxTotalElement.Add(XmlElement.Create('TaxAmount', XmlNamespaceCBC, XmlAttribute.Create('currencyID', CurrencyCode), FormatDecimal(GetTotalTaxAmount(SalesInvLine)))); - SalesInvLine.SetFilter("VAT %", '<>0'); if SalesInvLine.FindSet() then repeat if LineVATAmount.ContainsKey(SalesInvLine."VAT %") and LineAmount.ContainsKey(SalesInvLine."VAT %") then begin @@ -739,12 +740,11 @@ codeunit 13916 "Export XRechnung Document" end; until SalesInvLine.Next() = 0; - SalesInvLine.SetRange("VAT %", 0); + SalesInvLine.SetRange("VAT Calculation Type"); + SalesInvLine.SetRange("VAT %"); SalesInvLine.CalcSums(Amount); if SalesInvLine.FindLast() then; - SalesInvLine.SetRange("VAT Calculation Type"); - SalesInvLine.SetRange("VAT %"); RootXMLNode.Add(TaxTotalElement); end; @@ -755,7 +755,6 @@ codeunit 13916 "Export XRechnung Document" TaxTotalElement := XmlElement.Create('TaxTotal', XmlNamespaceCAC); TaxTotalElement.Add(XmlElement.Create('TaxAmount', XmlNamespaceCBC, XmlAttribute.Create('currencyID', CurrencyCode), FormatDecimal(GetTotalTaxAmount(SalesCrMemoLine)))); - SalesCrMemoLine.SetFilter("VAT %", '<>0'); if SalesCrMemoLine.FindSet() then repeat if LineVATAmount.ContainsKey(SalesCrMemoLine."VAT %") and LineAmount.ContainsKey(SalesCrMemoLine."VAT %") then begin @@ -767,12 +766,11 @@ codeunit 13916 "Export XRechnung Document" end; until SalesCrMemoLine.Next() = 0; - SalesCrMemoLine.SetRange("VAT %", 0); + SalesCrMemoLine.SetRange("VAT Calculation Type"); + SalesCrMemoLine.SetRange("VAT %"); SalesCrMemoLine.CalcSums(Amount); if SalesCrMemoLine.FindLast() then; - SalesCrMemoLine.SetRange("VAT Calculation Type"); - SalesCrMemoLine.SetRange("VAT %"); RootXMLNode.Add(TaxTotalElement); end; diff --git a/Apps/DE/EDocumentDE/app/src/XRechnung/ImportXRechnungDocument.Codeunit.al b/Apps/DE/EDocumentDE/app/src/XRechnung/ImportXRechnungDocument.Codeunit.al index 3ad2982208..31066ebac4 100644 --- a/Apps/DE/EDocumentDE/app/src/XRechnung/ImportXRechnungDocument.Codeunit.al +++ b/Apps/DE/EDocumentDE/app/src/XRechnung/ImportXRechnungDocument.Codeunit.al @@ -4,15 +4,15 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.eServices.EDocument.Formats; -using System.Utilities; +using Microsoft.eServices.EDocument; using Microsoft.Finance.GeneralLedger.Setup; -using System.IO; -using System.Text; using Microsoft.Foundation.Attachment; using Microsoft.Purchases.Document; -using System.Telemetry; -using Microsoft.eServices.EDocument; using Microsoft.Purchases.Vendor; +using System.IO; +using System.Telemetry; +using System.Text; +using System.Utilities; codeunit 13915 "Import XRechnung Document" { diff --git a/Apps/DE/EDocumentDE/app/src/XRechnung/XRechnungFormat.Codeunit.al b/Apps/DE/EDocumentDE/app/src/XRechnung/XRechnungFormat.Codeunit.al index 8f6260cc76..45fe37aec7 100644 --- a/Apps/DE/EDocumentDE/app/src/XRechnung/XRechnungFormat.Codeunit.al +++ b/Apps/DE/EDocumentDE/app/src/XRechnung/XRechnungFormat.Codeunit.al @@ -4,17 +4,17 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.eServices.EDocument.Formats; -using System.Utilities; -using Microsoft.Sales.History; +using Microsoft.eServices.EDocument; +using Microsoft.eServices.EDocument.IO.Peppol; +using Microsoft.Foundation.Company; using Microsoft.Purchases.Document; -using System.IO; using Microsoft.Sales.Customer; using Microsoft.Sales.Document; -using Microsoft.Foundation.Company; -using Microsoft.eServices.EDocument; +using Microsoft.Sales.History; using Microsoft.Service.Document; using Microsoft.Service.History; -using Microsoft.eServices.EDocument.IO.Peppol; +using System.IO; +using System.Utilities; codeunit 13914 "XRechnung Format" implements "E-Document" { diff --git a/Apps/DE/EDocumentDE/app/src/ZUGFeRD/ExportZUGFeRDDocument.Codeunit.al b/Apps/DE/EDocumentDE/app/src/ZUGFeRD/ExportZUGFeRDDocument.Codeunit.al index d4c39ccdf1..944746bde0 100644 --- a/Apps/DE/EDocumentDE/app/src/ZUGFeRD/ExportZUGFeRDDocument.Codeunit.al +++ b/Apps/DE/EDocumentDE/app/src/ZUGFeRD/ExportZUGFeRDDocument.Codeunit.al @@ -4,8 +4,8 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.eServices.EDocument.Formats; -using Microsoft.eServices.EDocument; using Microsoft.CRM.Team; +using Microsoft.eServices.EDocument; using Microsoft.Finance.Currency; using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Finance.VAT.Setup; @@ -455,7 +455,7 @@ codeunit 13917 "Export ZUGFeRD Document" local procedure InsertApplicableHeaderTradeDelivery(var RootXMLNode: XmlElement; SalesInvoiceHeader: Record "Sales Invoice Header") var - DeliveryElement, ShipToPartyElement, PostalAddressElement : XmlElement; + DeliveryElement, ShipToPartyElement, PostalAddressElement, ActualDeliveryDateElement, OccurrenceDateTimeElement : XmlElement; begin DeliveryElement := XmlElement.Create('ApplicableHeaderTradeDelivery', XmlNamespaceRAM); @@ -470,12 +470,19 @@ codeunit 13917 "Export ZUGFeRD Document" ShipToPartyElement.Add(PostalAddressElement); DeliveryElement.Add(ShipToPartyElement); + + ActualDeliveryDateElement := XmlElement.Create('ActualDeliverySupplyChainEvent', XmlNamespaceRAM); + OccurrenceDateTimeElement := XmlElement.Create('OccurrenceDateTime', XmlNamespaceRAM); + OccurrenceDateTimeElement.Add(XmlElement.Create('DateTimeString', XmlNamespaceUDT, XmlAttribute.Create('format', '102'), FormatDate(SalesInvoiceHeader."Shipment Date"))); + ActualDeliveryDateElement.Add(OccurrenceDateTimeElement); + DeliveryElement.Add(ActualDeliveryDateElement); + RootXMLNode.Add(DeliveryElement); end; local procedure InsertApplicableHeaderTradeDelivery(var RootXMLNode: XmlElement; SalesCrMemoHeader: Record "Sales Cr.Memo Header") var - DeliveryElement, ShipToPartyElement, PostalAddressElement : XmlElement; + DeliveryElement, ShipToPartyElement, PostalAddressElement, ActualDeliveryDateElement, OccurrenceDateTimeElement : XmlElement; begin DeliveryElement := XmlElement.Create('ApplicableHeaderTradeDelivery', XmlNamespaceRAM); @@ -490,6 +497,13 @@ codeunit 13917 "Export ZUGFeRD Document" ShipToPartyElement.Add(PostalAddressElement); DeliveryElement.Add(ShipToPartyElement); + + ActualDeliveryDateElement := XmlElement.Create('ActualDeliverySupplyChainEvent', XmlNamespaceRAM); + OccurrenceDateTimeElement := XmlElement.Create('OccurrenceDateTime', XmlNamespaceRAM); + OccurrenceDateTimeElement.Add(XmlElement.Create('DateTimeString', XmlNamespaceUDT, XmlAttribute.Create('format', '102'), FormatDate(SalesCrMemoHeader."Shipment Date"))); + ActualDeliveryDateElement.Add(OccurrenceDateTimeElement); + DeliveryElement.Add(ActualDeliveryDateElement); + RootXMLNode.Add(DeliveryElement); end; diff --git a/Apps/DE/EDocumentDE/app/src/ZUGFeRD/ImportZUGFeRDDocument.Codeunit.al b/Apps/DE/EDocumentDE/app/src/ZUGFeRD/ImportZUGFeRDDocument.Codeunit.al index a95f82b28b..e20c3bdcb8 100644 --- a/Apps/DE/EDocumentDE/app/src/ZUGFeRD/ImportZUGFeRDDocument.Codeunit.al +++ b/Apps/DE/EDocumentDE/app/src/ZUGFeRD/ImportZUGFeRDDocument.Codeunit.al @@ -4,14 +4,14 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.eServices.EDocument.Formats; -using System.Utilities; +using Microsoft.eServices.EDocument; using Microsoft.Finance.GeneralLedger.Setup; -using System.IO; using Microsoft.Foundation.Attachment; using Microsoft.Purchases.Document; -using System.Telemetry; -using Microsoft.eServices.EDocument; using Microsoft.Purchases.Vendor; +using System.IO; +using System.Telemetry; +using System.Utilities; codeunit 13919 "Import ZUGFeRD Document" { diff --git a/Apps/DE/EDocumentDE/app/src/ZUGFeRD/PostedSalesInvoice.ReportExt.al b/Apps/DE/EDocumentDE/app/src/ZUGFeRD/PostedSalesInvoice.ReportExt.al index a1f0ba6ed2..5b506b6b23 100644 --- a/Apps/DE/EDocumentDE/app/src/ZUGFeRD/PostedSalesInvoice.ReportExt.al +++ b/Apps/DE/EDocumentDE/app/src/ZUGFeRD/PostedSalesInvoice.ReportExt.al @@ -3,9 +3,10 @@ // Licensed under the MIT License. See License.txt in the project root for license information. // ------------------------------------------------------------------------------------------------ namespace Microsoft.eServices.EDocument.Formats; -using System.Utilities; + using Microsoft.Sales.History; using System.IO; +using System.Utilities; reportextension 13918 "Posted Sales Invoice" extends "Standard Sales - Invoice" { trigger OnPreReport() diff --git a/Apps/DE/EDocumentDE/app/src/ZUGFeRD/ZUGFeRDFormat.Codeunit.al b/Apps/DE/EDocumentDE/app/src/ZUGFeRD/ZUGFeRDFormat.Codeunit.al index f119141395..b98f6632e7 100644 --- a/Apps/DE/EDocumentDE/app/src/ZUGFeRD/ZUGFeRDFormat.Codeunit.al +++ b/Apps/DE/EDocumentDE/app/src/ZUGFeRD/ZUGFeRDFormat.Codeunit.al @@ -4,17 +4,17 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.eServices.EDocument.Formats; -using System.Utilities; +using Microsoft.eServices.EDocument; using Microsoft.eServices.EDocument.IO.Peppol; using Microsoft.Foundation.Company; +using Microsoft.Purchases.Document; using Microsoft.Sales.Customer; using Microsoft.Sales.Document; using Microsoft.Sales.History; -using Microsoft.Purchases.Document; -using Microsoft.eServices.EDocument; using Microsoft.Service.Document; using Microsoft.Service.History; using System.IO; +using System.Utilities; codeunit 13920 "ZUGFeRD Format" implements "E-Document" { diff --git a/Apps/DE/EDocumentDE/demo data/3.Transactions/CreateDemoEDocsDE.Codeunit.al b/Apps/DE/EDocumentDE/demo data/3.Transactions/CreateDemoEDocsDE.Codeunit.al new file mode 100644 index 0000000000..d6a2f76754 --- /dev/null +++ b/Apps/DE/EDocumentDE/demo data/3.Transactions/CreateDemoEDocsDE.Codeunit.al @@ -0,0 +1,110 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.Localization; + +using Microsoft.DemoData.Common; +using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Purchases; +using Microsoft.eServices.EDocument.DemoData; +using Microsoft.eServices.EDocument.Processing.Import.Purchase; +using Microsoft.Purchases.Document; + +codeunit 11370 "Create Demo EDocs DE" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + var + ContosoInboundEDocument: Codeunit "Contoso Inbound E-Document"; + + trigger OnRun() + begin + GenerateContosoInboundEDocuments(); + end; + + procedure GetShipmentDHLInvoiceDescription(): Text[100] + var + ShipmentDHLLbl: Label 'Shipment, DHL', MaxLength = 100; + begin + exit(ShipmentDHLLbl); + end; + + local procedure GenerateContosoInboundEDocuments() + var + CreateVendor: Codeunit "Create Vendor"; + CreateGLAccDE: Codeunit "Create DE GL Acc."; + CreateCommonUnitOfMeasure: Codeunit "Create Common Unit Of Measure"; + CreateEDocumentMasterData: Codeunit "Create E-Document Master Data"; + CreateJobItem: Codeunit "Create Job Item"; + CreateAllocationAccountDE: Codeunit "Create Allocation Account DE"; + CreateDeferralTemplate: Codeunit "Create Deferral Template"; + EDocSamplePurchaseInvoice: Codeunit "E-Doc Sample Purchase Invoice"; + AccountingServicesJanuaryLbl: Label 'Accounting support period: January', MaxLength = 100; + AccountingServicesFebruaryLbl: Label 'Accounting support period: February', MaxLength = 100; + AccountingServicesMarchLbl: Label 'Accounting support period: March', MaxLength = 100; + AccountingServicesDecemberLbl: Label 'Accounting support period: December', MaxLength = 100; + AccountingServicesMayLbl: Label 'Accounting support period: May', MaxLength = 100; + begin + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.EUGraphicDesign(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '245', 0); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"Allocation Account", CreateAllocationAccountDE.Licenses(), + CreateAllocationAccountDE.LicensesDescription(), 6, 500, CreateDeferralTemplate.DeferralCode1Y(), ''); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1419', 84); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccDE.LegalFeesandAttorneyServices(), + AccountingServicesJanuaryLbl, 6, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1425', 266); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccDE.LegalFeesandAttorneyServices(), + AccountingServicesFebruaryLbl, 19, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1437', 28); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccDE.LegalFeesandAttorneyServices(), + AccountingServicesMarchLbl, 2, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1479', 224); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccDE.LegalFeesandAttorneyServices(), + AccountingServicesMayLbl, 16, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1456', 98); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccDE.LegalFeesandAttorneyServices(), + AccountingServicesDecemberLbl, 7, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.ExportFabrikam(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), 'F12938', 0); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.WholeDecafBeansColombia(), + '', 50, 5, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateJobItem.ItemConsumable(), + '', 50, 65, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccDE.Freightfeesforgoods(), + GetShipmentDHLInvoiceDescription(), 1, 60, '', ''); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticWorldImporter(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '000982', 7571.5); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.SmartGrindHome(), + '', 100, 299, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.PrecisionGrindHome(), + '', 50, 199, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.Generate(); + end; + +} diff --git a/Apps/DE/EDocumentDE/demo data/3.Transactions/CreateEDocSampleInvDE.Codeunit.al b/Apps/DE/EDocumentDE/demo data/3.Transactions/CreateEDocSampleInvDE.Codeunit.al new file mode 100644 index 0000000000..cc9f38b94b --- /dev/null +++ b/Apps/DE/EDocumentDE/demo data/3.Transactions/CreateEDocSampleInvDE.Codeunit.al @@ -0,0 +1,57 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.Localization; + +using Microsoft.DemoData.Common; +using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Purchases; +using Microsoft.eServices.EDocument.DemoData; +using Microsoft.eServices.EDocument.Processing.Import.Purchase; +using Microsoft.Purchases.Document; + +codeunit 11371 "Create E-Doc Sample Inv. DE" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + var + EDocSamplePurchaseInvoice: Codeunit "E-Doc Sample Purchase Invoice"; + CreateVendor: Codeunit "Create Vendor"; + CreateEDocumentMasterData: Codeunit "Create E-Document Master Data"; + CreateJobItem: Codeunit "Create Job Item"; + CreateCommonUnitOfMeasure: Codeunit "Create Common Unit Of Measure"; + CreateDemoEDocsDE: Codeunit "Create Demo EDocs DE"; + CreateAllocationAccountDE: Codeunit "Create Allocation Account DE"; + + trigger OnRun() + var + YearlyLicenstCostLbl: Label 'Yearly license cost mapped to a G/L account'; + BasicCoffeeEquipmentLbl: Label 'Basic coffee equipment mapped to vendor''s Item References'; + CoffeeBeansAndPartsLbl: Label 'Coffee beans and parts with shipping cost that needs human intervention'; + begin + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.ExportFabrikam(), '108239', CoffeeBeansAndPartsLbl); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.WholeDecafBeansColombia(), '', 50, 180, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateJobItem.ItemConsumable(), '', 50, 65, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::" ", '', CreateDemoEDocsDE.GetShipmentDHLInvoiceDescription(), 1, 60, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.DomesticWorldImporter(), '108240', BasicCoffeeEquipmentLbl, 7571.5); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.SmartGrindHome(), '', 100, 299, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.PrecisionGrindHome(), '', 50, 199, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.EUGraphicDesign(), '108426', YearlyLicenstCostLbl); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::" ", '', CreateAllocationAccountDE.LicensesDescription(), 1, 5000, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + end; +} diff --git a/Apps/DE/EDocumentDE/demo data/EDocDemodataDE.Codeunit.al b/Apps/DE/EDocumentDE/demo data/EDocDemodataDE.Codeunit.al new file mode 100644 index 0000000000..c1162702d4 --- /dev/null +++ b/Apps/DE/EDocumentDE/demo data/EDocDemodataDE.Codeunit.al @@ -0,0 +1,34 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DemoData.Localization; + +using Microsoft.DemoTool; + +codeunit 11374 "E-Doc. Demodata DE" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Contoso Demo Tool", 'OnAfterGeneratingDemoData', '', false, false)] + local procedure LocalizationContosoDemoData(Module: Enum "Contoso Demo Data Module"; ContosoDemoDataLevel: Enum "Contoso Demo Data Level") + begin + if Module <> Enum::"Contoso Demo Data Module"::"E-Document Contoso Module" then + exit; + EDocumentModule(ContosoDemoDataLevel); + end; + + local procedure EDocumentModule(ContosoDemoDataLevel: Enum "Contoso Demo Data Level") + begin + case ContosoDemoDataLevel of + Enum::"Contoso Demo Data Level"::"Transactional Data": + begin + Codeunit.Run(Codeunit::"Create Demo EDocs DE"); + Codeunit.Run(Codeunit::"Create E-Doc Sample Inv. DE"); + end; + end; + end; +} diff --git a/Apps/DE/EDocumentDE/demo data/ExtensionLogo.png b/Apps/DE/EDocumentDE/demo data/ExtensionLogo.png new file mode 100644 index 0000000000..79a3aa399d Binary files /dev/null and b/Apps/DE/EDocumentDE/demo data/ExtensionLogo.png differ diff --git a/Apps/DE/EDocumentDE/demo data/app.json b/Apps/DE/EDocumentDE/demo data/app.json new file mode 100644 index 0000000000..5cd4793ece --- /dev/null +++ b/Apps/DE/EDocumentDE/demo data/app.json @@ -0,0 +1,58 @@ +{ + "id": "f3e4e6f8-2ba7-4202-834d-141ed9b89194", + "name": "E-Document Core Demo Data (DE)", + "publisher": "Microsoft", + "brief": "The Dynamics 365 Business Central E-Documents module enables different models of electronic invoicing, available for additional localizations.", + "description": "Business Central's E-Documents module is the foundation layer for all e-invoicing standards covering most common processes, but it can be used for other electronic documents. The module is easily extendable with the country-based e-invoicing apps. The E-Documents app covers both sales and purchase processes and can have different lifecycles from standard invoices in Business Central.", + "version": "28.0.0.0", + "privacyStatement": "https://go.microsoft.com/fwlink/?LinkId=724009", + "EULA": "https://go.microsoft.com/fwlink/?linkid=2009120", + "help": "https://go.microsoft.com/fwlink/?linkid=2204541", + "url": "https://go.microsoft.com/fwlink/?LinkId=724011", + "logo": "ExtensionLogo.png", + "contextSensitiveHelpUrl": "https://go.microsoft.com/fwlink/?linkid=2206603", + "dependencies": [ + { + "id": "e1d97edc-c239-46b4-8d84-6368bdf67c8b", + "name": "E-Document Core", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "de0dddf3-9917-430d-8d20-6e7679a08500", + "name": "E-Document Core Demo Data", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "5a0b41e9-7a42-4123-d521-2265186cfb31", + "name": "Contoso Coffee Demo Dataset", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "4b1c41f9-7a13-4122-d521-2465194cfb32", + "name": "Contoso Coffee Demo Dataset (DE)", + "publisher": "Microsoft", + "version": "28.0.0.0" + } + ], + "screenshots": [], + "platform": "28.0.0.0", + "idRanges": [ + { + "from": 11370, + "to": 11374 + } + ], + "resourceExposurePolicy": { + "allowDebugging": true, + "allowDownloadingSource": true, + "includeSourceInSymbolFile": true + }, + "application": "28.0.0.0", + "target": "OnPrem", + "features": [ + "TranslationFile" + ] +} diff --git a/Apps/DE/EDocumentDE/test/src/XRechnungXMLDocumentTests.Codeunit.al b/Apps/DE/EDocumentDE/test/src/XRechnungXMLDocumentTests.Codeunit.al index 83748b79bf..8622c81b19 100644 --- a/Apps/DE/EDocumentDE/test/src/XRechnungXMLDocumentTests.Codeunit.al +++ b/Apps/DE/EDocumentDE/test/src/XRechnungXMLDocumentTests.Codeunit.al @@ -3,22 +3,23 @@ // Licensed under the MIT License. See License.txt in the project root for license information. // ------------------------------------------------------------------------------------------------ namespace Microsoft.eServices.EDocument.Formats; -using Microsoft.Foundation.Company; -using Microsoft.Sales.Customer; -using Microsoft.Sales.History; -using Microsoft.Purchases.Vendor; -using Microsoft.Purchases.Document; -using System.Utilities; -using System.IO; -using Microsoft.Foundation.UOM; -using Microsoft.Foundation.Address; + using Microsoft.eServices.EDocument; -using Microsoft.Sales.Document; -using Microsoft.Finance.Currency; using Microsoft.eServices.EDocument.Integration; +using Microsoft.Finance.Currency; using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Foundation.Address; +using Microsoft.Foundation.Company; using Microsoft.Foundation.PaymentTerms; +using Microsoft.Foundation.UOM; using Microsoft.Inventory.Location; +using Microsoft.Purchases.Document; +using Microsoft.Purchases.Vendor; +using Microsoft.Sales.Customer; +using Microsoft.Sales.Document; +using Microsoft.Sales.History; +using System.IO; +using System.Utilities; codeunit 13918 "XRechnung XML Document Tests" { diff --git a/Apps/DE/EDocumentDE/test/src/ZUGFeRDXMLDocumentTests.Codeunit.al b/Apps/DE/EDocumentDE/test/src/ZUGFeRDXMLDocumentTests.Codeunit.al index 399faba73c..f3fab0c149 100644 --- a/Apps/DE/EDocumentDE/test/src/ZUGFeRDXMLDocumentTests.Codeunit.al +++ b/Apps/DE/EDocumentDE/test/src/ZUGFeRDXMLDocumentTests.Codeunit.al @@ -3,25 +3,26 @@ // Licensed under the MIT License. See License.txt in the project root for license information. // ------------------------------------------------------------------------------------------------ namespace Microsoft.eServices.EDocument.Formats; -using Microsoft.Foundation.Company; -using Microsoft.Sales.Customer; -using Microsoft.Sales.History; -using Microsoft.Purchases.Vendor; -using Microsoft.Purchases.Document; -using System.Utilities; + using Microsoft.Bank.BankAccount; -using System.Reflection; -using System.IO; -using Microsoft.Foundation.UOM; -using Microsoft.Foundation.Address; using Microsoft.eServices.EDocument; -using Microsoft.Sales.Document; -using Microsoft.Finance.Currency; using Microsoft.eServices.EDocument.Integration; +using Microsoft.Finance.Currency; using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Foundation.Address; +using Microsoft.Foundation.Company; using Microsoft.Foundation.PaymentTerms; using Microsoft.Foundation.Reporting; +using Microsoft.Foundation.UOM; using Microsoft.Inventory.Location; +using Microsoft.Purchases.Document; +using Microsoft.Purchases.Vendor; +using Microsoft.Sales.Customer; +using Microsoft.Sales.Document; +using Microsoft.Sales.History; +using System.IO; +using System.Reflection; +using System.Utilities; codeunit 13922 "ZUGFeRD XML Document Tests" { diff --git a/Apps/DE/IntrastatDE/app/src/IntrastatReportManagementDE.Codeunit.al b/Apps/DE/IntrastatDE/app/src/IntrastatReportManagementDE.Codeunit.al index e807720509..54b33e1581 100644 --- a/Apps/DE/IntrastatDE/app/src/IntrastatReportManagementDE.Codeunit.al +++ b/Apps/DE/IntrastatDE/app/src/IntrastatReportManagementDE.Codeunit.al @@ -183,6 +183,9 @@ codeunit 11029 IntrastatReportManagementDE CompanyInformation: Record "Company Information"; Contact: Record Contact; DataExchLineDef, DataExchLineDef2 : Record "Data Exch. Line Def"; + CompanyArea: Code[10]; + RegistrationNo: Text[20]; + AgencyNo: Text[10]; begin if IsIntrastatExport(DataExchColumnDef."Data Exch. Def Code") then case DataExchColumnDef.Path of @@ -243,9 +246,15 @@ codeunit 11029 IntrastatReportManagementDE '/Party[@partyType="PSI" and @partyRole="sender"]/partyId': begin CompanyInformation.Get(); - xmlNodeValue := Format(CompanyInformation.Area, 2) + - PadStr(CopyStr(DelChr(UpperCase(CompanyInformation."Registration No."), '=', RegNoExcludeCharsTxt), 1, 11), 11, '0') + - Format(CompanyInformation."Agency No.", 3); + + CompanyArea := CompanyInformation.Area; + RegistrationNo := CompanyInformation."Registration No."; + AgencyNo := CompanyInformation."Agency No."; + + OnBeforeCreateXMLNodeWithoutAttributesOnPartyIdPathOnBeforeSetXmlNodeValue(CompanyArea, RegistrationNo, AgencyNo); + xmlNodeValue := Format(CompanyArea, 2) + + PadStr(CopyStr(DelChr(UpperCase(RegistrationNo), '=', RegNoExcludeCharsTxt), 1, 11), 11, '0') + + Format(AgencyNo, 3); end; '/Party[@partyType="CC" and @partyRole="receiver"]/partyName': xmlNodeValue := GetReceiverInfo(Contact.FieldNo(Name)); @@ -438,6 +447,11 @@ codeunit 11029 IntrastatReportManagementDE begin end; + [IntegrationEvent(false, false)] + local procedure OnBeforeCreateXMLNodeWithoutAttributesOnPartyIdPathOnBeforeSetXmlNodeValue(var CompanyArea: Code[10]; var RegistrationNo: Text[20]; var AgencyNo: Text[10]) + begin + end; + var IntrastatReportHeader: Record "Intrastat Report Header"; IntrastatReportLine: Record "Intrastat Report Line"; diff --git a/Apps/DK/C52012DataMigration/app/src/accounts/transactions/C5LedTransMigrator.Codeunit.al b/Apps/DK/C52012DataMigration/app/src/accounts/transactions/C5LedTransMigrator.Codeunit.al index b55ca0d0cd..13bd75b361 100644 --- a/Apps/DK/C52012DataMigration/app/src/accounts/transactions/C5LedTransMigrator.Codeunit.al +++ b/Apps/DK/C52012DataMigration/app/src/accounts/transactions/C5LedTransMigrator.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DataMigration.C5; +using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Finance.GeneralLedger.Journal; using System.Integration; -using Microsoft.Finance.GeneralLedger.Account; codeunit 1871 "C5 LedTrans Migrator" { diff --git a/Apps/DK/C52012DataMigration/app/src/general/dashboard/C5MigrDashboardMgt.Codeunit.al b/Apps/DK/C52012DataMigration/app/src/general/dashboard/C5MigrDashboardMgt.Codeunit.al index 3f4d735ec0..80ef36d120 100644 --- a/Apps/DK/C52012DataMigration/app/src/general/dashboard/C5MigrDashboardMgt.Codeunit.al +++ b/Apps/DK/C52012DataMigration/app/src/general/dashboard/C5MigrDashboardMgt.Codeunit.al @@ -5,11 +5,11 @@ namespace Microsoft.DataMigration.C5; -using System.Integration; +using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Inventory.Item; -using Microsoft.Sales.Customer; using Microsoft.Purchases.Vendor; -using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Sales.Customer; +using System.Integration; codeunit 1870 "C5 Migr. Dashboard Mgt" { diff --git a/Apps/DK/C52012DataMigration/app/src/general/dataLoader/C5DataLoader.Codeunit.al b/Apps/DK/C52012DataMigration/app/src/general/dataLoader/C5DataLoader.Codeunit.al index 90f300a34d..37dbaceea5 100644 --- a/Apps/DK/C52012DataMigration/app/src/general/dataLoader/C5DataLoader.Codeunit.al +++ b/Apps/DK/C52012DataMigration/app/src/general/dataLoader/C5DataLoader.Codeunit.al @@ -5,14 +5,14 @@ namespace Microsoft.DataMigration.C5; -using System.Integration; -using System.Utilities; -using System.Reflection; using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Inventory.Item; using Microsoft.Purchases.Vendor; using Microsoft.Sales.Customer; -using Microsoft.Inventory.Item; using Microsoft.Utilities; +using System.Integration; +using System.Reflection; +using System.Utilities; codeunit 1868 "C5 Data Loader" { diff --git a/Apps/DK/C52012DataMigration/app/src/general/wizard/C5DataMigrationMgt.Codeunit.al b/Apps/DK/C52012DataMigration/app/src/general/wizard/C5DataMigrationMgt.Codeunit.al index 3da6c32bcb..794d7e3689 100644 --- a/Apps/DK/C52012DataMigration/app/src/general/wizard/C5DataMigrationMgt.Codeunit.al +++ b/Apps/DK/C52012DataMigration/app/src/general/wizard/C5DataMigrationMgt.Codeunit.al @@ -5,12 +5,12 @@ namespace Microsoft.DataMigration.C5; -using System.Integration; +using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Finance.GeneralLedger.Setup; -using Microsoft.Sales.Customer; -using Microsoft.Purchases.Vendor; using Microsoft.Inventory.Item; -using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Purchases.Vendor; +using Microsoft.Sales.Customer; +using System.Integration; codeunit 1860 "C5 Data Migration Mgt." { diff --git a/Apps/DK/C52012DataMigration/app/src/items/C5ItemMigrator.Codeunit.al b/Apps/DK/C52012DataMigration/app/src/items/C5ItemMigrator.Codeunit.al index 3d22598d1b..757e54bdea 100644 --- a/Apps/DK/C52012DataMigration/app/src/items/C5ItemMigrator.Codeunit.al +++ b/Apps/DK/C52012DataMigration/app/src/items/C5ItemMigrator.Codeunit.al @@ -5,11 +5,11 @@ namespace Microsoft.DataMigration.C5; +using Microsoft.Foundation.Company; +using Microsoft.Inventory.BOM; using Microsoft.Pricing.Asset; using Microsoft.Pricing.Source; using System.Integration; -using Microsoft.Inventory.BOM; -using Microsoft.Foundation.Company; codeunit 1867 "C5 Item Migrator" { diff --git a/Apps/DK/C52012DataMigration/app/src/telemetry/C5Telemetry.Codeunit.al b/Apps/DK/C52012DataMigration/app/src/telemetry/C5Telemetry.Codeunit.al index cbfa45878d..625ef20a2c 100644 --- a/Apps/DK/C52012DataMigration/app/src/telemetry/C5Telemetry.Codeunit.al +++ b/Apps/DK/C52012DataMigration/app/src/telemetry/C5Telemetry.Codeunit.al @@ -5,11 +5,11 @@ namespace Microsoft.DataMigration.C5; -using System.Integration; -using Microsoft.Purchases.Vendor; -using Microsoft.Sales.Customer; using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Inventory.Item; +using Microsoft.Purchases.Vendor; +using Microsoft.Sales.Customer; +using System.Integration; codeunit 1872 "C5 Telemetry" { diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Bank/1.Setup Data/CreateBankAccPostingGrpDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Bank/1.Setup Data/CreateBankAccPostingGrpDK.Codeunit.al index c160f1fc73..ca93b11ffa 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Bank/1.Setup Data/CreateBankAccPostingGrpDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Bank/1.Setup Data/CreateBankAccPostingGrpDK.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Bank; -using Microsoft.DemoTool.Helpers; -using Microsoft.DemoData.Finance; using Microsoft.Bank.BankAccount; +using Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; codeunit 13711 "Create Bank Acc Posting Grp DK" { diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Bank/2.Master Data/CreateBankAccountDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Bank/2.Master Data/CreateBankAccountDK.Codeunit.al index e4e87600a8..fce6aeae88 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Bank/2.Master Data/CreateBankAccountDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Bank/2.Master Data/CreateBankAccountDK.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Bank; -using Microsoft.DemoTool; +using Microsoft.Bank.BankAccount; using Microsoft.DemoData.CRM; +using Microsoft.DemoTool; using Microsoft.DemoTool.Helpers; -using Microsoft.Bank.BankAccount; codeunit 13710 "Create Bank Account DK" { diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/DKContosoLocalization.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/DKContosoLocalization.Codeunit.al index ddea9d938a..b1e76137f4 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/DKContosoLocalization.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/DKContosoLocalization.Codeunit.al @@ -5,16 +5,16 @@ namespace Microsoft.DemoData.Localization; -using Microsoft.DemoTool; +using Microsoft.DemoData.Bank; using Microsoft.DemoData.Finance; +using Microsoft.DemoData.FixedAsset; +using Microsoft.DemoData.Foundation; +using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Inventory; -using Microsoft.DemoData.Bank; using Microsoft.DemoData.Jobs; -using Microsoft.DemoData.HumanResources; -using Microsoft.DemoData.Sales; -using Microsoft.DemoData.FixedAsset; using Microsoft.DemoData.Purchases; -using Microsoft.DemoData.Foundation; +using Microsoft.DemoData.Sales; +using Microsoft.DemoTool; codeunit 13750 "DK Contoso Localization" { @@ -86,7 +86,10 @@ codeunit 13750 "DK Contoso Localization" Codeunit.Run(Codeunit::"Create VAT Setup Post.Grp. DK"); end; Enum::"Contoso Demo Data Level"::"Master Data": - Codeunit.Run(Codeunit::"Create Currency Ex. Rate DK"); + begin + Codeunit.Run(Codeunit::"Create Currency Ex. Rate DK"); + Codeunit.Run(Codeunit::"Create Allocation Account DK"); + end; end; end; diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Finance/1.Setup Data/CreateDeferralTemplateDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Finance/1.Setup Data/CreateDeferralTemplateDK.Codeunit.al new file mode 100644 index 0000000000..03e4791f0d --- /dev/null +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Finance/1.Setup Data/CreateDeferralTemplateDK.Codeunit.al @@ -0,0 +1,20 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.Finance; + +codeunit 13735 "Create Deferral Template DK" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Create Deferral Template", OnDefineDeferralAccountNo, '', false, false)] + local procedure OnDefineDeferralAccountNo(var DeferralAccountNo: Code[20]) + var + CreateGLAccDK: Codeunit "Create GL Acc. DK"; + begin + DeferralAccountNo := CreateGLAccDK.Deferrals(); + end; +} \ No newline at end of file diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Finance/1.Setup Data/CreateGLAccDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Finance/1.Setup Data/CreateGLAccDK.Codeunit.al index 6eff9abec1..855cbdcfbb 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Finance/1.Setup Data/CreateGLAccDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Finance/1.Setup Data/CreateGLAccDK.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.GeneralLedger.Account; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Foundation.Enums; codeunit 13721 "Create GL Acc. DK" diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Finance/2.Master Data/CreateAllocationAccountDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Finance/2.Master Data/CreateAllocationAccountDK.Codeunit.al new file mode 100644 index 0000000000..41a5f128bb --- /dev/null +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Finance/2.Master Data/CreateAllocationAccountDK.Codeunit.al @@ -0,0 +1,48 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DemoData.Finance; + +using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.AllocationAccount; + +codeunit 13805 "Create Allocation Account DK" +{ + InherentEntitlements = X; + InherentPermissions = X; + + trigger OnRun() + var + AllocationAccount: Record "Allocation Account"; + AllocAccountDistribution: Record "Alloc. Account Distribution"; + ContosoAllocationAccount: Codeunit "Contoso Allocation Account"; + CreateDimensionValue: Codeunit "Create Dimension Value"; + CreateGLAccDK: Codeunit "Create GL Acc. DK"; + begin + ContosoAllocationAccount.InsertAllocationAccount( + Licenses(), LicensesDescription(), + AllocationAccount."Account Type"::Fixed, AllocationAccount."Document Lines Split"::"Split Amount"); + ContosoAllocationAccount.InsertAllocationAccountDistribution( + Licenses(), 10000, AllocAccountDistribution."Account Type"::Fixed, 1, 50, + AllocAccountDistribution."Destination Account Type"::"G/L Account", CreateGLAccDK.Itexpenses(), CreateDimensionValue.AdministrationDepartment(), ''); + ContosoAllocationAccount.InsertAllocationAccountDistribution( + Licenses(), 20000, AllocAccountDistribution."Account Type"::Fixed, 1, 50, + AllocAccountDistribution."Destination Account Type"::"G/L Account", CreateGLAccDK.Itexpenses(), CreateDimensionValue.SalesDepartment(), ''); + end; + + procedure Licenses(): Code[20] + begin + exit(LicensesTok); + end; + + procedure LicensesDescription(): Text[100] + begin + exit(YearlyLicenseFeeTok); + end; + + var + LicensesTok: Label 'LICENSES', MaxLength = 20; + YearlyLicenseFeeTok: Label 'Yearly license fee, design software', MaxLength = 100; +} \ No newline at end of file diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Finance/2.Master Data/CreateDKGLAccounts.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Finance/2.Master Data/CreateDKGLAccounts.Codeunit.al index 983dfd18b3..a33bdbfe06 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Finance/2.Master Data/CreateDKGLAccounts.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Finance/2.Master Data/CreateDKGLAccounts.Codeunit.al @@ -5,14 +5,14 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Inventory.Setup; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Common; -using Microsoft.DemoData.Service; -using Microsoft.DemoData.Manufacturing; using Microsoft.DemoData.FixedAsset; using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Manufacturing; +using Microsoft.DemoData.Service; +using Microsoft.DemoTool.Helpers; +using Microsoft.Inventory.Setup; codeunit 13699 "Create DK GL Accounts" { diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/FixedAsset/1. SetupData/CreateFAPostingGrpDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/FixedAsset/1. SetupData/CreateFAPostingGrpDK.Codeunit.al index d7be513f89..3c3cfaf13c 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/FixedAsset/1. SetupData/CreateFAPostingGrpDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/FixedAsset/1. SetupData/CreateFAPostingGrpDK.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.FixedAsset; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; using Microsoft.FixedAssets.FixedAsset; codeunit 13708 "Create FA Posting Grp. DK" diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Inventory/2.Master Data/CreateInvPostingSetupDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Inventory/2.Master Data/CreateInvPostingSetupDK.Codeunit.al index f0d0976959..a0b72c1f25 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Inventory/2.Master Data/CreateInvPostingSetupDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Inventory/2.Master Data/CreateInvPostingSetupDK.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Item; using Microsoft.DemoData.Finance; +using Microsoft.Inventory.Item; codeunit 13725 "Create Inv. Posting Setup DK" { diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Inventory/2.Master Data/CreateLocationDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Inventory/2.Master Data/CreateLocationDK.Codeunit.al index 75725e130a..d2db5b0cf8 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Inventory/2.Master Data/CreateLocationDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Inventory/2.Master Data/CreateLocationDK.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Location; using Microsoft.DemoData.Foundation; +using Microsoft.Inventory.Location; codeunit 13723 "Create Location DK" { diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Jobs/1.Setup Data/JobPostingGroupDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Jobs/1.Setup Data/JobPostingGroupDK.Codeunit.al index 49ccaeec29..730dc0953b 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Jobs/1.Setup Data/JobPostingGroupDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Jobs/1.Setup Data/JobPostingGroupDK.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Jobs; -using Microsoft.Projects.Project.Job; using Microsoft.DemoData.Finance; +using Microsoft.Projects.Project.Job; codeunit 13731 "Job Posting Group DK" { diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Jobs/3.Transactions/CreateJobDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Jobs/3.Transactions/CreateJobDK.Codeunit.al index a2fb0bbc92..9c602cf221 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Jobs/3.Transactions/CreateJobDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Jobs/3.Transactions/CreateJobDK.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Jobs; -using Microsoft.Projects.Project.Job; using Microsoft.DemoData.Foundation; +using Microsoft.Projects.Project.Job; codeunit 13724 "Create Job DK" { diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Purchases/1.Setup Data/CreateVendorPostingGroupDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Purchases/1.Setup Data/CreateVendorPostingGroupDK.Codeunit.al index ed2d98b844..84e8787796 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Purchases/1.Setup Data/CreateVendorPostingGroupDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Purchases/1.Setup Data/CreateVendorPostingGroupDK.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; using Microsoft.DemoData.Finance; +using Microsoft.Purchases.Vendor; codeunit 13727 "Create Vendor Posting Group DK" { diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Purchases/2.Master Data/CreatePurchDimValueDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Purchases/2.Master Data/CreatePurchDimValueDK.Codeunit.al index 6319850dfa..60e7f6bde3 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Purchases/2.Master Data/CreatePurchDimValueDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Purchases/2.Master Data/CreatePurchDimValueDK.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Finance.Dimension; using Microsoft.DemoData.Finance; +using Microsoft.Finance.Dimension; using Microsoft.Purchases.Vendor; codeunit 13718 "Create Purch. Dim. Value DK" diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Purchases/2.Master Data/CreateVendorDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Purchases/2.Master Data/CreateVendorDK.Codeunit.al index c076135f6d..ca751cd511 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Purchases/2.Master Data/CreateVendorDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Purchases/2.Master Data/CreateVendorDK.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; -using Microsoft.DemoData.Inventory; -using Microsoft.DemoData.Foundation; using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Foundation; +using Microsoft.DemoData.Inventory; +using Microsoft.Purchases.Vendor; codeunit 13730 "Create Vendor DK" { diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Purchases/3.Transactional Data/CreatePurchaseDocumentDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Purchases/3.Transactional Data/CreatePurchaseDocumentDK.Codeunit.al index a8bc9f703a..8800084f46 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Purchases/3.Transactional Data/CreatePurchaseDocumentDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Purchases/3.Transactional Data/CreatePurchaseDocumentDK.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Document; using Microsoft.Projects.Resources.Resource; +using Microsoft.Purchases.Document; codeunit 13722 "Create Purchase Document DK" { diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Sales/1.Setup Data/CreateCustPostingGroupDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Sales/1.Setup Data/CreateCustPostingGroupDK.Codeunit.al index 636b08773e..7232c8f0f3 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Sales/1.Setup Data/CreateCustPostingGroupDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Sales/1.Setup Data/CreateCustPostingGroupDK.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoData.Finance; +using Microsoft.Sales.Customer; codeunit 13732 "Create Cust. Posting Group DK" { diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Sales/2.Master Data/CreateCustomerDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Sales/2.Master Data/CreateCustomerDK.Codeunit.al index 8c17271b5e..354fbc2f76 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Sales/2.Master Data/CreateCustomerDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Sales/2.Master Data/CreateCustomerDK.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; -using Microsoft.DemoData.Inventory; -using Microsoft.DemoData.Foundation; using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Foundation; +using Microsoft.DemoData.Inventory; +using Microsoft.Sales.Customer; codeunit 13736 "Create Customer DK" { diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Sales/2.Master Data/CreateSalesDimValueDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Sales/2.Master Data/CreateSalesDimValueDK.Codeunit.al index 766cbc1f91..3b30d0db22 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Sales/2.Master Data/CreateSalesDimValueDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Sales/2.Master Data/CreateSalesDimValueDK.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Finance.Dimension; using Microsoft.DemoData.Finance; +using Microsoft.Finance.Dimension; using Microsoft.Sales.Customer; codeunit 13719 "Create Sales Dim Value DK" diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Sales/2.Master Data/CreateShiptoAddressDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Sales/2.Master Data/CreateShiptoAddressDK.Codeunit.al index af49db8cef..a9404d86cd 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Sales/2.Master Data/CreateShiptoAddressDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/Sales/2.Master Data/CreateShiptoAddressDK.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoTool; +using Microsoft.Sales.Customer; codeunit 13737 "Create Ship-to Address DK" { diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoTool/Contoso Helpers/ContosoGLAccountDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoTool/Contoso Helpers/ContosoGLAccountDK.Codeunit.al index 1a64cd85a5..50d2a147fd 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoTool/Contoso Helpers/ContosoGLAccountDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoTool/Contoso Helpers/ContosoGLAccountDK.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoTool.Helpers; +using Microsoft.DemoTool; using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Foundation.Enums; -using Microsoft.DemoTool; codeunit 13747 "Contoso GL Account DK" { diff --git a/Apps/DK/DKCore/app/src/Codeunits/DKCoreEventSubscribers.Codeunit.al b/Apps/DK/DKCore/app/src/Codeunits/DKCoreEventSubscribers.Codeunit.al index 5342ec16c1..e7fb8160a9 100644 --- a/Apps/DK/DKCore/app/src/Codeunits/DKCoreEventSubscribers.Codeunit.al +++ b/Apps/DK/DKCore/app/src/Codeunits/DKCoreEventSubscribers.Codeunit.al @@ -6,13 +6,13 @@ namespace Microsoft.Finance.Core; using Microsoft.Bank.BankAccount; +using Microsoft.Finance.GeneralLedger.Posting; +using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Finance.VAT.Setup; +using Microsoft.Foundation.Company; using Microsoft.Purchases.Vendor; using Microsoft.Sales.Customer; using System.Environment; -using Microsoft.Finance.GeneralLedger.Posting; -using Microsoft.Finance.GeneralLedger.Setup; -using Microsoft.Foundation.Company; using System.Environment.Configuration; using System.IO; using System.Security.AccessControl; diff --git a/Apps/DK/EDocumentFormatOIOUBL/app/src/EDocImportOIOUBL.Codeunit.al b/Apps/DK/EDocumentFormatOIOUBL/app/src/EDocImportOIOUBL.Codeunit.al index b1f8515b83..08c5f5b409 100644 --- a/Apps/DK/EDocumentFormatOIOUBL/app/src/EDocImportOIOUBL.Codeunit.al +++ b/Apps/DK/EDocumentFormatOIOUBL/app/src/EDocImportOIOUBL.Codeunit.al @@ -4,15 +4,15 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.eServices.EDocument; -using System.Utilities; +using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Inventory.Item; using Microsoft.Purchases.Document; +using Microsoft.Purchases.Vendor; using Microsoft.Sustainability.Certificate; using Microsoft.Sustainability.Codes; using Microsoft.Sustainability.Setup; using System.IO; -using Microsoft.Purchases.Vendor; -using Microsoft.Finance.GeneralLedger.Setup; -using Microsoft.Inventory.Item; +using System.Utilities; codeunit 13911 "EDoc Import OIOUBL" { diff --git a/Apps/DK/EDocumentFormatOIOUBL/app/src/OIOUBLFormat.Codeunit.al b/Apps/DK/EDocumentFormatOIOUBL/app/src/OIOUBLFormat.Codeunit.al index 394399cea1..da40ec5d56 100644 --- a/Apps/DK/EDocumentFormatOIOUBL/app/src/OIOUBLFormat.Codeunit.al +++ b/Apps/DK/EDocumentFormatOIOUBL/app/src/OIOUBLFormat.Codeunit.al @@ -5,19 +5,19 @@ namespace Microsoft.EServices.EDocument; using Microsoft.Foundation.Company; +using Microsoft.Inventory.Item; using Microsoft.Purchases.Document; -using Microsoft.Sustainability.Account; -using Microsoft.Sustainability.Certificate; using Microsoft.Sales.Document; +using Microsoft.Sales.FinanceCharge; using Microsoft.Sales.History; +using Microsoft.Sales.Reminder; using Microsoft.Service.Document; using Microsoft.Service.History; -using Microsoft.Sales.FinanceCharge; -using Microsoft.Sales.Reminder; -using System.Utilities; -using System.IO; +using Microsoft.Sustainability.Account; +using Microsoft.Sustainability.Certificate; using Microsoft.Sustainability.Setup; -using Microsoft.Inventory.Item; +using System.IO; +using System.Utilities; codeunit 13910 "OIOUBL Format" implements "E-Document" { diff --git a/Apps/DK/EDocument_DK/demo data/3.Transactions/CreateDemoEDocsDK.Codeunit.al b/Apps/DK/EDocument_DK/demo data/3.Transactions/CreateDemoEDocsDK.Codeunit.al new file mode 100644 index 0000000000..25bf527685 --- /dev/null +++ b/Apps/DK/EDocument_DK/demo data/3.Transactions/CreateDemoEDocsDK.Codeunit.al @@ -0,0 +1,110 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.Localization; + +using Microsoft.DemoData.Common; +using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Purchases; +using Microsoft.eServices.EDocument.DemoData; +using Microsoft.eServices.EDocument.Processing.Import.Purchase; +using Microsoft.Purchases.Document; + +codeunit 13670 "Create Demo EDocs DK" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + var + ContosoInboundEDocument: Codeunit "Contoso Inbound E-Document"; + + trigger OnRun() + begin + GenerateContosoInboundEDocuments(); + end; + + procedure GetShipmentDHLInvoiceDescription(): Text[100] + var + ShipmentDHLLbl: Label 'Shipment, DHL', MaxLength = 100; + begin + exit(ShipmentDHLLbl); + end; + + local procedure GenerateContosoInboundEDocuments() + var + CreateVendor: Codeunit "Create Vendor"; + CreateGLAccDK: Codeunit "Create GL Acc. DK"; + CreateCommonUnitOfMeasure: Codeunit "Create Common Unit Of Measure"; + CreateEDocumentMasterData: Codeunit "Create E-Document Master Data"; + CreateJobItem: Codeunit "Create Job Item"; + CreateAllocationAccountDK: Codeunit "Create Allocation Account DK"; + CreateDeferralTemplate: Codeunit "Create Deferral Template"; + EDocSamplePurchaseInvoice: Codeunit "E-Doc Sample Purchase Invoice"; + AccountingServicesJanuaryLbl: Label 'Accounting support period: January', MaxLength = 100; + AccountingServicesFebruaryLbl: Label 'Accounting support period: February', MaxLength = 100; + AccountingServicesMarchLbl: Label 'Accounting support period: March', MaxLength = 100; + AccountingServicesDecemberLbl: Label 'Accounting support period: December', MaxLength = 100; + AccountingServicesMayLbl: Label 'Accounting support period: May', MaxLength = 100; + begin + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.EUGraphicDesign(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '245', 750); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"Allocation Account", CreateAllocationAccountDK.Licenses(), + CreateAllocationAccountDK.LicensesDescription(), 6, 500, CreateDeferralTemplate.DeferralCode1Y(), ''); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1419', 300); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccDK.Auditingaccountingassistance(), + AccountingServicesJanuaryLbl, 6, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1425', 950); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccDK.Auditingaccountingassistance(), + AccountingServicesFebruaryLbl, 19, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1437', 100); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccDK.Auditingaccountingassistance(), + AccountingServicesMarchLbl, 2, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1479', 800); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccDK.Auditingaccountingassistance(), + AccountingServicesMayLbl, 16, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1456', 350); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccDK.Auditingaccountingassistance(), + AccountingServicesDecemberLbl, 7, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.ExportFabrikam(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), 'F12938', 890); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.WholeDecafBeansColombia(), + '', 50, 5, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateJobItem.ItemConsumable(), + '', 50, 65, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccDK.FreightExpense(), + GetShipmentDHLInvoiceDescription(), 1, 60, '', ''); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticWorldImporter(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '000982', 0); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.SmartGrindHome(), + '', 100, 299, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.PrecisionGrindHome(), + '', 50, 199, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.Generate(); + end; + +} diff --git a/Apps/DK/EDocument_DK/demo data/3.Transactions/CreateEDocSampleInvDK.Codeunit.al b/Apps/DK/EDocument_DK/demo data/3.Transactions/CreateEDocSampleInvDK.Codeunit.al new file mode 100644 index 0000000000..75c98cf654 --- /dev/null +++ b/Apps/DK/EDocument_DK/demo data/3.Transactions/CreateEDocSampleInvDK.Codeunit.al @@ -0,0 +1,57 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.Localization; + +using Microsoft.DemoData.Common; +using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Purchases; +using Microsoft.eServices.EDocument.DemoData; +using Microsoft.eServices.EDocument.Processing.Import.Purchase; +using Microsoft.Purchases.Document; + +codeunit 13671 "Create E-Doc Sample Inv. DK" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + var + EDocSamplePurchaseInvoice: Codeunit "E-Doc Sample Purchase Invoice"; + CreateVendor: Codeunit "Create Vendor"; + CreateEDocumentMasterData: Codeunit "Create E-Document Master Data"; + CreateJobItem: Codeunit "Create Job Item"; + CreateCommonUnitOfMeasure: Codeunit "Create Common Unit Of Measure"; + CreateDemoEDocsDK: Codeunit "Create Demo EDocs DK"; + CreateAllocationAccountDK: Codeunit "Create Allocation Account DK"; + + trigger OnRun() + var + YearlyLicenstCostLbl: Label 'Yearly license cost mapped to a G/L account'; + BasicCoffeeEquipmentLbl: Label 'Basic coffee equipment mapped to vendor''s Item References'; + CoffeeBeansAndPartsLbl: Label 'Coffee beans and parts with shipping cost that needs human intervention'; + begin + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.ExportFabrikam(), '108239', CoffeeBeansAndPartsLbl, 3077.5); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.WholeDecafBeansColombia(), '', 50, 180, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateJobItem.ItemConsumable(), '', 50, 65, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::" ", '', CreateDemoEDocsDK.GetShipmentDHLInvoiceDescription(), 1, 60, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.DomesticWorldImporter(), '108240', BasicCoffeeEquipmentLbl); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.SmartGrindHome(), '', 100, 299, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.PrecisionGrindHome(), '', 50, 199, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.EUGraphicDesign(), '108426', YearlyLicenstCostLbl, 1250); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::" ", '', CreateAllocationAccountDK.LicensesDescription(), 1, 5000, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + end; +} diff --git a/Apps/DK/EDocument_DK/demo data/EDocDemodataDK.Codeunit.al b/Apps/DK/EDocument_DK/demo data/EDocDemodataDK.Codeunit.al new file mode 100644 index 0000000000..83f341dce4 --- /dev/null +++ b/Apps/DK/EDocument_DK/demo data/EDocDemodataDK.Codeunit.al @@ -0,0 +1,34 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DemoData.Localization; + +using Microsoft.DemoTool; + +codeunit 13674 "E-Doc. Demodata DK" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Contoso Demo Tool", 'OnAfterGeneratingDemoData', '', false, false)] + local procedure LocalizationContosoDemoData(Module: Enum "Contoso Demo Data Module"; ContosoDemoDataLevel: Enum "Contoso Demo Data Level") + begin + if Module <> Enum::"Contoso Demo Data Module"::"E-Document Contoso Module" then + exit; + EDocumentModule(ContosoDemoDataLevel); + end; + + local procedure EDocumentModule(ContosoDemoDataLevel: Enum "Contoso Demo Data Level") + begin + case ContosoDemoDataLevel of + Enum::"Contoso Demo Data Level"::"Transactional Data": + begin + Codeunit.Run(Codeunit::"Create Demo EDocs DK"); + Codeunit.Run(Codeunit::"Create E-Doc Sample Inv. DK"); + end; + end; + end; +} \ No newline at end of file diff --git a/Apps/DK/EDocument_DK/demo data/ExtensionLogo.png b/Apps/DK/EDocument_DK/demo data/ExtensionLogo.png new file mode 100644 index 0000000000..79a3aa399d Binary files /dev/null and b/Apps/DK/EDocument_DK/demo data/ExtensionLogo.png differ diff --git a/Apps/DK/EDocument_DK/demo data/app.json b/Apps/DK/EDocument_DK/demo data/app.json new file mode 100644 index 0000000000..cfb44325ef --- /dev/null +++ b/Apps/DK/EDocument_DK/demo data/app.json @@ -0,0 +1,55 @@ +{ + "id": "f3e4e6f8-2ba7-4202-834d-141ed9b89192", + "name": "E-Document Core Demo Data (DK)", + "publisher": "Microsoft", + "brief": "The Dynamics 365 Business Central E-Documents module enables different models of electronic invoicing, available for additional localizations.", + "description": "Business Central's E-Documents module is the foundation layer for all e-invoicing standards covering most common processes, but it can be used for other electronic documents. The module is easily extendable with the country-based e-invoicing apps. The E-Documents app covers both sales and purchase processes and can have different lifecycles from standard invoices in Business Central.", + "version": "28.0.0.0", + "privacyStatement": "https://go.microsoft.com/fwlink/?LinkId=724009", + "EULA": "https://go.microsoft.com/fwlink/?linkid=2009120", + "help": "https://go.microsoft.com/fwlink/?linkid=2204541", + "url": "https://go.microsoft.com/fwlink/?LinkId=724011", + "logo": "ExtensionLogo.png", + "contextSensitiveHelpUrl": "https://go.microsoft.com/fwlink/?linkid=2206603", + "dependencies": [ + { + "id": "e1d97edc-c239-46b4-8d84-6368bdf67c8b", + "name": "E-Document Core", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "de0dddf3-9917-430d-8d20-6e7679a08500", + "name": "E-Document Core Demo Data", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "5a0b41e9-7a42-4123-d521-2265186cfb31", + "name": "Contoso Coffee Demo Dataset", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "5b0b41a1-7b42-1134-a521-2265186cfb33", + "name": "Contoso Coffee Demo Dataset (DK)", + "publisher": "Microsoft", + "version": "28.0.0.0" + } + ], + "screenshots": [], + "platform": "28.0.0.0", + "idRanges": [ + { + "from": 13670, + "to": 13674 + } + ], + "resourceExposurePolicy": { + "allowDebugging": true, + "allowDownloadingSource": true, + "includeSourceInSymbolFile": true + }, + "application": "28.0.0.0", + "target": "OnPrem" +} diff --git a/Apps/DK/FIK/app/src/codeunits/FIKInstall.Codeunit.al b/Apps/DK/FIK/app/src/codeunits/FIKInstall.Codeunit.al index 8c3d484ddd..c419d7eb99 100644 --- a/Apps/DK/FIK/app/src/codeunits/FIKInstall.Codeunit.al +++ b/Apps/DK/FIK/app/src/codeunits/FIKInstall.Codeunit.al @@ -9,11 +9,11 @@ using Microsoft.Bank.BankAccount; using Microsoft.Bank.Reconciliation; using Microsoft.Finance.GeneralLedger.Journal; using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Foundation.Company; using Microsoft.Purchases.Document; using Microsoft.Purchases.History; using Microsoft.Purchases.Payables; using Microsoft.Purchases.Vendor; -using Microsoft.Foundation.Company; using System.Environment; using System.Privacy; diff --git a/Apps/DK/NemhandelNotification/app/src/CompaniesNemhandelStatus.PageExt.al b/Apps/DK/NemhandelNotification/app/src/CompaniesNemhandelStatus.PageExt.al index 7dd2951343..00633423f9 100644 --- a/Apps/DK/NemhandelNotification/app/src/CompaniesNemhandelStatus.PageExt.al +++ b/Apps/DK/NemhandelNotification/app/src/CompaniesNemhandelStatus.PageExt.al @@ -1,7 +1,7 @@ namespace Microsoft.EServices; -using Microsoft.Foundation.Company; using Microsoft.Finance.GeneralLedger.Ledger; +using Microsoft.Foundation.Company; pageextension 13609 "Companies Nemhandel Status" extends Companies { diff --git a/Apps/DK/NemhandelNotification/app/src/NemhandelStatusMgt.Codeunit.al b/Apps/DK/NemhandelNotification/app/src/NemhandelStatusMgt.Codeunit.al index a950173623..7c1e236772 100644 --- a/Apps/DK/NemhandelNotification/app/src/NemhandelStatusMgt.Codeunit.al +++ b/Apps/DK/NemhandelNotification/app/src/NemhandelStatusMgt.Codeunit.al @@ -2,10 +2,10 @@ namespace Microsoft.EServices; using Microsoft.Foundation.Company; using Microsoft.Utilities; +using System.DataAdministration; +using System.Environment; using System.Environment.Configuration; using System.Privacy; -using System.Environment; -using System.DataAdministration; using System.Telemetry; using System.Utilities; diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Bank/1.Setup Data/CreateESPaymentMethod.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Bank/1.Setup Data/CreateESPaymentMethod.Codeunit.al index fddfb0ba7b..9d15d67ed5 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Bank/1.Setup Data/CreateESPaymentMethod.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Bank/1.Setup Data/CreateESPaymentMethod.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Bank; -using Microsoft.Bank.Payment; -using Microsoft.Sales.Receivables; using Microsoft.Bank.BankAccount; +using Microsoft.Bank.Payment; using Microsoft.DemoTool.Helpers; +using Microsoft.Sales.Receivables; codeunit 10813 "Create ES Payment Method" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/ESContosoLocalization.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/ESContosoLocalization.Codeunit.al index a34dd2912f..de6e9eccc6 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/ESContosoLocalization.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/ESContosoLocalization.Codeunit.al @@ -6,13 +6,13 @@ namespace Microsoft.DemoData.Localization; using Microsoft.DemoData.Bank; -using Microsoft.DemoData.Purchases; using Microsoft.DemoData.CRM; +using Microsoft.DemoData.Finance; using Microsoft.DemoData.FixedAsset; using Microsoft.DemoData.Foundation; -using Microsoft.DemoData.Inventory; using Microsoft.DemoData.HumanResources; -using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Inventory; +using Microsoft.DemoData.Purchases; using Microsoft.DemoData.Sales; using Microsoft.DemoTool; @@ -142,6 +142,7 @@ codeunit 10824 "ES Contoso Localization" begin Codeunit.Run(Codeunit::"Create ES Column Layout"); Codeunit.Run(Codeunit::"Create ES Currency Exch"); + Codeunit.Run(Codeunit::"Create Allocation Account ES"); end; end; end; diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/1.Setup Data/CreateDeferralTemplateES.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/1.Setup Data/CreateDeferralTemplateES.Codeunit.al new file mode 100644 index 0000000000..a1a5060198 --- /dev/null +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/1.Setup Data/CreateDeferralTemplateES.Codeunit.al @@ -0,0 +1,20 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.Finance; + +codeunit 10885 "Create Deferral Template ES" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Create Deferral Template", OnDefineDeferralAccountNo, '', false, false)] + local procedure OnDefineDeferralAccountNo(var DeferralAccountNo: Code[20]) + var + CreateESGLAccounts: Codeunit "Create ES GL Accounts"; + begin + DeferralAccountNo := CreateESGLAccounts.OtherCreditors(); + end; +} \ No newline at end of file diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/1.Setup Data/CreateESGLAccounts.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/1.Setup Data/CreateESGLAccounts.Codeunit.al index dd0e1c75e3..8c388bb1c6 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/1.Setup Data/CreateESGLAccounts.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/1.Setup Data/CreateESGLAccounts.Codeunit.al @@ -5,16 +5,16 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.GeneralLedger.Account; -using Microsoft.Foundation.Enums; -using Microsoft.Inventory.Setup; using Microsoft.DemoData.Common; -using Microsoft.DemoData.Service; -using Microsoft.DemoData.Manufacturing; using Microsoft.DemoData.FixedAsset; using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Manufacturing; +using Microsoft.DemoData.Service; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Foundation.Enums; +using Microsoft.Inventory.Setup; codeunit 10780 "Create ES GL Accounts" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/1.Setup Data/CreateESGeneralLedgerSetup.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/1.Setup Data/CreateESGeneralLedgerSetup.Codeunit.al index 66d270b083..ba6c3fcce1 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/1.Setup Data/CreateESGeneralLedgerSetup.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/1.Setup Data/CreateESGeneralLedgerSetup.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.DemoData.Foundation; +using Microsoft.Finance.GeneralLedger.Setup; codeunit 10827 "Create ES General Ledger Setup" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/1.Setup Data/CreateESPostingGroups.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/1.Setup Data/CreateESPostingGroups.Codeunit.al index b1fa928385..8944d3b60d 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/1.Setup Data/CreateESPostingGroups.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/1.Setup Data/CreateESPostingGroups.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Setup; codeunit 10793 "Create ES Posting Groups" { @@ -43,14 +43,18 @@ codeunit 10793 "Create ES Posting Groups" ContosoGenPostingSetup.InsertGeneralPostingSetup('', NoVat(), '', '', CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.ChangesInStockPosting(), '', '', '', '', '', '', CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.BillOfMaterTradeCred(), CreateESGLAccounts.ChangesInRawMaterials()); ContosoGenPostingSetup.InsertGeneralPostingSetup('', CreatePostingGroups.RetailPostingGroup(), '', '', CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.ChangesInStockPosting(), '', '', '', '', '', '', CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.BillOfMaterTradeCred(), CreateESGLAccounts.ChangesInRawMaterials()); ContosoGenPostingSetup.InsertGeneralPostingSetup('', CreatePostingGroups.ServicesPostingGroup(), '', '', CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.ChangesInStockPosting(), '', '', '', '', '', '', CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.BillOfMaterTradeCred(), CreateESGLAccounts.ChangesInRawMaterials()); + ContosoGenPostingSetup.InsertGeneralPostingSetup('', CreatePostingGroups.MiscPostingGroup(), '', '', CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.ChangesInStockPosting(), '', '', '', '', '', '', CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.BillOfMaterTradeCred(), CreateESGLAccounts.ChangesInRawMaterials()); ContosoGenPostingSetup.InsertGeneralPostingSetup(CreatePostingGroups.DomesticPostingGroup(), NoVat(), '', '', CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.ChangesInStockPosting(), '', '', CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.BillOfMaterTradeCred(), CreateESGLAccounts.ChangesInRawMaterials()); ContosoGenPostingSetup.InsertGeneralPostingSetup(CreatePostingGroups.DomesticPostingGroup(), CreatePostingGroups.RetailPostingGroup(), CreateESGLAccounts.NationalGoodsSales(), CreateESGLAccounts.NationalPurchases(), CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.ChangesInStockPosting(), '', '', CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.BillOfMaterTradeCred(), CreateESGLAccounts.ChangesInRawMaterials()); ContosoGenPostingSetup.InsertGeneralPostingSetup(CreatePostingGroups.DomesticPostingGroup(), CreatePostingGroups.ServicesPostingGroup(), CreateESGLAccounts.NationalServices(), CreateESGLAccounts.NationalPurchases(), CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.ChangesInStockPosting(), '', '', CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.BillOfMaterTradeCred(), CreateESGLAccounts.ChangesInRawMaterials()); + ContosoGenPostingSetup.InsertGeneralPostingSetup(CreatePostingGroups.DomesticPostingGroup(), CreatePostingGroups.MiscPostingGroup(), CreateESGLAccounts.NationalGoodsSales(), CreateESGLAccounts.NationalPurchases(), CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.ChangesInStockPosting(), '', '', CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.BillOfMaterTradeCred(), CreateESGLAccounts.ChangesInRawMaterials()); ContosoGenPostingSetup.InsertGeneralPostingSetup(CreatePostingGroups.EUPostingGroup(), CreatePostingGroups.RetailPostingGroup(), CreateESGLAccounts.GoodsSalesEu(), CreateESGLAccounts.EuPurchases(), CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.ChangesInStockPosting(), '', '', CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.BillOfMaterTradeCred(), CreateESGLAccounts.ChangesInRawMaterials()); + ContosoGenPostingSetup.InsertGeneralPostingSetup(CreatePostingGroups.EUPostingGroup(), CreatePostingGroups.MiscPostingGroup(), CreateESGLAccounts.GoodsSalesEu(), CreateESGLAccounts.EuPurchases(), CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.ChangesInStockPosting(), '', '', CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.BillOfMaterTradeCred(), CreateESGLAccounts.ChangesInRawMaterials()); ContosoGenPostingSetup.InsertGeneralPostingSetup(CreatePostingGroups.ExportPostingGroup(), NoVat(), '', '', CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.ChangesInStockPosting(), '', '', CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.BillOfMaterTradeCred(), CreateESGLAccounts.ChangesInRawMaterials()); ContosoGenPostingSetup.InsertGeneralPostingSetup(CreatePostingGroups.ExportPostingGroup(), CreatePostingGroups.RetailPostingGroup(), CreateESGLAccounts.IntNonEuGoodsSales(), CreateESGLAccounts.IntNonEuPurch(), CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.ChangesInStockPosting(), '', '', CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.BillOfMaterTradeCred(), CreateESGLAccounts.ChangesInRawMaterials()); ContosoGenPostingSetup.InsertGeneralPostingSetup(CreatePostingGroups.ExportPostingGroup(), CreatePostingGroups.ServicesPostingGroup(), CreateESGLAccounts.IntServicesNonEu(), '', CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.ChangesInStockPosting(), '', '', CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.BillOfMaterTradeCred(), CreateESGLAccounts.ChangesInRawMaterials()); + ContosoGenPostingSetup.InsertGeneralPostingSetup(CreatePostingGroups.ExportPostingGroup(), CreatePostingGroups.MiscPostingGroup(), CreateESGLAccounts.IntNonEuGoodsSales(), CreateESGLAccounts.IntNonEuPurch(), CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.ChangesInStockPosting(), '', '', CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.GoodsSalesReturnAllow(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ReturnAndAllowOnGoods(), CreateESGLAccounts.ChangesInStockPosting(), CreateESGLAccounts.BillOfMaterTradeCred(), CreateESGLAccounts.ChangesInRawMaterials()); ContosoGenPostingSetup.SetOverwriteData(false); UpdateJobSalesAdjAcc('', NoVat(), CreateESGLAccounts.ProjectsSales(), CreateESGLAccounts.ProjectCostsRetail()); diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/2.Master Data/CreateAllocationAccountES.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/2.Master Data/CreateAllocationAccountES.Codeunit.al new file mode 100644 index 0000000000..724beb7d15 --- /dev/null +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/2.Master Data/CreateAllocationAccountES.Codeunit.al @@ -0,0 +1,48 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DemoData.Finance; + +using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.AllocationAccount; + +codeunit 10884 "Create Allocation Account ES" +{ + InherentEntitlements = X; + InherentPermissions = X; + + trigger OnRun() + var + AllocationAccount: Record "Allocation Account"; + AllocAccountDistribution: Record "Alloc. Account Distribution"; + ContosoAllocationAccount: Codeunit "Contoso Allocation Account"; + CreateDimensionValue: Codeunit "Create Dimension Value"; + CreateESGLAccounts: Codeunit "Create ES GL Accounts"; + begin + ContosoAllocationAccount.InsertAllocationAccount( + Licenses(), LicensesDescription(), + AllocationAccount."Account Type"::Fixed, AllocationAccount."Document Lines Split"::"Split Amount"); + ContosoAllocationAccount.InsertAllocationAccountDistribution( + Licenses(), 10000, AllocAccountDistribution."Account Type"::Fixed, 1, 50, + AllocAccountDistribution."Destination Account Type"::"G/L Account", CreateESGLAccounts.OtherServices(), CreateDimensionValue.AdministrationDepartment(), ''); + ContosoAllocationAccount.InsertAllocationAccountDistribution( + Licenses(), 20000, AllocAccountDistribution."Account Type"::Fixed, 1, 50, + AllocAccountDistribution."Destination Account Type"::"G/L Account", CreateESGLAccounts.OtherServices(), CreateDimensionValue.SalesDepartment(), ''); + end; + + procedure Licenses(): Code[20] + begin + exit(LicensesTok); + end; + + procedure LicensesDescription(): Text[100] + begin + exit(YearlyLicenseFeeTok); + end; + + var + LicensesTok: Label 'LICENSES', MaxLength = 20; + YearlyLicenseFeeTok: Label 'Yearly license fee, design software', MaxLength = 100; +} diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/2.Master Data/CreateESCurrencyExch.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/2.Master Data/CreateESCurrencyExch.Codeunit.al index 11cd5442e1..c9a5e423cf 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/2.Master Data/CreateESCurrencyExch.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/2.Master Data/CreateESCurrencyExch.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.Currency; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.Currency; codeunit 10834 "Create ES Currency Exch" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/2.Master Data/CreateESVatRegNoFormat.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/2.Master Data/CreateESVatRegNoFormat.Codeunit.al index bcd5891422..793433e782 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/2.Master Data/CreateESVatRegNoFormat.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/2.Master Data/CreateESVatRegNoFormat.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.VAT.Registration; using Microsoft.DemoData.Foundation; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.VAT.Registration; codeunit 10838 "Create ES Vat Reg. No. Format" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/2.Master Data/CreateESVatStatementLine.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/2.Master Data/CreateESVatStatementLine.Codeunit.al index 942ace9515..d5e9df1ee7 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/2.Master Data/CreateESVatStatementLine.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Finance/2.Master Data/CreateESVatStatementLine.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.VAT.Reporting; -using Microsoft.Foundation.Enums; using Microsoft.DemoTool; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.VAT.Reporting; +using Microsoft.Foundation.Enums; codeunit 10832 "Create ES VAT Statement Line" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/FixedAsset/1.Setup Data/CreateESFAPostingGroup.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/FixedAsset/1.Setup Data/CreateESFAPostingGroup.Codeunit.al index f225cbf0da..9c213048ff 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/FixedAsset/1.Setup Data/CreateESFAPostingGroup.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/FixedAsset/1.Setup Data/CreateESFAPostingGroup.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.FixedAsset; -using Microsoft.FixedAssets.FixedAsset; using Microsoft.DemoData.Finance; +using Microsoft.FixedAssets.FixedAsset; codeunit 10807 "Create ES FA Posting Group" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Foundation/1.Setup Data/CreateESCompanyInformation.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Foundation/1.Setup Data/CreateESCompanyInformation.Codeunit.al index 1c39324eed..9468296911 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Foundation/1.Setup Data/CreateESCompanyInformation.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Foundation/1.Setup Data/CreateESCompanyInformation.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.Foundation.Company; using Microsoft.DemoTool; +using Microsoft.Foundation.Company; codeunit 10785 "Create ES Company Information" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Foundation/1.Setup Data/CreateESNoSeries.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Foundation/1.Setup Data/CreateESNoSeries.Codeunit.al index 3040d7e707..50152b258b 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Foundation/1.Setup Data/CreateESNoSeries.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Foundation/1.Setup Data/CreateESNoSeries.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.Foundation.NoSeries; using Microsoft.DemoTool.Helpers; +using Microsoft.Foundation.NoSeries; codeunit 10841 "Create ES No. Series" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Foundation/1.Setup Data/CreateESPaymentTerms.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Foundation/1.Setup Data/CreateESPaymentTerms.Codeunit.al index e324e3dd9c..a8caeef7c7 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Foundation/1.Setup Data/CreateESPaymentTerms.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Foundation/1.Setup Data/CreateESPaymentTerms.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Foundation; -using Microsoft.Foundation.PaymentTerms; using Microsoft.DemoTool.Helpers; +using Microsoft.Foundation.PaymentTerms; codeunit 10783 "Create ES Payment Terms" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Inventory/2.Master Data/CreateESItem.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Inventory/2.Master Data/CreateESItem.Codeunit.al index 43c5bf4800..9d00b26f3a 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Inventory/2.Master Data/CreateESItem.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Inventory/2.Master Data/CreateESItem.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Item; using Microsoft.DemoData.Finance; +using Microsoft.Inventory.Item; codeunit 10800 "Create ES Item" { SingleInstance = true; diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Inventory/2.Master Data/CreateESLocation.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Inventory/2.Master Data/CreateESLocation.Codeunit.al index cf492c2e61..07a2d7e436 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Inventory/2.Master Data/CreateESLocation.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Inventory/2.Master Data/CreateESLocation.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Location; +using Microsoft.DemoData.Foundation; using Microsoft.DemoTool; using Microsoft.DemoTool.Helpers; -using Microsoft.DemoData.Foundation; +using Microsoft.Inventory.Location; codeunit 10803 "Create ES Location" { SingleInstance = true; diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Purchases/1.Setup Data/CreateESVendorPostingGroup.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Purchases/1.Setup Data/CreateESVendorPostingGroup.Codeunit.al index 3b21122812..8029350e47 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Purchases/1.Setup Data/CreateESVendorPostingGroup.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Purchases/1.Setup Data/CreateESVendorPostingGroup.Codeunit.al @@ -6,8 +6,8 @@ namespace Microsoft.DemoData.Purchases; using Microsoft.DemoData.Finance; -using Microsoft.Purchases.Vendor; using Microsoft.DemoTool.Helpers; +using Microsoft.Purchases.Vendor; codeunit 10816 "Create ES Vendor Posting Group" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Purchases/2.Master Data/CreateESPurchDimValue.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Purchases/2.Master Data/CreateESPurchDimValue.Codeunit.al index 732ce7a8ad..a2930aabaf 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Purchases/2.Master Data/CreateESPurchDimValue.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Purchases/2.Master Data/CreateESPurchDimValue.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Purchases; +using Microsoft.DemoData.Finance; using Microsoft.Finance.Dimension; using Microsoft.Purchases.Vendor; -using Microsoft.DemoData.Finance; codeunit 10837 "Create ES Purch. Dim. Value" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Purchases/2.Master Data/CreateESVendor.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Purchases/2.Master Data/CreateESVendor.Codeunit.al index d8b4794fa1..cd5d64533d 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Purchases/2.Master Data/CreateESVendor.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Purchases/2.Master Data/CreateESVendor.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; using Microsoft.DemoData.Bank; using Microsoft.DemoData.Foundation; using Microsoft.DemoData.Inventory; +using Microsoft.Purchases.Vendor; codeunit 10812 "Create ES Vendor" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Purchases/2.Master Data/CreateESVendorBankAccount.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Purchases/2.Master Data/CreateESVendorBankAccount.Codeunit.al index ce5aee5ea3..c5a261c692 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Purchases/2.Master Data/CreateESVendorBankAccount.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Purchases/2.Master Data/CreateESVendorBankAccount.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; using Microsoft.DemoTool.Helpers; +using Microsoft.Purchases.Vendor; codeunit 10817 "Create ES Vendor Bank Account" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/1.Setup Data/CreateESCustPostingGroup.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/1.Setup Data/CreateESCustPostingGroup.Codeunit.al index 6aa35181dd..62f60ba8eb 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/1.Setup Data/CreateESCustPostingGroup.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/1.Setup Data/CreateESCustPostingGroup.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoData.Finance; +using Microsoft.Sales.Customer; codeunit 10819 "Create ES Cust Posting Group" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/2.Master Data/CreateESCustBankAccount.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/2.Master Data/CreateESCustBankAccount.Codeunit.al index 3715b31940..8456d50f10 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/2.Master Data/CreateESCustBankAccount.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/2.Master Data/CreateESCustBankAccount.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoTool.Helpers; +using Microsoft.Sales.Customer; codeunit 10820 "Create ES Cust Bank Account" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/2.Master Data/CreateESCustomer.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/2.Master Data/CreateESCustomer.Codeunit.al index 3880ad65c2..e479120dc3 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/2.Master Data/CreateESCustomer.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/2.Master Data/CreateESCustomer.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; -using Microsoft.DemoData.Foundation; using Microsoft.DemoData.Bank; +using Microsoft.DemoData.Foundation; using Microsoft.DemoData.Inventory; +using Microsoft.Sales.Customer; codeunit 10823 "Create ES Customer" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/2.Master Data/CreateESSalesDimValue.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/2.Master Data/CreateESSalesDimValue.Codeunit.al index a945f135e4..6e62840004 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/2.Master Data/CreateESSalesDimValue.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/2.Master Data/CreateESSalesDimValue.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Sales; +using Microsoft.DemoData.Finance; using Microsoft.Finance.Dimension; using Microsoft.Sales.Customer; -using Microsoft.DemoData.Finance; codeunit 10836 "Create ES Sales Dim Value" { diff --git a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/2.Master Data/CreateESShipToAddress.Codeunit.al b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/2.Master Data/CreateESShipToAddress.Codeunit.al index a19988ee12..bf43530030 100644 --- a/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/2.Master Data/CreateESShipToAddress.Codeunit.al +++ b/Apps/ES/ContosoCoffeeDemoDatasetES/app/DemoData/Sales/2.Master Data/CreateESShipToAddress.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoTool; +using Microsoft.Sales.Customer; codeunit 10822 "Create ES Ship-to Address" { diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/ExtensionLogo.png b/Apps/ES/EDocumentFormats/DocumentRegistration/app/ExtensionLogo.png new file mode 100644 index 0000000000..4d2c9a626c Binary files /dev/null and b/Apps/ES/EDocumentFormats/DocumentRegistration/app/ExtensionLogo.png differ diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/app.json b/Apps/ES/EDocumentFormats/DocumentRegistration/app/app.json new file mode 100644 index 0000000000..e878b16aee --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/app.json @@ -0,0 +1,51 @@ +{ + "id": "73c6e046-a89d-484b-993b-5417088e42b9", + "name": "Document Registration in Spain", + "publisher": "Microsoft", + "brief": "Regulation introduced by the Spanish Tax Agency (AEAT)", + "description": "Regulation introduced by the Spanish Tax Agency (AEAT) under Royal Decree 1007/2023, as part of the Anti-Fraud Law 11/2021. It mandates the use of tamper-proof, traceable, and auditable invoicing systems to combat tax fraud.", + "version": "28.0.0.0", + "privacyStatement": "https://go.microsoft.com/fwlink/?LinkId=724009", + "EULA": "https://go.microsoft.com/fwlink/?linkid=2009120", + "help": "https://go.microsoft.com/fwlink/?linkid=2299409", + "url": "https://go.microsoft.com/fwlink/?LinkId=724011", + "contextSensitiveHelpUrl": "https://go.microsoft.com/fwlink/?linkid=2299409", + "logo": "ExtensionLogo.png", + "dependencies": [ + { + "id": "e1d97edc-c239-46b4-8d84-6368bdf67c8b", + "name": "E-Document Core", + "publisher": "Microsoft", + "version": "28.0.0.0" + } + ], + "internalsVisibleTo": [ + { + "id": "a0de5704-aea7-4329-aee6-1a658307abe7", + "name": "Document Registration Tests", + "publisher": "Microsoft" + } + ], + "features": [ + "TranslationFile" + ], + "screenshots": [], + "platform": "28.0.0.0", + "idRanges": [ + { + "from": 10771, + "to": 10771 + }, + { + "from": 10776, + "to": 10781 + } + ], + "resourceExposurePolicy": { + "allowDebugging": true, + "allowDownloadingSource": true, + "includeSourceInSymbolFile": true + }, + "target": "OnPrem", + "application": "28.0.0.0" +} diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/DocRegistrationCertMgt.Codeunit.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/DocRegistrationCertMgt.Codeunit.al new file mode 100644 index 0000000000..8c5d8b01a5 --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/DocRegistrationCertMgt.Codeunit.al @@ -0,0 +1,191 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; + +using System.DataAdministration; +using System.Environment.Configuration; +using System.IO; +using System.Security.Encryption; +using System.Text; +using System.Utilities; + +codeunit 10771 "Doc. Registration Cert. Mgt." +{ + Access = Internal; + + var + [NonDebuggable] + TempBlob: Codeunit "Temp Blob"; + SecretCertPassword: SecretText; + ReadingCertErr: Label 'Could not load the certificate.'; + PasswordSuffixTxt: Label 'Password', Locked = true; + SavingPasswordErr: Label 'Could not save the password.'; + SavingCertErr: Label 'Could not save the certificate.'; + CertFileNotValidErr: Label 'This is not a valid certificate file.'; + + internal procedure GetIsolatedCertificate(CertCode: Code[20]; var CertText: SecretText; var CertPassword: SecretText): Boolean + var + IsolatedCertificate: Record "Isolated Certificate"; + begin + if not IsolatedCertificate.Get(CertCode) then + exit(false); + CertPassword := GetPasswordAsSecret(IsolatedCertificate); + CertText := SecretStrSubstNo(GetCertAsBase64String(IsolatedCertificate)); + exit(true); + end; + + [NonDebuggable] + local procedure GetCertAsBase64String(IsolatedCertificate: Record "Isolated Certificate"): Text + var + CertificateManagement: Codeunit "Certificate Management"; + CertString: Text; + begin + CertString := ''; + if not IsolatedStorage.Get(IsolatedCertificate.Code, CertificateManagement.GetCertDataScope(IsolatedCertificate), CertString) then + Error(ReadingCertErr); + exit(CertString); + end; + + [NonDebuggable] + local procedure GetPasswordAsSecret(IsolatedCertificate: Record "Isolated Certificate") StoredPassword: SecretText + begin + GetPasswordFromIsolatedStorage(StoredPassword, IsolatedCertificate); + end; + + [NonDebuggable] + local procedure GetPasswordFromIsolatedStorage(var StoredPassword: SecretText; IsolatedCertificate: Record "Isolated Certificate") + var + CertificateManagement: Codeunit "Certificate Management"; + begin + if IsolatedStorage.Get(IsolatedCertificate.Code + PasswordSuffixTxt, CertificateManagement.GetCertDataScope(IsolatedCertificate), StoredPassword) then; + end; + + internal procedure DeleteCertAndPasswordFromIsolatedStorage(IsolatedCertificate: Record "Isolated Certificate") + var + CertificateManagement: Codeunit "Certificate Management"; + CertDataScope: DataScope; + begin + CertDataScope := CertificateManagement.GetCertDataScope(IsolatedCertificate); + if IsolatedStorage.Contains(IsolatedCertificate.Code, CertDataScope) then + IsolatedStorage.Delete(IsolatedCertificate.Code, CertDataScope); + if IsolatedStorage.Contains(IsolatedCertificate.Code + PasswordSuffixTxt, CertDataScope) then + IsolatedStorage.Delete(IsolatedCertificate.Code + PasswordSuffixTxt, CertDataScope); + end; + + [NonDebuggable] + internal procedure SaveCertToIsolatedStorage(IsolatedCertificate: Record "Isolated Certificate") + var + CertificateManagement: Codeunit "Certificate Management"; + Base64Convert: Codeunit "Base64 Convert"; + InStream: InStream; + CertString: Text; + begin + if not TempBlob.HasValue() then + Error(CertFileNotValidErr); + + TempBlob.CreateInStream(InStream); + CertString := Base64Convert.ToBase64(InStream); + if not IsolatedStorage.Set(IsolatedCertificate.Code, CertString, CertificateManagement.GetCertDataScope(IsolatedCertificate)) then + Error(SavingCertErr); + end; + + [NonDebuggable] + [Scope('OnPrem')] + internal procedure SavePasswordToIsolatedStorage(var IsolatedCertificate: Record "Isolated Certificate") + var + CertificateManagement: Codeunit "Certificate Management"; + CryptographyManagement: Codeunit "Cryptography Management"; + begin + if not SecretCertPassword.IsEmpty() then + if CryptographyManagement.IsEncryptionEnabled() then begin + if not IsolatedStorage.SetEncrypted(IsolatedCertificate.Code + PasswordSuffixTxt, SecretCertPassword, CertificateManagement.GetCertDataScope(IsolatedCertificate)) then + Error(SavingPasswordErr); + end else + if not IsolatedStorage.Set(IsolatedCertificate.Code + PasswordSuffixTxt, SecretCertPassword, CertificateManagement.GetCertDataScope(IsolatedCertificate)) then + Error(SavingPasswordErr); + end; + + [Scope('OnPrem')] + procedure UploadAndVerifyCert(var IsolatedCertificate: Record "Isolated Certificate"): Boolean + var + FileManagement: Codeunit "File Management"; + FileName: Text; + SelectFileTxt: Label 'Select a certificate file'; + CertFileFilterTxt: Label 'Certificate Files (*.pfx, *.p12,*.p7b,*.cer,*.crt,*.der)|*.pfx;*.p12;*.p7b;*.cer;*.crt;*.der', Locked = true; + CertExtFilterTxt: Label '.pfx.p12.p7b.cer.crt.der', Locked = true; + UploadedCertFileName: Text; + begin + FileName := FileManagement.BLOBImportWithFilter(TempBlob, SelectFileTxt, FileName, CertFileFilterTxt, CertExtFilterTxt); + if FileName = '' then + Error(''); + + UploadedCertFileName := FileManagement.GetFileName(FileName); + exit(VerifyCert(IsolatedCertificate)); + end; + + [Scope('OnPrem')] + procedure VerifyCert(var IsolatedCertificate: Record "Isolated Certificate"): Boolean + var + CertificateManagement: Codeunit "Certificate Management"; + InStr: InStream; + CertFileNotValidDotNetTok: Label 'Cannot find the requested object.', Locked = true; + begin + if not TempBlob.HasValue() then + Error(CertFileNotValidErr); + + TempBlob.CreateInStream(InStr); + if CertificateManagement.ReadCertFromStream(SecretCertPassword, InStr) then begin + CertificateManagement.ValidateCertFields(IsolatedCertificate); + exit(true); + end; + + if StrPos(GetLastErrorText, CertFileNotValidDotNetTok) <> 0 then + Error(CertFileNotValidErr); + exit(false); + end; + + internal procedure LookupCertificate(var CertificateCode: Code[20]) + var + IsolatedCertificate: Record "Isolated Certificate"; + DocRegistrationCertificates: Page "Doc. Registration Certificates"; + begin + DocRegistrationCertificates.SetTableView(IsolatedCertificate); + DocRegistrationCertificates.LookupMode(true); + if CertificateCode <> '' then + if IsolatedCertificate.Get(CertificateCode) then + DocRegistrationCertificates.SetRecord(IsolatedCertificate); + if DocRegistrationCertificates.RunModal() = ACTION::LookupOK then begin + DocRegistrationCertificates.GetRecord(IsolatedCertificate); + CertificateCode := IsolatedCertificate.Code; + end; + end; + + internal procedure SetCertPassword(CertificatePassword: SecretText) + begin + SecretCertPassword := CertificatePassword; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Environment Cleanup", 'OnClearCompanyConfig', '', false, false)] + local procedure HandleOnClearCompanyConfig(CompanyName: Text; SourceEnv: Enum "Environment Type"; DestinationEnv: Enum "Environment Type") + begin + CleanupSetup(CopyStr(CompanyName, 1, 30)); + end; + + [EventSubscriber(ObjectType::Report, Report::"Copy Company", 'OnAfterCreatedNewCompanyByCopyCompany', '', false, false)] + local procedure HandleOnAfterCreatedNewCompanyByCopyCompany(NewCompanyName: Text[30]) + begin + CleanupSetup(NewCompanyName); + end; + + local procedure CleanupSetup(SetupCompanyName: Text[30]) + var + VerifactuSetup: Record "Verifactu Setup"; + begin + if SetupCompanyName <> CompanyName() then + VerifactuSetup.ChangeCompany(SetupCompanyName); + + VerifactuSetup.DeleteAll(); + end; +} \ No newline at end of file diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/EDocVerifactuFormat.EnumExt.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/EDocVerifactuFormat.EnumExt.al new file mode 100644 index 0000000000..7a1190d949 --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/EDocVerifactuFormat.EnumExt.al @@ -0,0 +1,16 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; + +using Microsoft.EServices.EDocument; + +enumextension 10776 "E-Doc. Verifactu Format" extends "E-Document Format" +{ + value(10776; "Verifactu") + { + Implementation = "E-Document" = "Verifactu"; + Caption = 'Verifactu'; + } +} \ No newline at end of file diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/Verifactu.Codeunit.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/Verifactu.Codeunit.al new file mode 100644 index 0000000000..cbe32adb3f --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/Verifactu.Codeunit.al @@ -0,0 +1,76 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; + +using Microsoft.eServices.EDocument; +using System.Utilities; + +codeunit 10776 "Verifactu" implements "E-Document" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + Permissions = tabledata "E-Document" = rimd, + tabledata "E-Document Log" = rimd, + tabledata "E-Doc. Data Storage" = rimd; + + var + VerifactuExport: Codeunit "Verifactu Export"; + + procedure Check(var SourceDocumentHeader: RecordRef; EDocumentService: Record "E-Document Service"; EDocumentProcessingPhase: Enum "E-Document Processing Phase") + begin + end; + + procedure Create(EDocumentService: Record "E-Document Service"; var EDocument: Record "E-Document"; var SourceDocumentHeader: RecordRef; var SourceDocumentLines: RecordRef; var TempBlob: Codeunit "Temp Blob") + begin + VerifactuExport.Export(SourceDocumentHeader, SourceDocumentLines, EDocument, TempBlob, false); + end; + + procedure CreateBatch(EDocumentService: Record "E-Document Service"; var EDocuments: Record "E-Document"; var SourceDocumentHeaders: RecordRef; var SourceDocumentsLines: RecordRef; var TempBlob: Codeunit "Temp Blob") + begin + VerifactuExport.Export(SourceDocumentHeaders, SourceDocumentsLines, EDocuments, TempBlob, true); + end; + + procedure GetBasicInfoFromReceivedDocument(var EDocument: Record "E-Document"; var TempBlob: Codeunit "Temp Blob") + begin + end; + + procedure GetCompleteInfoFromReceivedDocument(var EDocument: Record "E-Document"; var CreatedDocumentHeader: RecordRef; var CreatedDocumentLines: RecordRef; var TempBlob: Codeunit "Temp Blob") + begin + end; + + [EventSubscriber(ObjectType::Table, Database::"E-Document Service", 'OnAfterValidateEvent', 'Document Format', false, false)] + local procedure OnAfterValidateDocumentFormat(var Rec: Record "E-Document Service"; var xRec: Record "E-Document Service"; CurrFieldNo: Integer) + var + EDocServiceSupportedType: Record "E-Doc. Service Supported Type"; + begin + if Rec."Document Format" <> Rec."Document Format"::"Verifactu" then + exit; + + EDocServiceSupportedType.SetRange("E-Document Service Code", Rec.Code); + if not EDocServiceSupportedType.IsEmpty() then + exit; + + EDocServiceSupportedType.Init(); + EDocServiceSupportedType."E-Document Service Code" := Rec.Code; + EDocServiceSupportedType."Source Document Type" := EDocServiceSupportedType."Source Document Type"::"Sales Invoice"; + EDocServiceSupportedType.Insert(); + + EDocServiceSupportedType."Source Document Type" := EDocServiceSupportedType."Source Document Type"::"Sales Credit Memo"; + EDocServiceSupportedType.Insert(); + + EDocServiceSupportedType."Source Document Type" := EDocServiceSupportedType."Source Document Type"::"Service Invoice"; + EDocServiceSupportedType.Insert(); + + EDocServiceSupportedType."Source Document Type" := EDocServiceSupportedType."Source Document Type"::"Service Credit Memo"; + EDocServiceSupportedType.Insert(); + + EDocServiceSupportedType."Source Document Type" := EDocServiceSupportedType."Source Document Type"::"Finance Charge Memo"; + EDocServiceSupportedType.Insert(); + + EDocServiceSupportedType."Source Document Type" := EDocServiceSupportedType."Source Document Type"::"Issued Finance Charge Memo"; + EDocServiceSupportedType.Insert(); + end; +} \ No newline at end of file diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/VerifactuDocUploadMgt.Codeunit.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/VerifactuDocUploadMgt.Codeunit.al new file mode 100644 index 0000000000..31530dd13e --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/VerifactuDocUploadMgt.Codeunit.al @@ -0,0 +1,307 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; + +using Microsoft.EServices.EDocument; +using Microsoft.eServices.EDocument.Integration.Send; +using System.Utilities; + +codeunit 10777 "Verifactu Doc. Upload Mgt." +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + Permissions = tabledata "E-Document" = rimd, + tabledata "E-Document Log" = rimd, + tabledata "E-Doc. Data Storage" = rimd; + + var + VerifactuSetup: Record "Verifactu Setup"; + ConnectionSetupErr: Label 'You must enable Verifactu Setup.'; + NoCertificateErr: Label 'Loading the certificate failed. Open Verifactu Setup page and make sure that the certificate and its password are correctly specified and that it has not expired.'; + NoCertificateTelemetryErr: Label 'Could not get certificate.', Locked = true; + BatchSoapRequestMsg: Label 'Sending batch soap request of type %1', Locked = true; + NoResponseErr: Label 'Remote service did not provide a response. Open Verifactu Setup page and make sure that the Document Registration Endpoint and the certificate are correctly specified and try again.'; + NoResponseTelemetryErr: Label 'Could not get response.', Locked = true; + CommunicationErr: Label 'Remote service returned an unexpected response: %1.', Comment = '%1 is the error message.'; + CommunicationTelemetryErr: Label 'Communication error: %1.', Comment = '%1 is the error message.', Locked = true; + CouldNotEvaluateClearanceDateErr: Label 'Could not evaluate clearance date: %1.', Comment = '%1 is the received clearance date as text.', Locked = true; + BatchSoapRequestSuccMsg: Label 'Batch soap request of type %1 successfully executed', Locked = true; + FeatureNameTxt: Label 'Verifactu Document Registration'; + DocRegistrationErr: Label 'AEAT response contains an error. %1.', Comment = 'AEAT is the abbreviation of Agencia Tributaria, Spanish Tax Authority, %1 is the error message from AEAT.'; + DisableVerifactuQst: Label 'Verifactu setup will be disabled. Do you want to proceed?'; + EmptyRequestLbl: Label 'The request is empty.'; + + internal procedure InvokeSoapRequest(var EDocument: Record "E-Document"; RequestText: Text; RequestType: Enum "Verifactu Request Type"; var ErrorText: Text; var SendContext: Codeunit SendContext): Boolean + var + DocRegistrationCertMgt: Codeunit "Doc. Registration Cert. Mgt."; + CertificateEnabled, IsSuccessful : Boolean; + CertText, CertPassword : SecretText; + HttpClient: HttpClient; + HttpRequest: HttpRequestMessage; + HttpResponse: HttpResponseMessage; + ContentHeaders, RequestHeaders : HttpHeaders; + WebServiceUrl, StatusDescription, ResponseTxt : Text; + StatusCode: Integer; + begin + if not VerifactuSetup.IsEnabled() then begin + ErrorText := ConnectionSetupErr; + exit(false); + end; + + Session.LogMessage('0000QWW', StrSubstNo(BatchSoapRequestMsg, RequestType), Verbosity::Normal, DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, 'Category', FeatureNameTxt); + + CertificateEnabled := DocRegistrationCertMgt.GetIsolatedCertificate(VerifactuSetup."Certificate Code", CertText, CertPassword); + if not CertificateEnabled then begin + Session.LogMessage('0000QWX', NoCertificateTelemetryErr, Verbosity::Error, DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, 'Category', FeatureNameTxt); + ErrorText := NoCertificateErr; + exit(false); + end; + HttpClient.AddCertificate(CertText, CertPassword); + + case RequestType of + RequestType::DocumentRegistration: + WebServiceUrl := VerifactuSetup.GetDocumentSubmissionEndpointUrl(); + RequestType::DocumentCancelation: + WebServiceUrl := VerifactuSetup.GetDocumentSubmissionEndpointUrl(); + RequestType::QrCodeValidation: + WebServiceUrl := VerifactuSetup.GetQRCodeValidationEndpointUrl(); + end; + + Commit(); + + HttpRequest := SendContext.Http().GetHttpRequestMessage(); + HttpRequest.Method := 'POST'; + HttpRequest.SetRequestUri(WebServiceUrl); + + HttpRequest.GetHeaders(RequestHeaders); + RequestHeaders.Add('Accept', 'application/xml'); + RequestHeaders.Add('Accept-Encoding', 'utf-8'); + + HttpRequest.Content.WriteFrom(RequestText); + HttpRequest.Content.GetHeaders(ContentHeaders); + ContentHeaders.Remove('Content-Type'); + ContentHeaders.Add('Content-Type', 'application/xml'); + HttpRequest.Content(HttpRequest.Content); + + IsSuccessful := HttpClient.Send(HttpRequest, HttpResponse); + SendContext.Http().SetHttpResponseMessage(HttpResponse); + + if not IsSuccessful then begin + Session.LogMessage('0000QWY', NoResponseTelemetryErr, Verbosity::Error, DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, 'Category', FeatureNameTxt); + ErrorText := NoResponseErr; + exit(false); + end; + + StatusCode := HttpResponse.HttpStatusCode; + StatusDescription := HttpResponse.ReasonPhrase; + if not (StatusCode in [200, 202]) then begin + Session.LogMessage('0000QWZ', StrSubstNo(CommunicationTelemetryErr, Format(StatusCode) + ' ' + StatusDescription), Verbosity::Error, DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, 'Category', FeatureNameTxt); + ErrorText := StrSubstNo(CommunicationErr, Format(StatusCode) + ' ' + StatusDescription); + exit(false); + end; + + HttpResponse.Content().ReadAs(ResponseTxt); + if not ParseResponse(EDocument, ResponseTxt, SendContext, ErrorText) then + exit(false); + Session.LogMessage('0000QX0', StrSubstNo(BatchSoapRequestSuccMsg, RequestType), Verbosity::Normal, DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, 'Category', FeatureNameTxt); + exit(true); + end; + + procedure ParseResponse(var EDocument: Record "E-Document"; var ResponseText: Text; var SendContext: Codeunit SendContext; var ErrorText: Text): Boolean + var + XmlDoc: XmlDocument; + XmlElem: XmlElement; + XmlRootNode: XmlNode; + SubmissionId, SubmissionStatus, LineErrorCode, LineErrorDescription, HeaderErrorDetails, ClearanceDateTimeTxt : Text; + ClearanceDateTime: DateTime; + LineErrorCodeXPath, LineErrorDescriptionXPath, HeaderErrorDetailsXPath, SubmissionIdXPath, SubmissionStatusXPath, ClearanceDateTimeXPath : Text; + begin + if ResponseText = '' then begin + Session.LogMessage('0000QX1', EmptyRequestLbl, Verbosity::Error, DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, 'Category', FeatureNameTxt); + exit(false); + end; + + ResponseText := ResponseText.Replace('env:', ''); + ResponseText := ResponseText.Replace('tikR:', ''); + ResponseText := ResponseText.Replace('tik:', ''); + + XmlDocument.ReadFrom(ResponseText, XmlDoc); + XmlDoc.GetRoot(XmlElem); + XMLRootNode := XmlElem.AsXmlNode(); + + LineErrorCodeXPath := '/Envelope/Body/RespuestaRegFactuSistemaFacturacion/RespuestaLinea/CodigoErrorRegistro'; + LineErrorDescriptionXPath := '/Envelope/Body/RespuestaRegFactuSistemaFacturacion/RespuestaLinea/DescripcionErrorRegistro'; + HeaderErrorDetailsXPath := '/Envelope/Body/Fault/faultstring'; + SubmissionIdXPath := '/Envelope/Body/RespuestaRegFactuSistemaFacturacion/CSV'; + SubmissionStatusXPath := '/Envelope/Body/RespuestaRegFactuSistemaFacturacion/RespuestaLinea/EstadoRegistro'; + ClearanceDateTimeXPath := '/Envelope/Body/RespuestaRegFactuSistemaFacturacion/DatosPresentacion/TimestampPresentacion'; + + LineErrorCode := FindNodeXML(XMLRootNode, LineErrorCodeXPath); + LineErrorDescription := FindNodeXML(XMLRootNode, LineErrorDescriptionXPath); + HeaderErrorDetails := FindNodeXML(XMLRootNode, HeaderErrorDetailsXPath); + SubmissionId := FindNodeXML(XMLRootNode, SubmissionIdXPath); + SubmissionStatus := FindNodeXML(XMLRootNode, SubmissionStatusXPath); + ClearanceDateTimeTxt := FindNodeXML(XMLRootNode, ClearanceDateTimeXPath); + if ClearanceDateTimeTxt <> '' then + if not Evaluate(ClearanceDateTime, ClearanceDateTimeTxt, 9) then + Session.LogMessage('0000QX2', StrSubstNo(CouldNotEvaluateClearanceDateErr, ClearanceDateTimeTxt), Verbosity::Error, DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, 'Category', FeatureNameTxt); + + if HeaderErrorDetails <> '' then + ErrorText := HeaderErrorDetails + else + if LineErrorCode <> '' then begin + ErrorText := LineErrorCode; + if LineErrorDescription <> '' then + ErrorText += ': ' + LineErrorDescription + end; + + if ErrorText <> '' then begin + ErrorText := StrSubstNo(DocRegistrationErr, ErrorText); + Session.LogMessage('0000QX3', ErrorText, Verbosity::Error, DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, 'Category', FeatureNameTxt); + end; + UpdateEdocument(EDocument, SubmissionId, SubmissionStatus, ClearanceDateTime, SendContext, ErrorText); + if ErrorText <> '' then + exit(false); + exit(true); + end; + + local procedure FindNodeXML(Node: XmlNode; NodePath: Text): Text; + var + RootElement: XmlElement; + FoundXmlNode: XmlNode; + begin + if Node.SelectSingleNode(NodePath, FoundXmlNode) then begin + if FoundXmlNode.IsXmlElement() then + exit(FoundXmlNode.AsXmlElement().InnerXml()); + + if FoundXmlNode.IsXmlDocument() then begin + FoundXmlNode.AsXmlDocument().GetRoot(RootElement); + exit(RootElement.InnerXml()); + end; + end; + + exit(''); + end; + + procedure SendEDocument(var TempBlob: Codeunit "Temp Blob"; var EDocument: Record "E-Document"; var SendContext: Codeunit SendContext) + var + ErrorText, RequestTxt : Text; + RequestType: Enum "Verifactu Request Type"; + begin + RequestTxt := GetRequestText(TempBlob); + + if RequestTxt = '' then begin + ErrorText := EmptyRequestLbl; + exit; + end; + case EDocument."Document Type" of + EDocument."Document Type"::"Sales Invoice", + EDocument."Document Type"::"Sales Order", + EDocument."Document Type"::"Sales Quote", + EDocument."Document Type"::"Service Invoice", + EDocument."Document Type"::"Service Order": + RequestType := Enum::"Verifactu Request Type"::DocumentRegistration; + EDocument."Document Type"::"Sales Credit Memo", + EDocument."Document Type"::"Sales Return Order", + EDocument."Document Type"::"Service Credit Memo": + RequestType := Enum::"Verifactu Request Type"::DocumentCancelation; + + end; + if not InvokeSoapRequest(EDocument, RequestTxt, RequestType, ErrorText, SendContext) then + Error(ErrorText); + end; + + local procedure GetRequestText(var TempBlob: Codeunit "Temp Blob") RequestTxt: Text + var + FileInStream: InStream; + RequestLineTxt: Text; + begin + TempBlob.CreateInStream(FileInStream, TextEncoding::UTF8); + while not FileInStream.EOS do begin + FileInStream.ReadText(RequestLineTxt); + RequestTxt += RequestLineTxt; + end; + exit(RequestTxt); + end; + + procedure UpdateEdocument(var EDocument: Record "E-Document"; SubmissionId: Text; SubmissionStatus: Text; ClearanceDateTime: DateTime; var SendContext: Codeunit SendContext; ErrorText: Text) + var + EDocumentLogHelper: Codeunit "E-Document Log Helper"; + EDocErrorHelper: Codeunit "E-Document Error Helper"; + EDocumentServiceStatus: Enum "E-Document Service Status"; + begin + EDocument."Last Clearance Request Time" := CurrentDateTime(); + EDocument."Clearance Date" := ClearanceDateTime; + EDocument.Modify(); + UpdateVerifactuEDocument(EDocument, SubmissionId, SubmissionStatus); + + if SubmissionStatus = 'Correcto' then + EDocumentServiceStatus := "E-Document Service Status"::Cleared + else + EDocumentServiceStatus := "E-Document Service Status"::"Not Cleared"; + SendContext.Status().SetStatus(EDocumentServiceStatus); + EDocumentLogHelper.InsertLog(EDocument, EDocument.GetEDocumentService(), EDocumentServiceStatus); + if ErrorText <> '' then + EDocErrorHelper.LogSimpleErrorMessage(EDocument, ErrorText); + end; + + procedure InsertVerifactuDocument(var EDocument: Record "E-Document"; SourceDocumentNo: Code[20]; SourceDocumentPostingDate: Date; VerifactuHash: Text[64]) + var + VerifactuDocument: Record "Verifactu Document"; + begin + if VerifactuDocument.Get(EDocument."Entry No") then + exit; + VerifactuDocument.Init(); + VerifactuDocument."E-Document Entry No." := EDocument."Entry No"; + VerifactuDocument."Source Document Type" := EDocument."Document Type"; + VerifactuDocument."Source Document No." := SourceDocumentNo; + VerifactuDocument."Verifactu Hash" := VerifactuHash; + VerifactuDocument."Verifactu Posting Date" := SourceDocumentPostingDate; + VerifactuDocument.Insert(); + end; + + procedure UpdateVerifactuEDocument(var EDocument: Record "E-Document"; SubmissionId: Text; SubmissionStatus: Text) + var + VerifactuDocument: Record "Verifactu Document"; + begin + if not VerifactuDocument.Get(EDocument."Entry No") then + exit; + VerifactuDocument."Submission Id" := CopyStr(SubmissionId, 1, MaxStrLen(VerifactuDocument."Submission Id")); + VerifactuDocument."Submission Status" := CopyStr(SubmissionStatus, 1, MaxStrLen(VerifactuDocument."Submission Status")); + VerifactuDocument.Modify(); + end; + + procedure GetVerifactuData(var EDocument: Record "E-Document"; var VerifactuHash: Text[64]; var SubmissionId: Text[100]) + var + VerifactuDocument: Record "Verifactu Document"; + begin + VerifactuDocument.SetLoadFields("Verifactu Hash", "Submission Id"); + if not VerifactuDocument.Get(EDocument."Entry No") then + exit; + VerifactuHash := VerifactuDocument."Verifactu Hash"; + SubmissionId := VerifactuDocument."Submission Id"; + end; + + [EventSubscriber(ObjectType::Table, Database::"SII Setup", 'OnBeforeValidateEnabled', '', false, false)] + local procedure OnBeforeValidateEnabled(var SIISetup: Record "SII Setup"; var IsHandled: Boolean) + var + ConfirmMgt: Codeunit "Confirm Management"; + begin + if not VerifactuSetup.IsEnabled() then + exit; + + if not SIISetup.Enabled then + exit; + + if ConfirmMgt.GetResponseOrDefault(DisableVerifactuQst, false) then begin + VerifactuSetup.Enabled := false; + VerifactuSetup.Modify(true); + end else begin + IsHandled := true; + SIISetup.Enabled := false; + end; + end; +} \ No newline at end of file diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/VerifactuExport.Codeunit.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/VerifactuExport.Codeunit.al new file mode 100644 index 0000000000..34feb2ed7b --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/VerifactuExport.Codeunit.al @@ -0,0 +1,1084 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; + +using Microsoft.EServices.EDocument; +using Microsoft.Foundation.Address; +using Microsoft.Foundation.Company; +using Microsoft.Sales.Customer; +using Microsoft.Sales.History; +using Microsoft.Service.History; +using System.Reflection; +using System.Security.Encryption; +using System.Telemetry; +using System.Text; +using System.Utilities; + +codeunit 10778 "Verifactu Export" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + Permissions = tabledata "E-Document" = rimd, + tabledata "E-Document Log" = rimd, + tabledata "E-Doc. Data Storage" = rimd; + + var + CompanyInformation: Record "Company Information"; + VerifactuSetup: Record "Verifactu Setup"; + FeatureTelemetry: Codeunit "Feature Telemetry"; + VerifactuDocUploadMgt: Codeunit "Verifactu Doc. Upload Mgt."; + XmlNamespaceSoapenv, XmlNamespaceSum, XmlNamespaceSum1 : Text; + FeatureNameTok: Label 'EDocument Format Verifactu', Locked = true; + StartEventNameTok: Label 'Export initiated. IsBatch is: %1', Locked = true; + EndEventNameTok: Label 'Export completed', Locked = true; + MaxBatchSizeErr: Label 'Sending more than 1000 documents in a batch is not allowed.'; + + procedure Export(var SourceDocumentHeader: RecordRef; var SourceDocumentLines: RecordRef; var EDocument: Record "E-Document"; var TempBlob: Codeunit "Temp Blob"; IsBatch: Boolean) + var + SalesInvoiceHeader: Record "Sales Invoice Header"; + SalesCrMemoHeader: Record "Sales Cr.Memo Header"; + ServiceInvoiceHeader: Record "Service Invoice Header"; + ServiceCrMemoHeader: Record "Service Cr.Memo Header"; + SalesInvoiceLine: Record "Sales Invoice Line"; + SalesCrMemoLine: Record "Sales Cr.Memo Line"; + ServiceInvoiceLine: Record "Service Invoice Line"; + ServiceCrMemoLine: Record "Service Cr.Memo Line"; + begin + OnBeforeExport(SourceDocumentHeader, SourceDocumentLines, TempBlob, IsBatch); + FeatureTelemetry.LogUsage('0000OCR', FeatureNameTok, StrSubstNo(StartEventNameTok, Format(IsBatch))); + CompanyInformation.Get(); + if not VerifactuSetup.Get() then + VerifactuSetup.Init(); + + case SourceDocumentHeader.Number of + Database::"Sales Invoice Header": + begin + SourceDocumentHeader.SetTable(SalesInvoiceHeader); + SalesInvoiceHeader.SetRecFilter(); + SourceDocumentLines.SetTable(SalesInvoiceLine); + ExportInvoice(EDocument, SalesInvoiceHeader, SalesInvoiceLine, TempBlob, IsBatch); + end; + Database::"Sales Cr.Memo Header": + begin + SourceDocumentHeader.SetTable(SalesCrMemoHeader); + SalesCrMemoHeader.SetRecFilter(); + SourceDocumentLines.SetTable(SalesCrMemoLine); + ExportCreditMemo(EDocument, SalesCrMemoHeader, SalesCrMemoLine, TempBlob, IsBatch); + end; + Database::"Service Invoice Header": + begin + SourceDocumentHeader.SetTable(ServiceInvoiceHeader); + ServiceInvoiceHeader.SetRecFilter(); + SourceDocumentLines.SetTable(ServiceInvoiceLine); + ExportServiceInvoice(EDocument, ServiceInvoiceHeader, ServiceInvoiceLine, TempBlob, IsBatch); + end; + Database::"Service Cr.Memo Header": + begin + SourceDocumentHeader.SetTable(ServiceCrMemoHeader); + ServiceCrMemoHeader.SetRecFilter(); + SourceDocumentLines.SetTable(ServiceCrMemoLine); + ExportServiceCreditMemo(EDocument, ServiceCrMemoHeader, ServiceCrMemoLine, TempBlob, IsBatch); + end; + end; + FeatureTelemetry.LogUsage('0000OCT', FeatureNameTok, EndEventNameTok); + OnAfterExport(SourceDocumentHeader, SourceDocumentLines, TempBlob, IsBatch); + end; + + #region Invoice + local procedure ExportInvoice(var EDocument: Record "E-Document"; var SalesInvoiceHeader: Record "Sales Invoice Header"; var SalesInvoiceLine: Record "Sales Invoice Line"; var TempBlob: Codeunit "Temp Blob"; IsBatch: Boolean) + var + TempBlobQR: Codeunit "Temp Blob"; + InvoiceType, VerifactuDateTime : Text; + PreviousDocumentNo, PreviousHuella : Text; + VerifactuHash: Text[64]; + PreviousPostingDate: Date; + FileOutStream, OutStr : OutStream; + InStr: InStream; + begin + SalesInvoiceHeader.CalcFields(Amount, "Amount Including VAT"); + InvoiceType := GetOptionFirstTwoChars(SalesInvoiceHeader."Invoice Type"); + VerifactuDateTime := GetCustomDateTimeFormat(CurrentDateTime()); + FindLastRegisteredDocument(PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + VerifactuHash := GenerateHash(SalesInvoiceHeader, InvoiceType, VerifactuDateTime, PreviousHuella); + VerifactuDocUploadMgt.InsertVerifactuDocument(EDocument, SalesInvoiceHeader."No.", SalesInvoiceHeader."Posting Date", VerifactuHash); + + CreateXML(SalesInvoiceHeader, SalesInvoiceLine, IsBatch, TempBlob, FileOutStream, InvoiceType, VerifactuDateTime, VerifactuHash, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + + TempBlobQR := GenerateQRCode(SalesInvoiceHeader."No.", SalesInvoiceHeader."Posting Date", SalesInvoiceHeader."Amount Including VAT"); + TempBlobQR.CreateInStream(InStr); + SalesInvoiceHeader."QR Code Base64".CreateOutStream(OutStr, TextEncoding::UTF8); + CopyStream(OutStr, InStr); + SalesInvoiceHeader."QR Code Image".ImportStream(InStr, 'image.png'); + SalesInvoiceHeader.Modify(); + end; + + local procedure CreateXML(var SalesInvoiceHeader: Record "Sales Invoice Header"; var SalesInvoiceLine: Record "Sales Invoice Line"; IsBatch: Boolean; var TempBlob: Codeunit "Temp Blob"; var FileOutStream: OutStream; InvoiceType: Text; VerifactuDateTime: Text; VerifactuHash: Text[64]; PreviousDocumentNo: Text; PreviousPostingDate: Date; PreviousHuella: Text) + var + HeaderXMLNode, BodyXMLNode, RegFactuSistemaFacturacionXMLNode, RootXMLNode : XmlElement; + XMLDocOut: XmlDocument; + begin + TempBlob.CreateOutStream(FileOutStream, TextEncoding::UTF8); + + XmlDocument.ReadFrom(GetBasicXMLHeader(), XMLDocOut); + XMLDocOut.GetRoot(RootXMLNode); + + InitializeNamespaces(); + HeaderXMLNode := XmlElement.Create('Header', XmlNamespaceSoapenv); + BodyXMLNode := XmlElement.Create('Body', XmlNamespaceSoapenv); + RegFactuSistemaFacturacionXMLNode := XmlElement.Create('RegFactuSistemaFacturacion', XmlNamespaceSum); + InsertHeaderData(RegFactuSistemaFacturacionXMLNode); + InsertInvoicesData(RegFactuSistemaFacturacionXMLNode, SalesInvoiceHeader, SalesInvoiceLine, IsBatch, InvoiceType, VerifactuDateTime, VerifactuHash, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + + BodyXMLNode.Add(RegFactuSistemaFacturacionXMLNode); + RootXMLNode.Add(HeaderXMLNode); + RootXMLNode.Add(BodyXMLNode); + + XmlDocOut.WriteTo(FileOutStream); + end; + + local procedure InsertInvoicesData(var RootXMLNode: XmlElement; var SalesInvoiceHeader: Record "Sales Invoice Header"; var SalesInvoiceLine: Record "Sales Invoice Line"; IsBatch: Boolean; InvoiceType: Text; VerifactuDateTime: Text; VerifactuHash: Text[64]; PreviousDocumentNo: Text; PreviousPostingDate: Date; PreviousHuella: Text) + var + InvoiceXMLNode: XmlElement; + InvoiceCount: Integer; + begin + InvoiceXMLNode := XmlElement.Create('RegistroFactura', XmlNamespaceSum); + + if IsBatch then + repeat + InvoiceCount += 1; + if InvoiceCount > 1000 then + Error(MaxBatchSizeErr); + InsertInvoice(InvoiceXMLNode, SalesInvoiceHeader, SalesInvoiceLine, InvoiceType, VerifactuDateTime, VerifactuHash, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + until SalesInvoiceHeader.Next() = 0 + else + InsertInvoice(InvoiceXMLNode, SalesInvoiceHeader, SalesInvoiceLine, InvoiceType, VerifactuDateTime, VerifactuHash, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + RootXMLNode.Add(InvoiceXMLNode); + end; + + local procedure InsertInvoice(var RootXMLNode: XmlElement; var SalesInvoiceHeader: Record "Sales Invoice Header"; var SalesInvoiceLine: Record "Sales Invoice Line"; InvoiceType: Text; VerifactuDateTime: Text; VerifactuHash: Text[64]; PreviousDocumentNo: Text; PreviousPostingDate: Date; PreviousHuella: Text) + var + InvoiceXMLNode: XmlElement; + begin + InvoiceXMLNode := XmlElement.Create('RegistroAlta', XmlNamespaceSum1); + + InsertInvoiceHeaderData(InvoiceXMLNode, SalesInvoiceHeader, InvoiceType); + InsertInvoiceBreakdown(InvoiceXMLNode, SalesInvoiceHeader, SalesInvoiceLine); + InsertTotals(InvoiceXMLNode, SalesInvoiceHeader); + InsertRegistroAnterior(InvoiceXMLNode, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + InsertInformationSystem(InvoiceXMLNode); + InsertHuellaDigital(InvoiceXMLNode, VerifactuDateTime, VerifactuHash); + + RootXMLNode.Add(InvoiceXMLNode); + end; + + local procedure InsertInvoiceHeaderData(var InvoiceXMLNode: XmlElement; var SalesInvoiceHeader: Record "Sales Invoice Header"; InvoiceType: Text) + var + IDFacturaXMLNode, DestinatariosXMLNode, IDDestinatarioXMLNode : XmlElement; + begin + InvoiceXMLNode.Add(XmlElement.Create('IDVersion', XmlNamespaceSum1, '1.0')); + + IDFacturaXMLNode := XmlElement.Create('IDFactura', XmlNamespaceSum1); + IDFacturaXMLNode.Add(XmlElement.Create('IDEmisorFactura', XmlNamespaceSum1, CompanyInformation."VAT Registration No.")); + IDFacturaXMLNode.Add(XmlElement.Create('NumSerieFactura', XmlNamespaceSum1, SalesInvoiceHeader."No.")); + IDFacturaXMLNode.Add(XmlElement.Create('FechaExpedicionFactura', XmlNamespaceSum1, FormatDate(SalesInvoiceHeader."Posting Date"))); + InvoiceXMLNode.Add(IDFacturaXMLNode); + + InvoiceXMLNode.Add(XmlElement.Create('NombreRazonEmisor', XmlNamespaceSum1, CompanyInformation."Name")); + InvoiceXMLNode.Add(XmlElement.Create('TipoFactura', XmlNamespaceSum1, InvoiceType)); + if SalesInvoiceHeader."Operation Description" = '' then + SalesInvoiceHeader."Operation Description" := SalesInvoiceHeader."No."; + InvoiceXMLNode.Add(XmlElement.Create('DescripcionOperacion', XmlNamespaceSum1, SalesInvoiceHeader."Operation Description")); + + DestinatariosXMLNode := XmlElement.Create('Destinatarios', XmlNamespaceSum1); + IDDestinatarioXMLNode := XmlElement.Create('IDDestinatario', XmlNamespaceSum1); + IDDestinatarioXMLNode.Add(XmlElement.Create('NombreRazon', XmlNamespaceSum1, CompanyInformation.Name)); + IDDestinatarioXMLNode.Add(XmlElement.Create('NIF', XmlNamespaceSum1, CompanyInformation."VAT Registration No.")); + DestinatariosXMLNode.Add(IDDestinatarioXMLNode); + InvoiceXMLNode.Add(DestinatariosXMLNode); + end; + + local procedure InsertInvoiceBreakdown(var InvoiceXMLNode: XmlElement; var SalesInvoiceHeader: Record "Sales Invoice Header"; var SalesInvoiceLine: Record "Sales Invoice Line") + var + TempSalesInvoiceLine: Record "Sales Invoice Line" temporary; + DesgloseXMLNode, DetalleIVAXMLNode : XmlElement; + begin + SalesInvoiceLine.SetRange("Document No.", SalesInvoiceHeader."No."); + SalesInvoiceLine.SetFilter(Type, '<>%1', SalesInvoiceLine.Type::" "); + if SalesInvoiceLine.FindSet() then + repeat + if FindLineInTempSalesInvoiceLine(TempSalesInvoiceLine, SalesInvoiceLine) then begin + TempSalesInvoiceLine.Amount += SalesInvoiceLine.Amount; + TempSalesInvoiceLine."Amount Including VAT" += SalesInvoiceLine."Amount Including VAT"; + TempSalesInvoiceLine.Modify(); + end else begin + TempSalesInvoiceLine.Init(); + TempSalesInvoiceLine := SalesInvoiceLine; + TempSalesInvoiceLine.Insert(); + end; + until SalesInvoiceLine.Next() = 0; + + DesgloseXMLNode := XmlElement.Create('Desglose', XmlNamespaceSum1); + + TempSalesInvoiceLine.Reset(); + TempSalesInvoiceLine.SetRange("Document No.", SalesInvoiceHeader."No."); + if TempSalesInvoiceLine.FindSet() then + repeat + DetalleIVAXMLNode := XmlElement.Create('DetalleDesglose', XmlNamespaceSum1); + DetalleIVAXMLNode.Add(XmlElement.Create('ClaveRegimen', XmlNamespaceSum1, GetOptionFirstTwoChars(SalesInvoiceHeader."Special Scheme Code"))); + DetalleIVAXMLNode.Add(XmlElement.Create('CalificacionOperacion', XmlNamespaceSum1, GetVATIdentifier(TempSalesInvoiceLine."VAT Identifier"))); + DetalleIVAXMLNode.Add(XmlElement.Create('TipoImpositivo', XmlNamespaceSum1, Format(TempSalesInvoiceLine."VAT %", 0, 9))); + DetalleIVAXMLNode.Add(XmlElement.Create('BaseImponibleOimporteNoSujeto', XmlNamespaceSum1, Format(TempSalesInvoiceLine.Amount, 0, 9))); + DetalleIVAXMLNode.Add(XmlElement.Create('CuotaRepercutida', XmlNamespaceSum1, Format(TempSalesInvoiceLine."Amount Including VAT" - TempSalesInvoiceLine.Amount, 0, 9))); + DesgloseXMLNode.Add(DetalleIVAXMLNode); + until TempSalesInvoiceLine.Next() = 0; + TempSalesInvoiceLine.CalcSums(Amount, "Amount Including VAT"); + + InvoiceXMLNode.Add(DesgloseXMLNode); + end; + + local procedure InsertTotals(var InvoiceXMLNode: XmlElement; var SalesInvoiceHeader: Record "Sales Invoice Header") + begin + InvoiceXMLNode.Add(XmlElement.Create('CuotaTotal', XmlNamespaceSum1, SalesInvoiceHeader."Amount Including VAT" - SalesInvoiceHeader.Amount)); + InvoiceXMLNode.Add(XmlElement.Create('ImporteTotal', XmlNamespaceSum1, SalesInvoiceHeader."Amount Including VAT")); + end; + + local procedure FindLineInTempSalesInvoiceLine(var TempSalesInvoiceLine: Record "Sales Invoice Line" temporary; var SalesInvoiceLine: Record "Sales Invoice Line"): Boolean + begin + TempSalesInvoiceLine.SetRange("Document No.", SalesInvoiceLine."Document No."); + TempSalesInvoiceLine.SetRange("VAT %", SalesInvoiceLine."VAT %"); + exit(TempSalesInvoiceLine.FindFirst()); + end; + + local procedure GenerateHash(SalesInvoiceHeader: Record "Sales Invoice Header"; InvoiceType: Text; VerifactuDateTime: Text; PreviousHuella: Text): Text[64] + var + CryptographyManagement: Codeunit "Cryptography Management"; + HashAlgorithmType: Option MD5,SHA1,SHA256,SHA384,SHA512; + InputString: Text; + begin + InputString := + 'IDEmisorFactura=' + CompanyInformation."VAT Registration No." + + '&' + + 'NumSerieFactura=' + SalesInvoiceHeader."No." + + '&' + + 'FechaExpedicionFactura=' + Format(SalesInvoiceHeader."Posting Date", 0, '--') + + '&' + + 'TipoFactura=' + InvoiceType + + '&' + + 'CuotaTotal=' + Format(SalesInvoiceHeader."Amount Including VAT" - SalesInvoiceHeader.Amount, 0, 9) + + '&' + + 'ImporteTotal=' + Format(SalesInvoiceHeader."Amount Including VAT", 0, 9) + + '&' + + 'Huella=' + PreviousHuella + + '&' + + 'FechaHoraHusoGenRegistro=' + VerifactuDateTime; + exit( + CopyStr( + CryptographyManagement.GenerateHash(InputString, HashAlgorithmType::SHA256), 1, 64)); + end; + #endregion + #region Service Invoice + local procedure ExportServiceInvoice(var EDocument: Record "E-Document"; var ServiceInvoiceHeader: Record "Service Invoice Header"; var ServiceInvoiceLine: Record "Service Invoice Line"; var TempBlob: Codeunit "Temp Blob"; IsBatch: Boolean) + var + InvoiceType, VerifactuDateTime : Text; + PreviousDocumentNo, PreviousHuella : Text; + VerifactuHash: Text[64]; + PreviousPostingDate: Date; + FileOutStream: OutStream; + begin + ServiceInvoiceHeader.CalcFields(Amount, "Amount Including VAT"); + InvoiceType := GetOptionFirstTwoChars(ServiceInvoiceHeader."Invoice Type"); + VerifactuDateTime := GetCustomDateTimeFormat(CurrentDateTime()); + FindLastRegisteredDocument(PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + VerifactuHash := GenerateHash(ServiceInvoiceHeader, InvoiceType, VerifactuDateTime, PreviousHuella); + VerifactuDocUploadMgt.InsertVerifactuDocument(EDocument, ServiceInvoiceHeader."No.", ServiceInvoiceHeader."Posting Date", VerifactuHash); + + CreateXML(ServiceInvoiceHeader, ServiceInvoiceLine, IsBatch, TempBlob, FileOutStream, InvoiceType, VerifactuDateTime, VerifactuHash, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + ServiceInvoiceHeader.Modify(); + end; + + local procedure CreateXML(var ServiceInvoiceHeader: Record "Service Invoice Header"; var ServiceInvoiceLine: Record "Service Invoice Line"; IsBatch: Boolean; var TempBlob: Codeunit "Temp Blob"; var FileOutStream: OutStream; InvoiceType: Text; VerifactuDateTime: Text; VerifactuHash: Text[64]; PreviousDocumentNo: Text; PreviousPostingDate: Date; PreviousHuella: Text) + var + HeaderXMLNode, BodyXMLNode, RegFactuSistemaFacturacionXMLNode, RootXMLNode : XmlElement; + XMLDocOut: XmlDocument; + begin + TempBlob.CreateOutStream(FileOutStream, TextEncoding::UTF8); + + XmlDocument.ReadFrom(GetBasicXMLHeader(), XMLDocOut); + XMLDocOut.GetRoot(RootXMLNode); + + InitializeNamespaces(); + HeaderXMLNode := XmlElement.Create('Header', XmlNamespaceSoapenv); + BodyXMLNode := XmlElement.Create('Body', XmlNamespaceSoapenv); + RegFactuSistemaFacturacionXMLNode := XmlElement.Create('RegFactuSistemaFacturacion', XmlNamespaceSum); + InsertHeaderData(RegFactuSistemaFacturacionXMLNode); + InsertServiceInvoicesData(RegFactuSistemaFacturacionXMLNode, ServiceInvoiceHeader, ServiceInvoiceLine, IsBatch, InvoiceType, VerifactuDateTime, VerifactuHash, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + + BodyXMLNode.Add(RegFactuSistemaFacturacionXMLNode); + RootXMLNode.Add(HeaderXMLNode); + RootXMLNode.Add(BodyXMLNode); + + XmlDocOut.WriteTo(FileOutStream); + end; + + local procedure InsertServiceInvoicesData(var RootXMLNode: XmlElement; var ServiceInvoiceHeader: Record "Service Invoice Header"; var ServiceInvoiceLine: Record "Service Invoice Line"; IsBatch: Boolean; InvoiceType: Text; VerifactuDateTime: Text; VerifactuHash: Text[64]; PreviousDocumentNo: Text; PreviousPostingDate: Date; PreviousHuella: Text) + var + InvoiceXMLNode: XmlElement; + begin + InvoiceXMLNode := XmlElement.Create('RegistroFactura', XmlNamespaceSum); + + if IsBatch then + repeat + InsertServiceInvoice(InvoiceXMLNode, ServiceInvoiceHeader, ServiceInvoiceLine, InvoiceType, VerifactuDateTime, VerifactuHash, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + until ServiceInvoiceHeader.Next() = 0 + else + InsertServiceInvoice(InvoiceXMLNode, ServiceInvoiceHeader, ServiceInvoiceLine, InvoiceType, VerifactuDateTime, VerifactuHash, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + RootXMLNode.Add(InvoiceXMLNode); + end; + + local procedure InsertServiceInvoice(var RootXMLNode: XmlElement; var ServiceInvoiceHeader: Record "Service Invoice Header"; var ServiceInvoiceLine: Record "Service Invoice Line"; InvoiceType: Text; VerifactuDateTime: Text; VerifactuHash: Text[64]; PreviousDocumentNo: Text; PreviousPostingDate: Date; PreviousHuella: Text) + var + InvoiceXMLNode: XmlElement; + begin + InvoiceXMLNode := XmlElement.Create('RegistroAlta', XmlNamespaceSum1); + + InsertServiceInvoiceHeaderData(InvoiceXMLNode, ServiceInvoiceHeader, InvoiceType); + InsertServiceInvoiceBreakdown(InvoiceXMLNode, ServiceInvoiceHeader, ServiceInvoiceLine); + InsertTotals(InvoiceXMLNode, ServiceInvoiceHeader); + InsertRegistroAnterior(InvoiceXMLNode, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + InsertInformationSystem(InvoiceXMLNode); + InsertHuellaDigital(InvoiceXMLNode, VerifactuDateTime, VerifactuHash); + + RootXMLNode.Add(InvoiceXMLNode); + end; + + local procedure InsertServiceInvoiceHeaderData(var InvoiceXMLNode: XmlElement; var ServiceInvoiceHeader: Record "Service Invoice Header"; InvoiceType: Text) + var + IDFacturaXMLNode, DestinatariosXMLNode, IDDestinatarioXMLNode : XmlElement; + begin + InvoiceXMLNode.Add(XmlElement.Create('IDVersion', XmlNamespaceSum1, '1.0')); + + IDFacturaXMLNode := XmlElement.Create('IDFactura', XmlNamespaceSum1); + IDFacturaXMLNode.Add(XmlElement.Create('IDEmisorFactura', XmlNamespaceSum1, CompanyInformation."VAT Registration No.")); + IDFacturaXMLNode.Add(XmlElement.Create('NumSerieFactura', XmlNamespaceSum1, ServiceInvoiceHeader."No.")); + IDFacturaXMLNode.Add(XmlElement.Create('FechaExpedicionFactura', XmlNamespaceSum1, FormatDate(ServiceInvoiceHeader."Posting Date"))); + InvoiceXMLNode.Add(IDFacturaXMLNode); + + InvoiceXMLNode.Add(XmlElement.Create('NombreRazonEmisor', XmlNamespaceSum1, CompanyInformation."Name")); + InvoiceXMLNode.Add(XmlElement.Create('TipoFactura', XmlNamespaceSum1, InvoiceType)); + if ServiceInvoiceHeader."Operation Description" = '' then + ServiceInvoiceHeader."Operation Description" := ServiceInvoiceHeader."No."; + InvoiceXMLNode.Add(XmlElement.Create('DescripcionOperacion', XmlNamespaceSum1, ServiceInvoiceHeader."Operation Description")); + + DestinatariosXMLNode := XmlElement.Create('Destinatarios', XmlNamespaceSum1); + IDDestinatarioXMLNode := XmlElement.Create('IDDestinatario', XmlNamespaceSum1); + IDDestinatarioXMLNode.Add(XmlElement.Create('NombreRazon', XmlNamespaceSum1, CompanyInformation.Name)); + IDDestinatarioXMLNode.Add(XmlElement.Create('NIF', XmlNamespaceSum1, CompanyInformation."VAT Registration No.")); + DestinatariosXMLNode.Add(IDDestinatarioXMLNode); + InvoiceXMLNode.Add(DestinatariosXMLNode); + end; + + local procedure InsertServiceInvoiceBreakdown(var InvoiceXMLNode: XmlElement; var ServiceInvoiceHeader: Record "Service Invoice Header"; var ServiceInvoiceLine: Record "Service Invoice Line") + var + TempServiceInvoiceLine: Record "Service Invoice Line" temporary; + DesgloseXMLNode, DetalleIVAXMLNode : XmlElement; + begin + ServiceInvoiceLine.SetRange("Document No.", ServiceInvoiceHeader."No."); + ServiceInvoiceLine.SetFilter(Type, '<>%1', ServiceInvoiceLine.Type::" "); + if ServiceInvoiceLine.FindSet() then + repeat + if FindLineInTempServiceInvoiceLine(TempServiceInvoiceLine, ServiceInvoiceLine) then begin + TempServiceInvoiceLine.Amount += ServiceInvoiceLine.Amount; + TempServiceInvoiceLine."Amount Including VAT" += ServiceInvoiceLine."Amount Including VAT"; + TempServiceInvoiceLine.Modify(); + end else begin + TempServiceInvoiceLine.Init(); + TempServiceInvoiceLine := ServiceInvoiceLine; + TempServiceInvoiceLine.Insert(); + end; + until ServiceInvoiceLine.Next() = 0; + + DesgloseXMLNode := XmlElement.Create('Desglose', XmlNamespaceSum1); + + TempServiceInvoiceLine.Reset(); + TempServiceInvoiceLine.SetRange("Document No.", ServiceInvoiceHeader."No."); + if TempServiceInvoiceLine.FindSet() then + repeat + DetalleIVAXMLNode := XmlElement.Create('DetalleDesglose', XmlNamespaceSum1); + DetalleIVAXMLNode.Add(XmlElement.Create('ClaveRegimen', XmlNamespaceSum1, GetOptionFirstTwoChars(ServiceInvoiceHeader."Special Scheme Code"))); + DetalleIVAXMLNode.Add(XmlElement.Create('CalificacionOperacion', XmlNamespaceSum1, GetVATIdentifier(TempServiceInvoiceLine."VAT Identifier"))); + DetalleIVAXMLNode.Add(XmlElement.Create('TipoImpositivo', XmlNamespaceSum1, Format(TempServiceInvoiceLine."VAT %", 0, 9))); + DetalleIVAXMLNode.Add(XmlElement.Create('BaseImponibleOimporteNoSujeto', XmlNamespaceSum1, Format(TempServiceInvoiceLine.Amount, 0, 9))); + DetalleIVAXMLNode.Add(XmlElement.Create('CuotaRepercutida', XmlNamespaceSum1, Format(TempServiceInvoiceLine."Amount Including VAT" - TempServiceInvoiceLine.Amount, 0, 9))); + DesgloseXMLNode.Add(DetalleIVAXMLNode); + until TempServiceInvoiceLine.Next() = 0; + TempServiceInvoiceLine.CalcSums(Amount, "Amount Including VAT"); + + InvoiceXMLNode.Add(DesgloseXMLNode); + end; + + local procedure InsertTotals(var InvoiceXMLNode: XmlElement; var ServiceInvoiceHeader: Record "Service Invoice Header") + begin + InvoiceXMLNode.Add(XmlElement.Create('CuotaTotal', XmlNamespaceSum1, ServiceInvoiceHeader."Amount Including VAT" - ServiceInvoiceHeader.Amount)); + InvoiceXMLNode.Add(XmlElement.Create('ImporteTotal', XmlNamespaceSum1, ServiceInvoiceHeader."Amount Including VAT")); + end; + + local procedure FindLineInTempServiceInvoiceLine(var TempServiceInvoiceLine: Record "Service Invoice Line" temporary; var ServiceInvoiceLine: Record "Service Invoice Line"): Boolean + begin + TempServiceInvoiceLine.SetRange("Document No.", ServiceInvoiceLine."Document No."); + TempServiceInvoiceLine.SetRange("VAT %", ServiceInvoiceLine."VAT %"); + exit(TempServiceInvoiceLine.FindFirst()); + end; + + local procedure GenerateHash(ServiceInvoiceHeader: Record "Service Invoice Header"; InvoiceType: Text; VerifactuDateTime: Text; PreviousHuella: Text): Text[64] + var + CryptographyManagement: Codeunit "Cryptography Management"; + HashAlgorithmType: Option MD5,SHA1,SHA256,SHA384,SHA512; + InputString: Text; + begin + InputString := + 'IDEmisorFactura=' + CompanyInformation."VAT Registration No." + + '&' + + 'NumSerieFactura=' + ServiceInvoiceHeader."No." + + '&' + + 'FechaExpedicionFactura=' + Format(ServiceInvoiceHeader."Posting Date", 0, '--') + + '&' + + 'TipoFactura=' + InvoiceType + + '&' + + 'CuotaTotal=' + Format(ServiceInvoiceHeader."Amount Including VAT" - ServiceInvoiceHeader.Amount, 0, 9) + + '&' + + 'ImporteTotal=' + Format(ServiceInvoiceHeader."Amount Including VAT", 0, 9) + + '&' + + 'Huella=' + PreviousHuella + + '&' + + 'FechaHoraHusoGenRegistro=' + VerifactuDateTime; + exit( + CopyStr( + CryptographyManagement.GenerateHash(InputString, HashAlgorithmType::SHA256), 1, 64)); + end; + #endregion + #region Credit Memo + local procedure ExportCreditMemo(var EDocument: Record "E-Document"; var SalesCrMemoHeader: Record "Sales Cr.Memo Header"; var SalesCrMemoLine: Record "Sales Cr.Memo Line"; var TempBlob: Codeunit "Temp Blob"; IsBatch: Boolean) + var + TempBlobQR: Codeunit "Temp Blob"; + InvoiceType, VerifactuDateTime : Text; + PreviousDocumentNo, PreviousHuella : Text; + VerifactuHash: Text[64]; + PreviousPostingDate: Date; + FileOutStream, OutStr : OutStream; + InStr: InStream; + begin + SalesCrMemoHeader.CalcFields(Amount, "Amount Including VAT"); + InvoiceType := GetOptionFirstTwoChars(SalesCrMemoHeader."Cr. Memo Type"); + VerifactuDateTime := GetCustomDateTimeFormat(CurrentDateTime()); + FindLastRegisteredDocument(PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + VerifactuHash := GenerateHash(SalesCrMemoHeader, InvoiceType, VerifactuDateTime, PreviousHuella); + VerifactuDocUploadMgt.InsertVerifactuDocument(EDocument, SalesCrMemoHeader."No.", SalesCrMemoHeader."Posting Date", VerifactuHash); + + CreateXML(SalesCrMemoHeader, SalesCrMemoLine, IsBatch, TempBlob, FileOutStream, InvoiceType, VerifactuDateTime, VerifactuHash, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + + TempBlobQR := GenerateQRCode(SalesCrMemoHeader."No.", SalesCrMemoHeader."Posting Date", SalesCrMemoHeader."Amount Including VAT"); + TempBlobQR.CreateInStream(InStr); + SalesCrMemoHeader."QR Code Base64".CreateOutStream(OutStr, TextEncoding::UTF8); + CopyStream(OutStr, InStr); + SalesCrMemoHeader."QR Code Image".ImportStream(InStr, 'image.png'); + SalesCrMemoHeader.Modify(); + end; + + local procedure CreateXML(var SalesCrMemoHeader: Record "Sales Cr.Memo Header"; var SalesCrMemoLine: Record "Sales Cr.Memo Line"; IsBatch: Boolean; var TempBlob: Codeunit "Temp Blob"; var FileOutStream: OutStream; InvoiceType: Text; VerifactuDateTime: Text; VerifactuHash: Text[64]; PreviousDocumentNo: Text; PreviousPostingDate: Date; PreviousHuella: Text) + var + HeaderXMLNode, BodyXMLNode, RegFactuSistemaFacturacionXMLNode, RootXMLNode : XmlElement; + XMLDocOut: XmlDocument; + begin + TempBlob.CreateOutStream(FileOutStream, TextEncoding::UTF8); + + XmlDocument.ReadFrom(GetBasicXMLHeader(), XMLDocOut); + XMLDocOut.GetRoot(RootXMLNode); + + InitializeNamespaces(); + HeaderXMLNode := XmlElement.Create('Header', XmlNamespaceSoapenv); + BodyXMLNode := XmlElement.Create('Body', XmlNamespaceSoapenv); + RegFactuSistemaFacturacionXMLNode := XmlElement.Create('RegFactuSistemaFacturacion', XmlNamespaceSum); + InsertHeaderData(RegFactuSistemaFacturacionXMLNode); + InsertCreditMemosData(RegFactuSistemaFacturacionXMLNode, SalesCrMemoHeader, SalesCrMemoLine, IsBatch, InvoiceType, VerifactuDateTime, VerifactuHash, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + + BodyXMLNode.Add(RegFactuSistemaFacturacionXMLNode); + RootXMLNode.Add(HeaderXMLNode); + RootXMLNode.Add(BodyXMLNode); + + XmlDocOut.WriteTo(FileOutStream); + end; + + local procedure InsertCreditMemosData(var RootXMLNode: XmlElement; var SalesCrMemoHeader: Record "Sales Cr.Memo Header"; var SalesCrMemoLine: Record "Sales Cr.Memo Line"; IsBatch: Boolean; InvoiceType: Text; VerifactuDateTime: Text; VerifactuHash: Text[64]; PreviousDocumentNo: Text; PreviousPostingDate: Date; PreviousHuella: Text) + var + CreditMemoXMLNode: XmlElement; + CreditMemoCount: Integer; + begin + CreditMemoXMLNode := XmlElement.Create('RegistroFactura', XmlNamespaceSum); + + if IsBatch then + repeat + CreditMemoCount += 1; + if CreditMemoCount > 1000 then + Error(MaxBatchSizeErr); + InsertCreditMemo(CreditMemoXMLNode, SalesCrMemoHeader, SalesCrMemoLine, InvoiceType, VerifactuDateTime, VerifactuHash, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + until SalesCrMemoHeader.Next() = 0 + else + InsertCreditMemo(CreditMemoXMLNode, SalesCrMemoHeader, SalesCrMemoLine, InvoiceType, VerifactuDateTime, VerifactuHash, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + RootXMLNode.Add(CreditMemoXMLNode); + end; + + local procedure InsertCreditMemo(var RootXMLNode: XmlElement; var SalesCrMemoHeader: Record "Sales Cr.Memo Header"; var SalesCrMemoLine: Record "Sales Cr.Memo Line"; InvoiceType: Text; VerifactuDateTime: Text; VerifactuHash: Text[64]; PreviousDocumentNo: Text; PreviousPostingDate: Date; PreviousHuella: Text) + var + Customer: Record Customer; + CrMemoXMLNode: XmlElement; + begin + Customer.Get(SalesCrMemoHeader."Bill-to Customer No."); + + CrMemoXMLNode := XmlElement.Create('RegistroAlta', XmlNamespaceSum1); + + InsertCreditMemoHeaderData(CrMemoXMLNode, SalesCrMemoHeader, InvoiceType); + InsertCreditMemoBreakdown(CrMemoXMLNode, SalesCrMemoHeader, SalesCrMemoLine); + InsertTotals(CrMemoXMLNode, SalesCrMemoHeader); + InsertRegistroAnterior(CrMemoXMLNode, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + InsertInformationSystem(CrMemoXMLNode); + InsertHuellaDigital(CrMemoXMLNode, VerifactuDateTime, VerifactuHash); + + RootXMLNode.Add(CrMemoXMLNode); + end; + + local procedure InsertCreditMemoHeaderData(var InvoiceXMLNode: XmlElement; var SalesCrMemoHeader: Record "Sales Cr.Memo Header"; InvoiceType: Text) + var + IDFacturaXMLNode, DestinatariosXMLNode, IDDestinatarioXMLNode : XmlElement; + begin + InvoiceXMLNode.Add(XmlElement.Create('IDVersion', XmlNamespaceSum1, '1.0')); + + IDFacturaXMLNode := XmlElement.Create('IDFactura', XmlNamespaceSum1); + IDFacturaXMLNode.Add(XmlElement.Create('IDEmisorFactura', XmlNamespaceSum1, CompanyInformation."VAT Registration No.")); + IDFacturaXMLNode.Add(XmlElement.Create('NumSerieFactura', XmlNamespaceSum1, SalesCrMemoHeader."No.")); + IDFacturaXMLNode.Add(XmlElement.Create('FechaExpedicionFactura', XmlNamespaceSum1, FormatDate(SalesCrMemoHeader."Posting Date"))); + InvoiceXMLNode.Add(IDFacturaXMLNode); + + InvoiceXMLNode.Add(XmlElement.Create('NombreRazonEmisor', XmlNamespaceSum1, CompanyInformation."Name")); + InvoiceXMLNode.Add(XmlElement.Create('TipoFactura', XmlNamespaceSum1, InvoiceType)); + InvoiceXMLNode.Add(XmlElement.Create('TipoRectificativa', XmlNamespaceSum1, 'I')); + InsertFacturaRectificada(InvoiceXMLNode, SalesCrMemoHeader); + if SalesCrMemoHeader."Operation Description" = '' then + SalesCrMemoHeader."Operation Description" := SalesCrMemoHeader."No."; + InvoiceXMLNode.Add(XmlElement.Create('DescripcionOperacion', XmlNamespaceSum1, SalesCrMemoHeader."Operation Description")); + + DestinatariosXMLNode := XmlElement.Create('Destinatarios', XmlNamespaceSum1); + IDDestinatarioXMLNode := XmlElement.Create('IDDestinatario', XmlNamespaceSum1); + IDDestinatarioXMLNode.Add(XmlElement.Create('NombreRazon', XmlNamespaceSum1, CompanyInformation.Name)); + IDDestinatarioXMLNode.Add(XmlElement.Create('NIF', XmlNamespaceSum1, CompanyInformation."VAT Registration No.")); + DestinatariosXMLNode.Add(IDDestinatarioXMLNode); + InvoiceXMLNode.Add(DestinatariosXMLNode); + end; + + local procedure InsertCreditMemoBreakdown(var InvoiceXMLNode: XmlElement; var SalesCrMemoHeader: Record "Sales Cr.Memo Header"; var SalesCrMemoLine: Record "Sales Cr.Memo Line") + var + TempSalesCrMemoLine: Record "Sales Cr.Memo Line" temporary; + DesgloseXMLNode, DetalleIVAXMLNode : XmlElement; + begin + SalesCrMemoLine.SetRange("Document No.", SalesCrMemoHeader."No."); + SalesCrMemoLine.SetFilter(Type, '<>%1', SalesCrMemoLine.Type::" "); + if SalesCrMemoLine.FindSet() then + repeat + if FindLineInTempSalesCrMemoLine(TempSalesCrMemoLine, SalesCrMemoLine) then begin + TempSalesCrMemoLine.Amount += SalesCrMemoLine.Amount; + TempSalesCrMemoLine."Amount Including VAT" += SalesCrMemoLine."Amount Including VAT"; + TempSalesCrMemoLine.Modify(); + end else begin + TempSalesCrMemoLine.Init(); + TempSalesCrMemoLine := SalesCrMemoLine; + TempSalesCrMemoLine.Insert(); + end; + until SalesCrMemoLine.Next() = 0; + + DesgloseXMLNode := XmlElement.Create('Desglose', XmlNamespaceSum1); + + TempSalesCrMemoLine.Reset(); + TempSalesCrMemoLine.SetRange("Document No.", SalesCrMemoHeader."No."); + if TempSalesCrMemoLine.FindSet() then + repeat + DetalleIVAXMLNode := XmlElement.Create('DetalleDesglose', XmlNamespaceSum1); + DetalleIVAXMLNode.Add(XmlElement.Create('ClaveRegimen', XmlNamespaceSum1, GetOptionFirstTwoChars(TempSalesCrMemoLine."Special Scheme Code"))); + DetalleIVAXMLNode.Add(XmlElement.Create('CalificacionOperacion', XmlNamespaceSum1, GetVATIdentifier(TempSalesCrMemoLine."VAT Identifier"))); + DetalleIVAXMLNode.Add(XmlElement.Create('TipoImpositivo', XmlNamespaceSum1, Format(TempSalesCrMemoLine."VAT %", 0, 9))); + DetalleIVAXMLNode.Add(XmlElement.Create('BaseImponibleOimporteNoSujeto', XmlNamespaceSum1, Format(-TempSalesCrMemoLine.Amount, 0, 9))); + DetalleIVAXMLNode.Add(XmlElement.Create('CuotaRepercutida', XmlNamespaceSum1, Format(-(TempSalesCrMemoLine."Amount Including VAT" - TempSalesCrMemoLine.Amount), 0, 9))); + DesgloseXMLNode.Add(DetalleIVAXMLNode); + until TempSalesCrMemoLine.Next() = 0; + TempSalesCrMemoLine.CalcSums(Amount, "Amount Including VAT"); + + InvoiceXMLNode.Add(DesgloseXMLNode); + end; + + local procedure InsertTotals(var InvoiceXMLNode: XmlElement; var SalesCrMemoHeader: Record "Sales Cr.Memo Header") + begin + InvoiceXMLNode.Add(XmlElement.Create('CuotaTotal', XmlNamespaceSum1, -(SalesCrMemoHeader."Amount Including VAT" - SalesCrMemoHeader.Amount))); + InvoiceXMLNode.Add(XmlElement.Create('ImporteTotal', XmlNamespaceSum1, -SalesCrMemoHeader."Amount Including VAT")); + end; + + local procedure GenerateHash(SalesCrMemoHeader: Record "Sales Cr.Memo Header"; InvoiceType: Text; VerifactuDateTime: Text; PreviousHuella: Text): Text[64] + var + CryptographyManagement: Codeunit "Cryptography Management"; + HashAlgorithmType: Option MD5,SHA1,SHA256,SHA384,SHA512; + InputString: Text; + begin + InputString := + 'IDEmisorFactura=' + CompanyInformation."VAT Registration No." + + '&' + + 'NumSerieFactura=' + SalesCrMemoHeader."No." + + '&' + + 'FechaExpedicionFactura=' + Format(SalesCrMemoHeader."Posting Date", 0, '--') + + '&' + + 'TipoFactura=' + InvoiceType + + '&' + + 'CuotaTotal=' + Format(-(SalesCrMemoHeader."Amount Including VAT" - SalesCrMemoHeader.Amount), 0, 9) + + '&' + + 'ImporteTotal=' + Format(-SalesCrMemoHeader."Amount Including VAT", 0, 9) + + '&' + + 'Huella=' + PreviousHuella + + '&' + + 'FechaHoraHusoGenRegistro=' + VerifactuDateTime; + exit( + CopyStr( + CryptographyManagement.GenerateHash(InputString, HashAlgorithmType::SHA256), 1, 64)); + end; + + local procedure FindLineInTempSalesCrMemoLine(var TempSalesCrMemoLine: Record "Sales Cr.Memo Line" temporary; var SalesCrMemoLine: Record "Sales Cr.Memo Line"): Boolean + begin + TempSalesCrMemoLine.SetRange("Document No.", SalesCrMemoLine."Document No."); + TempSalesCrMemoLine.SetRange("VAT %", SalesCrMemoLine."VAT %"); + exit(TempSalesCrMemoLine.FindFirst()); + end; + + local procedure InsertFacturaRectificada(var InvoiceXMLNode: XmlElement; var SalesCrMemoHeader: Record "Sales Cr.Memo Header") + var + SalesInvoiceHeader: Record "Sales Invoice Header"; + FacturaRectificadaXMLNode, IDFacturaRectificadaXMLNode : XmlElement; + begin + SalesInvoiceHeader.Get(SalesCrMemoHeader."Corrected Invoice No."); + FacturaRectificadaXMLNode := XmlElement.Create('FacturasRectificadas', XmlNamespaceSum1); + + IDFacturaRectificadaXMLNode := XmlElement.Create('IDFacturaRectificada', XmlNamespaceSum1); + IDFacturaRectificadaXMLNode.Add(XmlElement.Create('IDEmisorFactura', XmlNamespaceSum1, CompanyInformation."VAT Registration No.")); + IDFacturaRectificadaXMLNode.Add(XmlElement.Create('NumSerieFactura', XmlNamespaceSum1, SalesInvoiceHeader."No.")); + IDFacturaRectificadaXMLNode.Add(XmlElement.Create('FechaExpedicionFactura', XmlNamespaceSum1, FormatDate(SalesInvoiceHeader."Posting Date"))); + FacturaRectificadaXMLNode.Add(IDFacturaRectificadaXMLNode); + + InvoiceXMLNode.Add(FacturaRectificadaXMLNode); + end; + #endregion + #region Service Credit Memo + local procedure ExportServiceCreditMemo(var EDocument: Record "E-Document"; var ServiceCrMemoHeader: Record "Service Cr.Memo Header"; var ServiceCrMemoLine: Record "Service Cr.Memo Line"; var TempBlob: Codeunit "Temp Blob"; IsBatch: Boolean) + var + InvoiceType, VerifactuDateTime : Text; + PreviousDocumentNo, PreviousHuella : Text; + VerifactuHash: Text[64]; + PreviousPostingDate: Date; + FileOutStream: OutStream; + begin + ServiceCrMemoHeader.CalcFields(Amount, "Amount Including VAT"); + InvoiceType := GetOptionFirstTwoChars(ServiceCrMemoHeader."Cr. Memo Type"); + VerifactuDateTime := GetCustomDateTimeFormat(CurrentDateTime()); + FindLastRegisteredDocument(PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + VerifactuHash := GenerateHash(ServiceCrMemoHeader, InvoiceType, VerifactuDateTime, PreviousHuella); + VerifactuDocUploadMgt.InsertVerifactuDocument(EDocument, ServiceCrMemoHeader."No.", ServiceCrMemoHeader."Posting Date", VerifactuHash); + + CreateXML(ServiceCrMemoHeader, ServiceCrMemoLine, IsBatch, TempBlob, FileOutStream, InvoiceType, VerifactuDateTime, VerifactuHash, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + + ServiceCrMemoHeader.Modify(); + end; + + local procedure CreateXML(var ServiceCrMemoHeader: Record "Service Cr.Memo Header"; var ServiceCrMemoLine: Record "Service Cr.Memo Line"; IsBatch: Boolean; var TempBlob: Codeunit "Temp Blob"; var FileOutStream: OutStream; InvoiceType: Text; VerifactuDateTime: Text; VerifactuHash: Text[64]; PreviousDocumentNo: Text; PreviousPostingDate: Date; PreviousHuella: Text) + var + HeaderXMLNode, BodyXMLNode, RegFactuSistemaFacturacionXMLNode, RootXMLNode : XmlElement; + XMLDocOut: XmlDocument; + begin + TempBlob.CreateOutStream(FileOutStream, TextEncoding::UTF8); + + XmlDocument.ReadFrom(GetBasicXMLHeader(), XMLDocOut); + XMLDocOut.GetRoot(RootXMLNode); + + InitializeNamespaces(); + HeaderXMLNode := XmlElement.Create('Header', XmlNamespaceSoapenv); + BodyXMLNode := XmlElement.Create('Body', XmlNamespaceSoapenv); + RegFactuSistemaFacturacionXMLNode := XmlElement.Create('RegFactuSistemaFacturacion', XmlNamespaceSum); + InsertHeaderData(RegFactuSistemaFacturacionXMLNode); + InsertServiceCreditMemosData(RegFactuSistemaFacturacionXMLNode, ServiceCrMemoHeader, ServiceCrMemoLine, IsBatch, InvoiceType, VerifactuDateTime, VerifactuHash, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + + BodyXMLNode.Add(RegFactuSistemaFacturacionXMLNode); + RootXMLNode.Add(HeaderXMLNode); + RootXMLNode.Add(BodyXMLNode); + + XmlDocOut.WriteTo(FileOutStream); + end; + + local procedure InsertServiceCreditMemosData(var RootXMLNode: XmlElement; var ServiceCrMemoHeader: Record "Service Cr.Memo Header"; var ServiceCrMemoLine: Record "Service Cr.Memo Line"; IsBatch: Boolean; InvoiceType: Text; VerifactuDateTime: Text; VerifactuHash: Text[64]; PreviousDocumentNo: Text; PreviousPostingDate: Date; PreviousHuella: Text) + var + CreditMemoXMLNode: XmlElement; + begin + CreditMemoXMLNode := XmlElement.Create('RegistroFactura', XmlNamespaceSum); + + if IsBatch then + repeat + InsertServiceCreditMemo(CreditMemoXMLNode, ServiceCrMemoHeader, ServiceCrMemoLine, InvoiceType, VerifactuDateTime, VerifactuHash, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + until ServiceCrMemoHeader.Next() = 0 + else + InsertServiceCreditMemo(CreditMemoXMLNode, ServiceCrMemoHeader, ServiceCrMemoLine, InvoiceType, VerifactuDateTime, VerifactuHash, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + RootXMLNode.Add(CreditMemoXMLNode); + end; + + local procedure InsertServiceCreditMemo(var RootXMLNode: XmlElement; var ServiceCrMemoHeader: Record "Service Cr.Memo Header"; var ServiceCrMemoLine: Record "Service Cr.Memo Line"; InvoiceType: Text; VerifactuDateTime: Text; VerifactuHash: Text[64]; PreviousDocumentNo: Text; PreviousPostingDate: Date; PreviousHuella: Text) + var + Customer: Record Customer; + CrMemoXMLNode: XmlElement; + begin + Customer.Get(ServiceCrMemoHeader."Bill-to Customer No."); + + CrMemoXMLNode := XmlElement.Create('RegistroAlta', XmlNamespaceSum1); + + InsertServiceCreditMemoHeaderData(CrMemoXMLNode, ServiceCrMemoHeader, InvoiceType); + InsertServiceCreditMemoBreakdown(CrMemoXMLNode, ServiceCrMemoHeader, ServiceCrMemoLine); + InsertTotals(CrMemoXMLNode, ServiceCrMemoHeader); + InsertRegistroAnterior(CrMemoXMLNode, PreviousDocumentNo, PreviousPostingDate, PreviousHuella); + InsertInformationSystem(CrMemoXMLNode); + InsertHuellaDigital(CrMemoXMLNode, VerifactuDateTime, VerifactuHash); + + RootXMLNode.Add(CrMemoXMLNode); + end; + + local procedure InsertServiceCreditMemoHeaderData(var InvoiceXMLNode: XmlElement; var ServiceCrMemoHeader: Record "Service Cr.Memo Header"; InvoiceType: Text) + var + IDFacturaXMLNode, DestinatariosXMLNode, IDDestinatarioXMLNode : XmlElement; + begin + InvoiceXMLNode.Add(XmlElement.Create('IDVersion', XmlNamespaceSum1, '1.0')); + + IDFacturaXMLNode := XmlElement.Create('IDFactura', XmlNamespaceSum1); + IDFacturaXMLNode.Add(XmlElement.Create('IDEmisorFactura', XmlNamespaceSum1, CompanyInformation."VAT Registration No.")); + IDFacturaXMLNode.Add(XmlElement.Create('NumSerieFactura', XmlNamespaceSum1, ServiceCrMemoHeader."No.")); + IDFacturaXMLNode.Add(XmlElement.Create('FechaExpedicionFactura', XmlNamespaceSum1, FormatDate(ServiceCrMemoHeader."Posting Date"))); + InvoiceXMLNode.Add(IDFacturaXMLNode); + + InvoiceXMLNode.Add(XmlElement.Create('NombreRazonEmisor', XmlNamespaceSum1, CompanyInformation."Name")); + InvoiceXMLNode.Add(XmlElement.Create('TipoFactura', XmlNamespaceSum1, InvoiceType)); + InvoiceXMLNode.Add(XmlElement.Create('TipoRectificativa', XmlNamespaceSum1, 'I')); + InsertFacturaRectificada(InvoiceXMLNode, ServiceCrMemoHeader); + if ServiceCrMemoHeader."Operation Description" = '' then + ServiceCrMemoHeader."Operation Description" := ServiceCrMemoHeader."No."; + InvoiceXMLNode.Add(XmlElement.Create('DescripcionOperacion', XmlNamespaceSum1, ServiceCrMemoHeader."Operation Description")); + + DestinatariosXMLNode := XmlElement.Create('Destinatarios', XmlNamespaceSum1); + IDDestinatarioXMLNode := XmlElement.Create('IDDestinatario', XmlNamespaceSum1); + IDDestinatarioXMLNode.Add(XmlElement.Create('NombreRazon', XmlNamespaceSum1, CompanyInformation.Name)); + IDDestinatarioXMLNode.Add(XmlElement.Create('NIF', XmlNamespaceSum1, CompanyInformation."VAT Registration No.")); + DestinatariosXMLNode.Add(IDDestinatarioXMLNode); + InvoiceXMLNode.Add(DestinatariosXMLNode); + end; + + local procedure InsertServiceCreditMemoBreakdown(var InvoiceXMLNode: XmlElement; var ServiceCrMemoHeader: Record "Service Cr.Memo Header"; var ServiceCrMemoLine: Record "Service Cr.Memo Line") + var + TempServiceCrMemoLine: Record "Service Cr.Memo Line" temporary; + DesgloseXMLNode, DetalleIVAXMLNode : XmlElement; + begin + ServiceCrMemoLine.SetRange("Document No.", ServiceCrMemoHeader."No."); + ServiceCrMemoLine.SetFilter(Type, '<>%1', ServiceCrMemoLine.Type::" "); + if ServiceCrMemoLine.FindSet() then + repeat + if FindLineInTempServiceCrMemoLine(TempServiceCrMemoLine, ServiceCrMemoLine) then begin + TempServiceCrMemoLine.Amount += ServiceCrMemoLine.Amount; + TempServiceCrMemoLine."Amount Including VAT" += ServiceCrMemoLine."Amount Including VAT"; + TempServiceCrMemoLine.Modify(); + end else begin + TempServiceCrMemoLine.Init(); + TempServiceCrMemoLine := ServiceCrMemoLine; + TempServiceCrMemoLine.Insert(); + end; + until ServiceCrMemoLine.Next() = 0; + + DesgloseXMLNode := XmlElement.Create('Desglose', XmlNamespaceSum1); + + TempServiceCrMemoLine.Reset(); + TempServiceCrMemoLine.SetRange("Document No.", ServiceCrMemoHeader."No."); + if TempServiceCrMemoLine.FindSet() then + repeat + DetalleIVAXMLNode := XmlElement.Create('DetalleDesglose', XmlNamespaceSum1); + DetalleIVAXMLNode.Add(XmlElement.Create('ClaveRegimen', XmlNamespaceSum1, GetOptionFirstTwoChars(TempServiceCrMemoLine."Special Scheme Code"))); + DetalleIVAXMLNode.Add(XmlElement.Create('CalificacionOperacion', XmlNamespaceSum1, GetVATIdentifier(TempServiceCrMemoLine."VAT Identifier"))); + DetalleIVAXMLNode.Add(XmlElement.Create('TipoImpositivo', XmlNamespaceSum1, Format(TempServiceCrMemoLine."VAT %", 0, 9))); + DetalleIVAXMLNode.Add(XmlElement.Create('BaseImponibleOimporteNoSujeto', XmlNamespaceSum1, Format(-TempServiceCrMemoLine.Amount, 0, 9))); + DetalleIVAXMLNode.Add(XmlElement.Create('CuotaRepercutida', XmlNamespaceSum1, Format(-(TempServiceCrMemoLine."Amount Including VAT" - TempServiceCrMemoLine.Amount), 0, 9))); + DesgloseXMLNode.Add(DetalleIVAXMLNode); + until TempServiceCrMemoLine.Next() = 0; + TempServiceCrMemoLine.CalcSums(Amount, "Amount Including VAT"); + + InvoiceXMLNode.Add(DesgloseXMLNode); + end; + + local procedure InsertTotals(var InvoiceXMLNode: XmlElement; var ServiceCrMemoHeader: Record "Service Cr.Memo Header") + begin + InvoiceXMLNode.Add(XmlElement.Create('CuotaTotal', XmlNamespaceSum1, -(ServiceCrMemoHeader."Amount Including VAT" - ServiceCrMemoHeader.Amount))); + InvoiceXMLNode.Add(XmlElement.Create('ImporteTotal', XmlNamespaceSum1, -ServiceCrMemoHeader."Amount Including VAT")); + end; + + local procedure FindLineInTempServiceCrMemoLine(var TempServiceCrMemoLine: Record "Service Cr.Memo Line" temporary; var ServiceCrMemoLine: Record "Service Cr.Memo Line"): Boolean + begin + TempServiceCrMemoLine.SetRange("Document No.", ServiceCrMemoLine."Document No."); + TempServiceCrMemoLine.SetRange("VAT %", ServiceCrMemoLine."VAT %"); + exit(TempServiceCrMemoLine.FindFirst()); + end; + + local procedure GenerateHash(ServiceCrMemoHeader: Record "Service Cr.Memo Header"; InvoiceType: Text; VerifactuDateTime: Text; PreviousHuella: Text): Text[64] + var + CryptographyManagement: Codeunit "Cryptography Management"; + HashAlgorithmType: Option MD5,SHA1,SHA256,SHA384,SHA512; + InputString: Text; + begin + InputString := + 'IDEmisorFactura=' + CompanyInformation."VAT Registration No." + + '&' + + 'NumSerieFactura=' + ServiceCrMemoHeader."No." + + '&' + + 'FechaExpedicionFactura=' + Format(ServiceCrMemoHeader."Posting Date", 0, '--') + + '&' + + 'TipoFactura=' + InvoiceType + + '&' + + 'CuotaTotal=' + Format(-(ServiceCrMemoHeader."Amount Including VAT" - ServiceCrMemoHeader.Amount), 0, 9) + + '&' + + 'ImporteTotal=' + Format(-ServiceCrMemoHeader."Amount Including VAT", 0, 9) + + '&' + + 'Huella=' + PreviousHuella + + '&' + + 'FechaHoraHusoGenRegistro=' + VerifactuDateTime; + exit( + CopyStr( + CryptographyManagement.GenerateHash(InputString, HashAlgorithmType::SHA256), 1, 64)); + end; + + local procedure InsertFacturaRectificada(var InvoiceXMLNode: XmlElement; var ServiceCrMemoHeader: Record "Service Cr.Memo Header") + var + ServiceInvoiceHeader: Record "Service Invoice Header"; + FacturaRectificadaXMLNode, IDFacturaRectificadaXMLNode : XmlElement; + begin + ServiceInvoiceHeader.Get(ServiceCrMemoHeader."Corrected Invoice No."); + FacturaRectificadaXMLNode := XmlElement.Create('FacturasRectificadas', XmlNamespaceSum1); + + IDFacturaRectificadaXMLNode := XmlElement.Create('IDFacturaRectificada', XmlNamespaceSum1); + IDFacturaRectificadaXMLNode.Add(XmlElement.Create('IDEmisorFactura', XmlNamespaceSum1, CompanyInformation."VAT Registration No.")); + IDFacturaRectificadaXMLNode.Add(XmlElement.Create('NumSerieFactura', XmlNamespaceSum1, ServiceInvoiceHeader."No.")); + IDFacturaRectificadaXMLNode.Add(XmlElement.Create('FechaExpedicionFactura', XmlNamespaceSum1, FormatDate(ServiceInvoiceHeader."Posting Date"))); + FacturaRectificadaXMLNode.Add(IDFacturaRectificadaXMLNode); + + InvoiceXMLNode.Add(FacturaRectificadaXMLNode); + end; + #endregion + #region Common Procedures + local procedure GenerateQRCode(DocumentNo: Text; DocumentDate: Date; DocumentAmount: Decimal): Codeunit "Temp Blob" + var + IBarcodeImageProvider2D: Interface "Barcode Image Provider 2D"; + BarcodeImageProvider2D: Enum "Barcode Image Provider 2D"; + BarcodeString: Text; + begin + BarcodeString := CreateQRCodeInput( + CompanyInformation."VAT Registration No.", + DocumentNo, + DocumentDate, + DocumentAmount); + + IBarcodeImageProvider2D := BarcodeImageProvider2D::Dynamics2D; + + exit(IBarcodeImageProvider2D.EncodeImage(BarcodeString, Enum::"Barcode Symbology 2D"::"QR-Code")); + end; + + + local procedure CreateQRCodeInput(NIF: Text; InvoiceID: Text; DateOfIssue: Date; Amount: Decimal): Text + begin + exit( + VerifactuSetup.GetQRCodeValidationEndpointUrl() + + 'NoVerifactu?nif=' + + CopyStr(NIF, 1, 13) + + '&numserie=' + + CopyStr(InvoiceID, 1, 13) + + '&fecha=' + + FormatDate(DateOfIssue) + + '&importe=' + + Format(Amount, 0, 9)); + end; + + local procedure InsertHeaderData(var BodyXMLNode: XmlElement) + var + CabeceraXMLNode, MandatoryIssuanceXMLNode : XmlElement; + begin + CabeceraXMLNode := XmlElement.Create('Cabecera', XmlNamespaceSum); + MandatoryIssuanceXMLNode := XmlElement.Create('ObligadoEmision', XmlNamespaceSum1); + MandatoryIssuanceXMLNode.Add(XmlElement.Create('NombreRazon', XmlNamespaceSum1, CompanyInformation.Name)); + MandatoryIssuanceXMLNode.Add(XmlElement.Create('NIF', XmlNamespaceSum1, CompanyInformation."VAT Registration No.")); + CabeceraXMLNode.Add(MandatoryIssuanceXMLNode); + BodyXMLNode.Add(CabeceraXMLNode); + end; + + local procedure GetBasicXMLHeader(): Text + begin + exit('' + + ''); + end; + + local procedure InsertHuellaDigital(var InvoiceXMLNode: XmlElement; VerifactuDateTime: Text; VerifactuHash: Text) + begin + InvoiceXMLNode.Add(XmlElement.Create('FechaHoraHusoGenRegistro', XmlNamespaceSum1, VerifactuDateTime)); + InvoiceXMLNode.Add(XmlElement.Create('TipoHuella', XmlNamespaceSum1, '01')); + InvoiceXMLNode.Add(XmlElement.Create('Huella', XmlNamespaceSum1, VerifactuHash)); + end; + + local procedure InsertRegistroAnterior(var InvoiceXMLNode: XmlElement; PreviousDocumentNo: Text; PreviousPostingDate: Date; PreviousHuella: Text) + var + EncadenamientoXMLNode: XmlElement; + begin + EncadenamientoXMLNode := XmlElement.Create('Encadenamiento', XmlNamespaceSum1); + + if PreviousHuella <> '' then + InsertLastRegisteredDocumentData(EncadenamientoXMLNode, PreviousDocumentNo, PreviousPostingDate, PreviousHuella) + else + EncadenamientoXMLNode.Add(XmlElement.Create('PrimerRegistro', XmlNamespaceSum1, 'S')); + InvoiceXMLNode.Add(EncadenamientoXMLNode); + end; + + local procedure InsertLastRegisteredDocumentData(var EncadenamientoXMLNode: XmlElement; DocumentNo: Text; PostingDate: Date; Huella: Text) + var + RegistroAnteriorXMLNode: XmlElement; + begin + RegistroAnteriorXMLNode := XmlElement.Create('RegistroAnterior', XmlNamespaceSum1); + RegistroAnteriorXMLNode.Add(XmlElement.Create('IDEmisorFactura', XmlNamespaceSum1, CompanyInformation."VAT Registration No.")); + RegistroAnteriorXMLNode.Add(XmlElement.Create('NumSerieFactura', XmlNamespaceSum1, DocumentNo)); + RegistroAnteriorXMLNode.Add(XmlElement.Create('FechaExpedicionFactura', XmlNamespaceSum1, FormatDate(PostingDate))); + RegistroAnteriorXMLNode.Add(XmlElement.Create('Huella', XmlNamespaceSum1, Huella)); + EncadenamientoXMLNode.Add(RegistroAnteriorXMLNode); + end; + + local procedure InsertInformationSystem(var InvoiceXMLNode: XmlElement) + var + SistemaInformacionXMLNode: XmlElement; + begin + SistemaInformacionXMLNode := XmlElement.Create('SistemaInformatico', XmlNamespaceSum1); + SistemaInformacionXMLNode.Add(XmlElement.Create('NombreRazon', XmlNamespaceSum1, CompanyInformation.Name)); + SistemaInformacionXMLNode.Add(XmlElement.Create('NIF', XmlNamespaceSum1, CompanyInformation."VAT Registration No.")); + SistemaInformacionXMLNode.Add(XmlElement.Create('NombreSistemaInformatico', XmlNamespaceSum1, 'BusinessCentral')); + SistemaInformacionXMLNode.Add(XmlElement.Create('IdSistemaInformatico', XmlNamespaceSum1, '77')); + SistemaInformacionXMLNode.Add(XmlElement.Create('Version', XmlNamespaceSum1, '1.0')); + SistemaInformacionXMLNode.Add(XmlElement.Create('NumeroInstalacion', XmlNamespaceSum1, '001')); + SistemaInformacionXMLNode.Add(XmlElement.Create('TipoUsoPosibleSoloVerifactu', XmlNamespaceSum1, 'N')); + SistemaInformacionXMLNode.Add(XmlElement.Create('TipoUsoPosibleMultiOT', XmlNamespaceSum1, 'N')); + SistemaInformacionXMLNode.Add(XmlElement.Create('IndicadorMultiplesOT', XmlNamespaceSum1, 'N')); + InvoiceXMLNode.Add(SistemaInformacionXMLNode); + end; + + local procedure FindLastRegisteredDocument(var DocumentNo: Text; var PostingDate: Date; var Huella: Text) + var + VerifactuDocument: Record "Verifactu Document"; + begin + VerifactuDocument.SetLoadFields("Source Document No.", "Verifactu Posting Date", "Verifactu Hash"); + VerifactuDocument.SetCurrentKey("Verifactu Hash"); + VerifactuDocument.SetFilter("Verifactu Hash", '<>%1', ''); + if not VerifactuDocument.FindLast() then + exit; + + DocumentNo := VerifactuDocument."Source Document No."; + PostingDate := VerifactuDocument."Verifactu Posting Date"; + Huella := VerifactuDocument."Verifactu Hash"; + end; + + procedure GetCustomDateTimeFormat(LocalDT: DateTime): Text + var + TypeHelper: Codeunit "Type Helper"; + TimeZoneOffset: Duration; + OffsetMinutes: Integer; + OffsetHours: Integer; + OffsetSign: Text[1]; + OffsetText: Text; + begin + TypeHelper.GetTimezoneOffset(TimeZoneOffset, GetTimeZoneFromCompany()); + + OffsetMinutes := Abs(TimeZoneOffset div 60000); + + if TimeZoneOffset >= 0 then + OffsetSign := '+' + else + OffsetSign := '-'; + + OffsetHours := OffsetMinutes div 60; + OffsetMinutes := OffsetMinutes mod 60; + + OffsetText := StrSubstNo('%1%2:%3', + OffsetSign, + FormatTime(OffsetHours), + FormatTime(OffsetMinutes)); + + exit( + StrSubstNo('%1%2', + Format(LocalDT, 0, '--T::'), + OffsetText)); + end; + + local procedure GetTimeZoneFromCompany(): Text + var + PostCode: Record "Post Code"; + begin + if PostCode.Get(CompanyInformation."Post Code", CompanyInformation.City) then + exit(PostCode."Time Zone"); + exit(''); + end; + + local procedure FormatTime(Value: Integer): Text + begin + if Value < 10 then + exit('0' + Format(Value)) + else + exit(Format(Value)); + end; + + local procedure FormatDate(DateValue: Date): Text + begin + exit(Format(DateValue, 0, '--')); + end; + + local procedure GetVATIdentifier(VATIdentifier: Code[20]): Text + begin + if VATIdentifier = '' then + exit('N1') + else + exit('S1'); + end; + + local procedure GetOptionFirstTwoChars(OptionValue: Variant): Text[2] + var + OptionString: Text; + begin + OptionString := Format(OptionValue); + exit(CopyStr(OptionString, 1, 2)); + end; + + local procedure InitializeNamespaces() + begin + XmlNamespaceSoapenv := 'http://schemas.xmlsoap.org/soap/envelope/'; + XmlNamespaceSum := 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd'; + XmlNamespaceSum1 := 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd'; + end; + #endregion + + [IntegrationEvent(false, false)] + local procedure OnAfterExport(var SourceDocumentHeader: RecordRef; var SourceDocumentLines: RecordRef; var TempBlob: Codeunit "Temp Blob"; IsBatch: Boolean) + begin + end; + + [IntegrationEvent(false, false)] + local procedure OnBeforeExport(var SourceDocumentHeader: RecordRef; var SourceDocumentLines: RecordRef; var TempBlob: Codeunit "Temp Blob"; IsBatch: Boolean) + begin + end; +} \ No newline at end of file diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/VerifactuSender.Codeunit.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/VerifactuSender.Codeunit.al new file mode 100644 index 0000000000..5af7e363a5 --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/VerifactuSender.Codeunit.al @@ -0,0 +1,46 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; + +using Microsoft.EServices.EDocument; +using Microsoft.eServices.EDocument.Integration.Interfaces; +using Microsoft.eServices.EDocument.Integration.Receive; +using Microsoft.eServices.EDocument.Integration.Send; +using System.Utilities; + +codeunit 10779 "Verifactu Sender" implements IDocumentSender, IDocumentReceiver +{ + Access = Internal; + + procedure Send(var EDocument: Record "E-Document"; var EDocumentService: Record "E-Document Service"; SendContext: Codeunit SendContext) + var + VerifactuDocUploadMgt: Codeunit "Verifactu Doc. Upload Mgt."; + TempBlob: Codeunit "Temp Blob"; + begin + TempBlob := SendContext.GetTempBlob(); + + VerifactuDocUploadMgt.SendEDocument(TempBlob, EDocument, SendContext); + end; + + procedure ReceiveDocuments(var EDocumentService: Record "E-Document Service"; DocumentsMetadata: Codeunit "Temp Blob List"; ReceiveContext: Codeunit ReceiveContext) + begin + end; + + procedure DownloadDocument(var EDocument: Record "E-Document"; var EDocumentService: Record "E-Document Service"; DocumentMetadata: Codeunit "Temp Blob"; ReceiveContext: Codeunit ReceiveContext) + begin + end; + + [EventSubscriber(ObjectType::Page, Page::"E-Document Service", OnBeforeOpenServiceIntegrationSetupPage, '', false, false)] + local procedure OnBeforeOpenServiceIntegrationSetupPage(EDocumentService: Record "E-Document Service"; var IsServiceIntegrationSetupRun: Boolean) + var + VerifactuSetup: Page "Verifactu Setup"; + begin + if EDocumentService."Service Integration V2" <> EDocumentService."Service Integration V2"::"Verifactu Service" then + exit; + + VerifactuSetup.RunModal(); + IsServiceIntegrationSetupRun := true; + end; +} \ No newline at end of file diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/VerifactuServiceIntegration.EnumExt.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/VerifactuServiceIntegration.EnumExt.al new file mode 100644 index 0000000000..014aecf550 --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Core/VerifactuServiceIntegration.EnumExt.al @@ -0,0 +1,18 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; + +using Microsoft.eServices.EDocument.Integration; +using Microsoft.eServices.EDocument.Integration.Interfaces; + +enumextension 10777 "Verifactu Service Integration" extends "Service Integration" +{ + value(10779; "Verifactu Service") + { + Implementation = IDocumentSender = "Verifactu Sender", + IDocumentReceiver = "Verifactu Sender"; + Caption = 'Verifactu Service'; + } +} \ No newline at end of file diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/DocRegistrationCertificate.Page.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/DocRegistrationCertificate.Page.al new file mode 100644 index 0000000000..fcd2a11b4e --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/DocRegistrationCertificate.Page.al @@ -0,0 +1,269 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; +using System.Security.Encryption; +using System.Utilities; + +page 10778 "Doc. Registration Certificate" +{ + Caption = 'Certificate'; + PageType = Card; + SourceTable = "Isolated Certificate"; + ApplicationArea = Basic, Suite; + + layout + { + area(content) + { + group(General) + { + Caption = 'General'; + field(Name; Rec.Name) + { + ApplicationArea = Basic, Suite; + ShowMandatory = true; + ToolTip = 'Specifies the name of the certificate.'; + } + group(Control16) + { + ShowCaption = false; + Visible = IsPasswordRequired; + field(Password; CertPassword) + { + ApplicationArea = Basic, Suite; + ShowMandatory = true; + ToolTip = 'Specifies the password for the certificate.'; + Caption = 'Password'; + + trigger OnValidate() + begin + PasswordNotification.Recall(); + DocRegistrationCertMgt.SetCertPassword(CertPassword); + if DocRegistrationCertMgt.VerifyCert(Rec) then begin + if Rec.IsCertificateExpired() then + HandleExpiredCert() + else begin + IsShowCertInfo := true; + IsUploadedCertValid := not IsNewRecord; + end; + + CurrPage.Update(); + end else + Error(CertWrongPasswordErr); + end; + } + } + field(Scope; Rec.Scope) + { + ApplicationArea = Basic, Suite; + Editable = IsNewRecord; + ToolTip = 'Specifies the availability of the certificate. Company gives all users in this specific company access to the certificate. User gives access to a specific user in any company. Company and User gives access to a specific user in the specific company.'; + } + } + group("Certificate Information") + { + Caption = 'Certificate Information'; + Visible = IsShowCertInfo; + field("Has Private Key"; Rec."Has Private Key") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies whether the certificate has a private key.'; + } + field(ThumbPrint; Rec.ThumbPrint) + { + ApplicationArea = Basic, Suite; + Caption = 'Thumbprint'; + ToolTip = 'Specifies the certificate thumbprint.'; + } + field("Expiry Date"; Rec."Expiry Date") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the date on which the certificate will expire.'; + } + field("Issued By"; Rec."Issued By") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the certificate authority that issued the certificate.'; + } + field("Issued To"; Rec."Issued To") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the person, organization, or domain that the certificate was issued to.'; + } + } + } + } + + actions + { + area(processing) + { + action("Upload Certificate") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Upload a new certificate file for the certificate. Typically, you use this when a certificate will expire soon.'; + Caption = 'Upload Certificate'; + Image = Import; + + trigger OnAction() + begin + RecallNotifications(); + IsolatedCertificate := Rec; + CertPassword := ''; + DocRegistrationCertMgt.SetCertPassword(CertPassword); + + CheckEncryption(); + + if not DocRegistrationCertMgt.UploadAndVerifyCert(Rec) then begin + IsShowCertInfo := false; + HandleRequirePassword(); + end else begin + IsPasswordRequired := false; + IsShowCertInfo := true; + if Rec.IsCertificateExpired() then begin + HandleExpiredCert(); + + Rec := IsolatedCertificate; + if Rec.ThumbPrint = '' then + IsShowCertInfo := false; + end; + end; + + CurrPage.Update(); + end; + } + } + area(Promoted) + { + group(Category_Process) + { + Caption = 'Process'; + + actionref("Upload Certificate_Promoted"; "Upload Certificate") + { + } + } + } + } + + trigger OnNewRecord(BelowxRec: Boolean) + begin + Rec := IsolatedCertificate; + end; + + trigger OnOpenPage() + begin + if Rec.Code = '' then begin + IsNewRecord := true; + CheckEncryption(); + if not DocRegistrationCertMgt.UploadAndVerifyCert(Rec) then + HandleRequirePassword() + else begin + IsShowCertInfo := true; + if Rec.IsCertificateExpired() then + HandleExpiredCert(); + end; + + IsolatedCertificate := Rec; + end else + if Rec.ThumbPrint <> '' then begin + IsShowCertInfo := true; + if Rec.IsCertificateExpired() then + NotfiyExpiredCert(CertHasExpiredMsg); + end; + end; + + trigger OnQueryClosePage(CloseAction: Action): Boolean + begin + if Rec.Code <> '' then + Rec.TestField(Name); + + if IsNewRecord then + Rec.SetScope(); + + if (IsNewRecord or IsUploadedCertValid) and not IsExpired then + SaveCertToIsolatedStorage(); + end; + + var + IsolatedCertificate: Record "Isolated Certificate"; + CertificateManagement: Codeunit "Certificate Management"; + DocRegistrationCertMgt: Codeunit "Doc. Registration Cert. Mgt."; + PasswordNotification: Notification; + ExpiredNotification: Notification; + IsNewRecord: Boolean; + CertWrongPasswordErr: Label 'The password is not correct.'; + PasswordNotificationMsg: Label 'You must enter the password for this certificate.'; + ExpiredNewCertMsg: Label 'You cannot upload the certificate%1 because it is past its expiration date.', Comment = '%1=file name, e.g. Certfile.pfx'; + IsPasswordRequired: Boolean; + CertHasExpiredMsg: Label 'The certificate has expired. To use the certificate you must upload a new certificate file.'; + IsExpired: Boolean; + IsUploadedCertValid: Boolean; + IsShowCertInfo: Boolean; + [NonDebuggable] + CertPassword: Text; + + local procedure ClearCertInfoFields() + begin + Clear(Rec."Expiry Date"); + Rec.ThumbPrint := ''; + Rec."Issued By" := ''; + Rec."Issued To" := ''; + Rec."Has Private Key" := false; + end; + + local procedure SaveCertToIsolatedStorage() + begin + if IsUploadedCertValid then + DocRegistrationCertMgt.DeleteCertAndPasswordFromIsolatedStorage(Rec); + DocRegistrationCertMgt.SaveCertToIsolatedStorage(Rec); + + DocRegistrationCertMgt.SetCertPassword(CertPassword); + DocRegistrationCertMgt.SavePasswordToIsolatedStorage(Rec); + end; + + local procedure HandleRequirePassword() + begin + IsPasswordRequired := true; + PasswordNotification.Message(PasswordNotificationMsg); + PasswordNotification.Send(); + end; + + local procedure HandleExpiredCert() + begin + NotfiyExpiredCert(StrSubstNo(ExpiredNewCertMsg, ' ' + CertificateManagement.GetUploadedCertFileName())); + if IsNewRecord then + ClearCertInfoFields() + else + Rec := IsolatedCertificate; + + IsShowCertInfo := Rec.ThumbPrint <> ''; + IsPasswordRequired := false; + end; + + local procedure NotfiyExpiredCert(Message: Text) + begin + IsExpired := true; + ExpiredNotification.Message(Message); + ExpiredNotification.Send(); + end; + + local procedure RecallNotifications() + begin + if ExpiredNotification.Recall() then; + if PasswordNotification.Recall() then; + end; + + local procedure CheckEncryption() + var + CryptographyManagement: Codeunit "Cryptography Management"; + ConfirmMgt: Codeunit "Confirm Management"; + begin + if not CryptographyManagement.IsEncryptionEnabled() then + if ConfirmMgt.GetResponseOrDefault(CryptographyManagement.GetEncryptionIsNotActivatedQst(), false) then + Page.RunModal(Page::"Data Encryption Management"); + end; +} + diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/DocRegistrationCertificates.Page.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/DocRegistrationCertificates.Page.al new file mode 100644 index 0000000000..8b78fb6d8b --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/DocRegistrationCertificates.Page.al @@ -0,0 +1,109 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; + +using System.Security.AccessControl; +using System.Security.Encryption; + +page 10779 "Doc. Registration Certificates" +{ + ApplicationArea = Basic, Suite; + Caption = 'Certificates'; + CardPageID = "Doc. Registration Certificate"; + Editable = false; + InsertAllowed = false; + ModifyAllowed = false; + PageType = List; + SourceTable = "Isolated Certificate"; + UsageCategory = Administration; + + layout + { + area(content) + { + repeater(Group) + { + field("Code"; Rec.Code) + { + ApplicationArea = Basic, Suite; + Editable = false; + Enabled = false; + ToolTip = 'Specifies the identifier for the certificate.'; + } + field(Name; Rec.Name) + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the name of the certificate.'; + } + field(Scope; Rec.Scope) + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the availability of the certificate. Company gives all users in this specific company access to the certificate. User gives access to a specific user in any company. Company and User gives access to a specific user in the specific company.'; + } + field("Expiry Date"; Rec."Expiry Date") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the date on which the certificate will expire.'; + } + field("Has Private Key"; Rec."Has Private Key") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies whether the certificate has a private key.'; + } + field(ThumbPrint; Rec.ThumbPrint) + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the certificate thumbprint.'; + } + field("Issued By"; Rec."Issued By") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the certificate authority that issued the certificate.'; + } + field("Issued To"; Rec."Issued To") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the person, organization, or domain that the certificate was issued to.'; + } + } + } + } + + actions + { + area(processing) + { + action("Change User") + { + ApplicationArea = Basic, Suite; + Caption = 'Change User'; + Image = UserSetup; + RunPageOnRec = true; + ToolTip = 'Assign the certificate to a different user.'; + + trigger OnAction() + begin + if Rec.Scope = Rec.Scope::Company then + Error(AssignUserScopeErr); + Page.Run(Page::"Change User", Rec); + end; + } + } + } + + trigger OnOpenPage() + var + User: Record User; + begin + Rec.FilterGroup(2); + if User.Get(UserSecurityId()) then; + Rec.SetFilter("Company ID", '%1|%2', '', CompanyName); + Rec.SetFilter("User ID", '%1|%2', '', User."User Name"); + end; + + var + AssignUserScopeErr: Label 'This certificate is available to everyone in the company, so you cannot assign it to a specific user. To do that, you can add a new certificate with a different option chosen in the Available To field.'; +} + diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/VerifactuDocument.Table.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/VerifactuDocument.Table.al new file mode 100644 index 0000000000..7d1a6ebfe0 --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/VerifactuDocument.Table.al @@ -0,0 +1,82 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; +using Microsoft.eServices.EDocument; +table 10771 "Verifactu Document" +{ + Caption = 'Verifactu Document'; + LookupPageID = "Verifactu Document List"; + DataClassification = CustomerContent; + InherentPermissions = X; + Access = Internal; + + fields + { + field(1; "E-Document Entry No."; Integer) + { + DataClassification = CustomerContent; + Caption = 'E-Document Entry No.'; + ToolTip = 'Specifies the entry number of the related E-Document.'; + TableRelation = "E-Document"; + Editable = false; + } + field(2; "Source Document Type"; Enum "E-Document Type") + { + Caption = 'Source Document Type'; + DataClassification = CustomerContent; + ToolTip = 'Specifies the type of the Verifactu document.'; + Editable = false; + } + field(3; "Source Document No."; Code[20]) + { + Caption = 'Source Document No.'; + DataClassification = CustomerContent; + ToolTip = 'Specifies the document number of the Verifactu document.'; + Editable = false; + } + field(4; "Verifactu Hash"; Text[64]) + { + Caption = 'Verifactu Hash'; + DataClassification = CustomerContent; + Editable = false; + ToolTip = 'Specifies the Verifactu hash of the e-document received when the document is cleared.'; + } + field(5; "Verifactu Posting Date"; Date) + { + Caption = 'Verifactu Posting Date'; + DataClassification = CustomerContent; + Editable = false; + ToolTip = 'Specifies the Verifactu posting date of the e-document received when the document is cleared.'; + } + field(6; "Submission Id"; Text[100]) + { + Caption = 'Submission Id'; + DataClassification = CustomerContent; + Editable = false; + ToolTip = 'Specifies the Submission Id of the e-document received when the document is cleared.'; + } + field(7; "Submission Status"; Text[50]) + { + Caption = 'Submission Status'; + DataClassification = CustomerContent; + Editable = false; + ToolTip = 'Specifies the Submission Status of the e-document received when the document is cleared.'; + } + } + keys + { + key(Key1; "E-Document Entry No.") + { + Clustered = true; + } + key(Key2; "Verifactu Hash") + { + } + key(Ke3; "Source Document Type", "Source Document No.") + { + } + } + +} \ No newline at end of file diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/VerifactuDocumentList.Page.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/VerifactuDocumentList.Page.al new file mode 100644 index 0000000000..ebb00a2b9a --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/VerifactuDocumentList.Page.al @@ -0,0 +1,63 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; +page 10776 "Verifactu Document List" +{ + PageType = List; + ApplicationArea = All; + UsageCategory = Administration; + SourceTable = "Verifactu Document"; + Caption = 'Verifactu Documents'; + InherentPermissions = X; + DeleteAllowed = false; + InsertAllowed = false; + ModifyAllowed = false; + Editable = false; + + layout + { + area(content) + { + repeater(Group) + { + field("E-Document Entry No."; Rec."E-Document Entry No.") + { + ApplicationArea = All; + Caption = 'E-Document Entry No.'; + } + field("Source Document Type"; Rec."Source Document Type") + { + ApplicationArea = All; + Caption = 'Source Document Type'; + } + field("Source Document No."; Rec."Source Document No.") + { + ApplicationArea = All; + Caption = 'Source Document No.'; + } + field("Verifactu Hash"; Rec."Verifactu Hash") + { + ApplicationArea = All; + Caption = 'Verifactu Hash'; + } + field("Verifactu Posting Date"; Rec."Verifactu Posting Date") + { + ApplicationArea = All; + Caption = 'Verifactu Posting Date'; + } + field("Submission Id"; Rec."Submission Id") + { + ApplicationArea = All; + Caption = 'Submission Id'; + } + field("Submission Status"; Rec."Submission Status") + { + ApplicationArea = All; + Caption = 'Submission Status'; + } + } + } + } +} \ No newline at end of file diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/VerifactuRequestType.Enum.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/VerifactuRequestType.Enum.al new file mode 100644 index 0000000000..291e2c80ec --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/VerifactuRequestType.Enum.al @@ -0,0 +1,15 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; + +enum 10777 "Verifactu Request Type" +{ + Extensible = true; + AssignmentCompatibility = true; + + value(0; "DocumentRegistration") { Caption = 'Document Registration'; } + value(1; "DocumentCancelation") { Caption = 'Document Cancelation'; } + value(2; "QRCodeValidation") { Caption = 'QR Code Validation'; } +} diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/VerifactuSetup.Page.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/VerifactuSetup.Page.al new file mode 100644 index 0000000000..05f949c4da --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/VerifactuSetup.Page.al @@ -0,0 +1,73 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; + +page 10777 "Verifactu Setup" +{ + ApplicationArea = All; + Caption = 'Verifactu Setup'; + DeleteAllowed = false; + InsertAllowed = false; + LinksAllowed = false; + PageType = Card; + ShowFilter = false; + SourceTable = "Verifactu Setup"; + UsageCategory = Administration; + + layout + { + area(content) + { + group(General) + { + field(Enabled; Rec.Enabled) + { + ApplicationArea = All; + ToolTip = 'Specifies that the service for invoice validation with the tax authorities is activated.'; + } + field("Show Advanced Actions"; Rec."Show Advanced Actions") + { + ApplicationArea = All; + ToolTip = 'Specifies whether to show advanced actions.'; + } + field("Invoice Amount Threshold"; Rec."Invoice Amount Threshold") + { + ApplicationArea = All; + ToolTip = 'Specifies which value to include in the Macrodato node in the XML file that is exported to SII. If the invoice amount on the document is under the threshold, then value ''N'' will be exported. Otherwise, value ''S'' will be exported.'; + AutoFormatType = 1; + AutoFormatExpression = ''; + } + field("Starting Date"; Rec."Starting Date") + { + ApplicationArea = All; + ToolTip = 'Specifies the date when the company starts to send entries to the SII system.'; + } + field("Do Not Export Negative Lines"; Rec."Do Not Export Negative Lines") + { + ApplicationArea = All; + ToolTip = 'Specifies if you want to exclude lines that are negative from the export to the Verifactu file.'; + } + } + group(Certificate) + { + field("Certificate Code"; Rec."Certificate Code") + { + ApplicationArea = All; + ToolTip = 'Specifies the code of certificate.'; + } + } + } + } + + trigger OnOpenPage() + begin + Rec.Reset(); + if not Rec.Get() then begin + Rec.Init(); + Rec.Insert(true); + end; + end; +} + diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/VerifactuSetup.Table.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/VerifactuSetup.Table.al new file mode 100644 index 0000000000..d0fa0474e7 --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Data/VerifactuSetup.Table.al @@ -0,0 +1,147 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; + +using Microsoft.EServices.EDocument; +using System.Privacy; +using System.Security.Encryption; +using System.Utilities; + +table 10777 "Verifactu Setup" +{ + Caption = 'Verifactu Setup'; + LookupPageID = "Verifactu Setup"; + DataClassification = CustomerContent; + InherentPermissions = X; + AllowInCustomizations = Never; + + fields + { + field(1; "Primary Key"; Code[10]) + { + Caption = 'Primary Key'; + } + field(2; Enabled; Boolean) + { + Caption = 'Enabled'; + + trigger OnValidate() + var + SIISetup: Record "SII Setup"; + CustomerConsentMgt: Codeunit "Customer Consent Mgt."; + ConfirmMgt: Codeunit "Confirm Management"; + VerifactuSetupConsentProvidedLbl: Label 'Verifactu Setup - consent provided by UserSecurityId %1.', Locked = true; + begin + if Enabled and ("Certificate Code" = '') then + Error(CannotEnableWithoutCertificateErr); + if Enabled then begin + if SIISetup.IsEnabled() then + if ConfirmMgt.GetResponseOrDefault(DisableSIIQst, false) then begin + SIISetup.Enabled := false; + SIISetup.Modify(true); + end else begin + Enabled := false; + exit; + end; + Enabled := CustomerConsentMgt.ConfirmUserConsent(); + end; + if Enabled then begin + Session.LogSecurityAudit(Rec.TableName(), SecurityOperationResult::Success, SecurityAuditLogSetupStatusDescription(Rec.FieldName(Enabled), Rec.TableName()), AuditCategory::CustomerFacing); + Session.LogAuditMessage(StrSubstNo(VerifactuSetupConsentProvidedLbl, UserSecurityId()), SecurityOperationResult::Success, AuditCategory::ApplicationManagement, 4, 0); + end else + Session.LogSecurityAudit(Rec.TableName(), SecurityOperationResult::Success, SecurityAuditLogSetupStatusDescription(NotEnabledTxt, Rec.TableName()), AuditCategory::CustomerFacing); + end; + } + field(12; "Show Advanced Actions"; Boolean) + { + Caption = 'Show Advanced Actions'; + } + field(20; "Invoice Amount Threshold"; Decimal) + { + Caption = 'Invoice Amount Threshold'; + InitValue = 100000000; + MinValue = 0; + AutoFormatType = 1; + AutoFormatExpression = ''; + } + field(21; "Do Not Export Negative Lines"; Boolean) + { + Caption = 'Do Not Export Negative Lines'; + } + field(30; "Starting Date"; Date) + { + Caption = 'Starting Date'; + } + field(42; "Certificate Code"; Code[20]) + { + TableRelation = "Isolated Certificate"; + DataClassification = CustomerContent; + + trigger OnValidate() + begin + Validate(Enabled, "Certificate Code" <> ''); + end; + + trigger OnLookup() + var + DocRegistrationCertMgt: Codeunit "Doc. Registration Cert. Mgt."; + begin + DocRegistrationCertMgt.LookupCertificate(Rec."Certificate Code"); + end; + } + } + + keys + { + key(Key1; "Primary Key") + { + Clustered = true; + } + } + + trigger OnInsert() + begin + "Starting Date" := WorkDate(); + end; + + var + UrlHelper: Codeunit "Url Helper"; + CannotEnableWithoutCertificateErr: Label 'The setup cannot be enabled without a valid certificate.'; + DisableSIIQst: Label 'SII setup will be disabled. Do you want to proceed?'; + DocumentSubmissionEndpointUrlTxt: Label 'https://www1.agenciatributaria.gob.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP', Locked = true; + QRCodeValidationEndpointUrlTxt: Label 'https://www2.agenciatributaria.gob.es/wlpl/TIKE-CONT/ValidarQR', Locked = true; + DocumentSubmissionSandboxEndpointUrlTxt: Label 'https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP', Locked = true; + QRCodeValidationSandboxEndpointUrlTxt: Label 'https://prewww2.aeat.es/wlpl/TIKE-CONT/ValidarQR', Locked = true; + NotEnabledTxt: Label 'Not enabled', Locked = true; + + procedure IsEnabled(): Boolean + begin + if not Get() then + exit(false); + exit(Enabled); + end; + + internal procedure GetQRCodeValidationEndpointUrl(): Text + begin + if UrlHelper.IsPPE() then + exit(QRCodeValidationSandboxEndpointUrlTxt); + + exit(QRCodeValidationEndpointUrlTxt); + end; + + internal procedure GetDocumentSubmissionEndpointUrl(): Text + begin + if UrlHelper.IsPPE() then + exit(DocumentSubmissionSandboxEndpointUrlTxt); + + exit(DocumentSubmissionEndpointUrlTxt); + end; + + local procedure SecurityAuditLogSetupStatusDescription(Action: Text; SetupTableName: Text): Text + begin + exit(Action + ' ' + SetupTableName); + end; + +} \ No newline at end of file diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Extensions/VerifactuEDocument.PageExt.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Extensions/VerifactuEDocument.PageExt.al new file mode 100644 index 0000000000..0c40ced645 --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Extensions/VerifactuEDocument.PageExt.al @@ -0,0 +1,41 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; +using Microsoft.eServices.EDocument; + +pageextension 10777 "Verifactu E-Document" extends "E-Document" +{ + layout + { + addlast(ClearanceInfo) + { + field("Verifactu Hash"; VerifactuHash) + { + ApplicationArea = All; + Caption = 'Verifactu Hash'; + Editable = false; + ToolTip = 'Specifies the Verifactu hash of the e-document received when the document is cleared.'; + } + field("Submission Id"; VerifactuSubmissionId) + { + ApplicationArea = All; + Caption = 'Submission Id'; + Editable = false; + ToolTip = 'Specifies the Submission Id of the e-document received when the document is cleared.'; + } + } + } + + trigger OnAfterGetRecord() + var + VerifactuDocUploadMgt: Codeunit "Verifactu Doc. Upload Mgt."; + begin + VerifactuDocUploadMgt.GetVerifactuData(Rec, VerifactuHash, VerifactuSubmissionId); + end; + + var + VerifactuHash: Text[64]; + VerifactuSubmissionId: Text[100]; +} \ No newline at end of file diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Permissions/DocRegESEdit.PermissionSet.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Permissions/DocRegESEdit.PermissionSet.al new file mode 100644 index 0000000000..079594284d --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Permissions/DocRegESEdit.PermissionSet.al @@ -0,0 +1,16 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; + +permissionset 10776 DocRegESEdit +{ + Access = Public; + Assignable = true; + IncludedPermissionSets = DocRegESRead; + Caption = 'Document Registration in Spain - Edit'; + + Permissions = tabledata "Verifactu Setup" = IMD, + tabledata "Verifactu Document" = IMD; +} \ No newline at end of file diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Permissions/DocRegESEdit.PermissionSetExt.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Permissions/DocRegESEdit.PermissionSetExt.al new file mode 100644 index 0000000000..ccce6e9339 --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Permissions/DocRegESEdit.PermissionSetExt.al @@ -0,0 +1,12 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; + +using Microsoft.EServices.EDocument; + +permissionsetextension 10778 "Doc. Reg. ES - Edit" extends "E-Doc. Core - User" +{ + IncludedPermissionSets = DocRegESEdit; +} \ No newline at end of file diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Permissions/DocRegESRead.PermissionSet.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Permissions/DocRegESRead.PermissionSet.al new file mode 100644 index 0000000000..fd95d9a1be --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Permissions/DocRegESRead.PermissionSet.al @@ -0,0 +1,15 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; + +permissionset 10777 DocRegESRead +{ + Access = Public; + Assignable = true; + Caption = 'Document Registration in Spain - Read'; + + Permissions = tabledata "Verifactu Setup" = R, + tabledata "Verifactu Document" = R; +} \ No newline at end of file diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Permissions/DocRegESRead.PermissionSetExt.al b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Permissions/DocRegESRead.PermissionSetExt.al new file mode 100644 index 0000000000..d1825d8154 --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/app/src/Permissions/DocRegESRead.PermissionSetExt.al @@ -0,0 +1,12 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu; + +using Microsoft.EServices.EDocument; + +permissionsetextension 10779 "Doc. Reg. ES - Read" extends "E-Doc. Core - Read" +{ + IncludedPermissionSets = DocRegESRead; +} \ No newline at end of file diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/test/ExtensionLogo.png b/Apps/ES/EDocumentFormats/DocumentRegistration/test/ExtensionLogo.png new file mode 100644 index 0000000000..4d2c9a626c Binary files /dev/null and b/Apps/ES/EDocumentFormats/DocumentRegistration/test/ExtensionLogo.png differ diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/test/app.json b/Apps/ES/EDocumentFormats/DocumentRegistration/test/app.json new file mode 100644 index 0000000000..c3754a3158 --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/test/app.json @@ -0,0 +1,70 @@ +{ + "id": "a0de5704-aea7-4329-aee6-1a658307abe7", + "name": "Document Registration in Spain Tests", + "publisher": "Microsoft", + "brief": "Tests for Regulation introduced by the Spanish Tax Agency (AEAT)", + "description": "Tests for Regulation introduced by the Spanish Tax Agency (AEAT) under Royal Decree 1007/2023, as part of the Anti-Fraud Law 11/2021. It mandates the use of tamper-proof, traceable, and auditable invoicing systems to combat tax fraud.", + "version": "28.0.0.0", + "privacyStatement": "https://go.microsoft.com/fwlink/?LinkId=724009", + "EULA": "https://go.microsoft.com/fwlink/?linkid=2009120", + "help": "https://go.microsoft.com/fwlink/?linkid=2299409", + "url": "https://go.microsoft.com/fwlink/?LinkId=724011", + "contextSensitiveHelpUrl": "https://go.microsoft.com/fwlink/?linkid=2299409", + "logo": "ExtensionLogo.png", + "dependencies": [ + { + "id": "73c6e046-a89d-484b-993b-5417088e42b9", + "name": "Document Registration in Spain", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "5d86850b-0d76-4eca-bd7b-951ad998e997", + "name": "Tests-TestLibraries", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "9856ae4f-d1a7-46ef-89bb-6ef056398228", + "name": "System Application Test Library", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "5095f467-0a01-4b99-99d1-9ff1237d286f", + "publisher": "Microsoft", + "name": "Library Variable Storage", + "version": "28.0.0.0" + }, + { + "id": "e1d97edc-c239-46b4-8d84-6368bdf67c8b", + "name": "E-Document Core", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "e1d97edc-c239-46b4-8d84-6368bdf67c8c", + "name": "E-Document Core Tests", + "publisher": "Microsoft", + "version": "28.0.0.0" + } + ], + "features": [ + "TranslationFile" + ], + "screenshots": [], + "platform": "28.0.0.0", + "idRanges": [ + { + "from": 148003, + "to": 148004 + } + ], + "resourceExposurePolicy": { + "allowDebugging": true, + "allowDownloadingSource": true, + "includeSourceInSymbolFile": true + }, + "target": "OnPrem", + "application": "28.0.0.0" +} diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/test/src/TestVerifactuExport.Codeunit.al b/Apps/ES/EDocumentFormats/DocumentRegistration/test/src/TestVerifactuExport.Codeunit.al new file mode 100644 index 0000000000..e2fa626987 --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/test/src/TestVerifactuExport.Codeunit.al @@ -0,0 +1,1313 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu.Test; + +using Microsoft.eServices.EDocument; +using Microsoft.eServices.EDocument.Integration; +using Microsoft.EServices.EDocument.Verifactu; +using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Finance.VAT.Setup; +using Microsoft.Foundation.Company; +using Microsoft.Inventory.Item; +using Microsoft.Sales.Customer; +using Microsoft.Sales.Document; +using Microsoft.Sales.History; +using Microsoft.Service.Document; +using Microsoft.Service.History; +using Microsoft.Service.Test; +using System.Utilities; + +codeunit 148004 "Test Verifactu Export" +{ + Subtype = Test; + TestType = IntegrationTest; + TestPermissions = Disabled; + + var + EDocumentService: Record "E-Document Service"; + LibraryTestInitialize: Codeunit "Library - Test Initialize"; + LibrarySales: Codeunit "Library - Sales"; + LibraryService: Codeunit "Library - Service"; + LibraryInventory: Codeunit "Library - Inventory"; + LibraryERM: Codeunit "Library - ERM"; + LibraryRandom: Codeunit "Library - Random"; + LibraryEdocument: Codeunit "Library - E-Document"; + Assert: Codeunit "Assert"; + IsInitialized: Boolean; + + #region SalesInvoice + [Test] + procedure ExportSalesInvoiceCreatesXMLFile() + var + SalesInvoiceHeader: Record "Sales Invoice Header"; + Customer: Record Customer; + XMLText: Text; + begin + // [SCENARIO] Export creates XML file for posted sales invoice + Initialize(); + + // [GIVEN] Posted sales invoice "I" with customer "C" and amount 1000 + LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer); + CreatePostedSalesInvoice(SalesInvoiceHeader, Customer."No.", LibraryRandom.RandDecInRange(1000, 5000, 2), LibraryRandom.RandIntInRange(10, 25)); + + // [WHEN] Export procedure is invoked for invoice "I" + ExportInvoice(SalesInvoiceHeader, XMLText); + + // [THEN] XML file is created with invoice number and root element + VerifyDocumentNumber(SalesInvoiceHeader."No.", XMLText); + VerifyXMLRootElement(XMLText); + end; + + [Test] + procedure ExportSalesInvoiceWithMultipleLines() + var + SalesInvoiceHeader: Record "Sales Invoice Header"; + Customer: Record Customer; + VATRate: Decimal; + XMLText: Text; + begin + // [SCENARIO] Export creates XML for invoice with multiple lines + Initialize(); + + // [GIVEN] Posted sales invoice "I" with customer "C" + // [GIVEN] Invoice has 3 lines with same VAT rate + LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer); + VATRate := LibraryRandom.RandIntInRange(10, 25); + CreatePostedSalesInvoiceWithMultipleLines(SalesInvoiceHeader, Customer."No.", VATRate); + + // [WHEN] Export procedure is invoked for invoice "I" + ExportInvoice(SalesInvoiceHeader, XMLText); + + // [THEN] XML contains one VAT breakdown entry + VerifyXMLContainsVATBreakdown(XMLText, VATRate); + end; + + [Test] + procedure ExportSalesInvoiceWithDifferentVATRates() + var + SalesInvoiceHeader: Record "Sales Invoice Header"; + Customer: Record Customer; + VATRate: Decimal; + VATRate2: Decimal; + XMLText: Text; + begin + // [SCENARIO] Export creates separate VAT breakdown entries for different VAT rates + Initialize(); + + // [GIVEN] Posted sales invoice "I" with customer "C" and different VAT rates + LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer); + VATRate := LibraryRandom.RandIntInRange(10, 25); + VATRate2 := LibraryRandom.RandIntInRange(10, 25); + CreatePostedSalesInvoiceWithDifferentVATRates(SalesInvoiceHeader, Customer."No.", VATRate, VATRate2); + + // [WHEN] Export procedure is invoked for invoice "I" + ExportInvoice(SalesInvoiceHeader, XMLText); + + // [THEN] XML contains two VAT breakdown entries + VerifyXMLContainsVATBreakdown(XMLText, VATRate); + VerifyXMLContainsVATBreakdown(XMLText, VATRate2); + end; + + [Test] + procedure ExportSalesInvoiceIncludesCompanyInformation() + var + SalesInvoiceHeader: Record "Sales Invoice Header"; + Customer: Record Customer; + CompanyInformation: Record "Company Information"; + XMLText: Text; + begin + // [SCENARIO] Export includes company information in XML header + Initialize(); + + // [GIVEN] Posted sales invoice "I" with customer "C" + LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer); + CreatePostedSalesInvoice(SalesInvoiceHeader, Customer."No.", LibraryRandom.RandDecInRange(1000, 5000, 2), LibraryRandom.RandIntInRange(10, 25)); + CompanyInformation.Get(); + + // [WHEN] Export procedure is invoked for invoice "I" + ExportInvoice(SalesInvoiceHeader, XMLText); + + // [THEN] XML header contains company name and VAT number + VerifyCompanyInformation(CompanyInformation, XMLText); + end; + + [Test] + procedure ExportSalesInvoiceCalculatesTotalsCorrectly() + var + SalesInvoiceHeader: Record "Sales Invoice Header"; + Customer: Record Customer; + XMLText: Text; + begin + // [SCENARIO] Export calculates and includes correct totals in XML + Initialize(); + + // [GIVEN] Posted sales invoice "I" with customer "C" + LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer); + CreatePostedSalesInvoice(SalesInvoiceHeader, Customer."No.", LibraryRandom.RandDecInRange(1000, 5000, 2), LibraryRandom.RandIntInRange(10, 25)); + + // [WHEN] Export procedure is invoked for invoice "I" + ExportInvoice(SalesInvoiceHeader, XMLText); + + // [THEN] XML contains CuotaTotal and ImporteTotal elements + SalesInvoiceHeader.CalcFields(Amount, "Amount Including VAT"); + VerifyDocumentTotals(XMLText, SalesInvoiceHeader."Amount Including VAT" - SalesInvoiceHeader.Amount, SalesInvoiceHeader."Amount Including VAT"); + end; + + [Test] + procedure ExportSalesInvoiceWithZeroVATRate() + var + SalesInvoiceHeader: Record "Sales Invoice Header"; + Customer: Record Customer; + XMLText: Text; + begin + // [SCENARIO] Export handles invoice lines with zero VAT rate + Initialize(); + + // [GIVEN] Posted sales invoice "I" with VAT rate 0 + LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer); + CreatePostedSalesInvoice(SalesInvoiceHeader, Customer."No.", LibraryRandom.RandDecInRange(100, 500, 2), 0); + + // [WHEN] Export procedure is invoked for invoice "I" + ExportInvoice(SalesInvoiceHeader, XMLText); + + // [THEN] XML contains VAT breakdown entry with rate 0 + VerifyXMLContainsVATBreakdown(XMLText, 0); + end; + + [Test] + procedure ExportSalesInvoiceXMLHasCorrectStructure() + var + SalesInvoiceHeader: Record "Sales Invoice Header"; + Customer: Record Customer; + XMLText: Text; + begin + // [SCENARIO] Export creates XML with correct element structure + Initialize(); + + // [GIVEN] Posted sales invoice "I" with customer "C" + LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer); + CreatePostedSalesInvoice(SalesInvoiceHeader, Customer."No.", LibraryRandom.RandDecInRange(1000, 5000, 2), LibraryRandom.RandIntInRange(10, 25)); + + // [WHEN] Export procedure is invoked for invoice "I" + ExportInvoice(SalesInvoiceHeader, XMLText); + + // [THEN] XML contains correct structure elements + VerifyXMLStructure(XMLText); + end; + + [Test] + procedure ExportSalesInvoiceGeneratesVerifactuHash() + var + SalesInvoiceHeader: Record "Sales Invoice Header"; + Customer: Record Customer; + VerifactuDocument: Record "Verifactu Document"; + XMLText: Text; + begin + // [SCENARIO] Export generates Verifactu hash for sales invoice + Initialize(); + VerifactuDocument.DeleteAll(); + + // [GIVEN] Posted sales invoice "I" with customer "C" + LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer); + CreatePostedSalesInvoice(SalesInvoiceHeader, Customer."No.", LibraryRandom.RandDecInRange(1000, 5000, 2), LibraryRandom.RandIntInRange(10, 25)); + + // [WHEN] Export procedure is invoked for invoice "I" + ExportInvoice(SalesInvoiceHeader, XMLText); + + // [THEN] XML contains Huella element with hash value + Commit(); + VerifactuDocument.SetCurrentKey("Source Document Type", "Source Document No."); + VerifactuDocument.SetRange("Source Document Type", VerifactuDocument."Source Document Type"::"Sales Invoice"); + VerifactuDocument.SetRange("Source Document No.", SalesInvoiceHeader."No."); + VerifactuDocument.FindLast(); + Assert.AreNotEqual('', VerifactuDocument."Verifactu Hash", 'Verifactu hash should be generated'); + Assert.IsTrue(XMLText.Contains(VerifactuDocument."Verifactu Hash"), 'XML should contain Huella element'); + end; + + [Test] + procedure ExportSalesInvoiceGeneratesQRCode() + var + SalesInvoiceHeader: Record "Sales Invoice Header"; + Customer: Record Customer; + XMLText: Text; + begin + // [SCENARIO] Export generates QR code for sales invoice + Initialize(); + + // [GIVEN] Posted sales invoice "I" with customer "C" + LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer); + CreatePostedSalesInvoice(SalesInvoiceHeader, Customer."No.", LibraryRandom.RandDecInRange(1000, 5000, 2), LibraryRandom.RandIntInRange(10, 25)); + + // [WHEN] Export procedure is invoked for invoice "I" + ExportInvoice(SalesInvoiceHeader, XMLText); + + // [THEN] QR code is generated and stored in invoice header + SalesInvoiceHeader.Get(SalesInvoiceHeader."No."); + Assert.IsTrue(SalesInvoiceHeader."QR Code Image".Count > 0, 'QR code image should be generated'); + end; + + [Test] + procedure ExportSalesInvoiceIncludesSystemInformation() + var + SalesInvoiceHeader: Record "Sales Invoice Header"; + Customer: Record Customer; + XMLText: Text; + begin + // [SCENARIO] Export includes system information in invoice XML + Initialize(); + + // [GIVEN] Posted sales invoice "I" with customer "C" + LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer); + CreatePostedSalesInvoice(SalesInvoiceHeader, Customer."No.", LibraryRandom.RandDecInRange(1000, 5000, 2), LibraryRandom.RandIntInRange(10, 25)); + + // [WHEN] Export procedure is invoked for invoice "I" + ExportInvoice(SalesInvoiceHeader, XMLText); + + // [THEN] XML contains SistemaInformatico element with Business Central information + Assert.IsTrue(XMLText.Contains('SistemaInformatico'), 'XML should contain SistemaInformatico'); + Assert.IsTrue(XMLText.Contains('BusinessCentral'), 'XML should contain BusinessCentral'); + Assert.IsTrue(XMLText.Contains('NombreSistemaInformatico'), 'XML should contain NombreSistemaInformatico'); + end; + #endregion + + #region SalesCreditMemo + [Test] + procedure ExportSalesCreditMemoCreatesXMLFile() + var + PostedSalesInvoice: Record "Sales Invoice Header"; + SalesCrMemoHeader: Record "Sales Cr.Memo Header"; + Customer: Record Customer; + XMLText: Text; + begin + // [SCENARIO] Export creates XML file for posted sales credit memo + Initialize(); + + // [GIVEN] Posted sales credit memo "M" with customer "C" and amount 500 + LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer); + CreatePostedSalesInvoice(PostedSalesInvoice, Customer."No.", LibraryRandom.RandDecInRange(1000, 5000, 2), LibraryRandom.RandIntInRange(10, 25)); + CreatePostedSalesCreditMemo(SalesCrMemoHeader, PostedSalesInvoice."No.", Customer."No.", LibraryRandom.RandDecInRange(500, 2000, 2)); + + // [WHEN] Export procedure is invoked for credit memo "M" + ExportCreditMemo(SalesCrMemoHeader, XMLText); + + // [THEN] XML file is created with credit memo number and invoice type R1 + VerifyDocumentNumber(SalesCrMemoHeader."No.", XMLText); + VerifyCreditMemoType(XMLText); + end; + + [Test] + procedure ExportSalesCreditMemoWithMultipleLines() + var + PostedSalesInvoice: Record "Sales Invoice Header"; + SalesCrMemoHeader: Record "Sales Cr.Memo Header"; + Customer: Record Customer; + VATRate: Decimal; + XMLText: Text; + begin + // [SCENARIO] Export creates XML for credit memo with multiple lines + Initialize(); + + // [GIVEN] Posted sales credit memo "M" with customer "C" and same VAT rate + LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer); + VATRate := LibraryRandom.RandIntInRange(10, 25); + CreatePostedSalesInvoice(PostedSalesInvoice, Customer."No.", LibraryRandom.RandDecInRange(1000, 5000, 2), VATRate); + CreatePostedSalesCreditMemoWithMultipleLines(SalesCrMemoHeader, Customer."No.", PostedSalesInvoice."No.", VATRate); + + // [WHEN] Export procedure is invoked for credit memo "M" + ExportCreditMemo(SalesCrMemoHeader, XMLText); + + // [THEN] XML contains one VAT breakdown entry + VerifyXMLContainsVATBreakdown(XMLText, VATRate); + end; + + [Test] + procedure ExportSalesCreditMemoWithDifferentVATRates() + var + PostedSalesInvoice: Record "Sales Invoice Header"; + SalesCrMemoHeader: Record "Sales Cr.Memo Header"; + Customer: Record Customer; + VATRate: Decimal; + VATRate2: Decimal; + XMLText: Text; + begin + // [SCENARIO] Export creates separate VAT breakdown entries for credit memo with different VAT rates + Initialize(); + + // [GIVEN] Posted sales credit memo "M" with customer "C" and different VAT rates + LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer); + VATRate := LibraryRandom.RandIntInRange(10, 25); + VATRate2 := LibraryRandom.RandIntInRange(10, 25); + CreatePostedSalesInvoice(PostedSalesInvoice, Customer."No.", LibraryRandom.RandDecInRange(1000, 5000, 2), VATRate); + CreatePostedSalesCreditMemoWithDifferentVATRates(SalesCrMemoHeader, PostedSalesInvoice."No.", Customer."No.", VATRate, VATRate2); + + // [WHEN] Export procedure is invoked for credit memo "M" + ExportCreditMemo(SalesCrMemoHeader, XMLText); + + // [THEN] XML contains two VAT breakdown entries + VerifyXMLContainsVATBreakdown(XMLText, VATRate); + VerifyXMLContainsVATBreakdown(XMLText, VATRate2); + end; + + [Test] + procedure ExportSalesCreditMemoIncludesFacturaRectificada() + var + SalesInvoiceHeader: Record "Sales Invoice Header"; + SalesCrMemoHeader: Record "Sales Cr.Memo Header"; + Customer: Record Customer; + XMLText: Text; + begin + // [SCENARIO] Export includes corrected invoice reference in credit memo + Initialize(); + + // [GIVEN] Posted sales invoice "I" with customer "C" + // [GIVEN] Posted sales credit memo "M" correcting invoice "I" + LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer); + CreatePostedSalesInvoice(SalesInvoiceHeader, Customer."No.", LibraryRandom.RandDecInRange(1000, 5000, 2), LibraryRandom.RandIntInRange(10, 25)); + CreatePostedSalesCreditMemo(SalesCrMemoHeader, SalesInvoiceHeader."No.", Customer."No.", LibraryRandom.RandDecInRange(500, 2000, 2)); + + // [WHEN] Export procedure is invoked for credit memo "M" + ExportCreditMemo(SalesCrMemoHeader, XMLText); + + // [THEN] XML contains FacturasRectificadas element with original invoice reference + Assert.IsTrue(XMLText.Contains('FacturasRectificadas'), 'XML should contain FacturasRectificadas'); + Assert.IsTrue(XMLText.Contains('IDFacturaRectificada'), 'XML should contain IDFacturaRectificada'); + Assert.IsTrue(XMLText.Contains(SalesInvoiceHeader."No."), 'XML should contain corrected invoice number'); + end; + + [Test] + procedure ExportSalesCreditMemoCalculatesTotalsCorrectly() + var + PostedSalesInvoice: Record "Sales Invoice Header"; + SalesCrMemoHeader: Record "Sales Cr.Memo Header"; + Customer: Record Customer; + XMLText: Text; + begin + // [SCENARIO] Export calculates and includes correct totals in XML for credit memo + Initialize(); + + // [GIVEN] Posted sales credit memo "M" with customer "C" + LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer); + CreatePostedSalesInvoice(PostedSalesInvoice, Customer."No.", LibraryRandom.RandDecInRange(1000, 5000, 2), LibraryRandom.RandIntInRange(10, 25)); + CreatePostedSalesCreditMemo(SalesCrMemoHeader, PostedSalesInvoice."No.", Customer."No.", LibraryRandom.RandDecInRange(500, 2000, 2)); + + // [WHEN] Export procedure is invoked for credit memo "M" + ExportCreditMemo(SalesCrMemoHeader, XMLText); + + // [THEN] XML contains CuotaTotal and ImporteTotal elements + SalesCrMemoHeader.CalcFields(Amount, "Amount Including VAT"); + VerifyDocumentTotals(XMLText, -(SalesCrMemoHeader."Amount Including VAT" - SalesCrMemoHeader.Amount), -SalesCrMemoHeader."Amount Including VAT"); + end; + + [Test] + procedure ExportSalesCreditMemoGeneratesVerifactuHash() + var + PostedSalesInvoice: Record "Sales Invoice Header"; + SalesCrMemoHeader: Record "Sales Cr.Memo Header"; + Customer: Record Customer; + VerifactuDocument: Record "Verifactu Document"; + XMLText: Text; + begin + // [SCENARIO] Export generates Verifactu hash for sales credit memo + Initialize(); + VerifactuDocument.DeleteAll(); + + // [GIVEN] Posted sales credit memo "M" with customer "C" + LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer); + CreatePostedSalesInvoice(PostedSalesInvoice, Customer."No.", LibraryRandom.RandDecInRange(1000, 5000, 2), LibraryRandom.RandIntInRange(10, 25)); + CreatePostedSalesCreditMemo(SalesCrMemoHeader, PostedSalesInvoice."No.", Customer."No.", LibraryRandom.RandDecInRange(500, 2000, 2)); + + // [WHEN] Export procedure is invoked for credit memo "M" + ExportCreditMemo(SalesCrMemoHeader, XMLText); + + // [THEN] XML contains Huella element with hash value + Commit(); + VerifactuDocument.SetCurrentKey("Source Document Type", "Source Document No."); + VerifactuDocument.SetRange("Source Document Type", VerifactuDocument."Source Document Type"::"Sales Credit Memo"); + VerifactuDocument.SetRange("Source Document No.", SalesCrMemoHeader."No."); + VerifactuDocument.FindLast(); + Assert.AreNotEqual('', VerifactuDocument."Verifactu Hash", 'Verifactu hash should be generated'); + Assert.IsTrue(XMLText.Contains(VerifactuDocument."Verifactu Hash"), 'XML should contain Huella element'); + end; + + [Test] + procedure ExportSalesCreditMemoGeneratesQRCode() + var + PostedSalesInvoice: Record "Sales Invoice Header"; + SalesCrMemoHeader: Record "Sales Cr.Memo Header"; + Customer: Record Customer; + XMLText: Text; + begin + // [SCENARIO] Export generates QR code for sales credit memo + Initialize(); + + // [GIVEN] Posted sales credit memo "M" with customer "C" + LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer); + CreatePostedSalesInvoice(PostedSalesInvoice, Customer."No.", LibraryRandom.RandDecInRange(1000, 5000, 2), LibraryRandom.RandIntInRange(10, 25)); + CreatePostedSalesCreditMemo(SalesCrMemoHeader, PostedSalesInvoice."No.", Customer."No.", LibraryRandom.RandDecInRange(500, 2000, 2)); + + // [WHEN] Export procedure is invoked for credit memo "M" + ExportCreditMemo(SalesCrMemoHeader, XMLText); + + // [THEN] QR code is generated and stored in credit memo header + SalesCrMemoHeader.Get(SalesCrMemoHeader."No."); + Assert.IsTrue(SalesCrMemoHeader."QR Code Image".Count > 0, 'QR code image should be generated'); + end; + #endregion + + #region ServiceInvoice + [Test] + procedure ExportServiceInvoiceCreatesXMLFile() + var + ServiceInvoiceHeader: Record "Service Invoice Header"; + ServiceHeader: Record "Service Header"; + ServiceLine: Record "Service Line"; + XMLText: Text; + begin + // [SCENARIO] Export creates XML file for posted service invoice + Initialize(); + + // [GIVEN] Service Invoice with G/L Account in the Service Line + CreateServiceDocWithLine( + ServiceHeader, ServiceLine, ServiceHeader."Document Type"::Invoice, + ServiceLine.Type::"G/L Account", CreateGLAccountNo(), WorkDate(), LibrarySales.CreateCustomerNo()); + ServiceHeader.Validate("Invoice Type", ServiceHeader."Invoice Type"::"F1 Invoice"); + ServiceHeader.Validate("Special Scheme Code", ServiceHeader."Special Scheme Code"::"01 General"); + ServiceHeader.Validate("Operation Description", 'Test Service Invoice'); + ServiceHeader.Modify(true); + + // [WHEN] Service Invoice is posted + ServiceInvoiceHeader := PostServiceInvoice(ServiceHeader); + + // [WHEN] Export procedure is invoked for service invoice "SI" + ExportServiceInvoice(ServiceInvoiceHeader, XMLText); + + // [THEN] XML file is created with invoice number and root element + VerifyDocumentNumber(ServiceInvoiceHeader."No.", XMLText); + VerifyXMLRootElement(XMLText); + end; + + [Test] + procedure ExportServiceInvoiceWithMultipleLines() + var + ServiceInvoiceHeader: Record "Service Invoice Header"; + ServiceHeader: Record "Service Header"; + ServiceLine: Record "Service Line"; + VATRate: Decimal; + XMLText: Text; + begin + // [SCENARIO] Export creates XML for service invoice with multiple lines + Initialize(); + + // [GIVEN] Service Invoice with multiple lines with same VAT rate + VATRate := LibraryRandom.RandIntInRange(10, 25); + CreateServiceDocWithLine( + ServiceHeader, ServiceLine, ServiceHeader."Document Type"::Invoice, + ServiceLine.Type::"G/L Account", CreateGLAccountNo(), WorkDate(), LibrarySales.CreateCustomerNo()); + ServiceLine.Validate("VAT %", VATRate); + ServiceLine.Modify(true); + LibraryService.CreateServiceLine(ServiceLine, ServiceHeader, ServiceLine.Type::"G/L Account", CreateGLAccountNo()); + ServiceLine.Validate(Quantity, LibraryRandom.RandIntInRange(10, 100)); + ServiceLine.Validate("Unit Price", LibraryRandom.RandDecInRange(10, 20, 2)); + ServiceLine.Validate("VAT %", VATRate); + ServiceLine.Modify(true); + LibraryService.CreateServiceLine(ServiceLine, ServiceHeader, ServiceLine.Type::"G/L Account", CreateGLAccountNo()); + ServiceLine.Validate(Quantity, LibraryRandom.RandIntInRange(10, 100)); + ServiceLine.Validate("Unit Price", LibraryRandom.RandDecInRange(10, 20, 2)); + ServiceLine.Validate("VAT %", VATRate); + ServiceLine.Modify(true); + ServiceHeader.Validate("Invoice Type", ServiceHeader."Invoice Type"::"F1 Invoice"); + ServiceHeader.Validate("Special Scheme Code", ServiceHeader."Special Scheme Code"::"01 General"); + ServiceHeader.Validate("Operation Description", 'Test Service Invoice'); + ServiceHeader.Modify(true); + + // [WHEN] Service Invoice is posted + ServiceInvoiceHeader := PostServiceInvoice(ServiceHeader); + + // [WHEN] Export procedure is invoked for service invoice "SI" + ExportServiceInvoice(ServiceInvoiceHeader, XMLText); + + // [THEN] XML contains one VAT breakdown entry + VerifyXMLContainsVATBreakdown(XMLText, VATRate); + end; + + [Test] + procedure ExportServiceInvoiceWithDifferentVATRates() + var + ServiceInvoiceHeader: Record "Service Invoice Header"; + ServiceHeader: Record "Service Header"; + ServiceLine: Record "Service Line"; + VATRate: Decimal; + VATRate2: Decimal; + XMLText: Text; + begin + // [SCENARIO] Export creates separate VAT breakdown entries for service invoice with different VAT rates + Initialize(); + + // [GIVEN] Service Invoice with G/L Account lines with different VAT rates + VATRate := LibraryRandom.RandIntInRange(10, 25); + VATRate2 := LibraryRandom.RandIntInRange(10, 25); + CreateServiceDocWithLine( + ServiceHeader, ServiceLine, ServiceHeader."Document Type"::Invoice, + ServiceLine.Type::"G/L Account", CreateGLAccountNo(), WorkDate(), LibrarySales.CreateCustomerNo()); + ServiceLine.Validate("VAT %", VATRate); + ServiceLine.Modify(true); + LibraryService.CreateServiceLine(ServiceLine, ServiceHeader, ServiceLine.Type::"G/L Account", CreateGLAccountNo()); + ServiceLine.Validate(Quantity, LibraryRandom.RandIntInRange(10, 100)); + ServiceLine.Validate("Unit Price", LibraryRandom.RandDecInRange(10, 20, 2)); + ServiceLine.Validate("VAT %", VATRate2); + ServiceLine.Modify(true); + ServiceHeader.Validate("Invoice Type", ServiceHeader."Invoice Type"::"F1 Invoice"); + ServiceHeader.Validate("Special Scheme Code", ServiceHeader."Special Scheme Code"::"01 General"); + ServiceHeader.Validate("Operation Description", 'Test Service Invoice'); + ServiceHeader.Modify(true); + + // [WHEN] Service Invoice is posted + ServiceInvoiceHeader := PostServiceInvoice(ServiceHeader); + + // [WHEN] Export procedure is invoked for service invoice "SI" + ExportServiceInvoice(ServiceInvoiceHeader, XMLText); + + // [THEN] XML contains two VAT breakdown entries + VerifyXMLContainsVATBreakdown(XMLText, VATRate); + VerifyXMLContainsVATBreakdown(XMLText, VATRate2); + end; + + [Test] + procedure ExportServiceInvoiceGeneratesVerifactuHash() + var + ServiceInvoiceHeader: Record "Service Invoice Header"; + ServiceHeader: Record "Service Header"; + ServiceLine: Record "Service Line"; + VerifactuDocument: Record "Verifactu Document"; + XMLText: Text; + begin + // [SCENARIO] Export generates Verifactu hash for service invoice + Initialize(); + VerifactuDocument.DeleteAll(); + + // [GIVEN] Service Invoice with G/L Account in the Service Line + CreateServiceDocWithLine( + ServiceHeader, ServiceLine, ServiceHeader."Document Type"::Invoice, + ServiceLine.Type::"G/L Account", CreateGLAccountNo(), WorkDate(), LibrarySales.CreateCustomerNo()); + ServiceHeader.Validate("Invoice Type", ServiceHeader."Invoice Type"::"F1 Invoice"); + ServiceHeader.Validate("Special Scheme Code", ServiceHeader."Special Scheme Code"::"01 General"); + ServiceHeader.Validate("Operation Description", 'Test Service Invoice'); + ServiceHeader.Modify(true); + + // [WHEN] Service Invoice is posted + ServiceInvoiceHeader := PostServiceInvoice(ServiceHeader); + + // [WHEN] Export procedure is invoked for service invoice "SI" + ExportServiceInvoice(ServiceInvoiceHeader, XMLText); + + // [THEN] XML contains Huella element with hash value + Commit(); + VerifactuDocument.SetCurrentKey("Source Document Type", "Source Document No."); + VerifactuDocument.SetRange("Source Document Type", VerifactuDocument."Source Document Type"::"Service Invoice"); + VerifactuDocument.SetRange("Source Document No.", ServiceInvoiceHeader."No."); + VerifactuDocument.FindLast(); + Assert.AreNotEqual('', VerifactuDocument."Verifactu Hash", 'Verifactu hash should be generated'); + Assert.IsTrue(XMLText.Contains(VerifactuDocument."Verifactu Hash"), 'XML should contain Huella element'); + end; + + [Test] + procedure ExportServiceInvoiceCalculatesTotalsCorrectly() + var + ServiceInvoiceHeader: Record "Service Invoice Header"; + ServiceHeader: Record "Service Header"; + ServiceLine: Record "Service Line"; + XMLText: Text; + begin + // [SCENARIO] Export calculates and includes correct totals in XML for service invoice + Initialize(); + + // [GIVEN] Service Invoice with G/L Account in the Service Line + CreateServiceDocWithLine( + ServiceHeader, ServiceLine, ServiceHeader."Document Type"::Invoice, + ServiceLine.Type::"G/L Account", CreateGLAccountNo(), WorkDate(), LibrarySales.CreateCustomerNo()); + ServiceHeader.Validate("Invoice Type", ServiceHeader."Invoice Type"::"F1 Invoice"); + ServiceHeader.Validate("Special Scheme Code", ServiceHeader."Special Scheme Code"::"01 General"); + ServiceHeader.Validate("Operation Description", 'Test Service Invoice'); + ServiceHeader.Modify(true); + + // [WHEN] Service Invoice is posted + ServiceInvoiceHeader := PostServiceInvoice(ServiceHeader); + + // [WHEN] Export procedure is invoked for service invoice "SI" + ExportServiceInvoice(ServiceInvoiceHeader, XMLText); + + // [THEN] XML contains CuotaTotal and ImporteTotal elements + ServiceInvoiceHeader.CalcFields(Amount, "Amount Including VAT"); + VerifyDocumentTotals(XMLText, ServiceInvoiceHeader."Amount Including VAT" - ServiceInvoiceHeader.Amount, ServiceInvoiceHeader."Amount Including VAT"); + end; + #endregion + + #region ServiceCreditMemo + [Test] + procedure ExportServiceCreditMemoCreatesXMLFile() + var + ServiceInvoiceHeader: Record "Service Invoice Header"; + ServiceCrMemoHeader: Record "Service Cr.Memo Header"; + ServiceHeader: Record "Service Header"; + ServiceLine: Record "Service Line"; + XMLText: Text; + begin + // [SCENARIO] Export creates XML file for posted service credit memo + Initialize(); + + // [GIVEN] Service Invoice is posted + CreateServiceDocWithLine( + ServiceHeader, ServiceLine, ServiceHeader."Document Type"::Invoice, + ServiceLine.Type::"G/L Account", CreateGLAccountNo(), WorkDate(), LibrarySales.CreateCustomerNo()); + ServiceHeader.Validate("Invoice Type", ServiceHeader."Invoice Type"::"F1 Invoice"); + ServiceHeader.Validate("Special Scheme Code", ServiceHeader."Special Scheme Code"::"01 General"); + ServiceHeader.Validate("Operation Description", 'Test Service Invoice'); + ServiceHeader.Modify(true); + ServiceInvoiceHeader := PostServiceInvoice(ServiceHeader); + Commit(); + + // [GIVEN] Service Credit Memo with G/L Account in the Service Line + CreateServiceDocWithLine( + ServiceHeader, ServiceLine, ServiceHeader."Document Type"::"Credit Memo", + ServiceLine.Type::"G/L Account", CreateGLAccountNo(), WorkDate(), ServiceHeader."Customer No."); + ServiceHeader.Validate("Invoice Type", ServiceHeader."Invoice Type"::"R1 Corrected Invoice"); + ServiceHeader.Validate("Special Scheme Code", ServiceHeader."Special Scheme Code"::"01 General"); + ServiceHeader.Validate("Operation Description", 'Test Service Credit Memo'); + ServiceHeader.Validate("Corrected Invoice No.", ServiceInvoiceHeader."No."); + ServiceHeader.Modify(true); + + // [WHEN] Service Credit Memo is posted + ServiceCrMemoHeader := PostServiceCreditMemo(ServiceHeader); + + // [WHEN] Export procedure is invoked for service credit memo "SM" + ExportServiceCreditMemo(ServiceCrMemoHeader, XMLText); + + // [THEN] XML file is created with credit memo number, root element and type R1 + VerifyDocumentNumber(ServiceCrMemoHeader."No.", XMLText); + VerifyXMLRootElement(XMLText); + VerifyCreditMemoType(XMLText); + end; + + [Test] + procedure ExportServiceCreditMemoWithMultipleLines() + var + ServiceInvoiceHeader: Record "Service Invoice Header"; + ServiceCrMemoHeader: Record "Service Cr.Memo Header"; + ServiceHeader: Record "Service Header"; + ServiceLine: Record "Service Line"; + VATRate: Decimal; + XMLText: Text; + begin + // [SCENARIO] Export creates XML for service credit memo with multiple lines + Initialize(); + + // [GIVEN] Service Credit Memo with multiple G/L Account lines with same VAT rate + VATRate := LibraryRandom.RandIntInRange(10, 25); + // [GIVEN] Service Invoice is posted + CreateServiceDocWithLine( + ServiceHeader, ServiceLine, ServiceHeader."Document Type"::Invoice, + ServiceLine.Type::"G/L Account", CreateGLAccountNo(), WorkDate(), LibrarySales.CreateCustomerNo()); + ServiceHeader.Validate("Invoice Type", ServiceHeader."Invoice Type"::"F1 Invoice"); + ServiceHeader.Validate("Special Scheme Code", ServiceHeader."Special Scheme Code"::"01 General"); + ServiceHeader.Validate("Operation Description", 'Test Service Invoice'); + ServiceHeader.Modify(true); + ServiceInvoiceHeader := PostServiceInvoice(ServiceHeader); + + // [GIVEN] Service Credit Memo with multiple lines + CreateServiceDocWithLine( + ServiceHeader, ServiceLine, ServiceHeader."Document Type"::"Credit Memo", + ServiceLine.Type::"G/L Account", CreateGLAccountNo(), WorkDate(), ServiceHeader."Customer No."); + ServiceHeader.Validate("Corrected Invoice No.", ServiceInvoiceHeader."No."); + ServiceLine.Validate("VAT %", VATRate); + ServiceLine.Modify(true); + LibraryService.CreateServiceLine(ServiceLine, ServiceHeader, ServiceLine.Type::"G/L Account", CreateGLAccountNo()); + ServiceLine.Validate(Quantity, LibraryRandom.RandIntInRange(10, 100)); + ServiceLine.Validate("Unit Price", LibraryRandom.RandDecInRange(10, 20, 2)); + ServiceLine.Validate("VAT %", VATRate); + ServiceLine.Modify(true); + LibraryService.CreateServiceLine(ServiceLine, ServiceHeader, ServiceLine.Type::"G/L Account", CreateGLAccountNo()); + ServiceLine.Validate(Quantity, LibraryRandom.RandIntInRange(10, 100)); + ServiceLine.Validate("Unit Price", LibraryRandom.RandDecInRange(10, 20, 2)); + ServiceLine.Validate("VAT %", VATRate); + ServiceLine.Modify(true); + ServiceHeader.Validate("Invoice Type", ServiceHeader."Invoice Type"::"R1 Corrected Invoice"); + ServiceHeader.Validate("Special Scheme Code", ServiceHeader."Special Scheme Code"::"01 General"); + ServiceHeader.Validate("Operation Description", 'Test Service Credit Memo'); + ServiceHeader.Modify(true); + + // [WHEN] Service Credit Memo is posted + ServiceCrMemoHeader := PostServiceCreditMemo(ServiceHeader); + + // [WHEN] Export procedure is invoked for service credit memo "SM" + ExportServiceCreditMemo(ServiceCrMemoHeader, XMLText); + + // [THEN] XML contains one VAT breakdown entry + VerifyXMLContainsVATBreakdown(XMLText, VATRate); + end; + + [Test] + procedure ExportServiceCreditMemoWithDifferentVATRates() + var + ServiceInvoiceHeader: Record "Service Invoice Header"; + ServiceCrMemoHeader: Record "Service Cr.Memo Header"; + ServiceHeader: Record "Service Header"; + ServiceLine: Record "Service Line"; + VATRate: Decimal; + VATRate2: Decimal; + XMLText: Text; + begin + // [SCENARIO] Export creates separate VAT breakdown entries for service credit memo with different VAT rates + Initialize(); + + // [GIVEN] Service Credit Memo with G/L Account lines with different VAT rates + VATRate := LibraryRandom.RandIntInRange(10, 25); + VATRate2 := LibraryRandom.RandIntInRange(10, 25); + // [GIVEN] Service Invoice is posted + CreateServiceDocWithLine( + ServiceHeader, ServiceLine, ServiceHeader."Document Type"::Invoice, + ServiceLine.Type::"G/L Account", CreateGLAccountNo(), WorkDate(), LibrarySales.CreateCustomerNo()); + ServiceHeader.Validate("Invoice Type", ServiceHeader."Invoice Type"::"F1 Invoice"); + ServiceHeader.Validate("Special Scheme Code", ServiceHeader."Special Scheme Code"::"01 General"); + ServiceHeader.Validate("Operation Description", 'Test Service Invoice'); + ServiceHeader.Modify(true); + ServiceInvoiceHeader := PostServiceInvoice(ServiceHeader); + + // [GIVEN] Service Credit Memo with different VAT rates + CreateServiceDocWithLine( + ServiceHeader, ServiceLine, ServiceHeader."Document Type"::"Credit Memo", + ServiceLine.Type::"G/L Account", CreateGLAccountNo(), WorkDate(), ServiceHeader."Customer No."); + ServiceLine.Validate("VAT %", VATRate); + ServiceLine.Modify(true); + LibraryService.CreateServiceLine(ServiceLine, ServiceHeader, ServiceLine.Type::"G/L Account", CreateGLAccountNo()); + ServiceLine.Validate(Quantity, LibraryRandom.RandIntInRange(10, 100)); + ServiceLine.Validate("Unit Price", LibraryRandom.RandDecInRange(10, 20, 2)); + ServiceLine.Validate("VAT %", VATRate2); + ServiceLine.Modify(true); + ServiceHeader.Validate("Invoice Type", ServiceHeader."Invoice Type"::"R1 Corrected Invoice"); + ServiceHeader.Validate("Special Scheme Code", ServiceHeader."Special Scheme Code"::"01 General"); + ServiceHeader.Validate("Operation Description", 'Test Service Credit Memo'); + ServiceHeader.Validate("Corrected Invoice No.", ServiceInvoiceHeader."No."); + ServiceHeader.Modify(true); + + // [WHEN] Service Credit Memo is posted + ServiceCrMemoHeader := PostServiceCreditMemo(ServiceHeader); + + // [WHEN] Export procedure is invoked for service credit memo "SM" + ExportServiceCreditMemo(ServiceCrMemoHeader, XMLText); + + // [THEN] XML contains two VAT breakdown entries + VerifyXMLContainsVATBreakdown(XMLText, VATRate); + VerifyXMLContainsVATBreakdown(XMLText, VATRate2); + end; + + [Test] + procedure ExportServiceCreditMemoIncludesFacturaRectificada() + var + ServiceInvoiceHeader: Record "Service Invoice Header"; + ServiceCrMemoHeader: Record "Service Cr.Memo Header"; + ServiceHeader: Record "Service Header"; + ServiceLine: Record "Service Line"; + XMLText: Text; + begin + // [SCENARIO] Export includes corrected invoice reference in service credit memo + Initialize(); + + // [GIVEN] Service Invoice is posted + CreateServiceDocWithLine( + ServiceHeader, ServiceLine, ServiceHeader."Document Type"::Invoice, + ServiceLine.Type::"G/L Account", CreateGLAccountNo(), WorkDate(), LibrarySales.CreateCustomerNo()); + ServiceHeader.Validate("Invoice Type", ServiceHeader."Invoice Type"::"F1 Invoice"); + ServiceHeader.Validate("Special Scheme Code", ServiceHeader."Special Scheme Code"::"01 General"); + ServiceHeader.Validate("Operation Description", 'Test Service Invoice'); + ServiceHeader.Modify(true); + ServiceInvoiceHeader := PostServiceInvoice(ServiceHeader); + + // [GIVEN] Service Credit Memo correcting invoice with G/L Account in the Service Line + CreateServiceDocWithLine( + ServiceHeader, ServiceLine, ServiceHeader."Document Type"::"Credit Memo", + ServiceLine.Type::"G/L Account", CreateGLAccountNo(), WorkDate(), ServiceHeader."Customer No."); + ServiceHeader.Validate("Invoice Type", ServiceHeader."Invoice Type"::"R1 Corrected Invoice"); + ServiceHeader.Validate("Special Scheme Code", ServiceHeader."Special Scheme Code"::"01 General"); + ServiceHeader.Validate("Operation Description", 'Test Service Credit Memo'); + ServiceHeader.Validate("Corrected Invoice No.", ServiceInvoiceHeader."No."); + ServiceHeader.Modify(true); + + // [WHEN] Service Credit Memo is posted + ServiceCrMemoHeader := PostServiceCreditMemo(ServiceHeader); + + // [WHEN] Export procedure is invoked for service credit memo "SM" + ExportServiceCreditMemo(ServiceCrMemoHeader, XMLText); + + // [THEN] XML contains FacturasRectificadas element with original invoice reference + Assert.IsTrue(XMLText.Contains('FacturasRectificadas'), 'XML should contain FacturasRectificadas'); + Assert.IsTrue(XMLText.Contains('IDFacturaRectificada'), 'XML should contain IDFacturaRectificada'); + Assert.IsTrue(XMLText.Contains(ServiceInvoiceHeader."No."), 'XML should contain corrected invoice number'); + end; + + [Test] + procedure ExportServiceCreditMemoGeneratesVerifactuHash() + var + ServiceInvoiceHeader: Record "Service Invoice Header"; + ServiceCrMemoHeader: Record "Service Cr.Memo Header"; + ServiceHeader: Record "Service Header"; + ServiceLine: Record "Service Line"; + VerifactuDocument: Record "Verifactu Document"; + XMLText: Text; + begin + // [SCENARIO] Export generates Verifactu hash for service credit memo + Initialize(); + VerifactuDocument.DeleteAll(); + + // [GIVEN] Service Invoice is posted + CreateServiceDocWithLine( + ServiceHeader, ServiceLine, ServiceHeader."Document Type"::Invoice, + ServiceLine.Type::"G/L Account", CreateGLAccountNo(), WorkDate(), LibrarySales.CreateCustomerNo()); + ServiceHeader.Validate("Invoice Type", ServiceHeader."Invoice Type"::"F1 Invoice"); + ServiceHeader.Validate("Special Scheme Code", ServiceHeader."Special Scheme Code"::"01 General"); + ServiceHeader.Validate("Operation Description", 'Test Service Invoice'); + ServiceHeader.Modify(true); + ServiceInvoiceHeader := PostServiceInvoice(ServiceHeader); + + // [GIVEN] Service Credit Memo with G/L Account in the Service Line + CreateServiceDocWithLine( + ServiceHeader, ServiceLine, ServiceHeader."Document Type"::"Credit Memo", + ServiceLine.Type::"G/L Account", CreateGLAccountNo(), WorkDate(), ServiceHeader."Customer No."); + ServiceHeader.Validate("Invoice Type", ServiceHeader."Invoice Type"::"R1 Corrected Invoice"); + ServiceHeader.Validate("Special Scheme Code", ServiceHeader."Special Scheme Code"::"01 General"); + ServiceHeader.Validate("Operation Description", 'Test Service Credit Memo'); + ServiceHeader.Validate("Corrected Invoice No.", ServiceInvoiceHeader."No."); + ServiceHeader.Modify(true); + + // [WHEN] Service Credit Memo is posted + ServiceCrMemoHeader := PostServiceCreditMemo(ServiceHeader); + + // [WHEN] Export procedure is invoked for service credit memo "SM" + ExportServiceCreditMemo(ServiceCrMemoHeader, XMLText); + + // [THEN] XML contains Huella element with hash value + Commit(); + VerifactuDocument.SetCurrentKey("Source Document Type", "Source Document No."); + VerifactuDocument.SetRange("Source Document Type", VerifactuDocument."Source Document Type"::"Service Credit Memo"); + VerifactuDocument.SetRange("Source Document No.", ServiceCrMemoHeader."No."); + VerifactuDocument.FindLast(); + Assert.AreNotEqual('', VerifactuDocument."Verifactu Hash", 'Verifactu hash should be generated'); + Assert.IsTrue(XMLText.Contains(VerifactuDocument."Verifactu Hash"), 'XML should contain Huella element'); + end; + + [Test] + procedure ExportServiceCreditMemoCalculatesTotalsCorrectly() + var + ServiceInvoiceHeader: Record "Service Invoice Header"; + ServiceCrMemoHeader: Record "Service Cr.Memo Header"; + ServiceHeader: Record "Service Header"; + ServiceLine: Record "Service Line"; + XMLText: Text; + begin + // [SCENARIO] Export calculates and includes correct totals in XML for service credit memo + Initialize(); + + // [GIVEN] Service Invoice is posted + CreateServiceDocWithLine( + ServiceHeader, ServiceLine, ServiceHeader."Document Type"::Invoice, + ServiceLine.Type::"G/L Account", CreateGLAccountNo(), WorkDate(), LibrarySales.CreateCustomerNo()); + ServiceHeader.Validate("Invoice Type", ServiceHeader."Invoice Type"::"F1 Invoice"); + ServiceHeader.Validate("Special Scheme Code", ServiceHeader."Special Scheme Code"::"01 General"); + ServiceHeader.Validate("Operation Description", 'Test Service Invoice'); + ServiceHeader.Modify(true); + ServiceInvoiceHeader := PostServiceInvoice(ServiceHeader); + + // [GIVEN] Service Credit Memo with G/L Account in the Service Line + CreateServiceDocWithLine( + ServiceHeader, ServiceLine, ServiceHeader."Document Type"::"Credit Memo", + ServiceLine.Type::"G/L Account", CreateGLAccountNo(), WorkDate(), ServiceHeader."Customer No."); + ServiceHeader.Validate("Invoice Type", ServiceHeader."Invoice Type"::"R1 Corrected Invoice"); + ServiceHeader.Validate("Special Scheme Code", ServiceHeader."Special Scheme Code"::"01 General"); + ServiceHeader.Validate("Operation Description", 'Test Service Credit Memo'); + ServiceHeader.Validate("Corrected Invoice No.", ServiceInvoiceHeader."No."); + ServiceHeader.Modify(true); + + // [WHEN] Service Credit Memo is posted + ServiceCrMemoHeader := PostServiceCreditMemo(ServiceHeader); + + // [WHEN] Export procedure is invoked for service credit memo "SM" + ExportServiceCreditMemo(ServiceCrMemoHeader, XMLText); + + // [THEN] XML contains CuotaTotal and ImporteTotal elements + ServiceCrMemoHeader.CalcFields(Amount, "Amount Including VAT"); + VerifyDocumentTotals(XMLText, -(ServiceCrMemoHeader."Amount Including VAT" - ServiceCrMemoHeader.Amount), -ServiceCrMemoHeader."Amount Including VAT"); + end; + #endregion + + local procedure Initialize() + begin + LibraryTestInitialize.OnTestInitialize(CODEUNIT::"Test Verifactu Export"); + if IsInitialized then + exit; + LibraryTestInitialize.OnBeforeTestSuiteInitialize(CODEUNIT::"Test Verifactu Export"); + + SetupCompanyInformation(); + EDocumentService.Get(LibraryEdocument.CreateService("E-Document Format"::Verifactu, "Service Integration"::"Verifactu Service")); + IsInitialized := true; + LibraryTestInitialize.OnAfterTestSuiteInitialize(CODEUNIT::"Test Verifactu Export"); + end; + + local procedure ExportInvoice(SalesInvoiceHeader: Record "Sales Invoice Header"; var XMLText: Text) + var + EDocument: Record "E-Document"; + TempBlob: Codeunit "Temp Blob"; + Verifactu: Codeunit Verifactu; + SourceDocumentHeader: RecordRef; + SourceDocumentLines: RecordRef; + begin + SourceDocumentHeader.GetTable(SalesInvoiceHeader); + SourceDocumentLines.Open(Database::"Sales Invoice Line"); + EDocument."Document No." := SalesInvoiceHeader."No."; + EDocument."Document Type" := EDocument."Document Type"::"Sales Invoice"; + Verifactu.Create(EDocumentService, EDocument, SourceDocumentHeader, SourceDocumentLines, TempBlob); + ReadXMLFromBlob(TempBlob, XMLText); + end; + + local procedure ExportCreditMemo(SalesCrMemoHeader: Record "Sales Cr.Memo Header"; var XMLText: Text) + var + EDocument: Record "E-Document"; + TempBlob: Codeunit "Temp Blob"; + Verifactu: Codeunit Verifactu; + SourceDocumentHeader: RecordRef; + SourceDocumentLines: RecordRef; + begin + SourceDocumentHeader.GetTable(SalesCrMemoHeader); + SourceDocumentLines.Open(Database::"Sales Cr.Memo Line"); + EDocument."Document No." := SalesCrMemoHeader."No."; + EDocument."Document Type" := EDocument."Document Type"::"Sales Credit Memo"; + Verifactu.Create(EDocumentService, EDocument, SourceDocumentHeader, SourceDocumentLines, TempBlob); + ReadXMLFromBlob(TempBlob, XMLText); + end; + + local procedure ExportServiceInvoice(ServiceInvoiceHeader: Record "Service Invoice Header"; var XMLText: Text) + var + EDocument: Record "E-Document"; + TempBlob: Codeunit "Temp Blob"; + Verifactu: Codeunit Verifactu; + SourceDocumentHeader: RecordRef; + SourceDocumentLines: RecordRef; + begin + SourceDocumentHeader.GetTable(ServiceInvoiceHeader); + SourceDocumentLines.Open(Database::"Service Invoice Line"); + EDocument."Document No." := ServiceInvoiceHeader."No."; + EDocument."Document Type" := EDocument."Document Type"::"Service Invoice"; + Verifactu.Create(EDocumentService, EDocument, SourceDocumentHeader, SourceDocumentLines, TempBlob); + ReadXMLFromBlob(TempBlob, XMLText); + end; + + local procedure ExportServiceCreditMemo(ServiceCrMemoHeader: Record "Service Cr.Memo Header"; var XMLText: Text) + var + EDocument: Record "E-Document"; + TempBlob: Codeunit "Temp Blob"; + Verifactu: Codeunit Verifactu; + SourceDocumentHeader: RecordRef; + SourceDocumentLines: RecordRef; + begin + SourceDocumentHeader.GetTable(ServiceCrMemoHeader); + SourceDocumentLines.Open(Database::"Service Cr.Memo Line"); + EDocument."Document No." := ServiceCrMemoHeader."No."; + EDocument."Document Type" := EDocument."Document Type"::"Service Credit Memo"; + Verifactu.Create(EDocumentService, EDocument, SourceDocumentHeader, SourceDocumentLines, TempBlob); + ReadXMLFromBlob(TempBlob, XMLText); + end; + + local procedure SetupCompanyInformation() + var + CompanyInformation: Record "Company Information"; + begin + CompanyInformation.Get(); + if CompanyInformation."VAT Registration No." = '' then begin + CompanyInformation."VAT Registration No." := 'ES12345678A'; + CompanyInformation.Modify(); + end; + end; + + local procedure CreateAndPostSalesInvoice(CustomerNo: Code[20]; Amount: Decimal; VATRate: Decimal): Code[20] + var + SalesHeader: Record "Sales Header"; + SalesLine: Record "Sales Line"; + Item: Record Item; + begin + LibraryInventory.CreateItem(Item); + + LibrarySales.CreateSalesHeader(SalesHeader, SalesHeader."Document Type"::Invoice, CustomerNo); + SalesHeader.Validate("Invoice Type", SalesHeader."Invoice Type"::"F1 Invoice"); + SalesHeader.Validate("Special Scheme Code", SalesHeader."Special Scheme Code"::"01 General"); + SalesHeader.Validate("Operation Description", 'Test Invoice'); + SalesHeader.Modify(true); + + LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, Item."No.", 1); + SalesLine.Validate("Unit Price", Amount); + SalesLine.Validate("VAT %", VATRate); + SalesLine.Modify(true); + + exit(LibrarySales.PostSalesDocument(SalesHeader, true, true)); + end; + + local procedure CreatePostedSalesInvoice(var SalesInvoiceHeader: Record "Sales Invoice Header"; CustomerNo: Code[20]; Amount: Decimal; VATRate: Decimal) + begin + SalesInvoiceHeader.Get(CreateAndPostSalesInvoice(CustomerNo, Amount, VATRate)); + end; + + local procedure CreatePostedSalesInvoiceWithMultipleLines(var SalesInvoiceHeader: Record "Sales Invoice Header"; CustomerNo: Code[20]; VATRate: Decimal) + var + SalesHeader: Record "Sales Header"; + SalesLine: Record "Sales Line"; + Item: Record Item; + begin + LibraryInventory.CreateItem(Item); + + LibrarySales.CreateSalesHeader(SalesHeader, SalesHeader."Document Type"::Invoice, CustomerNo); + SalesHeader.Validate("Invoice Type", SalesHeader."Invoice Type"::"F1 Invoice"); + SalesHeader.Validate("Special Scheme Code", SalesHeader."Special Scheme Code"::"01 General"); + SalesHeader.Validate("Operation Description", 'Test Invoice'); + SalesHeader.Modify(true); + + LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, Item."No.", 1); + SalesLine.Validate("Unit Price", LibraryRandom.RandDecInRange(50, 200, 2)); + SalesLine.Validate("VAT %", VATRate); + SalesLine.Modify(true); + + LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, Item."No.", 1); + SalesLine.Validate("Unit Price", LibraryRandom.RandDecInRange(50, 200, 2)); + SalesLine.Validate("VAT %", VATRate); + SalesLine.Modify(true); + + LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, Item."No.", 1); + SalesLine.Validate("Unit Price", LibraryRandom.RandDecInRange(50, 200, 2)); + SalesLine.Validate("VAT %", VATRate); + SalesLine.Modify(true); + + SalesInvoiceHeader.Get(LibrarySales.PostSalesDocument(SalesHeader, true, true)); + end; + + local procedure CreatePostedSalesInvoiceWithDifferentVATRates(var SalesInvoiceHeader: Record "Sales Invoice Header"; CustomerNo: Code[20]; VATRate1: Decimal; VATRate2: Decimal) + var + SalesHeader: Record "Sales Header"; + SalesLine: Record "Sales Line"; + Item1: Record Item; + Item2: Record Item; + begin + LibraryInventory.CreateItem(Item1); + LibraryInventory.CreateItem(Item2); + + LibrarySales.CreateSalesHeader(SalesHeader, SalesHeader."Document Type"::Invoice, CustomerNo); + SalesHeader.Validate("Invoice Type", SalesHeader."Invoice Type"::"F1 Invoice"); + SalesHeader.Validate("Special Scheme Code", SalesHeader."Special Scheme Code"::"01 General"); + SalesHeader.Validate("Operation Description", 'Test Invoice'); + SalesHeader.Modify(true); + + LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, Item1."No.", 1); + SalesLine.Validate("Unit Price", LibraryRandom.RandDecInRange(100, 300, 2)); + SalesLine.Validate("VAT %", VATRate1); + SalesLine.Modify(true); + + LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, Item2."No.", 1); + SalesLine.Validate("Unit Price", LibraryRandom.RandDecInRange(100, 300, 2)); + SalesLine.Validate("VAT %", VATRate2); + SalesLine.Modify(true); + + SalesInvoiceHeader.Get(LibrarySales.PostSalesDocument(SalesHeader, true, true)); + end; + + local procedure CreateAndPostSalesCreditMemo(PostedSalesInvoiceNo: Code[20]; CustomerNo: Code[20]; Amount: Decimal): Code[20] + var + SalesHeader: Record "Sales Header"; + SalesLine: Record "Sales Line"; + Item: Record Item; + begin + LibraryInventory.CreateItem(Item); + + LibrarySales.CreateSalesHeader(SalesHeader, SalesHeader."Document Type"::"Credit Memo", CustomerNo); + SalesHeader.Validate("Invoice Type", SalesHeader."Invoice Type"::"R1 Corrected Invoice"); + SalesHeader.Validate("Special Scheme Code", SalesHeader."Special Scheme Code"::"01 General"); + SalesHeader.Validate("Operation Description", 'Test Credit Memo'); + SalesHeader.Validate("Corrected Invoice No.", PostedSalesInvoiceNo); + SalesHeader.Modify(true); + + LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, Item."No.", 1); + SalesLine.Validate("Unit Price", Amount); + SalesLine.Modify(true); + + exit(LibrarySales.PostSalesDocument(SalesHeader, true, true)); + end; + + local procedure CreatePostedSalesCreditMemoWithMultipleLines(var SalesCrMemoHeader: Record "Sales Cr.Memo Header"; CustomerNo: Code[20]; PostedSalesInvoiceNo: Code[20]; VATRate: Decimal) + var + SalesHeader: Record "Sales Header"; + SalesLine: Record "Sales Line"; + Item: Record Item; + begin + LibraryInventory.CreateItem(Item); + + LibrarySales.CreateSalesHeader(SalesHeader, SalesHeader."Document Type"::"Credit Memo", CustomerNo); + SalesHeader.Validate("Invoice Type", SalesHeader."Invoice Type"::"R1 Corrected Invoice"); + SalesHeader.Validate("Special Scheme Code", SalesHeader."Special Scheme Code"::"01 General"); + SalesHeader.Validate("Operation Description", 'Test Credit Memo'); + SalesHeader.Validate("Corrected Invoice No.", PostedSalesInvoiceNo); + SalesHeader.Modify(true); + + LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, Item."No.", 1); + SalesLine.Validate("Unit Price", LibraryRandom.RandDecInRange(50, 150, 2)); + SalesLine.Validate("VAT %", VATRate); + SalesLine.Modify(true); + + LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, Item."No.", 1); + SalesLine.Validate("Unit Price", LibraryRandom.RandDecInRange(50, 150, 2)); + SalesLine.Validate("VAT %", VATRate); + SalesLine.Modify(true); + + SalesCrMemoHeader.Get(LibrarySales.PostSalesDocument(SalesHeader, true, true)); + end; + + local procedure CreatePostedSalesCreditMemoWithDifferentVATRates(var SalesCrMemoHeader: Record "Sales Cr.Memo Header"; PostedSalesInvoiceNo: Code[20]; CustomerNo: Code[20]; VATRate: Decimal; VATRate2: Decimal) + var + SalesHeader: Record "Sales Header"; + SalesLine: Record "Sales Line"; + Item1: Record Item; + Item2: Record Item; + begin + LibraryInventory.CreateItem(Item1); + LibraryInventory.CreateItem(Item2); + + LibrarySales.CreateSalesHeader(SalesHeader, SalesHeader."Document Type"::"Credit Memo", CustomerNo); + SalesHeader.Validate("Invoice Type", SalesHeader."Invoice Type"::"R1 Corrected Invoice"); + SalesHeader.Validate("Special Scheme Code", SalesHeader."Special Scheme Code"::"01 General"); + SalesHeader.Validate("Operation Description", 'Test Credit Memo'); + SalesHeader.Validate("Corrected Invoice No.", PostedSalesInvoiceNo); + SalesHeader.Modify(true); + + LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, Item1."No.", 1); + SalesLine.Validate("Unit Price", LibraryRandom.RandDecInRange(80, 200, 2)); + SalesLine.Validate("VAT %", VATRate); + SalesLine.Modify(true); + + LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, Item2."No.", 1); + SalesLine.Validate("Unit Price", LibraryRandom.RandDecInRange(80, 200, 2)); + SalesLine.Validate("VAT %", VATRate2); + SalesLine.Modify(true); + + SalesCrMemoHeader.Get(LibrarySales.PostSalesDocument(SalesHeader, true, true)); + end; + + local procedure CreatePostedSalesCreditMemo(var SalesCrMemoHeader: Record "Sales Cr.Memo Header"; PostedSalesInvoiceNo: Code[20]; CustomerNo: Code[20]; Amount: Decimal) + begin + SalesCrMemoHeader.Get(CreateAndPostSalesCreditMemo(PostedSalesInvoiceNo, CustomerNo, Amount)); + end; + + local procedure CreateServiceDocWithLine(var ServiceHeader: Record "Service Header"; var ServiceLine: Record "Service Line"; DocumentType: Enum "Service Document Type"; ServiceLineType: Enum "Service Line Type"; No: Code[20]; PostingDate: Date; CustomerNo: Code[20]) + begin + LibraryService.CreateServiceHeader(ServiceHeader, DocumentType, CustomerNo); + ServiceHeader.Validate("Posting Date", PostingDate); + ServiceHeader.Modify(true); + LibraryService.CreateServiceLine(ServiceLine, ServiceHeader, ServiceLineType, No); + ServiceLine.Validate(Quantity, LibraryRandom.RandIntInRange(10, 100)); + ServiceLine.Validate("Unit Price", LibraryRandom.RandDecInRange(10, 20, 2)); + ServiceLine.Modify(true); + end; + + local procedure PostServiceInvoice(ServiceHeader: Record "Service Header"): Record "Service Invoice Header" + var + ServiceInvoiceHeader: Record "Service Invoice Header"; + begin + LibraryService.PostServiceOrder(ServiceHeader, true, false, true); + ServiceInvoiceHeader.SetRange("Customer No.", ServiceHeader."Customer No."); + ServiceInvoiceHeader.FindFirst(); + exit(ServiceInvoiceHeader); + end; + + local procedure PostServiceCreditMemo(ServiceHeader: Record "Service Header"): Record "Service Cr.Memo Header" + var + ServiceCrMemoHeader: Record "Service Cr.Memo Header"; + begin + LibraryService.PostServiceOrder(ServiceHeader, true, false, true); + ServiceCrMemoHeader.SetRange("Customer No.", ServiceHeader."Customer No."); + ServiceCrMemoHeader.FindFirst(); + exit(ServiceCrMemoHeader); + end; + + local procedure CreateGLAccountNo(): Code[20] + var + GeneralPostingSetup: Record "General Posting Setup"; + begin + LibraryERM.FindGeneralPostingSetup(GeneralPostingSetup); + exit(CreateGLAccount(GeneralPostingSetup)); + end; + + local procedure CreateGLAccount(GeneralPostingSetup: Record "General Posting Setup"): Code[20] + var + GLAccount: Record "G/L Account"; + VATPostingSetup: Record "VAT Posting Setup"; + begin + LibraryERM.FindVATPostingSetup(VATPostingSetup, VATPostingSetup."VAT Calculation Type"::"Normal VAT"); + LibraryERM.CreateGLAccount(GLAccount); + GLAccount.Validate("Gen. Bus. Posting Group", GeneralPostingSetup."Gen. Bus. Posting Group"); + GLAccount.Validate("Gen. Prod. Posting Group", GeneralPostingSetup."Gen. Prod. Posting Group"); + GLAccount.Validate("VAT Bus. Posting Group", VATPostingSetup."VAT Bus. Posting Group"); + GLAccount.Validate("VAT Prod. Posting Group", VATPostingSetup."VAT Prod. Posting Group"); + GLAccount.Modify(true); + exit(GLAccount."No."); + end; + + local procedure VerifyXMLContainsVATBreakdown(XMLText: Text; VATRate: Decimal) + begin + Assert.IsTrue(XMLText.Contains(Format(VATRate)), 'XML should contain VAT breakdown'); + end; + + local procedure VerifyCompanyInformation(CompanyInformation: Record "Company Information"; XMLText: Text) + begin + Assert.IsTrue(XMLText.Contains(CompanyInformation.Name), 'XML should contain company name'); + Assert.IsTrue(XMLText.Contains(CompanyInformation."VAT Registration No."), 'XML should contain VAT number'); + end; + + local procedure VerifyDocumentNumber(DocumentNo: Code[20]; XMLText: Text) + begin + Assert.IsTrue(XMLText.Contains(DocumentNo), 'XML should contain document number'); + end; + + local procedure VerifyDocumentTotals(XMLText: Text; VATAmount: Decimal; Amount: Decimal) + begin + Assert.IsTrue(XMLText.Contains(Format(VATAmount, 0, 9)), 'XML should contain CuotaTotal'); + Assert.IsTrue(XMLText.Contains(Format(Amount, 0, 9)), 'XML should contain ImporteTotal'); + end; + + local procedure VerifyXMLRootElement(XMLText: Text) + begin + Assert.IsTrue(XMLText.Contains('Envelope'), 'XML should contain root element'); + end; + + local procedure VerifyCreditMemoType(XMLText: Text) + begin + Assert.IsTrue(XMLText.Contains('R1'), 'XML should contain invoice type R1'); + end; + + local procedure ReadXMLFromBlob(TempBlob: Codeunit "Temp Blob"; var XMLText: Text) + var + InStream: InStream; + XMLLineText: Text; + begin + TempBlob.CreateInStream(InStream, TextEncoding::UTF8); + while not InStream.EOS() do begin + InStream.ReadText(XMLLineText); + XMLText += XMLLineText; + end; + end; + + local procedure VerifyXMLStructure(XMLText: Text) + begin + Assert.IsTrue(XMLText.Contains('Envelope'), 'XML should contain Envelope'); + Assert.IsTrue(XMLText.Contains('Header'), 'XML should contain Header'); + Assert.IsTrue(XMLText.Contains('Body'), 'XML should contain Body'); + Assert.IsTrue(XMLText.Contains('RegFactuSistemaFacturacion'), 'XML should contain RegFactuSistemaFacturacion'); + Assert.IsTrue(XMLText.Contains('Cabecera'), 'XML should contain Cabecera'); + Assert.IsTrue(XMLText.Contains('RegistroFactura'), 'XML should contain RegistroFactura'); + end; +} + diff --git a/Apps/ES/EDocumentFormats/DocumentRegistration/test/src/TestVerifactuSetup.Codeunit.al b/Apps/ES/EDocumentFormats/DocumentRegistration/test/src/TestVerifactuSetup.Codeunit.al new file mode 100644 index 0000000000..5687af7156 --- /dev/null +++ b/Apps/ES/EDocumentFormats/DocumentRegistration/test/src/TestVerifactuSetup.Codeunit.al @@ -0,0 +1,440 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.EServices.EDocument.Verifactu.Test; + +using Microsoft.EServices.EDocument; +using Microsoft.EServices.EDocument.Verifactu; +using System.Privacy; +using System.Security.Encryption; + +codeunit 148003 "Test Verifactu Setup" +{ + Subtype = Test; + TestPermissions = Disabled; + + var + Assert: Codeunit Assert; + IsInitialized: Boolean; + DisableSIIQst: Label 'SII setup will be disabled. Do you want to proceed?'; + DisableVerifactuQst: Label 'Verifactu setup will be disabled. Do you want to proceed?'; + + [Test] + procedure VerifactuSetupPageOpensAndInitializes() + var + VerifactuSetup: Record "Verifactu Setup"; + begin + // [SCENARIO] Verifactu Setup page opens and initializes record with default values + Initialize(); + + // [GIVEN] Verifactu Setup table is empty + VerifactuSetup.DeleteAll(); + + // [WHEN] User opens Verifactu Setup page + SimulatePageOpen(VerifactuSetup); + + // [THEN] A record is created if it does not exist + VerifySetupRecordExists(VerifactuSetup); + end; + + [Test] + [HandlerFunctions('CustomerConsentConfirmationPageChooseYesModalPageHandler')] + procedure VerifactuSetupEnablesWithValidCertificate() + var + VerifactuSetup: Record "Verifactu Setup"; + IsolatedCertificate: Record "Isolated Certificate"; + CertCode: Code[20]; + begin + // [SCENARIO] User enables Verifactu Setup when valid certificate is configured + Initialize(); + + // [GIVEN] Verifactu Setup record exists + CreateVerifactuSetup(VerifactuSetup); + + // [GIVEN] Certificate "C" exists in Isolated Certificate table + CertCode := CreateCertificate(IsolatedCertificate); + + // [GIVEN] Setup field Certificate Code is set to "C" + VerifactuSetup.Validate("Certificate Code", CertCode); + VerifactuSetup.Modify(true); + + // [WHEN] User sets Enabled field to true + VerifactuSetup.Validate(Enabled, true); + VerifactuSetup.Modify(true); + + // [THEN] Enabled field is set to true + // [THEN] No error is raised + Assert.IsTrue(VerifactuSetup.Enabled, 'Setup should be enabled'); + end; + + [Test] + procedure VerifactuSetupCannotEnableWithoutCertificate() + var + VerifactuSetup: Record "Verifactu Setup"; + begin + // [SCENARIO] User cannot enable Verifactu Setup without a certificate + Initialize(); + + // [GIVEN] Verifactu Setup record exists + CreateVerifactuSetup(VerifactuSetup); + + // [GIVEN] Certificate Code field is blank + VerifactuSetup."Certificate Code" := ''; + VerifactuSetup.Modify(true); + + // [WHEN] User attempts to set Enabled field to true + asserterror VerifactuSetup.Validate(Enabled, true); + + // [THEN] Error is raised with message about missing certificate + // [THEN] Enabled field remains false + Assert.ExpectedError('certificate'); + end; + + [Test] + [HandlerFunctions('CustomerConsentConfirmationPageChooseYesModalPageHandler')] + procedure VerifactuSetupIsEnabledReturnsTrueWhenEnabled() + var + VerifactuSetup: Record "Verifactu Setup"; + IsolatedCertificate: Record "Isolated Certificate"; + CertCode: Code[20]; + IsEnabled: Boolean; + begin + // [SCENARIO] IsEnabled procedure returns true when setup is enabled + Initialize(); + + // [GIVEN] Verifactu Setup record exists + CreateVerifactuSetup(VerifactuSetup); + + // [GIVEN] Certificate "C" is assigned + CertCode := CreateCertificate(IsolatedCertificate); + VerifactuSetup.Validate("Certificate Code", CertCode); + + // [GIVEN] Enabled field is set to true + VerifactuSetup.Validate(Enabled, true); + VerifactuSetup.Modify(true); + + // [WHEN] IsEnabled procedure is called + IsEnabled := VerifactuSetup.IsEnabled(); + + // [THEN] Result is true + Assert.IsTrue(IsEnabled, 'IsEnabled should return true'); + end; + + [Test] + procedure VerifactuSetupIsEnabledReturnsFalseWhenDisabled() + var + VerifactuSetup: Record "Verifactu Setup"; + IsEnabled: Boolean; + begin + // [SCENARIO] IsEnabled procedure returns false when setup is disabled + Initialize(); + + // [GIVEN] Verifactu Setup record exists + CreateVerifactuSetup(VerifactuSetup); + + // [GIVEN] Enabled field is set to false + VerifactuSetup.Enabled := false; + VerifactuSetup.Modify(true); + + // [WHEN] IsEnabled procedure is called + IsEnabled := VerifactuSetup.IsEnabled(); + + // [THEN] Result is false + Assert.IsFalse(IsEnabled, 'IsEnabled should return false'); + end; + + [Test] + [HandlerFunctions('CustomerConsentConfirmationPageChooseYesModalPageHandler')] + procedure VerifactuSetupCertificateCodeLookup() + var + VerifactuSetup: Record "Verifactu Setup"; + IsolatedCertificate: Record "Isolated Certificate"; + CertCode1: Code[20]; + begin + // [SCENARIO] User can lookup and select certificate using drilldown + Initialize(); + + // [GIVEN] Verifactu Setup record exists + CreateVerifactuSetup(VerifactuSetup); + + // [GIVEN] Certificates "C1" and "C2" exist in Isolated Certificate table + CertCode1 := CreateCertificate(IsolatedCertificate); + CreateCertificate(IsolatedCertificate); + + // [WHEN] User performs lookup on Certificate Code field + // [WHEN] User selects certificate "C1" + VerifactuSetup.Validate("Certificate Code", CertCode1); + VerifactuSetup.Modify(true); + + // [THEN] Certificate Code field is set to "C1" + Assert.AreEqual(CertCode1, VerifactuSetup."Certificate Code", 'Certificate Code should be set'); + end; + + [Test] + [HandlerFunctions('CustomerConsentConfirmationPageChooseNoModalPageHandler')] + procedure VerifactuSetupRemainsDisabledWhenConsentDeclined() + var + VerifactuSetup: Record "Verifactu Setup"; + IsolatedCertificate: Record "Isolated Certificate"; + CertCode: Code[20]; + begin + // [SCENARIO] Setup remains disabled when user declines consent + Initialize(); + + // [GIVEN] Verifactu Setup record exists + CreateVerifactuSetup(VerifactuSetup); + + // [GIVEN] Certificate "C" exists in Isolated Certificate table + CertCode := CreateCertificate(IsolatedCertificate); + + // [GIVEN] Setup field Certificate Code is set to "C" + VerifactuSetup.Validate("Certificate Code", CertCode); + VerifactuSetup.Modify(true); + + // [WHEN] User attempts to set Enabled field to true but declines consent + VerifactuSetup.Validate(Enabled, true); + VerifactuSetup.Modify(true); + + // [THEN] Enabled field remains false + Assert.IsFalse(VerifactuSetup.Enabled, 'Setup should remain disabled when consent is declined'); + end; + + [Test] + [HandlerFunctions('CustomerConsentConfirmationPageChooseYesModalPageHandler,ConfirmSIISetupHandlerYes')] + procedure VerifactuSetupEnablesWhenSIISetupDisabled() + var + VerifactuSetup: Record "Verifactu Setup"; + SIISetup: Record "SII Setup"; + IsolatedCertificate: Record "Isolated Certificate"; + CertCode: Code[20]; + begin + // [SCENARIO] Verifactu Setup can be enabled when SII Setup is disabled + IsInitialized := false; + Initialize(); + + // [GIVEN] SII Setup exists and is enabled + CreateSIISetup(SIISetup, true); + + // [GIVEN] Verifactu Setup record exists + CreateVerifactuSetup(VerifactuSetup); + + // [GIVEN] Certificate "C" exists in Isolated Certificate table + CertCode := CreateCertificate(IsolatedCertificate); + + // [GIVEN] Setup field Certificate Code is set to "C" + VerifactuSetup.Validate("Certificate Code", CertCode); + VerifactuSetup.Modify(true); + + // [WHEN] User sets Enabled field to true + VerifactuSetup.Validate(Enabled, true); + VerifactuSetup.Modify(true); + + // [THEN] Enabled field is set to true + Assert.IsTrue(VerifactuSetup.Enabled, 'Setup should be enabled when SII Setup is disabled'); + end; + + [Test] + [HandlerFunctions('ConfirmSIISetupHandlerNo')] + procedure VerifactuSetupCannotEnableWhenSIISetupEnabled() + var + VerifactuSetup: Record "Verifactu Setup"; + SIISetup: Record "SII Setup"; + IsolatedCertificate: Record "Isolated Certificate"; + CertCode: Code[20]; + begin + // [SCENARIO] Verifactu Setup cannot be enabled when SII Setup is enabled + IsInitialized := false; + Initialize(); + + // [GIVEN] SII Setup exists and is enabled + CreateSIISetup(SIISetup, true); + + // [GIVEN] Verifactu Setup record exists + CreateVerifactuSetup(VerifactuSetup); + + // [GIVEN] Certificate "C" exists in Isolated Certificate table + CertCode := CreateCertificate(IsolatedCertificate); + + // [GIVEN] Setup field Certificate Code is set to "C" + VerifactuSetup.Validate("Certificate Code", CertCode); + VerifactuSetup.Modify(true); + + // [WHEN] User attempts to set Enabled field to true + VerifactuSetup.Validate(Enabled, true); + VerifactuSetup.Modify(true); + + // [THEN] Enabled field remains false + Assert.IsFalse(VerifactuSetup.Enabled, 'Setup should remain disabled when SII Setup is enabled'); + end; + + [Test] + [HandlerFunctions('CustomerConsentConfirmationPageChooseYesModalPageHandler,ConfirmVerifactuSetupHandlerYes')] + procedure SIISetupEnablesWhenVerifactuSetupDisabled() + var + VerifactuSetup: Record "Verifactu Setup"; + SIISetup: Record "SII Setup"; + IsolatedCertificate: Record "Isolated Certificate"; + CertCode: Code[20]; + begin + // [SCENARIO] SII Setup can be enabled when Verifactu Setup is disabled + IsInitialized := false; + Initialize(); + + // [GIVEN] Verifactu Setup exists and is enabled + CreateVerifactuSetup(VerifactuSetup); + CertCode := CreateCertificate(IsolatedCertificate); + VerifactuSetup.Validate("Certificate Code", CertCode); + VerifactuSetup.Validate(Enabled, true); + VerifactuSetup.Modify(true); + + // [GIVEN] SII Setup record exists + CreateSIISetup(SIISetup, false); + + // [WHEN] User sets SII Setup Enabled field to true + SIISetup."Certificate Code" := CertCode; + SIISetup.Validate(Enabled, true); + SIISetup.Modify(); + + // [THEN] SII Setup Enabled field is set to true + // [THEN] Verifactu Setup is disabled after user confirms + Assert.IsTrue(SIISetup.Enabled, 'SII Setup should be enabled when Verifactu Setup is disabled'); + VerifactuSetup.Get(); + Assert.IsFalse(VerifactuSetup.Enabled, 'Verifactu Setup should be disabled'); + end; + + [Test] + [HandlerFunctions('ConfirmVerifactuSetupHandlerNo,CustomerConsentConfirmationPageChooseYesModalPageHandler')] + procedure SIISetupCannotEnableWhenVerifactuSetupEnabled() + var + VerifactuSetup: Record "Verifactu Setup"; + SIISetup: Record "SII Setup"; + IsolatedCertificate: Record "Isolated Certificate"; + CertCode: Code[20]; + begin + // [SCENARIO] SII Setup cannot be enabled when Verifactu Setup is enabled and user declines + IsInitialized := false; + Initialize(); + + // [GIVEN] Verifactu Setup exists and is enabled + CreateVerifactuSetup(VerifactuSetup); + CertCode := CreateCertificate(IsolatedCertificate); + VerifactuSetup.Validate("Certificate Code", CertCode); + VerifactuSetup.Validate(Enabled, true); + VerifactuSetup.Modify(true); + + // [GIVEN] SII Setup record exists and is disabled + CreateSIISetup(SIISetup, false); + + // [WHEN] User attempts to set SII Setup Enabled field to true but declines confirmation + SIISetup.Validate(Enabled, true); + SIISetup.Modify(); + + // [THEN] SII Setup Enabled field remains false + // [THEN] Verifactu Setup remains enabled + Assert.IsFalse(SIISetup.Enabled, 'SII Setup should remain disabled when Verifactu Setup is enabled'); + VerifactuSetup.Get(); + Assert.IsTrue(VerifactuSetup.Enabled, 'Verifactu Setup should remain enabled'); + end; + + local procedure Initialize() + var + VerifactuSetup: Record "Verifactu Setup"; + SIISetup: Record "SII Setup"; + begin + // code that is run before each test + if IsInitialized then + exit; + // code that is run only once before the first test + VerifactuSetup.DeleteAll(); + SIISetup.DeleteAll(); + IsInitialized := true; + end; + + local procedure CreateVerifactuSetup(var VerifactuSetup: Record "Verifactu Setup") + begin + VerifactuSetup.DeleteAll(); + VerifactuSetup.Init(); + VerifactuSetup."Primary Key" := ''; + VerifactuSetup.Insert(true); + end; + + local procedure CreateCertificate(var IsolatedCertificate: Record "Isolated Certificate"): Code[20] + begin + IsolatedCertificate.Init(); + IsolatedCertificate.Scope := IsolatedCertificate.Scope::Company; + IsolatedCertificate.Insert(true); + exit(IsolatedCertificate.Code); + end; + + local procedure CreateSIISetup(var SIISetup: Record "SII Setup"; IsEnabled: Boolean) + begin + SIISetup.DeleteAll(); + SIISetup.Init(); + SIISetup.Enabled := IsEnabled; + if not SIISetup.Insert(true) then begin + SIISetup.Enabled := IsEnabled; + SIISetup.Modify(true); + end; + end; + + local procedure SimulatePageOpen(var VerifactuSetup: Record "Verifactu Setup") + begin + VerifactuSetup.Reset(); + if not VerifactuSetup.Get() then begin + VerifactuSetup.Init(); + VerifactuSetup.Insert(true); + end; + end; + + local procedure VerifySetupRecordExists(var VerifactuSetup: Record "Verifactu Setup") + begin + Assert.IsTrue(VerifactuSetup.Get(), 'Verifactu Setup record should exist'); + end; + + [ModalPageHandler] + [Scope('OnPrem')] + procedure CustomerConsentConfirmationPageChooseNoModalPageHandler(var CustConsentConfPage: TestPage "Cust. Consent Confirmation") + begin + CustConsentConfPage.Cancel.Invoke(); + end; + + [ModalPageHandler] + [Scope('OnPrem')] + procedure CustomerConsentConfirmationPageChooseYesModalPageHandler(var CustConsentConfPage: TestPage "Cust. Consent Confirmation") + begin + CustConsentConfPage.Accept.Invoke(); + end; + + [ConfirmHandler] + [Scope('OnPrem')] + procedure ConfirmSIISetupHandlerYes(Question: Text[1024]; var Reply: Boolean) + begin + Assert.AreEqual(DisableSIIQst, Question, 'Expected SII disable confirmation'); + Reply := true; + end; + + [ConfirmHandler] + [Scope('OnPrem')] + procedure ConfirmSIISetupHandlerNo(Question: Text[1024]; var Reply: Boolean) + begin + Assert.AreEqual(DisableSIIQst, Question, 'Expected SII disable confirmation'); + Reply := false; + end; + + [ConfirmHandler] + [Scope('OnPrem')] + procedure ConfirmVerifactuSetupHandlerYes(Question: Text[1024]; var Reply: Boolean) + begin + Assert.AreEqual(DisableVerifactuQst, Question, 'Expected Verifactu disable confirmation'); + Reply := true; + end; + + [ConfirmHandler] + [Scope('OnPrem')] + procedure ConfirmVerifactuSetupHandlerNo(Question: Text[1024]; var Reply: Boolean) + begin + Assert.AreEqual(DisableVerifactuQst, Question, 'Expected Verifactu disable confirmation'); + Reply := false; + end; +} diff --git a/Apps/ES/EDocumentFormats/FacturaE/app/app.json b/Apps/ES/EDocumentFormats/FacturaE/app/app.json index 6de26c9b05..8e9409357f 100644 --- a/Apps/ES/EDocumentFormats/FacturaE/app/app.json +++ b/Apps/ES/EDocumentFormats/FacturaE/app/app.json @@ -27,7 +27,7 @@ "idRanges": [ { "from": 10772, - "to": 10776 + "to": 10775 } ], "resourceExposurePolicy": { diff --git a/Apps/ES/EDocumentFormats/FacturaE/app/src/Core/FacturaEExport.Codeunit.al b/Apps/ES/EDocumentFormats/FacturaE/app/src/Core/FacturaEExport.Codeunit.al index a6b679c76f..465666f2e9 100644 --- a/Apps/ES/EDocumentFormats/FacturaE/app/src/Core/FacturaEExport.Codeunit.al +++ b/Apps/ES/EDocumentFormats/FacturaE/app/src/Core/FacturaEExport.Codeunit.al @@ -8,8 +8,8 @@ using Microsoft.eServices.EDocument; using Microsoft.Finance.Currency; using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Finance.VAT.Reporting; -using Microsoft.Foundation.Company; using Microsoft.Foundation.Address; +using Microsoft.Foundation.Company; using Microsoft.Foundation.Period; using Microsoft.Foundation.UOM; using Microsoft.Sales.Customer; diff --git a/Apps/ES/EDocument_ES/demo data/3.Transactions/CreateDemoEDocsES.Codeunit.al b/Apps/ES/EDocument_ES/demo data/3.Transactions/CreateDemoEDocsES.Codeunit.al new file mode 100644 index 0000000000..a20af0db72 --- /dev/null +++ b/Apps/ES/EDocument_ES/demo data/3.Transactions/CreateDemoEDocsES.Codeunit.al @@ -0,0 +1,110 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.Localization; + +using Microsoft.DemoData.Common; +using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Purchases; +using Microsoft.eServices.EDocument.DemoData; +using Microsoft.eServices.EDocument.Processing.Import.Purchase; +using Microsoft.Purchases.Document; + +codeunit 10886 "Create Demo EDocs ES" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + var + ContosoInboundEDocument: Codeunit "Contoso Inbound E-Document"; + + trigger OnRun() + begin + GenerateContosoInboundEDocuments(); + end; + + procedure GetShipmentDHLInvoiceDescription(): Text[100] + var + ShipmentDHLLbl: Label 'Shipment, DHL', MaxLength = 100; + begin + exit(ShipmentDHLLbl); + end; + + local procedure GenerateContosoInboundEDocuments() + var + CreateVendor: Codeunit "Create Vendor"; + CreateESGLAccounts: Codeunit "Create ES GL Accounts"; + CreateCommonUnitOfMeasure: Codeunit "Create Common Unit Of Measure"; + CreateEDocumentMasterData: Codeunit "Create E-Document Master Data"; + CreateJobItem: Codeunit "Create Job Item"; + CreateAllocationAccountES: Codeunit "Create Allocation Account ES"; + CreateDeferralTemplate: Codeunit "Create Deferral Template"; + EDocSamplePurchaseInvoice: Codeunit "E-Doc Sample Purchase Invoice"; + AccountingServicesJanuaryLbl: Label 'Accounting support period: January', MaxLength = 100; + AccountingServicesFebruaryLbl: Label 'Accounting support period: February', MaxLength = 100; + AccountingServicesMarchLbl: Label 'Accounting support period: March', MaxLength = 100; + AccountingServicesDecemberLbl: Label 'Accounting support period: December', MaxLength = 100; + AccountingServicesMayLbl: Label 'Accounting support period: May', MaxLength = 100; + begin + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.EUGraphicDesign(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '245'); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"Allocation Account", CreateAllocationAccountES.Licenses(), + CreateAllocationAccountES.LicensesDescription(), 6, 500, CreateDeferralTemplate.DeferralCode1Y(), ''); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1419', 252); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateESGLAccounts.ProfessionalAdvisoryServices(), + AccountingServicesJanuaryLbl, 6, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1425', 798); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateESGLAccounts.ProfessionalAdvisoryServices(), + AccountingServicesFebruaryLbl, 19, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1437', 84); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateESGLAccounts.ProfessionalAdvisoryServices(), + AccountingServicesMarchLbl, 2, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1479', 672); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateESGLAccounts.ProfessionalAdvisoryServices(), + AccountingServicesMayLbl, 16, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1456', 294); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateESGLAccounts.ProfessionalAdvisoryServices(), + AccountingServicesDecemberLbl, 7, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.ExportFabrikam(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), 'F12938'); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.WholeDecafBeansColombia(), + '', 50, 5, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateJobItem.ItemConsumable(), + '', 50, 65, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateESGLAccounts.Transportation(), + GetShipmentDHLInvoiceDescription(), 1, 60, '', ''); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticWorldImporter(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '000982', 8368.5); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.SmartGrindHome(), + '', 100, 299, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.PrecisionGrindHome(), + '', 50, 199, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.Generate(); + end; + +} diff --git a/Apps/ES/EDocument_ES/demo data/3.Transactions/CreateEDocSampleInvES.Codeunit.al b/Apps/ES/EDocument_ES/demo data/3.Transactions/CreateEDocSampleInvES.Codeunit.al new file mode 100644 index 0000000000..1223aaccf6 --- /dev/null +++ b/Apps/ES/EDocument_ES/demo data/3.Transactions/CreateEDocSampleInvES.Codeunit.al @@ -0,0 +1,57 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.Localization; + +using Microsoft.DemoData.Common; +using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Purchases; +using Microsoft.eServices.EDocument.DemoData; +using Microsoft.eServices.EDocument.Processing.Import.Purchase; +using Microsoft.Purchases.Document; + +codeunit 10887 "Create E-Doc Sample Inv. ES" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + var + EDocSamplePurchaseInvoice: Codeunit "E-Doc Sample Purchase Invoice"; + CreateVendor: Codeunit "Create Vendor"; + CreateEDocumentMasterData: Codeunit "Create E-Document Master Data"; + CreateJobItem: Codeunit "Create Job Item"; + CreateCommonUnitOfMeasure: Codeunit "Create Common Unit Of Measure"; + CreateDemoEDocsES: Codeunit "Create Demo EDocs ES"; + CreateAllocationAccountES: Codeunit "Create Allocation Account ES"; + + trigger OnRun() + var + YearlyLicenstCostLbl: Label 'Yearly license cost mapped to a G/L account'; + BasicCoffeeEquipmentLbl: Label 'Basic coffee equipment mapped to vendor''s Item References'; + CoffeeBeansAndPartsLbl: Label 'Coffee beans and parts with shipping cost that needs human intervention'; + begin + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.ExportFabrikam(), '108239', CoffeeBeansAndPartsLbl); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.WholeDecafBeansColombia(), '', 50, 180, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateJobItem.ItemConsumable(), '', 50, 65, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::" ", '', CreateDemoEDocsES.GetShipmentDHLInvoiceDescription(), 1, 60, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.DomesticWorldImporter(), '108240', BasicCoffeeEquipmentLbl, 8368.5); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.SmartGrindHome(), '', 100, 299, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.PrecisionGrindHome(), '', 50, 199, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.EUGraphicDesign(), '108426', YearlyLicenstCostLbl); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::" ", '', CreateAllocationAccountES.LicensesDescription(), 1, 5000, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + end; +} diff --git a/Apps/ES/EDocument_ES/demo data/EDocDemodataES.Codeunit.al b/Apps/ES/EDocument_ES/demo data/EDocDemodataES.Codeunit.al new file mode 100644 index 0000000000..5b3eefd218 --- /dev/null +++ b/Apps/ES/EDocument_ES/demo data/EDocDemodataES.Codeunit.al @@ -0,0 +1,34 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DemoData.Localization; + +using Microsoft.DemoTool; + +codeunit 10890 "E-Doc. Demodata ES" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Contoso Demo Tool", 'OnAfterGeneratingDemoData', '', false, false)] + local procedure LocalizationContosoDemoData(Module: Enum "Contoso Demo Data Module"; ContosoDemoDataLevel: Enum "Contoso Demo Data Level") + begin + if Module <> Enum::"Contoso Demo Data Module"::"E-Document Contoso Module" then + exit; + EDocumentModule(ContosoDemoDataLevel); + end; + + local procedure EDocumentModule(ContosoDemoDataLevel: Enum "Contoso Demo Data Level") + begin + case ContosoDemoDataLevel of + Enum::"Contoso Demo Data Level"::"Transactional Data": + begin + Codeunit.Run(Codeunit::"Create Demo EDocs ES"); + Codeunit.Run(Codeunit::"Create E-Doc Sample Inv. ES"); + end; + end; + end; +} diff --git a/Apps/ES/EDocument_ES/demo data/ExtensionLogo.png b/Apps/ES/EDocument_ES/demo data/ExtensionLogo.png new file mode 100644 index 0000000000..79a3aa399d Binary files /dev/null and b/Apps/ES/EDocument_ES/demo data/ExtensionLogo.png differ diff --git a/Apps/ES/EDocument_ES/demo data/app.json b/Apps/ES/EDocument_ES/demo data/app.json new file mode 100644 index 0000000000..69e4480bff --- /dev/null +++ b/Apps/ES/EDocument_ES/demo data/app.json @@ -0,0 +1,58 @@ +{ + "id": "f3e4e6f8-2ba7-4202-834d-141ed9b89192", + "name": "E-Document Core Demo Data (ES)", + "publisher": "Microsoft", + "brief": "The Dynamics 365 Business Central E-Documents module enables different models of electronic invoicing, available for additional localizations.", + "description": "Business Central's E-Documents module is the foundation layer for all e-invoicing standards covering most common processes, but it can be used for other electronic documents. The module is easily extendable with the country-based e-invoicing apps. The E-Documents apps covers both sales and purchase processes and can have different lifecycles from standard invoices in Business Central.", + "version": "28.0.0.0", + "privacyStatement": "https://go.microsoft.com/fwlink/?LinkId=724009", + "EULA": "https://go.microsoft.com/fwlink/?linkid=2009120", + "help": "https://go.microsoft.com/fwlink/?linkid=2204541", + "url": "https://go.microsoft.com/fwlink/?LinkId=724011", + "logo": "ExtensionLogo.png", + "contextSensitiveHelpUrl": "https://go.microsoft.com/fwlink/?linkid=2206603", + "dependencies": [ + { + "id": "e1d97edc-c239-46b4-8d84-6368bdf67c8b", + "name": "E-Document Core", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "de0dddf3-9917-430d-8d20-6e7679a08500", + "name": "E-Document Core Demo Data", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "5a0b41e9-7a42-4123-d521-2265186cfb31", + "name": "Contoso Coffee Demo Dataset", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "5b0a41a1-7b42-4123-a521-2265186cfb31", + "name": "Contoso Coffee Demo Dataset (ES)", + "publisher": "Microsoft", + "version": "28.0.0.0" + } + ], + "screenshots": [], + "platform": "28.0.0.0", + "idRanges": [ + { + "from": 10886, + "to": 10890 + } + ], + "resourceExposurePolicy": { + "allowDebugging": true, + "allowDownloadingSource": true, + "includeSourceInSymbolFile": true + }, + "application": "28.0.0.0", + "target": "OnPrem", + "features": [ + "TranslationFile" + ] +} diff --git a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/FIContosoLocalization.Codeunit.al b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/FIContosoLocalization.Codeunit.al index 86f1b5f0af..6e2737eb2a 100644 --- a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/FIContosoLocalization.Codeunit.al +++ b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/FIContosoLocalization.Codeunit.al @@ -5,15 +5,15 @@ namespace Microsoft.DemoData.Localization; -using Microsoft.DemoTool; -using Microsoft.DemoData.Finance; -using Microsoft.DemoData.Inventory; using Microsoft.DemoData.Bank; -using Microsoft.DemoData.HumanResources; -using Microsoft.DemoData.Sales; -using Microsoft.DemoData.Purchases; +using Microsoft.DemoData.Finance; using Microsoft.DemoData.FixedAsset; using Microsoft.DemoData.Foundation; +using Microsoft.DemoData.HumanResources; +using Microsoft.DemoData.Inventory; +using Microsoft.DemoData.Purchases; +using Microsoft.DemoData.Sales; +using Microsoft.DemoTool; codeunit 13414 "FI Contoso Localization" { diff --git a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Finance/1.Setup Data/CreateResourceFI.Codeunit.al b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Finance/1.Setup Data/CreateResourceFI.Codeunit.al index 2a01265411..dd2d2cc021 100644 --- a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Finance/1.Setup Data/CreateResourceFI.Codeunit.al +++ b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Finance/1.Setup Data/CreateResourceFI.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Projects.Resources.Resource; using Microsoft.DemoTool.Helpers; +using Microsoft.Projects.Resources.Resource; codeunit 13434 "Create Resource FI" { diff --git a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Finance/1.Setup Data/CreateVATSetupPostingGrpFI.Codeunit.al b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Finance/1.Setup Data/CreateVATSetupPostingGrpFI.Codeunit.al index e90bbffa80..945e34eb29 100644 --- a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Finance/1.Setup Data/CreateVATSetupPostingGrpFI.Codeunit.al +++ b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Finance/1.Setup Data/CreateVATSetupPostingGrpFI.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.VAT.Setup; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.VAT.Setup; codeunit 13449 "Create VATSetupPostingGrp. FI" { diff --git a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Finance/1.Setup Data/CreateVatPostingGroupsFI.Codeunit.al b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Finance/1.Setup Data/CreateVatPostingGroupsFI.Codeunit.al index a8971423c0..98cf52fa56 100644 --- a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Finance/1.Setup Data/CreateVatPostingGroupsFI.Codeunit.al +++ b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Finance/1.Setup Data/CreateVatPostingGroupsFI.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; using Microsoft.Finance.VAT.Setup; using Microsoft.Foundation.Enums; -using Microsoft.DemoTool.Helpers; codeunit 13429 "Create Vat Posting Groups FI" { diff --git a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Finance/2.Master Data/CreateFIGLAccounts.Codeunit.al b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Finance/2.Master Data/CreateFIGLAccounts.Codeunit.al index e44f75e5be..55090d0ea9 100644 --- a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Finance/2.Master Data/CreateFIGLAccounts.Codeunit.al +++ b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Finance/2.Master Data/CreateFIGLAccounts.Codeunit.al @@ -5,16 +5,16 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.DemoTool.Helpers; -using Microsoft.Finance.GeneralLedger.Account; -using Microsoft.Inventory.Setup; using Microsoft.DemoData.Common; -using Microsoft.DemoData.Service; -using Microsoft.DemoData.Manufacturing; using Microsoft.DemoData.FixedAsset; using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Manufacturing; +using Microsoft.DemoData.Service; +using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Foundation.Enums; +using Microsoft.Inventory.Setup; codeunit 13405 "Create FI GL Accounts" { diff --git a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/FixedAsset/1.Setup Data/CreateFAPostingGrpFI.Codeunit.al b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/FixedAsset/1.Setup Data/CreateFAPostingGrpFI.Codeunit.al index bf1827f1de..cc359e7ebc 100644 --- a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/FixedAsset/1.Setup Data/CreateFAPostingGrpFI.Codeunit.al +++ b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/FixedAsset/1.Setup Data/CreateFAPostingGrpFI.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.FixedAsset; -using Microsoft.FixedAssets.FixedAsset; using Microsoft.DemoData.Finance; +using Microsoft.FixedAssets.FixedAsset; codeunit 13445 "Create FA Posting Grp. FI" { diff --git a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Inventory/2.Master Data/CreateInvPostingSetupFI.Codeunit.al b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Inventory/2.Master Data/CreateInvPostingSetupFI.Codeunit.al index a13568d37f..f709f58425 100644 --- a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Inventory/2.Master Data/CreateInvPostingSetupFI.Codeunit.al +++ b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Inventory/2.Master Data/CreateInvPostingSetupFI.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Item; using Microsoft.DemoData.Finance; +using Microsoft.Inventory.Item; codeunit 13426 "Create Inv. Posting Setup FI" { diff --git a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Inventory/2.Master Data/CreateLocationFI.Codeunit.al b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Inventory/2.Master Data/CreateLocationFI.Codeunit.al index 3b2100bbf4..1d6ff8f701 100644 --- a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Inventory/2.Master Data/CreateLocationFI.Codeunit.al +++ b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Inventory/2.Master Data/CreateLocationFI.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Location; using Microsoft.DemoData.Foundation; +using Microsoft.Inventory.Location; codeunit 13427 "Create Location FI" { diff --git a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Purchases/1.Setup Data/CreateVendorPostingGroupFI.Codeunit.al b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Purchases/1.Setup Data/CreateVendorPostingGroupFI.Codeunit.al index 45525e3b99..dedf94bbde 100644 --- a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Purchases/1.Setup Data/CreateVendorPostingGroupFI.Codeunit.al +++ b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Purchases/1.Setup Data/CreateVendorPostingGroupFI.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; using Microsoft.DemoData.Finance; +using Microsoft.Purchases.Vendor; codeunit 13440 "Create Vendor Posting Group FI" { diff --git a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Purchases/2.Master Data/CreatePurchDimValueFI.Codeunit.al b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Purchases/2.Master Data/CreatePurchDimValueFI.Codeunit.al index d2fa130b0b..00631b7934 100644 --- a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Purchases/2.Master Data/CreatePurchDimValueFI.Codeunit.al +++ b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Purchases/2.Master Data/CreatePurchDimValueFI.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Finance.Dimension; using Microsoft.DemoData.Finance; +using Microsoft.Finance.Dimension; using Microsoft.Purchases.Vendor; codeunit 13418 "Create Purch. Dim. Value FI" diff --git a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Purchases/2.Master Data/CreateVendorFI.Codeunit.al b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Purchases/2.Master Data/CreateVendorFI.Codeunit.al index 075c2a5d3c..f3a996c5f3 100644 --- a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Purchases/2.Master Data/CreateVendorFI.Codeunit.al +++ b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Purchases/2.Master Data/CreateVendorFI.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; using Microsoft.DemoData.Foundation; +using Microsoft.Purchases.Vendor; codeunit 13419 "Create Vendor FI" { diff --git a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Purchases/Transactional Data/CreatePurchaseOrderFI.Codeunit.al b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Purchases/Transactional Data/CreatePurchaseOrderFI.Codeunit.al index e854187633..8fe4af53b5 100644 --- a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Purchases/Transactional Data/CreatePurchaseOrderFI.Codeunit.al +++ b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Purchases/Transactional Data/CreatePurchaseOrderFI.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Document; using Microsoft.DemoData.Foundation; +using Microsoft.Purchases.Document; codeunit 13435 "Create Purchase Order FI" { diff --git a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/1.Setup Data/CreateCustPostingGroupFI.Codeunit.al b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/1.Setup Data/CreateCustPostingGroupFI.Codeunit.al index 110f64d6d4..639e1db40f 100644 --- a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/1.Setup Data/CreateCustPostingGroupFI.Codeunit.al +++ b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/1.Setup Data/CreateCustPostingGroupFI.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoData.Finance; +using Microsoft.Sales.Customer; codeunit 13455 "Create Cust. Posting Group FI" { diff --git a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/2.Master Data/CreateCustomerFI.Codeunit.al b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/2.Master Data/CreateCustomerFI.Codeunit.al index 95600a47d7..f6e6c05af9 100644 --- a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/2.Master Data/CreateCustomerFI.Codeunit.al +++ b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/2.Master Data/CreateCustomerFI.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoData.Foundation; +using Microsoft.Sales.Customer; codeunit 13442 "Create Customer FI" { diff --git a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/2.Master Data/CreateSalesDimValueFI.Codeunit.al b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/2.Master Data/CreateSalesDimValueFI.Codeunit.al index d50a721481..ede5dc62c0 100644 --- a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/2.Master Data/CreateSalesDimValueFI.Codeunit.al +++ b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/2.Master Data/CreateSalesDimValueFI.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Finance.Dimension; using Microsoft.DemoData.Finance; +using Microsoft.Finance.Dimension; using Microsoft.Sales.Customer; codeunit 13416 "Create Sales Dim Value FI" diff --git a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/2.Master Data/CreateShiptoAddressFI.Codeunit.al b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/2.Master Data/CreateShiptoAddressFI.Codeunit.al index 8e35f24024..75591a8b17 100644 --- a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/2.Master Data/CreateShiptoAddressFI.Codeunit.al +++ b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/2.Master Data/CreateShiptoAddressFI.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoTool; +using Microsoft.Sales.Customer; codeunit 13417 "Create Ship-to Address FI" { diff --git a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/3.Transaction Data/CreateSalesDocumentFI.Codeunit.al b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/3.Transaction Data/CreateSalesDocumentFI.Codeunit.al index 8f32c8a7e8..608990a496 100644 --- a/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/3.Transaction Data/CreateSalesDocumentFI.Codeunit.al +++ b/Apps/FI/ContosoCoffeeDemoDatasetFI/app/DemoData/Sales/3.Transaction Data/CreateSalesDocumentFI.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Document; using Microsoft.DemoData.Foundation; +using Microsoft.Sales.Document; codeunit 13446 "Create Sales Document FI" { diff --git a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/ContosoFRLocalization.Codeunit.al b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/ContosoFRLocalization.Codeunit.al index 406f611296..0fea8b4efa 100644 --- a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/ContosoFRLocalization.Codeunit.al +++ b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/ContosoFRLocalization.Codeunit.al @@ -5,15 +5,15 @@ namespace Microsoft.DemoData.Localization; -using Microsoft.DemoData.Inventory; -using Microsoft.DemoData.Purchases; -using Microsoft.DemoData.Sales; -using Microsoft.DemoTool; -using Microsoft.DemoData.Finance; using Microsoft.DemoData.Bank; +using Microsoft.DemoData.Finance; using Microsoft.DemoData.FixedAsset; using Microsoft.DemoData.Foundation; using Microsoft.DemoData.HumanResources; +using Microsoft.DemoData.Inventory; +using Microsoft.DemoData.Purchases; +using Microsoft.DemoData.Sales; +using Microsoft.DemoTool; codeunit 10864 "Contoso FR Localization" { @@ -88,6 +88,7 @@ codeunit 10864 "Contoso FR Localization" begin Codeunit.Run(Codeunit::"Create Currency Exc. Rate FR"); Codeunit.Run(Codeunit::"Create Column Layout FR"); + Codeunit.Run(Codeunit::"Create Allocation Account FR"); end; end; end; diff --git a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/CreateFRGLAccounts.Codeunit.al b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/CreateFRGLAccounts.Codeunit.al index 176931f5fd..75f0161523 100644 --- a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/CreateFRGLAccounts.Codeunit.al +++ b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/CreateFRGLAccounts.Codeunit.al @@ -5,14 +5,14 @@ namespace Microsoft.DemoData.Localization; -using Microsoft.Inventory.Setup; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Common; -using Microsoft.DemoData.Service; -using Microsoft.DemoData.Manufacturing; using Microsoft.DemoData.FixedAsset; using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Manufacturing; +using Microsoft.DemoData.Service; +using Microsoft.DemoTool.Helpers; +using Microsoft.Inventory.Setup; codeunit 10850 "Create FR GL Accounts" { diff --git a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Finance/1. Setup Data/CreateGLAccountFR.Codeunit.al b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Finance/1. Setup Data/CreateGLAccountFR.Codeunit.al index fd47c3bf81..8529723400 100644 --- a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Finance/1. Setup Data/CreateGLAccountFR.Codeunit.al +++ b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Finance/1. Setup Data/CreateGLAccountFR.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.GeneralLedger.Account; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Foundation.Enums; codeunit 10863 "Create GL Account FR" diff --git a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Finance/1. Setup Data/CreatePostingGroupFR.Codeunit.al b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Finance/1. Setup Data/CreatePostingGroupFR.Codeunit.al index 5451c53ca7..ba29ea70a6 100644 --- a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Finance/1. Setup Data/CreatePostingGroupFR.Codeunit.al +++ b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Finance/1. Setup Data/CreatePostingGroupFR.Codeunit.al @@ -22,6 +22,7 @@ codeunit 10868 "Create Posting Group FR" ContosoPostingGrpFR: Codeunit "Contoso Posting Grp FR"; CreatePostingGroup: Codeunit "Create Posting Groups"; CreateGLAccount: Codeunit "Create G/L Account"; + ContosoGenPostingSetup: Codeunit "Contoso Posting Setup"; begin ContosoPostingGrpFR.validatePostingAccount('', CreatePostingGroup.RetailPostingGroup(), '', '', CreateGLAccount.InventoryAdjmtRetail(), CreateGLAccount.InventoryAdjmtRetail(), '', '', '', '', '', '', CreateGLAccount.CostOfRetailSold(), CreateGLAccount.CostOfResaleSoldInterim(), CreateGLAccount.InvAdjmtInterimRetail(), '', ''); ContosoPostingGrpFR.validatePostingAccount('', CreatePostingGroup.ZeroPostingGroup(), '', '', CreateGLAccount.InventoryAdjmtRetail(), CreateGLAccount.InventoryAdjmtRetail(), '', '', '', '', '', '', CreateGLAccount.CostOfRetailSold(), CreateGLAccount.CostOfResaleSoldInterim(), CreateGLAccount.InvAdjmtInterimRetail(), '', ''); @@ -34,5 +35,10 @@ codeunit 10868 "Create Posting Group FR" ContosoPostingGrpFR.validatePostingAccount(CreatePostingGroup.ExportPostingGroup(), CreatePostingGroup.RetailPostingGroup(), CreateGLAccount.SalesRetailExport(), CreateGLAccount.PurchRetailExport(), CreateGLAccount.InventoryAdjmtRetail(), CreateGLAccount.InventoryAdjmtRetail(), '', '', CreateGLAccount.DiscountGranted(), CreateGLAccount.DiscountGranted(), CreateGLAccount.DiscReceivedRetail(), CreateGLAccount.DiscReceivedRetail(), CreateGLAccount.CostOfRetailSold(), CreateGLAccount.CostOfResaleSoldInterim(), CreateGLAccount.InvAdjmtInterimRetail(), CreateGLAccount.SalesRetailExport(), CreateGLAccount.PurchRetailExport()); ContosoPostingGrpFR.validatePostingAccount(CreatePostingGroup.ExportPostingGroup(), CreatePostingGroup.ServicesPostingGroup(), CreateGLAccount.SalesResourcesExport(), CreateGLAccount.PurchRetailExport(), CreateGLAccount.InventoryAdjmtRetail(), CreateGLAccount.InventoryAdjmtRetail(), '', '', CreateGLAccount.DiscountGranted(), CreateGLAccount.DiscountGranted(), CreateGLAccount.DiscReceivedRetail(), CreateGLAccount.DiscReceivedRetail(), CreateGLAccount.CostOfRetailSold(), CreateGLAccount.CostOfResaleSoldInterim(), CreateGLAccount.InvAdjmtInterimRetail(), CreateGLAccount.SalesResourcesExport(), CreateGLAccount.PurchRetailExport()); ContosoPostingGrpFR.validatePostingAccount(CreatePostingGroup.ExportPostingGroup(), CreatePostingGroup.ZeroPostingGroup(), CreateGLAccount.SalesRetailExport(), CreateGLAccount.PurchRetailExport(), CreateGLAccount.InventoryAdjmtRetail(), CreateGLAccount.InventoryAdjmtRetail(), '', '', CreateGLAccount.DiscountGranted(), CreateGLAccount.DiscountGranted(), CreateGLAccount.DiscReceivedRetail(), CreateGLAccount.DiscReceivedRetail(), CreateGLAccount.CostOfRetailSold(), CreateGLAccount.CostOfResaleSoldInterim(), CreateGLAccount.InvAdjmtInterimRetail(), CreateGLAccount.SalesRetailExport(), CreateGLAccount.PurchRetailExport()); + + ContosoGenPostingSetup.InsertGeneralPostingSetup('', CreatePostingGroup.MiscPostingGroup(), '', '', CreateGLAccount.InventoryAdjmtRetail(), CreateGLAccount.InventoryAdjmtRetail(), '', '', '', '', '', '', CreateGLAccount.CostofRetailSold(), CreateGLAccount.CostofResaleSoldInterim(), CreateGLAccount.InvAdjmtInterimRetail()); + ContosoGenPostingSetup.InsertGeneralPostingSetup(CreatePostingGroup.DomesticPostingGroup(), CreatePostingGroup.MiscPostingGroup(), CreateGLAccount.SalesRetailDom(), CreateGLAccount.PurchRetailDom(), CreateGLAccount.InventoryAdjmtRetail(), CreateGLAccount.InventoryAdjmtRetail(), '', '', CreateGLAccount.DiscountGranted(), CreateGLAccount.DiscountGranted(), CreateGLAccount.DiscReceivedRetail(), CreateGLAccount.DiscReceivedRetail(), CreateGLAccount.CostOfRetailSold(), CreateGLAccount.CostOfResaleSoldInterim(), CreateGLAccount.InvAdjmtInterimRetail()); + ContosoGenPostingSetup.InsertGeneralPostingSetup(CreatePostingGroup.EUPostingGroup(), CreatePostingGroup.MiscPostingGroup(), CreateGLAccount.SalesRetailEu(), CreateGLAccount.PurchRetailEu(), CreateGLAccount.InventoryAdjmtRetail(), CreateGLAccount.InventoryAdjmtRetail(), '', '', CreateGLAccount.DiscountGranted(), CreateGLAccount.DiscountGranted(), CreateGLAccount.DiscReceivedRetail(), CreateGLAccount.DiscReceivedRetail(), CreateGLAccount.CostOfRetailSold(), CreateGLAccount.CostOfResaleSoldInterim(), CreateGLAccount.InvAdjmtInterimRetail()); + ContosoGenPostingSetup.InsertGeneralPostingSetup(CreatePostingGroup.ExportPostingGroup(), CreatePostingGroup.MiscPostingGroup(), CreateGLAccount.SalesRetailExport(), CreateGLAccount.PurchRetailExport(), CreateGLAccount.InventoryAdjmtRetail(), CreateGLAccount.InventoryAdjmtRetail(), '', '', CreateGLAccount.DiscountGranted(), CreateGLAccount.DiscountGranted(), CreateGLAccount.DiscReceivedRetail(), CreateGLAccount.DiscReceivedRetail(), CreateGLAccount.CostOfRetailSold(), CreateGLAccount.CostOfResaleSoldInterim(), CreateGLAccount.InvAdjmtInterimRetail()); end; } diff --git a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Finance/1. Setup Data/CreateVATPostingGrpFR.Codeunit.al b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Finance/1. Setup Data/CreateVATPostingGrpFR.Codeunit.al index 66a4129da9..f1c27c0b9d 100644 --- a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Finance/1. Setup Data/CreateVATPostingGrpFR.Codeunit.al +++ b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Finance/1. Setup Data/CreateVATPostingGrpFR.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Finance; -using Microsoft.Finance.VAT.Setup; using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.VAT.Setup; codeunit 10869 "Create VAT Posting Grp FR" { diff --git a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Finance/2. Master Data/CreateAllocationAccountFR.Codeunit.al b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Finance/2. Master Data/CreateAllocationAccountFR.Codeunit.al new file mode 100644 index 0000000000..0c1334eb4d --- /dev/null +++ b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Finance/2. Master Data/CreateAllocationAccountFR.Codeunit.al @@ -0,0 +1,48 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DemoData.Finance; + +using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.AllocationAccount; + +codeunit 10950 "Create Allocation Account FR" +{ + InherentEntitlements = X; + InherentPermissions = X; + + trigger OnRun() + var + AllocationAccount: Record "Allocation Account"; + AllocAccountDistribution: Record "Alloc. Account Distribution"; + ContosoAllocationAccount: Codeunit "Contoso Allocation Account"; + CreateDimensionValue: Codeunit "Create Dimension Value"; + CreateGLAccount: Codeunit "Create G/L Account"; + begin + ContosoAllocationAccount.InsertAllocationAccount( + Licenses(), LicensesDescription(), + AllocationAccount."Account Type"::Fixed, AllocationAccount."Document Lines Split"::"Split Amount"); + ContosoAllocationAccount.InsertAllocationAccountDistribution( + Licenses(), 10000, AllocAccountDistribution."Account Type"::Fixed, 1, 50, + AllocAccountDistribution."Destination Account Type"::"G/L Account", CreateGLAccount.Software(), CreateDimensionValue.AdministrationDepartment(), ''); + ContosoAllocationAccount.InsertAllocationAccountDistribution( + Licenses(), 20000, AllocAccountDistribution."Account Type"::Fixed, 1, 50, + AllocAccountDistribution."Destination Account Type"::"G/L Account", CreateGLAccount.Software(), CreateDimensionValue.SalesDepartment(), ''); + end; + + procedure Licenses(): Code[20] + begin + exit(LicensesTok); + end; + + procedure LicensesDescription(): Text[100] + begin + exit(YearlyLicenseFeeTok); + end; + + var + LicensesTok: Label 'LICENSES', MaxLength = 20; + YearlyLicenseFeeTok: Label 'Yearly license fee, design software', MaxLength = 100; +} diff --git a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/FixedAsset/1. Setup Data/CreateFAPostingGrpFR.Codeunit.al b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/FixedAsset/1. Setup Data/CreateFAPostingGrpFR.Codeunit.al index 04c94d090b..2010da8a25 100644 --- a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/FixedAsset/1. Setup Data/CreateFAPostingGrpFR.Codeunit.al +++ b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/FixedAsset/1. Setup Data/CreateFAPostingGrpFR.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.FixedAsset; -using Microsoft.FixedAssets.FixedAsset; using Microsoft.DemoData.Finance; +using Microsoft.FixedAssets.FixedAsset; codeunit 10876 "Create FA Posting Grp. FR" { diff --git a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/HumanResources/1. Setup Data/CreateEmplPostingGroupFR.Codeunit.al b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/HumanResources/1. Setup Data/CreateEmplPostingGroupFR.Codeunit.al index 9c9c776070..af1a49e1a6 100644 --- a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/HumanResources/1. Setup Data/CreateEmplPostingGroupFR.Codeunit.al +++ b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/HumanResources/1. Setup Data/CreateEmplPostingGroupFR.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.HumanResources; -using Microsoft.HumanResources.Employee; using Microsoft.DemoData.Finance; +using Microsoft.HumanResources.Employee; codeunit 10899 "Create Empl. Posting Group FR" { diff --git a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Inventory/1. Setup Data/CreateInvPostingSetupFR.Codeunit.al b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Inventory/1. Setup Data/CreateInvPostingSetupFR.Codeunit.al index e707af80e7..4b2a2f3c00 100644 --- a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Inventory/1. Setup Data/CreateInvPostingSetupFR.Codeunit.al +++ b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Inventory/1. Setup Data/CreateInvPostingSetupFR.Codeunit.al @@ -6,8 +6,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; codeunit 10877 "Create Inv. Posting Setup FR" { diff --git a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Inventory/1. Setup Data/CreateLocationFR.Codeunit.al b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Inventory/1. Setup Data/CreateLocationFR.Codeunit.al index c27146cbd8..9509c1b61b 100644 --- a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Inventory/1. Setup Data/CreateLocationFR.Codeunit.al +++ b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Inventory/1. Setup Data/CreateLocationFR.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Inventory; -using Microsoft.Inventory.Location; using Microsoft.DemoData.Foundation; +using Microsoft.Inventory.Location; codeunit 10878 "Create Location FR" { diff --git a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Purchases/1. Setup Data/CreateVendorPostingGrpFR.Codeunit.al b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Purchases/1. Setup Data/CreateVendorPostingGrpFR.Codeunit.al index 5c6760be60..b02569d258 100644 --- a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Purchases/1. Setup Data/CreateVendorPostingGrpFR.Codeunit.al +++ b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Purchases/1. Setup Data/CreateVendorPostingGrpFR.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; +using Microsoft.Purchases.Vendor; codeunit 10901 "Create Vendor Posting Grp FR" { diff --git a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Purchases/2. Master Data/CreatePurchDimValueFR.Codeunit.al b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Purchases/2. Master Data/CreatePurchDimValueFR.Codeunit.al index 9d8cea5ab8..4fef65a9b3 100644 --- a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Purchases/2. Master Data/CreatePurchDimValueFR.Codeunit.al +++ b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Purchases/2. Master Data/CreatePurchDimValueFR.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Finance.Dimension; using Microsoft.DemoData.Finance; +using Microsoft.Finance.Dimension; using Microsoft.Purchases.Vendor; codeunit 10882 "Create Purch. Dim. Value FR" diff --git a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Purchases/2. Master Data/CreateVendorFR.Codeunit.al b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Purchases/2. Master Data/CreateVendorFR.Codeunit.al index 2ee65dd105..38a967ed93 100644 --- a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Purchases/2. Master Data/CreateVendorFR.Codeunit.al +++ b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Purchases/2. Master Data/CreateVendorFR.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Purchases; -using Microsoft.Purchases.Vendor; using Microsoft.DemoTool; +using Microsoft.Purchases.Vendor; codeunit 10883 "Create Vendor FR" { diff --git a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Sales/1. Setup Data/CreateCustPostingGrpFR.Codeunit.al b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Sales/1. Setup Data/CreateCustPostingGrpFR.Codeunit.al index 45154988a5..dbe1ede85f 100644 --- a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Sales/1. Setup Data/CreateCustPostingGrpFR.Codeunit.al +++ b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Sales/1. Setup Data/CreateCustPostingGrpFR.Codeunit.al @@ -5,9 +5,9 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; -using Microsoft.DemoTool.Helpers; using Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; +using Microsoft.Sales.Customer; codeunit 10884 "Create Cust. Posting Grp FR" { diff --git a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Sales/2. Master Data/CreateCustomerFR.Codeunit.al b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Sales/2. Master Data/CreateCustomerFR.Codeunit.al index 097e569209..b4fa3f160f 100644 --- a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Sales/2. Master Data/CreateCustomerFR.Codeunit.al +++ b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Sales/2. Master Data/CreateCustomerFR.Codeunit.al @@ -5,10 +5,10 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; -using Microsoft.DemoTool; using Microsoft.DemoData.Foundation; using Microsoft.DemoData.Purchases; +using Microsoft.DemoTool; +using Microsoft.Sales.Customer; codeunit 10886 "Create Customer FR" { diff --git a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Sales/2. Master Data/CreateSalesDimValueFR.Codeunit.al b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Sales/2. Master Data/CreateSalesDimValueFR.Codeunit.al index eca69d67cc..a3b37a0482 100644 --- a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Sales/2. Master Data/CreateSalesDimValueFR.Codeunit.al +++ b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Sales/2. Master Data/CreateSalesDimValueFR.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Finance.Dimension; using Microsoft.DemoData.Finance; +using Microsoft.Finance.Dimension; using Microsoft.Sales.Customer; codeunit 10887 "Create Sales Dim Value FR" diff --git a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Sales/2. Master Data/CreateShipToAddressFR.Codeunit.al b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Sales/2. Master Data/CreateShipToAddressFR.Codeunit.al index 80b871b2e5..7d3550562a 100644 --- a/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Sales/2. Master Data/CreateShipToAddressFR.Codeunit.al +++ b/Apps/FR/ContosoCoffeeDemoDatasetFR/app/DemoData/Sales/2. Master Data/CreateShipToAddressFR.Codeunit.al @@ -5,8 +5,8 @@ namespace Microsoft.DemoData.Sales; -using Microsoft.Sales.Customer; using Microsoft.DemoTool; +using Microsoft.Sales.Customer; codeunit 10888 "Create Ship-to Address FR" { diff --git a/Apps/FR/EDocument_FR/demo data/3.Transactions/CreateDemoEDocsFR.Codeunit.al b/Apps/FR/EDocument_FR/demo data/3.Transactions/CreateDemoEDocsFR.Codeunit.al new file mode 100644 index 0000000000..70a60bcda6 --- /dev/null +++ b/Apps/FR/EDocument_FR/demo data/3.Transactions/CreateDemoEDocsFR.Codeunit.al @@ -0,0 +1,111 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.Localization; + +using Microsoft.DemoData.Common; +using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Purchases; +using Microsoft.eServices.EDocument.DemoData; +using Microsoft.eServices.EDocument.Processing.Import.Purchase; +using Microsoft.Purchases.Document; + +codeunit 10911 "Create Demo EDocs FR" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + var + ContosoInboundEDocument: Codeunit "Contoso Inbound E-Document"; + + trigger OnRun() + begin + GenerateContosoInboundEDocuments(); + end; + + procedure GetShipmentDHLInvoiceDescription(): Text[100] + var + ShipmentDHLLbl: Label 'Shipment, DHL', MaxLength = 100; + begin + exit(ShipmentDHLLbl); + end; + + local procedure GenerateContosoInboundEDocuments() + var + CreateVendor: Codeunit "Create Vendor"; + CreateGLAccount: Codeunit "Create G/L Account"; + CreateGLAccountFR: Codeunit "Create GL Account FR"; + CreateCommonUnitOfMeasure: Codeunit "Create Common Unit Of Measure"; + CreateEDocumentMasterData: Codeunit "Create E-Document Master Data"; + CreateJobItem: Codeunit "Create Job Item"; + CreateAllocationAccountFR: Codeunit "Create Allocation Account FR"; + CreateDeferralTemplate: Codeunit "Create Deferral Template"; + EDocSamplePurchaseInvoice: Codeunit "E-Doc Sample Purchase Invoice"; + AccountingServicesJanuaryLbl: Label 'Accounting support period: January', MaxLength = 100; + AccountingServicesFebruaryLbl: Label 'Accounting support period: February', MaxLength = 100; + AccountingServicesMarchLbl: Label 'Accounting support period: March', MaxLength = 100; + AccountingServicesDecemberLbl: Label 'Accounting support period: December', MaxLength = 100; + AccountingServicesMayLbl: Label 'Accounting support period: May', MaxLength = 100; + begin + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.EUGraphicDesign(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '245', 0); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"Allocation Account", CreateAllocationAccountFR.Licenses(), + CreateAllocationAccountFR.LicensesDescription(), 6, 500, CreateDeferralTemplate.DeferralCode1Y(), ''); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1419', 240); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccount.LegalAndAccountingServices(), + AccountingServicesJanuaryLbl, 6, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1425', 760); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccount.LegalAndAccountingServices(), + AccountingServicesFebruaryLbl, 19, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1437', 80); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccount.LegalAndAccountingServices(), + AccountingServicesMarchLbl, 2, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1479', 640); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccount.LegalAndAccountingServices(), + AccountingServicesMayLbl, 16, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticFirstUp(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '1456', 280); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccount.LegalAndAccountingServices(), + AccountingServicesDecemberLbl, 7, 200, '', CreateCommonUnitOfMeasure.Hour()); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.ExportFabrikam(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), 'F12938', 0); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.WholeDecafBeansColombia(), + '', 50, 5, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateJobItem.ItemConsumable(), + '', 50, 65, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::"G/L Account", CreateGLAccountFR.TransportsOnPurchases(), + GetShipmentDHLInvoiceDescription(), 1, 60, '', ''); + ContosoInboundEDocument.Generate(); + + ContosoInboundEDocument.AddEDocPurchaseHeader(CreateVendor.DomesticWorldImporter(), EDocSamplePurchaseInvoice.GetSampleInvoicePostingDate(), '000982', 7970); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.SmartGrindHome(), + '', 100, 299, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.AddEDocPurchaseLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.PrecisionGrindHome(), + '', 50, 199, '', CreateCommonUnitOfMeasure.Piece()); + ContosoInboundEDocument.Generate(); + end; + +} diff --git a/Apps/FR/EDocument_FR/demo data/3.Transactions/CreateEDocSampleInvFR.Codeunit.al b/Apps/FR/EDocument_FR/demo data/3.Transactions/CreateEDocSampleInvFR.Codeunit.al new file mode 100644 index 0000000000..ce4421299e --- /dev/null +++ b/Apps/FR/EDocument_FR/demo data/3.Transactions/CreateEDocSampleInvFR.Codeunit.al @@ -0,0 +1,57 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.Localization; + +using Microsoft.DemoData.Common; +using Microsoft.DemoData.Finance; +using Microsoft.DemoData.Jobs; +using Microsoft.DemoData.Purchases; +using Microsoft.eServices.EDocument.DemoData; +using Microsoft.eServices.EDocument.Processing.Import.Purchase; +using Microsoft.Purchases.Document; + +codeunit 10912 "Create E-Doc Sample Inv. FR" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + var + EDocSamplePurchaseInvoice: Codeunit "E-Doc Sample Purchase Invoice"; + CreateVendor: Codeunit "Create Vendor"; + CreateEDocumentMasterData: Codeunit "Create E-Document Master Data"; + CreateJobItem: Codeunit "Create Job Item"; + CreateCommonUnitOfMeasure: Codeunit "Create Common Unit Of Measure"; + CreateDemoEDocsFR: Codeunit "Create Demo EDocs FR"; + CreateAllocationAccountFR: Codeunit "Create Allocation Account FR"; + + trigger OnRun() + var + YearlyLicenstCostLbl: Label 'Yearly license cost mapped to a G/L account'; + BasicCoffeeEquipmentLbl: Label 'Basic coffee equipment mapped to vendor''s Item References'; + CoffeeBeansAndPartsLbl: Label 'Coffee beans and parts with shipping cost that needs human intervention'; + begin + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.ExportFabrikam(), '108239', CoffeeBeansAndPartsLbl); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.WholeDecafBeansColombia(), '', 50, 180, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateJobItem.ItemConsumable(), '', 50, 65, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::" ", '', CreateDemoEDocsFR.GetShipmentDHLInvoiceDescription(), 1, 60, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.DomesticWorldImporter(), '108240', BasicCoffeeEquipmentLbl, 7970); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.SmartGrindHome(), '', 100, 299, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::Item, CreateEDocumentMasterData.PrecisionGrindHome(), '', 50, 199, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + + EDocSamplePurchaseInvoice.AddInvoice(CreateVendor.EUGraphicDesign(), '108426', YearlyLicenstCostLbl); + EDocSamplePurchaseInvoice.AddLine( + Enum::"Purchase Line Type"::" ", '', CreateAllocationAccountFR.LicensesDescription(), 1, 5000, '', CreateCommonUnitOfMeasure.Piece()); + EDocSamplePurchaseInvoice.Generate(); + end; +} diff --git a/Apps/FR/EDocument_FR/demo data/EDocDemodataFR.Codeunit.al b/Apps/FR/EDocument_FR/demo data/EDocDemodataFR.Codeunit.al new file mode 100644 index 0000000000..f72a67fbfc --- /dev/null +++ b/Apps/FR/EDocument_FR/demo data/EDocDemodataFR.Codeunit.al @@ -0,0 +1,35 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DemoData.Localization; + +using Microsoft.DemoTool; + +codeunit 10914 "E-Doc. Demodata FR" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Contoso Demo Tool", 'OnAfterGeneratingDemoData', '', false, false)] + local procedure LocalizationContosoDemoData(Module: Enum "Contoso Demo Data Module"; ContosoDemoDataLevel: Enum "Contoso Demo Data Level") + begin + if Module <> Enum::"Contoso Demo Data Module"::"E-Document Contoso Module" then + exit; + EDocumentModule(ContosoDemoDataLevel); + end; + + local procedure EDocumentModule(ContosoDemoDataLevel: Enum "Contoso Demo Data Level") + begin + ContosoDemoDataLevel := ContosoDemoDataLevel; + case ContosoDemoDataLevel of + Enum::"Contoso Demo Data Level"::"Transactional Data": + begin + Codeunit.Run(Codeunit::"Create Demo EDocs FR"); + Codeunit.Run(Codeunit::"Create E-Doc Sample Inv. FR"); + end; + end; + end; +} diff --git a/Apps/FR/EDocument_FR/demo data/ExtensionLogo.png b/Apps/FR/EDocument_FR/demo data/ExtensionLogo.png new file mode 100644 index 0000000000..79a3aa399d Binary files /dev/null and b/Apps/FR/EDocument_FR/demo data/ExtensionLogo.png differ diff --git a/Apps/FR/EDocument_FR/demo data/app.json b/Apps/FR/EDocument_FR/demo data/app.json new file mode 100644 index 0000000000..9688f561fa --- /dev/null +++ b/Apps/FR/EDocument_FR/demo data/app.json @@ -0,0 +1,58 @@ +{ + "id": "f3e4e6f8-2ba7-4202-834d-141ed9b89193", + "name": "E-Document Core Demo Data (FR)", + "publisher": "Microsoft", + "brief": "The Dynamics 365 Business Central E-Documents module enables different models of electronic invoicing, available for additional localizations.", + "description": "Business Central's E-Documents module is the foundation layer for all e-invoicing standards covering most common processes, but it can be used for other electronic documents. The module is easily extendable with the country-based e-invoicing apps. The E-Documents apps covers both sales and purchase processes and can have different lifecycles from standard invoices in Business Central.", + "version": "28.0.0.0", + "privacyStatement": "https://go.microsoft.com/fwlink/?LinkId=724009", + "EULA": "https://go.microsoft.com/fwlink/?linkid=2009120", + "help": "https://go.microsoft.com/fwlink/?linkid=2204541", + "url": "https://go.microsoft.com/fwlink/?LinkId=724011", + "logo": "ExtensionLogo.png", + "contextSensitiveHelpUrl": "https://go.microsoft.com/fwlink/?linkid=2206603", + "dependencies": [ + { + "id": "e1d97edc-c239-46b4-8d84-6368bdf67c8b", + "name": "E-Document Core", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "de0dddf3-9917-430d-8d20-6e7679a08500", + "name": "E-Document Core Demo Data", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "5a0b41e9-7a42-4123-d521-2265186cfb31", + "name": "Contoso Coffee Demo Dataset", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "5b0a41a1-7b42-4123-a631-2265186cfb31", + "name": "Contoso Coffee Demo Dataset (FR)", + "publisher": "Microsoft", + "version": "28.0.0.0" + } + ], + "screenshots": [], + "platform": "28.0.0.0", + "idRanges": [ + { + "from": 10910, + "to": 10915 + } + ], + "resourceExposurePolicy": { + "allowDebugging": true, + "allowDownloadingSource": true, + "includeSourceInSymbolFile": true + }, + "application": "28.0.0.0", + "target": "OnPrem", + "features": [ + "TranslationFile" + ] +} diff --git a/Apps/FR/FAReportsFR/app/ExtensionLogo.png b/Apps/FR/FAReportsFR/app/ExtensionLogo.png new file mode 100644 index 0000000000..0ce0327e67 Binary files /dev/null and b/Apps/FR/FAReportsFR/app/ExtensionLogo.png differ diff --git a/Apps/FR/FAReportsFR/app/Permissions/FAReportsFRObjects.PermissionSet.al b/Apps/FR/FAReportsFR/app/Permissions/FAReportsFRObjects.PermissionSet.al new file mode 100644 index 0000000000..d096db28ee --- /dev/null +++ b/Apps/FR/FAReportsFR/app/Permissions/FAReportsFRObjects.PermissionSet.al @@ -0,0 +1,14 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.FixedAssets.Reports; + +permissionset 10801 "FA Reports FR - Objects" +{ + Access = Internal; + + Assignable = false; + Permissions = report "FA-Proj. Value (Derogatory) FR" = X, + report "Fixed Asset-Professional TaxFR" = X; +} \ No newline at end of file diff --git a/Apps/FR/FAReportsFR/app/app.json b/Apps/FR/FAReportsFR/app/app.json new file mode 100644 index 0000000000..ca90a2789b --- /dev/null +++ b/Apps/FR/FAReportsFR/app/app.json @@ -0,0 +1,34 @@ +{ + "id": "149048de-d5ac-466f-a22e-cfa55445b812", + "name": "FA Reports FR", + "publisher": "Microsoft", + "version": "28.0.0.0", + "brief": "First-party application for Fixed Assets Reports (FR)", + "description": "Provides Fixed Assets reports for FR localization", + "privacyStatement": "https://go.microsoft.com/fwlink/?LinkId=724009", + "EULA": "https://go.microsoft.com/fwlink/?linkid=2009120", + "help": "https://learn.microsoft.com/en-us/dynamics365/business-central/localfunctionality/france/how-to-set-up-accelerated-depreciation", + "contextSensitiveHelpUrl": "https://go.microsoft.com/fwlink/?linkid=2204541", + "url": "https://go.microsoft.com/fwlink/?LinkId=724011", + "logo": "ExtensionLogo.png", + "dependencies": [], + "screenshots": [], + "platform": "28.0.0.0", + "application": "28.0.0.0", + "idRanges": [ + { + "from": 10800, + "to": 10818 + } + ], + "resourceExposurePolicy": { + "allowDebugging": true, + "allowDownloadingSource": true, + "includeSourceInSymbolFile": true + }, + "features": [ + "NoImplicitWith", + "TranslationFile" + ], + "target": "Cloud" +} diff --git a/Apps/FR/FAReportsFR/app/src/Codeunits/FAReportsFR.Codeunit.al b/Apps/FR/FAReportsFR/app/src/Codeunits/FAReportsFR.Codeunit.al new file mode 100644 index 0000000000..e019927a6a --- /dev/null +++ b/Apps/FR/FAReportsFR/app/src/Codeunits/FAReportsFR.Codeunit.al @@ -0,0 +1,34 @@ +#if not CLEAN28 +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.FixedAssets.Reports; + +using System.Environment.Configuration; + +codeunit 10803 "FA Reports FR" +{ + Access = Internal; + InherentEntitlements = X; + InherentPermissions = X; + ObsoleteReason = 'Feature FAReportsFR will be enabled by default in version 31.0.'; + ObsoleteState = Pending; + ObsoleteTag = '28.0'; + + var + FeatureKeyIdTok: Label 'FAReportsGB', Locked = true; + + procedure IsEnabled() Enabled: Boolean + var + FeatureManagementFacade: Codeunit "Feature Management Facade"; + begin + Enabled := FeatureManagementFacade.IsEnabled(FeatureKeyIdTok); + end; + + procedure GetFeatureKeyId(): Text + begin + exit(FeatureKeyIdTok); + end; +} +#endif \ No newline at end of file diff --git a/Apps/FR/FAReportsFR/app/src/Codeunits/SubstituteReport.Codeunit.al b/Apps/FR/FAReportsFR/app/src/Codeunits/SubstituteReport.Codeunit.al new file mode 100644 index 0000000000..72e74494c5 --- /dev/null +++ b/Apps/FR/FAReportsFR/app/src/Codeunits/SubstituteReport.Codeunit.al @@ -0,0 +1,31 @@ +#if not CLEAN28 +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.FixedAssets.Reports; +using Microsoft.Foundation.Reporting; + +codeunit 10800 "Substitute Report" +{ + ObsoleteReason = 'Feature FAReportsFR will be enabled by default in version 31.0.'; + ObsoleteState = Pending; + ObsoleteTag = '28.0'; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::ReportManagement, 'OnAfterSubstituteReport', '', false, false)] + local procedure OnSubstituteReport(ReportId: Integer; var NewReportId: Integer) + var + FAReportsFR: Codeunit "FA Reports FR"; + begin + if not FAReportsFR.IsEnabled() then + exit; + + case ReportId of + Report::"FA - Proj. Value (Derogatory)": + NewReportId := Report::"FA-Proj. Value (Derogatory) FR"; + Report::"Fixed Asset-Professional Tax": + NewReportId := Report::"Fixed Asset-Professional TaxFR" + end; + end; +} +#endif \ No newline at end of file diff --git a/Apps/FR/FAReportsFR/app/src/PageExtensions/FinanceManagerRoleCenter.PageExt.al b/Apps/FR/FAReportsFR/app/src/PageExtensions/FinanceManagerRoleCenter.PageExt.al new file mode 100644 index 0000000000..b06aebca40 --- /dev/null +++ b/Apps/FR/FAReportsFR/app/src/PageExtensions/FinanceManagerRoleCenter.PageExt.al @@ -0,0 +1,33 @@ +#if CLEAN28 +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.FixedAssets.Reports; + +using Microsoft.Finance.RoleCenters; + +pageextension 10800 "Finance Manager Role Center" extends "Finance Manager Role Center" +{ + actions + { + addafter("List1") + { + action("FA Projected Value (Derogatory) FR") + { + ApplicationArea = FixedAssets; + Caption = 'FA Projected Value (Derogatory)'; + RunObject = report "FA-Proj. Value (Derogatory) FR"; + Tooltip = 'Run the FA-Projected Value (Derogatory) FR report.'; + } + action("Professional Tax FR") + { + ApplicationArea = FixedAssets; + Caption = 'Professional Tax'; + RunObject = report "Fixed Asset-Professional TaxFR"; + Tooltip = 'Run the Fixed Asset-Professional Tax FR report.'; + } + } + } +} +#endif \ No newline at end of file diff --git a/Apps/FR/FAReportsFR/app/src/PageExtensions/FixedAssetCard.PageExt.al b/Apps/FR/FAReportsFR/app/src/PageExtensions/FixedAssetCard.PageExt.al new file mode 100644 index 0000000000..1ac6b5d0f0 --- /dev/null +++ b/Apps/FR/FAReportsFR/app/src/PageExtensions/FixedAssetCard.PageExt.al @@ -0,0 +1,33 @@ +#if CLEAN28 +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.FixedAssets.Reports; + +using Microsoft.FixedAssets.FixedAsset; + +pageextension 10801 "Fixed Asset Card" extends "Fixed Asset Card" +{ + actions + { + addafter("FA Book Val. - Appr. & Write-D") + { + action("Projected Value (Derogatory) FR") + { + ApplicationArea = FixedAssets; + Caption = 'Projected Value (Derogatory)'; + Image = "Report"; + RunObject = Report "FA-Proj. Value (Derogatory) FR"; + ToolTip = 'View the calculated future derogatory depreciation and book value. You can view the report for one derogatory depreciation book at a time.'; + } + } + addfirst(Category_Report) + { + actionref("Projected Value (Derogatory)_PromotedFR"; "Projected Value (Derogatory) FR") + { + } + } + } +} +#endif \ No newline at end of file diff --git a/Apps/FR/FAReportsFR/app/src/PageExtensions/FixedAssetList.PageExt.al b/Apps/FR/FAReportsFR/app/src/PageExtensions/FixedAssetList.PageExt.al new file mode 100644 index 0000000000..829166cad3 --- /dev/null +++ b/Apps/FR/FAReportsFR/app/src/PageExtensions/FixedAssetList.PageExt.al @@ -0,0 +1,33 @@ +#if CLEAN28 +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.FixedAssets.Reports; + +using Microsoft.FixedAssets.FixedAsset; + +pageextension 10802 "Fixed Asset List" extends "Fixed Asset List" +{ + actions + { + addafter("FA Book Val. - Appr. & Write-D") + { + action("Projected Value (Derogatory) FR") + { + ApplicationArea = FixedAssets; + Caption = 'Projected Value (Derogatory)'; + Image = "Report"; + RunObject = Report "FA-Proj. Value (Derogatory) FR"; + ToolTip = 'View the calculated future derogatory depreciation and book value. You can view the report for one derogatory depreciation book at a time.'; + } + } + addafter(FixedAssetsAnalysis_Promoted) + { + actionref("Projected Value (Derogatory)_PromotedFR"; "Projected Value (Derogatory) FR") + { + } + } + } +} +#endif \ No newline at end of file diff --git a/Apps/FR/FAReportsFR/app/src/Reports/FAProjValueDerogatoryFR.Report.al b/Apps/FR/FAReportsFR/app/src/Reports/FAProjValueDerogatoryFR.Report.al new file mode 100644 index 0000000000..45d01e2a93 --- /dev/null +++ b/Apps/FR/FAReportsFR/app/src/Reports/FAProjValueDerogatoryFR.Report.al @@ -0,0 +1,1358 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.FixedAssets.Reports; + +using Microsoft.Finance.GeneralLedger.Budget; +using Microsoft.FixedAssets.Depreciation; +using Microsoft.FixedAssets.FixedAsset; +using Microsoft.FixedAssets.Ledger; +using Microsoft.FixedAssets.Setup; +using Microsoft.Foundation.Period; +using System.Utilities; + +report 10817 "FA-Proj. Value (Derogatory) FR" +{ + DefaultLayout = RDLC; + RDLCLayout = './src/Reports/FAProjValueDerogatoryFR.rdlc'; + ApplicationArea = FixedAssets; + Caption = 'Fixed Asset - Projected Value (Derogatory)'; + UsageCategory = ReportsAndAnalysis; + + dataset + { + dataitem("Fixed Asset"; "Fixed Asset") + { + DataItemTableView = sorting("No."); + RequestFilterFields = "No.", "FA Class Code", "FA Subclass Code", "Budgeted Asset"; + column(CompanyName; COMPANYPROPERTY.DisplayName()) + { + } + column(DeprBookText; DeprBookText) + { + } + column(FixedAssetTabcaptFAFilter; TableCaption + ': ' + FAFilter) + { + } + column(FAFilter; FAFilter) + { + } + column(PrintDetails; PrintDetails) + { + } + column(ProjectedDisposal; ProjectedDisposalFlag) + { + } + column(DeprBookUseCustom1Depr; DeprBook."Use Custom 1 Depreciation") + { + } + column(DoProjectedDisposal; DoProjectedDisposal) + { + } + column(GroupTotalsInt; GroupTotalsInt) + { + } + column(IncludePostedFrom; Format(IncludePostedFromFilter)) + { + } + column(GroupCodeName; GroupCodeName) + { + } + column(FANo; FANo) + { + } + column(FADescription; FADescription) + { + } + column(GroupHeadLine; GroupHeadLine) + { + } + column(FixedAssetNo; "No.") + { + } + column(Description_FixedAsset; Description) + { + } + column(DeprText2; DeprText2) + { + } + column(Text002GroupHeadLine; GroupTotalTxt + ': ' + GroupHeadLine) + { + } + column(Custom1Text; Custom1Text) + { + } + column(DeprCustom1Text; DeprCustom1Text) + { + } + column(SalesPriceFieldname; SalesPriceFieldname) + { + } + column(GainLossFieldname; GainLossFieldname) + { + } + column(GroupAmounts3; GroupAmounts[3]) + { + AutoFormatType = 1; + } + column(GroupAmounts4; GroupAmounts[4]) + { + AutoFormatType = 1; + } + column(FAClassCode_FixedAsset; "FA Class Code") + { + } + column(FASubclassCode_FixedAsset; "FA Subclass Code") + { + } + column(GlobalDim1Code_FixedAsset; "Global Dimension 1 Code") + { + } + column(GlobalDim2Code_FixedAsset; "Global Dimension 2 Code") + { + } + column(FALocationCode_FixedAsset; "FA Location Code") + { + } + column(CompofMainAss_FixedAsset; "Component of Main Asset") + { + } + column(FAPostingGroup_FixedAsset; "FA Posting Group") + { + } + column(CurrReportPAGENOCaption; PageNoLbl) + { + } + column(FixedAssetProjectedValueCaption; FAProjectedValueLbl) + { + } + column(FALedgerEntryFAPostingDateCaption; FAPostingDateLbl) + { + } + column(BookValueCaption; BookValueLbl) + { + } + column(DerogAssetsIncluded; DerogAssetsIncluded) + { + } + column(HasDerogatorySetup; HasDerogatorySetup) + { + } + column(FAPostingTypeCaption; FAPostingTypeLbl) + { + } + column(NoofDepreciationDaysCaption; NoofDepreciationDaysLbl) + { + } + column(AmtCaption; AmountLbl) + { + } + column(DerogatoryAmountCaption; DerogatoryAmountLbl) + { + } + column(DerogatoryBookValueCaption; DerogatoryBookValueLbl) + { + } + column(DifferenceBookValueCaption; DifferenceBookValueLbl) + { + } + dataitem("FA Ledger Entry"; "FA Ledger Entry") + { + DataItemTableView = sorting("FA No.", "Depreciation Book Code", "FA Posting Date"); + column(FAPostingDt_FALedgerEntry; Format("FA Posting Date")) + { + } + column(PostingDt_FALedgerEntry; "FA Posting Type") + { + IncludeCaption = false; + } + column(Amount_FALedgerEntry; Amount) + { + IncludeCaption = false; + } + column(FANo_FALedgerEntry; "FA No.") + { + } + column(BookValue; BookValue) + { + AutoFormatType = 1; + } + column(NoofDeprDays_FALedgEntry; "No. of Depreciation Days") + { + IncludeCaption = false; + } + column(FALedgerEntryEntryNo; "Entry No.") + { + } + column(PostedEntryCaption; PostedEntryLbl) + { + } + column(FALedgerEntryDerogAmount; FALedgerEntryDerogAmount) + { + } + column(FALedgerEntryDerogBookValue; FALedgerEntryDerogBookValue) + { + } + column(FALedgerEntryDerogDiffBookValue; FALedgerEntryDerogDiffBookValue) + { + } + + trigger OnAfterGetRecord() + begin + if "Part of Book Value" then begin + BookValue := BookValue + Amount; + if HasDerogatorySetup then begin + FALedgerEntryDerogAmount := + Amount + GetFALedgerEntryDerogatoryAmount("Fixed Asset"."No.", DeprBookCode, "Document No.", "FA Posting Date"); + FALedgerEntryDerogBookValue += FALedgerEntryDerogAmount; + FALedgerEntryDerogDiffBookValue := FALedgerEntryDerogBookValue - BookValue; + end; + end; + if "FA Posting Date" < IncludePostedFromFilter then + CurrReport.Skip(); + EntryPrinted := true; + end; + + trigger OnPreDataItem() + begin + SetRange("FA No.", "Fixed Asset"."No."); + SetRange("Depreciation Book Code", DeprBookCode); + SetRange("Exclude Derogatory", false); + BookValue := 0; + FALedgerEntryDerogBookValue := 0; + if (IncludePostedFromFilter = 0D) or not PrintDetails then + CurrReport.Break(); + end; + } + dataitem(ProjectedDepreciation; "Integer") + { + DataItemTableView = sorting(Number) where(Number = filter(1 .. 1000000)); + column(DeprAmount; DeprAmount) + { + AutoFormatType = 1; + } + column(EntryAmt1Custom1Amt; EntryAmounts[1] - Custom1Amount) + { + AutoFormatType = 1; + } + column(FormatUntilDate; Format(UntilDate)) + { + } + column(DeprText; DeprText) + { + } + column(NumberOfDays; DerogNumberOfDays) + { + } + column(No1_FixedAsset; "Fixed Asset"."No.") + { + } + column(Custom1Text_ProjectedDepr; Custom1Text) + { + } + column(Custom1NumberOfDays; Custom1NumberOfDays) + { + } + column(Custom1Amount; Custom1Amount) + { + AutoFormatType = 1; + } + column(EntryAmounts1; EntryAmounts[1]) + { + AutoFormatType = 1; + } + column(AssetAmounts1; AssetAmounts[1]) + { + AutoFormatType = 1; + } + column(Description1_FixedAsset; "Fixed Asset".Description) + { + } + column(AssetAmounts2; AssetAmounts[2]) + { + AutoFormatType = 1; + } + column(AssetAmt1AssetAmt2; AssetAmounts[1] + AssetAmounts[2]) + { + AutoFormatType = 1; + } + column(DeprCustom1Text_ProjectedDepr; DeprCustom1Text) + { + } + column(AssetAmounts3; AssetAmounts[3]) + { + AutoFormatType = 1; + } + column(AssetAmounts4; AssetAmounts[4]) + { + AutoFormatType = 1; + } + column(SalesPriceFieldname_ProjectedDepr; SalesPriceFieldname) + { + } + column(GainLossFieldname_ProjectedDepr; GainLossFieldname) + { + } + column(GroupAmounts_1; GroupAmounts[1]) + { + } + column(GroupTotalBookValue; GroupTotalBookValue) + { + } + column(TotalBookValue_1; TotalBookValue[1]) + { + } + column(DerogAmount; DerogAmount) + { + AutoFormatType = 1; + } + column(DerogBookValue; DerogBookValue) + { + AutoFormatType = 1; + } + column(DerogDiffBookValue; DerogDiffBookValue) + { + } + column(AssetDerogAmount; AssetDerogAmount) + { + AutoFormatType = 1; + } + column(AssetDerogBookValue; AssetDerogBookValue) + { + } + column(AssetDerogDiffBookValue; AssetDerogDiffBookValue) + { + } + column(GroupDerogAmount; GroupDerogAmount) + { + } + column(GroupDerogBookValue; GroupDerogBookValue) + { + } + column(GroupDerogDiffBookValue; GroupDerogDiffBookValue) + { + } + + trigger OnAfterGetRecord() + begin + if UntilDate >= EndingDate then + CurrReport.Break(); + if Number = 1 then begin + CalculateFirstDeprAmount(Done); + DateFromProjection := DepreciationCalculation.Yesterday(DateFromProjection, Year365Days); + if FADeprBook."Book Value" <> 0 then + Done := Done or not EntryPrinted; + end else + CalculateSecondDeprAmount(Done); + if Done then + UpdateTotals() + else + UpdateGroupTotals(); + + if Done then + if DoProjectedDisposal then + CalculateGainLoss(); + end; + + trigger OnPostDataItem() + begin + if DoProjectedDisposal then begin + TotalAmounts[3] += AssetAmounts[3]; + TotalAmounts[4] += AssetAmounts[4]; + end; + end; + } + + trigger OnAfterGetRecord() + begin + case GroupTotalsOption of + GroupTotalsOption::"FA Class": + NewValue := "FA Class Code"; + GroupTotalsOption::"FA Subclass": + NewValue := "FA Subclass Code"; + GroupTotalsOption::"FA Location": + NewValue := "FA Location Code"; + GroupTotalsOption::"Main Asset": + NewValue := "Component of Main Asset"; + GroupTotalsOption::"Global Dimension 1": + NewValue := "Global Dimension 1 Code"; + GroupTotalsOption::"Global Dimension 2": + NewValue := "Global Dimension 2 Code"; + GroupTotalsOption::"FA Posting Group": + NewValue := "FA Posting Group"; + end; + + if NewValue <> OldValue then begin + MakeGroupHeadLine(); + InitGroupTotals(); + OldValue := NewValue; + end; + + if not FADeprBook.Get("No.", DeprBookCode) then + CurrReport.Skip(); + if SkipRecord() then + CurrReport.Skip(); + + HasDerogatorySetup := IsDerogatorySetup("No."); + if HasDerogatorySetup then begin + DerogAssetsIncluded := true; + TotalDerogAssetsIncluded := true; + end; + + if GroupTotalsOption = GroupTotalsOption::"FA Posting Group" then + if "FA Posting Group" <> FADeprBook."FA Posting Group" then + Error(HasBeenModifiedInFAErr, FieldCaption("FA Posting Group"), "No."); + + StartingDate := StartingDate2; + EndingDate := EndingDate2; + DoProjectedDisposal := false; + EntryPrinted := false; + if ProjectedDisposalFlag and + (FADeprBook."Projected Disposal Date" > 0D) and + (FADeprBook."Projected Disposal Date" <= EndingDate) + then begin + EndingDate := FADeprBook."Projected Disposal Date"; + if StartingDate > EndingDate then + StartingDate := EndingDate; + DoProjectedDisposal := true; + end; + + TransferValues(); + end; + + trigger OnPreDataItem() + begin + case GroupTotalsOption of + GroupTotalsOption::"FA Class": + SetCurrentKey("FA Class Code"); + GroupTotalsOption::"FA Subclass": + SetCurrentKey("FA Subclass Code"); + GroupTotalsOption::"FA Location": + SetCurrentKey("FA Location Code"); + GroupTotalsOption::"Main Asset": + SetCurrentKey("Component of Main Asset"); + GroupTotalsOption::"Global Dimension 1": + SetCurrentKey("Global Dimension 1 Code"); + GroupTotalsOption::"Global Dimension 2": + SetCurrentKey("Global Dimension 2 Code"); + GroupTotalsOption::"FA Posting Group": + SetCurrentKey("FA Posting Group"); + end; + + GroupTotalsInt := GroupTotalsOption; + MakeGroupHeadLine(); + InitGroupTotals(); + end; + } + dataitem(ProjectionTotal; "Integer") + { + DataItemTableView = sorting(Number) where(Number = const(1)); + column(TotalBookValue2; TotalBookValue[2]) + { + AutoFormatType = 1; + } + column(TotalAmounts1; TotalAmounts[1]) + { + AutoFormatType = 1; + } + column(DeprText2_ProjectionTotal; DeprText2) + { + } + column(ProjectedDisposal_ProjectionTotal; ProjectedDisposalFlag) + { + } + column(DeprBookUseCustDepr_ProjectionTotal; DeprBook."Use Custom 1 Depreciation") + { + } + column(Custom1Text_ProjectionTotal; Custom1Text) + { + } + column(TotalAmounts2; TotalAmounts[2]) + { + AutoFormatType = 1; + } + column(DeprCustom1Text_ProjectionTotal; DeprCustom1Text) + { + } + column(TotalAmt1TotalAmt2; TotalAmounts[1] + TotalAmounts[2]) + { + AutoFormatType = 1; + } + column(SalesPriceFieldname_ProjectionTotal; SalesPriceFieldname) + { + } + column(GainLossFieldname_ProjectionTotal; GainLossFieldname) + { + } + column(TotalAmounts3; TotalAmounts[3]) + { + AutoFormatType = 1; + } + column(TotalAmounts4; TotalAmounts[4]) + { + AutoFormatType = 1; + } + column(TotalCaption; TotalLbl) + { + } + column(TotalDerogAmount; TotalDerogAmount) + { + AutoFormatType = 1; + } + column(TotalDerogBookValue; TotalDerogBookValue) + { + } + column(TotalDerogDiffBookValue; TotalDerogDiffBookValue) + { + } + column(TotalDerogAssetsIncluded; TotalDerogAssetsIncluded) + { + } + } + dataitem(Buffer; "Integer") + { + DataItemTableView = sorting(Number) where(Number = filter(1 ..)); + column(DeprBookText_Buffer; DeprBookText) + { + } + column(Custom1TextText_Buffer; Custom1Text) + { + } + column(GroupCodeName2; GroupCodeName2) + { + } + column(FAPostingDate_FABufferProjection; Format(TempFABufferProjection."FA Posting Date")) + { + } + column(Desc_FABufferProjection; TempFABufferProjection.Depreciation) + { + } + column(Cust1_FABufferProjection; TempFABufferProjection."Custom 1") + { + } + column(CodeName_FABufferProj; TempFABufferProjection."Code Name") + { + } + column(ProjectedAmountsperDateCaption; ProjectedAmountsPerDateLbl) + { + } + column(FABufferProjectionFAPostingDateCaption; FABufferProjectionFAPostingDateLbl) + { + } + column(FABufferProjectionDepreciationCaption; FABufferProjectionDepreciationLbl) + { + } + column(FixedAssetProjectedValueCaption_Buffer; FABufferProjectedValueLbl) + { + } + + trigger OnAfterGetRecord() + begin + if Number = 1 then begin + if not TempFABufferProjection.Find('-') then + CurrReport.Break(); + end else + if TempFABufferProjection.Next() = 0 then + CurrReport.Break(); + end; + + trigger OnPreDataItem() + begin + if not PrintAmountsPerDateFlag then + CurrReport.Break(); + TempFABufferProjection.Reset(); + end; + } + } + + requestpage + { + SaveValues = true; + + layout + { + area(content) + { + group(Options) + { + Caption = 'Options'; + field(DepreciationBook; DeprBookCode) + { + ApplicationArea = FixedAssets; + Caption = 'Depreciation Book'; + TableRelation = "Depreciation Book"; + ToolTip = 'Specifies the code for the depreciation book to be included in the report or batch job.'; + + trigger OnValidate() + begin + UpdateReqForm(); + end; + } + field(FirstDeprDate; StartingDate) + { + ApplicationArea = FixedAssets; + Caption = 'First Depreciation Date'; + ToolTip = 'Specifies the date on which you want the depreciation calculation to start. This date is used to calculate the value in the No. of Depreciation Days field for the first depreciation of the asset. The date is used only if there are no entries other than acquisition cost and salvage value.'; + } + field(LastDeprDate; EndingDate) + { + ApplicationArea = FixedAssets; + Caption = 'Last Depreciation Date'; + ToolTip = 'Specifies the fixed assed posting date of the last posted depreciation.'; + } + field(NumberOfDays; PeriodLengthDays) + { + ApplicationArea = FixedAssets; + BlankZero = true; + Caption = 'Number of Days'; + Editable = NumberOfDaysCtrlEditable; + MinValue = 0; + ToolTip = 'Specifies the length of the periods between the first depreciation date and the last depreciation date. The program then calculates depreciation for each period. If you leave this field blank, the program automatically sets the contents of this field to equal the number of days in a fiscal year, normally 360.'; + + trigger OnValidate() + begin + if PeriodLengthDays > 0 then + UseAccountingPeriodFlag := false; + end; + } + field(DaysInFirstPeriod; DaysInFirstPeriodCount) + { + ApplicationArea = FixedAssets; + BlankZero = true; + Caption = 'No. of Days in First Period'; + MinValue = 0; + ToolTip = 'Specifies the number of days that must be used for calculating the depreciation as of the first depreciation date, regardless of the actual number of days from the last depreciation entry. The number you enter in this field does not affect the total number of days from the starting date to the ending date.'; + } + field(IncludePostedFrom; IncludePostedFromFilter) + { + ApplicationArea = FixedAssets; + Caption = 'Posted Entries From'; + ToolTip = 'Specifies the fixed asset posting date from which the report includes all types of posted entries.'; + } + field(GroupTotals; GroupTotalsOption) + { + ApplicationArea = FixedAssets; + Caption = 'Group Totals'; + OptionCaption = ' ,FA Class,FA Subclass,FA Location,Main Asset,Global Dimension 1,Global Dimension 2,FA Posting Group'; + ToolTip = 'Specifies if you want the report to group fixed assets and print totals using the category defined in this field. For example, maintenance expenses for fixed assets can be shown for each fixed asset class.'; + } + field(CopyToGLBudgetName; BudgetNameCode) + { + ApplicationArea = Suite; + Caption = 'Copy to G/L Budget Name'; + TableRelation = "G/L Budget Name"; + ToolTip = 'Specifies the general ledger budget name to copy the projected derogatory depreciation value to.'; + + trigger OnValidate() + begin + if BudgetNameCode = '' then + BalAccount := false; + end; + } + field(InsertBalAccount; BalAccount) + { + ApplicationArea = FixedAssets; + Caption = 'Insert Bal. Account'; + ToolTip = 'Specifies if you want the batch job to automatically insert fixed asset entries with balancing accounts.'; + + trigger OnValidate() + begin + if BalAccount then + if BudgetNameCode = '' then + Error(YouMustSpecifyErr, GLBudgetName.TableCaption()); + end; + } + field(PrintPerFixedAsset; PrintDetails) + { + ApplicationArea = FixedAssets; + Caption = 'Print per Fixed Asset'; + ToolTip = 'Specifies if you want the report to print information separately for each fixed asset.'; + } + field(ProjectedDisposal; ProjectedDisposalFlag) + { + ApplicationArea = FixedAssets; + Caption = 'Projected Disposal'; + ToolTip = 'Specifies whether to include information about the projected disposal of the fixed asset.'; + } + field(PrintAmountsPerDate; PrintAmountsPerDateFlag) + { + ApplicationArea = FixedAssets; + Caption = 'Print Amounts per Date'; + ToolTip = 'Specifies if you want the program to include on the last page of the report a summary of the calculated depreciation for all assets.'; + } + field(UseAccountingPeriod; UseAccountingPeriodFlag) + { + ApplicationArea = FixedAssets; + Caption = 'Use Accounting Period'; + ToolTip = 'Specifies if you want the periods between the starting date and the ending date to correspond to the accounting periods you have specified in the Accounting Period table. When you select this field, the Number of Days field is cleared.'; + + trigger OnValidate() + begin + if UseAccountingPeriodFlag then + PeriodLengthDays := 0; + + UpdateReqForm(); + end; + } + } + } + } + + actions + { + } + + trigger OnInit() + begin + NumberOfDaysCtrlEditable := true; + end; + + trigger OnOpenPage() + begin + GetFASetup(); + end; + } + + labels + { + } + + trigger OnPreReport() + begin + DeprBook.Get(DeprBookCode); + InitDerogatoryDeprBook(DerogDeprBookCode, DeprBookCode); + Year365Days := DeprBook."Fiscal Year 365 Days"; + if GroupTotalsOption = GroupTotalsOption::"FA Posting Group" then + FAGenReport.SetFAPostingGroup("Fixed Asset", DeprBook.Code); + FAGenReport.AppendFAPostingFilter("Fixed Asset", StartingDate, EndingDate); + FAFilter := "Fixed Asset".GetFilters(); + DeprBookText := StrSubstNo('%1%2 %3', DeprBook.TableCaption(), ':', DeprBookCode); + MakeGroupTotalText(); + ValidateDates(); + if PrintDetails then begin + FANo := "Fixed Asset".FieldCaption("No."); + FADescription := "Fixed Asset".FieldCaption(Description); + end; + if DeprBook."No. of Days in Fiscal Year" > 0 then + DaysInFiscalYear := DeprBook."No. of Days in Fiscal Year" + else + DaysInFiscalYear := 360; + if Year365Days then + DaysInFiscalYear := 365; + if PeriodLengthDays = 0 then + PeriodLengthDays := DaysInFiscalYear; + if (PeriodLengthDays <= 5) or (PeriodLengthDays > DaysInFiscalYear) then + Error(NumberOfDaysMustNotBeGreaterThanErr, DaysInFiscalYear); + FALedgEntry2."FA Posting Type" := FALedgEntry2."FA Posting Type"::Depreciation; + DeprText := StrSubstNo('%1', FALedgEntry2."FA Posting Type"); + FALedgEntry2."FA Posting Type" := FALedgEntry2."FA Posting Type"::Derogatory; + if DeprBook."Use Custom 1 Depreciation" then begin + DeprText2 := DeprText; + FALedgEntry2."FA Posting Type" := FALedgEntry2."FA Posting Type"::"Custom 1"; + Custom1Text := StrSubstNo('%1', FALedgEntry2."FA Posting Type"); + DeprCustom1Text := StrSubstNo('%1 %2 %3', DeprText, '+', Custom1Text); + end; + SalesPriceFieldname := FADeprBook.FieldCaption("Projected Proceeds on Disposal"); + GainLossFieldname := ProjectedGainLossTxt; + end; + + var + GLBudgetName: Record "G/L Budget Name"; + FASetup: Record "FA Setup"; + DeprBook: Record "Depreciation Book"; + FADeprBook: Record "FA Depreciation Book"; + FA: Record "Fixed Asset"; + FALedgEntry2: Record "FA Ledger Entry"; + TempFABufferProjection: Record "FA Buffer Projection" temporary; + FAGenReport: Codeunit "FA General Report"; + CalculateDepr: Codeunit "Calculate Depreciation"; + FADateCalculation: Codeunit "FA Date Calculation"; + DepreciationCalculation: Codeunit "Depreciation Calculation"; + DeprBookCode: Code[10]; + DerogDeprBookCode: Code[10]; + FAFilter: Text; + DeprBookText: Text; + GroupCodeName: Text; + GroupCodeName2: Text; + GroupHeadLine: Text; + DeprText: Text[50]; + DeprText2: Text[50]; + Custom1Text: Text[50]; + DeprCustom1Text: Text; + IncludePostedFromFilter: Date; + FANo: Text; + FADescription: Text; + GroupTotalsOption: Option " ","FA Class","FA Subclass","FA Location","Main Asset","Global Dimension 1","Global Dimension 2","FA Posting Group"; + BookValue: Decimal; + NewFiscalYear: Date; + EndFiscalYear: Date; + DaysInFiscalYear: Integer; + Custom1DeprUntil: Date; + PeriodLengthDays: Integer; + UseAccountingPeriodFlag: Boolean; + StartingDate: Date; + StartingDate2: Date; + EndingDate: Date; + EndingDate2: Date; + PrintAmountsPerDateFlag: Boolean; + UntilDate: Date; + PrintDetails: Boolean; + EntryAmounts: array[4] of Decimal; + AssetAmounts: array[4] of Decimal; + GroupAmounts: array[4] of Decimal; + TotalAmounts: array[4] of Decimal; + TotalBookValue: array[2] of Decimal; + GroupTotalBookValue: Decimal; + DateFromProjection: Date; + DeprAmount: Decimal; + Custom1Amount: Decimal; + DerogNumberOfDays: Integer; + Custom1NumberOfDays: Integer; + DaysInFirstPeriodCount: Integer; + Done: Boolean; + NotFirstGroupTotal: Boolean; + SalesPriceFieldname: Text; + GainLossFieldname: Text[50]; + ProjectedDisposalFlag: Boolean; + DoProjectedDisposal: Boolean; + EntryPrinted: Boolean; + GroupCodeNameTxt: Label ' ,FA Class,FA Subclass,FA Location,Main Asset,Global Dimension 1,Global Dimension 2,FA Posting Group'; + BudgetNameCode: Code[10]; + OldValue: Code[20]; + NewValue: Code[20]; + BalAccount: Boolean; + YouMustSpecifyErr: Label 'You must specify %1.', Comment = '%1 - G/L Budget Name caption'; + TempDeprDate: Date; + GroupTotalsInt: Integer; + Year365Days: Boolean; + NumberOfDaysMustNotBeGreaterThanErr: Label 'Number of Days must not be greater than %1 or less than 5.', Comment = '%1 - Number of days in fiscal year'; + ProjectedGainLossTxt: Label 'Projected Gain/Loss'; + GroupTotalTxt: Label 'Group Total'; + GroupTotalsTxt: Label 'Group Totals'; + HasBeenModifiedInFAErr: Label '%1 has been modified in fixed asset %2.', Comment = '%1 - FA Posting Group caption; %2- FA No.'; + YouMustCreateAccPeriodsErr: Label 'You must create accounting periods until %1 to use 365 days depreciation and ''Use Accounting Periods''.', Comment = '%1 - Date'; + NumberOfDaysCtrlEditable: Boolean; + PageNoLbl: Label 'Page'; + FAProjectedValueLbl: Label 'Fixed Asset - Projected Value (Derogatory)'; + FAPostingDateLbl: Label 'FA Posting Date'; + BookValueLbl: Label 'Book Value'; + PostedEntryLbl: Label 'Posted Entry'; + TotalLbl: Label 'Total'; + ProjectedAmountsPerDateLbl: Label 'Projected Amounts per Date'; + FABufferProjectionFAPostingDateLbl: Label 'FA Posting Date'; + FABufferProjectionDepreciationLbl: Label 'Depreciation'; + FABufferProjectedValueLbl: Label 'Fixed Asset - Projected Value (Derogatory)'; + FALedgerEntryDerogAmount: Decimal; + FALedgerEntryDerogBookValue: Decimal; + FALedgerEntryDerogDiffBookValue: Decimal; + DerogAmount: Decimal; + DerogBookValue: Decimal; + DerogDiffBookValue: Decimal; + AssetDerogAmount: Decimal; + AssetDerogBookValue: Decimal; + AssetDerogDiffBookValue: Decimal; + GroupDerogAmount: Decimal; + GroupDerogBookValue: Decimal; + GroupDerogDiffBookValue: Decimal; + TotalDerogAmount: Decimal; + TotalDerogBookValue: Decimal; + TotalDerogDiffBookValue: Decimal; + HasDerogatorySetup: Boolean; + DerogAssetsIncluded: Boolean; + TotalDerogAssetsIncluded: Boolean; + FAPostingTypeLbl: Label 'FA Posting Type'; + NoofDepreciationDaysLbl: Label 'No. Of Depreciation Days'; + AmountLbl: Label 'Amount'; + DerogatoryAmountLbl: Label 'Amount (Derogatory Book)'; + DerogatoryBookValueLbl: Label 'Book Value (Derogatory Book)'; + DifferenceBookValueLbl: Label 'Difference (Book Value)'; + + local procedure SkipRecord(): Boolean + begin + exit( + "Fixed Asset".Inactive or + (FADeprBook."Acquisition Date" = 0D) or + (FADeprBook."Acquisition Date" > EndingDate) or + (FADeprBook."Last Depreciation Date" > EndingDate) or + (FADeprBook."Disposal Date" > 0D)); + end; + + local procedure TransferValues() + begin + // set base amount for the standard depreciation calculation (without Derogatory) + FADeprBook.CalcFields("Book Value", Depreciation, "Custom 1", Derogatory); + DateFromProjection := 0D; + // if the asset has depreciations already, derogatory must be substracted from book value to avoid wrong derogatory calculation + // no problem for standard assets because derogatory is then zero + EntryAmounts[1] := FADeprBook."Book Value"; + if HasDerogatorySetup then + EntryAmounts[1] -= FADeprBook.Derogatory; + EntryAmounts[2] := FADeprBook."Custom 1"; + EntryAmounts[3] := DepreciationCalculation.DeprInFiscalYear("Fixed Asset"."No.", DeprBookCode, StartingDate); + TotalBookValue[1] := TotalBookValue[1] + FADeprBook."Book Value"; + TotalBookValue[2] := TotalBookValue[2] + FADeprBook."Book Value"; + GroupTotalBookValue += FADeprBook."Book Value"; + + TransferDerogatoryValues(FADeprBook."FA No.", EntryAmounts[1]); + + NewFiscalYear := FADateCalculation.GetFiscalYear(DeprBookCode, StartingDate); + EndFiscalYear := FADateCalculation.CalculateDate( + DepreciationCalculation.Yesterday(NewFiscalYear, Year365Days), DaysInFiscalYear, Year365Days); + TempDeprDate := FADeprBook."Temp. Ending Date"; + + if DeprBook."Use Custom 1 Depreciation" then + Custom1DeprUntil := FADeprBook."Depr. Ending Date (Custom 1)" + else + Custom1DeprUntil := 0D; + + if Custom1DeprUntil > 0D then + EntryAmounts[4] := GetDeprBasis(); + UntilDate := 0D; + AssetAmounts[1] := 0; + AssetAmounts[2] := 0; + AssetAmounts[3] := 0; + AssetAmounts[4] := 0; + end; + + local procedure CalculateFirstDeprAmount(var Done1: Boolean) + var + FirstTime: Boolean; + begin + FirstTime := true; + UntilDate := StartingDate; + repeat + if not FirstTime then + GetNextDate(); + FirstTime := false; + CalculateDepr.Calculate( + DeprAmount, Custom1Amount, DerogNumberOfDays, Custom1NumberOfDays, + "Fixed Asset"."No.", DeprBookCode, UntilDate, EntryAmounts, 0D, DaysInFirstPeriodCount); + Done1 := (DeprAmount <> 0) or (Custom1Amount <> 0); + CalculateDerogDepreciation(0D, DaysInFirstPeriodCount); + until (UntilDate >= EndingDate) or Done1; + EntryAmounts[3] := + DepreciationCalculation.DeprInFiscalYear("Fixed Asset"."No.", DeprBookCode, UntilDate); + end; + + local procedure CalculateSecondDeprAmount(var Done1: Boolean) + begin + GetNextDate(); + CalculateDepr.Calculate( + DeprAmount, Custom1Amount, DerogNumberOfDays, Custom1NumberOfDays, + "Fixed Asset"."No.", DeprBookCode, UntilDate, EntryAmounts, DateFromProjection, 0); + Done1 := CalculationDone( + (DeprAmount <> 0) or (Custom1Amount <> 0), DateFromProjection); + CalculateDerogDepreciation(DateFromProjection, 0); + end; + + local procedure GetNextDate() + var + UntilDate2: Date; + begin + UntilDate2 := GetPeriodEndingDate(UseAccountingPeriodFlag, UntilDate, PeriodLengthDays); + if Custom1DeprUntil > 0D then + if (UntilDate < Custom1DeprUntil) and (UntilDate2 > Custom1DeprUntil) then + UntilDate2 := Custom1DeprUntil; + + if TempDeprDate > 0D then + if (UntilDate < TempDeprDate) and (UntilDate2 > TempDeprDate) then + UntilDate2 := TempDeprDate; + + if (UntilDate < EndFiscalYear) and (UntilDate2 > EndFiscalYear) then + UntilDate2 := EndFiscalYear; + + if UntilDate = EndFiscalYear then begin + EntryAmounts[3] := 0; + NewFiscalYear := DepreciationCalculation.ToMorrow(EndFiscalYear, Year365Days); + EndFiscalYear := FADateCalculation.CalculateDate(EndFiscalYear, DaysInFiscalYear, Year365Days); + end; + + DateFromProjection := DepreciationCalculation.ToMorrow(UntilDate, Year365Days); + UntilDate := UntilDate2; + if UntilDate >= EndingDate then + UntilDate := EndingDate; + end; + + local procedure GetPeriodEndingDate(UseAccPeriod: Boolean; PeriodEndingDate: Date; var PeriodLength: Integer): Date + var + AccountingPeriod: Record "Accounting Period"; + UntilDate2: Date; + begin + if not UseAccPeriod then + exit(FADateCalculation.CalculateDate(PeriodEndingDate, PeriodLength, Year365Days)); + AccountingPeriod.SetFilter( + "Starting Date", '>=%1', DepreciationCalculation.ToMorrow(PeriodEndingDate, Year365Days) + 1); + if AccountingPeriod.FindFirst() then begin + if Date2DMY(AccountingPeriod."Starting Date", 1) <> 31 then + UntilDate2 := DepreciationCalculation.Yesterday(AccountingPeriod."Starting Date", Year365Days) + else + UntilDate2 := AccountingPeriod."Starting Date" - 1; + PeriodLength := + DepreciationCalculation.DeprDays( + DepreciationCalculation.ToMorrow(PeriodEndingDate, Year365Days), UntilDate2, Year365Days); + if (PeriodLength <= 5) or (PeriodLength > DaysInFiscalYear) then + PeriodLength := DaysInFiscalYear; + exit(UntilDate2); + end; + if Year365Days then + Error(YouMustCreateAccPeriodsErr, DepreciationCalculation.ToMorrow(EndingDate, Year365Days) + 1); + exit(FADateCalculation.CalculateDate(PeriodEndingDate, PeriodLength, Year365Days)); + end; + + local procedure MakeGroupTotalText() + begin + case GroupTotalsOption of + GroupTotalsOption::"FA Class": + GroupCodeName := "Fixed Asset".FieldCaption("FA Class Code"); + GroupTotalsOption::"FA Subclass": + GroupCodeName := "Fixed Asset".FieldCaption("FA Subclass Code"); + GroupTotalsOption::"FA Location": + GroupCodeName := "Fixed Asset".FieldCaption("FA Location Code"); + GroupTotalsOption::"Main Asset": + GroupCodeName := "Fixed Asset".FieldCaption("Main Asset/Component"); + GroupTotalsOption::"Global Dimension 1": + GroupCodeName := "Fixed Asset".FieldCaption("Global Dimension 1 Code"); + GroupTotalsOption::"Global Dimension 2": + GroupCodeName := "Fixed Asset".FieldCaption("Global Dimension 2 Code"); + GroupTotalsOption::"FA Posting Group": + GroupCodeName := "Fixed Asset".FieldCaption("FA Posting Group"); + end; + if GroupCodeName <> '' then begin + GroupCodeName2 := GroupCodeName; + if GroupTotalsOption = GroupTotalsOption::"Main Asset" then + GroupCodeName2 := StrSubstNo('%1', SelectStr(GroupTotalsOption + 1, GroupCodeNameTxt)); + GroupCodeName := StrSubstNo('%1%2 %3', GroupTotalsTxt, ':', GroupCodeName2); + end; + end; + + local procedure ValidateDates() + begin + FAGenReport.ValidateDeprDates(StartingDate, EndingDate); + EndingDate2 := EndingDate; + StartingDate2 := StartingDate; + end; + + local procedure MakeGroupHeadLine() + begin + case GroupTotalsOption of + GroupTotalsOption::"FA Class": + GroupHeadLine := "Fixed Asset"."FA Class Code"; + GroupTotalsOption::"FA Subclass": + GroupHeadLine := "Fixed Asset"."FA Subclass Code"; + GroupTotalsOption::"FA Location": + GroupHeadLine := "Fixed Asset"."FA Location Code"; + GroupTotalsOption::"Main Asset": + begin + FA."Main Asset/Component" := FA."Main Asset/Component"::"Main Asset"; + GroupHeadLine := + StrSubstNo('%1 %2', FA."Main Asset/Component", "Fixed Asset"."Component of Main Asset"); + if "Fixed Asset"."Component of Main Asset" = '' then + GroupHeadLine := StrSubstNo('%1%2', GroupHeadLine, '*****'); + end; + GroupTotalsOption::"Global Dimension 1": + GroupHeadLine := "Fixed Asset"."Global Dimension 1 Code"; + GroupTotalsOption::"Global Dimension 2": + GroupHeadLine := "Fixed Asset"."Global Dimension 2 Code"; + GroupTotalsOption::"FA Posting Group": + GroupHeadLine := "Fixed Asset"."FA Posting Group"; + end; + if GroupHeadLine = '' then + GroupHeadLine := '*****'; + end; + + local procedure UpdateTotals() + var + BudgetDepreciation: Codeunit "Budget Depreciation"; + EntryNo: Integer; + CodeName: Code[20]; + begin + EntryAmounts[1] := EntryAmounts[1] + DeprAmount + Custom1Amount; + if Custom1DeprUntil > 0D then + if UntilDate <= Custom1DeprUntil then + EntryAmounts[4] := EntryAmounts[4] + DeprAmount + Custom1Amount; + EntryAmounts[2] := EntryAmounts[2] + Custom1Amount; + EntryAmounts[3] := EntryAmounts[3] + DeprAmount + Custom1Amount; + AssetAmounts[1] := AssetAmounts[1] + DeprAmount; + AssetAmounts[2] := AssetAmounts[2] + Custom1Amount; + GroupAmounts[1] := GroupAmounts[1] + DeprAmount; + GroupAmounts[2] := GroupAmounts[2] + Custom1Amount; + TotalAmounts[1] := TotalAmounts[1] + DeprAmount; + TotalAmounts[2] := TotalAmounts[2] + Custom1Amount; + TotalBookValue[1] := TotalBookValue[1] + DeprAmount + Custom1Amount; + TotalBookValue[2] := TotalBookValue[2] + DeprAmount + Custom1Amount; + GroupTotalBookValue += DeprAmount + Custom1Amount; + UpdateDerogatoryTotals(); + + if BudgetNameCode <> '' then + BudgetDepreciation.CopyProjectedValueToBudget( + FADeprBook, BudgetNameCode, UntilDate, DeprAmount, Custom1Amount, BalAccount); + + if (UntilDate > 0D) or PrintAmountsPerDateFlag then begin + TempFABufferProjection.Reset(); + if TempFABufferProjection.Find('+') then + EntryNo := TempFABufferProjection."Entry No." + 1 + else + EntryNo := 1; + TempFABufferProjection.SetRange("FA Posting Date", UntilDate); + if GroupTotalsOption <> GroupTotalsOption::" " then begin + case GroupTotalsOption of + GroupTotalsOption::"FA Class": + CodeName := "Fixed Asset"."FA Class Code"; + GroupTotalsOption::"FA Subclass": + CodeName := "Fixed Asset"."FA Subclass Code"; + GroupTotalsOption::"FA Location": + CodeName := "Fixed Asset"."FA Location Code"; + GroupTotalsOption::"Main Asset": + CodeName := "Fixed Asset"."Component of Main Asset"; + GroupTotalsOption::"Global Dimension 1": + CodeName := "Fixed Asset"."Global Dimension 1 Code"; + GroupTotalsOption::"Global Dimension 2": + CodeName := "Fixed Asset"."Global Dimension 2 Code"; + GroupTotalsOption::"FA Posting Group": + CodeName := "Fixed Asset"."FA Posting Group"; + end; + TempFABufferProjection.SetRange("Code Name", CodeName); + end; + if not TempFABufferProjection.Find('=><') then begin + TempFABufferProjection.Init(); + TempFABufferProjection."Code Name" := CodeName; + TempFABufferProjection."FA Posting Date" := UntilDate; + TempFABufferProjection."Entry No." := EntryNo; + TempFABufferProjection.Depreciation := DeprAmount; + TempFABufferProjection."Custom 1" := Custom1Amount; + TempFABufferProjection.Insert(); + end else begin + TempFABufferProjection.Depreciation := TempFABufferProjection.Depreciation + DeprAmount; + TempFABufferProjection."Custom 1" := TempFABufferProjection."Custom 1" + Custom1Amount; + TempFABufferProjection.Modify(); + end; + end; + end; + + local procedure InitGroupTotals() + begin + GroupAmounts[1] := 0; + GroupAmounts[2] := 0; + GroupAmounts[3] := 0; + GroupAmounts[4] := 0; + GroupTotalBookValue := 0; + GroupDerogAmount := 0; + if NotFirstGroupTotal then begin + TotalBookValue[1] := 0; + GroupDerogBookValue := 0; + GroupDerogDiffBookValue := 0; + end else begin + TotalBookValue[1] := EntryAmounts[1]; + GroupDerogBookValue := AssetDerogBookValue; + GroupDerogDiffBookValue := AssetDerogDiffBookValue; + end; + NotFirstGroupTotal := true; + DerogAssetsIncluded := false; + end; + + local procedure GetDeprBasis(): Decimal + var + FALedgEntry: Record "FA Ledger Entry"; + begin + FALedgEntry.SetCurrentKey("FA No.", "Depreciation Book Code", "Part of Book Value", "FA Posting Date"); + FALedgEntry.SetRange("FA No.", "Fixed Asset"."No."); + FALedgEntry.SetRange("Depreciation Book Code", DeprBookCode); + FALedgEntry.SetRange("Part of Book Value", true); + FALedgEntry.SetRange("FA Posting Date", 0D, Custom1DeprUntil); + FALedgEntry.CalcSums(Amount); + exit(FALedgEntry.Amount); + end; + + local procedure CalculateGainLoss() + var + CalculateDisposal: Codeunit "Calculate Disposal"; + EntAmounts: array[14] of Decimal; + PrevAmount: array[2] of Decimal; + begin + PrevAmount[1] := AssetAmounts[3]; + PrevAmount[2] := AssetAmounts[4]; + + CalculateDisposal.CalcGainLoss("Fixed Asset"."No.", DeprBookCode, EntAmounts); + AssetAmounts[3] := FADeprBook."Projected Proceeds on Disposal"; + if EntAmounts[1] <> 0 then + AssetAmounts[4] := EntAmounts[1] + else + AssetAmounts[4] := EntAmounts[2]; + AssetAmounts[4] := + AssetAmounts[4] + AssetAmounts[1] + AssetAmounts[2] - FADeprBook."Projected Proceeds on Disposal"; + + GroupAmounts[3] += AssetAmounts[3] - PrevAmount[1]; + GroupAmounts[4] += AssetAmounts[4] - PrevAmount[2]; + end; + + local procedure CalculationDone(Done1: Boolean; FirstDepreciationDate: Date): Boolean + var + TableDeprCalculation: Codeunit "Table Depr. Calculation"; + begin + if Done1 or + (FADeprBook."Depreciation Method" <> FADeprBook."Depreciation Method"::"User-Defined") + then + exit(Done1); + exit( + TableDeprCalculation.GetTablePercent( + DeprBookCode, FADeprBook."Depreciation Table Code", + FADeprBook."First User-Defined Depr. Date", FirstDepreciationDate, UntilDate) = 0); + end; + + local procedure UpdateReqForm() + begin + PageUpdateReqForm(); + end; + + local procedure PageUpdateReqForm() + var + DepBook: Record "Depreciation Book"; + begin + if DeprBookCode <> '' then + DepBook.Get(DeprBookCode); + + PeriodLengthDays := 0; + if DepBook."Fiscal Year 365 Days" and not UseAccountingPeriodFlag then + PeriodLengthDays := 365; + end; + + [Scope('OnPrem')] + procedure SetMandatoryFields(DepreciationBookCodeFrom: Code[10]; StartingDateFrom: Date; EndingDateFrom: Date) + begin + DeprBookCode := DepreciationBookCodeFrom; + StartingDate := StartingDateFrom; + EndingDate := EndingDateFrom; + end; + + [Scope('OnPrem')] + procedure SetPeriodFields(PeriodLengthFrom: Integer; DaysInFirstPeriodFrom: Integer; IncludePostedFromFrom: Date; UseAccountingPeriodFrom: Boolean) + begin + PeriodLengthDays := PeriodLengthFrom; + DaysInFirstPeriodCount := DaysInFirstPeriodFrom; + IncludePostedFromFilter := IncludePostedFromFrom; + UseAccountingPeriodFlag := UseAccountingPeriodFrom; + end; + + [Scope('OnPrem')] + procedure SetTotalFields(GroupTotalsFrom: Option; PrintDetailsFrom: Boolean) + begin + GroupTotalsOption := GroupTotalsFrom; + PrintDetails := PrintDetailsFrom; + end; + + [Scope('OnPrem')] + procedure SetBudgetField(BudgetNameCodeFrom: Code[10]; BalAccountFrom: Boolean; ProjectedDisposalFrom: Boolean; PrintAmountsPerDateFrom: Boolean) + begin + BudgetNameCode := BudgetNameCodeFrom; + BalAccount := BalAccountFrom; + ProjectedDisposalFlag := ProjectedDisposalFrom; + PrintAmountsPerDateFlag := PrintAmountsPerDateFrom; + end; + + procedure GetFASetup() + begin + if DeprBookCode = '' then begin + FASetup.Get(); + DeprBookCode := FASetup."Default Depr. Book"; + end; + UpdateReqForm(); + end; + + local procedure UpdateGroupTotals() + begin + GroupAmounts[1] := GroupAmounts[1] + DeprAmount; + TotalAmounts[1] := TotalAmounts[1] + DeprAmount; + UpdateDerogatoryTotals(); + end; + + local procedure CalculateDerogDepreciation(DateFromProjection2: Date; DaysInFirstPeriod2: Integer) + var + DerogEntryAmounts: array[4] of Decimal; + begin + if not HasDerogatorySetup then + exit; + DerogEntryAmounts[1] := DerogBookValue; + CalculateDepr.Calculate( + DerogAmount, Custom1Amount, DerogNumberOfDays, Custom1NumberOfDays, + "Fixed Asset"."No.", DerogDeprBookCode, UntilDate, DerogEntryAmounts, DateFromProjection2, DaysInFirstPeriod2); + DerogBookValue += DerogAmount; + DerogDiffBookValue += DerogAmount - DeprAmount; + end; + + local procedure UpdateDerogatoryTotals() + begin + if not HasDerogatorySetup then + exit; + AssetDerogAmount += DerogAmount; + AssetDerogBookValue += DerogAmount; + AssetDerogDiffBookValue += DerogAmount - DeprAmount; + GroupDerogAmount += DerogAmount; + GroupDerogBookValue += DerogAmount; + GroupDerogDiffBookValue += DerogAmount - DeprAmount; + TotalDerogAmount += DerogAmount; + TotalDerogBookValue += DerogAmount; + TotalDerogDiffBookValue += DerogAmount - DeprAmount; + end; + + local procedure TransferDerogatoryValues(FANo1: Code[20]; BookVal: Decimal) + var + FADepreciationBook: Record "FA Depreciation Book"; + begin + if HasDerogatorySetup then begin + FADepreciationBook.Get(FANo1, DerogDeprBookCode); + FADepreciationBook.CalcFields("Book Value"); + DerogBookValue := FADepreciationBook."Book Value"; + AssetDerogBookValue := FADepreciationBook."Book Value"; + GroupDerogBookValue += FADepreciationBook."Book Value"; + TotalDerogBookValue += FADepreciationBook."Book Value"; + DerogDiffBookValue := FADepreciationBook."Book Value" - BookVal; + AssetDerogDiffBookValue := FADepreciationBook."Book Value" - BookVal; + GroupDerogDiffBookValue += FADepreciationBook."Book Value" - BookVal; + TotalDerogDiffBookValue += FADepreciationBook."Book Value" - BookVal; + end else begin + DerogBookValue := 0; + AssetDerogBookValue := 0; + DerogDiffBookValue := 0; + AssetDerogDiffBookValue := 0; + end; + DerogAmount := 0; + AssetDerogAmount := 0; + end; + + local procedure InitDerogatoryDeprBook(var DerogDepreciationBookCode: Code[10]; DepreciationBookCode: Code[10]) + var + DerogDepreciationBook: Record "Depreciation Book"; + begin + TotalDerogAssetsIncluded := false; + DerogDepreciationBookCode := ''; + DerogDepreciationBook.SetRange("Derogatory Calculation", DepreciationBookCode); + if DerogDepreciationBook.FindFirst() then + DerogDepreciationBookCode := DerogDepreciationBook.Code; + end; + + local procedure IsDerogatorySetup(FANo1: Code[20]): Boolean + var + FADepreciationBook: Record "FA Depreciation Book"; + begin + FADepreciationBook.SetRange("FA No.", FANo1); + FADepreciationBook.SetRange("Depreciation Book Code", DerogDeprBookCode); + exit(not FADepreciationBook.IsEmpty); + end; + + local procedure GetFALedgerEntryDerogatoryAmount(FANo1: Code[20]; DepreciationBookCode: Code[10]; DocumentNo: Code[20]; FAPostingDate: Date): Decimal + var + FALedgerEntry: Record "FA Ledger Entry"; + begin + FALedgerEntry.SetRange("FA No.", FANo1); + FALedgerEntry.SetRange("Depreciation Book Code", DepreciationBookCode); + FALedgerEntry.SetRange("Part of Book Value", true); + FALedgerEntry.SetRange("Document No.", DocumentNo); + FALedgerEntry.SetRange("FA Posting Date", FAPostingDate); + FALedgerEntry.SetRange("FA Posting Type", FALedgerEntry."FA Posting Type"::Derogatory); + if FALedgerEntry.FindFirst() then + exit(FALedgerEntry.Amount); + exit(0); + end; +} + diff --git a/Apps/FR/FAReportsFR/app/src/Reports/FAProjValueDerogatoryFR.rdlc b/Apps/FR/FAReportsFR/app/src/Reports/FAProjValueDerogatoryFR.rdlc new file mode 100644 index 0000000000..c3b123b22f --- /dev/null +++ b/Apps/FR/FAReportsFR/app/src/Reports/FAProjValueDerogatoryFR.rdlc @@ -0,0 +1,6780 @@ + + + 0 + + + + SQL + + + None + b39824cd-4ad0-4bdc-a5e4-7fef3059cea3 + + + + + + + + + + + 26.08158cm + + + + + 13.73426cm + + + + + + + + + + 4.40352cm + + + 4.40352cm + + + 4.40352cm + + + 4.20355cm + + + + + 0.13889in + + + + + true + true + + + + + + + + + + + + Textbox30 + + + 4 + + + + + + + + + 0.13889in + + + + + true + true + + + + + + + + + + + + Textbox18 + + + 4 + + + + + + + + + 0.13889in + + + + + true + true + + + + + =Fields!ProjectedAmountsperDateCaption.Value + + + + + + + 17 + + + 3 + + + + + + + + true + + + + + + + + + + + + 16 + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + + textbox60 + 15 + + + 4 + + + + + + + + + 0.13889in + + + + + true + + + + + =Fields!GroupCodeName2.Value + + + + + + + + + + + true + true + + + + + =Fields!FABufferProjectionFAPostingDateCaption.Value + + + + + + + + + + + true + true + + + + + =Fields!FABufferProjectionDepreciationCaption.Value + + + + + + + 9 + + + + + + + + true + + + + + =Fields!Custom1TextText_Buffer.Value + + + + + + + textbox105 + 8 + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + + Textbox2 + + + + + + Bottom + 0.0625in + + + + + + + + true + true + + + + + + + + + + + + Textbox7 + + + + + + Bottom + 0.0625in + + + + + + + + true + true + + + + + + + + + + + + Textbox9 + + + + + + Bottom + 0.0625in + + + + + + + + true + true + + + + + + + + + + + + Textbox10 + + + + + + Bottom + 0.0625in + + + + + + + + 0.06944in + + + + + true + + + + + + + + + + + + textbox108 + 7 + + + 4 + + + + + + + + + 0.13889in + + + + + true + + + + + =Fields!CodeName_FABufferProj.Value + + + + + + + 3 + + + + + + + + true + true + + + + + =Fields!FAPostingDate_FABufferProjection.Value + + + + + + + 2 + + + + + + + + true + true + + + + + =Fields!Desc_FABufferProjection.Value + + + + + + + 1 + + + + + + + + true + true + + + + + =Fields!Cust1_FABufferProjection.Value + + + + + + + + + + + + + + + + + + + + + + + After + true + + + After + true + + + After + true + true + + + After + true + true + + + After + true + true + + + After + true + + + After + true + true + + + + Detail + + + + + Detail_Collection + Output + true + + + + DataSet_Result + + + =Fields!FixedAssetProjectedValueCaption_Buffer.Value + GreaterThan + + + + + + 11.2112cm + 0.99333in + 17.41411cm + + =IIF(Fields!FixedAssetProjectedValueCaption_Buffer.Value = "",True,False) + + NoOutput + + + + + + 5 + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + 0.16in + + + + + true + true + + + + + =Fields!TotalCaption.Value + + + + + + + textbox247 + 29 + + + 2 + + + + + + + true + + + + + =Fields!DeprText2_ProjectionTotal.Value + + + + + + + + + + + true + true + + + + + =Fields!TotalAmounts1.Value + + + + + + + textbox250 + 26 + + + + + + + + true + true + + + + + =Fields!TotalBookValue2.Value + + + + + + + textbox251 + 25 + + + + + + + + true + true + + + + + =Last(Fields!TotalDerogAmount.Value) + + + + + + + Textbox134 + + =IIF(Last(Fields!TotalDerogAssetsIncluded.Value),FALSE,TRUE) + + + + Bottom + 5pt + 5pt + + + + + + + + true + true + + + + + =Last(Fields!TotalDerogBookValue.Value) + + + + + + + Textbox150 + + =IIF(Last(Fields!TotalDerogAssetsIncluded.Value),FALSE,TRUE) + + + + Bottom + 5pt + 5pt + + + + + + + + true + true + + + + + =Last(Fields!TotalDerogDiffBookValue.Value) + + + + + + + Textbox166 + + =IIF(Last(Fields!TotalDerogAssetsIncluded.Value),FALSE,TRUE) + + + + Bottom + 5pt + 5pt + + + true + + + + + + 0.16in + + + + + true + + + + + + + + + + + 2 + + + + + + + true + + + + + =Fields!Custom1Text_ProjectionTotal.Value + + + + + + + + + + + true + true + + + + + =Fields!TotalAmounts2.Value + + + + + + + textbox245 + 21 + + + + + + + + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 2 + + + + + + + true + + + + + =Fields!DeprCustom1Text_ProjectionTotal.Value + + + + + + + + + + + true + true + + + + + =Fields!TotalAmt1TotalAmt2.Value + + + + + + + textbox240 + 16 + + + + + + + + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 5 + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 2 + + + + + + + true + + + + + =Fields!SalesPriceFieldname_ProjectionTotal.Value + + + + + + + + + + + true + true + + + + + =Fields!TotalAmounts3.Value + + + + + + + textbox230 + 6 + + + + + + + + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 2 + + + + + + + true + + + + + =Fields!GainLossFieldname_ProjectionTotal.Value + + + + + + + + + + + true + true + + + + + =Fields!TotalAmounts4.Value + + + + + + + textbox225 + 1 + + + + + + + + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Detail + + + + + + + =IIF(Fields!DeprBookUseCustDepr_ProjectionTotal.Value,False,True) + + + + + =IIF(Fields!DeprBookUseCustDepr_ProjectionTotal.Value,False,True) + + + + + =IIF(Fields!ProjectedDisposal_ProjectionTotal.Value,False,True) + + + + + =IIF(Fields!ProjectedDisposal_ProjectionTotal.Value,False,True) + + + + + =IIF(Fields!ProjectedDisposal_ProjectionTotal.Value,False,True) + + + + Detail_Collection + Output + true + + + + + + =Fields!TotalCaption.Value + GreaterThan + + + + + + 7.88847cm + 1.09889in + 26.08158cm + + =IIF(Fields!TotalCaption.Value = "",True,False) + + NoOutput + + + + + + + Textbox31 + + + 10 + + + + + + + + + + + + + + + 0.35278cm + + + + + true + + + + + =Fields!GroupCodeName.Value + + + + + + + textbox182 + 163 + + + 10 + + + + + + + + + + + + + + + 0.35278cm + + + + + true + + + + + =Fields!FANo.Value + + + + + + + textbox3 + 156 + + + + + + + + true + + + + + =Fields!FADescription.Value + + + + + + + textbox4 + 155 + + + + + + + + true + true + + + + + =Fields!FALedgerEntryFAPostingDateCaption.Value + + + + + + + textbox5 + 154 + + + + + + + + true + true + + + + + =Fields!FAPostingTypeCaption.Value + + + + + + + textbox16 + 153 + + + + + + + + true + true + + + + + =Fields!NoofDepreciationDaysCaption.Value + + + + + + + textbox21 + 152 + + + + + + + + true + true + + + + + =Fields!AmtCaption.Value + + + + + + + textbox23 + 151 + + + + + + + + true + true + + + + + =Fields!BookValueCaption.Value + + + + + + + textbox25 + 150 + + + + + + + + true + true + + + + + =Fields!DerogatoryAmountCaption.Value + + + + + + + Textbox17 + + + + + + + + true + true + + + + + =Fields!DerogatoryBookValueCaption.Value + + + + + + + Textbox58 + + + + + + + + true + true + + + + + =Fields!DifferenceBookValueCaption.Value + + + + + + + Textbox89 + + + + + + + + 0.17638cm + + + + + true + + + + + + + + + + + + + + Bottom + + + 10 + + + + + + + + + + + + + + + 0.17638cm + + + + + true + + + + + + + + 10 + + + + + + + + + + + + + + + 0.35278cm + + + + + true + + + + + =IIF(Fields!GroupHeadLine.Value="*****","",Fields!GroupHeadLine.Value) + + + + + + + + + + + true + + + + + + + + 9 + + + + + + + + + + + + + + 0.35278cm + + + + + true + + + + + =Fields!FixedAssetNo.Value + + + + + + + 124 + + + + + + + + true + + + + + =Fields!Description_FixedAsset.Value + + + + + + + 123 + + + 9 + + + + + + + + + + + + + + 0.35278cm + + + + + true + + + + + =Fields!FANo_FALedgerEntry.Value + + + + + + + textbox114 + 116 + + + + + + + + true + + + + + + + + + + + + textbox38 + 115 + + + + + + + + true + true + + + + + =Fields!FAPostingDt_FALedgerEntry.Value + + + + + + + textbox119 + 114 + + + + + + + + true + + + + + =Fields!PostingDt_FALedgerEntry.Value + + + + + + + + + + + true + + + + + =Fields!NoofDeprDays_FALedgEntry.Value + + + + + + + + + + + true + true + + + + + =Fields!Amount_FALedgerEntry.Value + + + + + + + textbox128 + 111 + + + + + + + + true + true + + + + + =Fields!BookValue.Value + + + + + + + textbox129 + 110 + + + + + + + + true + true + + + + + =Fields!FALedgerEntryDerogAmount.Value + + + + + + + Textbox33 + + =IIF(Fields!PrintDetails.Value AND NOT (Fields!IncludePostedFrom.Value = "") AND (Fields!FALedgerEntryEntryNo.Value > 0) + AND Fields!HasDerogatorySetup.Value,FALSE,TRUE) + + + + #efefef + Top + 5pt + 5pt + + + + + + + + true + true + + + + + =Fields!FALedgerEntryDerogBookValue.Value + + + + + + + Textbox64 + + =IIF(Fields!PrintDetails.Value AND NOT (Fields!IncludePostedFrom.Value = "") AND (Fields!FALedgerEntryEntryNo.Value > 0) + AND Fields!HasDerogatorySetup.Value,FALSE,TRUE) + + + + #efefef + Top + 5pt + 5pt + + + + + + + + true + true + + + + + =Fields!FALedgerEntryDerogDiffBookValue.Value + + + + + + + Textbox102 + + =IIF(Fields!PrintDetails.Value AND NOT (Fields!IncludePostedFrom.Value = "") AND (Fields!FALedgerEntryEntryNo.Value > 0) + AND Fields!HasDerogatorySetup.Value,FALSE,TRUE) + + + + #efefef + Top + 5pt + 5pt + + + + + + + + 0.35278cm + + + + + true + + + + + =Fields!No1_FixedAsset.Value + + + + + + + textbox6 + 108 + + + + + + + + true + + + + + + + + + + + + textbox118 + 107 + + + + + + + + true + true + + + + + =Fields!FormatUntilDate.Value + + + + + + + textbox14 + 106 + + + + + + + + true + + + + + =Fields!DeprText.Value + + + + + + + textbox15 + 105 + + + + + + + + true + + + + + =Fields!NumberOfDays.Value + + + + + + + textbox20 + 104 + + + + + + + + true + true + + + + + =Fields!DeprAmount.Value + + + + + + + textbox22 + 103 + + + + + + + + true + true + + + + + =Fields!EntryAmt1Custom1Amt.Value + + + + + + + textbox24 + 102 + + + + + + + + true + true + + + + + =Fields!DerogAmount.Value + + + + + + + Textbox34 + + =IIF(Fields!PrintDetails.Value and not (Fields!No1_FixedAsset.Value = "") and Fields!HasDerogatorySetup.Value,False,True) + + + + #efefef + Top + 5pt + 5pt + + + + + + + + true + true + + + + + =Fields!DerogBookValue.Value + + + + + + + Textbox65 + + =IIF(Fields!PrintDetails.Value and not (Fields!No1_FixedAsset.Value = "") and Fields!HasDerogatorySetup.Value,False,True) + + + + #efefef + Top + 5pt + 5pt + + + + + + + + true + true + + + + + =Fields!DerogDiffBookValue.Value + + + + + + + Textbox104 + + =IIF(Fields!PrintDetails.Value and not (Fields!No1_FixedAsset.Value = "") and Fields!HasDerogatorySetup.Value,False,True) + + + + #efefef + Top + 5pt + 5pt + + + + + + + + 0.35278cm + + + + + true + + + + + =Fields!No1_FixedAsset.Value + + + + + + + 7 + + + + + + + + true + + + + + + + + + + + + 6 + + + + + + + + true + true + + + + + =Fields!FormatUntilDate.Value + + + + + + + 5 + + + + + + + + true + + + + + =Fields!Custom1Text_ProjectedDepr.Value + + + + + + + textbox144 + 4 + + + + + + + + true + + + + + =Fields!Custom1NumberOfDays.Value + + + + + + + textbox147 + 3 + + + + + + + + true + true + + + + + =Fields!Custom1Amount.Value + + + + + + + textbox148 + 2 + + + + + + + + true + true + + + + + =Fields!EntryAmounts1.Value + + + + + + + textbox149 + 1 + + + + + + + + true + true + + + + + + + + + + + + Textbox35 + + + + + + + + true + true + + + + + + + + + + + + Textbox66 + + + + + + + + true + true + + + + + + + + + + + + Textbox106 + + + + + + + + 0.35278cm + + + + + true + + + + + =Last(Fields!No1_FixedAsset.Value) + + + + + + + textbox26 + 14 + + + + ="#CCCCCC" + + + Top + 5pt + + + + + + + + true + + + + + =Last(Fields!Description1_FixedAsset.Value) + + + + + + + textbox39 + 13 + + + + ="#CCCCCC" + + + Top + 5pt + 5pt + + + + + + + + true + + + + + + + + + + + + ="#CCCCCC" + + + Middle + 5pt + 5pt + + + + + + + + true + + + + + =Last(Fields!DeprText2.Value) + + + + + + + ="#CCCCCC" + + + Top + 5pt + 5pt + + + 2 + + + + + + + true + true + + + + + =Last(Fields!AssetAmounts1.Value) + + + + + + + textbox51 + 10 + + + + ="#CCCCCC" + + + Top + 5pt + 5pt + + + + + + + + true + true + + + + + =Last(Fields!EntryAmounts1.Value) + + + + + + + textbox161 + 9 + + + + ="#CCCCCC" + + + Top + 5pt + 5pt + + + + + + + + true + true + + + + + =Last(Fields!AssetDerogAmount.Value) + + + + + + + Textbox36 + + =IIF(Fields!PrintDetails.Value and not (Last(Fields!FixedAssetNo.Value) = "") and Fields!HasDerogatorySetup.Value,False,True) + + + + + ="#CCCCCC" + + + Top + 5pt + 5pt + + + + + + + + true + true + + + + + =Last(Fields!AssetDerogBookValue.Value) + + + + + + + Textbox68 + + =IIF(Fields!PrintDetails.Value and not (Last(Fields!FixedAssetNo.Value) = "") and Fields!HasDerogatorySetup.Value,False,True) + + + + + ="#CCCCCC" + + + Top + 5pt + 5pt + + + + + + + + true + true + + + + + =Last(Fields!AssetDerogDiffBookValue.Value) + + + + + + + Textbox107 + + =IIF(Fields!PrintDetails.Value and not (Last(Fields!FixedAssetNo.Value) = "") and Fields!HasDerogatorySetup.Value,False,True) + + + + + ="#CCCCCC" + + + Top + 5pt + 5pt + + + + + + + + 0.35278cm + + + + + true + true + + + + + + + + + + + + Textbox11 + + + 10 + + + + + + + + + + + + + + + 0.35278cm + + + + + true + + + + + + + + + + + + textbox199 + 21 + + + 3 + + + + + + + + true + + + + + =Last(Fields!Custom1Text_ProjectedDepr.Value) + + + + + + 2 + + + + + + + true + true + + + + + =Last(Fields!AssetAmounts2.Value) + + + + + + + textbox204 + 17 + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.4064cm + + + + + true + + + + + + + + + + + + textbox187 + 28 + + + 3 + + + + + + + + true + + + + + =Last(Fields!DeprCustom1Text_ProjectedDepr.Value) + + + + + + 2 + + + + + + + true + true + + + + + =Last(Fields!AssetAmt1AssetAmt2.Value) + + + + + + + textbox181 + 24 + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.35278cm + + + + + true + + + + + + + + + + + + textbox176 + 36 + + + 10 + + + + + + + + + + + + + + + 0.35278cm + + + + + true + + + + + + + + + + + + textbox168 + 43 + + + 3 + + + + + + + + true + + + + + =Last(Fields!SalesPriceFieldname_ProjectedDepr.Value) + + + + + + + textbox171 + 40 + + + 2 + + + + + + + true + true + + + + + =Last(Fields!AssetAmounts3.Value) + + + + + + + 39 + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.35278cm + + + + + true + + + + + + + + + + + + textbox137 + 50 + + + 3 + + + + + + + + true + + + + + =Last(Fields!GainLossFieldname_ProjectedDepr.Value) + + + + + + + textbox160 + 47 + + + 2 + + + + + + + true + true + + + + + =Last(Fields!AssetAmounts4.Value) + + + + + + + 46 + + + + + + + + true + + + + + + + + + + + 4 + + + + + + + + + 0.35278cm + + + + + true + + + + + =Last(Fields!Text002GroupHeadLine.Value) + + + + + + + 64 + + + Top + 5pt + + + 3 + + + + + + + + true + + + + + =Last(Fields!DeprText2.Value) + + + + + + + textbox85 + 62 + + + Top + 5pt + 5pt + + + 2 + + + + + + + true + true + + + + + =last(fields!GroupAmounts_1.Value) + + + + + + + 10 + + + Top + 5pt + 5pt + + + + + + + + true + true + + + + + =Last(Fields!GroupTotalBookValue.Value) + + + + + + + 9 + + + Top + 5pt + 5pt + + + + + + + + true + true + + + + + =Last(Fields!GroupDerogAmount.Value) + + + + + + + Textbox48 + + =IIF((Fields!GroupTotalsInt.Value > 0) AND Last(Fields!DerogAssetsIncluded.Value),False,True) + + + + Top + 5pt + 5pt + + + + + + + + true + true + + + + + =Last(Fields!GroupDerogBookValue.Value) + + + + + + + Textbox79 + + =IIF((Fields!GroupTotalsInt.Value > 0) AND Last(Fields!DerogAssetsIncluded.Value),False,True) + + + + Top + 5pt + 5pt + + + + + + + + true + true + + + + + =Last(Fields!GroupDerogDiffBookValue.Value) + + + + + + + Textbox121 + + =IIF((Fields!GroupTotalsInt.Value > 0) AND Last(Fields!DerogAssetsIncluded.Value),False,True) + + + + Top + 5pt + 5pt + + + + + + + + 0.35278cm + + + + + true + + + + + + + + 3 + + + + + + + + true + + + + + =Last(Fields!Custom1Text.Value) + + + + + + + textbox99 + 68 + + + 2 + + + + + + + true + true + + + + + =Sum(Fields!AssetAmounts2.Value) + + + + + + + 17 + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.35278cm + + + + + true + + + + + + + + + + + 3 + + + + + + + + true + + + + + =Last(Fields!DeprCustom1Text.Value) + + + + + + + textbox206 + 75 + + + 2 + + + + + + + true + true + + + + + =last(fields!GroupAmounts_1.Value) + Sum(Fields!AssetAmounts2.Value) + + + + + + + 24 + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.35278cm + + + + + true + + + + + + + + 10 + + + + + + + + + + + + + + + 0.4064cm + + + + + true + + + + + + + + + + + 3 + + + + + + + + true + + + + + =Last(Fields!SalesPriceFieldname_ProjectedDepr.Value) + + + + + + + textbox143 + 90 + + + 2 + + + + + + + true + true + + + + + =Last(Fields!GroupAmounts3.Value) + + + + + + + textbox145 + 89 + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.35278cm + + + + + true + + + + + + + + + + + 3 + + + + + + + + true + + + + + =Last(Fields!GainLossFieldname_ProjectedDepr.Value) + + + + + + + textbox154 + 97 + + + 2 + + + + + + + true + true + + + + + =Last(Fields!GroupAmounts4.Value) + + + + + + + textbox156 + 96 + + + + + + + + true + + + + + + + + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + After + true + + + After + true + true + + + After + true + true + + + After + true + true + + + + + =IIF(Fields!GroupTotalsInt.Value = 1,Fields!FAClassCode_FixedAsset.Value,"") + =IIF(Fields!GroupTotalsInt.Value = 2,Fields!FASubclassCode_FixedAsset.Value,"") + =IIF(Fields!GroupTotalsInt.Value = 3,Fields!FALocationCode_FixedAsset.Value,"") + =IIF(Fields!GroupTotalsInt.Value = 4,Fields!CompofMainAss_FixedAsset.Value,"") + =IIF(Fields!GroupTotalsInt.Value = 5,Fields!GlobalDim1Code_FixedAsset.Value,"") + =IIF(Fields!GroupTotalsInt.Value = 6,Fields!GlobalDim2Code_FixedAsset.Value,"") + =IIF(Fields!GroupTotalsInt.Value = 7,Fields!FAPostingGroup_FixedAsset.Value,"") + + + + + + =IIF(Fields!PrintDetails.Value and Fields!GroupTotalsInt.Value > 0,False,True) + + After + true + + + + =IIF(Fields!PrintDetails.Value and (Fields!GroupTotalsInt.Value > 0),False,True) + + After + true + + + + + =Fields!FixedAssetNo.Value + + + + + + =IIF(Fields!PrintDetails.Value,False,True) + + After + true + + + + Detail + + + + + =IIF(Fields!PrintDetails.Value and not (Fields!IncludePostedFrom.Value = "") and (Fields!FALedgerEntryEntryNo.Value > 0),False,True) + + + + + =IIF(Fields!PrintDetails.Value and not (Fields!No1_FixedAsset.Value = ""),False,True) + + + + + =IIF(Fields!PrintDetails.Value and Fields!DeprBookUseCustom1Depr.Value and not (Fields!Custom1Amount.Value = 0),False,True) + + + + Detail_Collection + Output + true + + + + =IIF(Fields!PrintDetails.Value and not (Last(Fields!FixedAssetNo.Value) = ""),False,True) + + Before + true + + + + =IIF(Fields!PrintDetails.Value and not (Last(Fields!FixedAssetNo.Value) = ""),False,True) + + Before + + + + =IIF(Fields!PrintDetails.Value and Fields!DeprBookUseCustom1Depr.Value and not (Last(Fields!AssetAmounts2.Value) = 0),False,True) + + Before + true + + + + =IIF(Fields!PrintDetails.Value and Fields!DeprBookUseCustom1Depr.Value and not (Last(Fields!AssetAmounts2.Value) = 0),False,True) + + Before + true + + + + =IIF(Fields!PrintDetails.Value and Fields!DoProjectedDisposal.Value and not (Last(Fields!FixedAssetNo.Value) = ""),False,True) + + Before + true + + + + =IIF(Fields!PrintDetails.Value and Fields!DoProjectedDisposal.Value and not (Last(Fields!FixedAssetNo.Value) = ""),False,True) + + Before + true + + + + =IIF(Fields!PrintDetails.Value and Fields!DoProjectedDisposal.Value and not (Last(Fields!FixedAssetNo.Value) = ""),False,True) + + Before + true + + + + + + =IIF(Fields!GroupTotalsInt.Value > 0,False,True) + + Before + true + + + + =IIF(Fields!DeprBookUseCustom1Depr.Value and (Fields!GroupTotalsInt.Value > 0),False,True) + + Before + true + + + + =IIF(Fields!DeprBookUseCustom1Depr.Value and (Fields!GroupTotalsInt.Value > 0),False,True) + + Before + true + + + + =IIF(Fields!ProjectedDisposal.Value and (Fields!GroupTotalsInt.Value > 0),False,True) + + Before + true + + + + =IIF(Fields!ProjectedDisposal.Value and (Fields!GroupTotalsInt.Value > 0),False,True) + + Before + true + + + + =IIF(Fields!ProjectedDisposal.Value and (Fields!GroupTotalsInt.Value > 0),False,True) + + Before + true + + + + + + DataSet_Result + + + =Fields!FALedgerEntryFAPostingDateCaption.Value + GreaterThan + + + + + + 7.86839cm + 26.08158cm + 1 + + =IIF(Fields!FALedgerEntryFAPostingDateCaption.Value = "",True,False) + + NoOutput + + + + + + + true + + + + + =First(Fields!CurrReportPAGENOCaption.Value,"DataSet_Result") & " " & Globals!PageNumber + + + + + + + 0.38595cm + 10.7375cm + 10pt + 15.34411cm + 1 + + + + true + + + + + =First(Fields!DeprBookText.Value, "DataSet_Result") + + + + + + + true + true + + + + + =Globals!ExecutionTime + + + + + + + 10.7375cm + 10pt + 15.34411cm + 3 + + + + true + true + + + + + =User!UserID + + + + + + + 0.78779cm + 10.7375cm + 10pt + 15.34411cm + 4 + + + + true + + + + + =First(Fields!CompanyName.Value,"DataSet_Result") + + + + + + + + + + + + 2 + + + + + + + true + true + + + + + + + + + + + 5 + + + + + + + + + + 0.49961in + + + + + true + + + + + =First(Fields!FANo.Value) + + + + + + + + + + + true + + + + + =First(Fields!FADesc.Value) + + + + + + + + + + + true + + + + + =First(Fields!TextTitle1.Value) + + + + + + + 28 + + + + + + + + true + + + + + =First(Fields!AcquisitionCostCaption.Value) + + + + + + + 27 + + + + + + + + true + + + + + =First(Fields!PerctgProfessionalTaxCaption.Value) + + + + + + + 26 + + + + + + + + true + + + + + =First(Fields!RentingValueCaption.Value) + + + + + + + 25 + + + + + + + + true + + + + + + + + + + + + + 0.16654in + + + + + true + + + + + + + + + + + 7 + + + + + + + + + + + + 0.16654in + + + + + true + + + + + + + + + + + 7 + + + + + + + + + + + + 0.16654in + + + + + true + + + + + =First(Fields!GroupTitle.Value) + + + + + + 2 + + + + + + + true + + + + + + + + 5 + + + + + + + + + + 0.16654in + + + + + true + + + + + =Fields!No_FixedAsset.Value + + + + + + + 6 + + + + + + + + true + + + + + =Fields!Desc_FixedAsset.Value + + + + + + + + + + + true + + + + + =Fields!FormatDate1.Value + + + + + + + 4 + + + + + + + + true + true + + + + + =Code.BlankZero(Fields!Amts1.Value) + + + + + + + + + + + true + true + + + + + =Code.BlankZero(Fields!PercentageTaxProfessionalTax.Value) + + + + + + + + + + + true + true + + + + + =Code.BlankZero(Fields!Amts2.Value) + + + + + + + + + + + true + + + + + =Fields!SetSalesMark.Value + + + + + + + + + + + 0.16654in + + + + + true + + + + + =First(Fields!SubTotalGroupTitle.Value) + + + + + + 2 + + + + + + + true + + + + + + + + + + + + + true + true + + + + + =Code.BlankZero(Sum(Fields!GroupAmts1.Value)) + + + + + + + + + + + true + + + + + + + + + + + + + true + true + + + + + =Code.BlankZero(Sum(Fields!GroupAmts2.Value)) + + + + + + + + + + + true + + + + + + + + + + + + + 0.16654in + + + + + true + + + + + + + + + + + 7 + + + + + + + + + + + + 0.16654in + + + + + true + + + + + =First(Fields!TotalCaption.Value) + + + + + + + + + + + true + + + + + + + + 2 + + + + + + + true + true + + + + + =Code.BlankZero(Last(Fields!TotalAmts1.Value)) + + + + + + + + + + + true + + + + + + + + + + + + + true + true + + + + + =Code.BlankZero(Last(Fields!TotalAmts2.Value)) + + + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + After + true + true + + + After + true + true + + + + =IIF(Fields!GroupTotalsNo.Value = 0 OR (NOT Fields!PrintDetails.Value),False,True) + + After + true + true + + + + + =IIF(Fields!GroupTotalsNo.Value = 2 , Fields!FASubclassCode_FixedAsset.Value , 1) + =IIF(Fields!GroupTotalsNo.Value = 1 , Fields!FAClassCode_FixedAsset.Value , 1) + =IIF(Fields!GroupTotalsNo.Value =5, Fields!GlobalDim1Code_FixedAsset.Value , 1) + =IIF(Fields!GroupTotalsNo.Value = 6 , Fields!GlobalDim2Code_FixedAsset.Value , 1) + =IIF(Fields!GroupTotalsNo.Value = 4 , Fields!CompOfMainAsset_FixedAsset.Value , 1) + =IIF(Fields!GroupTotalsNo.Value = 3 , Fields!FALocCode_FixedAsset.Value , 1) + + + + + + =IIF((NOT Fields!GroupTotalsNo.Value = 0) AND Fields!PrintDetails.Value,False,True) + + After + true + + + + =IIF((NOT Fields!GroupTotalsNo.Value = 0) AND Fields!PrintDetails.Value,False,True) + + After + true + + + + Detail + + + + + =IIF(Fields!PrintDetails.Value,False,True) + + + + Detail_Collection + Output + true + + + + =IIF(Fields!GroupTotalsNo.Value = 0,True,False) + + Before + true + + + + + Before + true + + + Before + true + + + + DataSet_Result + 0.84656cm + 4.6531cm + 15.79997cm + + + + + + + + + + + 0.16654in + + + + + true + + + + + + + + + + + + + + + + + + + + + + + =IIF(Fields!FAFilter.Value = "",True,False) + + After + true + + + + =IIF(Fields!FAFilter.Value = "",True,False) + + After + true + + + + 0.84602cm + 18.09524cm + 1 + + + + + + + true + + + + + =Fields!DeprBookText.Value + + + + + + + true + + + + + =Fields!CompanyName.Value + + + + + + + true + + + + + =Fields!MainTextTitle.Value + + + + + + + true + + + + + =Globals!ExecutionTime + + + + + + + 10.65cm + 0.423cm + 7.5cm + 4 + + + + true + true + + + + + =User!UserID + + + + + + + 0.846cm + 9.65cm + 0.423cm + 8.5cm + 5 + + + + true + + + + + =Globals!PageNumber + + + + + + + 0.423cm + 17.7cm + 0.423cm + 0.45cm + 6 + + + + + + 8 + + + + + + + + + + + + + 0.423cm + + + + + true + true + + + + + + + + 8 + + + + + + + + + + + + + 0.846cm + + + + + + + true + + + + + =First(Fields!Seq_NoCaption_Control1500072.Value) + + + + + + 0.423cm + 0.51187in + 1 + + + + true + true + + + + + + + + + ContentsOnly + + + + + + + + + true + + + + + =First(Fields!TIN_No_Caption_Control1500073.Value) + + + + + + 0.423cm + 0.2cm + 1 + + + + true + true + + + + + + + + + ContentsOnly + + + + + + + + + true + + + + + =First(Fields!Name_of_PayeeCaption_Control1500074.Value) + + + + + + 0.423cm + 3.5cm + 1 + + + + true + true + + + + + + + + + ContentsOnly + + + + + + + true + + + + + =First(Fields!Nature_of_Income_PaymentCaption_Control1500075.Value) + + + + + + + + + + + + + true + + + + + =First(Fields!WHT_Entry__WHT_Revenue_Type_Caption.Value) + + + + + + + + + + + + + true + + + + + =First(Fields!WHT_Entry__Base__LCY___Control1500082Caption.Value) + + + + + + + + + + + + + + true + + + + + =First(Fields!WHT____rcountCaption.Value) + + + + + + + + + + + + + + true + + + + + =Fields!WHT_Entry__Amount__LCY___Control1500080Caption.Value + + + + + + textbox338 + + + + + + + + 0.423cm + + + + + + + true + true + + + + + =Fields!j.Value + + + + + + + + + + ContentsOnly + + + + + + + true + + + + + =Fields!CI__VAT_Registration_No___Control1500083.Value + + + + + + + + + + + + + true + + + + + =Fields!VendName_Control1500084.Value + + + + + + + + + + + + + true + + + + + =Fields!WHT_Entry__WHT_Prod__Posting_Group_.Value + + + + + + + + + + + + + true + + + + + =Fields!WHT_Entry__WHT_Revenue_Type_.Value + + + + + + + + + + + + + true + + + + + =Sum(Fields!WHT_Entry__Base__LCY__.Value) + + + + + + + + + + + + + + true + + + + + =Sum(Fields!WHT____rcount.Value) + + + + + + + + + + + + + + true + + + + + =Sum(Fields!WHT_Entry__Amount__LCY__.Value) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + After + true + true + + + After + true + true + + + After + true + true + + + + + =Fields!WHT_Entry_Bill_to_Pay_to__No.Value + + + + + + + =Fields!WHT_Entry_Revenue.Value + + + + + + + =Fields!WHT_Entry_Posting.Value + + + + + Before + true + + + + + + + + + + DataSet_Result + + + =Fields!WHT_Entry_Bill_to_Pay_to__No.Value + GreaterThan + + + + + + 6.99536in + 6.53625in + 2 + + + + + + 1.4cm + + + 2cm + + + 4cm + + + 2cm + + + 1.8cm + + + 1.8cm + + + + + 0.846cm + + + + + + + true + + + + + =First(Fields!Seq_NoCaption.Value) + + + + + + 0.423cm + 0.51187in + 1 + + + + true + true + + + + + + + + + ContentsOnly + + + + + + + + + true + + + + + =First(Fields!TIN_No_Caption_Control1500054.Value) + + + + + + 0.423cm + 0.2cm + + + + ContentsOnly + + + + + + + + + true + + + + + =First(Fields!Name_of_PayeeCaption.Value) + + + + + + 0.423cm + 3.5cm + + + + ContentsOnly + + + + + + + true + + + + + =First(Fields!Nature_of_Income_PaymentCaption.Value) + + + + + + textbox277 + + + + + + + + true + + + + + =First(Fields!WHT_Revenue_TypeCaption.Value) + + + + + + textbox286 + + + + + + + + true + + + + + =First(Fields!Applied_AmountCaption.Value) + + + + + + textbox278 + + + + + + + + 0.423cm + + + + + true + true + + + + + =Fields!i.Value + + + + + + + + + + + + + + true + + + + + =Fields!CI__VAT_Registration_No___Control1500060.Value + + + + + + + + + + + + + true + + + + + =Fields!VendName.Value + + + + + + + + + + + + + true + + + + + =Fields!WHTEntry3___WHT_Prod__Posting_Group_.Value + + + + + + + + + + + + + true + + + + + =Fields!WHTEntry3___WHT_Revenue_Type_.Value + + + + + + + + + + + + + true + + + + + =Fields!WHTEntry3___Base__LCY__.Value + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + + + + 6 + + + + + + + + + + + + + + + + + + + + + + + + + After + true + + + + + =Fields!WHT_Entry___Bill_to_Pay_to_No__.Value + + + + + + + =Fields!WHT_Entry___WHT_Revenue_Type_.Value + + + + + + + =Fields!WHT_Entry___WHT_Prod__Posting_Group_.Value + + + + + Before + true + + + Before + true + + + + + + + + + + DataSet_Result + + + =Fields!WHT_Entry___Bill_to_Pay_to_No__.Value + GreaterThan + + + + + + 6.32914in + 0.66622in + 5.11875in + 1 + + + + + + 2.1cm + + + 2.7cm + + + 2.55cm + + + 1.8cm + + + 1.5cm + + + 1.8cm + + + 1.8cm + + + 2.1cm + + + 2.1cm + + + + + 1.269cm + + + + + + + true + + + + + =Fields!COMPANYNAME.Value + + + + + + 0.423cm + 0.423cm + 2.48062in + 1 + + + + true + true + + + + + + + + + ContentsOnly + + 3 + + + + + + + + true + + + + + =Fields!DataItem1500006.Value + + + + + + + + 4 + + + + + + + + + true + + + + + + + + + + + + + true + + + + + =Fields!BIR_Form_No____1604___ECaption.Value + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Fields!For_the_YearCaption.Value + + + + + + + + + + + + + true + + + + + =Fields!DMY2DATE_1_1_CurrYear_.Value + + + + + + + + + + + + + true + + + + + =Fields!DMY2DATE_31_12_CurrYear_.Value + + + + + + + + + + + + + true + + + + + + + + + + + textbox6 + + + 6 + + + + + + + + + + + 0.423cm + + + + + true + true + + + + + + + + + + + textbox4 + + + 9 + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Fields!TIN_No_Caption.Value + + + + + + + + + + + + + true + + + + + =Fields!CI__VAT_Registration_No__.Value + + + + + + + + 2 + + + + + + + true + + + + + =Fields!RDO_CodeCaption.Value + + + + + + textbox7 + + + + + + + + true + + + + + =Fields!CI__RDO_Code_.Value + + + + + + + + + + + + + true + + + + + =Fields!Line_of_BusinessCaption.Value + + + + + + + + 2 + + + + + + + true + + + + + =Fields!CI__Industrial_Classification_.Value + + + + + + + + 2 + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox35 + + + 9 + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Fields!Withholding_agent_nameCaption.Value + + + + + + + + + + + + + true + + + + + =Fields!CI_Name.Value + + + + + + + + 6 + + + + + + + + + + + true + + + + + =Fields!Telephone_NoCaption.Value + + + + + + + + + + + + + true + + + + + =Fields!CI__Phone_No__.Value + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox8 + + + 9 + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Fields!AddressCaption.Value + + + + + + + + + + + + + true + + + + + =Fields!CI_Address.Value + + + + + + + + 6 + + + + + + + + + + + true + + + + + =Fields!Zip_CodeCaption.Value + + + + + + + + + + + + + true + + + + + =Fields!CI__Post_Code_.Value + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox9 + + + 9 + + + + + + + + + + + + + + 0.846cm + + + + + true + + + + + =Fields!MonthCaption.Value + + + + + + + + + + + + + true + + + + + =Fields!Date_of_RemittanceCaption.Value + + + + + + + + + + + + + + true + + + + + =Fields!Name_of_Bank_Bank_Code__ROR_No__IF_ANYCaption.Value + + + + + + + + 2 + + + + + + + true + + + + + =Fields!Taxes_WithHeldCaption.Value + + + + + + + + 2 + + + + + + + true + + + + + =Fields!PenaltiesCaption.Value + + + + + + + + + + + + + true + + + + + =Fields!Total_Amount_RemittedCaption.Value + + + + + + + + + + + + + true + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox78 + + + 9 + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Fields!JANCaption.Value + + + + + + + + + + + + + true + + + + + + + + 3 + + + + + + + + true + + + + + =Fields!AmtJan.Value + + + + + + + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox10 + + + 9 + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Fields!FEBCaption.Value + + + + + + + + + + + + + true + + + + + + + + 3 + + + + + + + + true + + + + + =Fields!AmtFeb.Value + + + + + + + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox95 + + + 9 + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Fields!MARCaption.Value + + + + + + + + + + + + + true + + + + + + + + 3 + + + + + + + + true + + + + + =Fields!AmtMarch.Value + + + + + + + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox196 + + + 9 + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Fields!APRCaption.Value + + + + + + + + + + + + + true + + + + + + + + 3 + + + + + + + + true + + + + + =Fields!AmtApril.Value + + + + + + + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox40 + + + 9 + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Fields!MAYCaption.Value + + + + + + + + + + + + + true + + + + + + + + 3 + + + + + + + + true + + + + + =Fields!AmtMay.Value + + + + + + + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox205 + + + 9 + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Fields!JUNCaption.Value + + + + + + + + + + + + + true + + + + + + + + 3 + + + + + + + + true + + + + + =Fields!AmtJune.Value + + + + + + + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox214 + + + 9 + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Fields!JULCaption.Value + + + + + + + + + + + + + true + + + + + + + + 3 + + + + + + + + true + + + + + =Fields!AmtJuly.Value + + + + + + + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox223 + + + 9 + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Fields!AUGCaption.Value + + + + + + + + + + + + + true + + + + + + + + 3 + + + + + + + + true + + + + + =Fields!AmtAug.Value + + + + + + + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox232 + + + 9 + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Fields!SEPTCaption.Value + + + + + + + + + + + + + true + + + + + + + + 3 + + + + + + + + true + + + + + =Fields!AmtSept.Value + + + + + + + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox241 + + + 9 + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Fields!OCTCaption.Value + + + + + + + + + + + + + true + + + + + + + + 3 + + + + + + + + true + + + + + =Fields!AmtOct.Value + + + + + + + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox250 + + + 9 + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Fields!NOVCaption.Value + + + + + + + + + + + + + true + + + + + + + + 3 + + + + + + + + true + + + + + =Fields!AmtNov.Value + + + + + + + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox259 + + + 9 + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Fields!DECCaption.Value + + + + + + + + + + + + + true + + + + + + + + 3 + + + + + + + + true + + + + + =Fields!AmtDec.Value + + + + + + + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox268 + + + 9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Detail + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Detail_Collection + Output + true + + + + DataSet_Result + + + =Fields!COMPANYNAME.Value + GreaterThan + + + + + + 16.074cm + + + 19.89cm + + 18.45cm + + 29.7cm + 21cm + 11in + 8.5in + 1.5cm + 0cm + 2cm + 2cm + + + + Public Function BlankZero(ByVal Value As Decimal) + if Value = 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankPos(ByVal Value As Decimal) + if Value > 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankZeroAndPos(ByVal Value As Decimal) + if Value >= 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankNeg(ByVal Value As Decimal) + if Value < 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankNegAndZero(ByVal Value As Decimal) + if Value <= 0 then + Return "" + end if + Return Value +End Function + + =User!Language + true + Invalid + 97145c68-f62f-4641-b593-a404bc4cef09 + + + + + CI__Post_Code_ + + + CI__Phone_No__ + + + CI__Industrial_Classification_ + + + CI_Address + + + CI_Name + + + CI__RDO_Code_ + + + AmtNov + + + AmtNovFormat + + + AmtDec + + + AmtDecFormat + + + AmtOct + + + AmtOctFormat + + + AmtSept + + + AmtSeptFormat + + + AmtAug + + + AmtAugFormat + + + AmtJuly + + + AmtJulyFormat + + + AmtJune + + + AmtJuneFormat + + + AmtMay + + + AmtMayFormat + + + AmtApril + + + AmtAprilFormat + + + AmtMarch + + + AmtMarchFormat + + + AmtFeb + + + AmtFebFormat + + + AmtJan + + + AmtJanFormat + + + CI__VAT_Registration_No__ + + + COMPANYNAME + + + DMY2DATE_1_1_CurrYear_ + + + DMY2DATE_31_12_CurrYear_ + + + Integer_Number + + + Zip_CodeCaption + + + Telephone_NoCaption + + + BIR_Form_No____1604___ECaption + + + DataItem1500006 + + + Line_of_BusinessCaption + + + RDO_CodeCaption + + + AddressCaption + + + JANCaption + + + FEBCaption + + + MARCaption + + + APRCaption + + + MAYCaption + + + JUNCaption + + + JULCaption + + + AUGCaption + + + SEPTCaption + + + OCTCaption + + + NOVCaption + + + DECCaption + + + Withholding_agent_nameCaption + + + TIN_No_Caption + + + For_the_YearCaption + + + MonthCaption + + + Date_of_RemittanceCaption + + + Name_of_Bank_Bank_Code__ROR_No__IF_ANYCaption + + + Taxes_WithHeldCaption + + + PenaltiesCaption + + + Total_Amount_RemittedCaption + + + WHT_Entry___WHT_Prod__Posting_Group_ + + + WHT_Entry___Bill_to_Pay_to_No__ + + + WHT_Entry___WHT_Revenue_Type_ + + + WHTProdPostGrp + + + WHTEntry3___WHT_Revenue_Type_ + + + WHTEntry3___Base__LCY__ + + + WHTEntry3___Base__LCY__Format + + + WHTEntry3___WHT_Prod__Posting_Group_ + + + VendName + + + CI__VAT_Registration_No___Control1500060 + + + i + + + WHTEntry3__Entry_No_ + + + WHT_Revenue_TypeCaption + + + Applied_AmountCaption + + + Nature_of_Income_PaymentCaption + + + Name_of_PayeeCaption + + + TIN_No_Caption_Control1500054 + + + Seq_NoCaption + + + WHT_Entry_Bill_to_Pay_to__No + + + WHT_Entry_Revenue + + + WHT_Entry_Posting + + + WHT_Entry__WHT_Bus__Posting_Group_ + + + WHT_Entry__Base__LCY__ + + + WHT_Entry__Base__LCY__Format + + + WHT_Entry__WHT___ + + + WHT_Entry__WHT___Format + + + WHT_Entry__Amount__LCY__ + + + WHT_Entry__Amount__LCY__Format + + + WHT_Entry__Amount__LCY___Control1500080 + + + WHT_Entry__Amount__LCY___Control1500080Format + + + WHT____rcount + + + WHT____rcountFormat + + + WHT_Entry__Base__LCY___Control1500082 + + + WHT_Entry__Base__LCY___Control1500082Format + + + CI__VAT_Registration_No___Control1500083 + + + VendName_Control1500084 + + + WHT_Entry__WHT_Revenue_Type_ + + + WHT_Entry__WHT_Prod__Posting_Group_ + + + j + + + WHT_Entry_Entry_No_ + + + WHT_Entry__WHT_Revenue_Type_Caption + + + WHT_Entry__Base__LCY___Control1500082Caption + + + WHT____rcountCaption + + + WHT_Entry__Amount__LCY___Control1500080Caption + + + Seq_NoCaption_Control1500072 + + + TIN_No_Caption_Control1500073 + + + Name_of_PayeeCaption_Control1500074 + + + Nature_of_Income_PaymentCaption_Control1500075 + + + + DataSource + + + + + \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTCalcandPostSettlement.Report.al b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTCalcandPostSettlement.Report.al new file mode 100644 index 0000000000..c1e1fda9e5 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTCalcandPostSettlement.Report.al @@ -0,0 +1,516 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.Finance.WithholdingTax; + +using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Finance.GeneralLedger.Journal; +using Microsoft.Finance.GeneralLedger.Posting; +using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Foundation.AuditCodes; +using Microsoft.Purchases.Vendor; +using Microsoft.WithholdingTax; +using System.Utilities; + +report 6784 "WHT Calc. and Post Settlement" +{ + DefaultLayout = RDLC; + RDLCLayout = 'src\Purchase\Report\WHTCalcandPostSettlement.rdlc'; + ApplicationArea = Basic, Suite; + Caption = 'Calc. and Post WHT Settlement'; + UsageCategory = ReportsAndAnalysis; + + dataset + { + dataitem(WHTPostingSetup; "Withholding Tax Posting Setup") + { + DataItemTableView = sorting("Wthldg. Tax Bus. Post. Group", "Wthldg. Tax Prod. Post. Group") where("Revenue Type" = filter(<> '')); + RequestFilterFields = "Wthldg. Tax Bus. Post. Group"; + column(USERID; UserId) + { + } + column(COMPANYNAME; COMPANYPROPERTY.DisplayName()) + { + } + column(FORMAT_TODAY_0_4_; Format(Today, 0, 4)) + { + } + column(STRSUBSTNO_Text004_PostSettlement_; StrSubstNo(PostSettlementLbl, PostSettlement)) + { + } + column(Add_WHT_Entries__Number; "Add WHT Entries".Number) + { + } + column(WHTPostingSetup_WHT_Business_Posting_Group; "Wthldg. Tax Bus. Post. Group") + { + } + column(WHTPostingSetup_WHT_Product_Posting_Group; "Wthldg. Tax Prod. Post. Group") + { + } + column(CurrReport_PAGENOCaption; CurrReport_PAGENOCaptionLbl) + { + } + column(Calc__and_Post_WHT_SettlementCaption; Calc__and_Post_WHT_SettlementCaptionLbl) + { + } + column(DisplayEntries_AmountCaption; DisplayEntries.FieldCaption(Amount)) + { + } + column(DisplayEntries__Amount__LCY__Caption; DisplayEntries.FieldCaption("Amount (LCY)")) + { + } + column(DisplayEntries_BaseCaption; DisplayEntries.FieldCaption(Base)) + { + } + column(DisplayEntries__Currency_Code_Caption; DisplayEntries.FieldCaption("Currency Code")) + { + } + column(DisplayEntries__WHT_Prod__Posting_Group__Control1500027Caption; DisplayEntries.FieldCaption("Wthldg. Tax Prod. Post. Group")) + { + } + column(DisplayEntries__WHT___Caption; DisplayEntries.FieldCaption("Withholding Tax %")) + { + } + column(DisplayEntries__WHT_Bus__Posting_Group__Control1500026Caption; DisplayEntries.FieldCaption("Wthldg. Tax Bus. Post. Group")) + { + } + column(DisplayEntries__Posting_Date_Caption; DisplayEntries__Posting_Date_CaptionLbl) + { + } + column(DisplayEntries__Bill_to_Pay_to_No__Caption; DisplayEntries.FieldCaption("Bill-to/Pay-to No.")) + { + } + column(DisplayEntries__Document_No__Caption; DisplayEntries.FieldCaption("Document No.")) + { + } + column(DisplayEntries__Document_Type_Caption; DisplayEntries.FieldCaption("Document Type")) + { + } + column(DisplayEntries__Entry_No__Caption; DisplayEntries.FieldCaption("Entry No.")) + { + } + dataitem("Add WHT Entries"; "Integer") + { + DataItemTableView = sorting(Number) where(Number = const(1)); + dataitem(DisplayEntries; "Withholding Tax Entry") + { + column(DisplayEntries__WHT_Bus__Posting_Group_; "Wthldg. Tax Bus. Post. Group") + { + } + column(DisplayEntries__WHT_Prod__Posting_Group_; "Wthldg. Tax Prod. Post. Group") + { + } + column(DisplayEntries__Document_Type_; "Document Type") + { + } + column(DisplayEntries__Entry_No__; "Entry No.") + { + } + column(DisplayEntries__Document_No__; "Document No.") + { + } + column(DisplayEntries__Bill_to_Pay_to_No__; "Bill-to/Pay-to No.") + { + } + column(FORMAT__Posting_Date__; Format("Posting Date")) + { + } + column(DisplayEntries__WHT_Bus__Posting_Group__Control1500026; "Wthldg. Tax Bus. Post. Group") + { + } + column(DisplayEntries__WHT_Prod__Posting_Group__Control1500027; "Wthldg. Tax Prod. Post. Group") + { + } + column(DisplayEntries__WHT___; "Withholding Tax %") + { + } + column(DisplayEntries__Amount__LCY__; "Amount (LCY)") + { + } + column(DisplayEntries_Amount; Amount) + { + } + column(DisplayEntries__Currency_Code_; "Currency Code") + { + } + column(DisplayEntries_Base; Base) + { + } + column(PrintWHTEntries; PrintWHTEntries) + { + } + column(DisplayEntries_Base_Control1500033; Base) + { + } + column(DisplayEntries__Amount__LCY___Control1500034; "Amount (LCY)") + { + } + + trigger OnPreDataItem() + begin + Reset(); + SetCurrentKey("Document Type", "Transaction Type", Settled, "Wthldg. Tax Bus. Post. Group", + "Wthldg. Tax Prod. Post. Group", "Posting Date"); + SetFilter("Posting Date", '%1..%2', StartDate, EndDate); + SetRange("Transaction Type", "Transaction Type"::Purchase); + SetRange("Wthldg. Tax Bus. Post. Group", WHTPostingSetup."Wthldg. Tax Bus. Post. Group"); + SetRange("Wthldg. Tax Prod. Post. Group", WHTPostingSetup."Wthldg. Tax Prod. Post. Group"); + SetFilter("Amount (LCY)", '<> 0'); + + if not PostSettlement then + SetRange(Settled, false); + end; + + trigger OnAfterGetRecord() + var + WHTManagement: Codeunit "Withholding Tax Mgmt."; + begin + if GLSetup."Round Amount Wthldg. Tax Calc" then begin + "Amount (LCY)" := WHTManagement.RoundWithholdingTaxAmount("Amount (LCY)"); + Amount := WHTManagement.RoundWithholdingTaxAmount(Amount); + end; + end; + } + + trigger OnAfterGetRecord() + begin + SourceCodeSetup.Get(); + WHTEntry.Reset(); + WHTEntry.SetCurrentKey("Document Type", "Transaction Type", Settled, "Wthldg. Tax Bus. Post. Group", + "Wthldg. Tax Prod. Post. Group", "Posting Date"); + WHTEntry.SetFilter("Posting Date", '%1..%2', StartDate, EndDate); + WHTEntry.SetRange(Settled, false); + WHTEntry.SetRange("Transaction Type", WHTEntry."Transaction Type"::Purchase); + WHTEntry.SetRange("Wthldg. Tax Bus. Post. Group", WHTPostingSetup."Wthldg. Tax Bus. Post. Group"); + WHTEntry.SetRange("Wthldg. Tax Prod. Post. Group", WHTPostingSetup."Wthldg. Tax Prod. Post. Group"); + WHTEntry.CalcSums("Amount (LCY)"); + WHTAmount := WHTEntry."Amount (LCY)"; + if (WHTAmount <> 0) and (RoundAccNo <> '') then begin + TotalAmount := Round(WHTAmount); + RoundAmount := Round(TotalAmount, 1, '<'); + BalanceAmount := TotalAmount - RoundAmount; + + Clear(GenJnlLine); + GenJnlLine."System-Created Entry" := true; + GenJnlLine."Account Type" := GenJnlLine."Account Type"::"G/L Account"; + GenJnlLine.Description := + DelChr( + StrSubstNo( + PayableWHTSettlementLbl, + WHTPostingSetup."Wthldg. Tax Bus. Post. Group", + WHTPostingSetup."Wthldg. Tax Prod. Post. Group"), + '>'); + GenJnlLine."Wthldg. Tax Bus. Post. Group" := WHTPostingSetup."Wthldg. Tax Bus. Post. Group"; + GenJnlLine."Wthldg. Tax Prod. Post. Group" := WHTPostingSetup."Wthldg. Tax Prod. Post. Group"; + GenJnlLine."Posting Date" := PostingDate; + GenJnlLine."Document Type" := GenJnlLine."Document Type"::" "; + GenJnlLine."Document No." := DocNo; + GenJnlLine."Source Code" := SourceCodeSetup."Withholding Tax Settlement"; + WHTPostingSetup.TestField("Payable Wthldg. Tax Acc. Code"); + GenJnlLine."Account No." := WHTPostingSetup."Payable Wthldg. Tax Acc. Code"; + GenJnlLine.Amount := Round(WHTAmount); + if PostSettlement then + GenJnlPostLine.Run(GenJnlLine); + + Clear(GenJnlLine); + GenJnlLine.Init(); + GenJnlLine."System-Created Entry" := true; + GenJnlLine."Account Type" := GenJnlLine."Account Type"::"G/L Account"; + GenJnlLine.Description := + DelChr( + StrSubstNo( + PayableWHTSettlementLbl, + WHTPostingSetup."Wthldg. Tax Bus. Post. Group", + WHTPostingSetup."Wthldg. Tax Prod. Post. Group"), + '>'); + GenJnlLine."Wthldg. Tax Bus. Post. Group" := WHTPostingSetup."Wthldg. Tax Bus. Post. Group"; + GenJnlLine."Wthldg. Tax Prod. Post. Group" := WHTPostingSetup."Wthldg. Tax Prod. Post. Group"; + GenJnlLine."Posting Date" := PostingDate; + GenJnlLine."Document Type" := GenJnlLine."Document Type"::" "; + GenJnlLine."Document No." := DocNo; + GenJnlLine."Source Code" := SourceCodeSetup."Withholding Tax Settlement"; + GenJnlLine.Amount := -RoundAmount; + case AccType of + AccType::Vendor: + GenJnlLine."Account Type" := GenJnlLine."Account Type"::Vendor; + AccType::"G/L Account": + GenJnlLine."Account Type" := GenJnlLine."Account Type"::"G/L Account"; + end; + GenJnlLine."Account No." := GLAccSettle; + if PostSettlement then + GenJnlPostLine.Run(GenJnlLine); + + Clear(GenJnlLine); + GenJnlLine."System-Created Entry" := true; + GenJnlLine."Account Type" := GenJnlLine."Account Type"::"G/L Account"; + GenJnlLine.Description := 'WHT Settlement'; + GenJnlLine."Wthldg. Tax Bus. Post. Group" := WHTPostingSetup."Wthldg. Tax Bus. Post. Group"; + GenJnlLine."Wthldg. Tax Prod. Post. Group" := WHTPostingSetup."Wthldg. Tax Prod. Post. Group"; + GenJnlLine."Posting Date" := PostingDate; + GenJnlLine."Document Type" := GenJnlLine."Document Type"::" "; + GenJnlLine."Document No." := DocNo; + GenJnlLine."Source Code" := SourceCodeSetup."Withholding Tax Settlement"; + GenJnlLine."Account Type" := GenJnlLine."Account Type"::"G/L Account"; + GenJnlLine."Account No." := RoundAccNo; + GenJnlLine.Amount := -BalanceAmount; + if PostSettlement then begin + GenJnlPostLine.Run(GenJnlLine); + WHTEntry.ModifyAll(Settled, true); + end; + end else + if (WHTAmount <> 0) and (RoundAccNo = '') then begin + Clear(GenJnlLine); + GenJnlLine."System-Created Entry" := true; + GenJnlLine."Account Type" := GenJnlLine."Account Type"::"G/L Account"; + GenJnlLine.Description := + DelChr( + StrSubstNo( + PayableWHTSettlementLbl, + WHTPostingSetup."Wthldg. Tax Bus. Post. Group", + WHTPostingSetup."Wthldg. Tax Prod. Post. Group"), + '>'); + GenJnlLine."Wthldg. Tax Bus. Post. Group" := WHTPostingSetup."Wthldg. Tax Bus. Post. Group"; + GenJnlLine."Wthldg. Tax Prod. Post. Group" := WHTPostingSetup."Wthldg. Tax Prod. Post. Group"; + GenJnlLine."Posting Date" := PostingDate; + GenJnlLine."Document Type" := GenJnlLine."Document Type"::" "; + GenJnlLine."Document No." := DocNo; + GenJnlLine."Source Code" := SourceCodeSetup."Withholding Tax Settlement"; + WHTPostingSetup.TestField("Payable Wthldg. Tax Acc. Code"); + GenJnlLine."Account No." := WHTPostingSetup."Payable Wthldg. Tax Acc. Code"; + GenJnlLine.Amount := Round(WHTAmount); + case AccType of + AccType::Vendor: + GenJnlLine."Bal. Account Type" := GenJnlLine."Bal. Account Type"::Vendor; + AccType::"G/L Account": + GenJnlLine."Bal. Account Type" := GenJnlLine."Bal. Account Type"::"G/L Account"; + end; + GenJnlLine."Bal. Account No." := GLAccSettle; + if PostSettlement then begin + GenJnlPostLine.Run(GenJnlLine); + WHTEntry.ModifyAll(Settled, true); + end; + end; + end; + } + + trigger OnPreDataItem() + begin + LastFieldNo := FieldNo("Wthldg. Tax Bus. Post. Group"); + WHTEntry.Reset(); + WHTEntry.FindLast(); + EntryNo := WHTEntry."Entry No." + 1; + end; + } + } + + requestpage + { + SaveValues = true; + + layout + { + area(content) + { + group(Options) + { + Caption = 'Options'; + field(StartingDate; StartDate) + { + ApplicationArea = Basic, Suite; + Caption = 'Starting Date'; + ToolTip = 'Specifies the date from which the report or batch job processes information.'; + } + field(EndingDate; EndDate) + { + ApplicationArea = Basic, Suite; + Caption = 'Ending Date'; + ToolTip = 'Specifies the last date for the report.'; + } + field(PostingDate; PostingDate) + { + ApplicationArea = Basic, Suite; + Caption = 'Posting Date'; + ToolTip = 'Specifies the posting date of the entry.'; + } + field(DocumentNo; DocNo) + { + ApplicationArea = Basic, Suite; + Caption = 'Document No.'; + ToolTip = 'Specifies the original document that is associated with this entry.'; + } + field(DescTxt; DescTxt) + { + ApplicationArea = Basic, Suite; + Caption = 'Description'; + ToolTip = 'Specifies a description of the settlement.'; + } + field(SettlementAccountType; AccType) + { + ApplicationArea = Basic, Suite; + Caption = 'Settlement Account Type'; + ToolTip = 'Specifies if the account is a general ledger account or a vendor account.'; + } + field(SettlementAccount; GLAccSettle) + { + ApplicationArea = Basic, Suite; + Caption = 'Settlement Account'; + ToolTip = 'Specifies the general ledger account number or vendor number, based on the type selected in the Settlement Account Type field.'; + + trigger OnLookup(var Text: Text): Boolean + begin + case AccType of + AccType::"G/L Account": + if PAGE.RunModal(0, GLAcc, GLAcc."No.") = ACTION::LookupOK then + if GLAcc.Get(GLAcc."No.") then begin + GLAcc.TestField("Account Type", GLAcc."Account Type"::Posting); + GLAcc.TestField(Blocked, false); + GLAccSettle := GLAcc."No."; + end; + AccType::Vendor: + if PAGE.RunModal(0, Vendor, Vendor."No.") = ACTION::LookupOK then + if Vendor.Get(Vendor."No.") then begin + if Vendor."Privacy Blocked" then + Error(PrivacyBlockedErr, Vendor."No."); + if Vendor.Blocked in [Vendor.Blocked::All] then + Error(VendorBlockErr, Vendor."No."); + GLAccSettle := Vendor."No."; + end; + end; + end; + + trigger OnValidate() + begin + if GLAccSettle <> '' then + case AccType of + AccType::"G/L Account": + if GLAcc.Get(GLAccSettle) then begin + GLAcc.TestField("Account Type", GLAcc."Account Type"::Posting); + GLAcc.TestField(Blocked, false); + end; + AccType::Vendor: + begin + Vendor.Get(GLAccSettle); + if Vendor."Privacy Blocked" then + Error(PrivacyBlockedErr, Vendor."No."); + if Vendor.Blocked in [Vendor.Blocked::All] then + Error(VendorBlockErr, Vendor."No."); + end; + end; + end; + } + field(RoundAccNo; RoundAccNo) + { + ApplicationArea = Basic, Suite; + Caption = 'Rounding G/L Account'; + Enabled = RoundAccNoEnable; + ToolTip = 'Specifies the general ledger account that you use for rounding amounts.'; + + trigger OnLookup(var Text: Text): Boolean + begin + if PAGE.RunModal(0, GLAcc, GLAcc."No.") = ACTION::LookupOK then + if GLAcc.Get(GLAcc."No.") then begin + GLAcc.TestField("Account Type", GLAcc."Account Type"::Posting); + GLAcc.TestField(Blocked, false); + RoundAccNo := GLAcc."No."; + end; + end; + + trigger OnValidate() + begin + if GLAcc.Get(RoundAccNo) then begin + GLAcc.TestField("Account Type", GLAcc."Account Type"::Posting); + GLAcc.TestField(Blocked, false); + end; + end; + } + field(ShowWHTEntries; PrintWHTEntries) + { + ApplicationArea = Basic, Suite; + Caption = 'Show WHT Entries'; + ToolTip = 'Specifies if you want to view the withholding tax entries for the specified period.'; + } + field(Post; PostSettlement) + { + ApplicationArea = Basic, Suite; + Caption = 'Post'; + ToolTip = 'Specifies that you want to post the settlement.'; + } + } + } + } + + actions + { + } + + trigger OnInit() + begin + RoundAccNoEnable := true; + end; + + trigger OnOpenPage() + begin + if DescTxt = '' then + DescTxt := 'WHT Settlement'; + GLSetup.Get(); + RoundAccNoEnable := GLSetup."Enable Withholding Tax"; + end; + } + + labels + { + } + + trigger OnPostReport() + begin + if PostSettlement then + Message(SettlementPostedLbl); + end; + + trigger OnPreReport() + begin + GLSetup.Get(); + if GLSetup."Enable Withholding Tax" and (RoundAccNo = '') then + Error(RoundingAccountErr); + + if not GLSetup."Enable Withholding Tax" then + RoundAccNo := ''; + end; + + var + WHTEntry: Record "Withholding Tax Entry"; + GenJnlLine: Record "Gen. Journal Line"; + SourceCodeSetup: Record "Source Code Setup"; + GLAcc: Record "G/L Account"; + Vendor: Record Vendor; + GLSetup: Record "General Ledger Setup"; + GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line"; + LastFieldNo: Integer; + PrintWHTEntries: Boolean; + PostSettlement: Boolean; + EntryNo: Integer; + WHTAmount: Decimal; + GLAccSettle: Code[20]; + DocNo: Text[30]; + PostingDate: Date; + StartDate: Date; + EndDate: Date; + AccType: Option "G/L Account",Vendor; + TotalAmount: Decimal; + RoundAmount: Decimal; + BalanceAmount: Decimal; + DescTxt: Text[30]; + RoundAccNo: Code[20]; + PayableWHTSettlementLbl: Label 'Payable WHT settlement: #1######## #2########', Comment = '#1 = Withholding Tax Business Posting Group, #2 = Withholding Tax Product Posting Group'; + PostSettlementLbl: Label 'Post Settlement - %1', Comment = '%1 = Post Settlement value'; + SettlementPostedLbl: Label 'Settlement posted.'; + VendorBlockErr: Label 'Blocked must be No in vendor %1', Comment = '%1 = vendor number'; + PrivacyBlockedErr: Label 'Privacy Blocked must be No in vendor %1.', Comment = '%1 = vendor number'; + RoundingAccountErr: Label 'Please enter the Rounding Account'; + RoundAccNoEnable: Boolean; + CurrReport_PAGENOCaptionLbl: Label 'Page'; + Calc__and_Post_WHT_SettlementCaptionLbl: Label 'Calc. and Post WHT Settlement'; + DisplayEntries__Posting_Date_CaptionLbl: Label 'Posting Date'; +} + diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTCalcandPostSettlement.rdlc b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTCalcandPostSettlement.rdlc new file mode 100644 index 0000000000..1b0a3fe30e --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTCalcandPostSettlement.rdlc @@ -0,0 +1,1755 @@ + + + 0 + + + + SQL + + + None + 48d92f6a-9f14-4e73-bfd5-4423d583f12c + + + + + + + + + + + 7.46744cm + + + 13.45619cm + + + 1.9716cm + + + 0.88722cm + + + 0.51755cm + + + + + 0.423cm + + + + + true + + + + + =First(Fields!Calc__and_Post_WHT_SettlementCaption.Value) + + + + + + 13 + + + + + + + + true + + + + + + + + + + + + + true + + + + + =First(Fields!FORMAT_TODAY_0_4_.Value) + + + + + + + 17 + + + 3 + + + + + + + + 0.423cm + + + + + true + + + + + =First(Fields!COMPANYNAME.Value) + + + + + + 16 + + + + + + + + true + + + + + + + + + + + + + true + + + + + + + + + + + + + true + + + + + =First(Fields!CurrReport_PAGENOCaption.Value) + + + + + + 14 + + + + + + + + true + + + + + =1 + + + + + + + 19 + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + + + true + + + + + + + + + + + + + true + + + + + =First(Fields!USERID.Value) + + + + + + + 18 + + + 3 + + + + + + + + 0.423cm + + + + + true + + + + + =First(Fields!STRSUBSTNO_Text004_PostSettlement_.Value) + + + + + + 15 + + + + + + + + true + + + + + + + + + + + + + true + + + + + + + + + + + + + true + + + + + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + After + true + + + After + true + + + After + true + + + After + true + + + + 0.66622in + 13 + + + true + + + + + =First(Fields!DisplayEntries_AmountCaption.Value) + + + + + + + 2.115cm + 16.95cm + 0.846cm + 1.8cm + 12 + + + + true + + + + + =First(Fields!DisplayEntries__Amount__LCY__Caption.Value) + + + + + + + 2.115cm + 14.85cm + 0.846cm + 1.8cm + 11 + + + + true + + + + + =First(Fields!DisplayEntries_BaseCaption.Value) + + + + + + + 2.115cm + 12.75cm + 0.846cm + 1.8cm + 10 + + + + true + + + + + =First(Fields!DisplayEntries__Currency_Code_Caption.Value) + + + + + + 2.115cm + 11.4cm + 0.846cm + 1.2cm + 9 + + + + true + + + + + =First(Fields!DisplayEntries__WHT_Prod__Posting_Group__Control1500027Caption.Value) + + + + + + 2.115cm + 8.85cm + 0.846cm + 1.5cm + 8 + + + + true + + + + + =First(Fields!DisplayEntries__WHT___Caption.Value) + + + + + + + 2.115cm + 10.5cm + 0.846cm + 0.75cm + 7 + + + + true + + + + + =First(Fields!DisplayEntries__WHT_Bus__Posting_Group__Control1500026Caption.Value) + + + + + + 2.115cm + 7.2cm + 0.846cm + 1.5cm + 6 + + + + true + + + + + =First(Fields!DisplayEntries__Posting_Date_Caption.Value) + + + + + + + 2.115cm + 5.85cm + 0.846cm + 1.2cm + 5 + + + + true + + + + + =First(Fields!DisplayEntries__Bill_to_Pay_to_No__Caption.Value) + + + + + + 2.115cm + 4.2cm + 0.846cm + 1.5cm + 4 + + + + true + + + + + =First(Fields!DisplayEntries__Document_No__Caption.Value) + + + + + + 2.115cm + 2.1cm + 0.846cm + 1.5cm + 3 + + + + true + + + + + =First(Fields!DisplayEntries__Document_Type_Caption.Value) + + + + + + 2.115cm + 1.65cm + 0.846cm + 0.3cm + 2 + + + + true + + + + + =First(Fields!DisplayEntries__Entry_No__Caption.Value) + + + + + + + 2.115cm + 0.846cm + 1.05cm + 1 + + + + + + + 1.35cm + + + 0.675cm + + + 1.8cm + + + 1.875cm + + + 1.35cm + + + 1.65cm + + + 1.65cm + + + 0.9cm + + + 1.35cm + + + 1.95cm + + + 2.115cm + + + 2.115cm + + + + + 0.423cm + + + + + true + + + + + =Fields!DisplayEntries__WHT_Bus__Posting_Group_.Value + + + + + + textbox1 + + + + + + + + true + + + + + =Fields!DisplayEntries__WHT_Prod__Posting_Group_.Value + + + + + + textbox11 + + + 2 + + + + + + + true + + + + + + + + 9 + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox17 + + + 12 + + + + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Fields!DisplayEntries__Entry_No__.Value + + + + + + + + + + + + + true + + + + + =Fields!DisplayEntries__Document_Type_.Value + + + + + + + + + + + + + true + + + + + =Fields!DisplayEntries__Document_No__.Value + + + + + + + + + + + + + + true + + + + + =Fields!DisplayEntries__Bill_to_Pay_to_No__.Value + + + + + + + + + + + + + + true + + + + + =Fields!FORMAT__Posting_Date__.Value + + + + + + + + + + + + + true + + + + + =Fields!DisplayEntries__WHT_Bus__Posting_Group_.Value + + + + + + + + + + + + + true + + + + + =Fields!DisplayEntries__WHT_Prod__Posting_Group_.Value + + + + + + + + + + + + + true + + + + + =Fields!DisplayEntries__WHT___.Value + + + + + + + + + + + + + true + + + + + =Fields!DisplayEntries__Currency_Code_.Value + + + + + + + + + + + + + true + true + + + + + =Fields!DisplayEntries_Base.Value + + + + + + + + + + + + + + true + true + + + + + =Fields!DisplayEntries__Amount__LCY__.Value + + + + + + + + + + + + + + true + true + + + + + =Fields!DisplayEntries_Amount.Value + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + 9 + + + + + + + + + + + + + + true + true + + + + + =Sum(Fields!DisplayEntries_Base.Value) + + + + + + + + + + + + + + true + true + + + + + =Sum(Fields!DisplayEntries__Amount__LCY__.Value) + + + + + + + + + + + + + + true + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + 12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + =Fields!WHTPostingSetup_WHT_Business_Posting_Group.Value + + + + + + + =Fields!WHTPostingSetup_WHT_Business_Posting_Group.Value + =Fields!WHTPostingSetup_WHT_Product_Posting_Group.Value + =Fields!Add_WHT_Entries__Number.Value + + + + + After + true + + + After + true + + + + Detail + + + + + =IIF(Fields!PrintWHTEntries.Value,False,True) + + + + Detail_Collection + Output + true + + + Before + true + + + Before + true + + + + + + + + DataSet_Result + + + =isNothing(Fields!DisplayEntries__WHT_Bus__Posting_Group_.Value) + Equal + + =False + + + + 3.384cm + 0.83278in + 7.39462in + + + 5.49926cm + + 24.3cm + + 21cm + 29.7cm + 11in + 8.5in + 1.5cm + 0cm + 2cm + 2cm + + + + Public Function BlankZero(ByVal Value As Decimal) + if Value = 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankPos(ByVal Value As Decimal) + if Value > 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankZeroAndPos(ByVal Value As Decimal) + if Value >= 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankNeg(ByVal Value As Decimal) + if Value < 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankNegAndZero(ByVal Value As Decimal) + if Value <= 0 then + Return "" + end if + Return Value +End Function + + =User!Language + true + Invalid + be7bbd91-0b9d-4d1a-9898-62869b60e96c + + + + + USERID + + + COMPANYNAME + + + FORMAT_TODAY_0_4_ + + + STRSUBSTNO_Text004_PostSettlement_ + + + Add_WHT_Entries__Number + + + WHTPostingSetup_WHT_Business_Posting_Group + + + WHTPostingSetup_WHT_Product_Posting_Group + + + CurrReport_PAGENOCaption + + + Calc__and_Post_WHT_SettlementCaption + + + DisplayEntries_AmountCaption + + + DisplayEntries__Amount__LCY__Caption + + + DisplayEntries_BaseCaption + + + DisplayEntries__Currency_Code_Caption + + + DisplayEntries__WHT_Prod__Posting_Group__Control1500027Caption + + + DisplayEntries__WHT___Caption + + + DisplayEntries__WHT_Bus__Posting_Group__Control1500026Caption + + + DisplayEntries__Posting_Date_Caption + + + DisplayEntries__Bill_to_Pay_to_No__Caption + + + DisplayEntries__Document_No__Caption + + + DisplayEntries__Document_Type_Caption + + + DisplayEntries__Entry_No__Caption + + + DisplayEntries__WHT_Bus__Posting_Group_ + + + DisplayEntries__WHT_Prod__Posting_Group_ + + + DisplayEntries__Document_Type_ + + + DisplayEntries__Entry_No__ + + + DisplayEntries__Document_No__ + + + DisplayEntries__Bill_to_Pay_to_No__ + + + FORMAT__Posting_Date__ + + + DisplayEntries__WHT_Bus__Posting_Group__Control1500026 + + + DisplayEntries__WHT_Prod__Posting_Group__Control1500027 + + + DisplayEntries__WHT___ + + + DisplayEntries__WHT___Format + + + DisplayEntries__Amount__LCY__ + + + DisplayEntries__Amount__LCY__Format + + + DisplayEntries_Amount + + + DisplayEntries_AmountFormat + + + DisplayEntries__Currency_Code_ + + + DisplayEntries_Base + + + DisplayEntries_BaseFormat + + + PrintWHTEntries + + + DisplayEntries_Base_Control1500033 + + + DisplayEntries_Base_Control1500033Format + + + DisplayEntries__Amount__LCY___Control1500034 + + + DisplayEntries__Amount__LCY___Control1500034Format + + + + DataSource + + + + + \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTCertificateCreditabletax.Report.al b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTCertificateCreditabletax.Report.al new file mode 100644 index 0000000000..5df138f266 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTCertificateCreditabletax.Report.al @@ -0,0 +1,387 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.Finance.WithholdingTax; + +using Microsoft.Foundation.Company; +using Microsoft.Purchases.Vendor; +using Microsoft.WithholdingTax; + +report 6786 "WHT Certificate Creditable tax" +{ + DefaultLayout = RDLC; + RDLCLayout = 'src\Purchase\Report\WHTCertificateCreditabletax.rdlc'; + Caption = 'Certificate of Creditable tax'; + + dataset + { + dataitem("WHT Entry"; "Withholding Tax Entry") + { + DataItemTableView = sorting("Bill-to/Pay-to No.", "Withholding Tax Revenue Type", "Wthldg. Tax Prod. Post. Group") order(ascending) where("Transaction Type" = filter(Purchase)); + RequestFilterFields = "Bill-to/Pay-to No.", "Withholding Tax Revenue Type"; + column(USERID; UserId) + { + } + column(FORMAT_TODAY_0_4_; Format(Today, 0, 4)) + { + } + column(CI__Post_Code_; CompanyInformation."Post Code") + { + } + column(CI_Name; CompanyInformation.Name) + { + } + column(VendName; VendName) + { + } + column(VendPostCode; VendPostCode) + { + } + column(CI_Address; CompanyInformation.Address) + { + } + column(VendAddress; VendAddress) + { + } + column(FORMAT_EndDate_; Format(EndDate)) + { + } + column(CI__VAT_Registration_No__; CompanyInformation."VAT Registration No.") + { + } + column(VendTIN; VendTIN) + { + } + column(COMPANYNAME; COMPANYPROPERTY.DisplayName()) + { + } + column(FORMAT_StartDate_; Format(StartDate)) + { + } + column(FirstMonthWHT_SecondMonthWHT_ThirdMonthWHT; FirstMonthWHT + SecondMonthWHT + ThirdMonthWHT) + { + } + column(FirstMonth_SecondMonth_ThirdMonth; FirstMonth + SecondMonth + ThirdMonth) + { + } + column(ThirdMonth; ThirdMonth) + { + } + column(SecondMonth; SecondMonth) + { + } + column(FirstMonth; FirstMonth) + { + } + column(WHT_Entry__WHT_Entry___WHT_Revenue_Type_; "Withholding Tax Revenue Type") + { + } + column(WHT_Entry__WHT_Entry___WHT_Prod__Posting_Group_; "Wthldg. Tax Prod. Post. Group") + { + } + column(WHT_Entry__WHT_Entry___WHT_Bus__Posting_Group_; "Wthldg. Tax Bus. Post. Group") + { + } + column(WHT_Entry__WHT_Entry___Bill_to_Pay_to_No__; "Bill-to/Pay-to No.") + { + } + column(WHT_Entry__WHT_Entry___Transaction_Type_; "Transaction Type") + { + } + column(DeclarationText; DeclarationIntroLbl + DeclarationStatementLbl) + { + } + column(WHTTotal; WHTTotal) + { + } + column(FirstMonthTotal_SecondMonthTotal_ThirdMonthTotal; FirstMonthTotal + SecondMonthTotal + ThirdMonthTotal) + { + } + column(ThirdMonthTotal; ThirdMonthTotal) + { + } + column(SecondMonthTotal; SecondMonthTotal) + { + } + column(FirstMonthTotal; FirstMonthTotal) + { + } + column(WHT_Entry_Entry_No_; "Entry No.") + { + } + column(Details_of_Monthly_Income_Payments_and_Tax_Withheld_for_the_QuarterCaption; Details_of_Monthly_Income_Payments_and_Tax_Withheld_for_the_QuarterCaptionLbl) + { + } + column(BIR_Form_No_________2307Caption; BIR_Form_No_________2307CaptionLbl) + { + } + column(Zip_CodeCaption; Zip_CodeCaptionLbl) + { + } + column(Zip_CodeCaption_Control1500037; Zip_CodeCaption_Control1500037Lbl) + { + } + column(AMOUNT_OF_INCOME_PAYMENTSCaption; AMOUNT_OF_INCOME_PAYMENTSCaptionLbl) + { + } + column(Certificate_of_Creditable_Tax_Withheld_At_SourceCaption; Certificate_of_Creditable_Tax_Withheld_At_SourceCaptionLbl) + { + } + column(Payee_InformationCaption; Payee_InformationCaptionLbl) + { + } + column(Payor_InformationCaption; Payor_InformationCaptionLbl) + { + } + column(To_DateCaption; To_DateCaptionLbl) + { + } + column(TIN_No_Caption; TIN_No_CaptionLbl) + { + } + column(Payor_s_NameCaption; Payor_s_NameCaptionLbl) + { + } + column(TIN_No_Caption_Control1500052; TIN_No_Caption_Control1500052Lbl) + { + } + column(Payee_s_NameCaption; Payee_s_NameCaptionLbl) + { + } + column(AddressCaption; AddressCaptionLbl) + { + } + column(AddressCaption_Control1500055; AddressCaption_Control1500055Lbl) + { + } + column(From_DateCaption; From_DateCaptionLbl) + { + } + column(Tax_Withheld_for_the_QuarterCaption; Tax_Withheld_for_the_QuarterCaptionLbl) + { + } + column(TotalCaption; TotalCaptionLbl) + { + } + column(V3rd_Month_of_the_quarterCaption; V3rd_Month_of_the_quarterCaptionLbl) + { + } + column(V2nd_Month_of_the_quarterCaption; V2nd_Month_of_the_quarterCaptionLbl) + { + } + column(V1st_Month_of_the_quarterCaption; V1st_Month_of_the_quarterCaptionLbl) + { + } + column(WHT_Entry__WHT_Entry___WHT_Revenue_Type_Caption; FieldCaption("Withholding Tax Revenue Type")) + { + } + column(WHT_Entry__WHT_Entry___WHT_Prod__Posting_Group_Caption; FieldCaption("Wthldg. Tax Prod. Post. Group")) + { + } + column(WHT_Entry__WHT_Entry___WHT_Bus__Posting_Group_Caption; FieldCaption("Wthldg. Tax Bus. Post. Group")) + { + } + column(Title_Position_of_SignatoryCaption; Title_Position_of_SignatoryCaptionLbl) + { + } + column(Payor_Payor_s_Authorized_RepresentativeCaption; Payor_Payor_s_Authorized_RepresentativeCaptionLbl) + { + } + column(TotalCaption_Control1500088; TotalCaption_Control1500088Lbl) + { + } + column(Payee_Payee_s_Authorized_RepresentativeCaption; Payee_Payee_s_Authorized_RepresentativeCaptionLbl) + { + } + column(Date_SignedCaption; Date_SignedCaptionLbl) + { + } + + trigger OnAfterGetRecord() + begin + FirstMonthWHT := 0; + SecondMonthWHT := 0; + ThirdMonthWHT := 0; + FirstMonth := 0; + SecondMonth := 0; + ThirdMonth := 0; + + if "Actual Vendor No." <> '' then + Vend.Get("Actual Vendor No.") + else + Vend.Get("Bill-to/Pay-to No."); + + VendName := Vend.Name; + VendTIN := Vend."VAT Registration No."; + VendAddress := Vend.Address; + VendPostCode := Vend."Post Code"; + + WHTEntry1.Reset(); + WHTEntry1.SetRange("Entry No.", "Entry No."); + WHTEntry1.SetRange("Wthldg. Tax Bus. Post. Group", "Wthldg. Tax Bus. Post. Group"); + WHTEntry1.SetRange("Wthldg. Tax Prod. Post. Group", "Wthldg. Tax Prod. Post. Group"); + WHTEntry1.SetRange("Withholding Tax Revenue Type", "Withholding Tax Revenue Type"); + if (StartDate <> 0D) and (EndDate <> 0D) then begin + if EndDate < CalcDate('', DMY2Date(1, ForMonth, CurrYear)) then + WHTEntry1.SetFilter("Posting Date", '%1..%2', DMY2Date(1, ForMonth, CurrYear), + EndDate) + else + WHTEntry1.SetFilter("Posting Date", '%1..%2', DMY2Date(1, ForMonth, CurrYear), + CalcDate('', DMY2Date(1, ForMonth, CurrYear))); + end else + WHTEntry1.SetRange("Posting Date", "Posting Date"); + if WHTEntry1.FindFirst() then begin + FirstMonthWHT := WHTEntry1."Amount (LCY)"; + FirstMonth := WHTEntry1."Base (LCY)"; + end; + + WHTEntry1.Reset(); + WHTEntry1.SetRange("Entry No.", "Entry No."); + WHTEntry1.SetRange("Wthldg. Tax Bus. Post. Group", "Wthldg. Tax Bus. Post. Group"); + WHTEntry1.SetRange("Wthldg. Tax Prod. Post. Group", "Wthldg. Tax Prod. Post. Group"); + WHTEntry1.SetRange("Withholding Tax Revenue Type", "Withholding Tax Revenue Type"); + if (StartDate <> 0D) and (EndDate <> 0D) then begin + if EndDate < CalcDate('', DMY2Date(1, ForMonth + 1, CurrYear)) then + WHTEntry1.SetFilter("Posting Date", '%1..%2', DMY2Date(1, ForMonth + 1, CurrYear), + EndDate) + else + WHTEntry1.SetFilter("Posting Date", '%1..%2', DMY2Date(1, ForMonth + 1, CurrYear), + CalcDate('', DMY2Date(1, ForMonth + 1, CurrYear))); + if WHTEntry1.FindFirst() then begin + SecondMonthWHT := WHTEntry1."Amount (LCY)"; + SecondMonth := WHTEntry1."Base (LCY)"; + end; + end; + + WHTEntry1.Reset(); + WHTEntry1.SetRange("Entry No.", "Entry No."); + WHTEntry1.SetRange("Wthldg. Tax Bus. Post. Group", "Wthldg. Tax Bus. Post. Group"); + WHTEntry1.SetRange("Wthldg. Tax Prod. Post. Group", "Wthldg. Tax Prod. Post. Group"); + WHTEntry1.SetRange("Withholding Tax Revenue Type", "Withholding Tax Revenue Type"); + if (StartDate <> 0D) and (EndDate <> 0D) then begin + if EndDate < CalcDate('', DMY2Date(1, ForMonth + 2, CurrYear)) then + WHTEntry1.SetFilter("Posting Date", '%1..%2', DMY2Date(1, ForMonth + 2, CurrYear), + EndDate) + else + WHTEntry1.SetFilter("Posting Date", '%1..%2', DMY2Date(1, ForMonth + 2, CurrYear), + CalcDate('', DMY2Date(1, ForMonth + 2, CurrYear))); + if WHTEntry1.FindFirst() then begin + ThirdMonthWHT := WHTEntry1."Amount (LCY)"; + ThirdMonth := WHTEntry1."Base (LCY)"; + end; + end; + FirstMonthTotal := FirstMonthTotal + FirstMonth; + SecondMonthTotal := SecondMonthTotal + SecondMonth; + ThirdMonthTotal := ThirdMonthTotal + ThirdMonth; + WHTTotal := WHTTotal + FirstMonthWHT + SecondMonthWHT + ThirdMonthWHT; + end; + + trigger OnPreDataItem() + begin + if WhtPostingSetup.Get() then + WhtPostingSetup.SetFilter(Sequence, '<>%1', 0); + if GetFilter("Bill-to/Pay-to No.") = '' then + Error(PayToVendorFilterErr); + if StartDate <> 0D then begin + ForMonth := Date2DMY(StartDate, 2); + CurrYear := Date2DMY(StartDate, 3); + end else + if GetFilter("Posting Date") <> '' then begin + ForMonth := Date2DMY(GetRangeMin("Posting Date"), 2); + CurrYear := Date2DMY(GetRangeMin("Posting Date"), 3); + end; + CompanyInformation.Get(); + end; + } + } + + requestpage + { + + layout + { + area(content) + { + group(Options) + { + Caption = 'Options'; + field(StartDate; StartDate) + { + ApplicationArea = Basic, Suite; + Caption = 'Starting Date'; + ToolTip = 'Specifies the first date in the period from which posted entries in the consolidated company will be shown.'; + } + field(EndDate; EndDate) + { + ApplicationArea = Basic, Suite; + Caption = 'Ending Date'; + ToolTip = 'Specifies the last date for the report.'; + } + } + } + } + + actions + { + } + } + + labels + { + } + + var + WhtPostingSetup: Record "Withholding Tax Posting Setup"; + CompanyInformation: Record "Company Information"; + WHTEntry1: Record "Withholding Tax Entry"; + Vend: Record Vendor; + ForMonth: Integer; + FirstMonthWHT: Decimal; + SecondMonthWHT: Decimal; + ThirdMonthWHT: Decimal; + CurrYear: Integer; + FirstMonth: Decimal; + SecondMonth: Decimal; + ThirdMonth: Decimal; + WHTTotal: Decimal; + FirstMonthTotal: Decimal; + SecondMonthTotal: Decimal; + ThirdMonthTotal: Decimal; + VendName: Text[30]; + VendAddress: Text[30]; + VendTIN: Text[30]; + VendPostCode: Text[30]; + PayToVendorFilterErr: Label 'Please enter the Pay to Vendor ID in the filter'; + DeclarationIntroLbl: Label 'We declare, under the penalties of perjury, that this certificate has been made in good faith, verified by me, and to the best of my knowledge and belief,'; + DeclarationStatementLbl: Label 'is true and correct, pursuant to the provisions of the National Internal Revenue Code, as amended, and the regulations issued under authority thereof.'; + StartDate: Date; + EndDate: Date; + Details_of_Monthly_Income_Payments_and_Tax_Withheld_for_the_QuarterCaptionLbl: Label 'Details of Monthly Income Payments and Tax Withheld for the Quarter'; + BIR_Form_No_________2307CaptionLbl: Label 'BIR Form No. 2307'; + Zip_CodeCaptionLbl: Label 'Zip Code'; + Zip_CodeCaption_Control1500037Lbl: Label 'Zip Code'; + AMOUNT_OF_INCOME_PAYMENTSCaptionLbl: Label 'AMOUNT OF INCOME PAYMENTS'; + Certificate_of_Creditable_Tax_Withheld_At_SourceCaptionLbl: Label 'Certificate of Creditable Tax Withheld At Source'; + Payee_InformationCaptionLbl: Label 'Payee Information'; + Payor_InformationCaptionLbl: Label 'Payor Information'; + To_DateCaptionLbl: Label 'To Date'; + TIN_No_CaptionLbl: Label 'TIN No.'; + Payor_s_NameCaptionLbl: Label 'Payor''s Name'; + TIN_No_Caption_Control1500052Lbl: Label 'TIN No.'; + Payee_s_NameCaptionLbl: Label 'Payee''s Name'; + AddressCaptionLbl: Label 'Address'; + AddressCaption_Control1500055Lbl: Label 'Address'; + From_DateCaptionLbl: Label 'From Date'; + Tax_Withheld_for_the_QuarterCaptionLbl: Label 'Tax Withheld for the Quarter'; + TotalCaptionLbl: Label 'Total'; + V3rd_Month_of_the_quarterCaptionLbl: Label '3rd Month of the quarter'; + V2nd_Month_of_the_quarterCaptionLbl: Label '2nd Month of the quarter'; + V1st_Month_of_the_quarterCaptionLbl: Label '1st Month of the quarter'; + Title_Position_of_SignatoryCaptionLbl: Label 'Title/Position of Signatory'; + Payor_Payor_s_Authorized_RepresentativeCaptionLbl: Label 'Payor/Payor''s Authorized Representative'; + TotalCaption_Control1500088Lbl: Label 'Total'; + Payee_Payee_s_Authorized_RepresentativeCaptionLbl: Label 'Payee/Payee''s Authorized Representative'; + Date_SignedCaptionLbl: Label 'Date Signed'; +} + diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTCertificateCreditabletax.rdlc b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTCertificateCreditabletax.rdlc new file mode 100644 index 0000000000..f7b485049a --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTCertificateCreditabletax.rdlc @@ -0,0 +1,3734 @@ + + + 0 + + + + SQL + + + None + b8049cd8-900c-481a-81cf-94e0d31f695f + + + + + + + + + + + 1cm + + + 1.1cm + + + 2.1cm + + + 2.1cm + + + 1cm + + + 1.1cm + + + 2.1cm + + + 2.1cm + + + 2.1cm + + + 2.5cm + + + + + 0.03125in + + + + + true + + + + + =Fields!COMPANYNAME.Value + + + + + + + true + + + + + + + + + true + true + + + + + + + + + + + textbox34 + + + + + + + + true + + + + + =First(Fields!From_DateCaption.Value) + + + + + + + true + + + + + + + + + true + + + + + =First(Fields!FORMAT_StartDate_.Value) + + + + + + + true + + + + + + + + + true + + + + + =First(Fields!To_DateCaption.Value) + + + + + + + true + + + + + + + + + true + + + + + =First(Fields!FORMAT_EndDate_.Value) + + + + + + + true + + + + + + + + + true + + + + + =First(Fields!Certificate_of_Creditable_Tax_Withheld_At_SourceCaption.Value) + + + + + + + + true + + + + + + + + + true + + + + + =First(Fields!BIR_Form_No_________2307Caption.Value) + + + + + + + true + + + + + + + + + true + + + + + =First(Fields!USERID.Value) + + + + + + + + true + + + + + + + + + true + + + + + =First(Fields!FORMAT_TODAY_0_4_.Value) + + + + + + + + true + + + + + + + + + 0.423cm + + + + + true + + + + + + + + 3 + + + + + + + + true + + + + + =First(Fields!Payee_InformationCaption.Value) + + + + + + + + + 5 + + + + + + + + + + true + + + + + + + + 2 + + + + + + + 0.423cm + + + + + true + + + + + =First(Fields!TIN_No_Caption_Control1500052.Value) + + + + + + + + 2 + + + + + + + true + + + + + =First(Fields!VendTIN.Value) + + + + + + + + 3 + + + + + + + + true + + + + + + + + 5 + + + + + + + + + + 0.423cm + + + + + true + + + + + =First(Fields!Payee_s_NameCaption.Value) + + + + + + + + 2 + + + + + + + true + + + + + =First(Fields!VendName.Value) + + + + + + + + 7 + + + + + + + + + + + + true + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =First(Fields!AddressCaption_Control1500055.Value) + + + + + + + + 2 + + + + + + + true + + + + + =First(Fields!VendAddress.Value) + + + + + + + + 5 + + + + + + + + + + true + + + + + =First(Fields!Zip_CodeCaption_Control1500037.Value) + + + + + + + + + + + + + true + + + + + =First(Fields!VendPostCode.Value) + + + + + + + + + + + + + true + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + 10 + + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + 3 + + + + + + + + true + + + + + =First(Fields!Payor_InformationCaption.Value) + + + + + + + + + 5 + + + + + + + + + + true + + + + + + + + 2 + + + + + + + 0.423cm + + + + + true + + + + + =First(Fields!TIN_No_Caption.Value) + + + + + + + + 2 + + + + + + + true + + + + + =First(Fields!CI__VAT_Registration_No__.Value) + + + + + + + + 3 + + + + + + + + true + + + + + + + + 5 + + + + + + + + + + 0.423cm + + + + + true + + + + + =First(Fields!Payor_s_NameCaption.Value) + + + + + + + + 2 + + + + + + + true + + + + + =First(Fields!CI_Name.Value) + + + + + + + + 7 + + + + + + + + + + + + true + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =First(Fields!AddressCaption.Value) + + + + + + + + 2 + + + + + + + true + + + + + =First(Fields!CI_Address.Value) + + + + + + + + 5 + + + + + + + + + + true + + + + + =First(Fields!Zip_CodeCaption.Value) + + + + + + + + + + + + + true + + + + + =First(Fields!CI__Post_Code_.Value) + + + + + + + + + + + + + + true + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + 10 + + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + 3 + + + + + + + + true + + + + + =First(Fields!Details_of_Monthly_Income_Payments_and_Tax_Withheld_for_the_QuarterCaption.Value) + + + + + + + + 6 + + + + + + + + + + + true + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + 5 + + + + + + + + + + true + + + + + =First(Fields!AMOUNT_OF_INCOME_PAYMENTSCaption.Value) + + + + + + + + 3 + + + + + + + + true + + + + + + + + 2 + + + + + + + 0.846cm + + + + + true + + + + + =First(Fields!WHT_Entry__WHT_Entry___WHT_Bus__Posting_Group_Caption.Value) + + + + + + + + 2 + + + + + + + true + + + + + =First(Fields!WHT_Entry__WHT_Entry___WHT_Prod__Posting_Group_Caption.Value) + + + + + + + + + + + + + true + + + + + =First(Fields!WHT_Entry__WHT_Entry___WHT_Revenue_Type_Caption.Value) + + + + + + + + + + + + + true + + + + + =First(Fields!V1st_Month_of_the_quarterCaption.Value) + + + + + + + + 2 + + + + + + + true + + + + + =First(Fields!V2nd_Month_of_the_quarterCaption.Value) + + + + + + + + + + + + + true + + + + + =First(Fields!V3rd_Month_of_the_quarterCaption.Value) + + + + + + + + + + + + + true + + + + + =First(Fields!TotalCaption.Value) + + + + + + + + + + + + + + true + + + + + =Fields!Tax_Withheld_for_the_QuarterCaption.Value + + + + + + + + + + + + + 0.423cm + + + + + true + true + + + + + =First(Fields!WHT_Entry__WHT_Entry___WHT_Bus__Posting_Group_.Value) + + + + + + + + 2 + + + + + + + true + true + + + + + =First(Fields!WHT_Entry__WHT_Entry___WHT_Prod__Posting_Group_.Value) + + + + + + + + + + + + + true + true + + + + + =First(Fields!WHT_Entry__WHT_Entry___WHT_Revenue_Type_.Value) + + + + + + + + + + + + + true + true + + + + + =Sum(Fields!FirstMonth.Value, "Table1_Group") + + + + + + + + + 2 + + + + + + + true + true + + + + + =Sum(Fields!SecondMonth.Value) + + + + + + + + + + + + + + true + true + + + + + =Sum(Fields!ThirdMonth.Value, "Table1_Group") + + + + + + + + + + + + + + true + true + + + + + =Sum(Fields!FirstMonth.Value, "Table1_Group") + Sum(Fields!SecondMonth.Value, "Table1_Group") + Sum(Fields!ThirdMonth.Value, "Table1_Group") + + + + + + + + + + + + + + true + true + + + + + =Sum(Fields!FirstMonthWHT_SecondMonthWHT_ThirdMonthWHT.Value, "Table1_Group") + + + + + + + + + + + + + + 0.07937cm + + + + + true + true + + + + + + + + + + + textbox14 + + + + + + + + + + + + Middle + 2pt + 2pt + + + 10 + + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =First(Fields!TotalCaption_Control1500088.Value) + + + + + + + + 2 + + + + + + + true + + + + + + + + + + + + + true + + + + + + + + + + + + + true + true + + + + + =Last(Fields!FirstMonthTotal.Value, "Table1") + + + + + + + + + 2 + + + + + + + true + true + + + + + =Last(Fields!SecondMonthTotal.Value, "Table1") + + + + + + + + + + + + + + true + true + + + + + =Last(Fields!ThirdMonthTotal.Value, "Table1") + + + + + + + + + + + + + + true + true + + + + + =Last(Fields!FirstMonthTotal_SecondMonthTotal_ThirdMonthTotal.Value) + + + + + + + + + + + + + + true + true + + + + + =Last(Fields!WHTTotal.Value) + + + + + + + + + + + + + + 0.07937cm + + + + + true + true + + + + + + + + + + + textbox32 + + + + + + + + + + + + Middle + 2pt + 2pt + + + 10 + + + + + + + + + + + + + + + 0.846cm + + + + + true + + + + + =First(Fields!Text1500011_Text1500012.Value) + + + + + + + + + 10 + + + + + + + + + + + + + + + 0.846cm + + + + + true + true + + + + + + + + 10 + + + + + + + + + + + + + + + 0.08cm + + + + + true + true + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + + Middle + 2pt + 2pt + + + 3 + + + + + + + + true + true + + + + + + + + 2 + + + + + + + true + true + + + + + + + + + + + + + + + + + Middle + 2pt + 2pt + + + 3 + + + + + + + + true + true + + + + + + + + + + + + + 0.423cm + + + + + true + true + + + + + + + + 10 + + + + + + + + + + + + + + + 0.423cm + + + + + true + true + + + + + + + + + + + + + true + + + + + =First(Fields!Payor_Payor_s_Authorized_RepresentativeCaption.Value) + + + + + + + + 3 + + + + + + + + true + + + + + + + + 2 + + + + + + + true + + + + + =First(Fields!Title_Position_of_SignatoryCaption.Value) + + + + + + + + 3 + + + + + + + + true + + + + + + + + + + + + + 0.423cm + + + + + true + true + + + + + + + + 10 + + + + + + + + + + + + + + + 0.07937cm + + + + + true + true + + + + + + + + + + + + + + + + + 2pt + 2pt + + + 10 + + + + + + + + + + + + + + + 0.423cm + + + + + true + true + + + + + + + + 10 + + + + + + + + + + + + + + + 0.08cm + + + + + true + true + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + + Middle + 2pt + 2pt + + + 3 + + + + + + + + true + true + + + + + + + + 2 + + + + + + + true + true + + + + + + + + + + + + + + + + + Middle + 2pt + 2pt + + + 3 + + + + + + + + true + true + + + + + + + + + + + + + 0.423cm + + + + + true + true + + + + + + + + 10 + + + + + + + + + + + + + + + 0.38427cm + + + + + true + + + + + + + + + + + + + true + + + + + =First(Fields!Payee_Payee_s_Authorized_RepresentativeCaption.Value) + + + + + + + + 3 + + + + + + + + true + + + + + + + + 2 + + + + + + + true + + + + + =First(Fields!Date_SignedCaption.Value) + + + + + + + + 3 + + + + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + After + true + + + After + true + + + After + true + + + After + true + + + After + true + + + After + true + + + After + true + + + After + true + + + After + true + + + After + true + + + After + true + + + After + true + + + After + true + + + After + true + + + + + =Fields!WHT_Entry__WHT_Entry___Bill_to_Pay_to_No__.Value + =Fields!WHT_Entry__WHT_Entry___WHT_Revenue_Type_.Value + =Fields!WHT_Entry__WHT_Entry___WHT_Prod__Posting_Group_.Value + =Fields!WHT_Entry__WHT_Entry___WHT_Bus__Posting_Group_.Value + + + + + Before + true + + + + + + =iif(isnothing(Fields!COMPANYNAME.Value), true, false) + + Before + true + + + Before + true + + + + =iif(isnothing(Fields!COMPANYNAME.Value), true, false) + + Before + true + + + Before + true + + + Before + true + + + + =iif(isnothing(Fields!COMPANYNAME.Value), true, false) + + Before + true + + + Before + true + + + Before + true + + + Before + true + + + + =iif(isnothing(Fields!COMPANYNAME.Value), true, false) + + Before + true + + + Before + true + + + + =iif(isnothing(Fields!COMPANYNAME.Value), true, false) + + Before + true + + + Before + true + + + Before + true + + + + DataSet_Result + + + =Fields!WHT_Entry__WHT_Entry___Transaction_Type_.Value + Equal + + ="Purchase" + + + + 4.50322in + 6.7725in + + + 11.43818cm + + 18.15cm + + + 2.538cm + true + true + + + true + true + + + + + =User!UserID + + + + + + + 0.423cm + 14.9cm + 0.423cm + 8 + + + + true + + + + + =ReportItems!FORMAT_TODAY_0_4_.Value + + + + + + + 15cm + 0.423cm + 7 + + + + true + + + + + =ReportItems!FORMAT_EndDate_1.Value + + + + + + 1.692cm + 8.25cm + 0.423cm + 2.1cm + 6 + + + + true + + + + + =ReportItems!COMPANYNAME1.Value + + + + + + 0.423cm + 0.423cm + 5.55cm + 5 + + + + true + + + + + =ReportItems!FORMAT_StartDate_1.Value + + + + + + 1.692cm + 2.25cm + 0.423cm + 2.1cm + 4 + + + + true + + + + + =ReportItems!BIR_Form_No_________2307Caption1.Value + + + + + + 12.3cm + 1.269cm + 2.1cm + 3 + + + + true + + + + + =ReportItems!Certificate_of_Creditable_Tax_Withheld_At_SourceCaption1.Value + + + + + + + 7.05cm + 1.269cm + 4.5cm + 2 + + + + true + + + + + =ReportItems!To_DateCaption1.Value + + + + + + 1.692cm + 6cm + 0.423cm + 2.1cm + 1 + + + + true + + + + + =ReportItems!From_DateCaption1.Value + + + + + + 1.692cm + 0.423cm + 2.1cm + + + + + 29.7cm + 21cm + 11in + 8.5in + 1.5cm + 0cm + 2cm + 2cm + + + + Public Function BlankZero(ByVal Value As Decimal) + if Value = 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankPos(ByVal Value As Decimal) + if Value > 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankZeroAndPos(ByVal Value As Decimal) + if Value >= 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankNeg(ByVal Value As Decimal) + if Value < 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankNegAndZero(ByVal Value As Decimal) + if Value <= 0 then + Return "" + end if + Return Value +End Function + + =User!Language + true + Invalid + f3f75a01-efe2-46cb-ae7c-3d296447cb46 + + + + + USERID + + + FORMAT_TODAY_0_4_ + + + CI__Post_Code_ + + + CI_Name + + + VendName + + + VendPostCode + + + CI_Address + + + VendAddress + + + FORMAT_EndDate_ + + + CI__VAT_Registration_No__ + + + VendTIN + + + COMPANYNAME + + + FORMAT_StartDate_ + + + FirstMonthWHT_SecondMonthWHT_ThirdMonthWHT + + + FirstMonthWHT_SecondMonthWHT_ThirdMonthWHTFormat + + + FirstMonth_SecondMonth_ThirdMonth + + + FirstMonth_SecondMonth_ThirdMonthFormat + + + ThirdMonth + + + ThirdMonthFormat + + + SecondMonth + + + SecondMonthFormat + + + FirstMonth + + + FirstMonthFormat + + + WHT_Entry__WHT_Entry___WHT_Revenue_Type_ + + + WHT_Entry__WHT_Entry___WHT_Prod__Posting_Group_ + + + WHT_Entry__WHT_Entry___WHT_Bus__Posting_Group_ + + + WHT_Entry__WHT_Entry___Bill_to_Pay_to_No__ + + + WHT_Entry__WHT_Entry___Transaction_Type_ + + + DeclarationText + + + WHTTotal + + + WHTTotalFormat + + + FirstMonthTotal_SecondMonthTotal_ThirdMonthTotal + + + FirstMonthTotal_SecondMonthTotal_ThirdMonthTotalFormat + + + ThirdMonthTotal + + + ThirdMonthTotalFormat + + + SecondMonthTotal + + + SecondMonthTotalFormat + + + FirstMonthTotal + + + FirstMonthTotalFormat + + + WHT_Entry_Entry_No_ + + + Details_of_Monthly_Income_Payments_and_Tax_Withheld_for_the_QuarterCaption + + + BIR_Form_No_________2307Caption + + + Zip_CodeCaption + + + Zip_CodeCaption_Control1500037 + + + AMOUNT_OF_INCOME_PAYMENTSCaption + + + Certificate_of_Creditable_Tax_Withheld_At_SourceCaption + + + Payee_InformationCaption + + + Payor_InformationCaption + + + To_DateCaption + + + TIN_No_Caption + + + Payor_s_NameCaption + + + TIN_No_Caption_Control1500052 + + + Payee_s_NameCaption + + + AddressCaption + + + AddressCaption_Control1500055 + + + From_DateCaption + + + Tax_Withheld_for_the_QuarterCaption + + + TotalCaption + + + V3rd_Month_of_the_quarterCaption + + + V2nd_Month_of_the_quarterCaption + + + V1st_Month_of_the_quarterCaption + + + WHT_Entry__WHT_Entry___WHT_Revenue_Type_Caption + + + WHT_Entry__WHT_Entry___WHT_Prod__Posting_Group_Caption + + + WHT_Entry__WHT_Entry___WHT_Bus__Posting_Group_Caption + + + Title_Position_of_SignatoryCaption + + + Payor_Payor_s_Authorized_RepresentativeCaption + + + TotalCaption_Control1500088 + + + Payee_Payee_s_Authorized_RepresentativeCaption + + + Date_SignedCaption + + + + DataSource + + + + + \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTMonthlyRemittanceReturn.Report.al b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTMonthlyRemittanceReturn.Report.al new file mode 100644 index 0000000000..2f054e4916 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTMonthlyRemittanceReturn.Report.al @@ -0,0 +1,252 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.Finance.WithholdingTax; + +using Microsoft.Foundation.Company; +using Microsoft.WithholdingTax; + +report 6787 "WHT Monthly Remittance Return" +{ + DefaultLayout = RDLC; + RDLCLayout = 'src\Purchase\Report\WHTMonthlyRemittanceReturn.rdlc'; + Caption = 'Monthly Remittance Return WHT'; + + dataset + { + dataitem("WHT Entry"; "Withholding Tax Entry") + { + DataItemTableView = sorting("Withholding Tax Revenue Type", "Posting Date") where("Transaction Type" = const(Purchase), "Withholding Tax %" = filter(<> 0)); + RequestFilterFields = "Withholding Tax Revenue Type", "Posting Date"; + column(FORMAT_TODAY_0_4_; Format(Today, 0, 4)) + { + } + column(COMPANYNAME; COMPANYPROPERTY.DisplayName()) + { + } + column(FORMAT_USERID_; Format(UserId)) + { + } + column(CI__Industrial_Classification_; CI."Industrial Classification") + { + } + column(CI__Phone_No__; CI."Phone No.") + { + } + column(CI__Post_Code_; CI."Post Code") + { + } + column(CI_Name; CI.Name) + { + } + column(CI_Address; CI.Address) + { + } + column(CI__VAT_Registration_No__; CI."VAT Registration No.") + { + } + column(MonthName; MonthName) + { + } + column(CI__RDO_Code_; CI."WHT RDO Code") + { + } + column(WHT_Entry__WHT_Bus__Posting_Group_; "Wthldg. Tax Bus. Post. Group") + { + } + column(WHT_Entry__WHT_Prod__Posting_Group_; "Wthldg. Tax Prod. Post. Group") + { + } + column(WHT_Entry__WHT_Revenue_Type_; "Withholding Tax Revenue Type") + { + } + column(WHT_Entry__Base__LCY__; "Base (LCY)") + { + } + column(WHT_Entry__WHT___; "Withholding Tax %") + { + } + column(WHT_Entry__Amount__LCY__; "Amount (LCY)") + { + } + column(WHT_Entry__WHT_Bus__Posting_Group__Control1500035; "Wthldg. Tax Bus. Post. Group") + { + } + column(WHT_Entry__Base__LCY___Control1500036; "Base (LCY)") + { + } + column(WHT____rcount; "Withholding Tax %" / rcount) + { + } + column(ABS__Amount__LCY___; Abs("Amount (LCY)")) + { + } + column(WHT_Entry__WHT_Revenue_Type__Control1500039; "Withholding Tax Revenue Type") + { + } + column(WHT_Entry__WHT_Prod__Posting_Group__Control1500040; "Wthldg. Tax Prod. Post. Group") + { + } + column(ABS__Amount__LCY____Control1500042; Abs("Amount (LCY)")) + { + } + column(ABS__Amount__LCY____Control1500044; Abs("Amount (LCY)")) + { + } + column(ABS__Amount__LCY____Control1500046; Abs("Amount (LCY)")) + { + } + column(WHT_Entry_Entry_No_; "Entry No.") + { + } + column(CurrReport_PAGENOCaption; CurrReport_PAGENOCaptionLbl) + { + } + column(Telephone_NoCaption; Telephone_NoCaptionLbl) + { + } + column(Zip_CodeCaption; Zip_CodeCaptionLbl) + { + } + column(Line_of_BusinessCaption; Line_of_BusinessCaptionLbl) + { + } + column(For_the_MonthCaption; For_the_MonthCaptionLbl) + { + } + column(TIN_No_Caption; TIN_No_CaptionLbl) + { + } + column(Withholding_agent_nameCaption; Withholding_agent_nameCaptionLbl) + { + } + column(AddressCaption; AddressCaptionLbl) + { + } + column(RDO_CodeCaption; RDO_CodeCaptionLbl) + { + } + column(BIR_Form_No_____1601___ECaption; BIR_Form_No_____1601___ECaptionLbl) + { + } + column(Monthly_Remittance_Return_of_Creditable_Income_Taxes_Withheld__Expanded_Caption; Monthly_Remittance_Return_of_Creditable_Income_Taxes_Withheld__Expanded_CaptionLbl) + { + } + column(WHT_Entry__WHT_Bus__Posting_Group_Caption; FieldCaption("Wthldg. Tax Bus. Post. Group")) + { + } + column(WHT_Entry__WHT_Prod__Posting_Group_Caption; FieldCaption("Wthldg. Tax Prod. Post. Group")) + { + } + column(WHT_Entry__WHT_Revenue_Type_Caption; FieldCaption("Withholding Tax Revenue Type")) + { + } + column(WHT_Entry__Base__LCY__Caption; FieldCaption("Base (LCY)")) + { + } + column(WHT_Entry__WHT___Caption; FieldCaption("Withholding Tax %")) + { + } + column(WHT_Entry__Amount__LCY__Caption; FieldCaption("Amount (LCY)")) + { + } + column(Total_Tax_Required_to_be_withheld_or_remittedCaption; Total_Tax_Required_to_be_withheld_or_remittedCaptionLbl) + { + } + column(Tax_Still_Due__Overremittance_Caption; Tax_Still_Due__Overremittance_CaptionLbl) + { + } + column(Total_Amount_Still_Due__Overremittance_Caption; Total_Amount_Still_Due__Overremittance_CaptionLbl) + { + } + + trigger OnAfterGetRecord() + begin + WHTEntry1.Reset(); + WHTEntry1.Copy("WHT Entry"); + WHTEntry1.SetRange("Withholding Tax Revenue Type", "Withholding Tax Revenue Type"); + if WHTEntry1.FindFirst() then + rcount := WHTEntry1.Count(); + if rcount = 0 then + rcount := 1; + end; + + trigger OnPreDataItem() + begin + LastFieldNo := FieldNo("Withholding Tax Revenue Type"); + SetRange("Transaction Type", "Transaction Type"::Purchase); + if GetFilter("Posting Date") <> '' then + ForMonth := Date2DMY(GetRangeMin("Posting Date"), 2); + + case ForMonth of + 1: + MonthName := 'January'; + 2: + MonthName := 'February'; + 3: + MonthName := 'March'; + 4: + MonthName := 'April'; + 5: + MonthName := 'May'; + 6: + MonthName := 'June'; + 7: + MonthName := 'July'; + 8: + MonthName := 'August'; + 9: + MonthName := 'September'; + 10: + MonthName := 'October'; + 11: + MonthName := 'November'; + 12: + MonthName := 'December'; + end; + + CI.Get(); + end; + } + } + + requestpage + { + + layout + { + } + + actions + { + } + } + + labels + { + } + + var + CI: Record "Company Information"; + WHTEntry1: Record "Withholding Tax Entry"; + LastFieldNo: Integer; + rcount: Integer; + ForMonth: Integer; + MonthName: Text[20]; + CurrReport_PAGENOCaptionLbl: Label 'Page'; + Telephone_NoCaptionLbl: Label 'Telephone No'; + Zip_CodeCaptionLbl: Label 'Zip Code'; + Line_of_BusinessCaptionLbl: Label 'Line of Business'; + For_the_MonthCaptionLbl: Label 'For the Month'; + TIN_No_CaptionLbl: Label 'TIN No.'; + Withholding_agent_nameCaptionLbl: Label 'Withholding agent name'; + AddressCaptionLbl: Label 'Address'; + RDO_CodeCaptionLbl: Label 'RDO Code'; + BIR_Form_No_____1601___ECaptionLbl: Label 'BIR Form No. 1601 - E'; + Monthly_Remittance_Return_of_Creditable_Income_Taxes_Withheld__Expanded_CaptionLbl: Label 'Monthly Remittance Return of Creditable Income Taxes Withheld (Expanded)'; + Total_Tax_Required_to_be_withheld_or_remittedCaptionLbl: Label 'Total Tax Required to be withheld or remitted'; + Tax_Still_Due__Overremittance_CaptionLbl: Label 'Tax Still Due/(Overremittance)'; + Total_Amount_Still_Due__Overremittance_CaptionLbl: Label 'Total Amount Still Due/(Overremittance)'; +} + diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTMonthlyRemittanceReturn.rdlc b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTMonthlyRemittanceReturn.rdlc new file mode 100644 index 0000000000..f1b6f20ea8 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTMonthlyRemittanceReturn.rdlc @@ -0,0 +1,2745 @@ + + + 0 + + + + SQL + + + None + 0348fc08-1994-43c8-b38e-f5dc75b28ed6 + + + + + + + + + + + 1.75cm + + + 1.85cm + + + 1.85cm + + + 1.95cm + + + 1.95cm + + + 1.95cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + 0.2cm + + + + + 0.846cm + + + + + true + true + + + + + =First(Fields!WHT_Entry__WHT_Bus__Posting_Group_Caption.Value) + + + + + + + + + + + + + true + true + + + + + =First(Fields!WHT_Entry__WHT_Prod__Posting_Group_Caption.Value) + + + + + + + + + + + + + true + true + + + + + =First(Fields!WHT_Entry__WHT_Revenue_Type_Caption.Value) + + + + + + + + + + + + + true + true + + + + + =First(Fields!WHT_Entry__Base__LCY__Caption.Value) + + + + + + + + + + + + + + true + true + + + + + =First(Fields!WHT_Entry__WHT___Caption.Value) + + + + + + + + + + + + + + true + true + + + + + =First(Fields!WHT_Entry__Amount__LCY__Caption.Value) + + + + + + + + + + + + + + true + + + + + =Fields!COMPANYNAME.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!CI__Industrial_Classification_.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!CI__Phone_No__.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!CI__Post_Code_.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!CI_Name.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!CI_Address.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!CI__VAT_Registration_No__.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!MonthName.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!CI__RDO_Code_.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!CurrReport_PAGENOCaption.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!Telephone_NoCaption.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!Zip_CodeCaption.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!Line_of_BusinessCaption.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!For_the_MonthCaption.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!TIN_No_Caption.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!Withholding_agent_nameCaption.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!AddressCaption.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!RDO_CodeCaption.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!BIR_Form_No_____1601___ECaption.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!Monthly_Remittance_Return_of_Creditable_Income_Taxes_Withheld__Expanded_Caption.Value + + + + + + + true + + + + + + + + + true + + + + + =Fields!FORMAT_TODAY_0_4_.Value + + + + + + + true + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox2 + + + 6 + + + + + + + + + + + true + + + + + + + + + + + textbox8 + + + 21 + + + + + + + + + + + + + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + + textbox3 + + + 6 + + + + + + + + + + + true + + + + + + + + 21 + + + + + + + + + + + + + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =Last(Fields!WHT_Entry__WHT_Bus__Posting_Group_.Value) + + + + + + + + + + + + + + true + + + + + =Last(Fields!WHT_Entry__WHT_Prod__Posting_Group_.Value) + + + + + + + + + + + + + + true + + + + + =Last(Fields!WHT_Entry__WHT_Revenue_Type_.Value) + + + + + + + + + + + + + + true + true + + + + + =Sum(Fields!WHT_Entry__Base__LCY__.Value) + + + + + + + + + + + + + + true + true + + + + + =Avg(Fields!WHT_Entry__WHT___.Value,"Table1_Group") + + + + + + + + + + + + + + true + true + + + + + =Sum(Fields!ABS__Amount__LCY___.Value) + + + + + + + + + + + + + + true + + + + + + + + 21 + + + + + + + + + + + + + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox6 + + + 6 + + + + + + + + + + + true + + + + + + + + 21 + + + + + + + + + + + + + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =First(Fields!Total_Tax_Required_to_be_withheld_or_remittedCaption.Value) + + + + + + + + 5 + + + + + + + + + + true + true + + + + + =Sum(Fields!ABS__Amount__LCY___.Value) + + + + + + + + + + + + + + true + + + + + + + + 21 + + + + + + + + + + + + + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox42 + + + 6 + + + + + + + + + + + true + + + + + + + + 21 + + + + + + + + + + + + + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =First(Fields!Tax_Still_Due__Overremittance_Caption.Value) + + + + + + + + 4 + + + + + + + + + true + + + + + + + + + + + + + true + true + + + + + =Sum(Fields!ABS__Amount__LCY___.Value) + + + + + + + + + + + + + + true + + + + + + + + 21 + + + + + + + + + + + + + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + textbox69 + + + 6 + + + + + + + + + + + true + + + + + + + + 21 + + + + + + + + + + + + + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + =First(Fields!Total_Amount_Still_Due__Overremittance_Caption.Value) + + + + + + + + 4 + + + + + + + + + true + + + + + + + + + + + + + true + true + + + + + =Sum(Fields!ABS__Amount__LCY___.Value) + + + + + + + + + + + + + + true + + + + + + + + 21 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + After + true + true + + + After + true + true + + + + + =Fields!WHT_Entry__WHT_Revenue_Type_.Value + + + + + Before + true + + + Before + true + + + + + Before + true + + + Before + true + + + Before + true + + + Before + true + + + Before + true + + + Before + true + + + + DataSet_Result + 6.10313in + + + 4.653cm + + 18.15cm + + + 4.23cm + true + true + + + true + + + + + =Globals!PageNumber + + + + + + + 0.423cm + 17.7cm + 0.423cm + 22 + + + + true + true + + + + + =User!UserID + + + + + + + 0.846cm + 14.9cm + 0.423cm + 21 + + + + true + + + + + =ReportItems!FORMAT_TODAY_0_4_.Value + + + + + + + 15cm + 0.423cm + 20 + + + + true + + + + + =ReportItems!COMPANYNAME.Value + + + + + + 0.423cm + 0.423cm + 5.55cm + 19 + + + + true + + + + + =ReportItems!CI__Industrial_Classification_.Value + + + + + + 2.115cm + 13.65cm + 0.423cm + 18 + + + + + + 2.961cm + 15.9cm + 0.423cm + 2.1cm + 17 + + + + + + + 3.807cm + 15.9cm + 2.1cm + 16 + + + + + + 2.961cm + 2.25cm + 0.423cm + 10.65cm + 15 + + + + + + 3.807cm + 2.25cm + 10.65cm + 14 + + + + + + 2.115cm + 2.25cm + 0.423cm + 5.25cm + 13 + + + + + + 1.269cm + 2.25cm + 0.423cm + 2.55cm + 12 + + + + + + 2.115cm + 9.45cm + 0.423cm + 1.5cm + 11 + + + + + + 0.423cm + 16.95cm + 0.423cm + 0.75cm + 10 + + + + true + + + + + =ReportItems!Telephone_NoCaption.Value + + + + + + 2.961cm + 13.65cm + 0.423cm + 2.1cm + 9 + + + + + + 3.807cm + 13.65cm + 2.1cm + 8 + + + + + + 2.115cm + 11.25cm + 0.423cm + 2.4cm + 7 + + + + + + 1.269cm + 0.423cm + 2.1cm + 6 + + + + + + 2.115cm + 0.423cm + 2.1cm + 5 + + + + + + 2.961cm + 0.423cm + 2.1cm + 4 + + + + + + 3.807cm + 2.1cm + 3 + + + + + + 2.115cm + 7.65cm + 0.423cm + 1.65cm + 2 + + + + + + 12.3cm + 1.269cm + 2.1cm + 1 + + + + true + + + + + =ReportItems!Monthly_Remittance_Return_of_Creditable_Income_Taxes_Withheld__Expanded_Caption.Value + + + + + + + 7.05cm + 1.269cm + 4.5cm + + + + + 29.7cm + 21cm + 11in + 8.5in + 1.5cm + 0cm + 2cm + 2cm + + + + Public Function BlankZero(ByVal Value As Decimal) + if Value = 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankPos(ByVal Value As Decimal) + if Value > 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankZeroAndPos(ByVal Value As Decimal) + if Value >= 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankNeg(ByVal Value As Decimal) + if Value < 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankNegAndZero(ByVal Value As Decimal) + if Value <= 0 then + Return "" + end if + Return Value +End Function + + =User!Language + true + Invalid + 63a1ec76-1d10-4685-9d99-8c4a4fdf55b9 + + + + + FORMAT_TODAY_0_4_ + + + COMPANYNAME + + + FORMAT_USERID_ + + + CI__Industrial_Classification_ + + + CI__Phone_No__ + + + CI__Post_Code_ + + + CI_Name + + + CI_Address + + + CI__VAT_Registration_No__ + + + MonthName + + + CI__RDO_Code_ + + + WHT_Entry__WHT_Bus__Posting_Group_ + + + WHT_Entry__WHT_Prod__Posting_Group_ + + + WHT_Entry__WHT_Revenue_Type_ + + + WHT_Entry__Base__LCY__ + + + WHT_Entry__Base__LCY__Format + + + WHT_Entry__WHT___ + + + WHT_Entry__WHT___Format + + + WHT_Entry__Amount__LCY__ + + + WHT_Entry__Amount__LCY__Format + + + WHT_Entry__WHT_Bus__Posting_Group__Control1500035 + + + WHT_Entry__Base__LCY___Control1500036 + + + WHT_Entry__Base__LCY___Control1500036Format + + + WHT____rcount + + + WHT____rcountFormat + + + ABS__Amount__LCY___ + + + ABS__Amount__LCY___Format + + + WHT_Entry__WHT_Revenue_Type__Control1500039 + + + WHT_Entry__WHT_Prod__Posting_Group__Control1500040 + + + ABS__Amount__LCY____Control1500042 + + + ABS__Amount__LCY____Control1500042Format + + + ABS__Amount__LCY____Control1500044 + + + ABS__Amount__LCY____Control1500044Format + + + ABS__Amount__LCY____Control1500046 + + + ABS__Amount__LCY____Control1500046Format + + + WHT_Entry_Entry_No_ + + + CurrReport_PAGENOCaption + + + Telephone_NoCaption + + + Zip_CodeCaption + + + Line_of_BusinessCaption + + + For_the_MonthCaption + + + TIN_No_Caption + + + Withholding_agent_nameCaption + + + AddressCaption + + + RDO_CodeCaption + + + BIR_Form_No_____1601___ECaption + + + Monthly_Remittance_Return_of_Creditable_Income_Taxes_Withheld__Expanded_Caption + + + WHT_Entry__WHT_Bus__Posting_Group_Caption + + + WHT_Entry__WHT_Prod__Posting_Group_Caption + + + WHT_Entry__WHT_Revenue_Type_Caption + + + WHT_Entry__Base__LCY__Caption + + + WHT_Entry__WHT___Caption + + + WHT_Entry__Amount__LCY__Caption + + + Total_Tax_Required_to_be_withheld_or_remittedCaption + + + Tax_Still_Due__Overremittance_Caption + + + Total_Amount_Still_Due__Overremittance_Caption + + + + DataSource + + + + + \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTPurchTaxCrMemo.Report.al b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTPurchTaxCrMemo.Report.al new file mode 100644 index 0000000000..4a8d589b0f --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTPurchTaxCrMemo.Report.al @@ -0,0 +1,921 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.Finance.WithholdingTax; + +using Microsoft.CRM.Interaction; +using Microsoft.CRM.Segment; +using Microsoft.CRM.Team; +using Microsoft.Finance.Currency; +using Microsoft.Finance.Dimension; +using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Finance.VAT.Calculation; +using Microsoft.Foundation.Address; +using Microsoft.Foundation.Company; +using Microsoft.Inventory.Location; +using Microsoft.Purchases.Vendor; +using Microsoft.WithholdingTax; +using System.Globalization; +using System.Utilities; + +report 6789 "WHT Purch. - Tax Cr. Memo" +{ + DefaultLayout = RDLC; + RDLCLayout = 'src\Purchase\Report\WHTPurchTaxCrMemo.rdlc'; + Caption = 'Purch. - Tax Cr. Memo'; + + dataset + { + dataitem("Purch. Tax Cr. Memo Hdr."; "WHT Purch. Tax Cr. Memo Hdr.") + { + DataItemTableView = sorting("No."); + RequestFilterFields = "No.", "Buy-from Vendor No.", "No. Printed"; + RequestFilterHeading = 'Posted Purchase Tax Credit Memo'; + column(No_PurchTaxCrMemoHdr; "No.") + { + } + column(DocumentDateCaption; DocumentDateCaptionLbl) + { + } + column(EMailCaption; EMailCaptionLbl) + { + } + column(HomePageCaption; HomePageCaptionLbl) + { + } + column(AllowInvoiceDiscCaption; AllowInvoiceDiscCaptionLbl) + { + } + dataitem(CopyLoop; "Integer") + { + DataItemTableView = sorting(Number); + dataitem(PageLoop; "Integer") + { + DataItemTableView = sorting(Number) where(Number = const(1)); + column(CopyText; StrSubstNo(PurchaseTaxCreditMemoLbl, CopyText)) + { + } + column(VendAddr1; VendAddr[1]) + { + } + column(CompanyAddr1; CompanyAddr[1]) + { + } + column(VendAddr2; VendAddr[2]) + { + } + column(CompanyAddr2; CompanyAddr[2]) + { + } + column(VendAddr3; VendAddr[3]) + { + } + column(CompanyAddr3; CompanyAddr[3]) + { + } + column(VendAddr4; VendAddr[4]) + { + } + column(CompanyAddr4; CompanyAddr[4]) + { + } + column(VendAddr5; VendAddr[5]) + { + } + column(CompanyInfoPhoneNo; CompanyInfo."Phone No.") + { + } + column(CompanyInfoHomepage; CompanyInfo."Home Page") + { + } + column(CompanyInfoEmail; CompanyInfo."E-Mail") + { + } + column(VendAddr6; VendAddr[6]) + { + } + column(CompanyInfoVATRegNo; CompanyInfo."VAT Registration No.") + { + } + column(CompanyInfoGiroNo; CompanyInfo."Giro No.") + { + } + column(CompanyInfoBankName; CompanyInfo."Bank Name") + { + } + column(CompanyInfoBankAccNo; CompanyInfo."Bank Account No.") + { + } + column(PaytoVendNo_PurchTaxCrMemoHdr; "Purch. Tax Cr. Memo Hdr."."Pay-to Vendor No.") + { + } + column(BuyfromVendNo_PurchTaxCrMemoHdr; "Purch. Tax Cr. Memo Hdr."."Buy-from Vendor No.") + { + } + column(FormatedDocumentDate; Format("Purch. Tax Cr. Memo Hdr."."Document Date", 0, 4)) + { + } + column(VATNoText; VATNoText) + { + } + column(VATRegNo_PurchTaxCrMemoHdr; "Purch. Tax Cr. Memo Hdr."."VAT Registration No.") + { + } + column(No_CopyLoop; "Purch. Tax Cr. Memo Hdr."."No.") + { + } + column(PurchaserText; PurchaserText) + { + } + column(SalesPurchPersonName; SalesPurchPerson.Name) + { + } + column(AppliedToText; AppliedToText) + { + } + column(ReferenceText; ReferenceText) + { + } + column(YourRef_PurchTaxCrMemoHdr; "Purch. Tax Cr. Memo Hdr."."Your Reference") + { + } + column(VendAddr7; VendAddr[7]) + { + } + column(VendAddr8; VendAddr[8]) + { + } + column(CompanyAddr5; CompanyAddr[5]) + { + } + column(CompanyAddr6; CompanyAddr[6]) + { + } + column(FormatedPostingDate; Format("Purch. Tax Cr. Memo Hdr."."Posting Date")) + { + } + column(PricesIncluVAT_PurchTaxCrMemoHdr; "Purch. Tax Cr. Memo Hdr."."Prices Including VAT") + { + } + column(ReturnOrderNo_PurchTaxCrMemoHdr; "Purch. Tax Cr. Memo Hdr."."Return Order No.") + { + } + column(ReturnOrderNoText; ReturnOrderNoText) + { + } + column(NoOfLoops; OutputNO) + { + } + column(CompanyInfoPhoneNoCaption; CompanyInfoPhoneNoCaptionLbl) + { + } + column(CompanyInfoVATRegNoCaption; CompanyInfoVATRegNoCaptionLbl) + { + } + column(CompanyInfoGiroNoCaption; CompanyInfoGiroNoCaptionLbl) + { + } + column(CompanyInfoBankNameCaption; CompanyInfoBankNameCaptionLbl) + { + } + column(CompanyInfoBankAccNoCaption; CompanyInfoBankAccNoCaptionLbl) + { + } + column(PurchTaxCrMemoHdrNoCaption; PurchTaxCrMemoHdrNoCaptionLbl) + { + } + column(PurchTaxCrMemoHdrPostingDateCaption; PurchTaxCrMemoHdrPostingDateCaptionLbl) + { + } + column(PaytoVendNo_PurchTaxCrMemoHdrCaption; "Purch. Tax Cr. Memo Hdr.".FieldCaption("Pay-to Vendor No.")) + { + } + column(BuyfromVendNo_PurchTaxCrMemoHdrCaption; "Purch. Tax Cr. Memo Hdr.".FieldCaption("Buy-from Vendor No.")) + { + } + column(PricesIncluVAT_PurchTaxCrMemoHdrCaption; "Purch. Tax Cr. Memo Hdr.".FieldCaption("Prices Including VAT")) + { + } + dataitem(DimensionLoop1; "Integer") + { + DataItemLinkReference = "Purch. Tax Cr. Memo Hdr."; + DataItemTableView = sorting(Number) where(Number = filter(1 ..)); + column(DimText; DimText) + { + } + column(Number_DimensionLoop1; Number) + { + } + column(HeaderDimensionsCaption; HeaderDimensionsCaptionLbl) + { + } + + trigger OnAfterGetRecord() + begin + if Number = 1 then begin + if not DimSetEntry1.FindFirst() then + CurrReport.Break(); + end else + if not Continue then + CurrReport.Break(); + + Clear(DimText); + Continue := false; + repeat + OldDimText := DimText; + if DimText = '' then + DimText := StrSubstNo( + '%1 %2', DimSetEntry1."Dimension Code", DimSetEntry1."Dimension Value Code") + else + DimText := + StrSubstNo( + '%1, %2 %3', DimText, + DimSetEntry1."Dimension Code", DimSetEntry1."Dimension Value Code"); + if StrLen(DimText) > MaxStrLen(OldDimText) then begin + DimText := OldDimText; + Continue := true; + exit; + end; + until (DimSetEntry1.Next() = 0); + end; + + trigger OnPreDataItem() + begin + if not ShowInternalInfo then + CurrReport.Break(); + end; + } + dataitem("Purch. Tax Cr. Memo Line"; "WHT Purch. Tax Cr. Memo Line") + { + DataItemLink = "Document No." = field("No."); + DataItemLinkReference = "Purch. Tax Cr. Memo Hdr."; + DataItemTableView = sorting("Document No.", "Line No."); + column(LineAmt_PurchTaxCrMemoLine; "Line Amount") + { + AutoFormatExpression = GetCurrencyCode(); + AutoFormatType = 1; + } + column(Desc_PurchTaxCrMemoLine; Description) + { + } + column(Desc_PurchTaxCrMemoLineCaption; FieldCaption(Description)) + { + } + column(TypeNO; TypeNO) + { + } + column(No_PurchTaxCrMemoLine; "No.") + { + } + column(No_PurchTaxCrMemoLineCaption; FieldCaption("No.")) + { + } + column(Quantity_PurchTaxCrMemoLine; Quantity) + { + } + column(QuantityCaption; FieldCaption(Quantity)) + { + } + column(UOM_PurchTaxCrMemoLine; "Unit of Measure") + { + } + column(UOMCaption; FieldCaption("Unit of Measure")) + { + } + column(DirectUnitCost_PurchTaxCrMemoLine; "Direct Unit Cost") + { + AutoFormatExpression = GetCurrencyCode(); + AutoFormatType = 2; + } + column(LineDiscount_PurchTaxCrMemoLine; "Line Discount %") + { + } + column(AllowInvoiceDisc_PurchTaxCrMemoLine; "Allow Invoice Disc.") + { + } + column(VATIdentifier_PurchTaxCrMemoLine; "VAT Identifier") + { + } + column(VATIdentifierCaption; FieldCaption("VAT Identifier")) + { + } + column(InvDiscountAmount; -"Inv. Discount Amount") + { + AutoFormatExpression = GetCurrencyCode(); + AutoFormatType = 1; + } + column(InvDiscountAmount0; TotalInvAmt <> 0) + { + } + column(TotalText; TotalText) + { + } + column(PurchTaxCrMemoLineAmount; Amount) + { + AutoFormatExpression = GetCurrencyCode(); + AutoFormatType = 1; + } + column(TotalAmt; TotalAmt) + { + } + column(TotalExclVATText; TotalExclVATText) + { + } + column(TotalInclVATText; TotalInclVATText) + { + } + column(AmountIncluVAT_PurchTaxCrMemoLine; "Amount Including VAT") + { + AutoFormatExpression = GetCurrencyCode(); + AutoFormatType = 1; + } + column(AmountIncludingVATAmount; "Amount Including VAT" - Amount) + { + AutoFormatExpression = GetCurrencyCode(); + AutoFormatType = 1; + } + column(VATAmountLineVATAmountText; TempVATAmountLine.VATAmountText()) + { + } + column(TotalVATAmt; TotalVATAmt) + { + } + column(LineAmtInvDisAmtAmtIncluVAT; -("Line Amount" - "Inv. Discount Amount" - "Amount Including VAT")) + { + AutoFormatExpression = "Purch. Tax Cr. Memo Hdr."."Currency Code"; + AutoFormatType = 1; + } + column(PurchTaxCrMemoHdrVATBaseDis0; "Purch. Tax Cr. Memo Hdr."."VAT Base Discount %" <> 0) + { + } + column(CurrFactor_PurchTaxCrMemoHdr; "Purch. Tax Cr. Memo Hdr."."Currency Factor") + { + } + column(TotalExclVATTextLCY; TotalExclVATTextLCY) + { + } + column(TotalInclVATTextLCY; TotalInclVATTextLCY) + { + } + column(AmountIncLCY; AmountIncLCY) + { + AutoFormatExpression = GetCurrencyCode(); + AutoFormatType = 1; + } + column(AmountIncLCYAmountLCY; AmountIncLCY - AmountLCY) + { + AutoFormatExpression = GetCurrencyCode(); + AutoFormatType = 1; + } + column(AmountLCY; AmountLCY) + { + AutoFormatExpression = GetCurrencyCode(); + AutoFormatType = 1; + } + column(CurrCode_PurchTaxCrMemoHdr; "Purch. Tax Cr. Memo Hdr."."Currency Code") + { + } + column(CurrencyLCY; CurrencyLCY) + { + } + column(AmountLangB1AmountLangB2; AmountLangB[1] + ' ' + AmountLangB[2]) + { + } + column(AmountLangA1AmountLangA2; AmountLangA[1] + ' ' + AmountLangA[2]) + { + } + column(AmountInWords; AmountInWords) + { + } + column(LineNo_PurchTaxCrMemoLine; "Line No.") + { + } + column(TotalLineAmt; TotalLineAmt) + { + } + column(TotalInvAmt; TotalInvAmt) + { + } + column(DirectUnitCostCaption; DirectUnitCostCaptionLbl) + { + } + column(PurchTaxCrMemoLineLineDisCaption; PurchTaxCrMemoLineLineDisCaptionLbl) + { + } + column(AmountCaption; AmountCaptionLbl) + { + } + column(InvDiscountAmountCaption; InvDiscountAmountCaptionLbl) + { + } + column(SubtotalCaption; SubtotalCaptionLbl) + { + } + column(LineAmtInvDisAmtAmtIncluVATCaption; LineAmtInvDisAmtAmtIncluVATCaptionLbl) + { + } + column(ExchangeRateCaption; ExchangeRateCaptionLbl) + { + } + dataitem(DimensionLoop2; "Integer") + { + DataItemTableView = sorting(Number) where(Number = filter(1 ..)); + column(DimText_DimensionLoop2; DimText) + { + } + column(LineDimensionsCaption; LineDimensionsCaptionLbl) + { + } + + trigger OnAfterGetRecord() + begin + if Number = 1 then begin + if not DimSetEntry2.FindFirst() then + CurrReport.Break(); + end else + if not Continue then + CurrReport.Break(); + + Clear(DimText); + Continue := false; + repeat + OldDimText := DimText; + if DimText = '' then + DimText := StrSubstNo( + '%1 %2', DimSetEntry2."Dimension Code", DimSetEntry2."Dimension Value Code") + else + DimText := + StrSubstNo( + '%1, %2 %3', DimText, + DimSetEntry2."Dimension Code", DimSetEntry2."Dimension Value Code"); + if StrLen(DimText) > MaxStrLen(OldDimText) then begin + DimText := OldDimText; + Continue := true; + exit; + end; + until (DimSetEntry2.Next() = 0); + end; + + trigger OnPreDataItem() + begin + if not ShowInternalInfo then + CurrReport.Break(); + + DimSetEntry2.SetRange("Dimension Set ID", "Purch. Tax Cr. Memo Line"."Dimension Set ID"); + end; + } + + trigger OnAfterGetRecord() + begin + if (Type = Type::"G/L Account") and (not ShowInternalInfo) then + "No." := ''; + + TempVATAmountLine.Init(); + TempVATAmountLine."VAT Identifier" := "VAT Identifier"; + TempVATAmountLine."VAT Calculation Type" := "VAT Calculation Type"; + TempVATAmountLine."Tax Group Code" := "Tax Group Code"; + TempVATAmountLine."Use Tax" := "Use Tax"; + TempVATAmountLine."VAT %" := "VAT %"; + TempVATAmountLine."VAT Base" := Amount; + TempVATAmountLine."Amount Including VAT" := "Amount Including VAT"; + TempVATAmountLine."Line Amount" := "Line Amount"; + if "Allow Invoice Disc." then + TempVATAmountLine."Inv. Disc. Base Amount" := "Line Amount"; + TempVATAmountLine."Invoice Discount Amount" := "Inv. Discount Amount"; + TempVATAmountLine.InsertLine(); + + TypeNO := Type; + TotalLineAmt += "Line Amount"; + TotalInvAmt += "Inv. Discount Amount"; + TotalAmt += Amount; + TotalVATAmt += "Amount Including VAT"; + end; + + trigger OnPreDataItem() + begin + TempVATAmountLine.DeleteAll(); + MoreLines := FindLast(); + while MoreLines and (Description = '') and ("No." = '') and (Quantity = 0) and (Amount = 0) do + MoreLines := Next(-1) <> 0; + if not MoreLines then + CurrReport.Break(); + SetRange("Line No.", 0, "Line No."); + TotalLineAmt := 0; + TotalInvAmt := 0; + TotalAmt := 0; + TotalVATAmt := 0; + end; + } + dataitem(VATCounter; "Integer") + { + DataItemTableView = sorting(Number); + column(VATAmountLineVATBase; TempVATAmountLine."VAT Base") + { + AutoFormatExpression = "Purch. Tax Cr. Memo Hdr."."Currency Code"; + AutoFormatType = 1; + } + column(VATAmountLineVATAmount; TempVATAmountLine."VAT Amount") + { + AutoFormatExpression = "Purch. Tax Cr. Memo Hdr."."Currency Code"; + AutoFormatType = 1; + } + column(VATAmountLineLineAmount; TempVATAmountLine."Line Amount") + { + AutoFormatExpression = "Purch. Tax Cr. Memo Hdr."."Currency Code"; + AutoFormatType = 1; + } + column(VATAmountLineInvDiscBaseAmt; TempVATAmountLine."Inv. Disc. Base Amount") + { + AutoFormatExpression = "Purch. Tax Cr. Memo Hdr."."Currency Code"; + AutoFormatType = 1; + } + column(VATAmountLineInvoiceDisAmt; TempVATAmountLine."Invoice Discount Amount") + { + AutoFormatExpression = "Purch. Tax Cr. Memo Hdr."."Currency Code"; + AutoFormatType = 1; + } + column(VATAmountLineVAT; TempVATAmountLine."VAT %") + { + DecimalPlaces = 0 : 5; + } + column(VATAmountLineVATIdentifier; TempVATAmountLine."VAT Identifier") + { + } + column(VATAmountLineVATCaption; VATAmountLineVATCaptionLbl) + { + } + column(VATAmountLineVATBaseCaption; VATAmountLineVATBaseCaptionLbl) + { + } + column(VATAmountLineVATAmtCaption; VATAmountLineVATAmtCaptionLbl) + { + } + column(VATAmountSpecificationCaption; VATAmountSpecificationCaptionLbl) + { + } + column(VATAmountLineVATIdentCaption; VATAmountLineVATIdentCaptionLbl) + { + } + column(VATAmountLineLineAmtCaption; VATAmountLineLineAmtCaptionLbl) + { + } + column(VATAmtLineInvDiscBaseAmtCaption; VATAmtLineInvDiscBaseAmtCaptionLbl) + { + } + column(VATAmountLineInvDisAmtCaption; VATAmountLineInvDisAmtCaptionLbl) + { + } + column(VATBaseCaption; VATBaseCaptionLbl) + { + } + + trigger OnAfterGetRecord() + begin + TempVATAmountLine.GetLine(Number); + end; + + trigger OnPreDataItem() + begin + if TempVATAmountLine.GetTotalVATAmount() = 0 then + CurrReport.Break(); + SetRange(Number, 1, TempVATAmountLine.Count); + end; + } + dataitem(Total; "Integer") + { + DataItemTableView = sorting(Number) where(Number = const(1)); + + trigger OnPreDataItem() + begin + if "Purch. Tax Cr. Memo Hdr."."Buy-from Vendor No." = "Purch. Tax Cr. Memo Hdr."."Pay-to Vendor No." then + CurrReport.Break(); + end; + } + dataitem(Total2; "Integer") + { + DataItemTableView = sorting(Number) where(Number = const(1)); + column(ShipToAddr1; ShipToAddr[1]) + { + } + column(ShipToAddr2; ShipToAddr[2]) + { + } + column(ShipToAddr3; ShipToAddr[3]) + { + } + column(ShipToAddr4; ShipToAddr[4]) + { + } + column(ShipToAddr5; ShipToAddr[5]) + { + } + column(ShipToAddr6; ShipToAddr[6]) + { + } + column(ShipToAddr7; ShipToAddr[7]) + { + } + column(ShipToAddr8; ShipToAddr[8]) + { + } + column(ShiptoAddressCaption; ShiptoAddressCaptionLbl) + { + } + + trigger OnPreDataItem() + begin + if ShipToAddr[1] = '' then + CurrReport.Break(); + end; + } + } + + trigger OnAfterGetRecord() + begin + if Number > 1 then + CopyText := CopyLbl; + OutputNO += 1; + end; + + trigger OnPostDataItem() + begin + if not CurrReport.Preview then + PurchTaxCrMemoCountPrinted.Run("Purch. Tax Cr. Memo Hdr."); + end; + + trigger OnPreDataItem() + begin + NoOfLoops := Abs(NoOfCopies) + 1; + CopyText := ''; + SetRange(Number, 1, NoOfLoops); + + OutputNO := 1; + end; + } + + trigger OnAfterGetRecord() + var + WithholdingTaxInvoiceMgmt: Codeunit "Withholding Tax Invoice Mgmt."; + begin + CurrReport.Language := LanguageMgt.GetLanguageIdOrDefault("Language Code"); + CurrReport.FormatRegion := LanguageMgt.GetFormatRegionOrDefault("Format Region"); + + if RespCenter.Get("Responsibility Center") then begin + FormatAddr.RespCenter(CompanyAddr, RespCenter); + CompanyInfo."Phone No." := RespCenter."Phone No."; + CompanyInfo."Fax No." := RespCenter."Fax No."; + end else + FormatAddr.Company(CompanyAddr, CompanyInfo); + + DimSetEntry1.SetRange("Dimension Set ID", "Dimension Set ID"); + + if "Return Order No." = '' then + ReturnOrderNoText := '' + else + ReturnOrderNoText := FieldCaption("Return Order No."); + if "Purchaser Code" = '' then begin + SalesPurchPerson.Init(); + PurchaserText := ''; + end else begin + SalesPurchPerson.Get("Purchaser Code"); + PurchaserText := PurchaserLbl + end; + if "Your Reference" = '' then + ReferenceText := '' + else + ReferenceText := FieldCaption("Your Reference"); + if "VAT Registration No." = '' then + VATNoText := '' + else + VATNoText := FieldCaption("VAT Registration No."); + if "Currency Code" = '' then begin + GLSetup.TestField("LCY Code"); + TotalText := StrSubstNo(TotalLbl, GLSetup."LCY Code"); + TotalInclVATText := StrSubstNo(TotalIncludingVATLbl, GLSetup."LCY Code"); + TotalExclVATText := StrSubstNo(TotalExclVATLbl, GLSetup."LCY Code"); + end else begin + TotalText := StrSubstNo(TotalLbl, "Currency Code"); + TotalInclVATText := StrSubstNo(TotalIncludingVATLbl, "Currency Code"); + TotalExclVATText := StrSubstNo(TotalExclVATLbl, "Currency Code"); + TotalInclVATTextLCY := StrSubstNo(TotalIncludingVATLbl, GLSetup."LCY Code"); + TotalExclVATTextLCY := StrSubstNo(TotalExclVATLbl, GLSetup."LCY Code"); + end; + PurchTaxCrMemoPayTo(VendAddr, "Purch. Tax Cr. Memo Hdr."); + + CalcFields(Amount); + CalcFields("Amount Including VAT"); + + AmountLCY := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + WorkDate(), "Currency Code", Amount, "Currency Factor")); + AmountIncLCY := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + WorkDate(), "Currency Code", "Amount Including VAT", "Currency Factor")); + WithholdingTaxInvoiceMgmt.InitTextVariable(); + WithholdingTaxInvoiceMgmt.FormatNoText(AmountLangA, "Amount Including VAT", "Currency Code"); + if ShowTHFormatting then begin + WithholdingTaxInvoiceMgmt.InitTextVariableTH(); + WithholdingTaxInvoiceMgmt.FormatNoTextTH(AmountLangB, "Amount Including VAT", "Currency Code"); + end else begin + AmountLangB[1] := ''; + AmountLangB[2] := ''; + end; + + if "Applies-to Doc. No." = '' then + AppliedToText := '' + else + AppliedToText := StrSubstNo(AppliesToLbl, "Applies-to Doc. Type", "Applies-to Doc. No."); + + PurchTaxCrMemoShipTo(ShipToAddr, "Purch. Tax Cr. Memo Hdr."); + + if LogInteraction then + if not CurrReport.Preview then + SegManagement.LogDocument( + 16, "No.", 0, 0, DATABASE::Vendor, "Buy-from Vendor No.", "Purchaser Code", '', "Posting Description", ''); + end; + } + } + + requestpage + { + SaveValues = true; + + layout + { + area(content) + { + group(Options) + { + Caption = 'Options'; + field(NoOfCopies; NoOfCopies) + { + ApplicationArea = Basic, Suite; + Caption = 'No. of Copies'; + ToolTip = 'Specifies how many copies of the document to print.'; + } + field(ShowInternalInformation; ShowInternalInfo) + { + ApplicationArea = Basic, Suite; + Caption = 'Show Internal Information'; + ToolTip = 'Specifies if the document shows internal information.'; + } + field(LogInteraction; LogInteraction) + { + ApplicationArea = Basic, Suite; + Caption = 'Log Interaction'; + Enabled = LogInteractionEnable; + ToolTip = 'Specifies if you want the program to log this interaction.'; + } + field(AmountInWords; AmountInWords) + { + ApplicationArea = Basic, Suite; + Caption = 'Show Total In Words'; + ToolTip = 'Specifies that you want to print total amounts as words.'; + } + field(CurrencyLCY; CurrencyLCY) + { + ApplicationArea = Basic, Suite; + Caption = 'Show LCY for FCY'; + ToolTip = 'Specifies if you want to use your own currency instead of the currency of your customers or vendors.'; + } + field(ShowTHAmountInWords; ShowTHFormatting) + { + ApplicationArea = Basic, Suite; + Caption = 'Show TH Amount In Words'; + ToolTip = 'Specifies that you want to print Thai amounts as words.'; + } + } + } + } + + actions + { + } + + trigger OnInit() + begin + LogInteractionEnable := true; + end; + + trigger OnOpenPage() + begin + LogInteraction := SegManagement.FindInteractionTemplateCode("Interaction Log Entry Document Type"::"Purch. Cr. Memo") <> ''; + LogInteractionEnable := LogInteraction; + end; + } + + labels + { + } + + trigger OnInitReport() + begin + GLSetup.Get(); + CompanyInfo.Get(); + end; + + local procedure PurchTaxCrMemoPayTo(var AddrArray: array[8] of Text[100]; var PurchTaxCrMemoHeader: Record "WHT Purch. Tax Cr. Memo Hdr.") + begin + FormatAddr.FormatAddr( + AddrArray, PurchTaxCrMemoHeader."Pay-to Name", PurchTaxCrMemoHeader."Pay-to Name 2", PurchTaxCrMemoHeader."Pay-to Contact", PurchTaxCrMemoHeader."Pay-to Address", PurchTaxCrMemoHeader."Pay-to Address 2", + PurchTaxCrMemoHeader."Pay-to City", PurchTaxCrMemoHeader."Pay-to Post Code", PurchTaxCrMemoHeader."Pay-to County", PurchTaxCrMemoHeader."Pay-to Country/Region Code"); + end; + + local procedure PurchTaxCrMemoShipTo(var AddrArray: array[8] of Text[100]; var PurchTaxCrMemoHeader: Record "WHT Purch. Tax Cr. Memo Hdr.") + begin + FormatAddr.FormatAddr( + AddrArray, PurchTaxCrMemoHeader."Ship-to Name", PurchTaxCrMemoHeader."Ship-to Name 2", PurchTaxCrMemoHeader."Ship-to Contact", PurchTaxCrMemoHeader."Ship-to Address", PurchTaxCrMemoHeader."Ship-to Address 2", + PurchTaxCrMemoHeader."Ship-to City", PurchTaxCrMemoHeader."Ship-to Post Code", PurchTaxCrMemoHeader."Ship-to County", PurchTaxCrMemoHeader."Ship-to Country/Region Code"); + end; + + var + GLSetup: Record "General Ledger Setup"; + CompanyInfo: Record "Company Information"; + SalesPurchPerson: Record "Salesperson/Purchaser"; + TempVATAmountLine: Record "VAT Amount Line" temporary; + DimSetEntry1: Record "Dimension Set Entry"; + DimSetEntry2: Record "Dimension Set Entry"; + RespCenter: Record "Responsibility Center"; + CurrExchRate: Record "Currency Exchange Rate"; + LanguageMgt: Codeunit Language; + PurchTaxCrMemoCountPrinted: Codeunit "WHT Purch. Tax Cr.Memo-Printed"; + FormatAddr: Codeunit "Format Address"; + SegManagement: Codeunit SegManagement; + VendAddr: array[8] of Text[100]; + ShipToAddr: array[8] of Text[100]; + CompanyAddr: array[8] of Text[100]; + ReturnOrderNoText: Text[30]; + PurchaserText: Text[30]; + VATNoText: Text[30]; + ReferenceText: Text[35]; + AppliedToText: Text[40]; + TotalText: Text[50]; + AmountLangA: array[2] of Text[80]; + AmountLangB: array[2] of Text[80]; + TotalInclVATText: Text[50]; + TotalExclVATText: Text[50]; + MoreLines: Boolean; + NoOfCopies: Integer; + NoOfLoops: Integer; + CopyText: Text[30]; + DimText: Text[120]; + OldDimText: Text[75]; + ShowInternalInfo: Boolean; + Continue: Boolean; + LogInteraction: Boolean; + AmountInWords: Boolean; + PurchaserLbl: Label 'Purchaser'; + TotalLbl: Label 'Total %1'; + TotalIncludingVATLbl: Label 'Total %1 Incl. VAT'; + AppliesToLbl: Label '(Applies to %1 %2)'; + CopyLbl: Label 'COPY'; + PurchaseTaxCreditMemoLbl: Label 'Purchase - Tax Credit Memo %1'; + TotalExclVATLbl: Label 'Total %1 Excl. VAT'; + CurrencyLCY: Boolean; + AmountIncLCY: Decimal; + TotalInclVATTextLCY: Text[50]; + TotalExclVATTextLCY: Text[50]; + AmountLCY: Decimal; + ShowTHFormatting: Boolean; + TypeNO: Integer; + OutputNO: Integer; + TotalLineAmt: Decimal; + TotalInvAmt: Decimal; + TotalAmt: Decimal; + TotalVATAmt: Decimal; + LogInteractionEnable: Boolean; + CompanyInfoPhoneNoCaptionLbl: Label 'Phone No.'; + CompanyInfoVATRegNoCaptionLbl: Label 'VAT Registration No.'; + CompanyInfoGiroNoCaptionLbl: Label 'Giro No.'; + CompanyInfoBankNameCaptionLbl: Label 'Bank'; + CompanyInfoBankAccNoCaptionLbl: Label 'Account No.'; + PurchTaxCrMemoHdrNoCaptionLbl: Label 'Credit Memo No.'; + PurchTaxCrMemoHdrPostingDateCaptionLbl: Label 'Posting Date'; + HeaderDimensionsCaptionLbl: Label 'Header Dimensions'; + DirectUnitCostCaptionLbl: Label 'Direct Unit Cost'; + PurchTaxCrMemoLineLineDisCaptionLbl: Label 'Discount %'; + AmountCaptionLbl: Label 'Amount'; + InvDiscountAmountCaptionLbl: Label 'Invoice Discount Amount'; + SubtotalCaptionLbl: Label 'Subtotal'; + LineAmtInvDisAmtAmtIncluVATCaptionLbl: Label 'Payment Discount on VAT'; + ExchangeRateCaptionLbl: Label 'Exchange Rate'; + LineDimensionsCaptionLbl: Label 'Line Dimensions'; + VATAmountLineVATCaptionLbl: Label 'VAT %'; + VATAmountLineVATBaseCaptionLbl: Label 'VAT Base'; + VATAmountLineVATAmtCaptionLbl: Label 'VAT Amount'; + VATAmountSpecificationCaptionLbl: Label 'VAT Amount Specification'; + VATAmountLineVATIdentCaptionLbl: Label 'VAT Identifier'; + VATAmountLineLineAmtCaptionLbl: Label 'Line Amount'; + VATAmtLineInvDiscBaseAmtCaptionLbl: Label 'Invoice Discount Base Amount'; + VATAmountLineInvDisAmtCaptionLbl: Label 'Invoice Discount Amount'; + VATBaseCaptionLbl: Label 'Total'; + ShiptoAddressCaptionLbl: Label 'Ship-to Address'; + DocumentDateCaptionLbl: Label 'Document Date'; + EMailCaptionLbl: Label 'E Mail'; + HomePageCaptionLbl: Label 'HomePage'; + AllowInvoiceDiscCaptionLbl: Label 'Allow Invoice Discount'; +} + diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTPurchTaxCrMemo.rdlc b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTPurchTaxCrMemo.rdlc new file mode 100644 index 0000000000..284931a5c6 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WHTPurchTaxCrMemo.rdlc @@ -0,0 +1,7427 @@ + + + 0 + + + + SQL + + + None + 1abd5787-3934-44ba-8888-b64da9ffc20d + + + + + + + + + + + 6.9685in + + + + + 8.02112in + + + + + + + + + + 0.8563in + + + 0.88583in + + + 1.05118in + + + 1.05118in + + + 1.05118in + + + 1.05118in + + + 1.02165in + + + + + 0.27778in + + + + + true + true + + + + + + + + + + + 7 + + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!VATAmountSpecificationCaption.Value + + + + + + 3 + + + + + + + + true + + + + + + + + 4 + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!VATAmountLineVATIdentCaption.Value + + + + + + + + + + + + + + true + + + + + =Fields!VATAmountLineVATCaption.Value + + + + + + + + + + + + + + true + + + + + =Fields!VATAmountLineLineAmtCaption.Value + + + + + + + + + + + + + + true + + + + + =Fields!VATAmtLineInvDiscBaseAmtCaption.Value + + + + + + + + + + + + + + true + + + + + =Fields!VATAmountLineInvDisAmtCaption.Value + + + + + + + + + + + + + + true + + + + + =Fields!VATAmountLineVATBaseCaption.Value + + + + + + + + + + + + + + true + + + + + =Fields!VATAmountLineVATAmtCaption.Value + + + + + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + + Textbox241 + + + + + + Bottom + 0.0625in + + + 7 + + + + + + + + + + + + 0.06944in + + + + + true + + + + + + + + + + + 7 + + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!VATAmountLineVATIdentifier.Value + + + + + + + + + + + true + + + + + =Fields!VATAmountLineVAT.Value + + + + + + + + + + + true + true + + + + + =Fields!VATAmountLineLineAmount.Value + + + + + + + + + + + true + true + + + + + =Fields!VATAmountLineInvDiscBaseAmt.Value + + + + + + + + + + + true + true + + + + + =Fields!VATAmountLineInvoiceDisAmt.Value + + + + + + + + + + + true + true + + + + + =Fields!VATAmountLineVATBase.Value + + + + + + + + + + + true + true + + + + + =Fields!VATAmountLineVATAmount.Value + + + + + + + + + + + 0.06944in + + + + + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + Bottom + 0.0625in + + + 5 + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + 5 + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!VATBaseCaption.Value + + + + + + + + + + + true + + + + + + + + + + + + + true + true + + + + + =Sum(Fields!VATAmountLineLineAmount.Value) + + + + + + + + + + + true + true + + + + + =Sum(Fields!VATAmountLineInvDiscBaseAmt.Value) + + + + + + + + + + + true + true + + + + + =Sum(Fields!VATAmountLineInvoiceDisAmt.Value) + + + + + + + + + + + true + true + + + + + =Sum(Fields!VATAmountLineVATBase.Value) + + + + + + + + + + + true + true + + + + + =Sum(Fields!VATAmountLineVATAmount.Value) + + + + + + + + + + + + + + + + + + + + + + + + + + After + true + + + + =(Fields!VATAmountLineVATIdentCaption.Value="") + + After + true + true + + + + =(Fields!VATAmountLineVATIdentCaption.Value="") + + After + true + true + + + + =(Fields!VATAmountLineVATIdentCaption.Value="") + + After + true + + + + =(Fields!VATAmountLineVATIdentCaption.Value="") + + After + true + true + + + + Detail + + + + + =isNothing(Fields!VATAmountLineVATIdentCaption.Value) + + + + Detail_Collection + Output + true + + + + =isNothing(Fields!VATAmountLineVATIdentCaption.Value) + + Before + true + + + + =isNothing(Fields!VATAmountLineVATIdentCaption.Value) + + Before + + + + =isNothing(Fields!VATAmountLineVATIdentCaption.Value) + + Before + true + + + + DataSet_Result + + + =isNothing(Fields!VATAmountLineVATIdentCaption.Value) + Equal + + =False + + + + 11.72726cm + 3.03667cm + 6.9685in + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + + + + + =IIF(Code.IsNewPage(Fields!No_PurchTaxCrMemoHdr.Value,Fields!NoOfLoops.Value),True,False) + + + + + + + + + + + 0.16in + + + + + true + true + + + + + =Fields!No_PurchTaxCrMemoLineCaption.Value + + + + + + + + + + + true + true + + + + + =Fields!Desc_PurchTaxCrMemoLineCaption.Value + + + + + + + + + + + true + true + + + + + =Fields!QuantityCaption.Value + + + + + + + textbox37 + + + + + + + + true + true + + + + + =Fields!UOMCaption.Value + + + + + + + + + + + true + true + + + + + =Fields!DirectUnitCostCaption.Value + + + + + + + textbox31 + + + + + + + + true + true + + + + + =Fields!PurchTaxCrMemoLineLineDisCaption.Value + + + + + + + textbox28 + + + + + + + + true + true + + + + + =Fields!AllowInvoiceDiscCaption.Value + + + + + + + + + + + true + true + + + + + =Fields!VATIdentifierCaption.Value + + + + + + + + + + + true + true + + + + + =Fields!AmountCaption.Value + + + + + + + textbox4 + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + + + + Bottom + + + 9 + + + + + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 9 + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!No_PurchTaxCrMemoLine.Value + + + + + + + + + + + true + + + + + =Fields!Desc_PurchTaxCrMemoLine.Value + + + + + + + + + + + true + true + + + + + =Fields!Quantity_PurchTaxCrMemoLine.Value + + + + + + + + + + + true + + + + + =Fields!UOM_PurchTaxCrMemoLine.Value + + + + + + + + + + + true + true + + + + + =Fields!DirectUnitCost_PurchTaxCrMemoLine.Value + + + + + + + + + + + true + true + + + + + =IIF(Fields!LineDiscount_PurchTaxCrMemoLine.Value=0,"",Fields!LineDiscount_PurchTaxCrMemoLine.Value) + + + + + + + + + + + true + + + + + =IIF(Fields!AllowInvoiceDisc_PurchTaxCrMemoLine.Value,"Yes","No") + + + + + + + + + + + true + + + + + =Fields!VATIdentifier_PurchTaxCrMemoLine.Value + + + + + + + + + + + true + true + + + + + =Fields!LineAmt_PurchTaxCrMemoLine.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!LineDimensionsCaption.Value + + + + + + + + + + + true + + + + + =Fields!DimText_DimensionLoop2.Value + + + + + + 8 + + + + + + + + + + + + + 0.13889in + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 5 + + + + + + + + + + true + + + + + =Fields!SubtotalCaption.Value + + + + + + 3 + + + + + + + + true + true + + + + + =Last(Fields!TotalLineAmt.Value) + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 5 + + + + + + + + + + true + + + + + =Fields!InvDiscountAmountCaption.Value + + + + + + 3 + + + + + + + + true + true + + + + + =Last(Fields!TotalInvAmt.Value) + + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 8 + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + Middle + 0.0625in + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 8 + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 5 + + + + + + + + + + true + + + + + =Fields!TotalText.Value + + + + + + 3 + + + + + + + + true + true + + + + + =Last(Fields!TotalAmt.Value) + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 9 + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 5 + + + + + + + + + + true + + + + + =Fields!TotalExclVATText.Value + + + + + + 3 + + + + + + + + true + true + + + + + =Last(Fields!TotalAmt.Value) + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 5 + + + + + + + + + + true + + + + + =Last(Fields!VATAmountLineVATAmountText.Value) + + + + + + 3 + + + + + + + + true + true + + + + + =Last(Fields!TotalVATAmt.Value) + + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 9 + + + + + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 8 + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + Bottom + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 5 + + + + + + + + + + true + + + + + =Fields!TotalInclVATText.Value + + + + + + 3 + + + + + + + + true + true + + + + + =Last(Fields!TotalVATAmt.Value) + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 9 + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 5 + + + + + + + + + + true + + + + + =Fields!LineAmtInvDisAmtAmtIncluVATCaption.Value + + + + + + 3 + + + + + + + + true + true + + + + + =Last(Fields!TotalLineAmt.Value) + + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 9 + + + + + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 8 + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + Bottom + 0.0625in + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 5 + + + + + + + + + + true + + + + + =Fields!TotalInclVATText.Value + + + + + + 3 + + + + + + + + true + true + + + + + =Last(Fields!TotalVATAmt.Value) + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 9 + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 5 + + + + + + + + + + true + + + + + =Last(Fields!VATAmountLineVATAmountText.Value) + + + + + + 3 + + + + + + + + true + true + + + + + =Last(Fields!TotalVATAmt.Value) - Last(Fields!TotalAmt.Value) + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 5 + + + + + + + + + + true + + + + + =Fields!TotalExclVATText.Value + + + + + + 3 + + + + + + + + true + true + + + + + =Last(Fields!TotalAmt.Value) + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 9 + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 5 + + + + + + + + + + true + + + + + =Fields!TotalExclVATTextLCY.Value + + + + + + 3 + + + + + + + + true + true + + + + + =Last(Fields!AmountLCY.Value) + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 5 + + + + + + + + + + true + + + + + =Last(Fields!VATAmountLineVATAmountText.Value) + + + + + + 3 + + + + + + + + true + + + + + =Last(Fields!AmountIncLCYAmountLCY.Value) + + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 8 + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 8 + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + Bottom + 0.0625in + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ExchangeRateCaption.Value + + + + + + + + + + + true + + + + + =Fields!CurrFactor_PurchTaxCrMemoHdr.Value + + + + + + + + + 4 + + + + + + + + + true + + + + + =Fields!TotalInclVATTextLCY.Value + + + + + + 3 + + + + + + + + true + + + + + =Last(Fields!AmountIncLCY.Value) + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 9 + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!AmountLangA1AmountLangA2.Value + + + + + + + + + 9 + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!AmountLangB1AmountLangB2.Value + + + + + + + + + 9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + true + + + + + + + =Fields!No_PurchTaxCrMemoHdr.Value + =Fields!LineNo_PurchTaxCrMemoLine.Value + + + + + =Fields!No_PurchTaxCrMemoHdr.Value + + + + + After + + + + Detail + + + + + =(Fields!LineDimensionsCaption.Value="") + + + + Detail_Collection + Output + true + + + + + + + =IIF(Fields!InvDiscountAmount0.Value,False,True) + + true + + + + =IIF(Fields!InvDiscountAmount0.Value,False,True) + + true + + + + =IIF(Last(Fields!TotalVATAmt.Value)=Last(Fields!TotalAmt.Value),False,True) + + + + + =IIF(Last(Fields!TotalVATAmt.Value)=Last(Fields!TotalAmt.Value),False,True) + + + + + =IIF(Last(Fields!TotalVATAmt.Value)=Last(Fields!TotalAmt.Value),False,True) + + true + + + + =IIF(Last(Fields!TotalVATAmt.Value)=Last(Fields!TotalAmt.Value),False,True) + + true + + + + =IIF(Not(Fields!PricesIncluVAT_PurchTaxCrMemoHdr.Value)And (Last(Fields!TotalVATAmt.Value)<>Last(Fields!TotalAmt.Value)),False,True) + + true + + + + =IIF(Not(Fields!PricesIncluVAT_PurchTaxCrMemoHdr.Value)And (Last(Fields!TotalVATAmt.Value)<>Last(Fields!TotalAmt.Value)),False,True) + + true + + + + + =IIF(Not(Fields!PricesIncluVAT_PurchTaxCrMemoHdr.Value)And (Last(Fields!TotalVATAmt.Value)<>Last(Fields!TotalAmt.Value)),False,True) + + + + + =IIF(Not(Fields!PricesIncluVAT_PurchTaxCrMemoHdr.Value)And (Last(Fields!TotalVATAmt.Value)<>Last(Fields!TotalAmt.Value)),False,True) + + true + + + + =IIF(Not(Fields!PricesIncluVAT_PurchTaxCrMemoHdr.Value)And (Last(Fields!TotalVATAmt.Value)<>Last(Fields!TotalAmt.Value)),False,True) + + true + + + + =IIF(Fields!PricesIncluVAT_PurchTaxCrMemoHdr.Value And Fields!PurchTaxCrMemoHdrVATBaseDis0.Value And Last(Fields!TotalVATAmt.Value)<>Last(Fields!TotalAmt.Value),False,True) + + true + + + + + =IIF(Fields!PricesIncluVAT_PurchTaxCrMemoHdr.Value And Last(Fields!TotalVATAmt.Value)<>Last(Fields!TotalAmt.Value),False,True) + + + + + =IIF(Fields!PricesIncluVAT_PurchTaxCrMemoHdr.Value And Last(Fields!TotalVATAmt.Value)<>Last(Fields!TotalAmt.Value),False,True) + + true + + + + =IIF(Fields!PricesIncluVAT_PurchTaxCrMemoHdr.Value And Last(Fields!TotalVATAmt.Value)<>Last(Fields!TotalAmt.Value),False,True) + + true + + + + =IIF(Fields!PricesIncluVAT_PurchTaxCrMemoHdr.Value And Last(Fields!TotalVATAmt.Value)<>Last(Fields!TotalAmt.Value),False,True) + + true + + + + =IIF(Fields!PricesIncluVAT_PurchTaxCrMemoHdr.Value And Last(Fields!TotalVATAmt.Value)<>Last(Fields!TotalAmt.Value),False,True) + + true + + + + =IIF(Fields!PricesIncluVAT_PurchTaxCrMemoHdr.Value And Last(Fields!TotalVATAmt.Value)<>Last(Fields!TotalAmt.Value),False,True) + + true + + + + =IIF(Fields!CurrCode_PurchTaxCrMemoHdr.Value<>"" And Fields!CurrencyLCY.Value,False,True) + + true + + + + =IIF(Fields!CurrCode_PurchTaxCrMemoHdr.Value<>"" And Fields!CurrencyLCY.Value,False,True) + + true + + + + =IIF(Fields!CurrCode_PurchTaxCrMemoHdr.Value<>"" And Fields!CurrencyLCY.Value,False,True) + + + + + =IIF(Fields!CurrCode_PurchTaxCrMemoHdr.Value<>"" And Fields!CurrencyLCY.Value,False,True) + + + + + =IIF(Fields!CurrCode_PurchTaxCrMemoHdr.Value<>"" And Fields!CurrencyLCY.Value,False,True) + + true + + + + =IIF(Fields!CurrCode_PurchTaxCrMemoHdr.Value<>"" And Fields!CurrencyLCY.Value,False,True) + + true + + + + =IIF(Fields!AmountInWords.Value,False,True) + + true + + + + =IIF(Fields!AmountInWords.Value,False,True) + + true + + + + DataSet_Result + + + =isNothing(Fields!No_PurchTaxCrMemoLineCaption.Value) + Equal + + =False + + + + 0.04155in + 4.54454in + 6.9685in + 1 + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShiptoAddressCaption.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShipToAddr1.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShipToAddr2.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShipToAddr3.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShipToAddr4.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShipToAddr5.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShipToAddr6.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShipToAddr7.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShipToAddr8.Value + + + + + + + + + + + + + + + + + + + + + Detail + + + + + + + + + + + + + + Detail_Collection + Output + true + + + + + + =isNothing(Fields!ShiptoAddressCaption.Value) + Equal + + =False + + + + 5.8457in + 4.36316cm + 6.9685in + 2 + + + + + + + + + + + + + + + + + + + + After + true + + + + 0.04155in + 0.59269in + 3 + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!HeaderDimensionsCaption.Value + + + + + + + + + + + true + + + + + =Fields!DimText.Value + + + + + + + + + + + + + + + + + + + + + After + + + + Detail + + + + + Detail_Collection + Output + true + + + + + + =isNothing(Fields!HeaderDimensionsCaption.Value) + Equal + + =False + + + + 19.26168cm + 0.01588cm + 0.43778in + 17.62061cm + 4 + + + + + + + true + + + + + =Code.GetData(47,1) + + + + + + + true + + + + + =Code.GetData(48,1) + + + + + + + 7.32825cm + 11.3595cm + 11pt + 2.62488cm + 2 + + + + true + + + + + =Code.GetData(49,1) + + + + + + + true + + + + + =Code.GetData(50,1) + + + + + + + 6.90625cm + 11.3595cm + 11pt + 2.62488cm + 4 + + + + true + + + + + =Code.GetData(51,1) + + + + + + + 6.515cm + 11.3595cm + 11pt + 2.62488cm + 5 + + + + true + + + + + =Code.GetData(52,1) + + + + + + + 6.12375cm + 11.3595cm + 11pt + 2.62488cm + 6 + + + + true + + + + + =Code.GetData(53,1) + + + + + + + 5.7325cm + 11.3595cm + 11pt + 2.62488cm + 7 + + + + true + + + + + =Code.GetData(54,1) + + + + + + + 4.5055cm + 11.3595cm + 11pt + 2.62488cm + 8 + + + + true + + + + + =Code.GetData(38,1) + + + + + + + 5.7325cm + 11pt + 4.00549cm + 9 + + + + true + + + + + =Code.GetData(39,1) + + + + + + + 5.7325cm + 4.06904cm + 11pt + 7.16227cm + 10 + + + + true + + + + + =Code.GetData(44,1) + + + + + + + 8.08959cm + 4.06904cm + 11pt + 7.16227cm + 11 + + + + true + + + + + =Code.GetData(55,1) + + + + + + + 6.52277cm + 4.06904cm + 11pt + 7.16227cm + 12 + + + + true + + + + + =Code.GetData(23,1) + + + + + + + 3.73325cm + 11.3595cm + 11pt + 6.3cm + 13 + + + + true + + + + + =Code.GetData(22,1) + + + + + + + 3.31025cm + 11.3595cm + 11pt + 6.3cm + 14 + + + + true + + + + + =Code.GetData(8,1) + + + + + + + true + + + + + =Code.GetData(7,1) + + + + + + + true + + + + + =Code.GetData(16,1) + + + + + + + true + + + + + =Code.GetData(15,1) + + + + + + + true + + + + + =Code.GetData(42,1) + + + + + + + 7.741cm + 11pt + 11.23832cm + 19 + + + + true + + + + + =Code.GetData(14,1) + + + + + + + 7.68103cm + 13.98438cm + 11pt + 3.63112cm + 20 + + + + true + + + + + =Code.GetData(13,1) + + + + + + + 7.68103cm + 11.3595cm + 11pt + 2.62488cm + 21 + + + + true + + + + + =Code.GetData(37,1) + + + + + + + 7.36cm + 13.98438cm + 11pt + 3.63112cm + 22 + + + + true + + + + + =Code.GetData(12,1) + + + + + + + true + + + + + =Code.GetData(11,1) + + + + + + + true + + + + + =Code.GetData(10,1) + + + + + + + 4.9265cm + 4.06904cm + 11pt + 7.16927cm + 25 + + + + true + + + + + =Code.GetData(35,1) + + + + + + + 6.90625cm + 13.98438cm + 11pt + 3.63112cm + 26 + + + + true + + + + + =Code.GetData(33,1) + + + + + + + 6.515cm + 13.98438cm + 11pt + 3.63112cm + 27 + + + + true + + + + + =Code.GetData(31,1) + + + + + + + 6.12375cm + 13.98438cm + 11pt + 3.63112cm + 28 + + + + true + + + + + =Code.GetData(29,1) + + + + + + + 5.7325cm + 13.98438cm + 11pt + 3.71561cm + 29 + + + + true + + + + + =Code.GetData(6,1) + + + + + + + true + + + + + =Code.GetData(25,1) + + + + + + + 4.5055cm + 13.98438cm + 11pt + 3.63112cm + 31 + + + + true + + + + + =Code.GetData(5,1) + + + + + + + true + + + + + =Code.GetData(21,1) + + + + + + + 2.88725cm + 11.3595cm + 11pt + 6.3cm + 33 + + + + true + + + + + =Code.GetData(4,1) + + + + + + + true + + + + + =Code.GetData(20,1) + + + + + + + 2.46425cm + 11.3595cm + 11pt + 6.3cm + 35 + + + + true + + + + + =Code.GetData(3,1) + + + + + + + true + + + + + =Code.GetData(19,1) + + + + + + + 2.04125cm + 11.3595cm + 11pt + 6.3cm + 37 + + + + true + + + + + =Code.GetData(2,1) + + + + + + + true + + + + + =Code.GetData(18,1) + + + + + + + 1.61825cm + 11.3595cm + 11pt + 6.3cm + 39 + + + + true + + + + + =Code.GetData(1,1) + + + + + + + true + + + + + =Code.GetData(17,1) + + + + + + + 0.09525cm + 20pt + 17.62775cm + 41 + + + + true + + + + + =Code.GetData(56,1) + + + + + + + 6.10225cm + 4.07604cm + 11pt + 7.15527cm + 42 + + + + true + + + + + ="Page "&Code.GetGroupPageNumber(ReportItems!NewPage.Value,Globals!PageNumber) + + + + + + + 0.8675cm + 11.3595cm + 11pt + 6.3cm + 43 + + + + true + + + + + =Code.SetData(ReportItems!Info.Value,1) + + + + + + + true + true + + + + + =Code.GetData(57,1) + + + + + + + 4.92817cm + 11.3595cm + 11pt + 2.62488cm + 45 + + + + + + true + true + + + + + =Code.GetData(58,1) + + + + + + + 4.93236cm + 13.98438cm + 11pt + 3.63112cm + 46 + + + + + + true + true + + + + + =Code.GetData(59,1) + + + + + + + 5.31656cm + 11.3595cm + 11pt + 2.5703cm + 47 + + + + + + true + true + + + + + =Code.GetData(60,1) + + + + + + + 5.32075cm + 13.98438cm + 11pt + 3.63112cm + 48 + + + + + + true + true + + + + + =Code.GetData(61,1) + + + + + + + + + true + true + + + + + =Code.GetData(62,1) + + + + + + + + + true + true + + + + + =Code.GetData(45,1) + + + + + + + + + + + + + + 9 + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + =First(Fields!VATAmountSpecificationCaption.Value) + + + + + + 2 + + + + + + + true + + + + + + + + + + + 7 + + + + + + + + + + + + 0.16in + + + + + true + + + + + =First(Fields!VATAmountLineVATIdentifierCaption.Value) + + + + + + + + + + + true + + + + + =First(Fields!VATAmountLineVATCaption.Value) + + + + + + + + + + + + + + true + + + + + =First(Fields!VATAmountLineLineAmtCaption.Value) + + + + + + + + + + + + + + true + + + + + =First(Fields!VATAmountLineInvDiscBaseAmtCaption.Value) + + + + + + + + + + + + + + true + + + + + =First(Fields!VATAmountLineInvDisAmtCaption.Value) + + + + + + + + + + + + + + true + + + + + =First(Fields!VATBaseCaption.Value) + + + + + + + + + + + + + + true + + + + + =First(Fields!VATAmountLineVATAmountCaption.Value) + + + + + + + + + + + + + + true + + + + + =First(Fields!AmountPaidCaption.Value) + + + + + + + + + + + + + + true + + + + + =First(Fields!VATRealizedCaption.Value) + + + + + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + + + + Middle + 5pt + 5pt + + + 9 + + + + + + + + + + + + + + 0.06944in + + + + + true + + + + + + + + + + + 9 + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!VATIdentifier_VATAmountLine.Value + + + + + + + + + + + true + + + + + =Fields!VAT_VATAmountLine.Value + + + + + + + + + + + true + true + + + + + =Fields!LineAmount_VATAmountLine.Value + + + + + + + + + + + true + true + + + + + =Fields!InvDiscBaseAmt_VATAmountLine.Value + + + + + + + + + + + true + true + + + + + =Fields!InvoiceDisAmt_VATAmountLine.Value + + + + + + + + + + + true + true + + + + + =Fields!VATBase_VATAmountLine.Value + + + + + + + + + + + true + true + + + + + =Fields!VATAmount_VATAmountLine.Value + + + + + + + + + + + true + true + + + + + =Fields!AmountPaid_VATAmountLine.Value + + + + + + + + + + + true + true + + + + + =Fields!VATRealized_VATAmountLine.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 9 + + + + + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 9 + + + + + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 2 + + + + + + + true + true + + + + + + + + + + + + + + Bottom + 5pt + 5pt + + + 7 + + + + + + + + + + + + 0.16in + + + + + true + + + + + =First(Fields!VATAmountLineVATBaseCaption.Value) + + + + + + + + + + + true + + + + + + + + + + + + + + + + true + true + + + + + =Sum(Fields!LineAmount_VATAmountLine.Value) + + + + + + + + + + + true + true + + + + + =Sum(Fields!InvDiscBaseAmt_VATAmountLine.Value) + + + + + + + + + + + true + true + + + + + =Sum(Fields!InvoiceDisAmt_VATAmountLine.Value) + + + + + + + + + + + true + true + + + + + =Sum(Fields!VATBase_VATAmountLine.Value) + + + + + + + + + + + true + true + + + + + =Sum(Fields!VATAmount_VATAmountLine.Value) + + + + + + + + + + + true + true + + + + + =Sum(Fields!AmountPaid_VATAmountLine.Value) + + + + + + + + + + + true + true + + + + + =Sum(Fields!VATRealized_VATAmountLine.Value) + + + + + + + + + + + + + + + + + + + + + + + + + + + + After + true + + + + =isNothing(Fields!VATAmountLineVATIdentifierCaption.Value) + + After + true + true + + + + =isNothing(Fields!VATAmountLineVATIdentifierCaption.Value) + + After + true + true + + + + =isNothing(Fields!VATAmountLineVATIdentifierCaption.Value) + + After + true + + + + =isNothing(Fields!VATAmountLineVATIdentifierCaption.Value) + + After + true + true + + + + Detail + + + + + =isNothing(Fields!VATAmountLineVATIdentifierCaption.Value) + + + + Detail_Collection + Output + true + + + + =isNothing(Fields!VATAmountLineVATIdentifierCaption.Value) + + Before + true + + + + =isNothing(Fields!VATAmountLineVATIdentifierCaption.Value) + + Before + + + + =isNothing(Fields!VATAmountLineVATIdentifierCaption.Value) + + Before + + + + =isNothing(Fields!VATAmountLineVATIdentifierCaption.Value) + + Before + true + + + + DataSet_Result + + + =isNothing(Fields!VATAmountLineVATIdentifierCaption.Value) + Equal + + =False + + + + 4.81358in + 0.00005cm + 1.35554in + 7.24165in + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!HeaderDimensionsCaption.Value + + + + + + + + + + + true + + + + + =Fields!DimText.Value + + + + + + + + + + + + + + + + + + + + + + true + + + + + + =isNothing(Fields!DimText.Value) + Equal + + =False + + + + 20.42164cm + 0.43778in + 18.39384cm + 1 + + + + + + 6 + + + + + + + + + + + true + true + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + 0.16in + + + + + true + true + + + + + =Fields!InvoiceRefCaption.Value + + + + + + + textbox3 + + + + + + + + true + true + + + + + =Fields!Description_PurchTaxInvLineCaption.Value + + + + + + + + + + + true + true + + + + + =Fields!Quantity_PurchTaxInvLineCaption.Value + + + + + + + textbox24 + + + + + + + + true + true + + + + + =Fields!DirectUnitCostCaption.Value + + + + + + + textbox21 + + + + + + + + true + true + + + + + =Fields!PurchTaxInvLineLineDiscountCaption.Value + + + + + + + textbox17 + + + + + + + + true + true + + + + + =Fields!AllowInvDisc_PurchTaxInvLineCaption.Value + + + + + + + + + + + true + true + + + + + =Fields!VATIdentifier_PurchTaxInvLineCaption.Value + + + + + + + + + + + true + true + + + + + =Fields!AmountCaption.Value + + + + + + + textbox27 + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + + Textbox7 + + + 8 + + + + + + + + + + + + + 0.06944in + + + + + true + + + + + + + + + + + + + + Middle + 5pt + 5pt + + + 8 + + + + + + + + + + + + + 0.16in + + + + + true + true + + + + + =Fields!ExternalDoNo_PurchTaxInvLine.Value + + + + + + + textbox7 + + =IIF(Fields!TypeNo.Value>0,False,True) + + NoOutput + + + + + + + + true + true + + + + + =Fields!Description_PurchTaxInvLine.Value + + + + + + + + + + + true + true + + + + + =Fields!Quantity_PurchTaxInvLine.Value + + + + + + + + + + + true + true + + + + + =Fields!DirectUnitCost_PurchTaxInvLine.Value + + + + + + + + + + + true + true + + + + + =IIF(Fields!LineDiscount_PurchTaxInvLine.Value=0,"",Fields!LineDiscount_PurchTaxInvLine.Value) + + + + + + + + + + + true + + + + + =IIF(Fields!AllowInvDisc_PurchTaxInvLine.Value,"Yes","No") + + + + + + + + + + + true + true + + + + + =Fields!VATIdentifier_PurchTaxInvLine.Value + + + + + + + + + + + true + true + + + + + =Fields!LineAmount_PurchTaxInvLine.Value + + + + + + + textbox28 + + =IIF(Fields!TypeNo.Value>0,False,True) + + NoOutput + + + + + + + + 0.16in + + + + + true + + + + + =Fields!LineDimensionsCaption.Value + + + + + + + + + + + true + + + + + =Fields!DimText_DimensionLoop2.Value + + + + + + 7 + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 4 + + + + + + + + + true + + + + + =Fields!SubtotalCaption.Value + + + + + + + + + 3 + + + + + + + + true + + + + + =Last(Fields!TotalLineAmt.Value) + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 4 + + + + + + + + + true + + + + + =Fields!InvDiscountAmountCaption.Value + + + + + + + + + 3 + + + + + + + + true + + + + + =Last(Fields!TotalInvAmt.Value) + + + + + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 7 + + + + + + + + + + + + true + true + + + + + + + + + + + + + + Bottom + 5pt + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 7 + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 4 + + + + + + + + + true + + + + + =Fields!TotalText.Value + + + + + + + + + 3 + + + + + + + + true + + + + + =Last(Fields!TotalAmt.Value) + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 8 + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 4 + + + + + + + + + true + + + + + =Fields!TotalExclVATText.Value + + + + + + + + + 3 + + + + + + + + true + + + + + =Last(Fields!TotalAmt.Value) + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 4 + + + + + + + + + true + + + + + =Last(Fields!VATAmountLineVATAmountText.Value) + + + + + + + + + 3 + + + + + + + + true + + + + + =Last(Fields!TotalVATAmt.Value) + + + + + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 7 + + + + + + + + + + + + true + true + + + + + + + + + + + + + + Bottom + 5pt + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 7 + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 4 + + + + + + + + + true + + + + + =Fields!TotalInclVATText.Value + + + + + + + + + 3 + + + + + + + + true + + + + + =Last(Fields!TotalVATAmt.Value) + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 8 + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 4 + + + + + + + + + true + + + + + =Fields!LineAmtInvDisAmtAmtIncluVATCaption.Value + + + + + + + + + 3 + + + + + + + + true + + + + + =Fields!LineAmtInvDisAmtAmtIncluVAT.Value + + + + + + + + + + + + + + 0.23622in + + + + + true + true + + + + + + + + + + + 8 + + + + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 7 + + + + + + + + + + + + true + true + + + + + + + + + + + + + + Bottom + 5pt + 5pt + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 4 + + + + + + + + + true + + + + + =Fields!TotalInclVATText.Value + + + + + + + + + 3 + + + + + + + + true + + + + + =Last(Fields!TotalVATAmt.Value) + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 8 + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 4 + + + + + + + + + true + + + + + =Last(Fields!VATAmountLineVATAmountText.Value) + + + + + + + + + 3 + + + + + + + + true + + + + + =Last(Fields!TotalVATAmt.Value) - Last(Fields!TotalAmt.Value) + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 4 + + + + + + + + + true + + + + + =Fields!TotalExclVATText.Value + + + + + + + + + 3 + + + + + + + + true + + + + + =Last(Fields!TotalAmt.Value) + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 8 + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 4 + + + + + + + + + true + + + + + =Fields!TotalExclVATTextLCY.Value + + + + + + + + + 3 + + + + + + + + true + + + + + =Fields!AmountLCY.Value + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 4 + + + + + + + + + true + + + + + =Last(Fields!VATAmountLineVATAmountText.Value) + + + + + + + + + 3 + + + + + + + + true + + + + + =Fields!AmountIncludingVATAmount.Value + + + + + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 8 + + + + + + + + + + + + + 0.06944in + + + + + true + true + + + + + + + + + + + 7 + + + + + + + + + + + + true + true + + + + + + + + + + + + + + Bottom + 5pt + 5pt + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ExchangeRateCaption.Value + + + + + + + + + + + true + + + + + =Fields!CurrFactor_PurchTaxInvHdr.Value + + + + + + + textbox42 + + + 3 + + + + + + + + true + + + + + =Fields!TotalInclVATTextLCY.Value + + + + + + + + + 3 + + + + + + + + true + + + + + =Fields!AmountIncLCY.Value + + + + + + + + + + + + + + 0.16in + + + + + true + + + + + + + + + + + 8 + + + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!AmountLangA1AmountLangA2.Value + + + + + + + + + 8 + + + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!AmountLangB1AmountLangB2.Value + + + + + + + + + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + true + + + + true + + + + + =Fields!No_PurchTaxInvHdr.Value + =Fields!LineNo_PurchTaxInvLine.Value + + + + + =Fields!No_PurchTaxInvHdr.Value + + + + + After + + + + Detail + + + + + =IIF(Fields!LineDimensionsCaption.Value<>"",False,True) + + + + Detail_Collection + Output + true + + + + + + =IIF(Fields!InvDiscountAmount0.Value,False,True) + + true + + + + =IIF(Fields!InvDiscountAmount0.Value,False,True) + + true + + + + =IIF(Last(Fields!TotalAmt.Value)=Last(Fields!TotalVATAmt.Value),False,True) + + + + + =IIF(Last(Fields!TotalAmt.Value)=Last(Fields!TotalVATAmt.Value),False,True) + + + + + =IIF(Last(Fields!TotalAmt.Value)=Last(Fields!TotalVATAmt.Value),False,True) + + true + + + + =IIF(Last(Fields!TotalAmt.Value)=Last(Fields!TotalVATAmt.Value),False,True) + + true + + + + =IIF((Last(Fields!TotalAmt.Value)<>Last(Fields!TotalVATAmt.Value)) AND Not(Fields!PricesIncluVAT_PurchTaxInvHdr.Value),False,True) + + true + + + + =IIF((Last(Fields!TotalAmt.Value)<>Last(Fields!TotalVATAmt.Value)) AND Not(Fields!PricesIncluVAT_PurchTaxInvHdr.Value),False,True) + + true + + + + =IIF((Last(Fields!TotalAmt.Value)<>Last(Fields!TotalVATAmt.Value)) AND Not(Fields!PricesIncluVAT_PurchTaxInvHdr.Value),False,True) + + + + + =IIF((Last(Fields!TotalAmt.Value)<>Last(Fields!TotalVATAmt.Value)) AND Not(Fields!PricesIncluVAT_PurchTaxInvHdr.Value),False,True) + + + + + =IIF((Last(Fields!TotalAmt.Value)<>Last(Fields!TotalVATAmt.Value)) AND Not(Fields!PricesIncluVAT_PurchTaxInvHdr.Value),False,True) + + true + + + + =IIF((Last(Fields!TotalAmt.Value)<>Last(Fields!TotalVATAmt.Value)) AND Not(Fields!PricesIncluVAT_PurchTaxInvHdr.Value),False,True) + + true + + + + =IIF((Last(Fields!TotalAmt.Value)<>Last(Fields!TotalVATAmt.Value)) AND Fields!PricesIncluVAT_PurchTaxInvHdr.Value AND Fields!PurchTaxInvHdrVATBaseDiscount0.Value,False,True) + + true + + + + =IIF((Last(Fields!TotalAmt.Value)<>Last(Fields!TotalVATAmt.Value)) AND Fields!PricesIncluVAT_PurchTaxInvHdr.Value,False,True) + + + + + =IIF((Last(Fields!TotalAmt.Value)<>Last(Fields!TotalVATAmt.Value)) AND Fields!PricesIncluVAT_PurchTaxInvHdr.Value,False,True) + + + + + =IIF((Last(Fields!TotalAmt.Value)<>Last(Fields!TotalVATAmt.Value)) AND Fields!PricesIncluVAT_PurchTaxInvHdr.Value,False,True) + + true + + + + =IIF((Last(Fields!TotalAmt.Value)<>Last(Fields!TotalVATAmt.Value)) AND Fields!PricesIncluVAT_PurchTaxInvHdr.Value,False,True) + + true + + + + =IIF((Last(Fields!TotalAmt.Value)<>Last(Fields!TotalVATAmt.Value)) AND Fields!PricesIncluVAT_PurchTaxInvHdr.Value,False,True) + + true + + + + =IIF((Last(Fields!TotalAmt.Value)<>Last(Fields!TotalVATAmt.Value)) AND Fields!PricesIncluVAT_PurchTaxInvHdr.Value,False,True) + + true + + + + =IIF((Last(Fields!TotalAmt.Value)<>Last(Fields!TotalVATAmt.Value)) AND Fields!PricesIncluVAT_PurchTaxInvHdr.Value,False,True) + + true + + + + =IIF(Fields!CurrencyLCY.Value And Fields!CurrCode_PurchTaxInvHdr.Value<>"",False,True) + + true + + + + =IIF(Fields!CurrencyLCY.Value And Fields!CurrCode_PurchTaxInvHdr.Value<>"",False,True) + + true + + + + =IIF(Fields!CurrencyLCY.Value And Fields!CurrCode_PurchTaxInvHdr.Value<>"",False,True) + + + + + =IIF(Fields!CurrencyLCY.Value And Fields!CurrCode_PurchTaxInvHdr.Value<>"",False,True) + + + + + =IIF(Fields!CurrencyLCY.Value And Fields!CurrCode_PurchTaxInvHdr.Value<>"",False,True) + + true + + + + =IIF(Fields!CurrencyLCY.Value And Fields!CurrCode_PurchTaxInvHdr.Value<>"",False,True) + + true + + + + =IIF(Fields!AmountInWords.Value,False,True) + + true + + + + =IIF(Fields!AmountInWords.Value,False,True) + + true + + + + + + =isNothing(Fields!InvoiceRefCaption.Value) + Equal + + =False + + + + 0.04156in + 0.00005cm + 4.70118in + 7.24165in + 2 + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShiptoAddressCaption.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShipToAddr1.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShipToAddr2.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShipToAddr3.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShipToAddr4.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShipToAddr5.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShipToAddr6.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShipToAddr7.Value + + + + + + + + + + + 0.16in + + + + + true + + + + + =Fields!ShipToAddr8.Value + + + + + + + + + + + + + + + + + + + + + Detail + + + + + + + + + + + + + + Detail_Collection + Output + true + + + + + + =isNothing(Fields!ShiptoAddressCaption.Value) + Equal + + =False + + + + 6.2778in + 0.00005cm + 4.36316cm + 7.24165in + 3 + + + + + + + + + + + + + + + + + + + + After + true + + + + 0.0635cm + 0.00005cm + 0.16in + 0.59055in + 4 + + true + + + + + + + + true + + + + + + + true + + + + + =Code.GetData(50,1) + + + + + + + true + + + + + =Code.GetData(51,1) + + + + + + + true + + + + + =Code.GetData(52,1) + + + + + + + true + + + + + =Code.GetData(53,1) + + + + + + + true + + + + + =Code.GetData(54,1) + + + + + + + 6.52525cm + 11.46005cm + 11pt + 3.17699cm + 5 + + + + true + + + + + =Code.GetData(55,1) + + + + + + + 6.134cm + 11.46005cm + 11pt + 3.17699cm + 6 + + + + true + + + + + =Code.GetData(56,1) + + + + + + + 5.711cm + 11.46005cm + 11pt + 3.17699cm + 7 + + + + true + + + + + =Code.GetData(57,1) + + + + + + + 5.288cm + 11.46005cm + 11pt + 3.17699cm + 8 + + + + true + + + + + =Code.GetData(58,1) + + + + + + + 4.09275cm + 11.46005cm + 11pt + 3.17699cm + 9 + + + + true + + + + + =Code.GetData(45,1) + + + + + + + 9.04879cm + 3.44937cm + 11pt + 14.94448cm + 10 + + + + true + + + + + =Code.GetData(59,1) + + + + + + + 6.13696cm + 3.44937cm + 11pt + 8.03646cm + 11 + + + + true + + + + + =Code.GetData(23,1) + + + + + + + 3.67437cm + 11.55992cm + 11pt + 6.83393cm + 12 + + + + true + + + + + =Code.GetData(22,1) + + + + + + + 3.24675cm + 11.55001cm + 11pt + 6.85812cm + 13 + + + + true + + + + + =Code.GetData(8,1) + + + + + + + true + + + + + =Code.GetData(7,1) + + + + + + + true + + + + + =Code.GetData(39,1) + + + + + + + 5.71396cm + 3.44937cm + 11pt + 8.03646cm + 16 + + + + true + + + + + =Code.GetData(38,1) + + + + + + + true + + + + + =Code.GetData(16,1) + + + + + + + true + + + + + =Code.GetData(15,1) + + + + + + + true + + + + + =Code.GetData(37,1) + + + + + + + 5.29096cm + 3.44937cm + 11pt + 8.03646cm + 20 + + + + true + + + + + =Code.GetData(14,1) + + + + + + + 6.92246cm + 14.97394cm + 11pt + 3.41991cm + 21 + + + + true + + + + + =Code.GetData(13,1) + + + + + + + 6.92246cm + 11.46005cm + 11pt + 3.17699cm + 22 + + + + true + + + + + =Code.GetData(60,1) + + + + + + + 6.55997cm + 3.44937cm + 11pt + 8.03646cm + 23 + + + + true + + + + + =Code.GetData(12,1) + + + + + + + true + + + + + =Code.GetData(11,1) + + + + + + + true + + + + + =Code.GetData(10,1) + + + + + + + 4.42594cm + 3.44937cm + 11pt + 8.03646cm + 26 + + + + true + + + + + =Code.GetData(35,1) + + + + + + + 6.52525cm + 14.97394cm + 11pt + 3.41991cm + 27 + + + + true + + + + + =Code.GetData(33,1) + + + + + + + 6.134cm + 14.97394cm + 11pt + 3.41991cm + 28 + + + + true + + + + + =Code.GetData(31,1) + + + + + + + 5.711cm + 14.97394cm + 11pt + 3.41991cm + 29 + + + + true + + + + + =Code.GetData(29,1) + + + + + + + 5.288cm + 14.97394cm + 11pt + 3.41991cm + 30 + + + + true + + + + + =Code.GetData(6,1) + + + + + + + true + + + + + =Code.GetData(25,1) + + + + + + + 4.09275cm + 14.97394cm + 11pt + 3.41991cm + 32 + + + + true + + + + + =Code.GetData(5,1) + + + + + + + true + + + + + =Code.GetData(21,1) + + + + + + + 2.82375cm + 11.55001cm + 11pt + 6.84384cm + 34 + + + + true + + + + + =Code.GetData(4,1) + + + + + + + true + + + + + =Code.GetData(20,1) + + + + + + + 2.40075cm + 11.55001cm + 11pt + 6.84384cm + 36 + + + + true + + + + + =Code.GetData(3,1) + + + + + + + true + + + + + =Code.GetData(19,1) + + + + + + + 1.97775cm + 11.55001cm + 11pt + 6.84384cm + 38 + + + + true + + + + + =Code.GetData(2,1) + + + + + + + true + + + + + =Code.GetData(18,1) + + + + + + + 1.55475cm + 11.55001cm + 11pt + 6.85812cm + 40 + + + + true + + + + + =Code.GetData(1,1) + + + + + + + true + + + + + =Code.GetData(17,1) + + + + + + + 0.0166cm + 0.00006cm + 20pt + 18.45729cm + 42 + + + + true + + + + + =Code.GetData(61,1) + + + + + + + 6.98596cm + 3.44937cm + 11pt + 8.03647cm + 43 + + + + true + + + + + ="Page "&Code.GetGroupPageNumber(ReportItems!NewPage.Value,Globals!PageNumber) + + + + + + + 0.72216cm + 11.55001cm + 11pt + 6.90734cm + 44 + + + + true + + + + + + + + + + + + true + true + + + + + =Code.GetData(62,1) + + + + + + + Textbox8 + 4.88936cm + 14.97394cm + 11pt + 3.41991cm + 46 + + + + + + true + true + + + + + =Code.GetData(63,1) + + + + + + + Textbox8 + 4.88936cm + 11.46005cm + 11pt + 3.17699cm + 47 + + + + + + true + true + + + + + =Code.GetData(64,1) + + + + + + + Textbox8 + 4.48014cm + 11.46005cm + 11pt + 3.17699cm + 48 + + + + + + true + true + + + + + =Code.GetData(65,1) + + + + + + + Textbox8 + 4.48014cm + 14.97394cm + 11pt + 3.41991cm + 49 + + + + + + true + + + + + =Code.GetData(66,1) + + + + + + + true + + + + + =Code.GetData(46,1) + + + + + + + true + + + + + =Code.GetData(67,1) + + + + + + + true + + + + + =Code.GetData(47,1) + + + + + + + true + + + + + =Code.GetData(68,1) + + + + + + + true + + + + + =Code.GetData(48,1) + + + + + + + true + true + + + + + =Code.GetData(69,1) + + + + + + + + + + + + + + + + 5 + + + + + + + + + + true + + + + + + + + + + + + + + + + true + + + + + =Fields!WHTDate.Value + + + + + + + + 3 + + + + + + + + true + true + + + + + =Fields!WHTBaseLCY.Value + + + + + + + + 3 + + + + + + + + true + + + + + + + + + + textbox73 + + + + + + + true + true + + + + + =Fields!WHTAmountLCY.Value + + + + + + + + 4 + + + + + + + + + true + + + + + + + + + + + 2 + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + 19 + + + + + + + + + + + + + + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + + + + + + true + true + + + + + =First(Fields!TotalCaption.Value) + + + + + + + + 7 + + + + + + + + + + + + true + + + + + + + + + + + + + + + + true + true + + + + + =Last(Fields!TotalBaseLCY.Value) + + + + + + + + 3 + + + + + + + + true + + + + + + + + + + + + + + + + true + true + + + + + =Last(Fields!TotalAmountLCY.Value) + + + + + + + + 4 + + + + + + + + + true + + + + + + + + + + + 2 + + + + + + + 0.423cm + + + + + true + true + + + + + + + + 19 + + + + + + + + + + + + + + + + + + + + + + + + 0.423cm + + + + + true + true + + + + + =First(Fields!Amount_In_WordCaption.Value) + + + + + + + + 4 + + + + + + + + + true + + + + + =First(Fields!AmtInWords_1______AmtInWords_2_.Value) + + + + + + + + 9 + + + + + + + + + + + + + + true + true + + + + + + + + + + + textbox82 + + + 6 + + + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + 19 + + + + + + + + + + + + + + + + + + + + + + + + 0.846cm + + + + + true + true + + + + + =Last(Fields!Provident_Fund_Permit_NumberCaption.Value) + + + + + + + + 4 + + + + + + + + + true + + + + + + + + + + + 4 + + + + + + + + + true + true + + + + + =Last(Fields!TotalCaption_Control1500077.Value) + + + + + + + + + + + + + true + + + + + + + + + + + 4 + + + + + + + + + true + true + + + + + =Last(Fields!BahtCaption.Value) + + + + + + + + 3 + + + + + + + + true + true + + + + + + + + + + + + + 3 + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + 19 + + + + + + + + + + + + + + + + + + + + + + + + 0.846cm + + + + + true + true + + + + + =Last(Fields!PayerCaption.Value) + + + + + + + + 2 + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + ContentsOnly + + + + + + + true + + + + + =Last(Fields!Issue_tax_only_onceCaption.Value) + + + + + + + + 2 + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + ContentsOnly + + 2 + + + + + + + true + + + + + =Last(Fields!Issue_tax_foreverCaption.Value) + + + + + + + + 3 + + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + ContentsOnly + + + + + + + true + + + + + =Last(Fields!Deduct_tax_at_the_pointCaption.Value) + + + + + + + + 3 + + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + ContentsOnly + + + + + + + true + + + + + =Last(Fields!others__please_indicate_Caption.Value) + + + + + + + + 4 + + + + + + + + + 0.423cm + + + + + true + + + + + + + + + + + 19 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Detail + + + + + Detail_Collection + Output + true + + + Before + true + + + Before + true + + + Before + true + + + Before + true + + + Before + true + + + Before + true + + + Before + true + + + Before + true + + + Before + true + + + + DataSet_Result + + + =Len(Fields!Revenue_TypeCaption.Value) + Equal + + =0 + + + + 13.09524cm + 3 + + + + + + 19.05cm + + + + + 2.6649in + + + + + + + true + true + + + + + =First(Fields!WHT_AmountCaption.Value) + + + + + + + 6.345cm + 14.55cm + 3.15cm + 32 + + + + true + true + + + + + =First(Fields!AmountCaption.Value) + + + + + + + 6.345cm + 11.7cm + 2.55cm + 31 + + + + true + true + + + + + =First(Fields!DateCaption.Value) + + + + + + + 5.922cm + 8.7cm + 1.95cm + 30 + + + + true + true + + + + + =First(Fields!Revenue_TypeCaption.Value) + + + + + + 5.922cm + 4.5cm + 29 + + + + true + + + + + =First(Fields!PayToVendAddr_1_.Value) + + + + + + 1.692cm + 2.1cm + 0.423cm + 6.3cm + 28 + + + + true + + + + + =First(Fields!PayToVendAddr_7_.Value) + + + + + + 2.538cm + 14.1cm + 0.423cm + 27 + + + + true + + + + + =First(Fields!PayToVendAddr_2_.Value) + + + + + + 2.115cm + 2.1cm + 0.423cm + 4.95cm + 26 + + + + true + + + + + =First(Fields!PayToVendAddr_4_.Value) + + + + + + 2.115cm + 12.6cm + 0.423cm + 4.95cm + 25 + + + + true + + + + + =First(Fields!PayToVendAddr_5_.Value) + + + + + + 2.538cm + 2.1cm + 0.423cm + 6.3cm + 24 + + + + true + + + + + =First(Fields!PayToVendAddr_6_.Value) + + + + + + 2.538cm + 8.4cm + 0.423cm + 5.7cm + 23 + + + + true + + + + + =First(Fields!PayToVendAddr_3_.Value) + + + + + + 2.115cm + 7.05cm + 0.423cm + 5.55cm + 22 + + + + true + + + + + =First(Fields!PayToVendor__WHT_Registration_ID_.Value) + + + + + + 0.846cm + 15cm + 0.423cm + 3.9cm + 21 + + + + true + + + + + =First(Fields!Tax_payee_informationCaption.Value) + + + + + + 0.846cm + 0.423cm + 6.3cm + 20 + + + + true + + + + + =First(Fields!NameCaption_Control1500036.Value) + + + + + + 1.692cm + 0.423cm + 1.8cm + 19 + + + + true + + + + + =First(Fields!AddressCaption_Control1500037.Value) + + + + + + 2.115cm + 0.423cm + 1.8cm + 18 + + + + true + + + + + =First(Fields!WHT_Registration_IDCaption_Control1500038.Value) + + + + + + 0.846cm + 11.25cm + 0.423cm + 3.75cm + 17 + + + + true + + + + + =First(Fields!Por_Ngor_Dor_3Caption.Value) + + + + + + 3.807cm + 16.65cm + 0.423cm + 16 + + + + true + + + + + =First(Fields!CheckBox3.Value) + + + + + + + 3.807cm + 15.9cm + 0.423cm + 0.45cm + 15 + + + + + + + + + + + + Middle + + + + true + + + + + =First(Fields!Por_Ngor_Dor_2Caption.Value) + + + + + + 3.807cm + 13.65cm + 0.423cm + 2.25cm + 14 + + + + true + + + + + =First(Fields!Por_Ngor_Dor_2_KhorCaption.Value) + + + + + + 4.653cm + 6.9cm + 0.423cm + 2.4cm + 13 + + + + true + + + + + =First(Fields!CheckBox2.Value) + + + + + + + 3.807cm + 12.9cm + 0.423cm + 0.45cm + 12 + + + + + + + + + + + + Middle + + + + true + + + + + =First(Fields!CheckBox2t.Value) + + + + + + + 4.653cm + 6.15cm + 0.423cm + 0.45cm + 11 + + + + + + + + + + + + Middle + + + + true + + + + + =First(Fields!Por_Ngor_Dor_1Caption.Value) + + + + + + 3.807cm + 6.9cm + 0.423cm + 2.25cm + 10 + + + + true + + + + + =First(Fields!Por_Ngor_Dor_53Caption.Value) + + + + + + 4.653cm + 13.65cm + 0.423cm + 2.4cm + 9 + + + + true + + + + + =First(Fields!CheckBox1.Value) + + + + + + + 3.807cm + 6.15cm + 0.423cm + 0.45cm + 8 + + + + + + + + + + + + Middle + + + + true + + + + + =First(Fields!CheckBox53.Value) + + + + + + + 4.653cm + 12.9cm + 0.423cm + 0.45cm + 7 + + + + + + + + + + + + Middle + + + + true + + + + + =First(Fields!WHT_Entry__WHT_Entry___WHT_Report_Line_No_.Value) + + + + + + 3.807cm + 0.75cm + 0.423cm + 2.55cm + 6 + + + + true + + + + + =First(Fields!SectionCaption.Value) + + + + + + 3.384cm + 0.423cm + 3.15cm + 5 + + + + true + + + + + =First(Fields!in_the_form_ofCaption.Value) + + + + + + 3.807cm + 3.45cm + 0.423cm + 2.55cm + 4 + + + + true + + + + + =First(Fields!Por_Ngor_Dor_1_Khor_SpecialCaption.Value) + + + + + + 3.807cm + 10.2cm + 0.423cm + 2.55cm + 3 + + + + true + + + + + =First(Fields!Por_Ngor_Dor_3_KhorCaption.Value) + + + + + + 4.653cm + 10.2cm + 0.423cm + 2.55cm + 2 + + + + true + + + + + =First(Fields!CheckBox3t.Value) + + + + + + + 4.653cm + 9.45cm + 0.423cm + 0.45cm + 1 + + + + + + + + + + + + Middle + + + + true + + + + + =First(Fields!CheckBox1s.Value) + + + + + + + 3.807cm + 9.45cm + 0.423cm + 0.45cm + + + + + + + + + + + + Middle + + + + true + + + + + + + + + + + + + + + + + + =1 + + + Output + true + + + + DataSet_Result + + + =Len(Fields!Revenue_TypeCaption.Value) + NotEqual + + =0 + + + + 2.48958in + 2.6649in + 2 + + + + + + 19.05cm + + + + + 3.35755cm + + + + + + + true + + + + + =First(Fields!Text1500000.Value) + + + + + + 0.423cm + 9.15cm + 14 + + + + true + + + + + =First(Fields!CompanyAddr_5_.Value) + + + + + + 2.93454cm + 1.95cm + 6.3cm + 13 + + + + true + + + + + =First(Fields!CompanyAddr_4_.Value) + + + + + + 2.51155cm + 12.6cm + 0.423cm + 4.95cm + 12 + + + + true + + + + + =First(Fields!CompanyAddr_3_.Value) + + + + + + 2.51155cm + 7.05cm + 0.423cm + 5.55cm + 11 + + + + true + + + + + =First(Fields!CompanyAddr_2_.Value) + + + + + + 2.51155cm + 1.95cm + 0.423cm + 5.1cm + 10 + + + + true + + + + + =First(Fields!CompanyAddr_1_.Value) + + + + + + 2.08854cm + 1.95cm + 0.423cm + 7.95cm + 9 + + + + true + + + + + =First(Fields!CompanyInfo__WHT_Registration_ID_.Value) + + + + + + 2.08854cm + 15cm + 0.423cm + 3.9cm + 8 + + + + true + + + + + =First(Fields!WHT_Registration_IDCaption.Value) + + + + + + 2.08854cm + 11.25cm + 0.423cm + 3.75cm + 7 + + + + true + + + + + =First(Fields!Certificate_of_tax_income_at_the_pointCaption.Value) + + + + + + 0.423cm + 0.423cm + 5.85cm + 6 + + + + true + + + + + =First(Fields!Rule_no_69_according_to_the_lawCaption.Value) + + + + + + 0.423cm + 7.05cm + 0.423cm + 4.95cm + 5 + + + + true + + + + + =First(Fields!WHT_Cert__No_Caption.Value) + + + + + + 0.423cm + 13.65cm + 0.423cm + 1.5cm + 4 + + + + true + + + + + =First(Fields!Tax_payer_at_the_pointCaption.Value) + + + + + + 1.66554cm + 0.423cm + 5.1cm + 3 + + + + true + + + + + =First(Fields!NameCaption.Value) + + + + + + 2.08854cm + 0.423cm + 1.8cm + 2 + + + + true + + + + + =First(Fields!AddressCaption.Value) + + + + + + 2.51155cm + 0.423cm + 1.8cm + 1 + + + + true + + + + + =First(Fields!WHT_Entry__WHT_Certificate_No__.Value) + + + + + + + 0.423cm + 15.15cm + 0.423cm + + + + true + + + + + + + + + + + + + + + + + + =1 + + + Output + true + + + + DataSet_Result + + + =Len(Fields!Revenue_TypeCaption.Value) + NotEqual + + =0 + + + + 3.35755cm + 1 + + + + + + 19.05cm + + + + + 2.961cm + + + + + + + true + + + + + =First(Fields!vendorCaption.Value) + + + + + + 0.423cm + 6.3cm + 11 + + + + true + + + + + =First(Fields!VendAddr_7_.Value) + + + + + + 1.692cm + 13.95cm + 0.16678in + 10 + + + + true + + + + + =First(Fields!VendAddr_6_.Value) + + + + + + 1.692cm + 8.4cm + 0.16678in + 5.55cm + 9 + + + + true + + + + + =First(Fields!VendAddr_5_.Value) + + + + + + 1.692cm + 2.1cm + 0.16678in + 6.3cm + 8 + + + + true + + + + + =First(Fields!VendAddr_4_.Value) + + + + + + 1.269cm + 12.6cm + 0.423cm + 5.1cm + 7 + + + + true + + + + + =First(Fields!VendAddr_3_.Value) + + + + + + 1.269cm + 7.05cm + 0.423cm + 5.55cm + 6 + + + + true + + + + + =First(Fields!VendAddr_2_.Value) + + + + + + 1.269cm + 2.1cm + 0.423cm + 4.95cm + 5 + + + + true + + + + + =First(Fields!VendAddr_1_.Value) + + + + + + 0.846cm + 2.1cm + 0.423cm + 6.9cm + 4 + + + + true + + + + + =First(Fields!Vendor__WHT_Registration_ID_.Value) + + + + + + 15cm + 0.423cm + 3.9cm + 3 + + + + true + + + + + =First(Fields!NameCaption_Control1500024.Value) + + + + + + 0.846cm + 0.423cm + 1.8cm + 2 + + + + true + + + + + =First(Fields!AddressCaption_Control1500025.Value) + + + + + + 1.269cm + 0.423cm + 1.8cm + 1 + + + + true + + + + + =First(Fields!WHT_Registration_IDCaption_Control1500026.Value) + + + + + + 11.25cm + 0.423cm + 3.75cm + + + + true + + + + + + + + + + + + + + + + + + =1 + + + + =Not(Fields!PrintPayToVendor.Value) + + Output + true + + + + DataSet_Result + + + =Len(Fields!Revenue_TypeCaption.Value) + NotEqual + + =0 + + + + 1.32292in + 2.961cm + NoOutput + + + 18.17124cm + + 19.05cm + + 29.7cm + 21cm + 11in + 8.5in + 1.5cm + 0cm + 2cm + 2cm + + + + Public Function BlankZero(ByVal Value As Decimal) + if Value = 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankPos(ByVal Value As Decimal) + if Value > 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankZeroAndPos(ByVal Value As Decimal) + if Value >= 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankNeg(ByVal Value As Decimal) + if Value < 0 then + Return "" + end if + Return Value +End Function + +Public Function BlankNegAndZero(ByVal Value As Decimal) + if Value <= 0 then + Return "" + end if + Return Value +End Function + + =User!Language + true + Invalid + fce76abf-20eb-4142-a768-0ad888120821 + + + + + Text1500000 + + + CompanyAddr_5_ + + + CompanyAddr_4_ + + + CompanyAddr_3_ + + + CompanyAddr_2_ + + + CompanyAddr_1_ + + + CompanyInfo__WHT_Registration_ID_ + + + WHT_Entry__WHT_Certificate_No__ + + + PrintPayToVendor + + + VendAddr_7_ + + + VendAddr_6_ + + + VendAddr_5_ + + + VendAddr_4_ + + + VendAddr_3_ + + + VendAddr_2_ + + + VendAddr_1_ + + + Vendor__WHT_Registration_ID_ + + + PayToVendAddr_1_ + + + PayToVendAddr_7_ + + + PayToVendAddr_2_ + + + PayToVendAddr_4_ + + + PayToVendAddr_5_ + + + PayToVendAddr_6_ + + + PayToVendAddr_3_ + + + PayToVendor__WHT_Registration_ID_ + + + CheckBox3 + + + CheckBox2 + + + CheckBox2t + + + CheckBox1 + + + CheckBox53 + + + WHT_Entry__WHT_Entry___WHT_Report_Line_No_ + + + CheckBox3t + + + CheckBox1s + + + WHT_Entry_Entry_No_ + + + WHT_Registration_IDCaption + + + Certificate_of_tax_income_at_the_pointCaption + + + Rule_no_69_according_to_the_lawCaption + + + WHT_Cert__No_Caption + + + Tax_payer_at_the_pointCaption + + + NameCaption + + + AddressCaption + + + vendorCaption + + + NameCaption_Control1500024 + + + AddressCaption_Control1500025 + + + WHT_Registration_IDCaption_Control1500026 + + + Tax_payee_informationCaption + + + NameCaption_Control1500036 + + + AddressCaption_Control1500037 + + + WHT_Registration_IDCaption_Control1500038 + + + Por_Ngor_Dor_3Caption + + + Por_Ngor_Dor_2Caption + + + Por_Ngor_Dor_2_KhorCaption + + + Por_Ngor_Dor_1Caption + + + Por_Ngor_Dor_53Caption + + + SectionCaption + + + in_the_form_ofCaption + + + Por_Ngor_Dor_1_Khor_SpecialCaption + + + Por_Ngor_Dor_3_KhorCaption + + + Revenue_TypeCaption + + + AmountCaption + + + WHT_AmountCaption + + + DateCaption + + + WHT_Revenue_Types_Description + + + WHTAmountLCY + + + WHTAmountLCYFormat + + + WHTBaseLCY + + + WHTBaseLCYFormat + + + WHTDate + + + TotalAmountLCY + + + TotalAmountLCYFormat + + + TotalBaseLCY + + + TotalBaseLCYFormat + + + AmtInWords_1______AmtInWords_2_ + + + WHT_Revenue_Types_Code + + + TotalCaption + + + Amount_In_WordCaption + + + Provident_Fund_Permit_NumberCaption + + + TotalCaption_Control1500077 + + + BahtCaption + + + others__please_indicate_Caption + + + Deduct_tax_at_the_pointCaption + + + Issue_tax_foreverCaption + + + Issue_tax_only_onceCaption + + + PayerCaption + + + + DataSource + + + + + \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Report/WithholdingTaxCertificate.Report.al b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WithholdingTaxCertificate.Report.al new file mode 100644 index 0000000000..c752793351 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Report/WithholdingTaxCertificate.Report.al @@ -0,0 +1,455 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.Finance.WithholdingTax; + +using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Foundation.Address; +using Microsoft.Foundation.Company; +using Microsoft.Purchases.Setup; +using Microsoft.Purchases.Vendor; +using Microsoft.Sales.Customer; +using Microsoft.WithholdingTax; + +report 6790 "Withholding Tax Certificate" +{ + DefaultLayout = RDLC; + RDLCLayout = 'src\Purchase\Report\WIthholdingTaxCertificate.rdlc'; + Caption = 'Withholding Tax Certificate'; + + dataset + { + dataitem("WHT Entry"; "Withholding Tax Entry") + { + DataItemTableView = sorting("Bill-to/Pay-to No.", "Original Document No.", "Withholding Tax Revenue Type") where("Document Type" = filter(Payment | Refund)); + RequestFilterFields = "Transaction Type", "Bill-to/Pay-to No.", "Original Document No."; + column(Text1500000; Text1500000Lbl) + { + } + column(CompanyAddr_5_; CompanyAddr[5]) + { + } + column(CompanyAddr_4_; CompanyAddr[4]) + { + } + column(CompanyAddr_3_; CompanyAddr[3]) + { + } + column(CompanyAddr_2_; CompanyAddr[2]) + { + } + column(CompanyAddr_1_; CompanyAddr[1]) + { + } + column(CompanyInfo__WHT_Registration_ID_; CompanyInfo."Withholding Tax Reg. ID") + { + } + column(WHT_Entry__WHT_Certificate_No__; "Wthldg. Tax Certificate No.") + { + } + column(PrintPayToVendor; PrintPayToVendor) + { + } + column(VendAddr_7_; VendAddr[7]) + { + } + column(VendAddr_6_; VendAddr[6]) + { + } + column(VendAddr_5_; VendAddr[5]) + { + } + column(VendAddr_4_; VendAddr[4]) + { + } + column(VendAddr_3_; VendAddr[3]) + { + } + column(VendAddr_2_; VendAddr[2]) + { + } + column(VendAddr_1_; VendAddr[1]) + { + } + column(Vendor__WHT_Registration_ID_; Vendor."WHT Registered") + { + } + column(PayToVendAddr_1_; PayToVendAddr[1]) + { + } + column(PayToVendAddr_7_; PayToVendAddr[7]) + { + } + column(PayToVendAddr_2_; PayToVendAddr[2]) + { + } + column(PayToVendAddr_4_; PayToVendAddr[4]) + { + } + column(PayToVendAddr_5_; PayToVendAddr[5]) + { + } + column(PayToVendAddr_6_; PayToVendAddr[6]) + { + } + column(PayToVendAddr_3_; PayToVendAddr[3]) + { + } + column(PayToVendor__WHT_Registration_ID_; PayToVendor."Withholding Tax Reg. ID") + { + } + column(CheckBox3; CheckBox3) + { + } + column(CheckBox2; CheckBox2) + { + } + column(CheckBox2t; CheckBox2t) + { + } + column(CheckBox1; CheckBox1) + { + } + column(CheckBox53; CheckBox53) + { + } + column(WHT_Entry__WHT_Entry___WHT_Report_Line_No_; "Wthldg. Tax Report Line No") + { + } + column(CheckBox3t; CheckBox3t) + { + } + column(CheckBox1s; CheckBox1s) + { + } + column(WHT_Entry_Entry_No_; "Entry No.") + { + } + column(WHT_Registration_IDCaption; WHT_Registration_IDCaptionLbl) + { + } + column(Certificate_of_tax_income_at_the_pointCaption; Certificate_of_tax_income_at_the_pointCaptionLbl) + { + } + column(Rule_no_69_according_to_the_lawCaption; Rule_no_69_according_to_the_lawCaptionLbl) + { + } + column(WHT_Cert__No_Caption; WHT_Cert__No_CaptionLbl) + { + } + column(Tax_payer_at_the_pointCaption; Tax_payer_at_the_pointCaptionLbl) + { + } + column(NameCaption; NameCaptionLbl) + { + } + column(AddressCaption; AddressCaptionLbl) + { + } + column(vendorCaption; vendorCaptionLbl) + { + } + column(NameCaption_Control1500024; NameCaption_Control1500024Lbl) + { + } + column(AddressCaption_Control1500025; AddressCaption_Control1500025Lbl) + { + } + column(WHT_Registration_IDCaption_Control1500026; WHT_Registration_IDCaption_Control1500026Lbl) + { + } + column(Tax_payee_informationCaption; Tax_payee_informationCaptionLbl) + { + } + column(NameCaption_Control1500036; NameCaption_Control1500036Lbl) + { + } + column(AddressCaption_Control1500037; AddressCaption_Control1500037Lbl) + { + } + column(WHT_Registration_IDCaption_Control1500038; WHT_Registration_IDCaption_Control1500038Lbl) + { + } + column(Por_Ngor_Dor_3Caption; Por_Ngor_Dor_3CaptionLbl) + { + } + column(Por_Ngor_Dor_2Caption; Por_Ngor_Dor_2CaptionLbl) + { + } + column(Por_Ngor_Dor_2_KhorCaption; Por_Ngor_Dor_2_KhorCaptionLbl) + { + } + column(Por_Ngor_Dor_1Caption; Por_Ngor_Dor_1CaptionLbl) + { + } + column(Por_Ngor_Dor_53Caption; Por_Ngor_Dor_53CaptionLbl) + { + } + column(SectionCaption; SectionCaptionLbl) + { + } + column(in_the_form_ofCaption; in_the_form_ofCaptionLbl) + { + } + column(Por_Ngor_Dor_1_Khor_SpecialCaption; Por_Ngor_Dor_1_Khor_SpecialCaptionLbl) + { + } + column(Por_Ngor_Dor_3_KhorCaption; Por_Ngor_Dor_3_KhorCaptionLbl) + { + } + column(Revenue_TypeCaption; Revenue_TypeCaptionLbl) + { + } + column(AmountCaption; AmountCaptionLbl) + { + } + column(WHT_AmountCaption; WHT_AmountCaptionLbl) + { + } + column(DateCaption; DateCaptionLbl) + { + } + + trigger OnAfterGetRecord() + begin + if "Actual Vendor No." <> '' then + if "Actual Vendor No." <> "Bill-to/Pay-to No." then begin + Vendor.Get("Actual Vendor No."); + PrintPayToVendor := true; + end else begin + Vendor.Get("Bill-to/Pay-to No."); + PrintPayToVendor := false; + end; + if "Transaction Type" = "Transaction Type"::Purchase then + PayToVendor.Get("Bill-to/Pay-to No.") + else + PaytoCustomer.Get("Bill-to/Pay-to No."); + FormatAddr.Vendor(VendAddr, Vendor); + FormatAddr.Vendor(PayToVendAddr, PayToVendor); + + // WHT Report + WHTPostingSetup.SetRange("Wthldg. Tax Bus. Post. Group", "Wthldg. Tax Bus. Post. Group"); + WHTPostingSetup.SetRange("Wthldg. Tax Prod. Post. Group", "Wthldg. Tax Prod. Post. Group"); + if WHTPostingSetup.FindFirst() then + case WHTPostingSetup."Withholding Tax Report" of + WHTPostingSetup."Withholding Tax Report"::" ": + CheckBox1 := 'X'; + WHTPostingSetup."Withholding Tax Report"::"Por Ngor Dor 1": + CheckBox2 := 'X'; + WHTPostingSetup."Withholding Tax Report"::"Por Ngor Dor 2": + CheckBox3 := 'X'; + WHTPostingSetup."Withholding Tax Report"::"Por Ngor Dor 3": + CheckBox53 := 'X'; + WHTPostingSetup."Withholding Tax Report"::"Por Ngor Dor 53": + CheckBox55 := 'X'; + end; + end; + + trigger OnPreDataItem() + begin + GLSetup.Get(); + PurchSetup.Get(); + PurchSetup.TestField("Wthldg. Tax Certificate Nos."); + CompanyInfo.Get(); + FormatAddr.Company(CompanyAddr, CompanyInfo); + TotalAmountLCY := 0; + TotalBaseLCY := 0; + CheckBox1 := ''; + CheckBox2 := ''; + CheckBox3 := ''; + CheckBox53 := ''; + CheckBox55 := ''; + end; + } + dataitem("WHT Revenue Types"; "Withholding Tax Revenue Types") + { + DataItemTableView = sorting(Sequence); + column(WHT_Revenue_Types_Description; Description) + { + } + column(WHTAmountLCY; WHTAmountLCY) + { + } + column(WHTBaseLCY; WHTBaseLCY) + { + } + column(WHTDate; Format(WHTDate)) + { + } + column(TotalAmountLCY; TotalAmountLCY) + { + } + column(TotalBaseLCY; TotalBaseLCY) + { + } + column(AmtInWords_1______AmtInWords_2_; AmtInWords[1] + ' ' + AmtInWords[2]) + { + } + column(WHT_Revenue_Types_Code; Code) + { + } + column(TotalCaption; TotalCaptionLbl) + { + } + column(Amount_In_WordCaption; Amount_In_WordCaptionLbl) + { + } + column(Provident_Fund_Permit_NumberCaption; Provident_Fund_Permit_NumberCaptionLbl) + { + } + column(TotalCaption_Control1500077; TotalCaption_Control1500077Lbl) + { + } + column(BahtCaption; BahtCaptionLbl) + { + } + column(others__please_indicate_Caption; others__please_indicate_CaptionLbl) + { + } + column(Deduct_tax_at_the_pointCaption; Deduct_tax_at_the_pointCaptionLbl) + { + } + column(Issue_tax_foreverCaption; Issue_tax_foreverCaptionLbl) + { + } + column(Issue_tax_only_onceCaption; Issue_tax_only_onceCaptionLbl) + { + } + column(PayerCaption; PayerCaptionLbl) + { + } + + trigger OnAfterGetRecord() + var + WithholdingTaxInvoiceMgmt: Codeunit "Withholding Tax Invoice Mgmt."; + WHTManagement: Codeunit "Withholding Tax Mgmt."; + begin + if not "WHT Entry".FindFirst() then + CurrReport.Skip(); + WHTAmountLCY := 0; + WHTBaseLCY := 0; + WHTDate := 0D; + WHTEntry2.CopyFilters("WHT Entry"); + WHTEntry2.SetRange("Withholding Tax Revenue Type", Code); + WHTEntry2.SetRange("Document Type", WHTEntry2."Document Type"::Payment); + if WHTEntry2.FindSet() then + repeat + WHTAmountLCY := WHTAmountLCY + WHTEntry2."Amount (LCY)"; + WHTBaseLCY := WHTBaseLCY + WHTEntry2."Base (LCY)"; + WHTDate := WHTEntry2."Posting Date"; + until WHTEntry2.Next() = 0; + if GLSetup."Round Amount Wthldg. Tax Calc" then + WHTAmountLCY := WHTManagement.RoundWithholdingTaxAmount(WHTAmountLCY); + TotalAmountLCY := TotalAmountLCY + WHTAmountLCY; + TotalBaseLCY := TotalBaseLCY + WHTBaseLCY; + + if GlobalLanguage = 1054 then begin + WithholdingTaxInvoiceMgmt.InitTextVariable(); + WithholdingTaxInvoiceMgmt.FormatNoText(AmtInWords, TotalAmountLCY, "WHT Entry"."Currency Code"); + end; + end; + + trigger OnPreDataItem() + begin + WHTEntry2.Reset(); + WHTEntry2.SetCurrentKey("Bill-to/Pay-to No.", "Original Document No.", "Withholding Tax Revenue Type"); + end; + } + } + + requestpage + { + + layout + { + } + + actions + { + } + } + + labels + { + } + + trigger OnPreReport() + begin + if ("WHT Entry".GetFilter("Original Document No.") = '') or + (("WHT Entry".GetFilter("Bill-to/Pay-to No.") = '') and + ("WHT Entry".GetFilter("Actual Vendor No.") = '')) + then + Error(BillToVendorLbl); + end; + + var + GLSetup: Record "General Ledger Setup"; + CompanyInfo: Record "Company Information"; + Vendor: Record Vendor; + PurchSetup: Record "Purchases & Payables Setup"; + WHTEntry2: Record "Withholding Tax Entry"; + WHTPostingSetup: Record "Withholding Tax Posting Setup"; + PaytoCustomer: Record Customer; + PayToVendor: Record Vendor; + FormatAddr: Codeunit "Format Address"; + TotalAmountLCY: Decimal; + TotalBaseLCY: Decimal; + WHTAmountLCY: Decimal; + WHTBaseLCY: Decimal; + WHTDate: Date; + VendAddr: array[8] of Text[100]; + CompanyAddr: array[8] of Text[100]; + AmtInWords: array[2] of Text[200]; + CheckBox1: Code[10]; + CheckBox2: Code[10]; + CheckBox1s: Code[10]; + CheckBox2t: Code[10]; + CheckBox3: Code[10]; + CheckBox3t: Code[10]; + CheckBox53: Code[10]; + CheckBox55: Code[10]; + PayToVendAddr: array[8] of Text[100]; + PrintPayToVendor: Boolean; + BillToVendorLbl: Label 'Please enter Bill-to/Pay-to Vendor No. and Original Document No. '; + Text1500000Lbl: Label 'Withholding Certificate'; + WHT_Registration_IDCaptionLbl: Label 'WHT Registration ID'; + Certificate_of_tax_income_at_the_pointCaptionLbl: Label 'Certificate of tax income at the point'; + Rule_no_69_according_to_the_lawCaptionLbl: Label ' Rule no.69 according to the law'; + WHT_Cert__No_CaptionLbl: Label 'WHT Cert. No.'; + Tax_payer_at_the_pointCaptionLbl: Label 'Tax payer at the point'; + NameCaptionLbl: Label 'Name'; + AddressCaptionLbl: Label 'Address'; + vendorCaptionLbl: Label 'Vendor'; + NameCaption_Control1500024Lbl: Label 'Name'; + AddressCaption_Control1500025Lbl: Label 'Address'; + WHT_Registration_IDCaption_Control1500026Lbl: Label 'WHT Registration ID'; + Tax_payee_informationCaptionLbl: Label 'Tax payee information'; + NameCaption_Control1500036Lbl: Label 'Name'; + AddressCaption_Control1500037Lbl: Label 'Address'; + WHT_Registration_IDCaption_Control1500038Lbl: Label 'WHT Registration ID'; + Por_Ngor_Dor_3CaptionLbl: Label 'Por Ngor Dor 3'; + Por_Ngor_Dor_2CaptionLbl: Label 'Por Ngor Dor 2'; + Por_Ngor_Dor_2_KhorCaptionLbl: Label 'Por Ngor Dor 2 Khor'; + Por_Ngor_Dor_1CaptionLbl: Label 'Por Ngor Dor 1'; + Por_Ngor_Dor_53CaptionLbl: Label 'Por Ngor Dor 53'; + SectionCaptionLbl: Label 'Section'; + in_the_form_ofCaptionLbl: Label 'In the form of.'; + Por_Ngor_Dor_1_Khor_SpecialCaptionLbl: Label 'Por Ngor Dor 1 Khor Special'; + Por_Ngor_Dor_3_KhorCaptionLbl: Label 'Por Ngor Dor 3 Khor'; + Revenue_TypeCaptionLbl: Label 'Revenue Type'; + AmountCaptionLbl: Label 'Amount'; + WHT_AmountCaptionLbl: Label 'WHT Amount'; + DateCaptionLbl: Label 'Date'; + TotalCaptionLbl: Label 'Total'; + Amount_In_WordCaptionLbl: Label 'Amount In Word'; + Provident_Fund_Permit_NumberCaptionLbl: Label 'Provident Fund Permit Number'; + TotalCaption_Control1500077Lbl: Label 'Total'; + BahtCaptionLbl: Label 'Baht'; + others__please_indicate_CaptionLbl: Label 'Others (please indicate)'; + Deduct_tax_at_the_pointCaptionLbl: Label 'Deduct tax at the point'; + Issue_tax_foreverCaptionLbl: Label 'Issue tax forever'; + Issue_tax_only_onceCaptionLbl: Label 'Issue tax only once'; + PayerCaptionLbl: Label 'Payer'; +} + diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WHTCompanyInfoExt.TableExt.al b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WHTCompanyInfoExt.TableExt.al new file mode 100644 index 0000000000..c2106c2045 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WHTCompanyInfoExt.TableExt.al @@ -0,0 +1,22 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +tableextension 6807 "WHT Company Info Ext" extends "Company Information" +{ + fields + { + field(6784; "Withholding Tax Reg. ID"; Text[30]) + { + Caption = 'Withholding Tax Registration ID'; + } + field(6785; "WHT RDO Code"; Code[3]) + { + Caption = 'RDO Code'; + } + field(6786; "WHT VAT Registration Date"; Date) + { + Caption = 'VAT Registration Date'; + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WHTVendPostingGroupExt.TableExt.al b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WHTVendPostingGroupExt.TableExt.al new file mode 100644 index 0000000000..96c2cc76e9 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WHTVendPostingGroupExt.TableExt.al @@ -0,0 +1,19 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using Microsoft.Purchases.Vendor; + +tableextension 6804 "WHT Vend Posting Group Ext" extends "Vendor Posting Group" +{ + fields + { + field(6804; "WHT Non-Taxable"; Boolean) + { + Caption = 'Non-Taxable'; + DataClassification = CustomerContent; + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingGLSetup.PageExt.al b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingGLSetup.PageExt.al new file mode 100644 index 0000000000..375cc9c633 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingGLSetup.PageExt.al @@ -0,0 +1,27 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using Microsoft.Finance.GeneralLedger.Setup; + +pageextension 6788 "Withholding GL Setup" extends "General Ledger Setup" +{ + layout + { + addafter("Bank Account Nos.") + { + field("Enable Withholding Tax"; Rec."Enable Withholding Tax") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies if your company must use withholding tax.'; + } + field("Min. Wthldg. Tax Calc Inv. Amt"; Rec."Min. Wthldg. Tax Calc Inv. Amt") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies Min. Withholding Tax Calc Inv. Amt'; + } + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingGLSetupExt.TableExt.al b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingGLSetupExt.TableExt.al new file mode 100644 index 0000000000..259591595e --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingGLSetupExt.TableExt.al @@ -0,0 +1,44 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using Microsoft.Finance.GeneralLedger.Setup; + +tableextension 6790 "Withholding GL Setup Ext" extends "General Ledger Setup" +{ + fields + { + field(6784; "Enable Withholding Tax"; Boolean) + { + Caption = 'Enable Withholding Tax'; + DataClassification = CustomerContent; + } + field(6785; "Manual Sales Wthldg. Tax Calc."; Boolean) + { + Caption = 'Manual Sales Withholding Tax Calc.'; + DataClassification = CustomerContent; + } + field(6786; "WHT Enable Tax Invoices"; Boolean) + { + Caption = 'Enable Tax Invoices'; + DataClassification = CustomerContent; + } + field(6787; "WHT Print Tax Inv. on Posting"; Boolean) + { + Caption = 'Print Tax Invoices on Posting'; + DataClassification = CustomerContent; + } + field(6788; "Round Amount Wthldg. Tax Calc"; Boolean) + { + Caption = 'Round Amount Withholding Tax Calc'; + DataClassification = CustomerContent; + } + field(6789; "Min. Wthldg. Tax Calc Inv. Amt"; Boolean) + { + Caption = 'Min. Withholding Tax Calc only on Inv. Amt'; + DataClassification = CustomerContent; + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingPurchSetup.PageExt.al b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingPurchSetup.PageExt.al new file mode 100644 index 0000000000..fe739846be --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingPurchSetup.PageExt.al @@ -0,0 +1,18 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +pageextension 6794 "Withholding Purch Setup" extends "Purchases & Payables Setup" +{ + layout + { + addafter("Posted Prepmt. Cr. Memo Nos.") + { + field("Wthldg. Tax Certificate Nos."; Rec."Wthldg. Tax Certificate Nos.") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the No. Series for the Withholding Tax Certificates.'; + } + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingPurchSetupExt.TableExt.al b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingPurchSetupExt.TableExt.al new file mode 100644 index 0000000000..cd87d1125a --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingPurchSetupExt.TableExt.al @@ -0,0 +1,86 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using Microsoft.Finance.GeneralLedger.Journal; +using Microsoft.Foundation.AuditCodes; +using Microsoft.Foundation.NoSeries; +using Microsoft.Purchases.Setup; + +tableextension 6796 "Withholding Purch Setup Ext" extends "Purchases & Payables Setup" +{ + fields + { + field(6784; "Wthldg. Tax Certificate Nos."; Code[20]) + { + Caption = 'Withholding Tax Certificate Nos.'; + TableRelation = "No. Series"; + DataClassification = CustomerContent; + } + field(6785; "WHT Print Dialog"; Boolean) + { + Caption = 'Print Dialog'; + DataClassification = CustomerContent; + } + field(6786; "Print Wthldg. Tax Docs PayPost"; Boolean) + { + Caption = 'Print Withholding Docs. on Pay. Post'; + DataClassification = CustomerContent; + } + field(6787; "Print Wthldg. Tax Docs Cr.Memo"; Boolean) + { + Caption = 'Print Withholding Docs. on Credit Memo'; + DataClassification = CustomerContent; + } + field(6788; "WHT Posted Tax Invoice Nos."; Code[20]) + { + Caption = 'Posted Tax Invoice Nos.'; + TableRelation = "No. Series"; + DataClassification = CustomerContent; + } + field(6789; "WHT Posted Tax Credit Memo Nos"; Code[20]) + { + Caption = 'Posted Tax Credit Memo Nos'; + TableRelation = "No. Series"; + DataClassification = CustomerContent; + } + field(6790; "WHT Posted Non Tax Inv. Nos."; Code[20]) + { + Caption = 'Posted Non Tax Invoice Nos.'; + TableRelation = "No. Series"; + DataClassification = CustomerContent; + } + field(6791; "WHT Pstd. Non Tax Cr. Memo Nos"; Code[20]) + { + Caption = 'Posted Non Tax Credit Memo Nos'; + TableRelation = "No. Series"; + DataClassification = CustomerContent; + } + field(6792; "WHT Enable Vend. GST Amt.(ACY)"; Boolean) + { + Caption = 'Enable Vendor GST Amount (ACY)'; + DataClassification = CustomerContent; + } + field(6793; "WHT Post Dated Check Template"; Code[10]) + { + Caption = 'Post Dated Check Template'; + TableRelation = "Gen. Journal Template"; + DataClassification = CustomerContent; + } + field(6794; "WHT Post Dated Check Batch"; Code[10]) + { + Caption = 'Post Dated Check Batch'; + DataClassification = CustomerContent; + TableRelation = "Gen. Journal Batch".Name where("Journal Template Name" = field("WHT Post Dated Check Template"), + "Bal. Account Type" = const("Bank Account")); + } + field(6795; "WHT Default Cancel Reason Code"; Code[10]) + { + Caption = 'Default Cancel Reason Code'; + DataClassification = CustomerContent; + TableRelation = "Reason Code"; + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingSourceCodeSetupExt.TableExt.al b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingSourceCodeSetupExt.TableExt.al new file mode 100644 index 0000000000..a2f932b3c7 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingSourceCodeSetupExt.TableExt.al @@ -0,0 +1,15 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +tableextension 6806 WithholdingSourceCodeSetupExt extends "Source Code Setup" +{ + fields + { + field(6784; "Withholding Tax Settlement"; Code[10]) + { + Caption = 'Withholding Tax Settlement'; + TableRelation = "Source Code"; + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingTaxPostingSetup.Page.al b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingTaxPostingSetup.Page.al new file mode 100644 index 0000000000..e7dfa3049e --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingTaxPostingSetup.Page.al @@ -0,0 +1,121 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +page 6786 "Withholding Tax Posting Setup" +{ + ApplicationArea = Basic, Suite; + Caption = 'Withholding Tax Posting Setup'; + PageType = List; + SourceTable = "Withholding Tax Posting Setup"; + UsageCategory = Administration; + + layout + { + area(content) + { + repeater(GroupName) + { + ShowCaption = false; + field("Wthldg. Tax Bus. Post. Group"; Rec."Wthldg. Tax Bus. Post. Group") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies a Withholding Tax Business Posting group code.'; + } + field("Wthldg. Tax Prod. Post. Group"; Rec."Wthldg. Tax Prod. Post. Group") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies a Withholding Tax Product Posting group code.'; + } + field("Wthldg. Tax Calculation Rule"; Rec."Wthldg. Tax Calculation Rule") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the Withholding Tax calculation rule.'; + } + field("Wthldg. Tax Min. Inv. Amount"; Rec."Wthldg. Tax Min. Inv. Amount") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the threshold amount for Withholding Tax, below which there will not be any Withholding Tax deduction.'; + } + field("Withholding Tax %"; Rec."Withholding Tax %") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the relevant Withholding Tax rate for the particular combination of Withholding Tax Business Posting group and Withholding Tax Product Posting group.'; + } + field("Realized Withholding Tax Type"; Rec."Realized Withholding Tax Type") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies how Withholding Tax is calculated for purchases or sales of items with this particular combination of Withholding Tax business and product posting groups.'; + } + field("Prepaid Wthldg. Tax Acc. Code"; Rec."Prepaid Wthldg. Tax Acc. Code") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the G/L account number to which you want to post sales Withholding for the particular combination of Withholding Tax business and product posting groups.'; + } + field("Payable Wthldg. Tax Acc. Code"; Rec."Payable Wthldg. Tax Acc. Code") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the G/L account number to which you want to post Purchase Withholding for the particular combination of Withholding Tax business and product posting groups.'; + } + field("Withholding Tax Report"; Rec."Withholding Tax Report") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the Withholding Tax report type for a particular Business and Product Posting group combination.'; + } + field("Bal. Prepaid Account Type"; Rec."Bal. Prepaid Account Type") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the type of Balancing Account type for Sales Withholding transaction.'; + } + field("Bal. Prepaid Account No."; Rec."Bal. Prepaid Account No.") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the Account No. or Bank name (based on Bal. Prepaid Account Type) as a balancing account for Sales Withholding transactions.'; + } + field("Bal. Payable Account Type"; Rec."Bal. Payable Account Type") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the type of Balancing Account type for Purchase Withholding transaction.'; + } + field("Bal. Payable Account No."; Rec."Bal. Payable Account No.") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the Account No. or Bank name (based on Bal. Prepaid Account Type) as a balancing account for Purchase Withholding transactions.'; + } + field("Withholding Tax Report Line No. Series"; Rec."Wthldg. Tax Rep Line No Series") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the no. series for Withholding Report Line for a particular Withholding Business and Product Posting group combination.'; + } + field("Revenue Type"; Rec."Revenue Type") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the Revenue Type this combination of Withholding Business and Product Posting group belongs to.'; + } + field("Purch. Wthldg. Tax Adj. Acc No"; Rec."Purch. Wthldg. Tax Adj. Acc No") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies an account number for Purchase Credit Memo adjustments.'; + } + field("Sales Wthldg. Tax Adj. Acc No"; Rec."Sales Wthldg. Tax Adj. Acc No") + { + ApplicationArea = Basic, Suite; + Visible = false; + ToolTip = 'Specifies an account number for Sales Credit Memo adjustments.'; + } + field(Sequence; Rec.Sequence) + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the sequence in which the Withholding Tax Posting Setup shall be displayed in reports.'; + } + } + } + } + + trigger OnInsertRecord(BelowxRec: Boolean): Boolean + begin + Rec.TestField(Rec."Revenue Type"); + end; +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingTaxPostingSetup.Table.al b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingTaxPostingSetup.Table.al new file mode 100644 index 0000000000..a5d81ac80e --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingTaxPostingSetup.Table.al @@ -0,0 +1,146 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using Microsoft.Bank.BankAccount; +using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Foundation.NoSeries; + +table 6786 "Withholding Tax Posting Setup" +{ + Caption = 'Withholding Tax Posting Setup'; + DataClassification = CustomerContent; + + fields + { + field(1; "Wthldg. Tax Bus. Post. Group"; Code[20]) + { + Caption = 'Withholding Tax Bus. Post. Group'; + TableRelation = "Wthldg. Tax Bus. Post. Group"; + } + field(2; "Wthldg. Tax Prod. Post. Group"; Code[20]) + { + Caption = 'Withholding Tax Prod. Post. Group'; + TableRelation = "Wthldg. Tax Prod. Post. Group"; + } + field(3; "Withholding Tax %"; Decimal) + { + Caption = 'Withholding Tax %'; + DecimalPlaces = 0 : 5; + MaxValue = 100; + MinValue = 0; + } + field(4; "Prepaid Wthldg. Tax Acc. Code"; Code[20]) + { + Caption = 'Prepaid Withholding Tax Account Code'; + TableRelation = "G/L Account"; + } + field(5; "Payable Wthldg. Tax Acc. Code"; Code[20]) + { + Caption = 'Payable Withholding Tax Account Code'; + TableRelation = "G/L Account"; + } + field(7; "Withholding Tax Report"; Option) + { + Caption = 'Withholding Tax Report'; + OptionCaption = ' ,Por Ngor Dor 1,Por Ngor Dor 2,Por Ngor Dor 3,Por Ngor Dor 53,Por Ngor Dor 54'; + OptionMembers = " ","Por Ngor Dor 1","Por Ngor Dor 2","Por Ngor Dor 3","Por Ngor Dor 53","Por Ngor Dor 54"; + } + field(8; "Wthldg. Tax Rep Line No Series"; Code[20]) + { + Caption = 'Withholding Tax Report Line No. Series'; + TableRelation = "No. Series"; + } + field(9; "Revenue Type"; Code[10]) + { + Caption = 'Revenue Type'; + TableRelation = "Withholding Tax Revenue Types"; + } + field(10; "Bal. Prepaid Account Type"; Option) + { + Caption = 'Bal. Prepaid Account Type'; + OptionCaption = 'Bank Account,G/L Account'; + OptionMembers = "Bank Account","G/L Account"; + } + field(11; "Bal. Prepaid Account No."; Code[20]) + { + Caption = 'Bal. Prepaid Account No.'; + TableRelation = if ("Bal. Prepaid Account Type" = const("Bank Account")) "Bank Account" + else + if ("Bal. Prepaid Account Type" = const("G/L Account")) "G/L Account"; + } + field(12; "Bal. Payable Account Type"; Option) + { + Caption = 'Bal. Payable Account Type'; + OptionCaption = 'Bank Account,G/L Account'; + OptionMembers = "Bank Account","G/L Account"; + } + field(13; "Bal. Payable Account No."; Code[20]) + { + Caption = 'Bal. Payable Account No.'; + TableRelation = if ("Bal. Payable Account Type" = const("Bank Account")) "Bank Account" + else + if ("Bal. Payable Account Type" = const("G/L Account")) "G/L Account"; + } + field(20; "Purch. Wthldg. Tax Adj. Acc No"; Code[20]) + { + Caption = 'Purch. Withholding Tax Adj. Account No.'; + TableRelation = "G/L Account"; + } + field(21; "Sales Wthldg. Tax Adj. Acc No"; Code[20]) + { + Caption = 'Sales Withholding Tax Adj. Account No.'; + TableRelation = "G/L Account"; + } + field(22; Sequence; Integer) + { + Caption = 'Sequence'; + } + field(23; "Realized Withholding Tax Type"; Option) + { + Caption = 'Realized Withholding Type'; + OptionCaption = ' ,Invoice,Payment,Earliest'; + OptionMembers = " ",Invoice,Payment,Earliest; + } + field(24; "Wthldg. Tax Min. Inv. Amount"; Decimal) + { + Caption = 'Withholding Tax Minimum Invoice Amount'; + } + field(25; "Wthldg. Tax Calculation Rule"; Option) + { + Caption = 'Withholding Tax Calculation Rule'; + OptionCaption = 'Less than,Less than or equal to,Equal to,Greater than,Greater than or equal to'; + OptionMembers = "Less than","Less than or equal to","Equal to","Greater than","Greater than or equal to"; + } + } + + keys + { + key(Key1; "Wthldg. Tax Bus. Post. Group", "Wthldg. Tax Prod. Post. Group") + { + Clustered = true; + } + key(Key2; "Wthldg. Tax Bus. Post. Group", Sequence) + { + } + } + + fieldgroups + { + } + + procedure GetPrepaidWithholdingTaxAccount(): Code[20] + begin + TestField("Prepaid Wthldg. Tax Acc. Code"); + exit("Prepaid Wthldg. Tax Acc. Code"); + end; + + procedure GetPayableWithholdingTaxAccount(): Code[20] + begin + TestField("Payable Wthldg. Tax Acc. Code"); + exit("Payable Wthldg. Tax Acc. Code"); + end; +} + diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingTaxRevenueTypes.Page.al b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingTaxRevenueTypes.Page.al new file mode 100644 index 0000000000..06f2cb7705 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingTaxRevenueTypes.Page.al @@ -0,0 +1,40 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +page 6787 "Withholding Tax Revenue Types" +{ + ApplicationArea = Basic, Suite; + Caption = 'Withholding Tax Revenue Types'; + PageType = List; + SourceTable = "Withholding Tax Revenue Types"; + UsageCategory = Lists; + + layout + { + area(content) + { + repeater(GroupName) + { + ShowCaption = false; + field("Code"; Rec.Code) + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies code for the Revenue Type.'; + } + field(Description; Rec.Description) + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the description for the Withholding Tax Revenue Type.'; + } + field(Sequence; Rec.Sequence) + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the integer to group the Revenue Types.'; + } + } + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingTaxRevenueTypes.Table.al b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingTaxRevenueTypes.Table.al new file mode 100644 index 0000000000..04cab00d09 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WithholdingTaxRevenueTypes.Table.al @@ -0,0 +1,47 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +table 6787 "Withholding Tax Revenue Types" +{ + Caption = 'Withholding Tax Revenue Types'; + LookupPageID = "Withholding Tax Revenue Types"; + DataClassification = CustomerContent; + + fields + { + field(1; "Code"; Code[10]) + { + Caption = 'Code'; + NotBlank = true; + } + field(2; Description; Text[50]) + { + Caption = 'Description'; + } + field(3; Sequence; Integer) + { + Caption = 'Sequence'; + } + } + + keys + { + key(Key1; "Code") + { + Clustered = true; + } + key(Key2; Sequence) + { + } + } + + fieldgroups + { + fieldgroup(DropDown; "Code", Description) + { + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WthldgTaxBusPostGroup.Page.al b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WthldgTaxBusPostGroup.Page.al new file mode 100644 index 0000000000..0ee02939d1 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WthldgTaxBusPostGroup.Page.al @@ -0,0 +1,62 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +page 6784 "Wthldg. Tax Bus. Post. Group" +{ + ApplicationArea = Basic, Suite; + Caption = 'Withholding Tax Bus. Post. Group'; + PageType = List; + SourceTable = "Wthldg. Tax Bus. Post. Group"; + UsageCategory = Lists; + + layout + { + area(content) + { + repeater(GroupName) + { + ShowCaption = false; + field("Code"; Rec.Code) + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies a code for the group.'; + } + field(Description; Rec.Description) + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies a description for the Withholding tax business posting group.'; + } + } + } + } + + actions + { + area(processing) + { + action("Setup") + { + ApplicationArea = Basic, Suite; + Caption = 'Setup'; + Image = Setup; + RunObject = Page "Withholding Tax Posting Setup"; + RunPageLink = "Wthldg. Tax Bus. Post. Group" = field(Code); + ToolTip = 'View or edit the withholding tax posting setup information. This includes posting groups, revenue types, and accounts.'; + } + } + area(Promoted) + { + group(Category_Process) + { + Caption = 'Process'; + + actionref("Setup_Promoted"; "Setup") + { + } + } + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WthldgTaxBusPostGroup.Table.al b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WthldgTaxBusPostGroup.Table.al new file mode 100644 index 0000000000..90691fbe30 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WthldgTaxBusPostGroup.Table.al @@ -0,0 +1,39 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +table 6784 "Wthldg. Tax Bus. Post. Group" +{ + Caption = 'Withholding Tax Bus. Post. Group'; + LookupPageID = "Wthldg. Tax Bus. Post. Group"; + DataClassification = CustomerContent; + + fields + { + field(1; "Code"; Code[20]) + { + Caption = 'Code'; + } + field(2; Description; Text[50]) + { + Caption = 'Description'; + } + } + + keys + { + key(Key1; "Code") + { + Clustered = true; + } + } + + fieldgroups + { + fieldgroup(DropDown; "Code", Description) + { + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WthldgTaxProdPostGroup.Page.al b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WthldgTaxProdPostGroup.Page.al new file mode 100644 index 0000000000..49f3fba773 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WthldgTaxProdPostGroup.Page.al @@ -0,0 +1,73 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using System.Telemetry; + +page 6785 "Wthldg. Tax Prod. Post. Group" +{ + ApplicationArea = Basic, Suite; + Caption = 'Withholding Tax Prod. Post. Group'; + PageType = List; + SourceTable = "Wthldg. Tax Prod. Post. Group"; + UsageCategory = Lists; + + layout + { + area(content) + { + repeater(GroupName) + { + ShowCaption = false; + field("Code"; Rec.Code) + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies a code for the posting group.'; + } + field(Description; Rec.Description) + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies a description for the Withholding Tax Product posting group.'; + } + } + } + } + + actions + { + area(processing) + { + action("&Setup") + { + ApplicationArea = Basic, Suite; + Caption = '&Setup'; + Image = Setup; + RunObject = Page "Withholding Tax Posting Setup"; + RunPageLink = "Wthldg. Tax Prod. Post. Group" = field(Code); + ToolTip = 'View or edit the withholding tax posting setup information. This includes posting groups, revenue types, and accounts.'; + } + } + area(Promoted) + { + group(Category_Process) + { + Caption = 'Process'; + + actionref("&Setup_Promoted"; "&Setup") + { + } + } + } + } + + trigger OnOpenPage() + begin + FeatureTelemetry.LogUptake('0000HH3', APACWHTTok, Enum::"Feature Uptake Status"::Discovered); + end; + + var + FeatureTelemetry: Codeunit "Feature Telemetry"; + APACWHTTok: Label 'APAC Set Up Withholding Tax', Locked = true; +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WthldgTaxProdPostGroup.Table.al b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WthldgTaxProdPostGroup.Table.al new file mode 100644 index 0000000000..8c20ebd123 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Setup/WthldgTaxProdPostGroup.Table.al @@ -0,0 +1,50 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using System.Telemetry; + +table 6785 "Wthldg. Tax Prod. Post. Group" +{ + Caption = 'Withholding Tax Prod. Post. Group'; + LookupPageID = "Wthldg. Tax Prod. Post. Group"; + DataClassification = CustomerContent; + + fields + { + field(1; "Code"; Code[20]) + { + Caption = 'Code'; + } + field(2; Description; Text[50]) + { + Caption = 'Description'; + } + } + + keys + { + key(Key1; "Code") + { + Clustered = true; + } + } + + fieldgroups + { + fieldgroup(DropDown; "Code", Description) + { + } + } + + trigger OnInsert() + begin + FeatureTelemetry.LogUptake('0000QX7', SetupWHTTok, Enum::"Feature Uptake Status"::"Set up"); + end; + + var + FeatureTelemetry: Codeunit "Feature Telemetry"; + SetupWHTTok: Label 'Set Up Withholding Tax', Locked = true; +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/TempWithholdingTaxEntry.Table.al b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/TempWithholdingTaxEntry.Table.al new file mode 100644 index 0000000000..37aa6d8fd7 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/TempWithholdingTaxEntry.Table.al @@ -0,0 +1,433 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using Microsoft.Finance.GeneralLedger.Journal; +using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Foundation.Address; +using Microsoft.Foundation.AuditCodes; +using Microsoft.Foundation.NoSeries; +using Microsoft.Purchases.Vendor; +using Microsoft.Sales.Customer; + +table 6790 "Temp Withholding Tax Entry" +{ + Caption = 'Temp Withholding Tax Entry'; + LookupPageID = "Withholding Tax Entry"; + DataClassification = CustomerContent; + + fields + { + field(1; "Entry No."; Integer) + { + Caption = 'Entry No.'; + DataClassification = SystemMetadata; + Editable = false; + } + field(2; "Gen. Bus. Posting Group"; Code[20]) + { + Caption = 'Gen. Bus. Posting Group'; + DataClassification = SystemMetadata; + Editable = false; + TableRelation = "Gen. Business Posting Group"; + } + field(3; "Gen. Prod. Posting Group"; Code[20]) + { + Caption = 'Gen. Prod. Posting Group'; + DataClassification = SystemMetadata; + Editable = false; + TableRelation = "Gen. Product Posting Group"; + } + field(4; "Posting Date"; Date) + { + Caption = 'Posting Date'; + DataClassification = SystemMetadata; + Editable = false; + } + field(5; "Document No."; Code[20]) + { + Caption = 'Document No.'; + DataClassification = SystemMetadata; + Editable = false; + } + field(6; "Document Type"; Enum "Gen. Journal Document Type") + { + Caption = 'Document Type'; + DataClassification = SystemMetadata; + Editable = false; + } + field(8; Base; Decimal) + { + AutoFormatType = 1; + Caption = 'Base'; + DataClassification = SystemMetadata; + Editable = false; + } + field(9; Amount; Decimal) + { + AutoFormatType = 1; + Caption = 'Amount'; + DataClassification = SystemMetadata; + Editable = false; + } + field(10; "Withholding Tax Calc. Type"; Option) + { + Caption = 'Withholding Tax Calculation Type'; + DataClassification = SystemMetadata; + Editable = false; + OptionCaption = 'Normal Withholding Tax,Full Withholding Tax'; + OptionMembers = "Normal Withholding Tax","Full Withholding Tax"; + } + field(11; "Currency Code"; Code[10]) + { + Caption = 'Currency Code'; + DataClassification = SystemMetadata; + } + field(12; "Bill-to/Pay-to No."; Code[20]) + { + Caption = 'Bill-to/Pay-to No.'; + DataClassification = SystemMetadata; + TableRelation = if ("Transaction Type" = const(Purchase)) Vendor + else + if ("Transaction Type" = const(Sale)) Customer; + } + field(14; "User ID"; Code[50]) + { + Caption = 'User ID'; + DataClassification = EndUserIdentifiableInformation; + Editable = false; + } + field(15; "Source Code"; Code[10]) + { + Caption = 'Source Code'; + DataClassification = SystemMetadata; + Editable = false; + TableRelation = "Source Code"; + } + field(16; "Reason Code"; Code[10]) + { + Caption = 'Reason Code'; + DataClassification = SystemMetadata; + Editable = false; + TableRelation = "Reason Code"; + } + field(17; "Closed by Entry No."; Integer) + { + Caption = 'Closed by Entry No.'; + DataClassification = SystemMetadata; + Editable = false; + TableRelation = "Temp Withholding Tax Entry"; + } + field(18; Closed; Boolean) + { + Caption = 'Closed'; + DataClassification = SystemMetadata; + Editable = false; + } + field(19; "Country/Region Code"; Code[10]) + { + Caption = 'Country/Region Code'; + DataClassification = SystemMetadata; + TableRelation = "Country/Region"; + + trigger OnValidate() + begin + Validate("Transaction Type"); + end; + } + field(21; "Transaction No."; Integer) + { + Caption = 'Transaction No.'; + DataClassification = SystemMetadata; + Editable = false; + } + field(22; "Unrealized Amount"; Decimal) + { + AutoFormatType = 1; + Caption = 'Unrealized Amount'; + DataClassification = SystemMetadata; + Editable = false; + } + field(23; "Unrealized Base"; Decimal) + { + AutoFormatType = 1; + Caption = 'Unrealized Base'; + DataClassification = SystemMetadata; + Editable = false; + } + field(24; "Remaining Unrealized Amount"; Decimal) + { + AutoFormatType = 1; + Caption = 'Remaining Unrealized Amount'; + DataClassification = SystemMetadata; + Editable = false; + } + field(25; "Remaining Unrealized Base"; Decimal) + { + AutoFormatType = 1; + Caption = 'Remaining Unrealized Base'; + DataClassification = SystemMetadata; + Editable = false; + } + field(26; "External Document No."; Code[35]) + { + Caption = 'External Document No.'; + DataClassification = SystemMetadata; + Editable = false; + } + field(27; "Transaction Type"; Option) + { + Caption = 'Transaction Type'; + DataClassification = SystemMetadata; + OptionCaption = ' ,Purchase,Sale,Settlement'; + OptionMembers = " ",Purchase,Sale,Settlement; + } + field(28; "No. Series"; Code[20]) + { + Caption = 'No. Series'; + DataClassification = SystemMetadata; + Editable = false; + TableRelation = "No. Series"; + } + field(29; "Unreal. Wthldg. Tax Entry No."; Integer) + { + Caption = 'Unrealized Withholding Tax Entry No.'; + DataClassification = SystemMetadata; + Editable = false; + TableRelation = "Temp Withholding Tax Entry"; + } + field(30; "Wthldg. Tax Bus. Post. Group"; Code[20]) + { + Caption = 'Withholding Tax Bus. Post. Group'; + DataClassification = SystemMetadata; + Editable = false; + TableRelation = "Wthldg. Tax Bus. Post. Group"; + } + field(31; "Wthldg. Tax Prod. Post. Group"; Code[20]) + { + Caption = 'Withholding Tax Prod. Post. Group'; + DataClassification = SystemMetadata; + Editable = false; + TableRelation = "Wthldg. Tax Prod. Post. Group"; + } + field(32; "Base (LCY)"; Decimal) + { + AutoFormatType = 1; + Caption = 'Base (LCY)'; + DataClassification = SystemMetadata; + Editable = false; + } + field(33; "Amount (LCY)"; Decimal) + { + AutoFormatType = 1; + Caption = 'Amount (LCY)'; + DataClassification = SystemMetadata; + Editable = false; + } + field(34; "Unrealized Amount (LCY)"; Decimal) + { + AutoFormatExpression = GetCurrencyCode(); + AutoFormatType = 1; + Caption = 'Unrealized Amount (LCY)'; + DataClassification = SystemMetadata; + Editable = false; + } + field(35; "Unrealized Base (LCY)"; Decimal) + { + AutoFormatExpression = GetCurrencyCode(); + AutoFormatType = 1; + Caption = 'Unrealized Base (LCY)'; + DataClassification = SystemMetadata; + Editable = false; + } + field(36; "Withholding Tax %"; Decimal) + { + Caption = 'Withholding Tax %'; + DataClassification = SystemMetadata; + DecimalPlaces = 0 : 5; + Editable = false; + MaxValue = 100; + MinValue = 0; + } + field(37; "Rem Unrealized Amount (LCY)"; Decimal) + { + AutoFormatExpression = GetCurrencyCode(); + AutoFormatType = 1; + Caption = 'Rem Unrealized Amount (LCY)'; + DataClassification = SystemMetadata; + Editable = false; + } + field(38; "Rem Unrealized Base (LCY)"; Decimal) + { + AutoFormatExpression = GetCurrencyCode(); + AutoFormatType = 1; + Caption = 'Rem Unrealized Base (LCY)'; + DataClassification = SystemMetadata; + Editable = false; + } + field(39; "Withholding Tax Difference"; Decimal) + { + AutoFormatType = 1; + Caption = 'Withholding Tax Difference'; + DataClassification = SystemMetadata; + Editable = false; + } + field(41; "Ship-to/Order Address Code"; Code[10]) + { + Caption = 'Ship-to/Order Address Code'; + DataClassification = SystemMetadata; + TableRelation = if ("Transaction Type" = const(Purchase)) "Order Address".Code where("Vendor No." = field("Bill-to/Pay-to No.")) + else + if ("Transaction Type" = const(Sale)) "Ship-to Address".Code where("Customer No." = field("Bill-to/Pay-to No.")); + } + field(42; "Document Date"; Date) + { + Caption = 'Document Date'; + DataClassification = SystemMetadata; + Editable = false; + } + field(44; "Actual Vendor No."; Code[20]) + { + Caption = 'Actual Vendor No.'; + DataClassification = SystemMetadata; + } + field(45; "Wthldg. Tax Certificate No."; Code[20]) + { + Caption = 'Withholding Tax Certificate No.'; + DataClassification = SystemMetadata; + } + field(47; "Void Check"; Boolean) + { + Caption = 'Void Check'; + DataClassification = SystemMetadata; + } + field(48; "Original Document No."; Code[20]) + { + Caption = 'Original Document No.'; + DataClassification = SystemMetadata; + } + field(49; "Void Payment Entry No."; Integer) + { + Caption = 'Void Payment Entry No.'; + DataClassification = SystemMetadata; + } + field(50; "Wthldg. Tax Report Line No"; Code[20]) + { + Caption = 'Withholding Tax Report Line No'; + DataClassification = SystemMetadata; + } + field(51; "Withholding Tax Report"; Option) + { + Caption = 'Withholding Report'; + DataClassification = SystemMetadata; + OptionCaption = ' ,Por Ngor Dor 1,Por Ngor Dor 2,Por Ngor Dor 3,Por Ngor Dor 53,Por Ngor Dor 54'; + OptionMembers = " ","Por Ngor Dor 1","Por Ngor Dor 2","Por Ngor Dor 3","Por Ngor Dor 53","Por Ngor Dor 54"; + } + field(52; "Applies-to Doc. Type"; Enum "Gen. Journal Document Type") + { + Caption = 'Applies-to Doc. Type'; + DataClassification = SystemMetadata; + } + field(53; "Applies-to Doc. No."; Code[20]) + { + Caption = 'Applies-to Doc. No.'; + DataClassification = SystemMetadata; + } + field(54; "Applies-to Entry No."; Integer) + { + Caption = 'Applies-to Entry No.'; + DataClassification = SystemMetadata; + } + field(55; "Withholding Tax Revenue Type"; Code[10]) + { + Caption = 'Withholding Tax Revenue Type'; + DataClassification = SystemMetadata; + } + field(57; "Payment Amount"; Decimal) + { + Caption = 'Payment Amount'; + DataClassification = SystemMetadata; + } + field(58; "Reversed by Entry No."; Integer) + { + Caption = 'Reversed by Entry No.'; + DataClassification = SystemMetadata; + TableRelation = "Withholding Tax Entry"."Entry No."; + } + field(59; "Reversed Entry No."; Integer) + { + Caption = 'Reversed Entry No.'; + DataClassification = SystemMetadata; + TableRelation = "Withholding Tax Entry"."Entry No."; + } + field(60; Reversed; Boolean) + { + Caption = 'Reversed'; + DataClassification = SystemMetadata; + } + } + + keys + { + key(Key1; "Entry No.") + { + Clustered = true; + } + key(Key2; "Transaction Type", Closed, "Withholding Tax Difference", "Amount (LCY)", "Base (LCY)", "Posting Date") + { + SumIndexFields = Base, Amount, "Unrealized Amount", "Unrealized Base"; + } + key(Key3; "Transaction Type", "Country/Region Code", "Withholding Tax Difference", "Posting Date") + { + SumIndexFields = Base; + } + key(Key4; "Document No.", "Posting Date") + { + } + key(Key5; "Transaction No.") + { + } + key(Key6; "Amount (LCY)", "Unrealized Amount (LCY)", "Unrealized Base (LCY)", "Base (LCY)", "Posting Date") + { + } + key(Key7; "Document Type", "Document No.") + { + SumIndexFields = Base, Amount, "Unrealized Amount", "Unrealized Base", "Remaining Unrealized Amount", "Remaining Unrealized Base", "Base (LCY)", "Amount (LCY)", "Unrealized Amount (LCY)", "Unrealized Base (LCY)"; + } + key(Key8; "Transaction Type", "Document No.", "Document Type", "Bill-to/Pay-to No.") + { + } + key(Key9; "Applies-to Entry No.") + { + SumIndexFields = Base, Amount, "Unrealized Amount", "Unrealized Base", "Remaining Unrealized Amount", "Remaining Unrealized Base", "Base (LCY)", "Amount (LCY)", "Unrealized Amount (LCY)", "Unrealized Base (LCY)"; + } + key(Key10; "Bill-to/Pay-to No.", "Original Document No.", "Withholding Tax Revenue Type") + { + } + key(Key11; "Bill-to/Pay-to No.", "Withholding Tax Revenue Type", "Wthldg. Tax Prod. Post. Group") + { + } + } + + fieldgroups + { + fieldgroup(DropDown; "Entry No.", "Posting Date", "Document No.", Amount) + { + } + } + + var + GLSetup: Record "General Ledger Setup"; + GLSetupRead: Boolean; + + procedure GetCurrencyCode(): Code[10] + begin + if not GLSetupRead then begin + GLSetup.Get(); + GLSetupRead := true; + end; + exit(GLSetup."Additional Reporting Currency"); + end; +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WHTInvoicePostingBuffer.TableExt.al b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WHTInvoicePostingBuffer.TableExt.al new file mode 100644 index 0000000000..8b685f0680 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WHTInvoicePostingBuffer.TableExt.al @@ -0,0 +1,26 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using Microsoft.Finance.ReceivablesPayables; + +tableextension 6802 "WHT Invoice Posting Buffer" extends "Invoice Posting Buffer" +{ + fields + { + field(6784; "Wthldg. Tax Bus. Post. Group"; Code[20]) + { + Caption = 'Withholding Tax Bus. Post. Group'; + TableRelation = "Wthldg. Tax Bus. Post. Group"; + DataClassification = CustomerContent; + } + field(6785; "Wthldg. Tax Prod. Post. Group"; Code[20]) + { + Caption = 'Withholding Tax Prod. Post. Group'; + TableRelation = "Wthldg. Tax Prod. Post. Group"; + DataClassification = CustomerContent; + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WHTPurchTaxCrMemoPrinted.Codeunit.al b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WHTPurchTaxCrMemoPrinted.Codeunit.al new file mode 100644 index 0000000000..946260e518 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WHTPurchTaxCrMemoPrinted.Codeunit.al @@ -0,0 +1,21 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.Finance.WithholdingTax; + +using Microsoft.WithholdingTax; + +codeunit 6791 "WHT Purch. Tax Cr.Memo-Printed" +{ + Permissions = TableData "WHT Purch. Tax Cr. Memo Hdr." = rimd; + TableNo = "WHT Purch. Tax Cr. Memo Hdr."; + + trigger OnRun() + begin + Rec.Find(); + Rec."No. Printed" := Rec."No. Printed" + 1; + Rec.Modify(); + Commit(); + end; +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WHTPurchTaxInvPrinted.Codeunit.al b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WHTPurchTaxInvPrinted.Codeunit.al new file mode 100644 index 0000000000..d255e5c4ef --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WHTPurchTaxInvPrinted.Codeunit.al @@ -0,0 +1,21 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.Finance.WithholdingTax; + +using Microsoft.WithholdingTax; + +codeunit 6790 "WHT Purch. Tax Inv.-Printed" +{ + Permissions = TableData "WHT Purch. Tax Inv. Header" = rimd; + TableNo = "WHT Purch. Tax Inv. Header"; + + trigger OnRun() + begin + Rec.Find(); + Rec."No. Printed" := Rec."No. Printed" + 1; + Rec.Modify(); + Commit(); + end; +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WHTVATAmountLineExt.TableExt.al b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WHTVATAmountLineExt.TableExt.al new file mode 100644 index 0000000000..c6e8ab7e1c --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WHTVATAmountLineExt.TableExt.al @@ -0,0 +1,85 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +tableextension 6808 "WHT VAT Amount Line Ext" extends "VAT Amount Line" +{ + fields + { + field(6784; "WHT Full GST on Prepayment"; Boolean) + { + Caption = 'Full GST on Prepayment'; + } + field(6785; "WHT VAT Realized"; Decimal) + { + Caption = 'VAT Realized'; + } + field(6786; "WHT Amount Paid"; Decimal) + { + Caption = 'Amount Paid'; + } + field(6787; "WHT VAT Base (ACY)"; Decimal) + { + AutoFormatType = 1; + AutoFormatExpression = GetAdditionalReportingCurrencyCode(); + Caption = 'VAT Base (ACY)'; + Editable = false; + } + field(6788; "WHT VAT Amount (ACY)"; Decimal) + { + AutoFormatType = 1; + AutoFormatExpression = GetAdditionalReportingCurrencyCode(); + Caption = 'VAT Amount (ACY)'; + + trigger OnValidate() + begin + TestField("VAT %"); + TestField("WHT VAT Base (ACY)"); + if "WHT VAT Amount (ACY)" / "WHT VAT Base (ACY)" < 0 then + Error(MustbeNegativeErr, FieldCaption("WHT VAT Amount (ACY)")); + "WHT VAT Difference (ACY)" := "WHT VAT Amount (ACY)" - "WHT Calc. VAT Amount (ACY)"; + end; + } + field(6789; "WHT Amount Including VAT (ACY)"; Decimal) + { + AutoFormatType = 1; + AutoFormatExpression = GetAdditionalReportingCurrencyCode(); + Caption = 'Amount Including VAT (ACY)'; + Editable = false; + } + field(6790; "WHT Amount (ACY)"; Decimal) + { + AutoFormatType = 1; + AutoFormatExpression = GetAdditionalReportingCurrencyCode(); + Caption = 'Amount (ACY)'; + Editable = false; + } + field(6791; "WHT VAT Difference (ACY)"; Decimal) + { + AutoFormatType = 1; + AutoFormatExpression = GetAdditionalReportingCurrencyCode(); + Caption = 'VAT Difference (ACY)'; + Editable = false; + } + field(6792; "WHT Calc. VAT Amount (ACY)"; Decimal) + { + AutoFormatType = 1; + AutoFormatExpression = GetAdditionalReportingCurrencyCode(); + Caption = 'Calculated VAT Amount (ACY)'; + Editable = false; + } + } + local procedure GetAdditionalReportingCurrencyCode(): Code[10] + begin + if not GeneralLedgerSetupRead then begin + GeneralLedgerSetup.Get(); + GeneralLedgerSetupRead := true; + end; + exit(GeneralLedgerSetup."Additional Reporting Currency") + end; + + var + GeneralLedgerSetup: Record "General Ledger Setup"; + GeneralLedgerSetupRead: Boolean; + MustbeNegativeErr: Label '%1 must not be negative.', Comment = '%1-Amount'; +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingGenJnlLineExt.TableExt.al b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingGenJnlLineExt.TableExt.al new file mode 100644 index 0000000000..982aaa7d27 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingGenJnlLineExt.TableExt.al @@ -0,0 +1,146 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using Microsoft.Finance.GeneralLedger.Journal; +using Microsoft.Purchases.Vendor; + +tableextension 6793 "Withholding Gen. Jnl. Line Ext" extends "Gen. Journal Line" +{ + fields + { + field(6784; "Wthldg. Tax Bus. Post. Group"; Code[20]) + { + Caption = 'Withholding Tax Bus. Post. Group'; + TableRelation = "Wthldg. Tax Bus. Post. Group"; + DataClassification = CustomerContent; + } + field(6785; "Wthldg. Tax Prod. Post. Group"; Code[20]) + { + Caption = 'Withholding Tax Prod. Post. Group'; + TableRelation = "Wthldg. Tax Prod. Post. Group"; + DataClassification = CustomerContent; + } + field(6786; "Withholding Tax Absorb Base"; Decimal) + { + Caption = 'Withholding Tax Absorb Base'; + DataClassification = CustomerContent; + } + field(6787; "Withholding Tax Entry No."; Integer) + { + Caption = 'Withholding Tax Entry No.'; + DataClassification = CustomerContent; + } + field(6788; "Wthldg. Tax Report Line No."; Code[20]) + { + Caption = 'Withholding Tax Report Line No.'; + DataClassification = CustomerContent; + } + field(6789; "Skip Withholding Tax"; Boolean) + { + Caption = 'Skip Withholding Tax'; + DataClassification = CustomerContent; + } + field(6790; "WHT Certificate Printed"; Boolean) + { + Caption = 'Certificate Printed'; + DataClassification = CustomerContent; + } + field(6791; "Withholding Tax Payment"; Boolean) + { + Caption = 'Withholding Tax Payment'; + DataClassification = CustomerContent; + } + field(6792; "Is Withholding Tax"; Boolean) + { + Caption = 'Is Withholding Tax'; + DataClassification = CustomerContent; + } + field(6793; "WHT Interest Amount"; Decimal) + { + Caption = 'Interest Amount'; + DataClassification = CustomerContent; + + trigger OnValidate() + begin + if "Currency Code" = '' then + "WHT Interest Amount (LCY)" := "WHT Interest Amount" + else + "WHT Interest Amount (LCY)" := Round( + CurrExchRate.ExchangeAmtFCYToLCY( + "Posting Date", "Currency Code", + "WHT Interest Amount", "Currency Factor")); + end; + } + field(6794; "WHT Interest Amount (LCY)"; Decimal) + { + Caption = 'Interest Amount (LCY)'; + DataClassification = CustomerContent; + } + field(6795; "WHT VAT Base (ACY)"; Decimal) + { + AutoFormatType = 1; + Caption = 'VAT Base (ACY)'; + Editable = false; + DataClassification = CustomerContent; + } + field(6796; "WHT VAT Amount (ACY)"; Decimal) + { + AutoFormatType = 1; + Caption = 'VAT Amount (ACY)'; + DataClassification = CustomerContent; + } + field(6797; "WHT Amount Including VAT (ACY)"; Decimal) + { + AutoFormatType = 1; + Caption = 'Amount Including VAT (ACY)'; + Editable = false; + DataClassification = CustomerContent; + } + field(6798; "WHT Amount (ACY)"; Decimal) + { + AutoFormatType = 1; + Caption = 'Amount (ACY)'; + Editable = false; + DataClassification = CustomerContent; + } + field(6799; "WHT VAT Difference (ACY)"; Decimal) + { + AutoFormatType = 1; + Caption = 'VAT Difference (ACY)'; + Editable = false; + DataClassification = CustomerContent; + } + field(6800; "WHT Vendor Exchange Rate (ACY)"; Decimal) + { + Caption = 'Vendor Exchange Rate (ACY)'; + DecimalPlaces = 0 : 15; + DataClassification = CustomerContent; + + trigger OnValidate() + begin + Validate("Currency Code"); + end; + } + field(6801; "WHT Line Discount Amt. (ACY)"; Decimal) + { + AutoFormatType = 1; + Caption = 'Line Discount Amt. (ACY)'; + DataClassification = CustomerContent; + } + field(6802; "WHT Inv. Discount Amt. (ACY)"; Decimal) + { + AutoFormatType = 1; + Caption = 'Inv. Discount Amt. (ACY)'; + DataClassification = CustomerContent; + } + field(6803; "WHT Actual Vendor No."; Code[20]) + { + Caption = 'Actual Vendor No.'; + TableRelation = Vendor; + DataClassification = CustomerContent; + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingPurchHeaderExt.TableExt.al b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingPurchHeaderExt.TableExt.al new file mode 100644 index 0000000000..4c97a0bc37 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingPurchHeaderExt.TableExt.al @@ -0,0 +1,33 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using Microsoft.Purchases.Document; +using Microsoft.Purchases.Vendor; + +tableextension 6788 "Withholding Purch. Header Ext" extends "Purchase Header" +{ + fields + { + field(6784; "Wthldg. Tax Bus. Post. Group"; Code[20]) + { + Caption = 'Withholding Tax Bus. Post. Group'; + TableRelation = "Wthldg. Tax Bus. Post. Group"; + DataClassification = CustomerContent; + } + field(6785; "Withholding Tax Amount"; Decimal) + { + Caption = 'Withholding Tax Amount'; + DataClassification = CustomerContent; + Editable = false; + } + field(6793; "WHT Actual Vendor No."; Code[20]) + { + Caption = 'Actual Vendor No.'; + TableRelation = Vendor; + DataClassification = CustomerContent; + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingPurchLineExt.TableExt.al b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingPurchLineExt.TableExt.al new file mode 100644 index 0000000000..ff59b52a87 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingPurchLineExt.TableExt.al @@ -0,0 +1,31 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using Microsoft.Purchases.Document; + +tableextension 6789 "Withholding Purch. Line Ext" extends "Purchase Line" +{ + fields + { + field(6784; "Wthldg. Tax Bus. Post. Group"; Code[20]) + { + Caption = 'Withholding Tax Bus. Post. Group'; + TableRelation = "Wthldg. Tax Bus. Post. Group"; + DataClassification = CustomerContent; + } + field(6785; "Wthldg. Tax Prod. Post. Group"; Code[20]) + { + Caption = 'Withholding Tax Prod. Post. Group'; + TableRelation = "Wthldg. Tax Prod. Post. Group"; + DataClassification = CustomerContent; + } + field(6786; "Withholding Tax Absorb Base"; Decimal) + { + Caption = 'Withholding Tax Absorb Base'; + DataClassification = CustomerContent; + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingPurchOrdSubform.PageExt.al b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingPurchOrdSubform.PageExt.al new file mode 100644 index 0000000000..b606111a50 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingPurchOrdSubform.PageExt.al @@ -0,0 +1,29 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using Microsoft.Purchases.Document; + +pageextension 6787 "Withholding Purch Ord Subform" extends "Purchase Order Subform" +{ + layout + { + addafter("VAT Prod. Posting Group") + { + field("Wthldg. Tax Bus. Post. Group"; Rec."Wthldg. Tax Bus. Post. Group") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the Withholding Tax Business Posting Group is assigned from the Purchase Header Table and is used for all the Withholding Tax calculations.'; + Visible = false; + } + field("Wthldg. Tax Prod. Post. Group"; Rec."Wthldg. Tax Prod. Post. Group") + { + ApplicationArea = Basic, Suite; + ToolTip = 'Specifies the Withholding Tax Product Posting Group is assigned from the Product Entity selected in Purchase Line.'; + Visible = false; + } + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxCertBuffer.Table.al b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxCertBuffer.Table.al new file mode 100644 index 0000000000..88fe075ed3 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxCertBuffer.Table.al @@ -0,0 +1,42 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +table 6789 "Withholding Tax Cert. Buffer" +{ + Caption = 'Withholding Tax Certificate Buffer'; + DataClassification = CustomerContent; + + fields + { + field(1; "Line No."; Integer) + { + Caption = 'Line No.'; + DataClassification = SystemMetadata; + } + field(2; "Vendor No."; Code[20]) + { + Caption = 'Vendor No.'; + DataClassification = SystemMetadata; + Editable = false; + } + field(3; "Document No."; Code[20]) + { + Caption = 'Document No.'; + DataClassification = SystemMetadata; + } + } + + keys + { + key(Key1; "Line No.") + { + Clustered = true; + } + key(Key2; "Vendor No.", "Document No.") + { + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxEventHandler.Codeunit.al b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxEventHandler.Codeunit.al new file mode 100644 index 0000000000..a943aacf63 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxEventHandler.Codeunit.al @@ -0,0 +1,59 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Finance.GeneralLedger.Setup; +using System.Utilities; + +codeunit 6789 "Withholding Tax Event Handler" +{ + var + GeneralLedgerSetup: Record "General Ledger Setup"; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Calc. G/L Acc. Where-Used", OnShowExtensionPage, '', false, false)] + local procedure OnShowExtensionPage(GLAccountWhereUsed: Record "G/L Account Where-Used") + var + WithholdingTaxPostingSetup: Record "Withholding Tax Posting Setup"; + begin + if CheckWithholdingTaxDisabled() then + exit; + + case GLAccountWhereUsed."Table ID" of + Database::"Withholding Tax Posting Setup": + begin + WithholdingTaxPostingSetup."Wthldg. Tax Bus. Post. Group" := CopyStr(GLAccountWhereUsed."Key 1", 1, MaxStrLen(WithholdingTaxPostingSetup."Wthldg. Tax Bus. Post. Group")); + WithholdingTaxPostingSetup."Wthldg. Tax Prod. Post. Group" := CopyStr(GLAccountWhereUsed."Key 2", 1, MaxStrLen(WithholdingTaxPostingSetup."Wthldg. Tax Prod. Post. Group")); + Page.Run(Page::"Withholding Tax Posting Setup", WithholdingTaxPostingSetup); + end; + end; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Calc. G/L Acc. Where-Used", OnAfterFillTableBuffer, '', false, false)] + local procedure OnAfterFillTableBuffer(var TableBuffer: Record Integer) + begin + if CheckWithholdingTaxDisabled() then + exit; + + AddCountryTables(TableBuffer); + end; + + local procedure AddCountryTables(var TableBuffer: Record "Integer") + var + CalcGLAccWhereUsed: Codeunit "Calc. G/L Acc. Where-Used"; + begin + TableBuffer.Reset(); + CalcGLAccWhereUsed.AddTable(TableBuffer, Database::"Withholding Tax Posting Setup"); + end; + + local procedure CheckWithholdingTaxDisabled(): Boolean + begin + GeneralLedgerSetup.Get(); + if not GeneralLedgerSetup."Enable Withholding Tax" then + exit(true); + + exit(false); + end; +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxInvoiceMgmt.Codeunit.al b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxInvoiceMgmt.Codeunit.al new file mode 100644 index 0000000000..fd9a56d25b --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxInvoiceMgmt.Codeunit.al @@ -0,0 +1,1244 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using Microsoft.Finance.GeneralLedger.Journal; +using Microsoft.Finance.GeneralLedger.Ledger; +using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Finance.VAT.Setup; +using Microsoft.Foundation.BatchProcessing; +using Microsoft.Foundation.NoSeries; +using Microsoft.Foundation.Reporting; +using Microsoft.Purchases.History; +using Microsoft.Purchases.Payables; +using Microsoft.Purchases.Setup; +using Microsoft.Purchases.Vendor; +using Microsoft.Sales.History; +using Microsoft.Sales.Receivables; +using Microsoft.Sales.Setup; + +codeunit 6788 "Withholding Tax Invoice Mgmt." +{ + Permissions = TableData "Cust. Ledger Entry" = rimd, + TableData "Vendor Ledger Entry" = rimd, + TableData "G/L Register" = rimd, + TableData "Sales Invoice Header" = rimd, + TableData "Sales Cr.Memo Header" = rimd, + TableData "Purch. Inv. Header" = rimd, + TableData "Purch. Cr. Memo Hdr." = rimd; + + var + PurchTaxInvoiceHeader: Record "WHT Purch. Tax Inv. Header"; + PurchTaxCrMemoHeader: Record "WHT Purch. Tax Cr. Memo Hdr."; + PurchSetup: Record "Purchases & Payables Setup"; + GLSetup: Record "General Ledger Setup"; + VendorLedgerEntries: Record "Vendor Ledger Entry"; + VendorLedgerEntries1: Record "Vendor Ledger Entry"; + WHTAmount: Decimal; + TotAmt: Decimal; + Payment1: Decimal; + Payment2: Decimal; + ExpectedAmount: Decimal; + RemainingAmt: Decimal; + GenLineAmount: Decimal; + WHTUsed1: Boolean; + InvNo: Code[20]; + LastTaxInvoice: Code[20]; + WarningNoSeriesCode: Code[20]; + OnesText: array[20] of Text[30]; + TensText: array[10] of Text[30]; + ExponentText: array[5] of Text[30]; + PostTaxInvoiceLbl: Label 'Are you sure you wish to post the Tax Invoice(s)?'; + PostPrintTaxInvoiceLbl: Label 'Are you sure you wish to post and print the Tax Invoice(s)?'; + TaxInvoiceAlreadyPostedErr: Label 'Tax Invoice already posted for Invoice %1.', Comment = '%1 - Tax Invoice No.'; + TaxInvoicePostedLbl: Label 'Tax Invoice(s) %1 posted successfully.', Comment = '%1 - Tax Invoice No.'; + TaxInvoicePostedPrintLbl: Label 'Tax Invoice(s) %1 posted and printed successfully.', Comment = '%1 - Tax Invoice No.'; + PostTaxCrMemoLbl: Label 'Are you sure you wish to post the Tax Credit Memo(s)?'; + PostPrintTaxCrMemoLbl: Label 'Are you sure you wish to post and print the Tax Credit Memo(s)?'; + TaxCrMemoAlreadyPostedErr: Label 'Tax Credit Memo already posted for Credit Memo %1.', Comment = '%1 - Tax CrMemo No.'; + TaxCrMemoPostedLbl: Label 'Tax Credit Memo(s) %1 posted successfully.', Comment = '%1 - Tax CrMemo No.'; + TaxCrMemoPostPrintLbl: Label 'Tax Credit Memo(s) %1 posted and printed successfully.', Comment = '%1 - Tax CrMemo No.'; + CannotAssignNewOnDateErr: Label 'You cannot assign new numbers from the number series %1 on %2.', Comment = '%1=No. Series Code,%2=Date'; + CannotAssignNewErr: Label 'You cannot assign new numbers from the number series %1.', Comment = '%1=No. Series Code'; + CannotAssignNewBeforeDateErr: Label 'You cannot assign new numbers from the number series %1 on a date before %2.', Comment = '%1=No. Series Code,%2=Date'; + CannotAssignGreaterErr: Label 'You cannot assign numbers greater than %1 from the number series %2.', Comment = '%1=Last No.,%2=No. Series Code'; + MustbeNegativeLbl: Label 'must be positive.'; + OneLbl: Label 'ONE'; + TwoLbl: Label 'TWO'; + ThreeLbl: Label 'THREE'; + FourLbl: Label 'FOUR'; + FiveLbl: Label 'FIVE'; + SixLbl: Label 'SIX'; + SevenLbl: Label 'SEVEN'; + EightLbl: Label 'EIGHT'; + NineLbl: Label 'NINE'; + TenLbl: Label 'TEN'; + ElevenLbl: Label 'ELEVEN'; + TwelveLbl: Label 'TWELVE'; + ThirteenLbl: Label 'THIRTEEN'; + FourteenLbl: Label 'FOURTEEN'; + FifteenLbl: Label 'FIFTEEN'; + SixteenLbl: Label 'SIXTEEN'; + SeventeenLbl: Label 'SEVENTEEN'; + EighteenLbl: Label 'EIGHTEEN'; + NinteenLbl: Label 'NINETEEN'; + TwentyLbl: Label 'TWENTY'; + ThirtyLbl: Label 'THIRTY'; + FortyLbl: Label 'FORTY'; + FiftyLbl: Label 'FIFTY'; + SixtyLbl: Label 'SIXTY'; + SeventyLbl: Label 'SEVENTY'; + EightyLbl: Label 'EIGHTY'; + NinetyLbl: Label 'NINETY'; + ThousandLbl: Label 'THOUSAND'; + MillionLbl: Label 'MILLION'; + BillionLbl: Label 'BILLION'; + NuengLbl: Label 'NUENG'; + SawngLbl: Label 'SAWNG'; + SarmLbl: Label 'SARM'; + SiLbl: Label 'SI'; + HaLbl: Label 'HA'; + HokLbl: Label 'HOK'; + ChedLbl: Label 'CHED'; + PaedLbl: Label 'PAED'; + KowLbl: Label 'KOW'; + SibLbl: Label 'SIB'; + SibEdLbl: Label 'SIB-ED'; + SibSawngLbl: Label 'SIB-SAWNG'; + SibSarmLbl: Label 'SIB-SARM'; + SibSiLbl: Label 'SIB-SI'; + SibHaLbl: Label 'SIB-HA'; + SibHokLbl: Label 'SIB-HOK'; + SibChedLbl: Label 'SIB-CHED'; + SibPaedLbl: Label 'SIB-PAED'; + SibKowLbl: Label 'SIB-KOW'; + YiSibLbl: Label 'YI-SIB'; + SarmSibLbl: Label 'SARM-SIB'; + SiSibLbl: Label 'SI-SIB'; + HaSibLbl: Label 'HA-SIB'; + HokSibLbl: Label 'HOK-SIB'; + ChedSibLbl: Label 'CHED-SIB'; + PaedSibLbl: Label 'PAED-SIB'; + KowSibLbl: Label 'KOW-SIB'; + PhanLbl: Label 'PHAN'; + LaanLbl: Label 'LAAN?'; + PhaanLaanLbl: Label 'PHAN-LAAN?'; + HundredLbl: Label 'HUNDRED'; + ZeroLbl: Label 'ZERO'; + AndLbl: Label 'AND'; + + procedure ApplyVendInvoiceWHT(var VendLedgerEntry: Record "Vendor Ledger Entry"; var GenJnlLine: Record "Gen. Journal Line") + var + PurchTaxInvHeader: Record "WHT Purch. Tax Inv. Header"; + PurchTaxInvLine: Record "WHT Purch. Tax Inv. Line"; + begin + VendorLedgerEntries.Reset(); + if GenJnlLine."Applies-to Doc. No." = '' then begin + VendorLedgerEntries1.SetRange("Applies-to ID", GenJnlLine."Document No."); + if VendorLedgerEntries1.FindSet() then + repeat + VendorLedgerEntries1.CalcFields( + Amount, "Amount (LCY)", "Remaining Amount", "Remaining Amt. (LCY)", + "Original Amount", "Original Amt. (LCY)"); + if VendorLedgerEntries1."Rem. Amt for Withholding Tax" = 0 then + VendorLedgerEntries1."Rem. Amt for Withholding Tax" := VendorLedgerEntries1."Remaining Amt. (LCY)"; + RemainingAmt := RemainingAmt + VendorLedgerEntries1."Rem. Amt for Withholding Tax"; + if VendorLedgerEntries1."Document Type" = VendorLedgerEntries1."Document Type"::"Credit Memo" then + RemainingAmt := RemainingAmt + VendorLedgerEntries1."Rem. Amt for Withholding Tax"; + until VendorLedgerEntries1.Next() = 0; + + TotAmt := Abs(GenJnlLine.Amount); + + VendorLedgerEntries.SetRange("Applies-to ID", GenJnlLine."Document No."); + VendorLedgerEntries.SetRange("Document Type", VendorLedgerEntries."Document Type"::"Credit Memo"); + if VendorLedgerEntries.FindSet() then + repeat + VendorLedgerEntries.CalcFields( + Amount, "Amount (LCY)", "Remaining Amount", "Remaining Amt. (LCY)", + "Original Amount", "Original Amt. (LCY)"); + + if CheckPmtDisc(GenJnlLine."Posting Date", VendorLedgerEntries."Pmt. Discount Date", Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"), + Abs(VendorLedgerEntries."WHT Rem. Amt"), Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), Abs(TotAmt)) + then + TotAmt := TotAmt - VendorLedgerEntries."Original Pmt. Disc. Possible"; + + if (Abs(RemainingAmt) <= Abs(TotAmt)) or (Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") < Abs(TotAmt)) then begin + if CheckPmtDisc( + GenJnlLine."Posting Date", VendorLedgerEntries."Pmt. Discount Date", Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"), + Abs(VendorLedgerEntries."WHT Rem. Amt"), Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), Abs(TotAmt)) + then begin + GenJnlLine.Validate( + Amount, -Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax" + VendorLedgerEntries."Original Pmt. Disc. Possible")); + if VendorLedgerEntries."Document Type" <> VendorLedgerEntries."Document Type"::"Credit Memo" then + TotAmt := TotAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax"; + RemainingAmt := RemainingAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax" + VendorLedgerEntries."Original Pmt. Disc. Possible"; + end else begin + GenJnlLine.Validate(Amount, -Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax")); + if VendorLedgerEntries."Document Type" <> VendorLedgerEntries."Document Type"::"Credit Memo" then + TotAmt := TotAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax"; + RemainingAmt := RemainingAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax"; + end; + end else begin + if CheckPmtDisc( + GenJnlLine."Posting Date", VendorLedgerEntries."Pmt. Discount Date", Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"), + Abs(VendorLedgerEntries."WHT Rem. Amt"), Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), Abs(TotAmt)) + then + GenJnlLine.Validate(Amount, TotAmt + VendorLedgerEntries."Original Pmt. Disc. Possible") + else + GenJnlLine.Validate(Amount, TotAmt); + TotAmt := -1; + end; + + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::Invoice then + GenJnlLine."Applies-to Doc. Type" := GenJnlLine."Applies-to Doc. Type"::Invoice + else begin + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::"Credit Memo" then + GenJnlLine."Applies-to Doc. Type" := GenJnlLine."Applies-to Doc. Type"::"Credit Memo"; + RemainingAmt := RemainingAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax"; + TotAmt := TotAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + end; + + GenJnlLine."Applies-to Doc. No." := VendorLedgerEntries."Document No."; + TaxInvoicePurchase(GenJnlLine, false); + GenJnlLine."Withholding Tax Payment" := true; + VendLedgerEntry."Applies-to ID" := ''; + VendLedgerEntry.Modify(); + until (VendorLedgerEntries.Next() = 0) or (TotAmt = -1); + + VendorLedgerEntries.Reset(); + VendorLedgerEntries.SetRange("Applies-to ID", GenJnlLine."Document No."); + VendorLedgerEntries.SetFilter("Document Type", '<>%1', VendorLedgerEntries."Document Type"::"Credit Memo"); + if VendorLedgerEntries.FindSet() then + repeat + VendorLedgerEntries.CalcFields( + Amount, "Amount (LCY)", "Remaining Amount", "Remaining Amt. (LCY)", + "Original Amount", "Original Amt. (LCY)"); + + if CheckPmtDisc(GenJnlLine."Posting Date", VendorLedgerEntries."Pmt. Discount Date", Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"), + Abs(VendorLedgerEntries."WHT Rem. Amt"), Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), Abs(TotAmt)) + then + TotAmt := TotAmt - VendorLedgerEntries."Original Pmt. Disc. Possible"; + + if (Abs(RemainingAmt) <= Abs(TotAmt)) or (Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") < Abs(TotAmt)) then begin + if CheckPmtDisc( + GenJnlLine."Posting Date", VendorLedgerEntries."Pmt. Discount Date", Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"), + Abs(VendorLedgerEntries."WHT Rem. Amt"), Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), Abs(TotAmt)) + then begin + GenJnlLine.Validate( + Amount, Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax" - VendorLedgerEntries."Original Pmt. Disc. Possible")); + if VendorLedgerEntries."Document Type" <> VendorLedgerEntries."Document Type"::"Credit Memo" then + TotAmt := TotAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + RemainingAmt := RemainingAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax" + VendorLedgerEntries."Original Pmt. Disc. Possible"; + end else begin + GenJnlLine.Validate(Amount, Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax")); + if VendorLedgerEntries."Document Type" <> VendorLedgerEntries."Document Type"::"Credit Memo" then + TotAmt := TotAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + RemainingAmt := RemainingAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax"; + end; + end else begin + if CheckPmtDisc( + GenJnlLine."Posting Date", VendorLedgerEntries."Pmt. Discount Date", Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"), + Abs(VendorLedgerEntries."WHT Rem. Amt"), Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), Abs(TotAmt)) + then + GenJnlLine.Validate(Amount, TotAmt + VendorLedgerEntries."Original Pmt. Disc. Possible") + else + GenJnlLine.Validate(Amount, TotAmt); + TotAmt := -1; + end; + + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::Invoice then + GenJnlLine."Applies-to Doc. Type" := GenJnlLine."Applies-to Doc. Type"::Invoice + else begin + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::"Credit Memo" then + GenJnlLine."Applies-to Doc. Type" := GenJnlLine."Applies-to Doc. Type"::"Credit Memo"; + RemainingAmt := RemainingAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + TotAmt := TotAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + end; + + GenJnlLine."Applies-to Doc. No." := VendorLedgerEntries."Document No."; + TaxInvoicePurchase(GenJnlLine, false); + GenJnlLine."Withholding Tax Payment" := true; + VendLedgerEntry."Applies-to ID" := ''; + VendLedgerEntry.Modify(); + until (VendorLedgerEntries.Next() = 0) or (TotAmt = -1); + end else + TaxInvoicePurchase(GenJnlLine, false); + + if InvNo <> '' then begin + PurchTaxInvLine.SetRange("Document No.", InvNo); + if not PurchTaxInvLine.FindFirst() then + if PurchTaxInvHeader.Get(InvNo) then begin + PurchTaxInvHeader.Delete(); + PurchSetup.Get(); + if CheckTaxableNoSeries(VendLedgerEntry."Vendor No.", 0) then + ReverseGetNextNo(PurchSetup."WHT Posted Non Tax Inv. Nos.", PurchTaxInvHeader."Posting Date") + else + ReverseGetNextNo(PurchSetup."WHT Posted Tax Invoice Nos.", PurchTaxInvHeader."Posting Date"); + end; + end; + + PurchTaxInvHeader.SetRange("Posting Description", GenJnlLine."Document No."); + if PurchTaxInvHeader.FindFirst() then + BuildTaxPostBuffer(PurchTaxInvHeader."No.", PurchTaxInvHeader."Posting Description", 0); + end; + + procedure ApplyVendCreditWHT(var VendLedgerEntry: Record "Vendor Ledger Entry"; var GenJnlLine: Record "Gen. Journal Line") + var + PurchTaxCrMemoHeader: Record "WHT Purch. Tax Cr. Memo Hdr."; + PurchTaxCrMemoLine: Record "WHT Purch. Tax Cr. Memo Line"; + begin + VendorLedgerEntries.Reset(); + WHTUsed1 := false; + + if GenJnlLine."Applies-to Doc. No." = '' then begin + VendorLedgerEntries1.SetRange("Applies-to ID", GenJnlLine."Document No."); + if VendorLedgerEntries1.FindSet() then + repeat + VendorLedgerEntries1.CalcFields( + Amount, "Amount (LCY)", "Remaining Amount", "Remaining Amt. (LCY)", + "Original Amount", "Original Amt. (LCY)"); + if VendorLedgerEntries1."Rem. Amt for Withholding Tax" = 0 then + VendorLedgerEntries1."Rem. Amt for Withholding Tax" := VendorLedgerEntries1."Remaining Amt. (LCY)"; + RemainingAmt := RemainingAmt + VendorLedgerEntries1."Rem. Amt for Withholding Tax"; + if VendorLedgerEntries1."Document Type" = VendorLedgerEntries1."Document Type"::"Credit Memo" then + RemainingAmt := RemainingAmt + VendorLedgerEntries1."Rem. Amt for Withholding Tax"; + until VendorLedgerEntries1.Next() = 0; + + TotAmt := Abs(GenJnlLine.Amount); + + VendorLedgerEntries.SetRange("Applies-to ID", GenJnlLine."Document No."); + VendorLedgerEntries.SetRange("Document Type", VendorLedgerEntries."Document Type"::"Credit Memo"); + if VendorLedgerEntries.FindSet() then + repeat + VendorLedgerEntries.CalcFields( + Amount, "Amount (LCY)", "Remaining Amount", "Remaining Amt. (LCY)", + "Original Amount", "Original Amt. (LCY)"); + + if Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") >= (Abs(VendorLedgerEntries."WHT Rem. Amt") - Abs( + VendorLedgerEntries."Original Pmt. Disc. Possible")) + then + if (GenJnlLine."Posting Date" <= VendorLedgerEntries."Pmt. Discount Date") and + (Abs(TotAmt) >= (Abs(VendorLedgerEntries."WHT Rem. Amt") - Abs( + VendorLedgerEntries."Original Pmt. Disc. Possible"))) + then + TotAmt := TotAmt - VendorLedgerEntries."Original Pmt. Disc. Possible"; + + if (Abs(RemainingAmt) <= Abs(TotAmt)) or (Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") < Abs(TotAmt)) then begin + if (GenJnlLine."Posting Date" <= VendorLedgerEntries."Pmt. Discount Date") and + (Abs(TotAmt) >= (Abs(VendorLedgerEntries."WHT Rem. Amt") - Abs( + VendorLedgerEntries."Original Pmt. Disc. Possible"))) and + (Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") >= (Abs(VendorLedgerEntries."WHT Rem. Amt") - Abs( + VendorLedgerEntries."Original Pmt. Disc. Possible"))) + then begin + GenJnlLine.Validate( + Amount, -Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax" + VendorLedgerEntries."Original Pmt. Disc. Possible")); + if VendorLedgerEntries."Document Type" <> VendorLedgerEntries."Document Type"::"Credit Memo" then + TotAmt := TotAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax"; + RemainingAmt := RemainingAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax" + VendorLedgerEntries."Original Pmt. Disc. Possible"; + end else begin + GenJnlLine.Validate(Amount, -Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax")); + if VendorLedgerEntries."Document Type" <> VendorLedgerEntries."Document Type"::"Credit Memo" then + TotAmt := TotAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax"; + RemainingAmt := RemainingAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax"; + end; + end else begin + if (GenJnlLine."Posting Date" <= VendorLedgerEntries."Pmt. Discount Date") and + (Abs(TotAmt) >= (Abs(VendorLedgerEntries."WHT Rem. Amt") - Abs( + VendorLedgerEntries."Original Pmt. Disc. Possible"))) and + (Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") >= (Abs(VendorLedgerEntries."WHT Rem. Amt") - Abs( + VendorLedgerEntries."Original Pmt. Disc. Possible"))) + then + GenJnlLine.Validate(Amount, TotAmt + VendorLedgerEntries."Original Pmt. Disc. Possible") + else + GenJnlLine.Validate(Amount, TotAmt); + TotAmt := -1; + end; + + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::Invoice then + GenJnlLine."Applies-to Doc. Type" := GenJnlLine."Applies-to Doc. Type"::Invoice + else begin + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::"Credit Memo" then + GenJnlLine."Applies-to Doc. Type" := GenJnlLine."Applies-to Doc. Type"::"Credit Memo"; + RemainingAmt := RemainingAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax"; + TotAmt := TotAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + end; + + GenJnlLine."Applies-to Doc. No." := VendorLedgerEntries."Document No."; + TaxInvoicePurchaseCrMemo(GenJnlLine, WHTUsed1, false); + WHTUsed1 := true; + VendLedgerEntry."Applies-to ID" := ''; + VendLedgerEntry.Modify(); + until (VendorLedgerEntries.Next() = 0) or (TotAmt = -1); + end else + TaxInvoicePurchaseCrMemo(GenJnlLine, WHTUsed1, false); + if InvNo <> '' then begin + PurchTaxCrMemoLine.SetRange("Document No.", InvNo); + if not PurchTaxCrMemoLine.FindFirst() then + if PurchTaxCrMemoHeader.Get(InvNo) then begin + PurchTaxCrMemoHeader.Delete(); + PurchSetup.Get(); + if CheckTaxableNoSeries(VendLedgerEntry."Vendor No.", 0) then + ReverseGetNextNo(PurchSetup."WHT Pstd. Non Tax Cr. Memo Nos", PurchTaxCrMemoHeader."Posting Date") + else + ReverseGetNextNo(PurchSetup."WHT Posted Tax Credit Memo Nos", PurchTaxCrMemoHeader."Posting Date"); + end; + end; + + PurchTaxCrMemoHeader.SetRange("Posting Description", GenJnlLine."Document No."); + if PurchTaxCrMemoHeader.FindFirst() then + BuildTaxPostBuffer(PurchTaxCrMemoHeader."No.", PurchTaxCrMemoHeader."Posting Description", 2); + end; + + procedure PurchTaxInvPost(PurchInvHeader: Record "Purch. Inv. Header") TaxInvNo: Code[20] + var + PurchTaxInvHeader: Record "WHT Purch. Tax Inv. Header"; + PurchInvHeader2: Record "Purch. Inv. Header"; + PurchInvLine: Record "Purch. Inv. Line"; + PurchTaxInvLine: Record "WHT Purch. Tax Inv. Line"; + VATPostingSetup: Record "VAT Posting Setup"; + PurchTaxInvLine1: Record "WHT Purch. Tax Inv. Line"; + begin + PurchInvHeader2.Reset(); + PurchInvHeader2.SetRange("No.", PurchInvHeader."No."); + PurchInvHeader2.FindFirst(); + PurchInvLine.Reset(); + PurchInvLine.SetRange("Document No.", PurchInvHeader."No."); + PurchInvLine.FindFirst(); + PurchTaxInvHeader.Init(); + PurchTaxInvHeader.TransferFieldsFrom(PurchInvHeader2); + PurchTaxInvHeader."No." := ''; + PurchTaxInvHeader."Posting Date" := WorkDate(); + PurchTaxInvHeader.Insert(true); + repeat + if VATPostingSetup.Get(PurchInvLine."VAT Bus. Posting Group", PurchInvLine."VAT Prod. Posting Group") then + if VATPostingSetup."Unrealized VAT Type" = VATPostingSetup."Unrealized VAT Type"::" " then begin + PurchTaxInvLine.Init(); + PurchTaxInvLine.TransferFieldsFrom(PurchInvLine); + PurchTaxInvLine."Document No." := PurchTaxInvHeader."No."; + PurchTaxInvLine."Paid Amount Incl. VAT" := PurchTaxInvLine."Amount Including VAT"; + PurchTaxInvLine."Paid VAT" := PurchTaxInvLine."Amount Including VAT" - PurchTaxInvLine."VAT Base Amount"; + PurchTaxInvLine."External Document No." := PurchInvHeader."No."; + PurchTaxInvLine.Insert(); + end; + until PurchInvLine.Next() = 0; + + PurchTaxInvLine1.Reset(); + PurchTaxInvLine1.SetRange("Document No.", PurchTaxInvHeader."No."); + if not PurchTaxInvLine1.FindFirst() then begin + PurchTaxInvHeader.Delete(); + PurchSetup.Get(); + if CheckTaxableNoSeries(PurchInvHeader."Buy-from Vendor No.", 0) then + ReverseGetNextNo(PurchSetup."WHT Posted Non Tax Inv. Nos.", PurchTaxInvHeader."Posting Date") + else + ReverseGetNextNo(PurchSetup."WHT Posted Tax Invoice Nos.", PurchTaxInvHeader."Posting Date"); + end else begin + BuildTaxPostBuffer(PurchTaxInvHeader."No.", PurchTaxInvHeader."Posting Description", 0); + PurchInvHeader2."WHT Printed Tax Document" := true; + PurchInvHeader2.Modify(); + end; + end; + + procedure PurchTaxCrMemoPost(PurchCrMemoHeader: Record "Purch. Cr. Memo Hdr.") TaxInvNo: Code[20] + var + PurchTaxCrMemoHeader: Record "WHT Purch. Tax Cr. Memo Hdr."; + PurchCrMemoHeader2: Record "Purch. Cr. Memo Hdr."; + PurchCrMemoLine: Record "Purch. Cr. Memo Line"; + PurchTaxCrMemoLine: Record "WHT Purch. Tax Cr. Memo Line"; + VatPostingSetup: Record "VAT Posting Setup"; + PurchTaxCrMemoLine1: Record "WHT Purch. Tax Cr. Memo Line"; + begin + PurchCrMemoHeader2.Reset(); + PurchCrMemoHeader2.SetRange("No.", PurchCrMemoHeader."No."); + PurchCrMemoHeader2.FindFirst(); + PurchCrMemoLine.Reset(); + PurchCrMemoLine.SetRange("Document No.", PurchCrMemoHeader."No."); + PurchCrMemoLine.FindFirst(); + PurchTaxCrMemoHeader.Init(); + PurchTaxCrMemoHeader.TransferFieldsFrom(PurchCrMemoHeader2); + PurchTaxCrMemoHeader."No." := ''; + PurchTaxCrMemoHeader."Posting Date" := WorkDate(); + PurchTaxCrMemoHeader.Insert(true); + repeat + PurchTaxCrMemoLine.Init(); + if VatPostingSetup.Get(PurchCrMemoLine."VAT Bus. Posting Group", PurchCrMemoLine."VAT Prod. Posting Group") then + if VatPostingSetup."Unrealized VAT Type" = VatPostingSetup."Unrealized VAT Type"::" " then begin + PurchTaxCrMemoLine.TransferFieldsFrom(PurchCrMemoLine); + PurchTaxCrMemoLine."Document No." := PurchTaxCrMemoHeader."No."; + PurchTaxCrMemoLine."External Document No." := PurchCrMemoHeader."No."; + PurchTaxCrMemoLine.Insert(); + end; + until PurchCrMemoLine.Next() = 0; + + PurchTaxCrMemoLine1.Reset(); + PurchTaxCrMemoLine1.SetRange("Document No.", PurchTaxCrMemoHeader."No."); + if not PurchTaxCrMemoLine1.FindFirst() then begin + PurchTaxCrMemoHeader.Delete(); + PurchSetup.Get(); + if CheckTaxableNoSeries(PurchCrMemoHeader."Buy-from Vendor No.", 0) then + ReverseGetNextNo(PurchSetup."WHT Pstd. Non Tax Cr. Memo Nos", PurchTaxCrMemoHeader."Posting Date") + else + ReverseGetNextNo(PurchSetup."WHT Posted Tax Credit Memo Nos", PurchTaxCrMemoHeader."Posting Date"); + end else begin + BuildTaxPostBuffer(PurchTaxCrMemoHeader."No.", PurchTaxCrMemoHeader."Posting Description", 2); + PurchCrMemoHeader2."WHT Printed Tax Document" := true; + PurchCrMemoHeader2.Modify(); + end; + end; + + procedure PurchTaxInvPosted(PurchInvHeader: Record "Purch. Inv. Header"; Print: Boolean) TaxInvNo: Code[20] + var + PurchTaxInvHeader: Record "WHT Purch. Tax Inv. Header"; + ReportSelection: Record "Report Selections"; + PurchSetup: Record "Purchases & Payables Setup"; + TaxInvoiceNo: Code[20]; + begin + if PurchInvHeader."WHT Posted Tax Document" then + Error(TaxInvoiceAlreadyPostedErr, PurchInvHeader."No."); + + if Print then + if not Confirm(PostPrintTaxInvoiceLbl) then + exit; + + if not Print then + if not Confirm(PostTaxInvoiceLbl) then + exit; + + TaxInvoiceNo := PurchTaxInvPost(PurchInvHeader); + PurchInvHeader."WHT Posted Tax Document" := true; + + if Print then begin + PurchTaxInvoiceHeader.Get(TaxInvoiceNo); + ReportSelection.Reset(); + ReportSelection.SetRange(Usage, ReportSelection.Usage::"P. Withholding Tax Invoice"); + if ReportSelection.FindSet() then + repeat + REPORT.Run(ReportSelection."Report ID", PurchSetup."WHT Print Dialog", false, PurchTaxInvHeader); + until ReportSelection.Next() = 0; + PurchInvHeader."WHT Printed Tax Document" := true; + Message(TaxInvoicePostedPrintLbl, TaxInvoiceNo); + end else + Message(TaxInvoicePostedLbl, TaxInvoiceNo); + PurchInvHeader.Modify(); + end; + + procedure PurchTaxCrMemoPosted(PurchCrMemoHeader: Record "Purch. Cr. Memo Hdr."; Print: Boolean) TaxInvNo: Code[20] + var + PurchTaxCrMemoHeader: Record "WHT Purch. Tax Cr. Memo Hdr."; + ReportSelection: Record "Report Selections"; + PurchSetup: Record "Purchases & Payables Setup"; + TaxInvoiceNo: Code[20]; + begin + if PurchCrMemoHeader."WHT Posted Tax Document" then + Error(TaxCrMemoAlreadyPostedErr, PurchCrMemoHeader."No."); + + if Print then + if not Confirm(PostPrintTaxCrMemoLbl) then + exit; + + if not Print then + if not Confirm(PostTaxCrMemoLbl) then + exit; + + TaxInvoiceNo := PurchTaxCrMemoPost(PurchCrMemoHeader); + PurchCrMemoHeader."WHT Posted Tax Document" := true; + + if Print then begin + PurchTaxCrMemoHeader.Get(TaxInvoiceNo); + ReportSelection.Reset(); + ReportSelection.SetRange(Usage, ReportSelection.Usage::"P. Withholding Tax Credit Memo"); + if ReportSelection.FindSet() then + repeat + REPORT.Run(ReportSelection."Report ID", PurchSetup."WHT Print Dialog", false, PurchTaxCrMemoHeader); + until ReportSelection.Next() = 0; + PurchCrMemoHeader."WHT Printed Tax Document" := true; + Message(TaxCrMemoPostPrintLbl, TaxInvoiceNo); + end else + Message(TaxCrMemoPostedLbl, TaxInvoiceNo); + PurchCrMemoHeader.Modify(); + end; + + procedure TaxInvoicePurchase(var GenJnlLine: Record "Gen. Journal Line"; AmountWithDisc: Boolean) + var + WithholdingTaxEntry: Record "Withholding Tax Entry"; + WithholdingTaxEntry1: Record "Withholding Tax Entry"; + PurchInvHeader: Record "Purch. Inv. Header"; + PurchTaxInvHeader: Record "WHT Purch. Tax Inv. Header"; + PurchInvoiceLine: Record "Purch. Inv. Line"; + PurchTaxInvLine: Record "WHT Purch. Tax Inv. Line"; + VendLedgEntry: Record "Vendor Ledger Entry"; + VendLedgEntry1: Record "Vendor Ledger Entry"; + PurchCrMemoHeader: Record "Purch. Cr. Memo Hdr."; + PurchCrMemoLine: Record "Purch. Cr. Memo Line"; + VATPostingSetup: Record "VAT Posting Setup"; + WHTAmount1: Decimal; + LineNo: Integer; + begin + WHTAmount := 0; + + if GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::"Credit Memo" then begin + if not PurchCrMemoHeader.Get(GenJnlLine."Applies-to Doc. No.") then + exit; + + if not PurchCrMemoHeader."WHT Posted Tax Document" then + exit; + + if not GenJnlLine."Withholding Tax Payment" then begin + PurchTaxInvHeader.Init(); + PurchTaxInvHeader.TransferFields(PurchCrMemoHeader); + PurchTaxInvHeader."Posting Date" := GenJnlLine."Posting Date"; + PurchTaxInvHeader."Posting Description" := GenJnlLine."Document No."; + PurchTaxInvLine."External Document No." := PurchCrMemoHeader."No."; + PurchTaxInvHeader."No." := ''; + PurchTaxInvHeader.Insert(true); + end; + + PurchCrMemoLine.Reset(); + PurchCrMemoLine.SetRange("Document No.", GenJnlLine."Applies-to Doc. No."); + if PurchCrMemoLine.FindSet() then + repeat + WHTAmount := 0; + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetRange("Document No.", PurchCrMemoLine."Document No."); + WithholdingTaxEntry.SetRange("Applies-to Entry No.", 0); + if WithholdingTaxEntry.FindSet() then + repeat + WHTAmount := WHTAmount + WithholdingTaxEntry.Amount; + until WithholdingTaxEntry.Next() = 0; + + Payment1 := 0; + Payment2 := 0; + + PurchTaxInvHeader.SetRange("Posting Description", GenJnlLine."Document No."); + if PurchTaxInvHeader.FindFirst() then begin + PurchTaxInvLine.SetRange("Document No.", PurchTaxInvHeader."No."); + if PurchTaxInvLine.FindLast() then + LineNo := PurchTaxInvLine."Line No." + 10000; + end; + + if LineNo = 0 then + LineNo := 10000; + + VendLedgEntry.Reset(); + VendLedgEntry.SetRange("Document Type", VendLedgEntry."Document Type"::"Credit Memo"); + VendLedgEntry.SetRange("Document No.", PurchCrMemoLine."Document No."); + if VendLedgEntry.FindFirst() then begin + VendLedgEntry.CalcFields("Amount (LCY)", "Remaining Amt. (LCY)", Amount, "Remaining Amount"); + + PurchTaxInvLine.Init(); + if VATPostingSetup.Get(PurchCrMemoLine."VAT Bus. Posting Group", PurchCrMemoLine."VAT Prod. Posting Group") then + if VATPostingSetup."Unrealized VAT Type" <> VATPostingSetup."Unrealized VAT Type"::" " then begin + PurchTaxInvLine.TransferFieldsFrom(PurchCrMemoLine); + PurchTaxInvLine."Line No." := LineNo; + PurchTaxInvLine."Document No." := PurchTaxInvHeader."No."; + PurchTaxInvLine.Amount := -PurchTaxInvLine.Amount; + PurchTaxInvLine."Amount Including VAT" := -PurchTaxInvLine."Amount Including VAT"; + PurchTaxInvLine."Direct Unit Cost" := -PurchTaxInvLine."Direct Unit Cost"; + PurchTaxInvLine."Unit Cost (LCY)" := -PurchTaxInvLine."Unit Cost (LCY)"; + PurchTaxInvLine."Line Amount" := -PurchTaxInvLine."Line Amount"; + PurchTaxInvLine."VAT Base Amount" := -PurchTaxInvLine."VAT Base Amount"; + PurchTaxInvLine."External Document No." := PurchCrMemoHeader."No."; + if (GenJnlLine."Posting Date" <= VendLedgEntry."Pmt. Discount Date") and + (Abs(GenJnlLine.Amount) >= (Abs(VendLedgEntry."WHT Rem. Amt") - + Abs(VendLedgEntry."Original Pmt. Disc. Possible"))) and (not AmountWithDisc) + then + GenLineAmount := GenJnlLine.Amount + VendLedgEntry."Original Pmt. Disc. Possible" + else + GenLineAmount := GenJnlLine.Amount; + + ExpectedAmount := -VendLedgEntry.Amount; + PurchTaxInvLine."Paid Amount Incl. VAT" := Round(Abs(GenLineAmount) * + PurchCrMemoLine."Amount Including VAT" / ExpectedAmount); + PurchTaxInvLine."Paid VAT" := Round(Abs(GenLineAmount) + * (PurchCrMemoLine."Amount Including VAT" - PurchCrMemoLine."VAT Base Amount") + / ExpectedAmount); + + if PurchTaxInvLine."Paid VAT" <> 0 then + PurchTaxInvLine.Insert(); + + LineNo := LineNo + 10000; + end; + end; + until PurchCrMemoLine.Next() = 0; + end else begin + if not PurchInvHeader.Get(GenJnlLine."Applies-to Doc. No.") then + exit; + + if not PurchInvHeader."WHT Posted Tax Document" then + exit; + + if not GenJnlLine."Withholding Tax Payment" then begin + PurchTaxInvHeader.Init(); + PurchTaxInvHeader.TransferFieldsFrom(PurchInvHeader); + PurchTaxInvHeader."Posting Date" := GenJnlLine."Posting Date"; + PurchTaxInvHeader."Posting Description" := GenJnlLine."Document No."; + PurchTaxInvLine."External Document No." := PurchInvHeader."No."; + PurchTaxInvHeader."No." := ''; + PurchTaxInvHeader.Insert(true); + end; + + PurchInvoiceLine.Reset(); + PurchInvoiceLine.SetRange("Document No.", GenJnlLine."Applies-to Doc. No."); + if PurchInvoiceLine.FindSet() then + repeat + WHTAmount := 0; + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetRange("Document No.", PurchInvoiceLine."Document No."); + WithholdingTaxEntry.SetRange("Applies-to Entry No.", 0); + if WithholdingTaxEntry.FindSet() then + repeat + WHTAmount := WHTAmount + WithholdingTaxEntry.Amount; + until WithholdingTaxEntry.Next() = 0; + + Payment1 := 0; + Payment2 := 0; + + PurchCrMemoHeader.SetRange("Applies-to Doc. Type", PurchCrMemoHeader."Applies-to Doc. Type"::Invoice); + PurchCrMemoHeader.SetRange("Applies-to Doc. No.", PurchInvoiceLine."Document No."); + if PurchCrMemoHeader.FindFirst() then begin + VendLedgEntry1.SetRange("Document Type", VendLedgEntry1."Document Type"::"Credit Memo"); + VendLedgEntry1.SetRange("Document No.", PurchCrMemoHeader."No."); + if VendLedgEntry1.FindFirst() then + VendLedgEntry1.CalcFields("Amount (LCY)", "Remaining Amt. (LCY)", Amount, "Remaining Amount"); + + WHTAmount1 := 0; + WithholdingTaxEntry1.Reset(); + WithholdingTaxEntry1.SetRange("Document No.", PurchCrMemoHeader."No."); + WithholdingTaxEntry1.SetRange("Applies-to Entry No.", 0); + if WithholdingTaxEntry1.FindSet() then + repeat + WHTAmount1 := WHTAmount1 + WithholdingTaxEntry1.Amount; + until WithholdingTaxEntry1.Next() = 0; + WHTAmount := WHTAmount + WHTAmount1; + end; + + PurchTaxInvHeader.SetRange("Posting Description", GenJnlLine."Document No."); + if PurchTaxInvHeader.FindFirst() then begin + PurchTaxInvLine.SetRange("Document No.", PurchTaxInvHeader."No."); + if PurchTaxInvLine.FindLast() then + LineNo := PurchTaxInvLine."Line No." + 10000; + end; + + if LineNo = 0 then + LineNo := 10000; + + VendLedgEntry.Reset(); + VendLedgEntry.SetRange("Document Type", VendLedgEntry."Document Type"::Invoice); + VendLedgEntry.SetRange("Document No.", PurchInvoiceLine."Document No."); + if VendLedgEntry.FindFirst() then begin + VendLedgEntry.CalcFields("Amount (LCY)", "Remaining Amt. (LCY)", Amount, "Remaining Amount"); + PurchTaxInvLine.Init(); + if VATPostingSetup.Get(PurchInvoiceLine."VAT Bus. Posting Group", PurchInvoiceLine."VAT Prod. Posting Group") then + if VATPostingSetup."Unrealized VAT Type" <> VATPostingSetup."Unrealized VAT Type"::" " then begin + PurchTaxInvLine.TransferFieldsFrom(PurchInvoiceLine); + PurchTaxInvLine."Line No." := LineNo; + PurchTaxInvLine."Document No." := PurchTaxInvHeader."No."; + PurchTaxInvLine."External Document No." := PurchInvHeader."No."; + + if VendLedgEntry1."Amount (LCY)" = 0 then + VendLedgEntry1."WHT Rem. Amt" := 0; + + if (GenJnlLine."Posting Date" <= VendLedgEntry."Pmt. Discount Date") and + (Abs(GenJnlLine.Amount) >= (Abs(VendLedgEntry."WHT Rem. Amt" + VendLedgEntry1."WHT Rem. Amt") - + Abs(VendLedgEntry."Original Pmt. Disc. Possible"))) and (not AmountWithDisc) + then + GenLineAmount := GenJnlLine.Amount - VendLedgEntry."Original Pmt. Disc. Possible" + else + GenLineAmount := GenJnlLine.Amount; + + ExpectedAmount := -(VendLedgEntry.Amount + VendLedgEntry1.Amount); + PurchCrMemoLine.SetRange("Document No.", PurchCrMemoHeader."No."); + PurchCrMemoLine.SetRange(Type, PurchInvoiceLine.Type); + PurchCrMemoLine.SetRange("No.", PurchInvoiceLine."No."); + if PurchCrMemoLine.FindFirst() then begin + PurchTaxInvLine."Paid Amount Incl. VAT" := Round(Abs(GenLineAmount) * + (PurchInvoiceLine."Amount Including VAT" - PurchCrMemoLine."Amount Including VAT") / ExpectedAmount); + PurchTaxInvLine."Paid VAT" := Round(Abs(GenLineAmount) + * + (PurchInvoiceLine."Amount Including VAT" - + PurchInvoiceLine."VAT Base Amount" - PurchCrMemoLine."Amount Including VAT" + + PurchCrMemoLine."VAT Base Amount") / ExpectedAmount); + end else begin + PurchTaxInvLine."Paid Amount Incl. VAT" := Round(Abs(GenLineAmount) * + PurchInvoiceLine."Amount Including VAT" / ExpectedAmount); + PurchTaxInvLine."Paid VAT" := Round(Abs(GenLineAmount) + * (PurchInvoiceLine."Amount Including VAT" - PurchInvoiceLine."VAT Base Amount") + / ExpectedAmount); + end; + + if (GenJnlLine."Currency Code" <> WithholdingTaxEntry."Currency Code") and (WHTAmount <> 0) then + Error(''); + + if PurchTaxInvLine."Paid VAT" <> 0 then + PurchTaxInvLine.Insert(); + + LineNo := LineNo + 10000; + end; + end; + until PurchInvoiceLine.Next() = 0; + + InvNo := PurchTaxInvHeader."No."; + PurchInvHeader."WHT Printed Tax Document" := true; + PurchInvHeader.Modify(); + end; + end; + + procedure TaxInvoicePurchaseCrMemo(var GenJnlLine: Record "Gen. Journal Line"; WHTUsed: Boolean; AmountWithDisc: Boolean) + var + PurchTaxCrMemoHeader: Record "WHT Purch. Tax Cr. Memo Hdr."; + PurchTaxCrMemoLine: Record "WHT Purch. Tax Cr. Memo Line"; + VendLedgEntry: Record "Vendor Ledger Entry"; + PurchCrMemoHeader: Record "Purch. Cr. Memo Hdr."; + PurchCrMemoLine: Record "Purch. Cr. Memo Line"; + VATPostingSetup: Record "VAT Posting Setup"; + WithholdingTaxEntry: Record "Withholding Tax Entry"; + LineNo: Integer; + WHTAmount1: Decimal; + begin + if GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::"Credit Memo" then begin + if not PurchCrMemoHeader.Get(GenJnlLine."Applies-to Doc. No.") then + exit; + + if not PurchCrMemoHeader."WHT Posted Tax Document" then + exit; + + if GenJnlLine."Withholding Tax Payment" then + exit; + + if not WHTUsed then begin + PurchTaxCrMemoHeader.Init(); + PurchTaxCrMemoHeader.TransferFieldsFrom(PurchCrMemoHeader); + PurchTaxCrMemoHeader."Posting Date" := GenJnlLine."Posting Date"; + PurchTaxCrMemoHeader."Posting Description" := GenJnlLine."Document No."; + PurchTaxCrMemoLine."External Document No." := PurchCrMemoHeader."No."; + PurchTaxCrMemoHeader."No." := ''; + PurchTaxCrMemoHeader.Insert(true); + end; + + PurchCrMemoLine.Reset(); + PurchCrMemoLine.SetRange("Document No.", GenJnlLine."Applies-to Doc. No."); + if PurchCrMemoLine.FindSet() then + repeat + Payment1 := 0; + Payment2 := 0; + + PurchTaxCrMemoHeader.SetRange("Posting Description", GenJnlLine."Document No."); + if PurchTaxCrMemoHeader.FindFirst() then begin + PurchTaxCrMemoLine.Reset(); + PurchTaxCrMemoLine.SetRange("Document No.", PurchTaxCrMemoHeader."No."); + if PurchTaxCrMemoLine.FindLast() then + LineNo := PurchTaxCrMemoLine."Line No." + 10000; + end; + + if LineNo = 0 then + LineNo := 10000; + + VendLedgEntry.Reset(); + VendLedgEntry.SetRange("Document Type", VendLedgEntry."Document Type"::"Credit Memo"); + VendLedgEntry.SetRange("Document No.", PurchCrMemoLine."Document No."); + if VendLedgEntry.FindFirst() then begin + VendLedgEntry.CalcFields("Amount (LCY)", "Remaining Amt. (LCY)", Amount, "Remaining Amount"); + + PurchTaxCrMemoLine.Init(); + if VATPostingSetup.Get(PurchCrMemoLine."VAT Bus. Posting Group", PurchCrMemoLine."VAT Prod. Posting Group") then + if VATPostingSetup."Unrealized VAT Type" <> VATPostingSetup."Unrealized VAT Type"::" " then begin + PurchTaxCrMemoLine.TransferFieldsFrom(PurchCrMemoLine); + PurchTaxCrMemoLine."Line No." := LineNo; + PurchTaxCrMemoLine."Document No." := PurchTaxCrMemoHeader."No."; + PurchTaxCrMemoLine."External Document No." := PurchCrMemoHeader."No."; + WHTAmount := 0; + WHTAmount1 := 0; + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetRange("Document No.", PurchCrMemoHeader."No."); + WithholdingTaxEntry.SetFilter("Applies-to Entry No.", '%1', 0); + if WithholdingTaxEntry.FindSet() then + repeat + WHTAmount1 := WHTAmount1 + WithholdingTaxEntry."Unrealized Amount (LCY)"; + until WithholdingTaxEntry.Next() = 0; + + WHTAmount := WHTAmount - WHTAmount1; + + GLSetup.Get(); + if GLSetup."Manual Sales Wthldg. Tax Calc." then begin + if not GenJnlLine."Withholding Tax Payment" then begin + if (GenJnlLine."Posting Date" <= VendLedgEntry."Pmt. Discount Date") and + ((Abs(GenJnlLine.Amount) + Abs(WHTAmount)) >= (Abs(VendLedgEntry."WHT Rem. Amt") - + Abs(VendLedgEntry."Original Pmt. Disc. Possible"))) and + (not AmountWithDisc) + then + GenLineAmount := GenJnlLine.Amount - VendLedgEntry."Original Pmt. Disc. Possible" + else + GenLineAmount := GenJnlLine.Amount; + + ExpectedAmount := -VendLedgEntry.Amount + WHTAmount; + end; + end else begin + if (GenJnlLine."Posting Date" <= VendLedgEntry."Pmt. Discount Date") and + (Abs(GenJnlLine.Amount) >= (Abs(VendLedgEntry."WHT Rem. Amt") - + Abs(VendLedgEntry."Original Pmt. Disc. Possible"))) and (not AmountWithDisc) + then + GenLineAmount := GenJnlLine.Amount - VendLedgEntry."Original Pmt. Disc. Possible" + else + GenLineAmount := GenJnlLine.Amount; + + ExpectedAmount := -VendLedgEntry.Amount; + end; + PurchTaxCrMemoLine."Paid Amount Incl. VAT" := Round(Abs(GenLineAmount) * + PurchCrMemoLine."Amount Including VAT" / ExpectedAmount); + PurchTaxCrMemoLine."Paid VAT" := Round(Abs(GenLineAmount) + * (PurchCrMemoLine."Amount Including VAT" - PurchCrMemoLine."VAT Base Amount") + / ExpectedAmount); + + if PurchTaxCrMemoLine."Paid VAT" <> 0 then + PurchTaxCrMemoLine.Insert(); + + LineNo := LineNo + 10000; + end; + end; + until PurchCrMemoLine.Next() = 0; + end; + + InvNo := PurchTaxCrMemoHeader."No."; + PurchCrMemoHeader."WHT Printed Tax Document" := true; + PurchCrMemoHeader.Modify(); + end; + + procedure BuildTaxPostBuffer(SourceNo: Code[20]; OrigNo: Text[30]; Type: Option "Purchase Invoice","Sales Invoice","Purchase Credit Memo","Sales Credit Memo") + var + TaxPostBuffer: Record "Withholding Tax Posting Buffer"; + begin + TaxPostBuffer.DeleteAll(); + TaxPostBuffer.Init(); + TaxPostBuffer."Tax Invoice No." := SourceNo; + TaxPostBuffer."Invoice No." := OrigNo; + case Type of + Type::"Purchase Invoice": + TaxPostBuffer.Type := TaxPostBuffer.Type::"Purchase Invoice"; + Type::"Sales Invoice": + TaxPostBuffer.Type := TaxPostBuffer.Type::"Sales Invoice"; + Type::"Purchase Credit Memo": + TaxPostBuffer.Type := TaxPostBuffer.Type::"Purchase Credit Memo"; + Type::"Sales Credit Memo": + TaxPostBuffer.Type := TaxPostBuffer.Type::"Sales Credit Memo"; + end; + TaxPostBuffer.Insert(); + end; + + procedure PrintTaxInvoices(ScheduleInJobQueue: Boolean) + var + TaxInvBuffer: Record "Withholding Tax Posting Buffer"; + ReportSelection: Record "Report Selections"; + PurchSetup: Record "Purchases & Payables Setup"; + SalesSetup: Record "Sales & Receivables Setup"; + BatchPostingPrintMgt: Codeunit "Batch Posting Print Mgt."; + begin + GLSetup.Get(); + + if not GLSetup."WHT Print Tax Inv. on Posting" then + exit; + + PurchSetup.Get(); + SalesSetup.Get(); + + LastTaxInvoice := ''; + Commit(); + + TaxInvBuffer.Reset(); + TaxInvBuffer.SetRange(Type, TaxInvBuffer.Type::"Purchase Invoice"); + if TaxInvBuffer.FindSet() then + repeat + if TaxInvBuffer."Tax Invoice No." <> LastTaxInvoice then begin + PurchTaxInvoiceHeader.Reset(); + PurchTaxInvoiceHeader.SetRange("No.", TaxInvBuffer."Tax Invoice No."); + if PurchTaxInvoiceHeader.FindFirst() then begin + ReportSelection.Reset(); + ReportSelection.SetRange(Usage, ReportSelection.Usage::"P. Withholding Tax Invoice"); + if ReportSelection.FindSet() then + repeat + if ScheduleInJobQueue then + BatchPostingPrintMgt.SchedulePrintJobQueueEntry(PurchTaxInvoiceHeader, ReportSelection."Report ID", GLSetup."Report Output Type".AsInteger()) + else + REPORT.Run(ReportSelection."Report ID", PurchSetup."WHT Print Dialog", false, PurchTaxInvoiceHeader); + until ReportSelection.Next() = 0; + end; + end; + LastTaxInvoice := TaxInvBuffer."Tax Invoice No."; + until TaxInvBuffer.Next() = 0; + + LastTaxInvoice := ''; + + TaxInvBuffer.Reset(); + TaxInvBuffer.SetRange(Type, TaxInvBuffer.Type::"Purchase Credit Memo"); + if TaxInvBuffer.FindSet() then + repeat + if TaxInvBuffer."Tax Invoice No." <> LastTaxInvoice then begin + PurchTaxCrMemoHeader.Reset(); + PurchTaxCrMemoHeader.SetRange("No.", TaxInvBuffer."Tax Invoice No."); + if PurchTaxCrMemoHeader.FindFirst() then begin + ReportSelection.Reset(); + ReportSelection.SetRange(Usage, ReportSelection.Usage::"P. Withholding Tax Credit Memo"); + if ReportSelection.FindSet() then + repeat + if ScheduleInJobQueue then + BatchPostingPrintMgt.SchedulePrintJobQueueEntry(PurchTaxCrMemoHeader, ReportSelection."Report ID", GLSetup."Report Output Type".AsInteger()) + else + REPORT.Run(ReportSelection."Report ID", PurchSetup."WHT Print Dialog", false, PurchTaxCrMemoHeader); + until ReportSelection.Next() = 0; + end; + end; + + LastTaxInvoice := TaxInvBuffer."Tax Invoice No."; + until TaxInvBuffer.Next() = 0; + end; + + procedure CheckPmtDisc(PostingDate: Date; PmtDiscDate: Date; Amount1: Decimal; Amount2: Decimal; Amount3: Decimal; Amount4: Decimal): Boolean + begin + if (PostingDate <= PmtDiscDate) and (Amount1 >= (Amount2 - Amount3)) and (Amount4 >= (Amount2 - Amount3)) then + exit(true); + + exit(false); + end; + + procedure CheckTaxableNoSeries("No.": Code[20]; "Vend/Cust": Option Vendor,Customer): Boolean + var + Vendor: Record Vendor; + VendorPostingGroup: Record "Vendor Posting Group"; + begin + case "Vend/Cust" of + "Vend/Cust"::Vendor: + begin + Vendor.Reset(); + Vendor.SetFilter("No.", "No."); + if Vendor.FindFirst() then + VendorPostingGroup.SetFilter(Code, Vendor."Vendor Posting Group"); + if VendorPostingGroup.FindFirst() then + exit(VendorPostingGroup."WHT Non-Taxable"); + end; + end; + end; + + local procedure ReverseGetNextNo(NoSeriesCode: Code[20]; SeriesDate: Date): Code[20] + var + NoSeriesLine: Record "No. Series Line"; + NoSeries: Record "No. Series"; + NoSeriesCodeunit: Codeunit "No. Series"; + begin + if SeriesDate = 0D then + SeriesDate := WorkDate(); + + NoSeriesLine.LockTable(); + NoSeries.Get(NoSeriesCode); + if not NoSeriesCodeunit.GetNoSeriesLine(NoSeriesLine, NoSeriesCode, SeriesDate, false) then begin + NoSeriesLine.SetRange("Starting Date"); + if NoSeriesLine.FindSet() then + Error(CannotAssignNewOnDateErr, NoSeriesCode, SeriesDate); + Error(CannotAssignNewErr, NoSeriesCode); + end; + + NoSeriesLine.TestField(Implementation, "No. Series Implementation"::Normal); + + if NoSeries."Date Order" and (SeriesDate < NoSeriesLine."Last Date Used") then + Error(CannotAssignNewBeforeDateErr, NoSeries.Code, NoSeriesLine."Last Date Used"); + + NoSeriesLine."Last Date Used" := SeriesDate; + + if NoSeriesLine."Last No. Used" = '' then begin + NoSeriesLine.TestField("Starting No."); + NoSeriesLine."Last No. Used" := NoSeriesLine."Starting No."; + end else + NoSeriesLine."Last No. Used" := IncStr(NoSeriesLine."Last No. Used", -NoSeriesLine."Increment-by No."); + + if (NoSeriesLine."Ending No." <> '') and (NoSeriesLine."Last No. Used" > NoSeriesLine."Ending No.") then + Error(CannotAssignGreaterErr, NoSeriesLine."Ending No.", NoSeriesCode); + + if (NoSeriesLine."Ending No." <> '') and (NoSeriesLine."Warning No." <> '') and (NoSeriesLine."Last No. Used" >= NoSeriesLine."Warning No.") and (NoSeriesCode <> WarningNoSeriesCode) then begin + WarningNoSeriesCode := NoSeriesCode; + Message(CannotAssignGreaterErr, NoSeriesLine."Ending No.", NoSeriesCode); + end; + + NoSeriesLine.Validate(Open); + + NoSeriesLine.Modify(); + exit(NoSeriesLine."Last No. Used"); + end; + + procedure InitTextVariable() + begin + OnesText[1] := OneLbl; + OnesText[2] := TwoLbl; + OnesText[3] := ThreeLbl; + OnesText[4] := FourLbl; + OnesText[5] := FiveLbl; + OnesText[6] := SixLbl; + OnesText[7] := SevenLbl; + OnesText[8] := EightLbl; + OnesText[9] := NineLbl; + OnesText[10] := TenLbl; + OnesText[11] := ElevenLbl; + OnesText[12] := TwelveLbl; + OnesText[13] := ThirteenLbl; + OnesText[14] := FourteenLbl; + OnesText[15] := FifteenLbl; + OnesText[16] := SixteenLbl; + OnesText[17] := SeventeenLbl; + OnesText[18] := EighteenLbl; + OnesText[19] := NinteenLbl; + + TensText[1] := ''; + TensText[2] := TwentyLbl; + TensText[3] := ThirtyLbl; + TensText[4] := FortyLbl; + TensText[5] := FiftyLbl; + TensText[6] := SixtyLbl; + TensText[7] := SeventyLbl; + TensText[8] := EightyLbl; + TensText[9] := NinetyLbl; + + ExponentText[1] := ''; + ExponentText[2] := ThousandLbl; + ExponentText[3] := MillionLbl; + ExponentText[4] := BillionLbl; + end; + + procedure InitTextVariableTH() + begin + OnesText[1] := NuengLbl; + OnesText[2] := SawngLbl; + OnesText[3] := SarmLbl; + OnesText[4] := SiLbl; + OnesText[5] := HaLbl; + OnesText[6] := HokLbl; + OnesText[7] := ChedLbl; + OnesText[8] := PaedLbl; + OnesText[9] := KowLbl; + OnesText[10] := SibLbl; + OnesText[11] := SibEdLbl; + OnesText[12] := SibSawngLbl; + OnesText[13] := SibSarmLbl; + OnesText[14] := SibSiLbl; + OnesText[15] := SibHaLbl; + OnesText[16] := SibHokLbl; + OnesText[17] := SibChedLbl; + OnesText[18] := SibPaedLbl; + OnesText[19] := SibKowLbl; + + TensText[1] := ''; + TensText[2] := YiSibLbl; + TensText[3] := SarmSibLbl; + TensText[4] := SiSibLbl; + TensText[5] := HaSibLbl; + TensText[6] := HokSibLbl; + TensText[7] := ChedSibLbl; + TensText[8] := PaedSibLbl; + TensText[9] := KowSibLbl; + + ExponentText[1] := ''; + ExponentText[2] := PhanLbl; + ExponentText[3] := LaanLbl; + ExponentText[4] := PhaanLaanLbl; + end; + + procedure FormatNoText(var NoText: array[2] of Text[80]; No: Decimal; CurrencyCode: Code[10]) + var + PrintExponent: Boolean; + Ones: Integer; + Tens: Integer; + Hundreds: Integer; + Exponent: Integer; + NoTextIndex: Integer; + begin + Clear(NoText); + NoTextIndex := 1; + NoText[1] := '****'; + + if No < 1 then + AddToNoText(NoText, NoTextIndex, PrintExponent, ZeroLbl) + else + for Exponent := 4 downto 1 do begin + PrintExponent := false; + Ones := No div Power(1000, Exponent - 1); + Hundreds := Ones div 100; + Tens := (Ones mod 100) div 10; + Ones := Ones mod 10; + if Hundreds > 0 then begin + AddToNoText(NoText, NoTextIndex, PrintExponent, OnesText[Hundreds]); + AddToNoText(NoText, NoTextIndex, PrintExponent, HundredLbl); + end; + if Tens >= 2 then begin + AddToNoText(NoText, NoTextIndex, PrintExponent, TensText[Tens]); + if Ones > 0 then + AddToNoText(NoText, NoTextIndex, PrintExponent, OnesText[Ones]); + end else + if (Tens * 10 + Ones) > 0 then + AddToNoText(NoText, NoTextIndex, PrintExponent, OnesText[Tens * 10 + Ones]); + if PrintExponent and (Exponent > 1) then + AddToNoText(NoText, NoTextIndex, PrintExponent, ExponentText[Exponent]); + No := No - (Hundreds * 100 + Tens * 10 + Ones) * Power(1000, Exponent - 1); + end; + + AddToNoText(NoText, NoTextIndex, PrintExponent, AndLbl); + AddToNoText(NoText, NoTextIndex, PrintExponent, Format(No * 100) + '/100'); + + if CurrencyCode <> '' then + AddToNoText(NoText, NoTextIndex, PrintExponent, CurrencyCode); + end; + + procedure FormatNoTextTH(var NoText: array[2] of Text[80]; No: Decimal; CurrencyCode: Code[10]) + var + PrintExponent: Boolean; + Ones: Integer; + Tens: Integer; + Hundreds: Integer; + Exponent: Integer; + NoTextIndex: Integer; + begin + Clear(NoText); + NoTextIndex := 1; + NoText[1] := '****'; + + if No < 1 then + AddToNoText(NoText, NoTextIndex, PrintExponent, ZeroLbl) + else + for Exponent := 4 downto 1 do begin + PrintExponent := false; + Ones := No div Power(1000, Exponent - 1); + Hundreds := Ones div 100; + Tens := (Ones mod 100) div 10; + Ones := Ones mod 10; + if Hundreds > 0 then begin + AddToNoText(NoText, NoTextIndex, PrintExponent, OnesText[Hundreds]); + AddToNoText(NoText, NoTextIndex, PrintExponent, HundredLbl); + end; + if Tens >= 2 then begin + AddToNoText(NoText, NoTextIndex, PrintExponent, TensText[Tens]); + if Ones > 0 then + AddToNoText(NoText, NoTextIndex, PrintExponent, OnesText[Ones]); + end else + if (Tens * 10 + Ones) > 0 then + AddToNoText(NoText, NoTextIndex, PrintExponent, OnesText[Tens * 10 + Ones]); + if PrintExponent and (Exponent > 1) then + AddToNoText(NoText, NoTextIndex, PrintExponent, ExponentText[Exponent]); + No := No - (Hundreds * 100 + Tens * 10 + Ones) * Power(1000, Exponent - 1); + end; + + AddToNoText(NoText, NoTextIndex, PrintExponent, AndLbl); + AddToNoText(NoText, NoTextIndex, PrintExponent, Format(No * 100) + '/100'); + + if CurrencyCode <> '' then + AddToNoText(NoText, NoTextIndex, PrintExponent, CurrencyCode); + end; + + local procedure AddToNoText(var NoText: array[2] of Text[80]; var NoTextIndex: Integer; var PrintExponent: Boolean; AddText: Text[30]) + begin + PrintExponent := true; + + while StrLen(NoText[NoTextIndex] + ' ' + AddText) > MaxStrLen(NoText[1]) do begin + NoTextIndex := NoTextIndex + 1; + if NoTextIndex > ArrayLen(NoText) then + Error(MustbeNegativeLbl, AddText); + end; + + NoText[NoTextIndex] := DelChr(NoText[NoTextIndex] + ' ' + AddText, '<'); + end; +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxJnlSubscriber.Codeunit.al b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxJnlSubscriber.Codeunit.al new file mode 100644 index 0000000000..ca53940c2c --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxJnlSubscriber.Codeunit.al @@ -0,0 +1,1706 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using Microsoft.Bank.BankAccount; +using Microsoft.Bank.Check; +using Microsoft.Bank.Ledger; +using Microsoft.Bank.Reconciliation; +using Microsoft.Finance.Currency; +using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Finance.GeneralLedger.Journal; +using Microsoft.Finance.GeneralLedger.Ledger; +using Microsoft.Finance.GeneralLedger.Posting; +using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Finance.ReceivablesPayables; +using Microsoft.Finance.VAT.Ledger; +using Microsoft.Foundation.AuditCodes; +using Microsoft.Foundation.Reporting; +using Microsoft.Purchases.History; +using Microsoft.Purchases.Payables; +using Microsoft.Purchases.Setup; +using Microsoft.Purchases.Vendor; + +codeunit 6786 "Withholding Tax Jnl Subscriber" +{ + var + GeneralLedgerSetup: Record "General Ledger Setup"; + PaymentJournalPostApplyErr: Label 'Cannot post the payment journal because one or more journal lines must be applied to an invoice line when the Withholding Tax Realized Type %1', Comment = '%1 : Withholding Tax Realized Type'; + BankPaymentTypeMustNotBeFilledErr: Label 'Bank Payment Type must not be filled if Currency Code is different in Gen. Journal Line and Bank Account.'; + DocNoMustBeEnteredErr: Label 'Document No. must be entered when Bank Payment Type is %1.', Comment = '%1 - option value'; + CheckAlreadyExistsErr: Label 'Check %1 already exists for this Bank Account.', Comment = '%1 - document no.'; + + [EventSubscriber(ObjectType::Table, Database::"Gen. Journal Line", OnAfterDeleteEvent, '', false, false)] + local procedure DeleteWithholdingTaxEntry(var Rec: Record "Gen. Journal Line") + var + TempWithholdingTaxEntry: Record "Temp Withholding Tax Entry"; + begin + if CheckWithholdingTaxDisabled() then + exit; + + TempWithholdingTaxEntry.SetRange("Document Type", Rec."Document Type"); + TempWithholdingTaxEntry.SetRange("Original Document No.", Rec."Document No."); + if TempWithholdingTaxEntry.FindFirst() then + TempWithholdingTaxEntry.DeleteAll(); + end; + + [EventSubscriber(ObjectType::Table, Database::"Gen. Journal Line", OnAfterAccountNoOnValidateGetGLAccount, '', false, false)] + local procedure AssignGLAccValue(var GenJournalLine: Record "Gen. Journal Line"; var GLAccount: Record "G/L Account") + begin + if CheckWithholdingTaxDisabled() then + exit; + + GenJournalLine."Wthldg. Tax Bus. Post. Group" := GLAccount."Wthldg. Tax Bus. Post. Group"; + GenJournalLine."Wthldg. Tax Prod. Post. Group" := GLAccount."Wthldg. Tax Prod. Post. Group"; + end; + + [EventSubscriber(ObjectType::Table, Database::"Gen. Journal Line", OnAfterAccountNoOnValidateGetVendorAccount, '', false, false)] + local procedure AssignVendValue(var GenJournalLine: Record "Gen. Journal Line"; var Vendor: Record Vendor) + begin + if CheckWithholdingTaxDisabled() then + exit; + + GenJournalLine."Skip Withholding Tax" := Vendor."WHT ABN" <> ''; + GenJournalLine."Wthldg. Tax Bus. Post. Group" := Vendor."Wthldg. Tax Bus. Post. Group"; + GenJournalLine."Wthldg. Tax Prod. Post. Group" := ''; + end; + + [EventSubscriber(ObjectType::Table, Database::"Gen. Journal Line", OnAfterClearPostingGroups, '', false, false)] + local procedure ClearPostingGroups(var GenJournalLine: Record "Gen. Journal Line") + begin + if CheckWithholdingTaxDisabled() then + exit; + + GenJournalLine."Wthldg. Tax Bus. Post. Group" := ''; + GenJournalLine."Wthldg. Tax Prod. Post. Group" := ''; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnBeforeInitGLEntryForGLAcc, '', false, false)] + local procedure OnBeforeInitGLEntryForGLAcc(GenJnlLine: Record "Gen. Journal Line"; GLAcc: Record "G/L Account"; var GLEntry: Record "G/L Entry"; var TaxAmount: Decimal; var TaxAmountLCY: Decimal; var IsHandled: Boolean; var sender: Codeunit "Gen. Jnl.-Post Line") + begin + if CheckWithholdingTaxDisabled() then + exit; + + CalcGLAccWithholdingTax(GenJnlLine, TaxAmountLCY); + sender.InitGLEntry( + GenJnlLine, GLEntry, GenJnlLine."Account No.", GenJnlLine."Amount (LCY)" + TaxAmountLCY, + GenJnlLine."Source Currency Amount" + TaxAmountLCY, true, GenJnlLine."System-Created Entry", + CalcSourceCurrVATBaseAmount(GenJnlLine, TaxAmountLCY, sender)); + IsHandled := true; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnPostGLAccOnBeforeDeferralPosting, '', false, false)] + local procedure PostWithholdingTaxforGL(var GenJournalLine: Record "Gen. Journal Line"; sender: Codeunit "Gen. Jnl.-Post Line"; TaxAmount: Decimal; TaxAmountLCY: Decimal) + begin + if CheckWithholdingTaxDisabled() then + exit; + + PostGLAccWithholdingTax(GenJournalLine, TaxAmountLCY, sender); + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnPostVendOnAfterInitVendLedgEntry, '', false, false)] + local procedure OnPostVendOnAfterInitVendLedgEntry(var GenJnlLine: Record "Gen. Journal Line"; var VendLedgEntry: Record "Vendor Ledger Entry"; Vendor: Record Vendor; var TaxAmount: Decimal; var TaxAmountLCY: Decimal) + begin + if CheckWithholdingTaxDisabled() then + exit; + + CalcVendWithholdingTax(GenJnlLine, TaxAmountLCY, TaxAmount); + VendLedgEntry."Amount to Apply" := GenJnlLine.Amount; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnPostVendAfterTempDtldCVLedgEntryBufInit, '', false, false)] + local procedure OnPostVendAfterTempDtldCVLedgEntryBufInit(var GenJnlLine: Record "Gen. Journal Line"; var TempDtldCVLedgEntryBuf: Record "Detailed CV Ledg. Entry Buffer" temporary; TaxAmount: Decimal; TaxAmountLCY: Decimal) + var + GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line"; + begin + if CheckWithholdingTaxDisabled() then + exit; + + TempDtldCVLedgEntryBuf.Amount := TempDtldCVLedgEntryBuf.Amount - GenJnlLine."WHT Interest Amount" - GenJnlPostLine.ExchangeAmtLCYToFCY2(TaxAmount); + TempDtldCVLedgEntryBuf."Amount (LCY)" := TempDtldCVLedgEntryBuf."Amount (LCY)" - GenJnlLine."WHT Interest Amount (LCY)" - TaxAmountLCY; + if GenJnlLine."WHT Vendor Exchange Rate (ACY)" <> 0 then + TempDtldCVLedgEntryBuf."Additional-Currency Amount" := GenJnlLine."WHT Amount Including VAT (ACY)" - GenJnlLine."WHT Interest Amount" + else + TempDtldCVLedgEntryBuf."Additional-Currency Amount" := GenJnlLine.Amount; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnAfterInitGLRegister, '', false, false)] + local procedure OnAfterInitGLRegister(var GLRegister: Record "G/L Register") + begin + if CheckWithholdingTaxDisabled() then + exit; + + SetFromWithholdingEntryNoInGLRegister(GLRegister); + end; + + local procedure SetFromWithholdingEntryNoInGLRegister(var GLRegister: Record "G/L Register") + var + WithholdingTaxEntry: Record "Withholding Tax Entry"; + NextWHTEntryNo: Integer; + begin + if CheckWithholdingTaxDisabled() then + exit; + + if WithholdingTaxEntry.FindLast() then + NextWHTEntryNo := WithholdingTaxEntry."Entry No." + 1 + else + NextWHTEntryNo := 1; + + GLRegister."From Withholding Tax Entry No." := NextWHTEntryNo; + end; + + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnBeforePostingDeferral, '', false, false)] + local procedure OnAfterVendLedgEntryInsert(GenJnlLine: Record "Gen. Journal Line"; VendLedgEntry: Record "Vendor Ledger Entry"; TaxAmount: Decimal; TaxAmountLCY: Decimal; NextTransactionNo: Integer; var NextTaxEntryNo: Integer; var IsHandled: Boolean; sender: Codeunit "Gen. Jnl.-Post Line") + begin + if CheckWithholdingTaxDisabled() then + exit; + + PostVendWithholdingTax(GenJnlLine, VendLedgEntry, TaxAmount, TaxAmountLCY, NextTransactionNo, NextTaxEntryNo, sender); + end; + + local procedure CalcGLAccWithholdingTax(GenJnlLine: Record "Gen. Journal Line"; var WithholdingAmountLCY: Decimal) + var + GenJnlLine1: Record "Gen. Journal Line"; + CurrExchRate: Record "Currency Exchange Rate"; + WithholdingPostingSetup: Record "Withholding Tax Posting Setup"; + WithholdingTaxMgmt: Codeunit "Withholding Tax Mgmt."; + CurrFactor: Decimal; + begin + if CheckWithholdingTaxDisabled() then + exit; + + WithholdingAmountLCY := 0; + if GeneralLedgerSetup."Enable Withholding Tax" then + if not GenJnlLine."Skip Withholding Tax" then + if (GenJnlLine."Applies-to ID" = '') and (GenJnlLine."Applies-to Doc. No." = '') then begin + if (GenJnlLine."Document Type" = GenJnlLine."Document Type"::Payment) or + (GenJnlLine."Document Type" = GenJnlLine."Document Type"::Refund) + then + if WithholdingPostingSetup.Get( + GenJnlLine."Wthldg. Tax Bus. Post. Group", + GenJnlLine."Wthldg. Tax Prod. Post. Group") + then + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest then + if IsVendAcc(GenJnlLine) then begin + if GenJnlLine."Withholding Tax Absorb Base" <> 0 then + WithholdingAmountLCY := + Abs(Round(GenJnlLine."Withholding Tax Absorb Base" * WithholdingPostingSetup."Withholding Tax %" / 100)) + else + WithholdingAmountLCY := + Abs(Round(GenJnlLine.Amount * WithholdingPostingSetup."Withholding Tax %" / 100)); + + if GenJnlLine."Document Type" = GenJnlLine."Document Type"::Refund then + WithholdingAmountLCY := -Abs(WithholdingAmountLCY); + end; + end else + if (GenJnlLine."Applies-to ID" <> '') or (GenJnlLine."Applies-to Doc. No." <> '') then begin + GenJnlLine1.Reset(); + GenJnlLine1.Copy(GenJnlLine); + if GenJnlLine."Applies-to Doc. No." <> '' then + GenJnlLine1.SetRange("Applies-to Doc. No.", GenJnlLine."Applies-to Doc. No.") + else + GenJnlLine1.SetRange("Applies-to ID", GenJnlLine."Applies-to ID"); + + GenJnlLine1.SetRange("Account Type", GenJnlLine."Account Type"::Vendor); + if (GenJnlLine."Account Type" = GenJnlLine."Account Type"::Vendor) or + (GenJnlLine."Bal. Account Type" = GenJnlLine."Bal. Account Type"::Vendor) or + GenJnlLine1.FindFirst() + then begin + CurrFactor := GenJnlLine1."Currency Factor"; + + if GenJnlLine1."WHT Interest Amount" <> 0 then + GenJnlLine1.Validate(Amount, GenJnlLine1.Amount - GenJnlLine1."WHT Interest Amount"); + + if (GenJnlLine."Document Type" = GenJnlLine."Document Type"::Payment) or + (GenJnlLine."Document Type" = GenJnlLine."Document Type"::Refund) + then + if WithholdingPostingSetup.Get( + GenJnlLine."Wthldg. Tax Bus. Post. Group", + GenJnlLine."Wthldg. Tax Prod. Post. Group") + then begin + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest then begin + if GenJnlLine1.FindFirst() then + WithholdingTaxMgmt.CheckApplicationGenPurchWithholdingTax(GenJnlLine1); + WithholdingAmountLCY := + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + Abs( + WithholdingTaxMgmt.CalcVendExtraWithholdingForEarliest(GenJnlLine1)), CurrFactor); + end; + + if (WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Payment) and + (not GeneralLedgerSetup."Manual Sales Wthldg. Tax Calc.") + then + WithholdingAmountLCY := + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + Abs( + WithholdingTaxMgmt.WithholdingAmountJournal(GenJnlLine1, true)), CurrFactor); + end; + + if GenJnlLine."Document Type" = GenJnlLine."Document Type"::Refund then + WithholdingAmountLCY := -Abs(WithholdingAmountLCY); + end; + + WithholdingAmountLCY := Round(WithholdingAmountLCY); + end; + + if WithholdingPostingSetup.Get(GenJnlLine."Wthldg. Tax Bus. Post. Group", + GenJnlLine."Wthldg. Tax Prod. Post. Group") + then + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest then + if Abs(GenJnlLine.Amount) < WithholdingPostingSetup."Wthldg. Tax Min. Inv. Amount" then + WithholdingAmountLCY := 0; + end; + + local procedure CalcSourceCurrVATBaseAmount(var GenJnlLine: Record "Gen. Journal Line"; WithholdingAmountLCY: Decimal; var sender: Codeunit "Gen. Jnl.-Post Line"): Decimal + var + SourceCurrVATBaseAmount: Decimal; + begin + if (GenJnlLine."Source Currency Code" <> '') and ((not GenJnlLine."System-Created Entry") or GenJnlLine."Financial Void") then begin + if GenJnlLine."Source Curr. VAT Base Amount" <> 0 then + SourceCurrVATBaseAmount := GenJnlLine."Source Curr. VAT Base Amount" + sender.CalcAmountSourceCurrency(GenJnlLine, WithholdingAmountLCY) + else + SourceCurrVATBaseAmount := GenJnlLine."Source Currency Amount" + sender.CalcAmountSourceCurrency(GenJnlLine, WithholdingAmountLCY); + end else + SourceCurrVATBaseAmount := sender.CalcAmountSourceCurrency(GenJnlLine, GenJnlLine."VAT Base Amount (LCY)" + WithholdingAmountLCY); + + exit(SourceCurrVATBaseAmount); + end; + + + procedure IsVendAcc(GenJnlLine: Record "Gen. Journal Line"): Boolean + begin + exit((GenJnlLine."Account Type" = GenJnlLine."Account Type"::Vendor) or (GenJnlLine."Bal. Account Type" = GenJnlLine."Account Type"::Vendor)); + end; + + procedure PostGLAccWithholdingTax(GenJnlLine: Record "Gen. Journal Line"; WHTAmountLCY: Decimal; sender: Codeunit "Gen. Jnl.-Post Line") + var + WithholdingPostingSetup: Record "Withholding Tax Posting Setup"; + begin + if WHTAmountLCY = 0 then + exit; + + if GenJnlLine."Document Type" = GenJnlLine."Document Type"::Invoice then + exit; + + case true of + IsVendAcc(GenJnlLine): + if WithholdingPostingSetup.Get(GenJnlLine."Wthldg. Tax Bus. Post. Group", GenJnlLine."Wthldg. Tax Prod. Post. Group") then + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest then + Sender.CreateGLEntry( + GenJnlLine, WithholdingPostingSetup."Payable Wthldg. Tax Acc. Code", -WHTAmountLCY, -WHTAmountLCY, true); + end; + end; + + procedure CalcVendWithholdingTax(GenJnlLine: Record "Gen. Journal Line"; var WHTAmountLCY: Decimal; var WHTAmount: Decimal) + var + SourceCodeSetup: Record "Source Code Setup"; + GenJnlLine1: Record "Gen. Journal Line"; + CurrExchRate: Record "Currency Exchange Rate"; + GLSetup: Record "General Ledger Setup"; + WithholdingPostingSetup: Record "Withholding Tax Posting Setup"; + WithholdingTaxMgmt: Codeunit "Withholding Tax Mgmt."; + begin + WHTAmountLCY := 0; + SourceCodeSetup.Get(); + GLSetup.Get(); + + if ProcessSourceCode(GenJnlLine."Source Code", SourceCodeSetup) then begin + GenJnlLine1.Reset(); + GenJnlLine1.Copy(GenJnlLine); + + if GLSetup."Enable Withholding Tax" then + if not GenJnlLine1."Skip Withholding Tax" then + if (GenJnlLine1."Applies-to Doc. No." = '') and + (GenJnlLine1."Applies-to ID" = '') + then begin + if (((GenJnlLine1."Document Type" = GenJnlLine1."Document Type"::Invoice) or + (GenJnlLine1."Document Type" = GenJnlLine1."Document Type"::"Credit Memo")) and + ((GenJnlLine1."Account Type" = GenJnlLine1."Account Type"::"G/L Account") or + (GenJnlLine1."Bal. Account Type" = GenJnlLine1."Bal. Account Type"::"G/L Account"))) + then + if WithholdingPostingSetup.Get(GenJnlLine1."Wthldg. Tax Bus. Post. Group", GenJnlLine1."Wthldg. Tax Prod. Post. Group") then + if (WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Invoice) or + (WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest) + then begin + if GenJnlLine1."Withholding Tax Absorb Base" <> 0 then + WHTAmountLCY := + -Round( + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Posting Date", GenJnlLine."Currency Code", + Round(GenJnlLine1."Withholding Tax Absorb Base" * WithholdingPostingSetup."Withholding Tax %" / 100), GenJnlLine."Currency Factor")) + else + WHTAmountLCY := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Posting Date", GenJnlLine."Currency Code", + Round(GenJnlLine1.Amount * WithholdingPostingSetup."Withholding Tax %" / 100), GenJnlLine."Currency Factor")); + + WHTAmount := CalcDtldCVLedgEntryAmount(GenJnlLine, WithholdingPostingSetup."Withholding Tax %"); + end; + end else + if (((GenJnlLine1."Document Type" = GenJnlLine1."Document Type"::Invoice) or + (GenJnlLine1."Document Type" = GenJnlLine1."Document Type"::"Credit Memo")) and + ((GenJnlLine1."Account Type" = GenJnlLine1."Account Type"::"G/L Account") or + (GenJnlLine1."Bal. Account Type" = GenJnlLine1."Bal. Account Type"::"G/L Account"))) + then + if WithholdingPostingSetup.Get(GenJnlLine1."Wthldg. Tax Bus. Post. Group", GenJnlLine1."Wthldg. Tax Prod. Post. Group") then begin + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest then begin + GenJnlLine1.Reset(); + GenJnlLine1.Copy(GenJnlLine); + if GenJnlLine1.FindFirst() then + WithholdingTaxMgmt.CheckApplicationGenPurchWithholdingTax(GenJnlLine1); + + WHTAmountLCY := Round(WithholdingTaxMgmt.CalcVendExtraWithholdingForEarliest(GenJnlLine1)); + WHTAmount := WHTAmountLCY; + end; + + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Invoice then begin + GenJnlLine1.Reset(); + GenJnlLine1.Copy(GenJnlLine); + if GenJnlLine1.FindFirst() then + WithholdingTaxMgmt.CheckApplicationGenPurchWithholdingTax(GenJnlLine1); + + if GenJnlLine1."Withholding Tax Absorb Base" <> 0 then + WHTAmountLCY := + -Round( + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Posting Date", GenJnlLine."Currency Code", + Round(GenJnlLine1."Withholding Tax Absorb Base" * WithholdingPostingSetup."Withholding Tax %" / 100), GenJnlLine."Currency Factor")) + else + WHTAmountLCY := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Posting Date", GenJnlLine."Currency Code", + Round(GenJnlLine1.Amount * WithholdingPostingSetup."Withholding Tax %" / 100), GenJnlLine."Currency Factor")); + + WHTAmount := CalcDtldCVLedgEntryAmount(GenJnlLine, WithholdingPostingSetup."Withholding Tax %"); + end; + end; + + if GenJnlLine1."Document Type" = GenJnlLine1."Document Type"::Invoice then begin + WHTAmountLCY := -Abs(WHTAmountLCY); + WHTAmount := -Abs(WHTAmount); + end else begin + WHTAmountLCY := Abs(WHTAmountLCY); + WHTAmount := Abs(WHTAmount); + end; + end; + + if WithholdingPostingSetup.Get(GenJnlLine."Wthldg. Tax Bus. Post. Group", GenJnlLine."Wthldg. Tax Prod. Post. Group") then + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest then + if GenJnlLine.Amount < WithholdingPostingSetup."Wthldg. Tax Min. Inv. Amount" then + WHTAmountLCY := 0; + end; + + procedure ProcessSourceCode(SourceCode: Code[10]; SourceCodeSetup: Record "Source Code Setup"): Boolean + begin + exit(SourceCode in [SourceCodeSetup."Payment Journal", + SourceCodeSetup."Purchase Journal", + SourceCodeSetup."Sales Journal", + SourceCodeSetup."Cash Receipt Journal", + SourceCodeSetup."General Journal"]); + end; + + procedure PostVendWithholdingTax(GenJnlLine: Record "Gen. Journal Line"; VendLedgEntry: Record "Vendor Ledger Entry"; WithholdingAmount: Decimal; WithholdingAmountLCY: Decimal; NextTransactionNo: Integer; var NextWHTEntryNo: Integer; sender: Codeunit "Gen. Jnl.-Post Line") + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJnlLine1, GenJnlLine2 : Record "Gen. Journal Line"; + SourceCodeSetup: Record "Source Code Setup"; + WithholdingPostingSetup: Record "Withholding Tax Posting Setup"; + GLSetup: Record "General Ledger Setup"; + WithholdingTaxEntry: Record "Withholding Tax Entry"; + WithholdingTaxMgmt: Codeunit "Withholding Tax Mgmt."; + KeepWHTEntryNo: Integer; + HadWHTEntryNo: Boolean; + begin + if not WithholdingPostingSetup.Get(GenJnlLine."Wthldg. Tax Bus. Post. Group", GenJnlLine."Wthldg. Tax Prod. Post. Group") then + exit; + + WithholdingPostingSetup.Get(GenJnlLine."Wthldg. Tax Bus. Post. Group", GenJnlLine."Wthldg. Tax Prod. Post. Group"); + + GenJnlLine1.Reset(); + GenJnlLine1.Copy(GenJnlLine); + if WithholdingAmountLCY <> 0 then + if (GenJnlLine1."Document Type" = GenJnlLine1."Document Type"::Invoice) or + (GenJnlLine1."Document Type" = GenJnlLine1."Document Type"::"Credit Memo") + then + if (WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Invoice) or + (WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest) + then + sender.CreateGLEntry( + GenJnlLine, WithholdingPostingSetup."Payable Wthldg. Tax Acc. Code", WithholdingAmountLCY, WithholdingAmountLCY, true); + + SourceCodeSetup.Get(); + GLSetup.Get(); + + if GenJnlLine."Source Code" <> SourceCodeSetup."Financially Voided Check" then begin + GenJnlLine1.Reset(); + if GLSetup."Enable Withholding Tax" then + if IsAboveWithholdingMinInvAmount(GenJnlLine) then begin + if (GenJnlLine."Applies-to Doc. No." <> '') or (GenJnlLine."Applies-to ID" <> '') then begin + GenJnlLine1.Copy(GenJnlLine); + if GenJnlLine1."WHT Interest Amount" <> 0 then + GenJnlLine1.Validate(Amount, GenJnlLine1.Amount - GenJnlLine1."WHT Interest Amount"); + + if not GenJnlLine."Skip Withholding Tax" then begin + KeepWHTEntryNo := NextWHTEntryNo; + case GenJnlLine."Document Type" of + GenJnlLine."Document Type"::"Credit Memo": + begin + if ProcessSourceCode(GenJnlLine."Source Code", SourceCodeSetup) then + if WithholdingPostingSetup.Get(GenJnlLine."Wthldg. Tax Bus. Post. Group", GenJnlLine."Wthldg. Tax Prod. Post. Group") then + if (WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Invoice) or + (WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest) + then begin + GenJnlLine2.Reset(); + GenJnlLine2.Copy(GenJnlLine); + GenJnlLine2.Amount := -Abs(GenJnlLine2.Amount); + GenJnlLine2."Withholding Tax Absorb Base" := -Abs(GenJnlLine2."Withholding Tax Absorb Base"); + NextWHTEntryNo := WithholdingTaxMgmt.InsertVendJournalWithholdingTax(GenJnlLine2); + if WithholdingTaxEntry.Get(NextWHTEntryNo - 1) then begin + WithholdingTaxEntry."Transaction No." := NextTransactionNo; + WithholdingTaxEntry.Modify(); + end; + end; + + if SourceCodeSetup.Purchases = GenJnlLine."Source Code" then + UpdateWithholdingEntryTransaction(GenJnlLine."Document No.", NextTransactionNo); + end; + + GenJnlLine."Document Type"::Payment: + if WithholdingPostingSetup.Get(GenJnlLine."Wthldg. Tax Bus. Post. Group", GenJnlLine."Wthldg. Tax Prod. Post. Group") then begin + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Payment then begin + NextWHTEntryNo := WithholdingTaxMgmt.ApplyVendInvoiceWHT(VendLedgEntry, GenJnlLine1); + if NextWHTEntryNo <> -1 then + HadWHTEntryNo := true + else + NextWHTEntryNo := KeepWHTEntryNo; + end; + + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest then begin + NextWHTEntryNo := WithholdingTaxMgmt.InsertVendJournalWithholdingTax(GenJnlLine); + if WithholdingTaxEntry.Get(NextWHTEntryNo - 1) then begin + WithholdingTaxEntry."Transaction No." := NextTransactionNo; + WithholdingTaxEntry.Modify(); + end; + end; + end; + + GenJnlLine."Document Type"::Refund: + if GLSetup."Manual Sales Wthldg. Tax Calc." then begin + if GenJnlLine."Withholding Tax Payment" then + NextWHTEntryNo := WithholdingTaxMgmt.ProcessManualReceipt( + GenJnlLine1, VendLedgEntry."Transaction No.", VendLedgEntry."Entry No.", 0); + end else + if WithholdingPostingSetup.Get(GenJnlLine."Wthldg. Tax Bus. Post. Group", GenJnlLine."Wthldg. Tax Prod. Post. Group") then begin + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Payment then begin + NextWHTEntryNo := WithholdingTaxMgmt.ApplyVendInvoiceWHT(VendLedgEntry, GenJnlLine1); + if NextWHTEntryNo <> -1 then + HadWHTEntryNo := true + else + NextWHTEntryNo := KeepWHTEntryNo; + end; + + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest then begin + NextWHTEntryNo := WithholdingTaxMgmt.InsertVendJournalWithholdingTax(GenJnlLine); + if WithholdingTaxEntry.Get(NextWHTEntryNo - 1) then begin + WithholdingTaxEntry."Transaction No." := NextTransactionNo; + WithholdingTaxEntry.Modify(); + end; + end; + end; + + GenJnlLine."Document Type"::Invoice: + begin + if ProcessSourceCode(GenJnlLine."Source Code", SourceCodeSetup) then + if WithholdingPostingSetup.Get(GenJnlLine."Wthldg. Tax Bus. Post. Group", GenJnlLine."Wthldg. Tax Prod. Post. Group") then + if (WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Invoice) or + (WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest) + then begin + GenJnlLine2.Reset(); + GenJnlLine2.Copy(GenJnlLine); + GenJnlLine2.Amount := -Abs(GenJnlLine2.Amount); + GenJnlLine2."Withholding Tax Absorb Base" := -Abs(GenJnlLine2."Withholding Tax Absorb Base"); + NextWHTEntryNo := WithholdingTaxMgmt.InsertVendJournalWithholdingTax(GenJnlLine2); + if WithholdingTaxEntry.Get(NextWHTEntryNo - 1) then begin + WithholdingTaxEntry."Transaction No." := NextTransactionNo; + WithholdingTaxEntry.Modify(); + end; + end; + + if SourceCodeSetup.Purchases = GenJnlLine."Source Code" then + UpdateWithholdingEntryTransaction(GenJnlLine."Document No.", NextTransactionNo); + end; + end; + end; + + GenJournalTemplate.SetRange(Type, GenJournalTemplate.Type::Purchases); + if GenJournalTemplate.FindFirst() then + if GenJnlLine."Journal Template Name" = GenJournalTemplate.Name then begin + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetRange("Document Type", WithholdingTaxEntry."Document Type"::Payment); + WithholdingTaxEntry.SetRange("Document No.", GenJnlLine."Document No."); + WithholdingTaxEntry.SetRange("Bill-to/Pay-to No.", GenJnlLine."Account No."); + if WithholdingTaxEntry.FindSet() then + repeat + WithholdingPostingSetup.Get(WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + WithholdingPostingSetup.TestField("Payable Wthldg. Tax Acc. Code"); + sender.CreateGLEntry( + GenJnlLine, WithholdingPostingSetup."Payable Wthldg. Tax Acc. Code", -WithholdingTaxEntry."Amount (LCY)", GenJnlLine."Source Currency Amount", true); + until WithholdingTaxEntry.Next() = 0; + end; + end else begin + KeepWHTEntryNo := NextWHTEntryNo; + + case GenJnlLine."Document Type" of + GenJnlLine."Document Type"::Invoice, + GenJnlLine."Document Type"::"Credit Memo": + begin + if ProcessSourceCode(GenJnlLine."Source Code", SourceCodeSetup) then begin + GenJnlLine2.Reset(); + GenJnlLine2.Copy(GenJnlLine); + GenJnlLine2."Withholding Tax Absorb Base" := -Abs(GenJnlLine2."Withholding Tax Absorb Base"); + NextWHTEntryNo := WithholdingTaxMgmt.InsertVendJournalWithholdingTax(GenJnlLine2); + end; + + UpdateWithholdingEntryTransaction(GenJnlLine."Document No.", NextTransactionNo); + end; + + GenJnlLine."Document Type"::Payment, + GenJnlLine."Document Type"::Refund: + if WithholdingPostingSetup.Get(GenJnlLine."Wthldg. Tax Bus. Post. Group", GenJnlLine."Wthldg. Tax Prod. Post. Group") then + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest then begin + NextWHTEntryNo := WithholdingTaxMgmt.InsertVendJournalWithholdingTax(GenJnlLine); + if WithholdingTaxEntry.Get(NextWHTEntryNo - 1) then begin + WithholdingTaxEntry."Transaction No." := NextTransactionNo; + WithholdingTaxEntry.Modify(); + end; + end; + + GenJnlLine."Document Type"::" ": + NextWHTEntryNo := KeepWHTEntryNo; + end; + end; + + if NextWHTEntryNo = 0 then + NextWHTEntryNo := KeepWHTEntryNo; + + PostVendWHTTaxInv(GenJnlLine, VendLedgEntry); + end; + + if GenJnlLine."Applies-to ID" <> '' then begin + VendLedgEntry.Reset(); + VendLedgEntry.SetCurrentKey("Vendor No.", "Applies-to ID", Open, Positive, "Due Date"); + VendLedgEntry.SetRange("Vendor No.", GenJnlLine."Account No."); + VendLedgEntry.SetRange("Applies-to ID", GenJnlLine."Applies-to ID"); + VendLedgEntry.SetRange("Amount to Apply", 0); + VendLedgEntry.ModifyAll("Applies-to ID", ''); + end; + end; + end; + + procedure UpdateWithholdingEntryTransaction(DocNo: Code[20]; NextTransactionNo: Integer) + var + WithholdingTaxEntry: Record "Withholding Tax Entry"; + WithholdingPostingSetup: Record "Withholding Tax Posting Setup"; + begin + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetCurrentKey("Document No.", "Posting Date"); + WithholdingTaxEntry.SetRange("Document No.", DocNo); + if WithholdingTaxEntry.FindSet() then + repeat + WithholdingPostingSetup.Get(WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if (WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Invoice) or + (WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest) + then begin + WithholdingTaxEntry."Transaction No." := NextTransactionNo; + WithholdingTaxEntry.Modify(); + end; + until WithholdingTaxEntry.Next() = 0; + end; + + local procedure CalcDtldCVLedgEntryAmount(GenJnlLine: Record "Gen. Journal Line"; WithholdingTaxPercent: Decimal): Decimal + var + GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line"; + begin + if GenJnlLine."Withholding Tax Absorb Base" <> 0 then + exit(GenJnlPostLine.ExchangeAmtLCYToFCY2(-Round(GenJnlLine."Withholding Tax Absorb Base" * WithholdingTaxPercent / 100))); + + exit(GenJnlPostLine.ExchangeAmtLCYToFCY2(Round(GenJnlLine.Amount * WithholdingTaxPercent / 100))); + end; + + local procedure IsAboveWithholdingMinInvAmount(GenJnlLine: Record "Gen. Journal Line"): Boolean + var + WithholdingPostingSetup: Record "Withholding Tax Posting Setup"; + begin + if not (GenJnlLine."Document Type" in [GenJnlLine."Document Type"::Invoice, GenJnlLine."Document Type"::"Credit Memo"]) then + exit(true); + + if WithholdingPostingSetup.Get(GenJnlLine."Wthldg. Tax Bus. Post. Group", GenJnlLine."Wthldg. Tax Prod. Post. Group") then + exit(Abs(GenJnlLine.Amount) >= WithholdingPostingSetup."Wthldg. Tax Min. Inv. Amount"); + + exit(false); + end; + + procedure PostVendWHTTaxInv(GenJnlLine: Record "Gen. Journal Line"; VendLedgEntry: Record "Vendor Ledger Entry") + var + PurchTaxInvHeader: Record "WHT Purch. Tax Inv. Header"; + ReportSelection: Record "Report Selections"; + PurchSetup: Record "Purchases & Payables Setup"; + GLSetup: Record "General Ledger Setup"; + TaxInvoiceManagement: Codeunit "Withholding Tax Invoice Mgmt."; + begin + if not GLSetup."WHT Enable Tax Invoices" then + exit; + + if (GenJnlLine."Applies-to Doc. No." <> '') or (GenJnlLine."Applies-to ID" <> '') then + case GenJnlLine."Document Type" of + GenJnlLine."Document Type"::Payment: + TaxInvoiceManagement.ApplyVendInvoiceWHT(VendLedgEntry, GenJnlLine); + GenJnlLine."Document Type"::Refund: + TaxInvoiceManagement.ApplyVendCreditWHT(VendLedgEntry, GenJnlLine); + end + else begin + PurchSetup.Get(); + + ReportSelection.Reset(); + ReportSelection.SetRange(Usage, ReportSelection.Usage::"P. Withholding Tax Invoice"); + if ReportSelection.FindSet() then + repeat + PurchTaxInvHeader.SetRange("No.", GenJnlLine."Document No."); + if PurchTaxInvHeader.FindFirst() then + REPORT.Run(ReportSelection."Report ID", PurchSetup."WHT Print Dialog", false, PurchTaxInvHeader); + until ReportSelection.Next() = 0; + end; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnPostBankAccOnBeforeInitBankAccLedgEntry, '', false, false)] + local procedure OnPostBankAccOnBeforeInitBankAccLedgEntry(var GenJournalLine: Record "Gen. Journal Line"; var TaxAmount: Decimal; var TaxAmountLCY: Decimal) + begin + if CheckWithholdingTaxDisabled() then + exit; + + CalcBankAccWHT(GenJournalLine, TaxAmountLCY, TaxAmount); + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnBeforeBankAccLedgEntryUpdateAmounts, '', false, false)] + local procedure OnBeforeBankAccLedgEntryUpdateAmounts(var BankAccountLedgerEntry: Record "Bank Account Ledger Entry"; var GenJournalLine: Record "Gen. Journal Line"; BankAccount: Record "Bank Account"; TaxAmount: Decimal; TaxAmountLCY: Decimal) + begin + if CheckWithholdingTaxDisabled() then + exit; + + BankAccount.Get(GenJournalLine."Account No."); + if BankAccount."Currency Code" <> '' then + BankAccountLedgerEntry.Amount := GenJournalLine.Amount + TaxAmount + else + BankAccountLedgerEntry.Amount := GenJournalLine."Amount (LCY)" + TaxAmountLCY; + BankAccountLedgerEntry."Amount (LCY)" := GenJournalLine."Amount (LCY)" + TaxAmountLCY; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnPostBankAccOnBeforeCheckLedgEntryInsert, '', false, false)] + local procedure OnPostBankAccOnBeforeCheckLedgEntryInsert(var CheckLedgerEntry: Record "Check Ledger Entry"; var GenJournalLine: Record "Gen. Journal Line"; TaxAmount: Decimal; TaxAmountLCY: Decimal) + begin + if CheckWithholdingTaxDisabled() then + exit; + + PostBankAccWHTOnBeforeCheckLedgEntryInsert(CheckLedgerEntry, GenJournalLine, TaxAmountLCY); + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnPostBankAccOnBeforeCreateGLEntryBalAcc, '', false, false)] + local procedure OnPostBankAccOnBeforeCreateGLEntryBalAcc(var GenJnlLine: Record "Gen. Journal Line"; BankAccPostingGr: Record "Bank Account Posting Group"; TaxAmount: Decimal; TaxAmountLCY: Decimal; sender: Codeunit "Gen. Jnl.-Post Line"; var IsHandled: Boolean) + begin + if CheckWithholdingTaxDisabled() then + exit; + + sender.CreateGLEntryBalAcc( + GenJnlLine, BankAccPostingGr."G/L Account No.", + GenJnlLine."Amount (LCY)" + TaxAmountLCY, GenJnlLine."Source Currency Amount" + TaxAmount, + GenJnlLine."Bal. Account Type", GenJnlLine."Bal. Account No."); + PostBankAccWHT(GenJnlLine, TaxAmountLCY, sender); + IsHandled := true; + end; + + local procedure CalcBankAccWHT(GenJnlLine: Record "Gen. Journal Line"; var WithholdingAmountLCY: Decimal; var WithholdingAmount: Decimal) + var + CheckLedgEntry: Record "Check Ledger Entry"; + WithholdingPostingSetup: Record "Withholding Tax Posting Setup"; + GLSetup: Record "General Ledger Setup"; + CurrExchRate: Record "Currency Exchange Rate"; + GenJnlLine1: Record "Gen. Journal Line"; + WithholdingTaxMgmt: Codeunit "Withholding Tax Mgmt."; + CurrFactor: Decimal; + begin + WithholdingAmountLCY := 0; + GLSetup.Get(); + + if not GLSetup."Enable Withholding Tax" or GenJnlLine."Skip Withholding Tax" then + exit; + + if (GenJnlLine."Applies-to ID" = '') and (GenJnlLine."Applies-to Doc. No." = '') then begin + if (GenJnlLine."Document Type" = GenJnlLine."Document Type"::Payment) or (GenJnlLine."Document Type" = GenJnlLine."Document Type"::Refund) then + if WithholdingPostingSetup.Get(GenJnlLine."Wthldg. Tax Bus. Post. Group", GenJnlLine."Wthldg. Tax Prod. Post. Group") then begin + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest then + if IsVendAcc(GenJnlLine) then begin + if GenJnlLine."Withholding Tax Absorb Base" <> 0 then + WithholdingAmountLCY := Abs(Round(GenJnlLine."Withholding Tax Absorb Base" * WithholdingPostingSetup."Withholding Tax %" / 100)) + else + WithholdingAmountLCY := Abs(Round(GenJnlLine.Amount * WithholdingPostingSetup."Withholding Tax %" / 100)); + if GenJnlLine."Document Type" = GenJnlLine."Document Type"::Refund then + WithholdingAmountLCY := -Abs(WithholdingAmountLCY); + end; + + if (WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Payment) and (not GenJnlLine."Financial Void") then + Error(PaymentJournalPostApplyErr, WithholdingPostingSetup."Realized Withholding Tax Type"); + end; + + if (GenJnlLine."Currency Code" <> '') and (CurrFactor <> 0) then + if (WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Payment) and + (not GLSetup."Manual Sales Wthldg. Tax Calc.") + then + WithholdingAmountLCY := + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", GenJnlLine."Currency Code", + Abs(WithholdingTaxMgmt.WithholdingAmountJournal(GenJnlLine, true)), CurrFactor); + end else + if (GenJnlLine."Applies-to ID" <> '') or (GenJnlLine."Applies-to Doc. No." <> '') then begin + GenJnlLine1.Reset(); + GenJnlLine1.Copy(GenJnlLine); + if GenJnlLine."Applies-to Doc. No." <> '' then + GenJnlLine1.SetRange("Applies-to Doc. No.", GenJnlLine."Applies-to Doc. No.") + else + GenJnlLine1.SetRange("Applies-to ID", GenJnlLine."Applies-to ID"); + + GenJnlLine1.SetRange("Account Type", GenJnlLine."Account Type"::Vendor); + if (GenJnlLine."Account Type" = GenJnlLine."Account Type"::Vendor) or + (GenJnlLine."Bal. Account Type" = GenJnlLine."Bal. Account Type"::Vendor) or + GenJnlLine1.FindFirst() + then begin + CurrFactor := + CurrExchRate.ExchangeRate( + GenJnlLine."Document Date", GenJnlLine."Currency Code"); + + if GenJnlLine1."WHT Interest Amount" <> 0 then + GenJnlLine1.Validate(Amount, GenJnlLine1.Amount - GenJnlLine1."WHT Interest Amount"); + + if (GenJnlLine1."Document Type" = GenJnlLine1."Document Type"::Payment) or + (GenJnlLine1."Document Type" = GenJnlLine1."Document Type"::Refund) + then + if WithholdingPostingSetup.Get( + GenJnlLine1."Wthldg. Tax Bus. Post. Group", + GenJnlLine1."Wthldg. Tax Prod. Post. Group") + then begin + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest then begin + if GenJnlLine1.FindFirst() then + WithholdingTaxMgmt.CheckApplicationGenPurchWithholdingTax(GenJnlLine1); + WithholdingAmountLCY := + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", GenJnlLine."Currency Code", + Abs(WithholdingTaxMgmt.CalcVendExtraWithholdingForEarliest(GenJnlLine1)), CurrFactor); + end; + + if (WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Payment) and + (not GLSetup."Manual Sales Wthldg. Tax Calc.") + then begin + WithholdingAmount := Abs(WithholdingTaxMgmt.WithholdingAmountJournal(GenJnlLine1, true)); + WithholdingAmountLCY := + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine1."Document Date", + GenJnlLine1."Currency Code", + WithholdingAmount, CurrFactor); + end; + end; + + if GenJnlLine."Document Type" = GenJnlLine."Document Type"::Refund then + WithholdingAmountLCY := -Abs(WithholdingAmountLCY); + end; + + WithholdingAmountLCY := Round(WithholdingAmountLCY); + + if GLSetup."Round Amount Wthldg. Tax Calc" then + WithholdingAmountLCY := WithholdingTaxMgmt.RoundWithholdingTaxAmount(WithholdingAmountLCY); + end else + if GenJnlLine."Bank Payment Type" = + GenJnlLine."Bank Payment Type"::"Computer Check" + then begin + GenJnlLine.TestField("Check Printed", true); + CheckLedgEntry.LockTable(); + CheckLedgEntry.Reset(); + CheckLedgEntry.SetCurrentKey("Bank Account No.", "Entry Status", "Check No."); + CheckLedgEntry.SetRange("Bank Account No.", GenJnlLine."Account No."); + CheckLedgEntry.SetRange("Entry Status", CheckLedgEntry."Entry Status"::Printed); + CheckLedgEntry.SetRange("Check No.", GenJnlLine."Document No."); + if CheckLedgEntry.FindFirst() then + WithholdingAmountLCY := Abs(CheckLedgEntry."Withholding Tax Amount") + end; + + if WithholdingPostingSetup.Get(GenJnlLine."Wthldg. Tax Bus. Post. Group", GenJnlLine."Wthldg. Tax Prod. Post. Group") then + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest then + if Abs(GenJnlLine.Amount) < WithholdingPostingSetup."Wthldg. Tax Min. Inv. Amount" then + WithholdingAmountLCY := 0; + end; + + local procedure PostBankAccWHTOnBeforeCheckLedgEntryInsert(var CheckLedgEntry: Record "Check Ledger Entry"; GenJnlLine: Record "Gen. Journal Line"; WithholdingAmountLCY: Decimal) + var + GenJnlLine1: Record "Gen. Journal Line"; + GLSetup: Record "General Ledger Setup"; + BankAcc: Record "Bank Account"; + WithholdingTaxMgmt: Codeunit "Withholding Tax Mgmt."; + begin + GenJnlLine1.Reset(); + GenJnlLine1.Copy(GenJnlLine); + + if GLSetup."Enable Withholding Tax" then + if not GenJnlLine."Skip Withholding Tax" then + CheckLedgEntry."Withholding Tax Amount" := Abs(-WithholdingTaxMgmt.WithholdingAmountJournal(GenJnlLine1, false)); + + CheckLedgEntry."WHT Interest Amount" := GenJnlLine."WHT Interest Amount"; + + BankAcc.Get(GenJnlLine."Account No."); + if BankAcc."Currency Code" <> '' then + CheckLedgEntry.Amount := -GenJnlLine.Amount - CheckLedgEntry."Withholding Tax Amount" + else begin + if WithholdingAmountLCY <> 0 then + CheckLedgEntry."Withholding Tax Amount" := WithholdingAmountLCY; + CheckLedgEntry.Amount := -GenJnlLine."Amount (LCY)" - CheckLedgEntry."Withholding Tax Amount"; + end; + end; + + local procedure PostBankAccWHT(GenJnlLine: Record "Gen. Journal Line"; WithholdingAmountLCY: Decimal; sender: Codeunit "Gen. Jnl.-Post Line") + var + WithholdingPostingSetup: Record "Withholding Tax Posting Setup"; + begin + if WithholdingAmountLCY = 0 then + exit; + + case true of + IsVendAcc(GenJnlLine): + if WithholdingPostingSetup.Get(GenJnlLine."Wthldg. Tax Bus. Post. Group", GenJnlLine."Wthldg. Tax Prod. Post. Group") then + if ((WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest) or + (WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Payment)) and + ((GenJnlLine."Applies-to Doc. No." = '') and (GenJnlLine."Applies-to ID" = '')) + then begin + WithholdingPostingSetup.TestField("Payable Wthldg. Tax Acc. Code"); + sender.CreateGLEntry( + GenJnlLine, WithholdingPostingSetup."Payable Wthldg. Tax Acc. Code", -WithholdingAmountLCY, -WithholdingAmountLCY, true); + end; + end; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnBeforeCopyFromCVLedgEntryBuffer, '', false, false)] + local procedure OnBeforeCopyFromCVLedgEntryBuffer(var GenJnlLine: Record "Gen. Journal Line"; OldVendLedgEntry: Record "Vendor Ledger Entry"; TempOldVendLedgEntry: Record "Vendor Ledger Entry" temporary; AppliedAmount: Decimal; var RemainingTaxAmount: Decimal; NextTransactionNo: Integer; var NextTaxEntryNo: Integer) + begin + if CheckWithholdingTaxDisabled() then + exit; + + ApplyVendLedgEntryOnBeforeOldVendLedgEntryModify(GenJnlLine, OldVendLedgEntry, TempOldVendLedgEntry, AppliedAmount, RemainingTaxAmount, NextTransactionNo, NextTaxEntryNo); + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnBeforeUpdateOldVendLedgEntryAmountToApply, '', false, false)] + local procedure OnBeforeUpdateOldVendLedgEntryAmountToApply(var OldVendLedgEntry: Record "Vendor Ledger Entry"; OldCVLedgEntryBuf: Record "CV Ledger Entry Buffer"; RemainingTaxAmount: Decimal; AppliedAmount: Decimal; var IsHandled: Boolean) + begin + if CheckWithholdingTaxDisabled() then + exit; + + UpdateAmountToApply(OldVendLedgEntry, RemainingTaxAmount, AppliedAmount, IsHandled); + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnAfterOldVendLedgEntryModify, '', false, false)] + local procedure OnAfterOldVendLedgEntryModify(GenJournalLine: Record "Gen. Journal Line"; AppliedAmount: Decimal; var NextTaxEntryNo: Integer; var NextEntryNo: Integer; var NextCheckEntryNo: Integer; NextTransactionNo: Integer; sender: Codeunit "Gen. Jnl.-Post Line") + begin + if CheckWithholdingTaxDisabled() then + exit; + + ApplyWHT(GenJournalLine, AppliedAmount, NextTaxEntryNo, NextEntryNo, NextCheckEntryNo, NextTransactionNo, sender); + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnVendUnrealizedVATOnBeforeGetUnrealizedVATPart, '', false, false)] + local procedure OnVendUnrealizedVATOnBeforeGetUnrealizedVATPart(var GenJournalLine: Record "Gen. Journal Line"; var VendorLedgerEntry: Record "Vendor Ledger Entry"; VATEntry2: Record "VAT Entry"; SettledAmount: Decimal; PaidAmount: Decimal; TotalUnrealVATAmountFirst: Decimal; TotalUnrealVATAmountLast: Decimal; var VATPart: Decimal; var IsHandled: Boolean) + var + GLSetup: Record "General Ledger Setup"; + PurchCrMemoHeader: Record "Purch. Cr. Memo Hdr."; + WithholdingTaxAmount: Decimal; + begin + if CheckWithholdingTaxDisabled() then + exit; + + if GenJournalLine."Document Type" = GenJournalLine."Document Type"::Refund then + if GLSetup."Manual Sales Wthldg. Tax Calc." then + if PurchCrMemoHeader.Get(VendorLedgerEntry."Document No.") then + WithholdingTaxAmount := -CollectWithholdingTaxAmount(PurchCrMemoHeader."No."); + + VATPart := GetUnrealizedVATPart(VATEntry2, + Round(SettledAmount / VendorLedgerEntry.GetAdjustedCurrencyFactor()), + PaidAmount, + VendorLedgerEntry."Amount (LCY)" - WithholdingTaxAmount, + TotalUnrealVATAmountFirst, + TotalUnrealVATAmountLast); + + IsHandled := true; + end; + + local procedure GetUnrealizedVATPart(VATEntry: Record "VAT Entry"; SettledAmount: Decimal; Paid: Decimal; Full: Decimal; TotalUnrealVATAmountFirst: Decimal; TotalUnrealVATAmountLast: Decimal): Decimal + var + UnrealizedVATType: Option " ",Percentage,First,Last,"First (Fully Paid)","Last (Fully Paid)"; + begin + if (VATEntry.Type <> VATEntry.Type::" ") and + (VATEntry.Amount = 0) and + (VATEntry.Base = 0) + then begin + UnrealizedVATType := VATEntry.GetUnrealizedVATType(); + if (UnrealizedVATType = UnrealizedVATType::" ") or + ((VATEntry."Remaining Unrealized Amount" = 0) and + (VATEntry."Remaining Unrealized Base" = 0)) + then + exit(0); + + if Abs(Paid) = Abs(Full) then + exit(1); + + case UnrealizedVATType of + UnrealizedVATType::Percentage: + begin + if Abs(Full) = Abs(Paid) - Abs(SettledAmount) then + exit(1); + if Full = 0 then + exit(Abs(SettledAmount) / (Abs(Paid) + Abs(SettledAmount))); + exit(Abs(SettledAmount) / (Abs(Full) - (Abs(Paid) - Abs(SettledAmount)))); + end; + UnrealizedVATType::First: + begin + if VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Reverse Charge VAT" then + exit(1); + if Abs(Paid) < Abs(TotalUnrealVATAmountFirst) then + exit(Abs(SettledAmount) / Abs(TotalUnrealVATAmountFirst)); + exit(1); + end; + UnrealizedVATType::"First (Fully Paid)": + begin + if VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Reverse Charge VAT" then + exit(1); + if Abs(Paid) < Abs(TotalUnrealVATAmountFirst) then + exit(0); + exit(1); + end; + UnrealizedVATType::"Last (Fully Paid)": + exit(0); + UnrealizedVATType::Last: + begin + if VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Reverse Charge VAT" then + exit(0); + if Abs(Paid) > Abs(Full) - Abs(TotalUnrealVATAmountLast) then + exit((Abs(Paid) - (Abs(Full) - Abs(TotalUnrealVATAmountLast))) / Abs(TotalUnrealVATAmountLast)); + exit(0); + end; + end; + end else + exit(0); + end; + + procedure CollectWithholdingTaxAmount(DocNo: Code[20]) WithholdingTaxAmount: Decimal + var + WithholdingTaxEntry: Record "Withholding Tax Entry"; + begin + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetCurrentKey(WithholdingTaxEntry."Document No."); + WithholdingTaxEntry.SetRange(WithholdingTaxEntry."Document No.", DocNo); + WithholdingTaxEntry.SetFilter(WithholdingTaxEntry."Applies-to Entry No.", '%1', 0); + if WithholdingTaxEntry.FindSet() then + repeat + WithholdingTaxAmount := WithholdingTaxAmount + WithholdingTaxEntry."Unrealized Amount (LCY)"; + until WithholdingTaxEntry.Next() = 0; + end; + + local procedure ApplyVendLedgEntryOnBeforeOldVendLedgEntryModify(GenJnlLine: Record "Gen. Journal Line"; OldVendLedgEntry: Record "Vendor Ledger Entry"; TempOldVendLedgEntry: Record "Vendor Ledger Entry" temporary; AppliedAmount: Decimal; var RemAmtWHT: Decimal; NextTransactionNo: Integer; var NextWHTEntryNo: Integer) + var + GLSetup: Record "General Ledger Setup"; + GenJnlLine1: Record "Gen. Journal Line"; + WithholdingTaxMgmt: Codeunit "Withholding Tax Mgmt."; + TaxManagement: Codeunit "Withholding Tax Invoice Mgmt."; + begin + GLSetup.Get(); + + if GLSetup."Enable Withholding Tax" and + (GenJnlLine."Document Type" in [GenJnlLine."Document Type"::Payment, GenJnlLine."Document Type"::Refund]) + then + if (GenJnlLine."Applies-to Doc. No." = '') and (GenJnlLine."Applies-to ID" = '') then begin + GenJnlLine1.Reset(); + GenJnlLine1.Copy(GenJnlLine); + GenJnlLine1.Validate(Amount, AppliedAmount - GenJnlLine1."WHT Interest Amount"); + GenJnlLine1."Applies-to Doc. Type" := OldVendLedgEntry."Document Type"; + GenJnlLine1."Applies-to Doc. No." := OldVendLedgEntry."Document No."; + NextWHTEntryNo := WithholdingTaxMgmt.ProcessPayment(GenJnlLine1, NextTransactionNo, OldVendLedgEntry."Entry No.", 0, true); + end; + + if GLSetup."WHT Enable Tax Invoices" then + if GenJnlLine."Document Type" in [GenJnlLine."Document Type"::Payment, GenJnlLine."Document Type"::Refund] then + if (GenJnlLine."Applies-to Doc. No." = '') and (GenJnlLine."Applies-to ID" = '') then begin + GenJnlLine1.Reset(); + GenJnlLine1.Copy(GenJnlLine); + GenJnlLine1."Withholding Tax Payment" := false; + GenJnlLine1.Validate(Amount, AppliedAmount - GenJnlLine."WHT Interest Amount"); + GenJnlLine1."Applies-to Doc. Type" := OldVendLedgEntry."Document Type"; + GenJnlLine1."Applies-to Doc. No." := OldVendLedgEntry."Document No."; + if OldVendLedgEntry."Document Type" = OldVendLedgEntry."Document Type"::"Credit Memo" then + TaxManagement.TaxInvoicePurchaseCrMemo(GenJnlLine1, false, true) + else + TaxManagement.TaxInvoicePurchase(GenJnlLine1, true); + end; + + RemAmtWHT := TempOldVendLedgEntry."Remaining Amount"; + end; + + local procedure UpdateAmountToApply(var OldVendLedgEntry: Record "Vendor Ledger Entry"; RemAmtWHT: Decimal; AppliedAmount: Decimal; var IsHandled: Boolean) + begin + OldVendLedgEntry."Rem. Amt for Withholding Tax" := -AppliedAmount; + OldVendLedgEntry."WHT Rem. Amt" := RemAmtWHT; + OldVendLedgEntry."Amount to Apply" := 0; + // we don't clean "Applies-to ID" field here as it is required later for post posting processing in COD 13 / WHT functionality. + IsHandled := true; + end; + + local procedure ApplyWHT(GenJnlLine: Record "Gen. Journal Line"; AppliedAmount: Decimal; var NextWHTEntryNo: Integer; var NextEntryNo: Integer; var NextCheckEntryNo: Integer; NextTransactionNo: Integer; sender: Codeunit "Gen. Jnl.-Post Line") + var + GenJnlLine1: Record "Gen. Journal Line"; + SourceCodeSetup: Record "Source Code Setup"; + GLSetup: Record "General Ledger Setup"; + VendLedgEntry: Record "Vendor Ledger Entry"; + WithholdingTaxEntry: Record "Withholding Tax Entry"; + WithholdingPostingSetup: Record "Withholding Tax Posting Setup"; + WithholdingTaxMgmt: Codeunit "Withholding Tax Mgmt."; + KeepWHTEntryNo: Integer; + NextNo: Integer; + HadWHTEntryNo: Boolean; + begin + GenJnlLine1.Reset(); + SourceCodeSetup.Get(); + GLSetup.Get(); + + if GLSetup."Enable Withholding Tax" then + if GenJnlLine."Source Code" = SourceCodeSetup."Purchase Entry Application" then + if (GenJnlLine."Applies-to Doc. No." <> '') or (GenJnlLine."Applies-to ID" <> '') then begin + GenJnlLine1.Copy(GenJnlLine); + GenJnlLine1.Validate(Amount, AppliedAmount); + GenJnlLine1."Withholding Tax Entry No." := NextEntryNo; + if not GenJnlLine."Skip Withholding Tax" then begin + KeepWHTEntryNo := NextWHTEntryNo; + + case GenJnlLine1."Document Type" of + GenJnlLine1."Document Type"::Payment: + begin + NextNo := WithholdingTaxMgmt.ApplyVendInvoiceWHTPosted(VendLedgEntry, GenJnlLine1, NextTransactionNo); + if NextWHTEntryNo <> -1 then + HadWHTEntryNo := true + else + NextWHTEntryNo := KeepWHTEntryNo; + + WithholdingTaxEntry.SetRange("Original Document No.", GenJnlLine."Document No."); + if WithholdingTaxEntry.FindFirst() then + if WithholdingPostingSetup.Get( + WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", + WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group") + then + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Payment then begin + repeat + GenJnlLine1.Copy(GenJnlLine); + GenJnlLine1.Amount := WithholdingTaxEntry.Amount; + GenJnlLine1."Amount (LCY)" := WithholdingTaxEntry."Amount (LCY)"; + InsertWHTPostingBufferPosted(WithholdingTaxEntry, GenJnlLine1, true, 1, NextEntryNo, NextCheckEntryNo, NextTransactionNo, sender); + until WithholdingTaxEntry.Next() = 0; + NextWHTEntryNo := WithholdingTaxEntry."Entry No." + 1; + end; + end; + end; + end; + end; + end; + + procedure InsertWHTPostingBufferPosted(var WithholdingTaxEntryGL: Record "Withholding Tax Entry"; var GenJnlLine: Record "Gen. Journal Line"; Apply: Boolean; Source: Option Sales,Purchase; var NextEntryNo: Integer; var NextCheckEntryNo: Integer; NextTransactionNo: Integer; sender: Codeunit "Gen. Jnl.-Post Line") + var + BankAcc: Record "Bank Account"; + BankAccLedgEntry: Record "Bank Account Ledger Entry"; + CheckLedgEntry: Record "Check Ledger Entry"; + CheckLedgEntry2: Record "Check Ledger Entry"; + BankAccPostingGr: Record "Bank Account Posting Group"; + PurchSetup: Record "General Ledger Setup"; + GenJnlLine1, GenJnlLine3 : Record "Gen. Journal Line"; + Vendor: Record Vendor; + WithholdingPostingSetup: Record "Withholding Tax Posting Setup"; + GLEntry: Record "G/L Entry"; + GLSetup: Record "General Ledger Setup"; + WithholdingTaxMgmt: Codeunit "Withholding Tax Mgmt."; + begin + GLSetup.Get(); + + if GLSetup."Enable Withholding Tax" then + if GenJnlLine."Bill-to/Pay-to No." = '' then begin + Vendor.Get(GenJnlLine."Account No."); + if Vendor."WHT ABN" <> '' then + exit; + end else begin + Vendor.Get(GenJnlLine."Bill-to/Pay-to No."); + if Vendor."WHT ABN" <> '' then + exit; + end; + + if WithholdingTaxEntryGL."Amount (LCY)" <> 0 then begin + WithholdingPostingSetup.Get(WithholdingTaxEntryGL."Wthldg. Tax Bus. Post. Group", WithholdingTaxEntryGL."Wthldg. Tax Prod. Post. Group"); + PurchSetup.Get(); + GenJnlLine3.Reset(); + GenJnlLine3 := GenJnlLine; + GenJnlLine3.SetRange("Journal Template Name", GenJnlLine."Journal Template Name"); + GenJnlLine3.SetRange("Journal Batch Name", GenJnlLine."Journal Batch Name"); + GenJnlLine3."Line No." := 10000; + + GenJnlLine3.Init(); + GenJnlLine3.Validate("Posting Date", GenJnlLine."Posting Date"); + GenJnlLine3."Document Type" := GenJnlLine."Document Type"; + GenJnlLine3."Account Type" := GenJnlLine3."Account Type"::"G/L Account"; + GenJnlLine3.Validate("Currency Code", WithholdingTaxEntryGL."Currency Code"); + if Apply then + GenJnlLine3.Validate(Amount, WithholdingTaxEntryGL.Amount) + else + GenJnlLine3.Validate(Amount, -WithholdingTaxEntryGL.Amount); + + if Source = Source::Purchase then begin + if GenJnlLine."Document Type" = GenJnlLine."Document Type"::Refund then + GenJnlLine3.Validate("Account No.", WithholdingPostingSetup."Purch. Wthldg. Tax Adj. Acc No") + else + GenJnlLine3.Validate("Account No.", WithholdingPostingSetup."Payable Wthldg. Tax Acc. Code"); + + case WithholdingPostingSetup."Bal. Payable Account Type" of + WithholdingPostingSetup."Bal. Payable Account Type"::"Bank Account": + GenJnlLine3."Bal. Account Type" := GenJnlLine3."Account Type"::"Bank Account"; + + WithholdingPostingSetup."Bal. Payable Account Type"::"G/L Account": + GenJnlLine3."Bal. Account Type" := GenJnlLine3."Account Type"::"G/L Account"; + end; + + GenJnlLine3.Validate("Bal. Account No.", WithholdingPostingSetup."Bal. Payable Account No."); + end; + + GenJnlLine3.Validate("Currency Code", WithholdingTaxEntryGL."Currency Code"); + + if Apply then begin + GenJnlLine3.Validate(Amount, WithholdingTaxEntryGL.Amount); + GenJnlLine3."Amount (LCY)" := WithholdingTaxEntryGL."Amount (LCY)"; + end else begin + GenJnlLine3.Validate(Amount, -WithholdingTaxEntryGL.Amount); + GenJnlLine3."Amount (LCY)" := -WithholdingTaxEntryGL."Amount (LCY)"; + end; + + GenJnlLine3.TestField("Bal. Account No."); + GenJnlLine3."Source Code" := GenJnlLine."Source Code"; + GenJnlLine3."Reason Code" := GenJnlLine."Reason Code"; + GenJnlLine3."Shortcut Dimension 1 Code" := GenJnlLine."Shortcut Dimension 1 Code"; + GenJnlLine3."Shortcut Dimension 2 Code" := GenJnlLine."Shortcut Dimension 2 Code"; + GenJnlLine3."Allow Zero-Amount Posting" := true; + GenJnlLine3."Wthldg. Tax Bus. Post. Group" := WithholdingTaxEntryGL."Wthldg. Tax Bus. Post. Group"; + GenJnlLine3."Wthldg. Tax Prod. Post. Group" := WithholdingTaxEntryGL."Wthldg. Tax Prod. Post. Group"; + GenJnlLine3."Document Type" := GenJnlLine."Document Type"; + GenJnlLine3."Document No." := GenJnlLine."Document No."; + GenJnlLine3."External Document No." := GenJnlLine."External Document No."; + + if GenJnlLine."Document Type" = GenJnlLine."Document Type"::Refund then + GenJnlLine3."Gen. Posting Type" := GenJnlLine3."Gen. Posting Type"::" "; + + if NextEntryNo = 0 then + NextEntryNo := GenJnlLine."Withholding Tax Entry No."; + + if Apply then begin + if Source = Source::Purchase then + if GenJnlLine."Document Type" = GenJnlLine."Document Type"::Refund then + sender.InitGLEntry( + GenJnlLine, GLEntry, WithholdingPostingSetup."Purch. Wthldg. Tax Adj. Acc No", -WithholdingTaxEntryGL."Amount (LCY)", 0, false, true) + else + sender.InitGLEntry( + GenJnlLine, GLEntry, WithholdingPostingSetup."Payable Wthldg. Tax Acc. Code", -WithholdingTaxEntryGL."Amount (LCY)", 0, false, true); + + GLEntry."Posting Date" := GenJnlLine3."Posting Date"; + GLEntry."Additional-Currency Amount" := -WithholdingTaxEntryGL.Amount; + end else begin + if Source = Source::Purchase then + if GenJnlLine."Document Type" = GenJnlLine."Document Type"::Refund then + sender.InitGLEntry( + GenJnlLine, GLEntry, WithholdingPostingSetup."Purch. Wthldg. Tax Adj. Acc No", WithholdingTaxEntryGL."Amount (LCY)", 0, false, true) + else + sender.InitGLEntry( + GenJnlLine, GLEntry, WithholdingPostingSetup."Payable Wthldg. Tax Acc. Code", WithholdingTaxEntryGL."Amount (LCY)", 0, false, true); + + GLEntry."Posting Date" := GenJnlLine3."Posting Date"; + GLEntry."Additional-Currency Amount" := WithholdingTaxEntryGL.Amount; + end; + + GLEntry."Gen. Posting Type" := GenJnlLine."Gen. Posting Type"; + GLEntry."Gen. Bus. Posting Group" := GenJnlLine."Gen. Bus. Posting Group"; + GLEntry."Gen. Prod. Posting Group" := GenJnlLine."Gen. Prod. Posting Group"; + GLEntry."VAT Bus. Posting Group" := GenJnlLine."VAT Bus. Posting Group"; + GLEntry."VAT Prod. Posting Group" := GenJnlLine."VAT Prod. Posting Group"; + sender.InsertGLEntry(GenJnlLine, GLEntry, true); + + case GenJnlLine3."Bal. Account Type" of + GenJnlLine3."Bal. Account Type"::"Bank Account": + begin + BankAccLedgEntry.LockTable(); + if BankAcc."No." <> GenJnlLine3."Bal. Account No." then + BankAcc.Get(GenJnlLine3."Bal. Account No."); + BankAcc.TestField(Blocked, false); + if GenJnlLine3."Currency Code" = '' then + BankAcc.TestField("Currency Code", '') + else + if BankAcc."Currency Code" <> '' then + GenJnlLine3.TestField(GenJnlLine3."Currency Code", BankAcc."Currency Code"); + + BankAcc.TestField("Bank Acc. Posting Group"); + BankAccPostingGr.Get(BankAcc."Bank Acc. Posting Group"); + + BankAccLedgEntry.Init(); + BankAccLedgEntry."Bank Account No." := GenJnlLine3."Bal. Account No."; + BankAccLedgEntry."Posting Date" := GenJnlLine3."Posting Date"; + BankAccLedgEntry."Document Date" := GenJnlLine3."Document Date"; + BankAccLedgEntry."Document Type" := GenJnlLine3."Document Type"; + BankAccLedgEntry."Document No." := GenJnlLine3."Document No."; + BankAccLedgEntry."External Document No." := GenJnlLine3."External Document No."; + BankAccLedgEntry.Description := GenJnlLine3.Description; + BankAccLedgEntry."Bank Acc. Posting Group" := BankAcc."Bank Acc. Posting Group"; + BankAccLedgEntry."Global Dimension 1 Code" := GenJnlLine3."Shortcut Dimension 1 Code"; + BankAccLedgEntry."Global Dimension 2 Code" := GenJnlLine3."Shortcut Dimension 2 Code"; + BankAccLedgEntry."Dimension Set ID" := GenJnlLine3."Dimension Set ID"; + BankAccLedgEntry."Our Contact Code" := GenJnlLine3."Salespers./Purch. Code"; + BankAccLedgEntry."Source Code" := GenJnlLine3."Source Code"; + BankAccLedgEntry."Journal Batch Name" := GenJnlLine3."Journal Batch Name"; + BankAccLedgEntry."Reason Code" := GenJnlLine3."Reason Code"; + BankAccLedgEntry."Entry No." := NextEntryNo; + BankAccLedgEntry."Transaction No." := NextTransactionNo; + BankAccLedgEntry."Currency Code" := BankAcc."Currency Code"; + + if BankAcc."Currency Code" <> '' then + BankAccLedgEntry.Amount := GenJnlLine3.Amount + else + BankAccLedgEntry.Amount := GenJnlLine3."Amount (LCY)"; + + BankAccLedgEntry."Amount (LCY)" := GenJnlLine3."Amount (LCY)"; + BankAccLedgEntry."User ID" := UserId; + + if BankAccLedgEntry.Amount <> 0 then begin + BankAccLedgEntry.Open := true; + BankAccLedgEntry."Remaining Amount" := BankAccLedgEntry.Amount; + end; + + BankAccLedgEntry.Positive := BankAccLedgEntry.Amount > 0; + BankAccLedgEntry."Bal. Account Type" := GenJnlLine3."Bal. Account Type"; + BankAccLedgEntry."Bal. Account No." := GenJnlLine3."Bal. Account No."; + + if (GenJnlLine3.Amount > 0) and (not GenJnlLine3.Correction) or + (GenJnlLine3."Amount (LCY)" > 0) and (not GenJnlLine3.Correction) or + (GenJnlLine3.Amount < 0) and GenJnlLine3.Correction or + (GenJnlLine3."Amount (LCY)" < 0) and GenJnlLine3.Correction + then begin + BankAccLedgEntry."Debit Amount" := BankAccLedgEntry.Amount; + BankAccLedgEntry."Credit Amount" := 0; + BankAccLedgEntry."Debit Amount (LCY)" := BankAccLedgEntry."Amount (LCY)"; + BankAccLedgEntry."Credit Amount (LCY)" := 0; + end else begin + BankAccLedgEntry."Debit Amount" := 0; + BankAccLedgEntry."Credit Amount" := -BankAccLedgEntry.Amount; + BankAccLedgEntry."Debit Amount (LCY)" := 0; + BankAccLedgEntry."Credit Amount (LCY)" := -BankAccLedgEntry."Amount (LCY)"; + end; + + BankAccLedgEntry.Insert(); + + if ((GenJnlLine3.Amount <= 0) and (GenJnlLine3."Bank Payment Type" = GenJnlLine3."Bank Payment Type"::"Computer Check") and GenJnlLine3."Check Printed") or + ((GenJnlLine3.Amount < 0) and (GenJnlLine3."Bank Payment Type" = GenJnlLine3."Bank Payment Type"::"Manual Check")) + then begin + if BankAcc."Currency Code" <> GenJnlLine3."Currency Code" then + Error(BankPaymentTypeMustNotBeFilledErr); + + case GenJnlLine3."Bank Payment Type" of + GenJnlLine3."Bank Payment Type"::"Computer Check": + begin + GenJnlLine3.TestField(GenJnlLine3."Check Printed", true); + CheckLedgEntry.LockTable(); + CheckLedgEntry.Reset(); + CheckLedgEntry.SetCurrentKey("Bank Account No.", "Entry Status", "Check No."); + CheckLedgEntry.SetRange("Bank Account No.", GenJnlLine3."Account No."); + CheckLedgEntry.SetRange("Entry Status", CheckLedgEntry."Entry Status"::Printed); + CheckLedgEntry.SetRange("Check No.", GenJnlLine3."Document No."); + if CheckLedgEntry.FindSet() then + repeat + CheckLedgEntry2 := CheckLedgEntry; + CheckLedgEntry2."Entry Status" := CheckLedgEntry2."Entry Status"::Posted; + CheckLedgEntry2."Bank Account Ledger Entry No." := BankAccLedgEntry."Entry No."; + CheckLedgEntry2.Modify(); + until CheckLedgEntry.Next() = 0; + end; + + GenJnlLine3."Bank Payment Type"::"Manual Check": + begin + if GenJnlLine3."Document No." = '' then + Error(DocNoMustBeEnteredErr, GenJnlLine3."Bank Payment Type"); + CheckLedgEntry.Reset(); + if NextCheckEntryNo = 0 then begin + CheckLedgEntry.LockTable(); + if CheckLedgEntry.FindLast() then + NextCheckEntryNo := CheckLedgEntry."Entry No." + 1 + else + NextCheckEntryNo := 1; + end; + + CheckLedgEntry.SetCurrentKey("Bank Account No.", "Entry Status", "Check No."); + CheckLedgEntry.SetRange("Bank Account No.", GenJnlLine3."Account No."); + CheckLedgEntry.SetFilter( + "Entry Status", '%1|%2|%3', + CheckLedgEntry."Entry Status"::Printed, + CheckLedgEntry."Entry Status"::Posted, + CheckLedgEntry."Entry Status"::"Financially Voided"); + CheckLedgEntry.SetRange("Check No.", GenJnlLine3."Document No."); + if CheckLedgEntry.FindFirst() then + Error(CheckAlreadyExistsErr, GenJnlLine3."Document No."); + + CheckLedgEntry.Init(); + CheckLedgEntry."Entry No." := NextCheckEntryNo; + CheckLedgEntry."Bank Account No." := BankAccLedgEntry."Bank Account No."; + CheckLedgEntry."Bank Account Ledger Entry No." := BankAccLedgEntry."Entry No."; + CheckLedgEntry."Posting Date" := BankAccLedgEntry."Posting Date"; + CheckLedgEntry."Document Type" := BankAccLedgEntry."Document Type"; + CheckLedgEntry."Document No." := BankAccLedgEntry."Document No."; + CheckLedgEntry."External Document No." := BankAccLedgEntry."External Document No."; + CheckLedgEntry.Description := BankAccLedgEntry.Description; + CheckLedgEntry."Bank Payment Type" := GenJnlLine3."Bank Payment Type"; + CheckLedgEntry."Bal. Account Type" := BankAccLedgEntry."Bal. Account Type"; + CheckLedgEntry."Bal. Account No." := BankAccLedgEntry."Bal. Account No."; + CheckLedgEntry."Entry Status" := CheckLedgEntry."Entry Status"::Posted; + CheckLedgEntry.Open := true; + CheckLedgEntry."User ID" := UserId; + CheckLedgEntry."Check Date" := BankAccLedgEntry."Posting Date"; + CheckLedgEntry."Check No." := BankAccLedgEntry."Document No."; + + GenJnlLine1.Reset(); + GenJnlLine1.Copy(GenJnlLine); + + if GLSetup."Enable Withholding Tax" then + if not GenJnlLine."Skip Withholding Tax" then + CheckLedgEntry."Withholding Tax Amount" := -WithholdingTaxMgmt.WithholdingAmountJournal(GenJnlLine1, false); + + CheckLedgEntry."WHT Interest Amount" := GenJnlLine3."WHT Interest Amount"; + + if BankAcc."Currency Code" <> '' then + CheckLedgEntry.Amount := -GenJnlLine3.Amount - CheckLedgEntry."Withholding Tax Amount" + else + CheckLedgEntry.Amount := -GenJnlLine3."Amount (LCY)" - CheckLedgEntry."Withholding Tax Amount"; + + CheckLedgEntry.Insert(); + NextCheckEntryNo := NextCheckEntryNo + 1; + end; + end; + end; + + BankAccPostingGr.TestField("G/L Account No."); + sender.InitGLEntry(GenJnlLine, GLEntry, + BankAccPostingGr."G/L Account No.", GenJnlLine3."Amount (LCY)", GenJnlLine3."Source Currency Amount", true, true); + end; + + GenJnlLine3."Bal. Account Type"::"G/L Account": + sender.InitGLEntry(GenJnlLine, GLEntry, + GenJnlLine3."Bal. Account No.", GenJnlLine3."Amount (LCY)", GenJnlLine3."Source Currency Amount", true, true); + end; + + GLEntry."Posting Date" := GenJnlLine3."Posting Date"; + GLEntry."Bal. Account Type" := GenJnlLine3."Bal. Account Type"; + GLEntry."Bal. Account No." := GenJnlLine3."Bal. Account No."; + sender.InsertGLEntry(GenJnlLine, GLEntry, true); + end; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnUnapplyVendLedgEntryOnAfterCreateGLEntriesForTotalAmounts, '', false, false)] + local procedure OnUnapplyVendLedgEntryOnAfterCreateGLEntriesForTotalAmounts(var GenJournalLine: Record "Gen. Journal Line"; DetailedVendorLedgEntry: Record "Detailed Vendor Ledg. Entry"; GenJournalLineToPost: Record "Gen. Journal Line"; var NextTaxEntryNo: Integer; var NextEntryNo: Integer; var NextCheckEntryNo: Integer; NextTransactionNo: Integer; sender: Codeunit "Gen. Jnl.-Post Line") + var + SourceCodeSetup: Record "Source Code Setup"; + VoidCheck: Boolean; + begin + if CheckWithholdingTaxDisabled() then + exit; + + SourceCodeSetup.Get(); + + if GenJournalLine."Source Code" = SourceCodeSetup."Financially Voided Check" then + VoidCheck := true; + + UnapplyWHTEntry(GenJournalLineToPost, DetailedVendorLedgEntry."Vendor No.", DetailedVendorLedgEntry."Transaction No.", VoidCheck, NextTaxEntryNo, NextEntryNo, NextCheckEntryNo, NextTransactionNo, sender); + end; + + procedure UnapplyWHTEntry(GenJnlLine: Record "Gen. Journal Line"; CVNo: Code[20]; TransactionNo: Integer; VoidCheck: Boolean; var NextWHTEntryNo: Integer; var NextEntryNo: Integer; var NextCheckEntryNo: Integer; NextTransactionNo: Integer; sender: Codeunit "Gen. Jnl.-Post Line") + var + InvoicedWithholdingTaxEntry: Record "Withholding Tax Entry"; + WithholdingTaxEntry: Record "Withholding Tax Entry"; + NewWithholdingTaxEntry: Record "Withholding Tax Entry"; + UnrealizedWithholdingTaxEntry: Record "Withholding Tax Entry"; + WithholdingPostingSetup: Record "Withholding Tax Posting Setup"; + UnApplyWithholdingTaxEntries: Record "Withholding Tax Entry"; + Vend: Record Vendor; + GenJnlLine1: Record "Gen. Journal Line"; + GLSetup: Record "General Ledger Setup"; + Source: Option; + begin + GLSetup.Get(); + + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetCurrentKey("Transaction Type", "Bill-to/Pay-to No.", "Transaction No."); + WithholdingTaxEntry.SetRange("Transaction Type", NewWithholdingTaxEntry."Transaction Type"::Purchase); + WithholdingTaxEntry.SetRange("Bill-to/Pay-to No.", CVNo); + WithholdingTaxEntry.SetRange("Transaction No.", TransactionNo); + WithholdingTaxEntry.SetFilter("Document Type", '<>%1', WithholdingTaxEntry."Document Type"::"Credit Memo"); + WithholdingTaxEntry.SetFilter("Unreal. Wthldg. Tax Entry No.", '<>%1', 0); + if WithholdingTaxEntry.FindSet() then + repeat + NewWithholdingTaxEntry := WithholdingTaxEntry; + NewWithholdingTaxEntry."Closed by Entry No." := 0; + NewWithholdingTaxEntry.Closed := false; + NewWithholdingTaxEntry."Posting Date" := GenJnlLine."Posting Date"; + NewWithholdingTaxEntry.Base := -WithholdingTaxEntry.Base; + NewWithholdingTaxEntry.Amount := -WithholdingTaxEntry.Amount; + NewWithholdingTaxEntry."Base (LCY)" := -WithholdingTaxEntry."Base (LCY)"; + NewWithholdingTaxEntry."Amount (LCY)" := -WithholdingTaxEntry."Amount (LCY)"; + NewWithholdingTaxEntry."Unrealized Amount" := -WithholdingTaxEntry."Unrealized Amount"; + NewWithholdingTaxEntry."Unrealized Base" := -WithholdingTaxEntry."Unrealized Base"; + NewWithholdingTaxEntry."Remaining Unrealized Amount" := -WithholdingTaxEntry."Remaining Unrealized Amount"; + NewWithholdingTaxEntry."Remaining Unrealized Base" := -WithholdingTaxEntry."Remaining Unrealized Base"; + NewWithholdingTaxEntry."Original Document No." := WithholdingTaxEntry."Document No."; + NewWithholdingTaxEntry."Transaction No." := NextTransactionNo; + NewWithholdingTaxEntry."Entry No." := NextWHTEntryNo; + NextWHTEntryNo := NextWHTEntryNo + 1; + NewWithholdingTaxEntry.Insert(); + WithholdingPostingSetup.Get(WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + + if not VoidCheck then begin + GenJnlLine1.Copy(GenJnlLine); + GenJnlLine1.Amount := -WithholdingTaxEntry.Amount; + GenJnlLine1."Amount (LCY)" := -WithholdingTaxEntry."Amount (LCY)"; + Source := 1; + + InsertWHTPostingBufferPosted(WithholdingTaxEntry, GenJnlLine1, false, Source, NextEntryNo, NextCheckEntryNo, NextTransactionNo, sender); + end else begin + if GLSetup."Enable Withholding Tax" then + if GenJnlLine."Bill-to/Pay-to No." = '' then begin + Vend.Get(GenJnlLine."Account No."); + if Vend."WHT ABN" <> '' then + exit; + end else begin + Vend.Get(GenJnlLine."Bill-to/Pay-to No."); + if Vend."WHT ABN" <> '' then + exit; + end; + + if WithholdingTaxEntry."Amount (LCY)" <> 0 then + WithholdingPostingSetup.Get(WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + + sender.CreateGLEntry( + GenJnlLine, WithholdingPostingSetup."Payable Wthldg. Tax Acc. Code", WithholdingTaxEntry."Amount (LCY)", 0, false); + end; + + UnrealizedWithholdingTaxEntry.Get(WithholdingTaxEntry."Unreal. Wthldg. Tax Entry No."); + UnrealizedWithholdingTaxEntry."Remaining Unrealized Amount" := UnrealizedWithholdingTaxEntry."Remaining Unrealized Amount" + WithholdingTaxEntry.Amount; + UnrealizedWithholdingTaxEntry."Remaining Unrealized Base" := UnrealizedWithholdingTaxEntry."Remaining Unrealized Base" + WithholdingTaxEntry.Base; + UnrealizedWithholdingTaxEntry."Rem Unrealized Amount (LCY)" := UnrealizedWithholdingTaxEntry."Rem Unrealized Amount (LCY)" + WithholdingTaxEntry."Amount (LCY)"; + UnrealizedWithholdingTaxEntry."Rem Unrealized Base (LCY)" := UnrealizedWithholdingTaxEntry."Rem Unrealized Base (LCY)" + WithholdingTaxEntry."Base (LCY)"; + UnrealizedWithholdingTaxEntry.Closed := false; + UnrealizedWithholdingTaxEntry.Modify(); + WithholdingTaxEntry."Original Document No." := NewWithholdingTaxEntry."Document No."; + WithholdingTaxEntry.Modify(); + until WithholdingTaxEntry.Next() = 0; + + UnApplyWithholdingTaxEntries.SetLoadFields("Applies-to Entry No."); + UnApplyWithholdingTaxEntries.SetCurrentKey("Document Type", "Document No."); + UnApplyWithholdingTaxEntries.SetRange("Document Type", UnApplyWithholdingTaxEntries."Document Type"::"Credit Memo"); + UnApplyWithholdingTaxEntries.SetRange("Document No.", GenJnlLine."Document No."); + UnApplyWithholdingTaxEntries.SetRange("Bill-to/Pay-to No.", CVNo); + if UnApplyWithholdingTaxEntries.FindFirst() then + if InvoicedWithholdingTaxEntry.Get(UnApplyWithholdingTaxEntries."Applies-to Entry No.") then begin + InvoicedWithholdingTaxEntry."Remaining Unrealized Amount" := InvoicedWithholdingTaxEntry."Unrealized Amount"; + InvoicedWithholdingTaxEntry."Remaining Unrealized Base" := InvoicedWithholdingTaxEntry."Unrealized Base"; + InvoicedWithholdingTaxEntry.Modify(true); + end; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnStartPostingOnAfterSetNextTaxEntryNo, '', false, false)] + local procedure SetNextTaxEntryNo(var NextTaxEntryNo: Integer) + var + WithholdingTaxEntry: Record "Withholding Tax Entry"; + begin + if CheckWithholdingTaxDisabled() then + exit; + + WithholdingTaxEntry.LockTable(); + + if WithholdingTaxEntry.FindLast() then + NextTaxEntryNo := WithholdingTaxEntry."Entry No." + 1 + else + NextTaxEntryNo := 1; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnAfterInitGLRegister, '', false, false)] + local procedure SetFromWithholdingEntryNo(var GLRegister: Record "G/L Register"; NextTaxEntryNo: Integer) + begin + if CheckWithholdingTaxDisabled() then + exit; + + GLRegister."From Withholding Tax Entry No." := NextTaxEntryNo; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Line", OnBeforeUpdateGLReg, '', false, false)] + local procedure OnBeforeUpdateGLReg(var GLReg: Record "G/L Register"; NextTaxEntryNo: Integer) + begin + if CheckWithholdingTaxDisabled() then + exit; + + if NextTaxEntryNo <> 0 then + GLReg."To Withholding Tax Entry No." := NextTaxEntryNo - 1; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Batch", OnBeforeProcessBalanceOfLines, '', false, false)] + local procedure OnBeforeProcessBalanceOfLines(var GenJournalBatch: Record "Gen. Journal Batch"; var GenJournalLine: Record "Gen. Journal Line"; var GenJournalTemplate: Record "Gen. Journal Template"; var IsKeySet: Boolean) + begin + if CheckWithholdingTaxDisabled() then + exit; + + if (IsWHTPaymentPosting(GenJournalLine) or GenJournalTemplate."Force Doc. Balance") then + GenJournalLine.SetCurrentKey("Document No.", "Posting Date") + else + if CheckIfDiffPostingDatesExist(GenJournalBatch, GenJournalLine."Posting Date") then + GenJournalLine.SetCurrentKey("Journal Template Name", "Journal Batch Name", "Bal. Account No."); + + IsKeySet := true; + end; + + local procedure CheckIfDiffPostingDatesExist(GenJournalBatch: Record "Gen. Journal Batch"; PostingDate: Date): Boolean + var + GenJournalLine: Record "Gen. Journal Line"; + begin + GenJournalLine.SetLoadFields("Journal Template Name", "Journal Batch Name", "Posting Date"); + GenJournalLine.SetRange("Journal Template Name", GenJournalBatch."Journal Template Name"); + GenJournalLine.SetRange("Journal Batch Name", GenJournalBatch.Name); + GenJournalLine.SetFilter("Posting Date", '<>%1', PostingDate); + exit(not GenJournalLine.IsEmpty()); + end; + + local procedure IsWHTPaymentPosting(var GenJournalLine: Record "Gen. Journal Line"): Boolean + var + GenJournalLineWHT: Record "Gen. Journal Line"; + WithholdingPostingSetup: Record "Withholding Tax Posting Setup"; + GLSetup: Record "General Ledger Setup"; + begin + GLSetup.Get(); + + if not GLSetup."Enable Withholding Tax" then + exit(false); + + GenJournalLineWHT.Copy(GenJournalLine); + GenJournalLineWHT.SetRange("Document Type", GenJournalLine."Document Type"::Payment); + GenJournalLineWHT.SetRange("Skip Withholding Tax", false); + GenJournalLineWHT.SetFilter("Applies-to Doc. No.", '<>%1', ''); + if GenJournalLineWHT.FindSet() then + repeat + if WithholdingPostingSetup.Get(GenJournalLineWHT."Wthldg. Tax Bus. Post. Group", GenJournalLineWHT."Wthldg. Tax Prod. Post. Group") and + (WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Payment) + then + exit(true); + until GenJournalLineWHT.Next() = 0; + + exit(false); + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Batch", OnAfterProcessBalanceOfLines, '', false, false)] + local procedure ProcessBalanceOfLines(var GenJournalLine: Record "Gen. Journal Line") + begin + if CheckWithholdingTaxDisabled() then + exit; + + GenJournalLine.SetRange("Is Withholding Tax", false); + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Batch", OnProcessLinesOnAfterPostGenJournalLine, '', false, false)] + local procedure OnProcessLinesOnAfterProcessICTransaction(var GenJournalLine: Record "Gen. Journal Line"; CurrentICPartner: Code[20]; ICTransactionNo: Integer; var LastTaxLineNo: Integer; sender: Codeunit "Gen. Jnl.-Post Batch") + var + WHTGenJournalLine: Record "Gen. Journal Line"; + begin + if CheckWithholdingTaxDisabled() then + exit; + + WHTGenJournalLine.SetRange("Journal Template Name", GenJournalLine."Journal Template Name"); + WHTGenJournalLine.SetRange("Journal Batch Name", GenJournalLine."Journal Batch Name"); + WHTGenJournalLine.SetRange("Is Withholding Tax", true); + WHTGenJournalLine.SetRange("System-Created Entry", true); + WHTGenJournalLine.SetFilter("Line No.", '>%1', LastTaxLineNo); + if WHTGenJournalLine.FindSet() then + repeat + sender.PostGenJournalLines(WHTGenJournalLine, GenJournalLine, CurrentICPartner, ICTransactionNo); + LastTaxLineNo := WHTGenJournalLine."Line No."; + until WHTGenJournalLine.Next() = 0; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post Batch", OnBeforeFindGenJnlLineOnProcessLines, '', false, false)] + local procedure OnBeforeFindGenJnlLineOnProcessLines(var GenJournalLine: Record "Gen. Journal Line") + begin + if CheckWithholdingTaxDisabled() then + exit; + + GenJournalLine.SetRange("Is Withholding Tax"); + GenJournalLine.FindSet(true); + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Bank Acc. Reconciliation Post", OnPostPaymentApplicationsOnAfterPostGenJnlLine, '', false, false)] + local procedure OnPostPaymentApplicationsOnAfterPostGenJnlLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line") + begin + if CheckWithholdingTaxDisabled() then + exit; + + PostUnrealizedWHT(GenJournalLine, GenJnlPostLine); + end; + + local procedure PostUnrealizedWHT(var GenJnlLine: Record "Gen. Journal Line"; var GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line") + var + GenJournalLineWHT: Record "Gen. Journal Line"; + GeneralLedgerSetup: Record "General Ledger Setup"; + begin + GeneralLedgerSetup.Get(); + if not GeneralLedgerSetup."Enable Withholding Tax" then + exit; + + GenJournalLineWHT.SetRange("Journal Template Name", GenJnlLine."Journal Template Name"); + GenJournalLineWHT.SetRange("Journal Batch Name", GenJnlLine."Journal Batch Name"); + GenJournalLineWHT.SetRange("Is Withholding Tax", true); + GenJournalLineWHT.SetRange("System-Created Entry", true); + if not GenJournalLineWHT.FindFirst() then + exit; + + GenJnlPostLine.RunWithCheck(GenJournalLineWHT); + + GenJournalLineWHT.Delete(); + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Bank Acc. Reconciliation Post", OnPostPaymentApplicationsOnBeforeValidateApplyRequirements, '', false, false)] + local procedure OnPostPaymentApplicationsOnBeforeValidateApplyRequirements(var GenJournalLine: Record "Gen. Journal Line") + begin + if CheckWithholdingTaxDisabled() then + exit; + + if (not GeneralLedgerSetup."Enable Withholding Tax") then + GenJournalLine."Applies-to ID" := ''; + end; + + local procedure CheckWithholdingTaxDisabled(): Boolean + begin + GeneralLedgerSetup.Get(); + if not GeneralLedgerSetup."Enable Withholding Tax" then + exit(true); + + exit(false); + end; +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxMgmt.Codeunit.al b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxMgmt.Codeunit.al new file mode 100644 index 0000000000..6d6572e987 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxMgmt.Codeunit.al @@ -0,0 +1,4996 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using Microsoft.Finance.Currency; +using Microsoft.Finance.GeneralLedger.Journal; +using Microsoft.Finance.GeneralLedger.Ledger; +using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Foundation.BatchProcessing; +using Microsoft.Foundation.NoSeries; +using Microsoft.Foundation.Reporting; +using Microsoft.Purchases.Document; +using Microsoft.Purchases.History; +using Microsoft.Purchases.Payables; +using Microsoft.Purchases.Posting; +using Microsoft.Purchases.Setup; +using Microsoft.Purchases.Vendor; + +codeunit 6785 "Withholding Tax Mgmt." +{ + var + PurchInvLine: Record "Purch. Inv. Line"; + PurchaseInvLine: Record "Purch. Inv. Line"; + PurchCrMemoLine: Record "Purch. Cr. Memo Line"; + PurchaseCrMemoLine: Record "Purch. Cr. Memo Line"; + WithholdingPostingSetup: Record "Withholding Tax Posting Setup"; + CurrExchRate: Record "Currency Exchange Rate"; + VendorLedgerEntries: Record "Vendor Ledger Entry"; + VendorLedgerEntries1: Record "Vendor Ledger Entry"; + TempGenJnlLine: Record "Gen. Journal Line" temporary; + DocType: Enum "Gen. Journal Document Type"; + ApplyDocType: Enum "Gen. Journal Document Type"; + PayToAccType: Option Vendor,Customer; + TType: Option Purchase,Sale; + BuyFromAccType: Option Vendor,Customer; + TransType: Option Purchase,Sale,Settlement; + DocDate: Date; + PostingDate: Date; + WithholdingBusPostGrp: Code[20]; + WithholdingProdPostGrp: Code[20]; + "Applies-toID": Code[50]; + CurrencyCode: Code[10]; + DocNo: Code[20]; + PayToVendCustNo: Code[20]; + BuyFromVendCustNo: Code[20]; + ApplyDocNo: Code[20]; + WithholdingRevenueType: Code[10]; + Dim1: Code[20]; + Dim2: Code[20]; + ExtDocNo: Code[20]; + WithholdingReportLineNo: Code[10]; + SourceCode: Code[10]; + ReasonCode: Code[10]; + GenBusPostGrp: Code[20]; + GenProdPostGrp: Code[20]; + TotalInvoiceAmount: Decimal; + TotalInvoiceAmountLCY: Decimal; + AppliedBase: Decimal; + AmountVAT: Decimal; + Amount: Decimal; + AbsorbBase: Decimal; + CurrFactor: Decimal; + TotAmt: Decimal; + TempRemAmt: Decimal; + TempRemBase: Decimal; + WithholdingMinInvoiceAmt: Decimal; + NextWithholdingTaxEntryNo: Integer; + ExitLoop: Boolean; + UnrealizedWithholding: Boolean; + ActualVendorNo: Code[20]; + CurrencyCodeSameErr: Label 'Currency Code should be same for Payment and Invoice.'; + WithholdingMinInvNotConsistentErr: Label 'You cannot post a transaction using different Withholding Tax minimum invoice amounts on lines.'; + DiffWithholdingPostGroupsErr: Label 'The Withholding Tax posting groups are different and thus the entries cannot be apply.'; + MissingRevenueTypeErr: Label 'The Withholding Tax Entry you are trying to process contains WHT Revenue Type `%1`. Please add this value to your Withholding Revenue Types and post again.', Comment = '%1 = Withholding Revenue Type'; + + procedure CheckApplicationPurchWithholdingTax(var PurchHeader: Record "Purchase Header") + var + VendorLedgEntry: Record "Vendor Ledger Entry"; + WithholdingTaxEntry: Record "Withholding Tax Entry"; + PurchLine1: Record "Purchase Line"; + begin + if PurchHeader."Applies-to Doc. No." <> '' then + VendorLedgEntry.SetRange("Document No.", PurchHeader."Applies-to Doc. No.") + else + VendorLedgEntry.SetRange("Applies-to ID", PurchHeader."Applies-to ID"); + + if VendorLedgEntry.FindSet() then + repeat + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetRange("Document No.", VendorLedgEntry."Document No."); + WithholdingTaxEntry.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Purchase); + if WithholdingTaxEntry.FindSet() then + repeat + PurchLine1.Reset(); + PurchLine1.SetRange("Document No.", PurchHeader."No."); + PurchLine1.SetRange("Document Type", PurchHeader."Document Type"); + PurchLine1.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + PurchLine1.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if not PurchLine1.FindFirst() then + Error(DiffWithholdingPostGroupsErr); + until WithholdingTaxEntry.Next() = 0; + until VendorLedgEntry.Next() = 0; + end; + + procedure CheckApplicationGenPurchWithholdingTax(var GenJnlLine: Record "Gen. Journal Line") + var + VendorLedgEntry: Record "Vendor Ledger Entry"; + WithholdingTaxEntry: Record "Withholding Tax Entry"; + begin + if (GenJnlLine."Applies-to Doc. No." <> '') or + (GenJnlLine."Applies-to ID" <> '') + then begin + VendorLedgEntry.Reset(); + if GenJnlLine."Applies-to Doc. No." <> '' then + VendorLedgEntry.SetRange("Document No.", GenJnlLine."Applies-to Doc. No.") + else + VendorLedgEntry.SetRange("Applies-to ID", GenJnlLine."Applies-to ID"); + if VendorLedgEntry.FindSet() then + repeat + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetRange("Document No.", VendorLedgEntry."Document No."); + WithholdingTaxEntry.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Purchase); + if WithholdingTaxEntry.FindSet() then + repeat + GenJnlLine.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + GenJnlLine.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if not GenJnlLine.FindFirst() then + Error(DiffWithholdingPostGroupsErr); + until WithholdingTaxEntry.Next() = 0; + until VendorLedgEntry.Next() = 0; + end; + end; + + procedure InsertVendInvoiceWithholdingTax(var PurchInvHeader: Record "Purch. Inv. Header") + var + PurchaseLine: Record "Purchase Line"; + GLSetup: Record "General Ledger Setup"; + Vendor: Record Vendor; + PrepaymentAmtDeducted: Decimal; + begin + PurchInvLine.Reset(); + PurchInvLine.SetCurrentKey("Document No.", "Wthldg. Tax Bus. Post. Group", "Wthldg. Tax Prod. Post. Group"); + PurchInvLine.SetRange("Document No.", PurchInvHeader."No."); + PurchInvLine.SetFilter(Quantity, '<>0'); + if PurchInvLine.FindSet() then begin + WithholdingBusPostGrp := PurchInvLine."Wthldg. Tax Bus. Post. Group"; + WithholdingProdPostGrp := PurchInvLine."Wthldg. Tax Prod. Post. Group"; + if WithholdingPostingSetup.Get(PurchInvLine."Wthldg. Tax Bus. Post. Group", PurchInvLine."Wthldg. Tax Prod. Post. Group") then + WithholdingMinInvoiceAmt := WithholdingPostingSetup."Wthldg. Tax Min. Inv. Amount"; + repeat + if WithholdingPostingSetup.Get(PurchInvLine."Wthldg. Tax Bus. Post. Group", PurchInvLine."Wthldg. Tax Prod. Post. Group") then begin + if (WithholdingBusPostGrp <> PurchInvLine."Wthldg. Tax Bus. Post. Group") or + (WithholdingProdPostGrp <> PurchInvLine."Wthldg. Tax Prod. Post. Group") + then + if WithholdingMinInvoiceAmt <> WithholdingPostingSetup."Wthldg. Tax Min. Inv. Amount" then + Error(WithholdingMinInvNotConsistentErr); + + WithholdingBusPostGrp := PurchInvLine."Wthldg. Tax Bus. Post. Group"; + WithholdingProdPostGrp := PurchInvLine."Wthldg. Tax Prod. Post. Group"; + end; + until PurchInvLine.Next() = 0; + end; + + GLSetup.Get(); + if GLSetup."Enable Withholding Tax" then begin + Vendor.Get(PurchInvHeader."Pay-to Vendor No."); + if (Vendor."WHT ABN" <> '') or Vendor."WHT Foreign Vend" then + exit; + + TotalInvoiceAmount := 0; + TotalInvoiceAmountLCY := 0; + PurchaseInvLine.Reset(); + PurchaseInvLine.SetRange("Document No.", PurchInvHeader."No."); + PurchaseInvLine.SetFilter(Quantity, '<>0'); + PurchaseInvLine.SetRange("Prepayment Line", false); + if PurchaseInvLine.FindSet() then + repeat + if WithholdingPostingSetup.Get( + PurchaseInvLine."Wthldg. Tax Bus. Post. Group", + PurchaseInvLine."Wthldg. Tax Prod. Post. Group") + then + if PurchaseInvLine."Withholding Tax Absorb Base" <> 0 then + TotalInvoiceAmount := TotalInvoiceAmount + PurchaseInvLine."Withholding Tax Absorb Base" + else + TotalInvoiceAmount := TotalInvoiceAmount + PurchaseInvLine.Amount + until PurchaseInvLine.Next() = 0; + + if PurchInvHeader."Currency Code" = '' then + TotalInvoiceAmountLCY := TotalInvoiceAmount + else + TotalInvoiceAmountLCY := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + PurchInvHeader."Document Date", + PurchInvHeader."Currency Code", + TotalInvoiceAmount, + PurchInvHeader."Currency Factor")); + + if CheckWithholdingCalculationRule(TotalInvoiceAmountLCY, WithholdingPostingSetup) then + exit; + end; + + PurchInvLine.Reset(); + PurchInvLine.SetCurrentKey("Document No.", "Wthldg. Tax Bus. Post. Group", "Wthldg. Tax Prod. Post. Group"); + PurchInvLine.SetRange("Document No.", PurchInvHeader."No."); + PurchInvLine.SetFilter(Quantity, '<>0'); + PurchInvLine.SetRange("Prepayment Line", false); + if PurchInvLine.FindSet() then + repeat + if WithholdingPostingSetup.Get(PurchInvLine."Wthldg. Tax Bus. Post. Group", PurchInvLine."Wthldg. Tax Prod. Post. Group") then + if WithholdingPostingSetup."Withholding Tax %" > 0 then begin + DocNo := PurchInvLine."Document No."; + DocType := DocType::Invoice; + PayToAccType := PayToAccType::Vendor; + PayToVendCustNo := PurchInvHeader."Pay-to Vendor No."; + BuyFromAccType := BuyFromAccType::Vendor; + GenBusPostGrp := PurchInvLine."Gen. Bus. Posting Group"; + GenProdPostGrp := PurchInvLine."Gen. Prod. Posting Group"; + TransType := TransType::Purchase; + PostingDate := PurchInvHeader."Posting Date"; + DocDate := PurchInvHeader."Document Date"; + CurrencyCode := PurchInvHeader."Currency Code"; + CurrFactor := PurchInvHeader."Currency Factor"; + ApplyDocType := PurchInvHeader."Applies-to Doc. Type"; + ApplyDocNo := PurchInvHeader."Applies-to Doc. No."; + SourceCode := PurchInvHeader."Source Code"; + ReasonCode := PurchInvHeader."Reason Code"; + + if (WithholdingBusPostGrp <> PurchInvLine."Wthldg. Tax Bus. Post. Group") or + (WithholdingProdPostGrp <> PurchInvLine."Wthldg. Tax Prod. Post. Group") + then begin + if AmountVAT <> 0 then begin + if WithholdingPostingSetup."Realized Withholding Tax Type" in + [WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest, + WithholdingPostingSetup."Realized Withholding Tax Type"::Invoice] + then begin + PurchaseLine.Reset(); + PurchaseLine.SetCurrentKey("Document Type", "Document No.", + "Wthldg. Tax Bus. Post. Group", "Wthldg. Tax Prod. Post. Group"); + PurchaseLine.SetRange("Document Type", PurchaseLine."Document Type"::Order); + PurchaseLine.SetRange("Document No.", PurchInvHeader."Order No."); + PurchaseLine.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingBusPostGrp); + PurchaseLine.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingProdPostGrp); + PurchaseLine.CalcSums(PurchaseLine."Prepmt. Amt. Inv.", PurchaseLine."Prepmt Amt to Deduct"); + PrepaymentAmtDeducted := PurchaseLine."Prepmt Amt to Deduct"; + AmountVAT := AmountVAT - PrepaymentAmtDeducted; + end; + + InsertWithholdingTax(TType::Purchase); + end; + + WithholdingBusPostGrp := PurchInvLine."Wthldg. Tax Bus. Post. Group"; + WithholdingProdPostGrp := PurchInvLine."Wthldg. Tax Prod. Post. Group"; + PurchInvHeader.Amount := 0; + AbsorbBase := 0; + AmountVAT := 0; + PurchInvHeader.Amount := PurchInvHeader.Amount + PurchInvLine.Amount; + AbsorbBase := AbsorbBase + PurchInvLine."Withholding Tax Absorb Base"; + + if AbsorbBase <> 0 then + AmountVAT := AbsorbBase + else + AmountVAT := PurchInvHeader.Amount; + end else begin + WithholdingBusPostGrp := PurchInvLine."Wthldg. Tax Bus. Post. Group"; + WithholdingProdPostGrp := PurchInvLine."Wthldg. Tax Prod. Post. Group"; + PurchInvHeader.Amount := PurchInvHeader.Amount + PurchInvLine.Amount; + AbsorbBase := AbsorbBase + PurchInvLine."Withholding Tax Absorb Base"; + + if AbsorbBase <> 0 then + AmountVAT := AbsorbBase + else + AmountVAT := PurchInvHeader.Amount; + end; + + WithholdingBusPostGrp := PurchInvLine."Wthldg. Tax Bus. Post. Group"; + WithholdingProdPostGrp := PurchInvLine."Wthldg. Tax Prod. Post. Group"; + end; + until PurchInvLine.Next() = 0; + + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest then begin + PurchaseLine.Reset(); + PurchaseLine.SetCurrentKey("Document Type", "Document No.", "Wthldg. Tax Bus. Post. Group", "Wthldg. Tax Prod. Post. Group"); + PurchaseLine.SetRange("Document Type", PurchaseLine."Document Type"::Order); + PurchaseLine.SetRange("Document No.", PurchInvHeader."Order No."); + PurchaseLine.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingBusPostGrp); + PurchaseLine.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingProdPostGrp); + PurchaseLine.CalcSums(PurchaseLine."Prepmt. Amt. Inv.", PurchaseLine."Prepmt Amt to Deduct"); + PrepaymentAmtDeducted := PurchaseLine."Prepmt Amt to Deduct"; + + if AmountVAT <> 0 then + AmountVAT := AmountVAT - PrepaymentAmtDeducted; + end; + + InsertWithholdingTax(TType::Purchase); + end; + + procedure InsertVendCreditWithholding(var PurchCreditHeader: Record "Purch. Cr. Memo Hdr."; AppliesID: Code[50]) + var + WithholdingTaxEntry: Record "Withholding Tax Entry"; + GLSetup: Record "General Ledger Setup"; + Vendor: Record Vendor; + begin + PurchCrMemoLine.Reset(); + PurchCrMemoLine.SetCurrentKey("Document No.", "Wthldg. Tax Bus. Post. Group", "Wthldg. Tax Prod. Post. Group"); + PurchCrMemoLine.SetRange("Document No.", PurchCreditHeader."No."); + PurchCrMemoLine.SetFilter(Quantity, '<>0'); + if PurchCrMemoLine.FindSet() then begin + WithholdingBusPostGrp := PurchCrMemoLine."Wthldg. Tax Bus. Post. Group"; + WithholdingProdPostGrp := PurchCrMemoLine."Wthldg. Tax Prod. Post. Group"; + + if WithholdingPostingSetup.Get(PurchCrMemoLine."Wthldg. Tax Bus. Post. Group", PurchCrMemoLine."Wthldg. Tax Prod. Post. Group") then + WithholdingMinInvoiceAmt := WithholdingPostingSetup."Wthldg. Tax Min. Inv. Amount"; + repeat + if WithholdingPostingSetup.Get(PurchCrMemoLine."Wthldg. Tax Bus. Post. Group", PurchCrMemoLine."Wthldg. Tax Prod. Post. Group") then begin + if (WithholdingBusPostGrp <> PurchCrMemoLine."Wthldg. Tax Bus. Post. Group") or + (WithholdingProdPostGrp <> PurchCrMemoLine."Wthldg. Tax Prod. Post. Group") + then + if WithholdingMinInvoiceAmt <> WithholdingPostingSetup."Wthldg. Tax Min. Inv. Amount" then + Error(WithholdingMinInvNotConsistentErr); + + WithholdingBusPostGrp := PurchCrMemoLine."Wthldg. Tax Bus. Post. Group"; + WithholdingProdPostGrp := PurchCrMemoLine."Wthldg. Tax Prod. Post. Group"; + end; + until PurchCrMemoLine.Next() = 0; + end; + + GLSetup.Get(); + if GLSetup."Enable Withholding Tax" then begin + Vendor.Get(PurchCreditHeader."Pay-to Vendor No."); + if (Vendor."WHT ABN" <> '') or Vendor."WHT Foreign Vend" then + exit; + + TotalInvoiceAmount := 0; + TotalInvoiceAmountLCY := 0; + PurchaseCrMemoLine.Reset(); + PurchaseCrMemoLine.SetRange("Document No.", PurchCreditHeader."No."); + PurchaseCrMemoLine.SetFilter(Quantity, '<>0'); + if PurchaseCrMemoLine.FindSet() then + repeat + if WithholdingPostingSetup.Get( + PurchaseCrMemoLine."Wthldg. Tax Bus. Post. Group", + PurchaseCrMemoLine."Wthldg. Tax Prod. Post. Group") + then + if PurchaseCrMemoLine."Withholding Tax Absorb Base" <> 0 then + TotalInvoiceAmount := TotalInvoiceAmount + PurchaseCrMemoLine."Withholding Tax Absorb Base" + else + TotalInvoiceAmount := TotalInvoiceAmount + PurchaseCrMemoLine.Amount; + until PurchaseCrMemoLine.Next() = 0; + + if PurchCreditHeader."Currency Code" = '' then + TotalInvoiceAmountLCY := TotalInvoiceAmount + else + TotalInvoiceAmountLCY := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + PurchCreditHeader."Document Date", + PurchCreditHeader."Currency Code", + TotalInvoiceAmount, + PurchCreditHeader."Currency Factor")); + + VendorLedgerEntries.Reset(); + if ((PurchCreditHeader."Applies-to Doc. Type" = PurchCreditHeader."Applies-to Doc. Type"::Invoice) and + (PurchCreditHeader."Applies-to Doc. No." <> '')) + then + VendorLedgerEntries.SetRange("Document No.", PurchCreditHeader."Applies-to Doc. No.") + else + if AppliesID <> '' then + VendorLedgerEntries.SetRange("Applies-to ID", AppliesID); + + if VendorLedgerEntries.GetFilters <> '' then begin + if VendorLedgerEntries.FindSet() then begin + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Purchase); + WithholdingTaxEntry.SetRange("Document No.", VendorLedgerEntries."Document No."); + if not WithholdingTaxEntry.FindFirst() then + if CheckWithholdingCalculationRule(TotalInvoiceAmountLCY, WithholdingPostingSetup) then + exit; + end; + end else + if CheckWithholdingCalculationRule(TotalInvoiceAmountLCY, WithholdingPostingSetup) then + exit; + end; + + PurchCrMemoLine.Reset(); + PurchCrMemoLine.SetCurrentKey("Document No.", "Wthldg. Tax Bus. Post. Group", "Wthldg. Tax Prod. Post. Group"); + PurchCrMemoLine.SetRange("Document No.", PurchCreditHeader."No."); + PurchCrMemoLine.SetFilter(Quantity, '<>0'); + if PurchCrMemoLine.FindSet() then + repeat + if WithholdingPostingSetup.Get(PurchCrMemoLine."Wthldg. Tax Bus. Post. Group", PurchCrMemoLine."Wthldg. Tax Prod. Post. Group") then + if WithholdingPostingSetup."Withholding Tax %" > 0 then begin + DocNo := PurchCrMemoLine."Document No."; + DocType := DocType::"Credit Memo"; + PayToAccType := PayToAccType::Vendor; + PayToVendCustNo := PurchCreditHeader."Pay-to Vendor No."; + BuyFromAccType := BuyFromAccType::Vendor; + GenBusPostGrp := PurchCrMemoLine."Gen. Bus. Posting Group"; + GenProdPostGrp := PurchCrMemoLine."Gen. Prod. Posting Group"; + TransType := TransType::Purchase; + BuyFromVendCustNo := PurchCreditHeader."WHT Actual Vendor No."; + PostingDate := PurchCreditHeader."Posting Date"; + DocDate := PurchCreditHeader."Document Date"; + CurrencyCode := PurchCreditHeader."Currency Code"; + CurrFactor := PurchCreditHeader."Currency Factor"; + ApplyDocType := PurchCreditHeader."Applies-to Doc. Type"; + ApplyDocNo := PurchCreditHeader."Applies-to Doc. No."; + "Applies-toID" := AppliesID; + SourceCode := PurchCreditHeader."Source Code"; + ReasonCode := PurchCreditHeader."Reason Code"; + + if (WithholdingBusPostGrp <> PurchCrMemoLine."Wthldg. Tax Bus. Post. Group") or + (WithholdingProdPostGrp <> PurchCrMemoLine."Wthldg. Tax Prod. Post. Group") + then begin + if AmountVAT <> 0 then + InsertWithholdingTax(TType::Purchase); + + WithholdingBusPostGrp := PurchCrMemoLine."Wthldg. Tax Bus. Post. Group"; + WithholdingProdPostGrp := PurchCrMemoLine."Wthldg. Tax Prod. Post. Group"; + PurchCreditHeader.Amount := 0; + AbsorbBase := 0; + AmountVAT := 0; + PurchCreditHeader.Amount := PurchCreditHeader.Amount + PurchCrMemoLine.Amount; + AbsorbBase := AbsorbBase + PurchCrMemoLine."Withholding Tax Absorb Base"; + + if AbsorbBase <> 0 then + AmountVAT := -AbsorbBase + else + AmountVAT := -PurchCreditHeader.Amount; + end else begin + WithholdingBusPostGrp := PurchCrMemoLine."Wthldg. Tax Bus. Post. Group"; + WithholdingProdPostGrp := PurchCrMemoLine."Wthldg. Tax Prod. Post. Group"; + PurchCreditHeader.Amount := PurchCreditHeader.Amount + PurchCrMemoLine.Amount; + AbsorbBase := AbsorbBase + PurchCrMemoLine."Withholding Tax Absorb Base"; + + if AbsorbBase <> 0 then + AmountVAT := -AbsorbBase + else + AmountVAT := -PurchCreditHeader.Amount; + end; + + WithholdingBusPostGrp := PurchCrMemoLine."Wthldg. Tax Bus. Post. Group"; + WithholdingProdPostGrp := PurchCrMemoLine."Wthldg. Tax Prod. Post. Group"; + end; + until PurchCrMemoLine.Next() = 0; + + InsertWithholdingTax(TType::Purchase); + end; + + procedure InsertVendJournalWithholdingTax(var GenJnlLine: Record "Gen. Journal Line") EntryNo: Integer + var + GLSetup: Record "General Ledger Setup"; + Vendor: Record Vendor; + begin + if ((GenJnlLine."Document Type" <> GenJnlLine."Document Type"::Invoice) and + (GenJnlLine."Document Type" <> GenJnlLine."Document Type"::"Credit Memo") and + (GenJnlLine."Document Type" <> GenJnlLine."Document Type"::Payment) and + (GenJnlLine."Document Type" <> GenJnlLine."Document Type"::Refund)) + then + exit; + + if not WithholdingPostingSetup.Get( + GenJnlLine."Wthldg. Tax Bus. Post. Group", GenJnlLine."Wthldg. Tax Prod. Post. Group") + then + exit; + + TransType := TransType::Purchase; + + case GenJnlLine."Document Type" of + GenJnlLine."Document Type"::Invoice: + DocType := DocType::Invoice; + + GenJnlLine."Document Type"::"Credit Memo": + DocType := DocType::"Credit Memo"; + + GenJnlLine."Document Type"::Payment: + DocType := DocType::Payment; + + GenJnlLine."Document Type"::Refund: + DocType := DocType::Refund; + end; + + PostingDate := GenJnlLine."Posting Date"; + DocNo := GenJnlLine."Document No."; + PayToAccType := PayToAccType::Vendor; + PayToVendCustNo := GenJnlLine."Account No."; + BuyFromAccType := BuyFromAccType::Vendor; + BuyFromVendCustNo := GenJnlLine."Account No."; + ActualVendorNo := GenJnlLine."WHT Actual Vendor No."; + ApplyDocType := GenJnlLine."Applies-to Doc. Type"; + ApplyDocNo := GenJnlLine."Applies-to Doc. No."; + "Applies-toID" := GenJnlLine."Applies-to ID"; + WithholdingBusPostGrp := GenJnlLine."Wthldg. Tax Bus. Post. Group"; + WithholdingProdPostGrp := GenJnlLine."Wthldg. Tax Prod. Post. Group"; + WithholdingPostingSetup.Reset(); + WithholdingPostingSetup.Get(WithholdingBusPostGrp, WithholdingProdPostGrp); + WithholdingRevenueType := WithholdingPostingSetup."Revenue Type"; + Amount := -GenJnlLine.Amount; + + if GenJnlLine."Bal. VAT %" <> 0 then + Amount := GenJnlLine."Bal. VAT Base Amount"; + + AbsorbBase := -GenJnlLine."Withholding Tax Absorb Base"; + + if AbsorbBase <> 0 then + AmountVAT := AbsorbBase + else + AmountVAT := Amount; + + CurrFactor := GenJnlLine."Currency Factor"; + DocDate := GenJnlLine."Document Date"; + Dim1 := GenJnlLine."Shortcut Dimension 1 Code"; + Dim2 := GenJnlLine."Shortcut Dimension 2 Code"; + ExtDocNo := GenJnlLine."External Document No."; + CurrencyCode := GenJnlLine."Currency Code"; + SourceCode := GenJnlLine."Source Code"; + + TempGenJnlLine.Reset(); + TempGenJnlLine.DeleteAll(); + + TempGenJnlLine := GenJnlLine; + + GLSetup.Get(); + if GLSetup."Enable Withholding Tax" then begin + Vendor.Get(GenJnlLine."Account No."); + if Vendor."WHT ABN" <> '' then + exit; + if CheckWithholdingCalculationRule(GenJnlLine."Amount (LCY)", WithholdingPostingSetup) then + exit; + end; + + exit(InsertWithholdingTax(TType::Purchase)); + end; + + procedure CheckWithholdingCalculationRule(TotalInvoiceAmountLCY: Decimal; WithholdingPostingSetup: Record "Withholding Tax Posting Setup"): Boolean + begin + case WithholdingPostingSetup."Wthldg. Tax Calculation Rule" of + WithholdingPostingSetup."Wthldg. Tax Calculation Rule"::"Less than": + if Abs(TotalInvoiceAmountLCY) < WithholdingPostingSetup."Wthldg. Tax Min. Inv. Amount" then + exit(true); + + WithholdingPostingSetup."Wthldg. Tax Calculation Rule"::"Less than or equal to": + if Abs(TotalInvoiceAmountLCY) <= WithholdingPostingSetup."Wthldg. Tax Min. Inv. Amount" then + exit(true); + + WithholdingPostingSetup."Wthldg. Tax Calculation Rule"::"Equal to": + if Abs(TotalInvoiceAmountLCY) = WithholdingPostingSetup."Wthldg. Tax Min. Inv. Amount" then + exit(true); + + WithholdingPostingSetup."Wthldg. Tax Calculation Rule"::"Greater than": + if Abs(TotalInvoiceAmountLCY) > WithholdingPostingSetup."Wthldg. Tax Min. Inv. Amount" then + exit(true); + + WithholdingPostingSetup."Wthldg. Tax Calculation Rule"::"Greater than or equal to": + if Abs(TotalInvoiceAmountLCY) >= WithholdingPostingSetup."Wthldg. Tax Min. Inv. Amount" then + exit(true); + end; + + exit(false); + end; + + procedure InsertWithholdingTax(TransType: Option Purchase,Sale) EntryNo: Integer + var + WithholdingTaxEntry: Record "Withholding Tax Entry"; + WithholdingTaxEntry1: Record "Withholding Tax Entry"; + VendLedgerEntry: Record "Vendor Ledger Entry"; + VendLedgerEntry1: Record "Vendor Ledger Entry"; + PurchCrMemoHeader: Record "Purch. Cr. Memo Hdr."; + WithholdingTaxEntryTemp: Record "Withholding Tax Entry"; + VendLedgEntry: Record "Vendor Ledger Entry"; + VendLedgEntry1: Record "Vendor Ledger Entry"; + WithholdingTaxEntry3: Record "Withholding Tax Entry"; + NoSeries: Codeunit "No. Series"; + TotalWithholdingTax: Decimal; + TotalWithholdingTaxBase: Decimal; + ExpectedAmount: Decimal; + PaymentAmount1: Decimal; + AppldAmount: Decimal; + RemainingAmt: Decimal; + WithholdingTaxPart: Decimal; + begin + if WithholdingPostingSetup.Get(WithholdingBusPostGrp, WithholdingProdPostGrp) then + if WithholdingPostingSetup."Realized Withholding Tax Type" <> WithholdingPostingSetup."Realized Withholding Tax Type"::" " then begin + UnrealizedWithholding := (WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Payment); + WithholdingTaxEntry.Init(); + WithholdingTaxEntry."Entry No." := NextEntryNo(); + WithholdingTaxEntry."Gen. Bus. Posting Group" := GenBusPostGrp; + WithholdingTaxEntry."Gen. Prod. Posting Group" := GenProdPostGrp; + WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group" := WithholdingBusPostGrp; + WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group" := WithholdingProdPostGrp; + WithholdingTaxEntry."Posting Date" := PostingDate; + WithholdingTaxEntry."Document Date" := DocDate; + WithholdingTaxEntry."Document No." := DocNo; + WithholdingTaxEntry."Withholding Tax %" := WithholdingPostingSetup."Withholding Tax %"; + WithholdingTaxEntry."Applies-to Doc. Type" := ApplyDocType; + WithholdingTaxEntry."Applies-to Doc. No." := ApplyDocNo; + WithholdingTaxEntry."Source Code" := SourceCode; + WithholdingTaxEntry."Reason Code" := ReasonCode; + WithholdingTaxEntry."Withholding Tax Revenue Type" := WithholdingPostingSetup."Revenue Type"; + WithholdingTaxEntry."Document Type" := DocType; + + if TransType = TransType::Purchase then + WithholdingTaxEntry."Transaction Type" := WithholdingTaxEntry."Transaction Type"::Purchase + else + WithholdingTaxEntry."Transaction Type" := WithholdingTaxEntry."Transaction Type"::Sale; + + WithholdingTaxEntry."Source Code" := SourceCode; + WithholdingTaxEntry."Bill-to/Pay-to No." := PayToVendCustNo; + WithholdingTaxEntry."User ID" := UserId; + WithholdingTaxEntry."Currency Code" := CurrencyCode; + + // VAT for G/L entry/entries + if UnrealizedWithholding then begin + SetWithholdingTaxEntryAmounts(WithholdingTaxEntry, AbsorbBase, AmountVAT, CurrFactor); + if WithholdingTaxEntry."Applies-to Doc. No." <> '' then begin + WithholdingTaxEntry1.Reset(); + WithholdingTaxEntry1.SetRange("Document Type", WithholdingTaxEntry."Applies-to Doc. Type"); + WithholdingTaxEntry1.SetRange("Document No.", WithholdingTaxEntry."Applies-to Doc. No."); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntry1.FindFirst() then begin + if Abs(WithholdingTaxEntry."Unrealized Amount") <= + Abs(WithholdingTaxEntry1."Remaining Unrealized Amount") + then begin + WithholdingTaxEntry1."Remaining Unrealized Amount" := + WithholdingTaxEntry1."Remaining Unrealized Amount" + WithholdingTaxEntry."Unrealized Amount"; + WithholdingTaxEntry1."Remaining Unrealized Base" := + WithholdingTaxEntry1."Remaining Unrealized Base" + WithholdingTaxEntry."Unrealized Base"; + WithholdingTaxEntry."Remaining Unrealized Amount" := 0; + WithholdingTaxEntry."Remaining Unrealized Base" := 0; + WithholdingTaxEntry.Closed := true; + end else begin + WithholdingTaxEntry1."Remaining Unrealized Amount" := 0; + WithholdingTaxEntry1."Remaining Unrealized Base" := 0; + WithholdingTaxEntry."Remaining Unrealized Amount" := + WithholdingTaxEntry1."Remaining Unrealized Amount" + WithholdingTaxEntry."Unrealized Amount"; + WithholdingTaxEntry."Remaining Unrealized Base" := + WithholdingTaxEntry1."Remaining Unrealized Base" + WithholdingTaxEntry."Unrealized Base"; + end; + + if (WithholdingTaxEntry1."Remaining Unrealized Base" = 0) and + (WithholdingTaxEntry1."Remaining Unrealized Amount" = 0) + then + WithholdingTaxEntry1.Closed := true; + + WithholdingTaxEntry1.Modify(); + WithholdingTaxEntry."Applies-to Entry No." := WithholdingTaxEntry1."Entry No."; + end; + end else + if "Applies-toID" <> '' then + if (TransType = TransType::Purchase) and + (WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::"Credit Memo") + then begin + VendLedgerEntry1.SetRange("Applies-to ID", "Applies-toID"); + if VendLedgerEntry1.FindSet() then + repeat + if FindWithholdingTaxEntryForApply( + WithholdingTaxEntry1, VendLedgerEntry1."Document Type", VendLedgerEntry1."Document No.", + WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group") + then begin + VendLedgerEntry1.CalcFields("Remaining Amount"); + WithholdingTaxPart := Abs(VendLedgerEntry1."Amount to Apply" / VendLedgerEntry1."Remaining Amount"); + + if WithholdingTaxPart >= 1 then begin + if Abs(WithholdingTaxEntry."Remaining Unrealized Amount") <= + Abs(WithholdingTaxEntry1."Remaining Unrealized Amount" * WithholdingTaxPart) + then + CalcWithholdingEntriesRemAmounts(WithholdingTaxEntry1, WithholdingTaxEntry, WithholdingTaxPart) + else + CalcWithholdingEntriesRemAmounts(WithholdingTaxEntry, WithholdingTaxEntry1, WithholdingTaxPart); + end else + CalcWithholdingEntriesRemAmounts(WithholdingTaxEntry1, WithholdingTaxEntry, WithholdingTaxPart) + end; + + WithholdingTaxEntry1."Applies-to Entry No." := WithholdingTaxEntry."Entry No."; + WithholdingTaxEntry1.Modify(); + until VendLedgerEntry1.Next() = 0; + end; + end else begin + if AbsorbBase <> 0 then + WithholdingTaxEntry.Base := AbsorbBase + else + WithholdingTaxEntry.Base := AmountVAT; + + WithholdingTaxEntry."Unrealized Amount" := 0; + WithholdingTaxEntry."Unrealized Base" := 0; + WithholdingTaxEntry."Remaining Unrealized Amount" := 0; + WithholdingTaxEntry."Remaining Unrealized Base" := 0; + WithholdingTaxEntry.Amount := Round(WithholdingTaxEntry.Base * WithholdingTaxEntry."Withholding Tax %" / 100); + WithholdingTaxEntry."Rem Realized Amount" := WithholdingTaxEntry.Amount; + WithholdingTaxEntry."Rem Realized Base" := WithholdingTaxEntry.Base; + WithholdingTaxEntry."Original Document No." := DocNo; + WithholdingTaxEntry."Withholding Tax Report" := WithholdingPostingSetup."Withholding Tax Report"; + + if ((WithholdingReportLineNo = '') and + (WithholdingPostingSetup."Wthldg. Tax Rep Line No Series" <> '')) + then + WithholdingTaxEntry."Wthldg. Tax Report Line No" := NoSeries.GetNextNo(WithholdingPostingSetup."Wthldg. Tax Rep Line No Series", WithholdingTaxEntry."Posting Date"); + + if TransType = TransType::Purchase then begin + if ((WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::Invoice) or + (WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::Payment)) + then begin + WithholdingTaxEntry.Base := Abs(WithholdingTaxEntry.Base); + WithholdingTaxEntry.Amount := Abs(WithholdingTaxEntry.Amount); + WithholdingTaxEntry."Payment Amount" := Abs(Amount); + WithholdingTaxEntry."Rem Realized Base" := WithholdingTaxEntry.Base; + WithholdingTaxEntry."Rem Realized Amount" := WithholdingTaxEntry.Amount; + if (WithholdingPostingSetup."Realized Withholding Tax Type" = + WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest) + then + if WithholdingTaxEntry."Applies-to Doc. No." <> '' then begin + WithholdingTaxEntry1.Reset(); + WithholdingTaxEntry1.SetRange("Document Type", WithholdingTaxEntry."Applies-to Doc. Type"); + WithholdingTaxEntry1.SetRange("Document No.", WithholdingTaxEntry."Applies-to Doc. No."); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::Invoice then + WithholdingTaxEntry1.SetRange( + "Document Type", + WithholdingTaxEntry1."Document Type"::Payment, + WithholdingTaxEntry1."Document Type"::"Credit Memo"); + + if WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::Payment then + WithholdingTaxEntry1.SetFilter( + "Document Type", + '%1|%2', + WithholdingTaxEntry1."Document Type"::Invoice, + WithholdingTaxEntry1."Document Type"::Refund); + + if WithholdingTaxEntry1.FindFirst() then + if WithholdingTaxEntry1.Prepayment then begin + PaymentAmount1 := WithholdingTaxEntry.Base; + WithholdingTaxEntry3.Reset(); + WithholdingTaxEntry3 := WithholdingTaxEntry1; + + PurchCrMemoHeader.Reset(); + PurchCrMemoHeader.SetRange("Applies-to Doc. No.", WithholdingTaxEntry."Applies-to Doc. No."); + PurchCrMemoHeader.SetRange("Applies-to Doc. Type", PurchCrMemoHeader."Applies-to Doc. Type"::Invoice); + if PurchCrMemoHeader.FindFirst() then begin + TempRemAmt := 0; + VendLedgEntry1.SetRange("Document No.", PurchCrMemoHeader."No."); + VendLedgEntry1.SetRange("Document Type", VendLedgEntry1."Document Type"::"Credit Memo"); + if VendLedgEntry1.FindFirst() then + VendLedgEntry1.CalcFields(Amount, "Remaining Amount"); + + WithholdingTaxEntryTemp.Reset(); + WithholdingTaxEntryTemp.SetRange("Document No.", PurchCrMemoHeader."No."); + WithholdingTaxEntryTemp.SetRange("Document Type", WithholdingTaxEntry."Document Type"::"Credit Memo"); + WithholdingTaxEntryTemp.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Purchase); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntryTemp.FindFirst() then begin + TempRemBase := WithholdingTaxEntryTemp."Unrealized Amount"; + TempRemAmt := WithholdingTaxEntryTemp."Unrealized Base"; + end; + end; + + VendLedgEntry.Reset(); + VendLedgEntry.SetRange("Document No.", WithholdingTaxEntry."Applies-to Doc. No."); + if WithholdingTaxEntry."Applies-to Doc. Type" = WithholdingTaxEntry."Applies-to Doc. Type"::Invoice then + VendLedgEntry.SetRange("Document Type", VendLedgEntry."Document Type"::Invoice) + else + if WithholdingTaxEntry."Applies-to Doc. Type" = WithholdingTaxEntry."Applies-to Doc. Type"::"Credit Memo" then + VendLedgEntry.SetRange("Document Type", VendLedgEntry."Document Type"::"Credit Memo"); + + if VendLedgEntry.FindFirst() then + VendLedgEntry.CalcFields(Amount, "Remaining Amount"); + + ExpectedAmount := -(VendLedgEntry.Amount + VendLedgEntry1.Amount); + + if VendLedgEntry1."Amount (LCY)" = 0 then + VendLedgEntry1."WHT Rem. Amt" := 0; + + if (WithholdingTaxEntry."Posting Date" <= VendLedgEntry."Pmt. Discount Date") and + (Abs(PaymentAmount1) >= + (Abs(VendLedgEntry."WHT Rem. Amt" + VendLedgEntry1."WHT Rem. Amt") - + Abs(VendLedgEntry."Original Pmt. Disc. Possible"))) + then begin + AppldAmount := + Round( + ((PaymentAmount1 - VendLedgEntry."Original Pmt. Disc. Possible") * + (WithholdingTaxEntry1."Unrealized Base" + TempRemAmt)) / + ExpectedAmount); + WithholdingTaxEntry3."Remaining Unrealized Base" := + Round( + WithholdingTaxEntry1."Remaining Unrealized Base" - + Round( + ((PaymentAmount1 - VendLedgEntry."Original Pmt. Disc. Possible") * + (WithholdingTaxEntry1."Unrealized Base" + TempRemAmt)) / + ExpectedAmount)); + WithholdingTaxEntry3."Remaining Unrealized Amount" := + Round( + WithholdingTaxEntry1."Remaining Unrealized Amount" - + Round( + ((PaymentAmount1 - VendLedgEntry."Original Pmt. Disc. Possible") * + (WithholdingTaxEntry1."Unrealized Amount" + TempRemBase)) / + ExpectedAmount)); + end else begin + AppldAmount := + Round( + (PaymentAmount1 * (WithholdingTaxEntry1."Unrealized Base" + TempRemAmt)) / + ExpectedAmount); + WithholdingTaxEntry3."Remaining Unrealized Base" := + Round( + WithholdingTaxEntry1."Remaining Unrealized Base" - + Round( + (PaymentAmount1 * (WithholdingTaxEntry1."Unrealized Base" + TempRemAmt)) / + ExpectedAmount)); + WithholdingTaxEntry3."Remaining Unrealized Amount" := + Round( + WithholdingTaxEntry1."Remaining Unrealized Amount" - + Round( + (PaymentAmount1 * (WithholdingTaxEntry1."Unrealized Amount" + TempRemBase)) / + ExpectedAmount)); + end; + + WithholdingTaxEntry."Applies-to Entry No." := WithholdingTaxEntry1."Entry No."; + WithholdingTaxEntry."Unreal. Wthldg. Tax Entry No." := WithholdingTaxEntry1."Entry No."; + WithholdingTaxEntry."Withholding Tax %" := WithholdingTaxEntry1."Withholding Tax %"; + WithholdingTaxEntry.Base := Round(AppldAmount); + WithholdingTaxEntry.Amount := Round(WithholdingTaxEntry.Base * WithholdingTaxEntry."Withholding Tax %" / 100); + WithholdingTaxEntry."Payment Amount" := PaymentAmount1; + WithholdingTaxEntry."Rem Realized Base" := 0; + WithholdingTaxEntry."Rem Realized Amount" := 0; + + if CurrencyCode = '' then begin + WithholdingTaxEntry3."Rem Unrealized Amount (LCY)" := + WithholdingTaxEntry1."Rem Unrealized Amount (LCY)" - WithholdingTaxEntry.Amount; + WithholdingTaxEntry3."Rem Unrealized Base (LCY)" := + WithholdingTaxEntry1."Rem Unrealized Base (LCY)" - WithholdingTaxEntry.Base; + end else begin + WithholdingTaxEntry3."Rem Unrealized Amount (LCY)" := WithholdingTaxEntry1."Rem Unrealized Amount (LCY)" - + Round(CurrExchRate.ExchangeAmtFCYToLCY(DocDate, CurrencyCode, WithholdingTaxEntry.Amount, CurrFactor)); + WithholdingTaxEntry3."Rem Unrealized Base (LCY)" := WithholdingTaxEntry1."Rem Unrealized Base (LCY)" - + Round(CurrExchRate.ExchangeAmtFCYToLCY(DocDate, CurrencyCode, WithholdingTaxEntry.Base, CurrFactor)); + end; + + if (WithholdingTaxEntry3."Remaining Unrealized Base" = 0) and (WithholdingTaxEntry3."Remaining Unrealized Amount" = 0) then + WithholdingTaxEntry3.Closed := true; + WithholdingTaxEntry3.Modify(); + end else begin + if WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::Invoice then begin + if Abs(WithholdingTaxEntry1."Rem Realized Amount") >= Abs(WithholdingTaxEntry.Amount) then begin + if ((WithholdingTaxEntry1."Document Type" = WithholdingTaxEntry1."Document Type"::"Credit Memo") or + (WithholdingTaxEntry1."Document Type" = WithholdingTaxEntry1."Document Type"::Refund)) + then begin + WithholdingTaxEntry1."Rem Realized Base" := + WithholdingTaxEntry1."Rem Realized Base" + WithholdingTaxEntry.Base; + WithholdingTaxEntry1."Rem Realized Amount" := + WithholdingTaxEntry1."Rem Realized Amount" + WithholdingTaxEntry.Amount; + end else begin + WithholdingTaxEntry1."Rem Realized Base" := + WithholdingTaxEntry1."Rem Realized Base" - WithholdingTaxEntry.Base; + WithholdingTaxEntry1."Rem Realized Amount" := + WithholdingTaxEntry1."Rem Realized Amount" - WithholdingTaxEntry.Amount; + WithholdingTaxEntry.Amount := 0; + end; + + if CurrencyCode = '' then begin + WithholdingTaxEntry1."Rem Realized Base (LCY)" := WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := WithholdingTaxEntry1."Rem Realized Amount"; + end else begin + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Amount", CurrFactor)); + WithholdingTaxEntry1."Rem Realized Base (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Base", CurrFactor)); + end; + end else begin + if ((WithholdingTaxEntry1."Document Type" = WithholdingTaxEntry1."Document Type"::"Credit Memo") or + (WithholdingTaxEntry1."Document Type" = WithholdingTaxEntry1."Document Type"::Refund)) + then begin + WithholdingTaxEntry."Rem Realized Base" := WithholdingTaxEntry."Rem Realized Base" + WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry."Rem Realized Amount" := WithholdingTaxEntry."Rem Realized Amount" + WithholdingTaxEntry1."Rem Realized Amount"; + end else begin + WithholdingTaxEntry.Base := WithholdingTaxEntry.Base - WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry.Amount := WithholdingTaxEntry.Amount - WithholdingTaxEntry1."Rem Realized Amount"; + WithholdingTaxEntry."Rem Realized Base" := WithholdingTaxEntry."Rem Realized Base" - WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry."Rem Realized Amount" := WithholdingTaxEntry."Rem Realized Amount" - WithholdingTaxEntry1."Rem Realized Amount"; + end; + + WithholdingTaxEntry1."Rem Realized Base" := 0; + WithholdingTaxEntry1."Rem Realized Amount" := 0; + WithholdingTaxEntry1."Rem Realized Base (LCY)" := 0; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := 0; + end; + end else begin + TotAmt := 0; + TotAmt := TempGenJnlLine.Amount; + VendLedgerEntry.Reset(); + VendLedgerEntry.SetRange("Document No.", WithholdingTaxEntry1."Document No."); + VendLedgerEntry.SetRange("Document Type", WithholdingTaxEntry1."Document Type"); + if VendLedgerEntry.FindFirst() then begin + VendorLedgerEntries.Reset(); + VendorLedgerEntries.SetRange("Entry No.", VendLedgerEntry."Entry No."); + if VendorLedgerEntries.FindSet() then begin + VendorLedgerEntries.CalcFields( + Amount, "Amount (LCY)", + "Remaining Amount", "Remaining Amt. (LCY)"); + + if ((WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::Payment) and + (WithholdingTaxEntry1."Document Type" = WithholdingTaxEntry1."Document Type"::Invoice)) + then + if CheckPmtDisc( + TempGenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"), + Abs(VendorLedgerEntries."WHT Rem. Amt"), + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), + Abs(TotAmt)) + then + TotAmt := TotAmt - VendorLedgerEntries."Original Pmt. Disc. Possible"; + + if Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") < Abs(TotAmt) then begin + if ((WithholdingTaxEntry1."Document Type" = WithholdingTaxEntry1."Document Type"::"Credit Memo") or + (WithholdingTaxEntry1."Document Type" = WithholdingTaxEntry1."Document Type"::Refund)) + then begin + WithholdingTaxEntry."Rem Realized Base" := WithholdingTaxEntry."Rem Realized Base" + WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry."Rem Realized Amount" := + WithholdingTaxEntry."Rem Realized Amount" + WithholdingTaxEntry1."Rem Realized Amount"; + end else + if CheckPmtDisc( + TempGenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"), + Abs(VendorLedgerEntries."WHT Rem. Amt"), + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), + Abs(TotAmt)) + then begin + WithholdingTaxEntry.Base := (WithholdingTaxEntry.Base - + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax" - + VendorLedgerEntries."Original Pmt. Disc. Possible")) - Abs(WithholdingTaxEntry1.Amount); + WithholdingTaxEntry.Amount := + Round(WithholdingTaxEntry.Base * WithholdingTaxEntry."Withholding Tax %" / 100); + WithholdingTaxEntry."Rem Realized Base" := WithholdingTaxEntry."Rem Realized Base" - + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax" - + VendorLedgerEntries."Original Pmt. Disc. Possible" - WithholdingTaxEntry1.Amount); + WithholdingTaxEntry."Rem Realized Amount" := WithholdingTaxEntry."Rem Realized Amount" - + Round(Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax" - + VendorLedgerEntries."Original Pmt. Disc. Possible" - WithholdingTaxEntry1.Amount) * + WithholdingTaxEntry."Withholding Tax %" / 100); + end else begin + WithholdingTaxEntry.Base := (WithholdingTaxEntry.Base - + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax")) - Abs(WithholdingTaxEntry1.Amount); + WithholdingTaxEntry.Amount := + Round(WithholdingTaxEntry.Base * WithholdingTaxEntry."Withholding Tax %" / 100); + WithholdingTaxEntry."Rem Realized Base" := WithholdingTaxEntry."Rem Realized Base" - + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax" - WithholdingTaxEntry1.Amount); + WithholdingTaxEntry."Rem Realized Amount" := WithholdingTaxEntry."Rem Realized Amount" - + Round(Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax" - WithholdingTaxEntry1.Amount) * WithholdingTaxEntry."Withholding Tax %" / 100); + end; + + WithholdingTaxEntry1."Rem Realized Base" := 0; + WithholdingTaxEntry1."Rem Realized Amount" := 0; + WithholdingTaxEntry1."Rem Realized Base (LCY)" := 0; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := 0; + end else begin + if ((WithholdingTaxEntry1."Document Type" = WithholdingTaxEntry1."Document Type"::"Credit Memo") or + (WithholdingTaxEntry1."Document Type" = WithholdingTaxEntry1."Document Type"::Refund)) + then begin + WithholdingTaxEntry1."Rem Realized Base" := + WithholdingTaxEntry1."Rem Realized Base" + WithholdingTaxEntry.Base; + WithholdingTaxEntry1."Rem Realized Amount" := + WithholdingTaxEntry1."Rem Realized Amount" + WithholdingTaxEntry.Amount; + end else begin + WithholdingTaxEntry1."Rem Realized Base" := + WithholdingTaxEntry1."Rem Realized Base" - TotAmt; + WithholdingTaxEntry1."Rem Realized Amount" := + WithholdingTaxEntry1."Rem Realized Amount" - Round(Abs(TotAmt) * WithholdingTaxEntry."Withholding Tax %" / 100); + WithholdingTaxEntry.Amount := 0; + end; + + if CurrencyCode = '' then begin + WithholdingTaxEntry1."Rem Realized Base (LCY)" := WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := WithholdingTaxEntry1."Rem Realized Amount"; + end else begin + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Amount", CurrFactor)); + WithholdingTaxEntry1."Rem Realized Base (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Base", CurrFactor)); + end; + + TotAmt := 0; + end; + end; + end; + end; + + if (WithholdingTaxEntry1."Rem Realized Amount" = 0) and + (WithholdingTaxEntry1."Rem Realized Base" = 0) + then + WithholdingTaxEntry1.Closed := true; + WithholdingTaxEntry1.Modify(); + end; + end else + if "Applies-toID" <> '' then begin + if WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::Payment then begin + TotAmt := 0; + RemainingAmt := 0; + VendorLedgerEntries1.Reset(); + VendorLedgerEntries1.SetRange("Applies-to ID", TempGenJnlLine."Applies-to ID"); + if VendorLedgerEntries1.FindSet() then + repeat + VendorLedgerEntries1.CalcFields( + Amount, "Amount (LCY)", "Remaining Amount", "Remaining Amt. (LCY)", + "Original Amount", "Original Amt. (LCY)"); + + if VendorLedgerEntries1."Rem. Amt for Withholding Tax" = 0 then + VendorLedgerEntries1."Rem. Amt for Withholding Tax" := VendorLedgerEntries1."Remaining Amt. (LCY)"; + + RemainingAmt := RemainingAmt + VendorLedgerEntries1."Rem. Amt for Withholding Tax"; + until VendorLedgerEntries1.Next() = 0; + + TotAmt := Abs(TempGenJnlLine.Amount); + + VendLedgerEntry.Reset(); + VendLedgerEntry.SetRange("Applies-to ID", "Applies-toID"); + VendLedgerEntry.SetRange("Document Type", VendLedgerEntry."Document Type"::Refund); + if VendLedgerEntry.FindSet() then begin + TotalWithholdingTaxBase := WithholdingTaxEntry."Rem Realized Base"; + TotalWithholdingTax := WithholdingTaxEntry."Rem Realized Amount"; + repeat + WithholdingTaxEntry1.Reset(); + WithholdingTaxEntry1.SetRange(Settled, false); + WithholdingTaxEntry1.SetRange("Document No.", VendLedgerEntry."Document No."); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntry1.FindFirst() then begin + if Abs(TotalWithholdingTax) > Abs(WithholdingTaxEntry1."Rem Realized Amount") then begin + WithholdingTaxEntry."Rem Realized Base" := + WithholdingTaxEntry."Rem Realized Base" + WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry."Rem Realized Amount" := + WithholdingTaxEntry."Rem Realized Amount" + WithholdingTaxEntry1."Rem Realized Amount"; + TotalWithholdingTaxBase := TotalWithholdingTaxBase - Abs(WithholdingTaxEntry1."Rem Realized Base"); + TotalWithholdingTax := TotalWithholdingTax - Abs(WithholdingTaxEntry1."Rem Realized Amount"); + WithholdingTaxEntry1."Rem Realized Base" := 0; + WithholdingTaxEntry1."Rem Realized Amount" := 0; + WithholdingTaxEntry1."Rem Realized Base (LCY)" := 0; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := 0; + end else + if (Abs(TotalWithholdingTax) > 0) and (Abs(TotalWithholdingTax) <= Abs(WithholdingTaxEntry1."Rem Realized Amount")) then begin + WithholdingTaxEntry1."Rem Realized Base" := + WithholdingTaxEntry1."Rem Realized Base" + TotalWithholdingTaxBase; + WithholdingTaxEntry1."Rem Realized Amount" := + WithholdingTaxEntry1."Rem Realized Amount" + TotalWithholdingTax; + WithholdingTaxEntry."Rem Realized Amount" := 0; + WithholdingTaxEntry."Rem Realized Base" := 0; + TotalWithholdingTaxBase := 0; + TotalWithholdingTax := 0; + end; + + if CurrencyCode = '' then begin + WithholdingTaxEntry1."Rem Realized Base (LCY)" := WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := WithholdingTaxEntry1."Rem Realized Amount"; + end else begin + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Amount (LCY)", CurrFactor)); + WithholdingTaxEntry1."Rem Realized Base (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Base (LCY)", CurrFactor)); + end; + + if ((WithholdingTaxEntry1."Rem Realized Amount" = 0) and + (WithholdingTaxEntry1."Rem Realized Base" = 0)) + then + WithholdingTaxEntry1.Closed := true; + + WithholdingTaxEntry1.Modify(); + end; + until VendLedgerEntry.Next() = 0; + + WithholdingTaxEntry."Applies-to Entry No." := WithholdingTaxEntry1."Entry No."; + end; + + VendLedgerEntry.Reset(); + VendLedgerEntry.SetRange("Applies-to ID", "Applies-toID"); + VendLedgerEntry.SetRange("Document Type", VendLedgerEntry."Document Type"::Invoice); + if VendLedgerEntry.FindSet() then begin + TotalWithholdingTaxBase := WithholdingTaxEntry."Rem Realized Base"; + TotalWithholdingTax := WithholdingTaxEntry."Rem Realized Amount"; + repeat + if VendLedgerEntry.Prepayment then begin + VendorLedgerEntries.Reset(); + VendorLedgerEntries.SetRange("Entry No.", VendLedgerEntry."Entry No."); + if VendorLedgerEntries.FindFirst() then begin + VendorLedgerEntries.CalcFields( + Amount, "Amount (LCY)", + "Remaining Amount", "Remaining Amt. (LCY)"); + + if CheckPmtDisc( + TempGenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"), + Abs(VendorLedgerEntries."WHT Rem. Amt"), + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), + Abs(TotAmt)) + then + TotAmt := TotAmt - VendorLedgerEntries."Original Pmt. Disc. Possible"; + + if (Abs(RemainingAmt) < Abs(TotAmt)) or + (Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") < Abs(TotAmt)) + then begin + if CheckPmtDisc( + TempGenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"), + Abs(VendorLedgerEntries."WHT Rem. Amt"), + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), + Abs(TotAmt)) + then begin + TempGenJnlLine.Validate( + Amount, + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax" - + VendorLedgerEntries."Original Pmt. Disc. Possible")); + + if VendorLedgerEntries."Document Type" <> + VendorLedgerEntries."Document Type"::"Credit Memo" + then + TotAmt := TotAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + + RemainingAmt := + RemainingAmt - + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + end else begin + TempGenJnlLine.Validate(Amount, Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax")); + if VendorLedgerEntries."Document Type" <> + VendorLedgerEntries."Document Type"::"Credit Memo" + then + TotAmt := TotAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + + RemainingAmt := RemainingAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax"; + end; + end else begin + if CheckPmtDisc( + TempGenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"), + Abs(VendorLedgerEntries."WHT Rem. Amt"), + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), + Abs(TotAmt)) + then + TempGenJnlLine.Validate(Amount, TotAmt + VendorLedgerEntries."Original Pmt. Disc. Possible") + else + TempGenJnlLine.Validate(Amount, TotAmt); + + WithholdingTaxEntry.Amount := 0; + TotAmt := 0; + end; + + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::Invoice then + TempGenJnlLine."Applies-to Doc. Type" := TempGenJnlLine."Applies-to Doc. Type"::Invoice + else begin + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::"Credit Memo" then + TempGenJnlLine."Applies-to Doc. Type" := TempGenJnlLine."Applies-to Doc. Type"::"Credit Memo"; + + RemainingAmt := RemainingAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + TotAmt := TotAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + end; + + TempGenJnlLine."Applies-to Doc. No." := VendorLedgerEntries."Document No."; + PaymentAmount1 := TempGenJnlLine.Amount; + + WithholdingTaxEntry1.Reset(); + WithholdingTaxEntry1.SetCurrentKey("Transaction Type", "Document No.", "Document Type", "Bill-to/Pay-to No."); + WithholdingTaxEntry1.SetRange("Transaction Type", WithholdingTaxEntry1."Transaction Type"::Purchase); + if TempGenJnlLine."Applies-to Doc. No." <> '' then begin + WithholdingTaxEntry1.SetRange("Document No.", TempGenJnlLine."Applies-to Doc. No."); + WithholdingTaxEntry1.SetRange("Document Type", TempGenJnlLine."Applies-to Doc. Type"); + end else + WithholdingTaxEntry1.SetRange("Bill-to/Pay-to No.", TempGenJnlLine."Account No."); + + if WithholdingTaxEntry1.FindSet() then + repeat + WithholdingTaxEntry3.Reset(); + WithholdingTaxEntry3 := WithholdingTaxEntry1; + + PurchCrMemoHeader.Reset(); + PurchCrMemoHeader.SetRange("Applies-to Doc. No.", TempGenJnlLine."Applies-to Doc. No."); + PurchCrMemoHeader.SetRange( + "Applies-to Doc. Type", PurchCrMemoHeader."Applies-to Doc. Type"::Invoice); + if PurchCrMemoHeader.FindFirst() then begin + TempRemAmt := 0; + + VendLedgEntry1.SetRange("Document No.", PurchCrMemoHeader."No."); + VendLedgEntry1.SetRange("Document Type", VendLedgEntry1."Document Type"::"Credit Memo"); + if VendLedgEntry1.FindFirst() then + VendLedgEntry1.CalcFields(Amount, "Remaining Amount"); + + WithholdingTaxEntryTemp.Reset(); + WithholdingTaxEntryTemp.SetRange("Document No.", PurchCrMemoHeader."No."); + WithholdingTaxEntryTemp.SetRange("Document Type", WithholdingTaxEntry1."Document Type"::"Credit Memo"); + WithholdingTaxEntryTemp.SetRange("Transaction Type", WithholdingTaxEntry1."Transaction Type"::Purchase); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry1."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry1."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntryTemp.FindFirst() then begin + TempRemBase := WithholdingTaxEntryTemp."Unrealized Amount"; + TempRemAmt := WithholdingTaxEntryTemp."Unrealized Base"; + end; + end; + + VendLedgEntry.Reset(); + VendLedgEntry.SetRange("Document No.", TempGenJnlLine."Applies-to Doc. No."); + if TempGenJnlLine."Applies-to Doc. Type" = TempGenJnlLine."Applies-to Doc. Type"::Invoice then + VendLedgEntry.SetRange("Document Type", VendLedgEntry."Document Type"::Invoice) + else + if TempGenJnlLine."Applies-to Doc. Type" = + TempGenJnlLine."Applies-to Doc. Type"::"Credit Memo" + then + VendLedgEntry.SetRange("Document Type", VendLedgEntry."Document Type"::"Credit Memo"); + + if VendLedgEntry.FindFirst() then + VendLedgEntry.CalcFields(Amount, "Remaining Amount"); + + ExpectedAmount := -(VendLedgEntry.Amount + VendLedgEntry1.Amount); + + if VendLedgEntry1."Amount (LCY)" = 0 then + VendLedgEntry1."WHT Rem. Amt" := 0; + if (TempGenJnlLine."Posting Date" <= VendLedgEntry."Pmt. Discount Date") and + (Abs(PaymentAmount1) >= + (Abs(VendLedgEntry."WHT Rem. Amt" + VendLedgEntry1."WHT Rem. Amt") - + Abs(VendLedgEntry."Original Pmt. Disc. Possible"))) + then begin + AppldAmount := + Round( + ((PaymentAmount1 - VendLedgEntry."Original Pmt. Disc. Possible") * + (WithholdingTaxEntry1."Unrealized Base" + TempRemAmt)) / + ExpectedAmount); + + WithholdingTaxEntry3."Remaining Unrealized Base" := + Round( + WithholdingTaxEntry1."Remaining Unrealized Base" - + Round( + ((PaymentAmount1 - VendLedgEntry."Original Pmt. Disc. Possible") * + (WithholdingTaxEntry1."Unrealized Base" + TempRemAmt)) / + ExpectedAmount)); + + WithholdingTaxEntry3."Remaining Unrealized Amount" := + Round( + WithholdingTaxEntry1."Remaining Unrealized Amount" - + Round( + ((PaymentAmount1 - VendLedgEntry."Original Pmt. Disc. Possible") * + (WithholdingTaxEntry1."Unrealized Amount" + TempRemBase)) / + ExpectedAmount)); + end else begin + AppldAmount := + Round( + (PaymentAmount1 * + (WithholdingTaxEntry1."Unrealized Base" + TempRemAmt)) / + ExpectedAmount); + + WithholdingTaxEntry3."Remaining Unrealized Base" := + Round( + WithholdingTaxEntry1."Remaining Unrealized Base" - + Round( + (PaymentAmount1 * (WithholdingTaxEntry1."Unrealized Base" + TempRemAmt)) / + ExpectedAmount)); + + WithholdingTaxEntry3."Remaining Unrealized Amount" := + Round( + WithholdingTaxEntry1."Remaining Unrealized Amount" - + Round( + (PaymentAmount1 * (WithholdingTaxEntry1."Unrealized Amount" + TempRemBase)) / + ExpectedAmount)); + end; + + InitWithholdingTaxEntry(WithholdingTaxEntry1, AppldAmount, PaymentAmount1, WithholdingTaxEntry3); + until WithholdingTaxEntry1.Next(-1) = 0; + end; + end else begin + WithholdingTaxEntry1.Reset(); + WithholdingTaxEntry1.SetRange("Document No.", VendLedgerEntry."Document No."); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntry1.FindFirst() then begin + VendorLedgerEntries.Reset(); + VendorLedgerEntries.SetRange("Entry No.", VendLedgerEntry."Entry No."); + if VendorLedgerEntries.FindFirst() then begin + VendorLedgerEntries.CalcFields( + Amount, "Amount (LCY)", + "Remaining Amount", "Remaining Amt. (LCY)"); + + if CheckPmtDisc( + TempGenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"), + Abs(VendorLedgerEntries."WHT Rem. Amt"), + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), + Abs(TotAmt)) + then + TotAmt := TotAmt - VendorLedgerEntries."Original Pmt. Disc. Possible"; + + if (Abs(RemainingAmt) < Abs(TotAmt)) or + (Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") < Abs(TotAmt)) + then begin + if CheckPmtDisc( + TempGenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"), + Abs(VendorLedgerEntries."WHT Rem. Amt"), + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), + Abs(TotAmt)) + then begin + if VendorLedgerEntries."Document Type" <> + VendorLedgerEntries."Document Type"::"Credit Memo" + then + TotAmt := TotAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + + RemainingAmt := + RemainingAmt - + VendorLedgerEntries."Rem. Amt for Withholding Tax" + + VendorLedgerEntries."Original Pmt. Disc. Possible"; + + WithholdingTaxEntry.Base := WithholdingTaxEntry.Base - + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax" - + VendorLedgerEntries."Original Pmt. Disc. Possible"); + WithholdingTaxEntry.Amount := WithholdingTaxEntry.Amount - + Round(Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax" - + VendorLedgerEntries."Original Pmt. Disc. Possible") * WithholdingTaxEntry."Withholding Tax %" / 100); + WithholdingTaxEntry."Rem Realized Base" := WithholdingTaxEntry."Rem Realized Base" - + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax" - + VendorLedgerEntries."Original Pmt. Disc. Possible"); + WithholdingTaxEntry."Rem Realized Amount" := WithholdingTaxEntry."Rem Realized Amount" - + Round(Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax" - + VendorLedgerEntries."Original Pmt. Disc. Possible") * WithholdingTaxEntry."Withholding Tax %" / 100); + end else begin + if VendorLedgerEntries."Document Type" <> + VendorLedgerEntries."Document Type"::"Credit Memo" + then + TotAmt := TotAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + + RemainingAmt := RemainingAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax"; + + WithholdingTaxEntry.Base := WithholdingTaxEntry.Base - + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"); + WithholdingTaxEntry.Amount := WithholdingTaxEntry.Amount - + Round(Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") * WithholdingTaxEntry."Withholding Tax %" / 100); + WithholdingTaxEntry."Rem Realized Base" := WithholdingTaxEntry."Rem Realized Base" - + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"); + WithholdingTaxEntry."Rem Realized Amount" := WithholdingTaxEntry."Rem Realized Amount" - + Round(Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") * WithholdingTaxEntry."Withholding Tax %" / 100); + end; + + WithholdingTaxEntry1."Rem Realized Base" := 0; + WithholdingTaxEntry1."Rem Realized Amount" := 0; + WithholdingTaxEntry1."Rem Realized Base (LCY)" := 0; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := 0; + end else begin + WithholdingTaxEntry1."Rem Realized Base" := + WithholdingTaxEntry1."Rem Realized Base" - TotAmt; + WithholdingTaxEntry1."Rem Realized Amount" := + WithholdingTaxEntry1."Rem Realized Amount" - + Round(Abs(TotAmt) * WithholdingTaxEntry."Withholding Tax %" / 100); + WithholdingTaxEntry.Amount := 0; + TotAmt := 0; + end; + end; + + if CurrencyCode = '' then begin + WithholdingTaxEntry1."Rem Realized Base (LCY)" := WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := WithholdingTaxEntry1."Rem Realized Amount"; + end else begin + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Amount (LCY)", CurrFactor)); + WithholdingTaxEntry1."Rem Realized Base (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Base (LCY)", CurrFactor)); + end; + + if ((WithholdingTaxEntry1."Rem Realized Amount" = 0) and + (WithholdingTaxEntry1."Rem Realized Base" = 0)) + then + WithholdingTaxEntry1.Closed := true; + + WithholdingTaxEntry1.Modify(); + end; + end; + until VendLedgerEntry.Next() = 0; + + if TotAmt > 0 then begin + WithholdingTaxEntry.Base := TotAmt; + WithholdingTaxEntry.Amount := Round(TotAmt * WithholdingPostingSetup."Withholding Tax %" / 100); + WithholdingTaxEntry."Rem Realized Amount" := WithholdingTaxEntry.Amount; + WithholdingTaxEntry."Rem Realized Base" := WithholdingTaxEntry.Base; + WithholdingTaxEntry."Entry No." := NextEntryNo(); + end else + WithholdingTaxEntry."Applies-to Entry No." := WithholdingTaxEntry1."Entry No."; + end; + end; + + if WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::Invoice then begin + VendLedgerEntry.Reset(); + VendLedgerEntry.SetRange("Applies-to ID", "Applies-toID"); + VendLedgerEntry.SetFilter( + "Document Type", + '%1|%2', + VendLedgerEntry."Document Type"::Payment, + VendLedgerEntry."Document Type"::"Credit Memo"); + if VendLedgerEntry.FindSet() then begin + TotalWithholdingTaxBase := Abs(WithholdingTaxEntry."Rem Realized Base"); + TotalWithholdingTax := Abs(WithholdingTaxEntry."Rem Realized Amount"); + repeat + WithholdingTaxEntry1.Reset(); + WithholdingTaxEntry1.SetRange(Settled, false); + WithholdingTaxEntry1.SetRange("Document No.", VendLedgerEntry."Document No."); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntry1.FindFirst() then begin + if TotalWithholdingTax > Abs(WithholdingTaxEntry1."Rem Realized Amount") then begin + if WithholdingTaxEntry1."Document Type" = WithholdingTaxEntry1."Document Type"::Payment then begin + WithholdingTaxEntry.Base := WithholdingTaxEntry.Base - Abs(WithholdingTaxEntry1."Rem Realized Base"); + WithholdingTaxEntry.Amount := WithholdingTaxEntry.Amount - Abs(WithholdingTaxEntry1."Rem Realized Amount"); + end; + + WithholdingTaxEntry."Rem Realized Base" := WithholdingTaxEntry."Rem Realized Base" - Abs(WithholdingTaxEntry1."Rem Realized Base"); + WithholdingTaxEntry."Rem Realized Amount" := + WithholdingTaxEntry."Rem Realized Amount" - Abs(WithholdingTaxEntry1."Rem Realized Amount"); + WithholdingTaxEntry."Rem Realized Base" := WithholdingTaxEntry."Rem Realized Base" - Abs(WithholdingTaxEntry1."Rem Realized Base"); + WithholdingTaxEntry."Rem Realized Amount" := + WithholdingTaxEntry."Rem Realized Amount" - Abs(WithholdingTaxEntry1."Rem Realized Amount"); + TotalWithholdingTaxBase := TotalWithholdingTaxBase - Abs(WithholdingTaxEntry1."Rem Realized Base"); + TotalWithholdingTax := TotalWithholdingTax - Abs(WithholdingTaxEntry1."Rem Realized Amount"); + WithholdingTaxEntry1."Rem Realized Base" := 0; + WithholdingTaxEntry1."Rem Realized Amount" := 0; + WithholdingTaxEntry1."Rem Realized Base (LCY)" := 0; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := 0; + end else + if (TotalWithholdingTax > 0) and (TotalWithholdingTax <= Abs(WithholdingTaxEntry1."Rem Realized Amount")) then begin + if WithholdingTaxEntry1."Document Type" = WithholdingTaxEntry1."Document Type"::"Credit Memo" then begin + WithholdingTaxEntry1."Rem Realized Base" := + WithholdingTaxEntry1."Rem Realized Base" + TotalWithholdingTaxBase; + WithholdingTaxEntry1."Rem Realized Amount" := + WithholdingTaxEntry1."Rem Realized Amount" + TotalWithholdingTax; + end else begin + WithholdingTaxEntry1."Rem Realized Base" := + WithholdingTaxEntry1."Rem Realized Base" - TotalWithholdingTaxBase; + WithholdingTaxEntry1."Rem Realized Amount" := + WithholdingTaxEntry1."Rem Realized Amount" - TotalWithholdingTax; + WithholdingTaxEntry.Base := 0; + WithholdingTaxEntry.Amount := 0; + end; + + WithholdingTaxEntry."Rem Realized Amount" := 0; + WithholdingTaxEntry."Rem Realized Base" := 0; + TotalWithholdingTaxBase := 0; + TotalWithholdingTax := 0; + end; + + if CurrencyCode = '' then begin + WithholdingTaxEntry1."Rem Realized Base (LCY)" := WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := WithholdingTaxEntry1."Rem Realized Amount"; + end else begin + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Amount (LCY)", CurrFactor)); + WithholdingTaxEntry1."Rem Realized Base (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Base (LCY)", CurrFactor)); + end; + + if ((WithholdingTaxEntry1."Rem Realized Amount" = 0) and + (WithholdingTaxEntry1."Rem Realized Base" = 0)) + then + WithholdingTaxEntry1.Closed := true; + + WithholdingTaxEntry1.Modify(); + end; + until VendLedgerEntry.Next() = 0; + + WithholdingTaxEntry."Applies-to Entry No." := WithholdingTaxEntry1."Entry No."; + end; + end; + end; + end; + + // Purchase Credit Memo & Refund + if ((WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::"Credit Memo") or + (WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::Refund)) + then begin + WithholdingTaxEntry.Base := -Abs(WithholdingTaxEntry.Base); + WithholdingTaxEntry.Amount := -Abs(WithholdingTaxEntry.Amount); + WithholdingTaxEntry."Payment Amount" := -Abs(Amount); + WithholdingTaxEntry."Rem Realized Base" := WithholdingTaxEntry.Base; + WithholdingTaxEntry."Rem Realized Amount" := WithholdingTaxEntry.Amount; + + if (WithholdingPostingSetup."Realized Withholding Tax Type" = + WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest) + then + if WithholdingTaxEntry."Applies-to Doc. No." <> '' then begin + WithholdingTaxEntry1.Reset(); + WithholdingTaxEntry1.SetRange("Document Type", WithholdingTaxEntry."Applies-to Doc. Type"); + WithholdingTaxEntry1.SetRange("Document No.", WithholdingTaxEntry."Applies-to Doc. No."); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::"Credit Memo" then + WithholdingTaxEntry1.SetFilter( + "Document Type", + '%1|%2', + WithholdingTaxEntry1."Document Type"::Refund, + WithholdingTaxEntry1."Document Type"::Invoice); + + if WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::Refund then + WithholdingTaxEntry1.SetFilter( + "Document Type", + '%1|%2', + WithholdingTaxEntry1."Document Type"::"Credit Memo", + WithholdingTaxEntry1."Document Type"::Payment); + + if WithholdingTaxEntry1.FindFirst() then begin + if Abs(WithholdingTaxEntry1."Rem Realized Amount") >= Abs(WithholdingTaxEntry.Amount) then begin + if ((WithholdingTaxEntry1."Document Type" = WithholdingTaxEntry1."Document Type"::Invoice) or + (WithholdingTaxEntry1."Document Type" = WithholdingTaxEntry1."Document Type"::Payment)) + then begin + WithholdingTaxEntry1."Rem Realized Base" := + WithholdingTaxEntry1."Rem Realized Base" + WithholdingTaxEntry.Base; + WithholdingTaxEntry1."Rem Realized Amount" := + WithholdingTaxEntry1."Rem Realized Amount" + WithholdingTaxEntry.Amount; + WithholdingTaxEntry."Rem Realized Base" := 0; + WithholdingTaxEntry."Rem Realized Amount" := 0; + end else begin + WithholdingTaxEntry1."Rem Realized Base" := + WithholdingTaxEntry1."Rem Realized Base" - WithholdingTaxEntry.Base; + WithholdingTaxEntry1."Rem Realized Amount" := + WithholdingTaxEntry1."Rem Realized Amount" - WithholdingTaxEntry.Amount; + WithholdingTaxEntry.Amount := 0; + end; + + if CurrencyCode = '' then begin + WithholdingTaxEntry1."Rem Realized Base (LCY)" := WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := WithholdingTaxEntry1."Rem Realized Amount"; + end else begin + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Amount (LCY)", CurrFactor)); + WithholdingTaxEntry1."Rem Realized Base (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Base (LCY)", CurrFactor)); + end; + end else begin + if ((WithholdingTaxEntry1."Document Type" = WithholdingTaxEntry1."Document Type"::Invoice) or + (WithholdingTaxEntry1."Document Type" = WithholdingTaxEntry1."Document Type"::Payment)) + then begin + WithholdingTaxEntry."Rem Realized Base" := WithholdingTaxEntry."Rem Realized Base" + WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry."Rem Realized Amount" := WithholdingTaxEntry."Rem Realized Amount" + WithholdingTaxEntry1."Rem Realized Amount"; + end else begin + WithholdingTaxEntry.Base := WithholdingTaxEntry.Base - WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry.Amount := WithholdingTaxEntry.Amount - WithholdingTaxEntry1."Rem Realized Amount"; + WithholdingTaxEntry."Rem Realized Base" := WithholdingTaxEntry."Rem Realized Base" - WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry."Rem Realized Amount" := WithholdingTaxEntry."Rem Realized Amount" - WithholdingTaxEntry1."Rem Realized Amount"; + end; + + WithholdingTaxEntry1."Rem Realized Base" := 0; + WithholdingTaxEntry1."Rem Realized Amount" := 0; + WithholdingTaxEntry1."Rem Realized Base (LCY)" := 0; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := 0; + end; + + if ((WithholdingTaxEntry1."Rem Realized Amount" = 0) and + (WithholdingTaxEntry1."Rem Realized Base" = 0)) + then + WithholdingTaxEntry1.Closed := true; + + WithholdingTaxEntry1.Modify(); + end + else + if "Applies-toID" <> '' then begin + if WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::"Credit Memo" then begin + VendLedgerEntry.Reset(); + VendLedgerEntry.SetRange("Applies-to ID", "Applies-toID"); + VendLedgerEntry.SetRange("Document Type", VendLedgerEntry."Document Type"::Refund); + if VendLedgerEntry.FindSet() then begin + TotalWithholdingTaxBase := WithholdingTaxEntry."Rem Realized Base"; + TotalWithholdingTax := WithholdingTaxEntry."Rem Realized Amount"; + repeat + WithholdingTaxEntry1.Reset(); + WithholdingTaxEntry1.SetRange(Settled, false); + WithholdingTaxEntry1.SetRange("Document No.", VendLedgerEntry."Document No."); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntry1.FindFirst() then begin + if Abs(TotalWithholdingTax) > Abs(WithholdingTaxEntry1."Rem Realized Amount") then begin + WithholdingTaxEntry.Base := WithholdingTaxEntry.Base + WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry.Amount := WithholdingTaxEntry.Amount + WithholdingTaxEntry1."Rem Realized Amount"; + WithholdingTaxEntry."Rem Realized Base" := + WithholdingTaxEntry."Rem Realized Base" + WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry."Rem Realized Amount" := + WithholdingTaxEntry."Rem Realized Amount" + WithholdingTaxEntry1."Rem Realized Amount"; + TotalWithholdingTaxBase := TotalWithholdingTaxBase - Abs(WithholdingTaxEntry1."Rem Realized Base"); + TotalWithholdingTax := TotalWithholdingTax - Abs(WithholdingTaxEntry1."Rem Realized Amount"); + WithholdingTaxEntry1."Rem Realized Base" := 0; + WithholdingTaxEntry1."Rem Realized Amount" := 0; + WithholdingTaxEntry1."Rem Realized Base (LCY)" := 0; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := 0; + end else + if (Abs(TotalWithholdingTax) > 0) and (Abs(TotalWithholdingTax) <= Abs(WithholdingTaxEntry1."Rem Realized Amount")) then begin + WithholdingTaxEntry1."Rem Realized Base" := + WithholdingTaxEntry1."Rem Realized Base" + TotalWithholdingTaxBase; + WithholdingTaxEntry1."Rem Realized Amount" := + WithholdingTaxEntry1."Rem Realized Amount" + TotalWithholdingTax; + WithholdingTaxEntry.Base := 0; + WithholdingTaxEntry.Amount := 0; + WithholdingTaxEntry."Rem Realized Amount" := 0; + WithholdingTaxEntry."Rem Realized Base" := 0; + TotalWithholdingTaxBase := 0; + TotalWithholdingTax := 0; + end; + + if CurrencyCode = '' then begin + WithholdingTaxEntry1."Rem Realized Base (LCY)" := WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := WithholdingTaxEntry1."Rem Realized Amount"; + end else begin + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Amount (LCY)", CurrFactor)); + WithholdingTaxEntry1."Rem Realized Base (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Base (LCY)", CurrFactor)); + end; + + if ((WithholdingTaxEntry1."Rem Realized Amount" = 0) and + (WithholdingTaxEntry1."Rem Realized Base" = 0)) + then + WithholdingTaxEntry1.Closed := true; + + WithholdingTaxEntry1.Modify(); + end; + until VendLedgerEntry.Next() = 0; + + WithholdingTaxEntry."Applies-to Entry No." := WithholdingTaxEntry1."Entry No."; + end; + + VendLedgerEntry.Reset(); + VendLedgerEntry.SetRange("Applies-to ID", "Applies-toID"); + VendLedgerEntry.SetRange("Document Type", VendLedgerEntry."Document Type"::Invoice); + if VendLedgerEntry.FindSet() then begin + TotalWithholdingTaxBase := Abs(WithholdingTaxEntry."Rem Realized Base"); + TotalWithholdingTax := Abs(WithholdingTaxEntry."Rem Realized Amount"); + repeat + WithholdingTaxEntry1.Reset(); + WithholdingTaxEntry1.SetRange(Settled, false); + WithholdingTaxEntry1.SetRange("Document No.", VendLedgerEntry."Document No."); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntry1.FindFirst() then begin + if TotalWithholdingTax > Abs(WithholdingTaxEntry1."Rem Realized Amount") then begin + WithholdingTaxEntry."Rem Realized Base" := WithholdingTaxEntry."Rem Realized Base" + WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry."Rem Realized Amount" := WithholdingTaxEntry."Rem Realized Amount" + WithholdingTaxEntry1."Rem Realized Amount"; + TotalWithholdingTaxBase := TotalWithholdingTaxBase - Abs(WithholdingTaxEntry1."Rem Realized Base"); + TotalWithholdingTax := TotalWithholdingTax - Abs(WithholdingTaxEntry1."Rem Realized Amount"); + WithholdingTaxEntry1."Rem Realized Base" := 0; + WithholdingTaxEntry1."Rem Realized Amount" := 0; + WithholdingTaxEntry1."Rem Realized Base (LCY)" := 0; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := 0; + end else + if (TotalWithholdingTax > 0) and (Abs(TotalWithholdingTax) <= Abs(WithholdingTaxEntry1."Rem Realized Amount")) then begin + WithholdingTaxEntry1."Rem Realized Base" := + WithholdingTaxEntry1."Rem Realized Base" - TotalWithholdingTaxBase; + WithholdingTaxEntry1."Rem Realized Amount" := + WithholdingTaxEntry1."Rem Realized Amount" - TotalWithholdingTax; + WithholdingTaxEntry."Rem Realized Amount" := 0; + WithholdingTaxEntry."Rem Realized Base" := 0; + TotalWithholdingTaxBase := 0; + TotalWithholdingTax := 0; + end; + + if CurrencyCode = '' then begin + WithholdingTaxEntry1."Rem Realized Base (LCY)" := WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := WithholdingTaxEntry1."Rem Realized Amount"; + end else begin + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Amount (LCY)", CurrFactor)); + WithholdingTaxEntry1."Rem Realized Base (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Base (LCY)", CurrFactor)); + end; + + if ((WithholdingTaxEntry1."Rem Realized Amount" = 0) and + (WithholdingTaxEntry1."Rem Realized Base" = 0)) + then + WithholdingTaxEntry1.Closed := true; + + WithholdingTaxEntry1.Modify(); + end; + until VendLedgerEntry.Next() = 0; + + WithholdingTaxEntry."Applies-to Entry No." := WithholdingTaxEntry1."Entry No."; + end; + end; + + if WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::Refund then begin + VendLedgerEntry.Reset(); + VendLedgerEntry.SetRange("Applies-to ID", "Applies-toID"); + VendLedgerEntry.SetFilter( + "Document Type", + '%1|%2', + VendLedgerEntry."Document Type"::Payment, + VendLedgerEntry."Document Type"::"Credit Memo"); + if VendLedgerEntry.FindSet() then begin + TotalWithholdingTaxBase := Abs(WithholdingTaxEntry."Rem Realized Base"); + TotalWithholdingTax := Abs(WithholdingTaxEntry."Rem Realized Amount"); + repeat + WithholdingTaxEntry1.Reset(); + WithholdingTaxEntry1.SetRange(Settled, false); + WithholdingTaxEntry1.SetRange("Document No.", VendLedgerEntry."Document No."); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntry1.FindFirst() then begin + if TotalWithholdingTax > Abs(WithholdingTaxEntry1."Rem Realized Amount") then begin + if WithholdingTaxEntry1."Document Type" = WithholdingTaxEntry1."Document Type"::"Credit Memo" then begin + WithholdingTaxEntry.Base := WithholdingTaxEntry.Base + Abs(WithholdingTaxEntry1."Rem Realized Base"); + WithholdingTaxEntry.Amount := WithholdingTaxEntry.Amount + Abs(WithholdingTaxEntry1."Rem Realized Amount"); + end; + + WithholdingTaxEntry."Rem Realized Base" := WithholdingTaxEntry."Rem Realized Base" + Abs(WithholdingTaxEntry1."Rem Realized Base"); + WithholdingTaxEntry."Rem Realized Amount" := + WithholdingTaxEntry."Rem Realized Amount" + Abs(WithholdingTaxEntry1."Rem Realized Amount"); + TotalWithholdingTaxBase := TotalWithholdingTaxBase - Abs(WithholdingTaxEntry1."Rem Realized Base"); + TotalWithholdingTax := TotalWithholdingTax - Abs(WithholdingTaxEntry1."Rem Realized Amount"); + WithholdingTaxEntry1."Rem Realized Base" := 0; + WithholdingTaxEntry1."Rem Realized Amount" := 0; + WithholdingTaxEntry1."Rem Realized Base (LCY)" := 0; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := 0; + end else + if (TotalWithholdingTax > 0) and (TotalWithholdingTax <= Abs(WithholdingTaxEntry1."Rem Realized Amount")) then begin + if WithholdingTaxEntry1."Document Type" = WithholdingTaxEntry1."Document Type"::Payment then begin + WithholdingTaxEntry1."Rem Realized Base" := + WithholdingTaxEntry1."Rem Realized Base" - TotalWithholdingTaxBase; + WithholdingTaxEntry1."Rem Realized Amount" := + WithholdingTaxEntry1."Rem Realized Amount" - TotalWithholdingTax; + end else begin + WithholdingTaxEntry1."Rem Realized Base" := + WithholdingTaxEntry1."Rem Realized Base" + TotalWithholdingTaxBase; + WithholdingTaxEntry1."Rem Realized Amount" := + WithholdingTaxEntry1."Rem Realized Amount" + TotalWithholdingTax; + WithholdingTaxEntry.Base := 0; + WithholdingTaxEntry.Amount := 0; + end; + + WithholdingTaxEntry."Rem Realized Amount" := 0; + WithholdingTaxEntry."Rem Realized Base" := 0; + TotalWithholdingTaxBase := 0; + TotalWithholdingTax := 0; + end; + + if CurrencyCode = '' then begin + WithholdingTaxEntry1."Rem Realized Base (LCY)" := WithholdingTaxEntry1."Rem Realized Base"; + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := WithholdingTaxEntry1."Rem Realized Amount"; + end else begin + WithholdingTaxEntry1."Rem Realized Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Amount (LCY)", CurrFactor)); + WithholdingTaxEntry1."Rem Realized Base (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry1."Rem Realized Base (LCY)", CurrFactor)); + end; + + if ((WithholdingTaxEntry1."Rem Realized Amount" = 0) and + (WithholdingTaxEntry1."Rem Realized Base" = 0)) + then + WithholdingTaxEntry1.Closed := true; + + WithholdingTaxEntry1.Modify(); + end; + until VendLedgerEntry.Next() = 0; + + WithholdingTaxEntry."Applies-to Entry No." := WithholdingTaxEntry1."Entry No."; + end; + end; + end; + end; + end; + end; + + if WithholdingTaxEntry.Amount = 0 then + if NextWithholdingTaxEntryNo = 0 then + exit + else + exit(NextWithholdingTaxEntryNo); + + if ((WithholdingTaxEntry."Rem Realized Amount" = 0) and + (WithholdingTaxEntry."Rem Realized Base" = 0)) + then + WithholdingTaxEntry.Closed := true; + end; + + if CurrencyCode = '' then begin + WithholdingTaxEntry."Base (LCY)" := WithholdingTaxEntry.Base; + WithholdingTaxEntry."Amount (LCY)" := WithholdingTaxEntry.Amount; + WithholdingTaxEntry."Unrealized Amount (LCY)" := WithholdingTaxEntry."Unrealized Amount"; + WithholdingTaxEntry."Unrealized Base (LCY)" := WithholdingTaxEntry."Unrealized Base"; + WithholdingTaxEntry."Rem Realized Base (LCY)" := WithholdingTaxEntry."Rem Realized Base"; + WithholdingTaxEntry."Rem Realized Amount (LCY)" := WithholdingTaxEntry."Rem Realized Amount"; + WithholdingTaxEntry."Rem Unrealized Amount (LCY)" := WithholdingTaxEntry."Remaining Unrealized Amount"; + WithholdingTaxEntry."Rem Unrealized Base (LCY)" := WithholdingTaxEntry."Remaining Unrealized Base"; + end else begin + WithholdingTaxEntry."Base (LCY)" := + Round(CurrExchRate.ExchangeAmtFCYToLCY(DocDate, CurrencyCode, WithholdingTaxEntry.Base, CurrFactor)); + WithholdingTaxEntry."Amount (LCY)" := + Round(CurrExchRate.ExchangeAmtFCYToLCY(DocDate, CurrencyCode, WithholdingTaxEntry.Amount, CurrFactor)); + WithholdingTaxEntry."Unrealized Base (LCY)" := + Round(CurrExchRate.ExchangeAmtFCYToLCY(DocDate, CurrencyCode, WithholdingTaxEntry."Unrealized Base", CurrFactor)); + WithholdingTaxEntry."Rem Realized Amount (LCY)" := + Round(CurrExchRate.ExchangeAmtFCYToLCY(DocDate, CurrencyCode, WithholdingTaxEntry."Rem Realized Amount", CurrFactor)); + WithholdingTaxEntry."Rem Realized Base (LCY)" := + Round(CurrExchRate.ExchangeAmtFCYToLCY(DocDate, CurrencyCode, WithholdingTaxEntry."Rem Realized Base", CurrFactor)); + WithholdingTaxEntry."Unrealized Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry."Unrealized Amount", CurrFactor)); + WithholdingTaxEntry."Rem Unrealized Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry."Remaining Unrealized Amount", CurrFactor)); + WithholdingTaxEntry."Rem Unrealized Base (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry."Remaining Unrealized Base", CurrFactor)); + end; + + if (WithholdingTaxEntry."Applies-to Doc. No." <> '') and UnrealizedWithholding then begin + WithholdingTaxEntry1.SetRange("Document Type", WithholdingTaxEntry."Applies-to Doc. Type"); + WithholdingTaxEntry1.SetRange("Document No.", WithholdingTaxEntry."Applies-to Doc. No."); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntry1.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntry1.FindFirst() then begin + WithholdingTaxEntry1."Rem Unrealized Amount (LCY)" := + WithholdingTaxEntry1."Rem Unrealized Amount (LCY)" + WithholdingTaxEntry."Unrealized Amount (LCY)"; + WithholdingTaxEntry1."Rem Unrealized Base (LCY)" := + WithholdingTaxEntry1."Rem Unrealized Base (LCY)" + WithholdingTaxEntry."Unrealized Base (LCY)"; + WithholdingTaxEntry1.Modify(); + WithholdingTaxEntry."Rem Unrealized Amount (LCY)" := 0; + WithholdingTaxEntry."Rem Unrealized Base (LCY)" := 0; + end; + end; + + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest then + if Abs(WithholdingTaxEntry.Base) < WithholdingPostingSetup."Wthldg. Tax Min. Inv. Amount" then + exit; + + WithholdingTaxEntry.Insert(); + NextWithholdingTaxEntryNo := WithholdingTaxEntry."Entry No." + 1; + + if WithholdingTaxEntry1.Prepayment then begin + WithholdingTaxEntry3.Reset(); + WithholdingTaxEntry3.SetCurrentKey("Applies-to Entry No."); + WithholdingTaxEntry3.SetRange("Applies-to Entry No.", WithholdingTaxEntry1."Entry No."); + WithholdingTaxEntry3.CalcSums(Amount, "Amount (LCY)"); + + if (Abs(Abs(WithholdingTaxEntry3.Amount) - Abs(WithholdingTaxEntry1."Unrealized Amount")) < 0.1) and + (Abs(Abs(WithholdingTaxEntry3.Amount) - Abs(WithholdingTaxEntry1."Unrealized Amount")) > 0) + then begin + WithholdingTaxEntry."Withholding Tax Difference" := WithholdingTaxEntry1."Unrealized Amount" - WithholdingTaxEntry3.Amount; + WithholdingTaxEntry.Amount := WithholdingTaxEntry.Amount + WithholdingTaxEntry."Withholding Tax Difference"; + WithholdingTaxEntry.Modify(); + end; + + if (Abs(Abs(WithholdingTaxEntry3."Amount (LCY)") - Abs(WithholdingTaxEntry1."Unrealized Amount (LCY)")) < 0.1) and + (Abs(Abs(WithholdingTaxEntry3."Amount (LCY)") - Abs(WithholdingTaxEntry1."Unrealized Amount (LCY)")) > 0) + then begin + WithholdingTaxEntry."Amount (LCY)" := WithholdingTaxEntry."Amount (LCY)" + + WithholdingTaxEntry1."Unrealized Amount (LCY)" - WithholdingTaxEntry3."Amount (LCY)"; + WithholdingTaxEntry.Modify(); + end; + end; + end; + exit(NextWithholdingTaxEntryNo); + end; + + procedure NextEntryNo(): Integer + var + NewWithholdingTaxEntry: Record "Withholding Tax Entry"; + begin + NewWithholdingTaxEntry.Reset(); + exit(NewWithholdingTaxEntry.GetLastEntryNo() + 1); + end; + + procedure CheckPmtDisc(PostingDate: Date; PmtDiscDate: Date; Amount1: Decimal; Amount2: Decimal; Amount3: Decimal; Amount4: Decimal): Boolean + begin + if (PostingDate <= PmtDiscDate) and + (Amount1 >= (Amount2 - Amount3)) and + (Amount4 >= (Amount2 - Amount3)) + then + exit(true); + + exit(false); + end; + + procedure InitWithholdingTaxEntry(TempWithholdingTaxEntry: Record "Withholding Tax Entry"; AppldAmount: Decimal; PaymentAmount1: Decimal; var WithholdingTaxEntry3: Record "Withholding Tax Entry") + var + WithholdingTaxEntry2: Record "Withholding Tax Entry"; + WithholdingTax: Record "Withholding Tax Entry"; + VendLedgEntry: Record "Vendor Ledger Entry"; + WithholdingTaxEntry4: Record "Withholding Tax Entry"; + NoSeries: Codeunit "No. Series"; + begin + WithholdingTaxEntry2.Init(); + WithholdingTaxEntry2."Posting Date" := TempGenJnlLine."Document Date"; + WithholdingTaxEntry2."Entry No." := NextEntryNo(); + WithholdingTaxEntry2."Document Date" := TempWithholdingTaxEntry."Document Date"; + WithholdingTaxEntry2."Document Type" := TempGenJnlLine."Document Type"; + WithholdingTaxEntry2."Document No." := DocNo; + WithholdingTaxEntry2."Gen. Bus. Posting Group" := TempWithholdingTaxEntry."Gen. Bus. Posting Group"; + WithholdingTaxEntry2."Gen. Prod. Posting Group" := TempWithholdingTaxEntry."Gen. Prod. Posting Group"; + WithholdingTaxEntry2."Bill-to/Pay-to No." := TempWithholdingTaxEntry."Bill-to/Pay-to No."; + WithholdingTaxEntry2."Wthldg. Tax Bus. Post. Group" := TempWithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"; + WithholdingTaxEntry2."Wthldg. Tax Prod. Post. Group" := TempWithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"; + WithholdingTaxEntry2."Withholding Tax Revenue Type" := TempWithholdingTaxEntry."Withholding Tax Revenue Type"; + WithholdingTaxEntry2."Currency Code" := TempGenJnlLine."Currency Code"; + WithholdingTaxEntry2."Applies-to Entry No." := TempWithholdingTaxEntry."Entry No."; + WithholdingTaxEntry2."User ID" := UserId; + WithholdingTaxEntry2."External Document No." := TempGenJnlLine."External Document No."; + WithholdingTaxEntry2."Original Document No." := TempGenJnlLine."Document No."; + WithholdingTaxEntry2."Source Code" := TempGenJnlLine."Source Code"; + WithholdingTaxEntry2."Unreal. Wthldg. Tax Entry No." := TempWithholdingTaxEntry."Entry No."; + WithholdingTaxEntry2."Withholding Tax %" := TempWithholdingTaxEntry."Withholding Tax %"; + + VendLedgEntry.Reset(); + VendLedgEntry.SetRange("Document Type", TempGenJnlLine."Document Type"); + VendLedgEntry.SetRange("Document No.", TempGenJnlLine."Document No."); + if VendLedgEntry.FindLast() then + WithholdingTaxEntry2."Transaction No." := VendLedgEntry."Transaction No."; + + WithholdingTaxEntry2.Base := Round(AppldAmount); + WithholdingTaxEntry2.Amount := Round(WithholdingTaxEntry2.Base * WithholdingTaxEntry2."Withholding Tax %" / 100); + WithholdingTaxEntry2."Payment Amount" := PaymentAmount1; + WithholdingTaxEntry2."Transaction Type" := WithholdingTaxEntry2."Transaction Type"::Purchase; + WithholdingPostingSetup.Get(TempWithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", TempWithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + WithholdingTaxEntry2."Withholding Tax Report" := WithholdingPostingSetup."Withholding Tax Report"; + + if TempGenJnlLine."WHT Certificate Printed" then begin + WithholdingTaxEntry2."Wthldg. Tax Report Line No" := TempGenJnlLine."Wthldg. Tax Report Line No."; + WithholdingTax.SetRange("Document No.", TempWithholdingTaxEntry."Document No."); + if WithholdingTax.FindFirst() then + WithholdingTaxEntry2."Wthldg. Tax Certificate No." := WithholdingTax."Wthldg. Tax Certificate No."; + end else begin + if ((TransType = TransType::Purchase) and + (TempWithholdingTaxEntry."Document Type" = TempWithholdingTaxEntry."Document Type"::Invoice)) + then + if (WithholdingReportLineNo = '') and + (WithholdingTaxEntry2.Amount <> 0) and + (WithholdingPostingSetup."Wthldg. Tax Rep Line No Series" <> '') + then + WithholdingReportLineNo := NoSeries.GetNextNo(WithholdingPostingSetup."Wthldg. Tax Rep Line No Series", WithholdingTaxEntry2."Posting Date"); + + WithholdingTaxEntry2."Wthldg. Tax Report Line No" := WithholdingReportLineNo; + end; + + if WithholdingTaxEntry2."Currency Code" <> '' then begin + CurrFactor := + CurrExchRate.ExchangeRate( + WithholdingTaxEntry2."Posting Date", + WithholdingTaxEntry2."Currency Code"); + WithholdingTaxEntry2."Base (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + TempGenJnlLine."Document Date", + WithholdingTaxEntry2."Currency Code", + WithholdingTaxEntry2.Base, CurrFactor)); + WithholdingTaxEntry2."Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + TempGenJnlLine."Document Date", + WithholdingTaxEntry2."Currency Code", + WithholdingTaxEntry2.Amount, CurrFactor)); + end else begin + WithholdingTaxEntry2."Amount (LCY)" := WithholdingTaxEntry2.Amount; + WithholdingTaxEntry2."Base (LCY)" := WithholdingTaxEntry2.Base; + end; + + if CurrencyCode = '' then begin + WithholdingTaxEntry3."Rem Unrealized Amount (LCY)" -= WithholdingTaxEntry2.Amount; + WithholdingTaxEntry3."Rem Unrealized Base (LCY)" -= WithholdingTaxEntry2.Base; + end else begin + WithholdingTaxEntry3."Rem Unrealized Amount (LCY)" -= + Round(CurrExchRate.ExchangeAmtFCYToLCY(DocDate, CurrencyCode, WithholdingTaxEntry2.Amount, CurrFactor)); + WithholdingTaxEntry3."Rem Unrealized Base (LCY)" -= + Round(CurrExchRate.ExchangeAmtFCYToLCY(DocDate, CurrencyCode, WithholdingTaxEntry2.Base, CurrFactor)); + end; + + WithholdingTaxEntry3.Closed := + (WithholdingTaxEntry3."Remaining Unrealized Base" = 0) and (WithholdingTaxEntry3."Remaining Unrealized Amount" = 0); + + if ((WithholdingTaxEntry2."Rem Realized Amount" = 0) and + (WithholdingTaxEntry2."Rem Realized Base" = 0)) + then + WithholdingTaxEntry2.Closed := true; + + WithholdingTaxEntry2.Insert(); + NextWithholdingTaxEntryNo := WithholdingTaxEntry2."Entry No." + 1; + WithholdingTaxEntry3.Modify(); + + WithholdingTaxEntry4.Reset(); + WithholdingTaxEntry4.SetCurrentKey("Applies-to Entry No."); + WithholdingTaxEntry4.SetRange("Applies-to Entry No.", TempWithholdingTaxEntry."Entry No."); + WithholdingTaxEntry4.CalcSums(Amount, "Amount (LCY)"); + + if (Abs(Abs(WithholdingTaxEntry4.Amount) - Abs(TempWithholdingTaxEntry."Unrealized Amount")) < 0.1) and + (Abs(Abs(WithholdingTaxEntry4.Amount) - Abs(TempWithholdingTaxEntry."Unrealized Amount")) > 0) + then begin + WithholdingTaxEntry2."Withholding Tax Difference" := TempWithholdingTaxEntry."Unrealized Amount" - WithholdingTaxEntry4.Amount; + WithholdingTaxEntry2.Amount := WithholdingTaxEntry2.Amount + WithholdingTaxEntry2."Withholding Tax Difference"; + WithholdingTaxEntry2.Modify(); + end; + + if (Abs(Abs(WithholdingTaxEntry4."Amount (LCY)") - Abs(TempWithholdingTaxEntry."Unrealized Amount (LCY)")) < 0.1) and + (Abs(Abs(WithholdingTaxEntry4."Amount (LCY)") - Abs(TempWithholdingTaxEntry."Unrealized Amount (LCY)")) > 0) + then begin + WithholdingTaxEntry2."Amount (LCY)" := WithholdingTaxEntry2."Amount (LCY)" + + TempWithholdingTaxEntry."Unrealized Amount (LCY)" - WithholdingTaxEntry4."Amount (LCY)"; + WithholdingTaxEntry2.Modify(); + end; + end; + + local procedure CalcWithholdingEntriesRemAmounts(var WithholdingTaxEntry: Record "Withholding Tax Entry"; var ClosingWithholdingTaxEntry: Record "Withholding Tax Entry"; WithholdingTaxPart: Decimal) + var + WithholdingBaseToApply: Decimal; + WithholdingAmountToApply: Decimal; + WithholdingBaseToApplyLCY: Decimal; + WithholdingAmountToApplyLCY: Decimal; + begin + if WithholdingTaxPart >= 1 then begin + WithholdingTaxEntry."Remaining Unrealized Amount" += ClosingWithholdingTaxEntry."Remaining Unrealized Amount"; + WithholdingTaxEntry."Remaining Unrealized Base" += ClosingWithholdingTaxEntry."Remaining Unrealized Base"; + WithholdingTaxEntry."Rem Unrealized Amount (LCY)" += ClosingWithholdingTaxEntry."Rem Unrealized Amount (LCY)"; + WithholdingTaxEntry."Rem Unrealized Base (LCY)" += ClosingWithholdingTaxEntry."Rem Unrealized Base (LCY)"; + + ClosingWithholdingTaxEntry."Remaining Unrealized Amount" := 0; + ClosingWithholdingTaxEntry."Remaining Unrealized Base" := 0; + ClosingWithholdingTaxEntry."Rem Unrealized Amount (LCY)" := 0; + ClosingWithholdingTaxEntry."Rem Unrealized Base (LCY)" := 0; + end else begin + WithholdingBaseToApply := Round(WithholdingTaxEntry."Remaining Unrealized Base" * WithholdingTaxPart); + WithholdingAmountToApply := Round(WithholdingTaxEntry."Remaining Unrealized Amount" * WithholdingTaxPart); + WithholdingBaseToApplyLCY := Round(WithholdingTaxEntry."Rem Unrealized Base (LCY)" * WithholdingTaxPart); + WithholdingAmountToApplyLCY := Round(WithholdingTaxEntry."Remaining Unrealized Amount" * WithholdingTaxPart); + + WithholdingTaxEntry."Remaining Unrealized Amount" -= WithholdingAmountToApply; + WithholdingTaxEntry."Remaining Unrealized Base" -= WithholdingBaseToApply; + WithholdingTaxEntry."Rem Unrealized Amount (LCY)" -= WithholdingAmountToApplyLCY; + WithholdingTaxEntry."Rem Unrealized Base (LCY)" -= WithholdingBaseToApplyLCY; + + ClosingWithholdingTaxEntry."Remaining Unrealized Amount" += WithholdingAmountToApply; + ClosingWithholdingTaxEntry."Remaining Unrealized Base" += WithholdingBaseToApply; + ClosingWithholdingTaxEntry."Rem Unrealized Amount (LCY)" += WithholdingAmountToApplyLCY; + ClosingWithholdingTaxEntry."Rem Unrealized Base (LCY)" += WithholdingBaseToApplyLCY; + end; + + CloseWithholdingTaxEntry(WithholdingTaxEntry); + CloseWithholdingTaxEntry(ClosingWithholdingTaxEntry); + end; + + local procedure CloseWithholdingTaxEntry(var WithholdingTaxEntry: Record "Withholding Tax Entry") + begin + if (WithholdingTaxEntry."Remaining Unrealized Base" = 0) and + (WithholdingTaxEntry."Remaining Unrealized Amount" = 0) + then + WithholdingTaxEntry.Closed := true; + end; + + local procedure SetWithholdingTaxEntryAmounts(var WithholdingTaxEntry: Record "Withholding Tax Entry"; AbsorbBase: Decimal; AmountVAT: Decimal; CurrFactor: Decimal) + begin + WithholdingTaxEntry.Amount := 0; + WithholdingTaxEntry.Base := 0; + + if AbsorbBase <> 0 then + WithholdingTaxEntry."Unrealized Base" := AbsorbBase + else + WithholdingTaxEntry."Unrealized Base" := AmountVAT; + + WithholdingTaxEntry."Unrealized Amount" := Round(WithholdingTaxEntry."Unrealized Base" * WithholdingTaxEntry."Withholding Tax %" / 100); + WithholdingTaxEntry."Unrealized Base (LCY)" := + Round(CurrExchRate.ExchangeAmtFCYToLCY(WithholdingTaxEntry."Document Date", WithholdingTaxEntry."Currency Code", WithholdingTaxEntry."Unrealized Base", CurrFactor)); + WithholdingTaxEntry."Unrealized Amount (LCY)" := + Round(CurrExchRate.ExchangeAmtFCYToLCY(WithholdingTaxEntry."Document Date", WithholdingTaxEntry."Currency Code", WithholdingTaxEntry."Unrealized Amount", CurrFactor)); + WithholdingTaxEntry."Remaining Unrealized Amount" := WithholdingTaxEntry."Unrealized Amount"; + WithholdingTaxEntry."Remaining Unrealized Base" := WithholdingTaxEntry."Unrealized Base"; + WithholdingTaxEntry."Rem Unrealized Amount (LCY)" := WithholdingTaxEntry."Unrealized Amount (LCY)"; + WithholdingTaxEntry."Rem Unrealized Base (LCY)" := WithholdingTaxEntry."Unrealized Base (LCY)"; + end; + + local procedure FindWithholdingTaxEntryForApply(var WithholdingTaxEntry: Record "Withholding Tax Entry"; DocType: Enum "Gen. Journal Document Type"; DocNo: Code[20]; WithholdingBusPostingGr: Code[20]; WithholdingProdPostingGr: Code[20]): Boolean + begin + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetRange("Document Type", DocType); + WithholdingTaxEntry.SetRange("Document No.", DocNo); + WithholdingTaxEntry.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingBusPostingGr); + WithholdingTaxEntry.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingProdPostingGr); + + exit(WithholdingTaxEntry.FindFirst()); + end; + + procedure InsertVendPrepaymentInvoiceWithholding(var PurchInvHeader: Record "Purch. Inv. Header"; var PurchHeader: Record "Purchase Header") + var + PurchLine: Record "Purchase Line"; + GLSetup: Record "General Ledger Setup"; + Vendor: Record Vendor; + PurchasePostPrepayments: Codeunit "Purchase-Post Prepayments"; + begin + GLSetup.Get(); + + if GLSetup."Enable Withholding Tax" then begin + Vendor.Get(PurchInvHeader."Pay-to Vendor No."); + if Vendor."WHT ABN" <> '' then + exit; + end; + + PurchLine.Reset(); + PurchLine.SetCurrentKey("Document Type", "Document No.", "Wthldg. Tax Bus. Post. Group", "Wthldg. Tax Prod. Post. Group"); + PurchLine.SetRange("Document Type", PurchHeader."Document Type"); + PurchLine.SetRange("Document No.", PurchHeader."No."); + PurchLine.SetFilter(Type, '<>%1', PurchLine.Type::" "); + if PurchLine.FindSet() then + repeat + if PurchasePostPrepayments.PrepmtAmount(PurchLine, 0) <> 0 then + if WithholdingPostingSetup.Get(PurchLine."Wthldg. Tax Bus. Post. Group", PurchLine."Wthldg. Tax Prod. Post. Group") then + if WithholdingPostingSetup."Withholding Tax %" > 0 then begin + DocNo := PurchInvHeader."No."; + DocType := DocType::Invoice; + PayToAccType := PayToAccType::Vendor; + PayToVendCustNo := PurchInvHeader."Pay-to Vendor No."; + BuyFromAccType := BuyFromAccType::Vendor; + GenBusPostGrp := PurchLine."Gen. Bus. Posting Group"; + GenProdPostGrp := PurchLine."Gen. Prod. Posting Group"; + TransType := TransType::Purchase; + BuyFromVendCustNo := PurchInvHeader."WHT Actual Vendor No."; + PostingDate := PurchInvHeader."Posting Date"; + DocDate := PurchInvHeader."Document Date"; + CurrencyCode := PurchInvHeader."Currency Code"; + CurrFactor := PurchInvHeader."Currency Factor"; + ApplyDocType := PurchInvHeader."Applies-to Doc. Type"; + ApplyDocNo := PurchInvHeader."Applies-to Doc. No."; + SourceCode := PurchInvHeader."Source Code"; + ReasonCode := PurchInvHeader."Reason Code"; + + if (WithholdingBusPostGrp <> PurchLine."Wthldg. Tax Bus. Post. Group") or + (WithholdingProdPostGrp <> PurchLine."Wthldg. Tax Prod. Post. Group") + then begin + if AmountVAT <> 0 then + InsertPrepaymentUnrealizedWithholding(TType::Purchase); + + WithholdingBusPostGrp := PurchLine."Wthldg. Tax Bus. Post. Group"; + WithholdingProdPostGrp := PurchLine."Wthldg. Tax Prod. Post. Group"; + + AmountVAT := 0; + PurchInvHeader.Amount := PurchasePostPrepayments.PrepmtAmount(PurchLine, 0); + AbsorbBase := PurchLine."Withholding Tax Absorb Base"; + + if AbsorbBase <> 0 then + AmountVAT := AbsorbBase + else + AmountVAT := PurchInvHeader.Amount; + end else begin + WithholdingBusPostGrp := PurchLine."Wthldg. Tax Bus. Post. Group"; + WithholdingProdPostGrp := PurchLine."Wthldg. Tax Prod. Post. Group"; + PurchInvHeader.Amount += PurchasePostPrepayments.PrepmtAmount(PurchLine, 0); + AbsorbBase += PurchLine."Withholding Tax Absorb Base"; + + if AbsorbBase <> 0 then + AmountVAT := AbsorbBase + else + AmountVAT := PurchInvHeader.Amount; + end; + + WithholdingBusPostGrp := PurchLine."Wthldg. Tax Bus. Post. Group"; + WithholdingProdPostGrp := PurchLine."Wthldg. Tax Prod. Post. Group"; + end; + until PurchLine.Next() = 0; + + InsertPrepaymentUnrealizedWithholding(TType::Purchase); + end; + + procedure InsertVendPrepaymentCrMemoWithholding(var PurchCrMemoHeader: Record "Purch. Cr. Memo Hdr."; var PurchHeader: Record "Purchase Header") + var + PurchLine: Record "Purchase Line"; + GLSetup: Record "General Ledger Setup"; + Vendor: Record Vendor; + begin + GLSetup.Get(); + + if GLSetup."Enable Withholding Tax" then begin + Vendor.Get(PurchCrMemoHeader."Pay-to Vendor No."); + if Vendor."WHT ABN" <> '' then + exit; + end; + + PurchLine.Reset(); + PurchLine.SetCurrentKey("Document Type", "Document No.", "Wthldg. Tax Bus. Post. Group", "Wthldg. Tax Prod. Post. Group"); + PurchLine.SetRange("Document Type", PurchHeader."Document Type"); + PurchLine.SetRange("Document No.", PurchHeader."No."); + PurchLine.SetFilter(Type, '<>%1', PurchLine.Type::" "); + if PurchLine.FindSet() then + repeat + if PurchLine."Prepmt. Line Amount" <> 0 then + if WithholdingPostingSetup.Get(PurchLine."Wthldg. Tax Bus. Post. Group", PurchLine."Wthldg. Tax Prod. Post. Group") then + if WithholdingPostingSetup."Withholding Tax %" > 0 then begin + DocNo := PurchCrMemoHeader."No."; + DocType := DocType::"Credit Memo"; + PayToAccType := PayToAccType::Vendor; + PayToVendCustNo := PurchHeader."Pay-to Vendor No."; + BuyFromAccType := BuyFromAccType::Vendor; + GenBusPostGrp := PurchLine."Gen. Bus. Posting Group"; + GenProdPostGrp := PurchLine."Gen. Prod. Posting Group"; + TransType := TransType::Purchase; + BuyFromVendCustNo := PurchHeader."WHT Actual Vendor No."; + PostingDate := PurchHeader."Posting Date"; + DocDate := PurchHeader."Document Date"; + CurrencyCode := PurchHeader."Currency Code"; + CurrFactor := PurchHeader."Currency Factor"; + ApplyDocType := PurchHeader."Applies-to Doc. Type"; + ApplyDocNo := PurchHeader."Applies-to Doc. No."; + SourceCode := PurchCrMemoHeader."Source Code"; + ReasonCode := PurchHeader."Reason Code"; + + if (WithholdingBusPostGrp <> PurchLine."Wthldg. Tax Bus. Post. Group") or + (WithholdingProdPostGrp <> PurchLine."Wthldg. Tax Prod. Post. Group") + then begin + if AmountVAT <> 0 then + InsertPrepaymentUnrealizedWithholding(TType::Purchase); + + WithholdingBusPostGrp := PurchLine."Wthldg. Tax Bus. Post. Group"; + WithholdingProdPostGrp := PurchLine."Wthldg. Tax Prod. Post. Group"; + PurchHeader.Amount := 0; + AbsorbBase := 0; + AmountVAT := 0; + PurchHeader.Amount -= PurchLine."Prepmt. Line Amount"; + AbsorbBase -= PurchLine."Withholding Tax Absorb Base"; + + if AbsorbBase <> 0 then + AmountVAT := AbsorbBase + else + AmountVAT := PurchHeader.Amount; + end else begin + WithholdingBusPostGrp := PurchLine."Wthldg. Tax Bus. Post. Group"; + WithholdingProdPostGrp := PurchLine."Wthldg. Tax Prod. Post. Group"; + PurchHeader.Amount -= PurchLine."Prepmt. Line Amount"; + AbsorbBase -= PurchLine."Withholding Tax Absorb Base"; + + if AbsorbBase <> 0 then + AmountVAT := AbsorbBase + else + AmountVAT := PurchHeader.Amount; + end; + + WithholdingBusPostGrp := PurchLine."Wthldg. Tax Bus. Post. Group"; + WithholdingProdPostGrp := PurchLine."Wthldg. Tax Prod. Post. Group"; + end; + until PurchLine.Next() = 0; + + InsertPrepaymentUnrealizedWithholding(TType::Purchase); + end; + + procedure InsertPrepaymentUnrealizedWithholding(TransType: Option Purchase,Sale) EntryNo: Integer + var + WithholdingTaxEntry: Record "Withholding Tax Entry"; + begin + if WithholdingPostingSetup.Get(WithholdingBusPostGrp, WithholdingProdPostGrp) then + if WithholdingPostingSetup."Realized Withholding Tax Type" <> WithholdingPostingSetup."Realized Withholding Tax Type"::" " then begin + UnrealizedWithholding := (WithholdingPostingSetup."Realized Withholding Tax Type" in [WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest, + WithholdingPostingSetup."Realized Withholding Tax Type"::Invoice]); + WithholdingTaxEntry.Init(); + WithholdingTaxEntry."Entry No." := NextEntryNo(); + WithholdingTaxEntry."Gen. Bus. Posting Group" := GenBusPostGrp; + WithholdingTaxEntry."Gen. Prod. Posting Group" := GenProdPostGrp; + WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group" := WithholdingBusPostGrp; + WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group" := WithholdingProdPostGrp; + WithholdingTaxEntry."Posting Date" := PostingDate; + WithholdingTaxEntry."Document Date" := DocDate; + WithholdingTaxEntry."Document No." := DocNo; + WithholdingTaxEntry."Withholding Tax %" := WithholdingPostingSetup."Withholding Tax %"; + WithholdingTaxEntry."Applies-to Doc. Type" := ApplyDocType; + WithholdingTaxEntry."Applies-to Doc. No." := ApplyDocNo; + WithholdingTaxEntry."Source Code" := SourceCode; + WithholdingTaxEntry."Reason Code" := ReasonCode; + WithholdingTaxEntry."Withholding Tax Revenue Type" := WithholdingPostingSetup."Revenue Type"; + WithholdingTaxEntry."Document Type" := DocType; + + if TransType = TransType::Purchase then + WithholdingTaxEntry."Transaction Type" := WithholdingTaxEntry."Transaction Type"::Purchase + else + WithholdingTaxEntry."Transaction Type" := WithholdingTaxEntry."Transaction Type"::Sale; + + WithholdingTaxEntry."Actual Vendor No." := ActualVendorNo; + WithholdingTaxEntry."Source Code" := SourceCode; + WithholdingTaxEntry."Bill-to/Pay-to No." := PayToVendCustNo; + WithholdingTaxEntry."User ID" := UserId; + WithholdingTaxEntry."Currency Code" := CurrencyCode; + + if UnrealizedWithholding then begin + WithholdingTaxEntry.Amount := 0; + WithholdingTaxEntry.Base := 0; + WithholdingTaxEntry.Prepayment := true; + if AbsorbBase <> 0 then + WithholdingTaxEntry."Unrealized Base" := AbsorbBase + else + WithholdingTaxEntry."Unrealized Base" := AmountVAT; + + WithholdingTaxEntry."Unrealized Amount" := + Round(WithholdingTaxEntry."Unrealized Base" * WithholdingTaxEntry."Withholding Tax %" / 100); + WithholdingTaxEntry."Remaining Unrealized Amount" := WithholdingTaxEntry."Unrealized Amount"; + WithholdingTaxEntry."Remaining Unrealized Base" := WithholdingTaxEntry."Unrealized Base"; + end; + + if CurrencyCode = '' then begin + WithholdingTaxEntry."Base (LCY)" := WithholdingTaxEntry.Base; + WithholdingTaxEntry."Amount (LCY)" := WithholdingTaxEntry.Amount; + WithholdingTaxEntry."Unrealized Amount (LCY)" := WithholdingTaxEntry."Unrealized Amount"; + WithholdingTaxEntry."Unrealized Base (LCY)" := WithholdingTaxEntry."Unrealized Base"; + WithholdingTaxEntry."Rem Realized Base (LCY)" := WithholdingTaxEntry."Rem Realized Base"; + WithholdingTaxEntry."Rem Realized Amount (LCY)" := WithholdingTaxEntry."Rem Realized Amount"; + WithholdingTaxEntry."Rem Unrealized Amount (LCY)" := WithholdingTaxEntry."Remaining Unrealized Amount"; + WithholdingTaxEntry."Rem Unrealized Base (LCY)" := WithholdingTaxEntry."Remaining Unrealized Base"; + end else begin + WithholdingTaxEntry."Base (LCY)" := + Round(CurrExchRate.ExchangeAmtFCYToLCY(DocDate, CurrencyCode, WithholdingTaxEntry.Base, CurrFactor)); + WithholdingTaxEntry."Amount (LCY)" := + Round(CurrExchRate.ExchangeAmtFCYToLCY(DocDate, CurrencyCode, WithholdingTaxEntry.Amount, CurrFactor)); + WithholdingTaxEntry."Unrealized Base (LCY)" := + Round(CurrExchRate.ExchangeAmtFCYToLCY(DocDate, CurrencyCode, WithholdingTaxEntry."Unrealized Base", CurrFactor)); + WithholdingTaxEntry."Rem Realized Amount (LCY)" := + Round(CurrExchRate.ExchangeAmtFCYToLCY(DocDate, CurrencyCode, WithholdingTaxEntry."Rem Realized Amount (LCY)", CurrFactor)); + WithholdingTaxEntry."Rem Realized Base (LCY)" := + Round(CurrExchRate.ExchangeAmtFCYToLCY(DocDate, CurrencyCode, WithholdingTaxEntry."Rem Realized Base (LCY)", CurrFactor)); + WithholdingTaxEntry."Unrealized Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry."Unrealized Amount", CurrFactor)); + WithholdingTaxEntry."Rem Unrealized Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry."Remaining Unrealized Amount", CurrFactor)); + WithholdingTaxEntry."Rem Unrealized Base (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + DocDate, CurrencyCode, WithholdingTaxEntry."Remaining Unrealized Base", CurrFactor)); + end; + + WithholdingTaxEntry.Insert(); + NextWithholdingTaxEntryNo := WithholdingTaxEntry."Entry No." + 1; + end; + + exit(NextWithholdingTaxEntryNo); + end; + + procedure WithholdingAmountJournal(var GenJnlLine1: Record "Gen. Journal Line"; Post: Boolean) WithholdingTaxAmount: Decimal + var + WithholdingTaxEntry: Record "Withholding Tax Entry"; + WithholdingTaxEntry3: Record "Withholding Tax Entry"; + PurchCrMemoHeader: Record "Purch. Cr. Memo Hdr."; + VendLedgEntry1: Record "Vendor Ledger Entry"; + WithholdingTaxEntryTemp: Record "Withholding Tax Entry"; + VendLedgEntry: Record "Vendor Ledger Entry"; + GenJnlLine: Record "Gen. Journal Line"; + GLSetup: Record "General Ledger Setup"; + TotalWithholdingTaxAmount: Decimal; + TotalWithholdingTaxAmount2: Decimal; + TotalWithholdingTaxAmount3: Decimal; + PaymentAmount: Decimal; + PaymentAmountLCY: Decimal; + PaymentAmount1: Decimal; + AppldAmount: Decimal; + ExpectedAmount: Decimal; + TotalWithholdingTaxAmount4: Decimal; + WithholdingTaxAmount1: Decimal; + RemainingAmt: Decimal; + GenJnlLineAmount: Decimal; + begin + GenJnlLine.Copy(GenJnlLine1); + if (GenJnlLine."Document Type" <> GenJnlLine."Document Type"::Payment) and + (GenJnlLine."Document Type" <> GenJnlLine."Document Type"::Refund) + then + exit; + + GLSetup.Get(); + + if IsForeignVendor(GenJnlLine) then + exit; + + ExitLoop := false; + TotalWithholdingTaxAmount := 0; + TotalWithholdingTaxAmount2 := 0; + TotalWithholdingTaxAmount3 := 0; + TotalWithholdingTaxAmount4 := 0; + RemainingAmt := 0; + TotAmt := 0; + VendorLedgerEntries.Reset(); + VendorLedgerEntries1.Reset(); + + if GenJnlLine."Applies-to Doc. No." = '' then begin + if GenJnlLine."Applies-to ID" <> '' then begin + VendorLedgerEntries1.SetRange("Applies-to ID", GenJnlLine."Applies-to ID"); + VendorLedgerEntries1.SetRange(Open, true); + VendorLedgerEntries1.SetFilter("Document Type", '<>%1', VendorLedgerEntries1."Document Type"::" "); + if GenJnlLine."Bill-to/Pay-to No." = '' then + VendorLedgerEntries1.SetRange("Buy-from Vendor No.", GenJnlLine."Account No.") + else + VendorLedgerEntries1.SetRange("Buy-from Vendor No.", GenJnlLine."Bill-to/Pay-to No."); + end else + exit(TotalWithholdingTaxAmount); + + if VendorLedgerEntries1.FindSet() then + repeat + VendorLedgerEntries1.CalcFields( + Amount, "Amount (LCY)", + "Remaining Amount", "Remaining Amt. (LCY)", + "Original Amount", "Original Amt. (LCY)"); + RemainingAmt := RemainingAmt + VendorLedgerEntries1."Remaining Amount"; + until VendorLedgerEntries1.Next() = 0; + + TotAmt := Abs(GenJnlLine.Amount); + + if GenJnlLine."Applies-to ID" <> '' then begin + VendorLedgerEntries.SetRange("Applies-to ID", GenJnlLine."Applies-to ID"); + if GenJnlLine."Bill-to/Pay-to No." = '' then + VendorLedgerEntries.SetRange("Buy-from Vendor No.", GenJnlLine."Account No.") + else + VendorLedgerEntries.SetRange("Buy-from Vendor No.", GenJnlLine."Bill-to/Pay-to No."); + end else + VendorLedgerEntries.SetRange("Applies-to ID", GenJnlLine."Document No."); + + VendorLedgerEntries.SetRange(Open, true); + VendorLedgerEntries.SetRange("Document Type", VendorLedgerEntries."Document Type"::"Credit Memo"); + if VendorLedgerEntries.FindSet() then + repeat + VendorLedgerEntries.CalcFields( + Amount, "Amount (LCY)", + "Remaining Amount", + "Remaining Amt. (LCY)", + "Original Amount", + "Original Amt. (LCY)"); + + if CheckPmtDisc( + GenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + Abs(VendorLedgerEntries."Amount to Apply"), + Abs(VendorLedgerEntries."Remaining Amount"), + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), + Abs(TotAmt)) + then + TotAmt := TotAmt - Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"); + + GenJnlLine.Validate(Amount, -Abs(VendorLedgerEntries."Remaining Amount")); + RemainingAmt -= VendorLedgerEntries."Remaining Amount"; + TotAmt += VendorLedgerEntries."Remaining Amount"; + + GenJnlLine."Applies-to Doc. Type" := GenJnlLine."Applies-to Doc. Type"::"Credit Memo"; + GenJnlLine."Applies-to Doc. No." := VendorLedgerEntries."Document No."; + PaymentAmount := GenJnlLine.Amount; + PaymentAmount1 := GenJnlLine.Amount; + PaymentAmountLCY := GenJnlLine."Amount (LCY)"; + + FilterWithholdingTaxEntry(WithholdingTaxEntry, GenJnlLine); + if WithholdingTaxEntry.FindSet() then + repeat + PurchCrMemoHeader.Reset(); + PurchCrMemoHeader.SetRange("Applies-to Doc. Type", PurchCrMemoHeader."Applies-to Doc. Type"::Invoice); + PurchCrMemoHeader.SetRange("Applies-to Doc. No.", GenJnlLine."Applies-to Doc. No."); + if PurchCrMemoHeader.FindFirst() then begin + TempRemAmt := 0; + VendLedgEntry1.SetRange("Document Type", VendLedgEntry1."Document Type"::"Credit Memo"); + VendLedgEntry1.SetRange("Document No.", PurchCrMemoHeader."No."); + if VendLedgEntry1.FindFirst() then + VendLedgEntry1.CalcFields(Amount, "Remaining Amount"); + + WithholdingTaxEntryTemp.Reset(); + WithholdingTaxEntryTemp.SetRange("Document Type", WithholdingTaxEntry."Document Type"::"Credit Memo"); + WithholdingTaxEntryTemp.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Purchase); + WithholdingTaxEntryTemp.SetRange("Document No.", PurchCrMemoHeader."No."); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntryTemp.FindFirst() then begin + TempRemBase := WithholdingTaxEntryTemp."Unrealized Amount"; + TempRemAmt := WithholdingTaxEntryTemp."Unrealized Base"; + end; + end; + + VendLedgEntry.Reset(); + VendLedgEntry.SetRange("Document No.", GenJnlLine."Applies-to Doc. No."); + VendLedgEntry.SetRange("Document Type", VendLedgEntry."Document Type"::"Credit Memo"); + + if VendLedgEntry.FindFirst() then + VendLedgEntry.CalcFields(Amount, "Remaining Amount"); + + ExpectedAmount := -(VendLedgEntry.Amount + VendLedgEntry1.Amount); + + if (GenJnlLine."Posting Date" <= VendLedgEntry."Pmt. Discount Date") and + (Abs(PaymentAmount1) >= + (Abs(VendLedgEntry."Remaining Amount" + + VendLedgEntry1."Remaining Amount") - + Abs(VendLedgEntry."Original Pmt. Disc. Possible"))) + then + AppldAmount := + Round( + ((PaymentAmount1 * (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / + ExpectedAmount)) + else + AppldAmount := + Round( + (PaymentAmount1 * (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / ExpectedAmount); + + if GenJnlLine."Currency Code" <> '' then begin + CurrFactor := + CurrExchRate.ExchangeRate( + GenJnlLine."Document Date", + GenJnlLine."Currency Code"); + + WithholdingTaxAmount1 := Round(AppldAmount * WithholdingTaxEntry."Withholding Tax %" / 100); + + WithholdingTaxEntry3.Reset(); + WithholdingTaxEntry3.SetCurrentKey("Applies-to Entry No."); + WithholdingTaxEntry3.SetRange("Applies-to Entry No.", WithholdingTaxEntry."Entry No."); + WithholdingTaxEntry3.CalcSums(Amount); + if (Abs(Abs(WithholdingTaxEntry3.Amount) + Abs(WithholdingTaxAmount1) - Abs(WithholdingTaxEntry."Unrealized Amount")) < 0.1) and + (Abs(Abs(WithholdingTaxEntry3.Amount) + Abs(WithholdingTaxAmount1) - Abs(WithholdingTaxEntry."Unrealized Amount")) > 0) + then + WithholdingTaxAmount1 := WithholdingTaxAmount1 + (WithholdingTaxEntry."Unrealized Amount" - (WithholdingTaxEntry3.Amount + WithholdingTaxAmount1)); + + TotalWithholdingTaxAmount4 := + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + WithholdingTaxAmount1, + CurrFactor); + + TotalWithholdingTaxAmount4 := + CurrExchRate.ExchangeAmtLCYToFCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + TotalWithholdingTaxAmount4, + CurrFactor); + + TotalWithholdingTaxAmount := (TotalWithholdingTaxAmount + TotalWithholdingTaxAmount4); + end else begin + WithholdingTaxAmount1 := Round(AppldAmount * WithholdingTaxEntry."Withholding Tax %" / 100); + WithholdingTaxEntry3.Reset(); + WithholdingTaxEntry3.SetCurrentKey("Applies-to Entry No."); + WithholdingTaxEntry3.SetRange("Applies-to Entry No.", WithholdingTaxEntry."Entry No."); + WithholdingTaxEntry3.CalcSums(Amount); + + if (Abs(Abs(WithholdingTaxEntry3.Amount) + Abs(WithholdingTaxAmount1) - Abs(WithholdingTaxEntry."Unrealized Amount")) < 0.1) and + (Abs(Abs(WithholdingTaxEntry3.Amount) + Abs(WithholdingTaxAmount1) - Abs(WithholdingTaxEntry."Unrealized Amount")) > 0) + then + WithholdingTaxAmount1 := WithholdingTaxAmount1 + (WithholdingTaxEntry."Unrealized Amount" - (WithholdingTaxEntry3.Amount + WithholdingTaxAmount1)); + + TotalWithholdingTaxAmount := Round(TotalWithholdingTaxAmount + WithholdingTaxAmount1); + end; + + TotalWithholdingTaxAmount2 := TotalWithholdingTaxAmount; + until WithholdingTaxEntry.Next() = 0; + + until VendorLedgerEntries.Next() = 0; + + ExitLoop := false; + VendorLedgerEntries.Reset(); + if GenJnlLine."Applies-to ID" <> '' then begin + VendorLedgerEntries.SetRange("Applies-to ID", GenJnlLine."Applies-to ID"); + if GenJnlLine."Bill-to/Pay-to No." = '' then + VendorLedgerEntries.SetRange("Buy-from Vendor No.", GenJnlLine."Account No.") + else + VendorLedgerEntries.SetRange("Buy-from Vendor No.", GenJnlLine."Bill-to/Pay-to No."); + end else + VendorLedgerEntries.SetRange("Applies-to ID", GenJnlLine."Document No."); + + VendorLedgerEntries.SetRange(Open, true); + VendorLedgerEntries.SetFilter("Document Type", '<>%1&<>%2', + VendorLedgerEntries."Document Type"::"Credit Memo", VendorLedgerEntries."Document Type"::" "); + if VendorLedgerEntries.FindSet() then begin + repeat + VendorLedgerEntries.CalcFields( + Amount, + "Amount (LCY)", + "Remaining Amount", + "Remaining Amt. (LCY)", + "Original Amount", + "Original Amt. (LCY)"); + + if CheckPmtDisc( + GenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + Abs(VendorLedgerEntries."Amount to Apply"), + Abs(VendorLedgerEntries."Remaining Amount"), + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), + Abs(TotAmt)) + then + TotAmt := TotAmt + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"); + + UpdateAmounts(VendorLedgerEntries, GenJnlLine, RemainingAmt, TotAmt, GenJnlLineAmount, ExitLoop); + + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::Invoice then + GenJnlLine."Applies-to Doc. Type" := GenJnlLine."Applies-to Doc. Type"::Invoice; + + GenJnlLine."Applies-to Doc. No." := VendorLedgerEntries."Document No."; + PaymentAmount := GenJnlLine.Amount; + PaymentAmount1 := GenJnlLine.Amount; + PaymentAmountLCY := GenJnlLine."Amount (LCY)"; + + FilterWithholdingTaxEntry(WithholdingTaxEntry, GenJnlLine); + if WithholdingTaxEntry.FindSet() then + repeat + PurchCrMemoHeader.SetRange("Applies-to Doc. Type", PurchCrMemoHeader."Applies-to Doc. Type"::Invoice); + PurchCrMemoHeader.SetRange("Applies-to Doc. No.", GenJnlLine."Applies-to Doc. No."); + if PurchCrMemoHeader.FindFirst() then begin + TempRemAmt := 0; + + VendLedgEntry1.SetRange("Document Type", VendLedgEntry1."Document Type"::"Credit Memo"); + VendLedgEntry1.SetRange("Document No.", PurchCrMemoHeader."No."); + if VendLedgEntry1.FindFirst() then + VendLedgEntry1.CalcFields(Amount, "Remaining Amount"); + + WithholdingTaxEntryTemp.Reset(); + WithholdingTaxEntryTemp.SetRange("Document Type", WithholdingTaxEntry."Document Type"::"Credit Memo"); + WithholdingTaxEntryTemp.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Purchase); + WithholdingTaxEntryTemp.SetRange("Document No.", PurchCrMemoHeader."No."); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntryTemp.FindFirst() then begin + TempRemBase := WithholdingTaxEntryTemp."Unrealized Amount"; + TempRemAmt := WithholdingTaxEntryTemp."Unrealized Base"; + end; + end; + + VendLedgEntry.Reset(); + VendLedgEntry.SetRange("Document No.", GenJnlLine."Applies-to Doc. No."); + if GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice then + VendLedgEntry.SetRange("Document Type", VendLedgEntry."Document Type"::Invoice); + if VendLedgEntry.FindFirst() then + VendLedgEntry.CalcFields(Amount, "Remaining Amount"); + ExpectedAmount := -(VendLedgEntry.Amount + VendLedgEntry1.Amount); + + if (GenJnlLine."Posting Date" <= VendLedgEntry."Pmt. Discount Date") and + (Abs(PaymentAmount1) >= + (Abs(VendLedgEntry."Remaining Amount" + VendLedgEntry1."Remaining Amount") - + Abs(VendLedgEntry."Original Pmt. Disc. Possible"))) + then + AppldAmount := + Round( + (PaymentAmount1 * + (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / + ExpectedAmount) + else + AppldAmount := + Round( + (PaymentAmount1 * + (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / + ExpectedAmount); + + if GenJnlLine."Currency Code" <> '' then begin + CurrFactor := + CurrExchRate.ExchangeRate( + GenJnlLine."Document Date", + GenJnlLine."Currency Code"); + WithholdingTaxAmount1 := Round(AppldAmount * WithholdingTaxEntry."Withholding Tax %" / 100); + + TotalWithholdingTaxAmount4 := + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + WithholdingTaxAmount1, + CurrFactor); + TotalWithholdingTaxAmount4 := + CurrExchRate.ExchangeAmtLCYToFCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + TotalWithholdingTaxAmount4, + CurrFactor); + TotalWithholdingTaxAmount := (TotalWithholdingTaxAmount + TotalWithholdingTaxAmount4); + end else begin + WithholdingTaxAmount1 := CalcAppliedWithholdingTaxAmount(VendorLedgerEntries, AppldAmount, WithholdingTaxEntry."Withholding Tax %", ExitLoop); + TotalWithholdingTaxAmount := Round(TotalWithholdingTaxAmount + WithholdingTaxAmount1); + end; + + TotalWithholdingTaxAmount2 := TotalWithholdingTaxAmount; + until WithholdingTaxEntry.Next() = 0; + + if ExitLoop then + exit(TotalWithholdingTaxAmount2); + until VendorLedgerEntries.Next() = 0; + + if GenJnlLine."Currency Code" <> '' then begin + CurrFactor := + CurrExchRate.ExchangeRate( + GenJnlLine."Document Date", + GenJnlLine."Currency Code"); + + TotalWithholdingTaxAmount3 := + Round( + TotalWithholdingTaxAmount3 + + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + TotalWithholdingTaxAmount2, CurrFactor))); + end; + end; + + exit(TotalWithholdingTaxAmount2); + end; + + TotAmt := Abs(GenJnlLine.Amount); + + VendorLedgerEntries.Reset(); + VendorLedgerEntries.SetRange("Document No.", GenJnlLine."Applies-to Doc. No."); + VendorLedgerEntries.SetRange("Document Type", GenJnlLine."Applies-to Doc. Type"); + if VendorLedgerEntries.FindFirst() then + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::Invoice then begin + VendorLedgerEntries.CalcFields( + Amount, + "Amount (LCY)", + "Remaining Amount", + "Remaining Amt. (LCY)", + "Original Amount", + "Original Amt. (LCY)"); + + if VendorLedgerEntries."Amount to Apply" = 0 then + VendorLedgerEntries."Amount to Apply" := -ABSMin(VendorLedgerEntries."Remaining Amount", GenJnlLine.Amount); + + if CheckPmtDisc( + GenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + Abs(VendorLedgerEntries."Amount to Apply"), + Abs(VendorLedgerEntries."Remaining Amount"), + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), + Abs(TotAmt)) + then + TotAmt := TotAmt + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"); + + if Abs(VendorLedgerEntries."Remaining Amount") < Abs(TotAmt) then + GenJnlLine.Validate(Amount, Abs(VendorLedgerEntries."Remaining Amount")) + else + GenJnlLine.Validate(Amount, TotAmt); + end else + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::"Credit Memo" then begin + VendorLedgerEntries.CalcFields( + Amount, + "Amount (LCY)", + "Remaining Amount", + "Remaining Amt. (LCY)", + "Original Amount", + "Original Amt. (LCY)"); + + if VendorLedgerEntries."Amount to Apply" = 0 then + VendorLedgerEntries."Amount to Apply" := ABSMin(VendorLedgerEntries."Remaining Amount", GenJnlLine.Amount); + + if CheckPmtDisc( + GenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + Abs(VendorLedgerEntries."Amount to Apply"), + Abs(VendorLedgerEntries."Remaining Amount"), + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), + Abs(TotAmt)) + then + TotAmt := TotAmt + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"); + + if Abs(VendorLedgerEntries."Remaining Amount") < Abs(TotAmt) then + GenJnlLine.Validate(Amount, -Abs(VendorLedgerEntries."Remaining Amount")) + else + GenJnlLine.Validate(Amount, -TotAmt); + end; + + TotalWithholdingTaxAmount := 0; + TempRemAmt := 0; + PaymentAmount := GenJnlLine.Amount; + PaymentAmount1 := GenJnlLine.Amount; + PaymentAmountLCY := GenJnlLine."Amount (LCY)"; + + FilterWithholdingTaxEntry(WithholdingTaxEntry, GenJnlLine); + if WithholdingTaxEntry.FindSet() then begin + repeat + PurchCrMemoHeader.SetRange( + "Applies-to Doc. Type", + PurchCrMemoHeader."Applies-to Doc. Type"::Invoice); + PurchCrMemoHeader.SetRange("Applies-to Doc. No.", GenJnlLine."Applies-to Doc. No."); + if PurchCrMemoHeader.FindFirst() then begin + TempRemAmt := 0; + + VendLedgEntry1.SetRange("Document Type", VendLedgEntry1."Document Type"::"Credit Memo"); + VendLedgEntry1.SetRange("Document No.", PurchCrMemoHeader."No."); + if VendLedgEntry1.FindFirst() then + VendLedgEntry1.CalcFields(Amount, "Remaining Amount", "Remaining Amt. (LCY)"); + + WithholdingTaxEntryTemp.Reset(); + WithholdingTaxEntryTemp.SetRange("Document Type", WithholdingTaxEntry."Document Type"::"Credit Memo"); + WithholdingTaxEntryTemp.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Purchase); + WithholdingTaxEntryTemp.SetRange("Document No.", PurchCrMemoHeader."No."); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntryTemp.FindFirst() then + TempRemAmt := WithholdingTaxEntryTemp."Unrealized Base"; + end; + + VendLedgEntry.Reset(); + VendLedgEntry.SetRange("Document No.", GenJnlLine."Applies-to Doc. No."); + VendLedgEntry.SetRange("Document Type", GenJnlLine."Applies-to Doc. Type"); + if VendLedgEntry.FindFirst() then + VendLedgEntry.CalcFields(Amount, "Remaining Amount", "Remaining Amt. (LCY)"); + ExpectedAmount := -(VendLedgEntry.Amount + VendLedgEntry1.Amount); + AppldAmount := + Round( + (PaymentAmount1 * (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / + ExpectedAmount); + + if GenJnlLine."Currency Code" <> '' then begin + CurrFactor := + CurrExchRate.ExchangeRate( + GenJnlLine."Document Date", + GenJnlLine."Currency Code"); + + WithholdingTaxAmount1 := Round(AppldAmount * WithholdingTaxEntry."Withholding Tax %" / 100); + WithholdingTaxEntry3.Reset(); + WithholdingTaxEntry3.SetCurrentKey("Applies-to Entry No."); + WithholdingTaxEntry3.SetRange("Applies-to Entry No.", WithholdingTaxEntry."Entry No."); + WithholdingTaxEntry3.CalcSums(Amount); + if (Abs(Abs(WithholdingTaxEntry3.Amount) + Abs(WithholdingTaxAmount1) - Abs(WithholdingTaxEntry."Unrealized Amount")) < 0.1) and + (Abs(Abs(WithholdingTaxEntry3.Amount) + Abs(WithholdingTaxAmount1) - Abs(WithholdingTaxEntry."Unrealized Amount")) > 0) + then + WithholdingTaxAmount1 := WithholdingTaxAmount1 + (WithholdingTaxEntry."Unrealized Amount" - (WithholdingTaxEntry3.Amount + WithholdingTaxAmount1)); + + + TotalWithholdingTaxAmount4 := + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + WithholdingTaxAmount1, + CurrFactor); + + TotalWithholdingTaxAmount4 := + CurrExchRate.ExchangeAmtLCYToFCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + TotalWithholdingTaxAmount4, + CurrFactor); + + TotalWithholdingTaxAmount := (TotalWithholdingTaxAmount + TotalWithholdingTaxAmount4); + end else begin + WithholdingTaxAmount1 := Round(AppldAmount * WithholdingTaxEntry."Withholding Tax %" / 100); + WithholdingTaxEntry3.Reset(); + WithholdingTaxEntry3.SetCurrentKey("Applies-to Entry No."); + WithholdingTaxEntry3.SetRange("Applies-to Entry No.", WithholdingTaxEntry."Entry No."); + WithholdingTaxEntry3.CalcSums(Amount); + TotalWithholdingTaxAmount := Round(TotalWithholdingTaxAmount + WithholdingTaxAmount1, GLSetup."Inv. Rounding Precision (LCY)", '='); + end; + until WithholdingTaxEntry.Next() = 0; + + exit(TotalWithholdingTaxAmount); + end; + end; + + procedure CalcVendExtraWithholdingForEarliest(var GenJnlLine: Record "Gen. Journal Line") WithholdingTaxAmount: Decimal + var + VendorLedgerEntry: Record "Vendor Ledger Entry"; + WithholdingTaxEntry: Record "Withholding Tax Entry"; + VendLedgEntry: Record "Vendor Ledger Entry"; + PurchCrMemoHeader: Record "Purch. Cr. Memo Hdr."; + VendLedgEntry1: Record "Vendor Ledger Entry"; + WithholdingTaxEntryTemp: Record "Withholding Tax Entry"; + WithholdingTaxEntry3: Record "Withholding Tax Entry"; + GLSetup: Record "General Ledger Setup"; + Vendor: Record Vendor; + TotalWithholdingTaxBase: Decimal; + WithholdingTaxBase: Decimal; + TotalWithholdingTaxAmount: Decimal; + TotalWithholdingTaxAmount2: Decimal; + TotalWithholdingTaxAmount3: Decimal; + PaymentAmount1: Decimal; + AppldAmount: Decimal; + ExpectedAmount: Decimal; + Diff: Decimal; + RemainingAmt: Decimal; + begin + GLSetup.Get(); + if GLSetup."Enable Withholding Tax" then + if GenJnlLine."Bill-to/Pay-to No." = '' then begin + Vendor.Get(GenJnlLine."Account No."); + if (Vendor."WHT ABN" <> '') or Vendor."WHT Foreign Vend" then + exit; + end else begin + Vendor.Get(GenJnlLine."Bill-to/Pay-to No."); + if (Vendor."WHT ABN" <> '') or Vendor."WHT Foreign Vend" then + exit; + end; + + WithholdingTaxAmount := 0; + TotalWithholdingTaxBase := 0; + WithholdingTaxBase := 0; + + if WithholdingPostingSetup.Get( + GenJnlLine."Wthldg. Tax Bus. Post. Group", + GenJnlLine."Wthldg. Tax Prod. Post. Group") + then + if (WithholdingPostingSetup."Realized Withholding Tax Type" = + WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest) + then + if GenJnlLine."Withholding Tax Absorb Base" <> 0 then + WithholdingTaxBase := Abs(GenJnlLine."Withholding Tax Absorb Base") + else + WithholdingTaxBase := Abs(GenJnlLine.Amount); + + TotalWithholdingTaxBase := WithholdingTaxBase; + + if GenJnlLine."Applies-to Doc. No." <> '' then begin + VendorLedgerEntry.Reset(); + VendorLedgerEntry.SetRange("Document No.", GenJnlLine."Applies-to Doc. No."); + if (GenJnlLine."Document Type" = GenJnlLine."Document Type"::Payment) then + VendorLedgerEntry.SetFilter( + "Document Type", + '%1', + VendorLedgerEntry."Document Type"::Invoice); + + if (GenJnlLine."Document Type" = GenJnlLine."Document Type"::Refund) then + VendorLedgerEntry.SetFilter( + "Document Type", + '%1', + VendorLedgerEntry."Document Type"::"Credit Memo"); + + if (GenJnlLine."Document Type" = GenJnlLine."Document Type"::Invoice) then + VendorLedgerEntry.SetFilter( + "Document Type", + '%1', + VendorLedgerEntry."Document Type"::Payment); + + if (GenJnlLine."Document Type" = GenJnlLine."Document Type"::"Credit Memo") then + VendorLedgerEntry.SetFilter( + "Document Type", + '%1', + VendorLedgerEntry."Document Type"::Refund); + + if VendorLedgerEntry.FindFirst() then begin + if GenJnlLine."Currency Code" <> VendorLedgerEntry."Currency Code" then + Error(CurrencyCodeSameErr); + + if VendorLedgerEntry.Prepayment then begin + TotalWithholdingTaxAmount := 0; + PaymentAmount1 := GenJnlLine.Amount; + + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetCurrentKey("Transaction Type", "Document No.", "Document Type", "Bill-to/Pay-to No."); + WithholdingTaxEntry.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Purchase); + if GenJnlLine."Applies-to Doc. No." <> '' then begin + WithholdingTaxEntry.SetRange("Document No.", GenJnlLine."Applies-to Doc. No."); + WithholdingTaxEntry.SetRange("Document Type", GenJnlLine."Applies-to Doc. Type"); + end else + WithholdingTaxEntry.SetRange("Bill-to/Pay-to No.", GenJnlLine."Account No."); + if WithholdingTaxEntry.FindSet() then begin + repeat + PurchCrMemoHeader.SetRange( + "Applies-to Doc. Type", + PurchCrMemoHeader."Applies-to Doc. Type"::Invoice); + PurchCrMemoHeader.SetRange("Applies-to Doc. No.", GenJnlLine."Applies-to Doc. No."); + if PurchCrMemoHeader.FindFirst() then begin + TempRemAmt := 0; + + VendLedgEntry1.SetRange("Document Type", VendLedgEntry1."Document Type"::"Credit Memo"); + VendLedgEntry1.SetRange("Document No.", PurchCrMemoHeader."No."); + if VendLedgEntry1.FindFirst() then + VendLedgEntry1.CalcFields(Amount, "Remaining Amount"); + + WithholdingTaxEntryTemp.Reset(); + WithholdingTaxEntryTemp.SetRange("Document Type", WithholdingTaxEntry."Document Type"::"Credit Memo"); + WithholdingTaxEntryTemp.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Purchase); + WithholdingTaxEntryTemp.SetRange("Document No.", PurchCrMemoHeader."No."); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntryTemp.FindFirst() then + TempRemAmt := WithholdingTaxEntryTemp."Unrealized Base"; + end; + + VendLedgEntry.SetRange("Document No.", GenJnlLine."Applies-to Doc. No."); + VendLedgEntry.SetRange("Document Type", GenJnlLine."Applies-to Doc. Type"); + if VendLedgEntry.FindFirst() then + VendLedgEntry.CalcFields(Amount, "Remaining Amount"); + ExpectedAmount := -(VendLedgEntry.Amount + VendLedgEntry1.Amount); + if (GenJnlLine."Posting Date" <= VendLedgEntry."Pmt. Discount Date") and + (Abs(PaymentAmount1) >= (Abs(VendLedgEntry."Remaining Amount" + + VendLedgEntry1."Remaining Amount") - + Abs(VendLedgEntry."Original Pmt. Disc. Possible"))) + then + AppldAmount := + Round( + ((PaymentAmount1 - VendLedgEntry."Original Pmt. Disc. Possible") * + (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / ExpectedAmount) + else + AppldAmount := + Round( + (PaymentAmount1 * (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / + ExpectedAmount); + + TotalWithholdingTaxAmount := Round(TotalWithholdingTaxAmount + AppldAmount * WithholdingTaxEntry."Withholding Tax %" / 100); + until WithholdingTaxEntry.Next() = 0; + + WithholdingTaxEntry3.Reset(); + WithholdingTaxEntry3.SetCurrentKey("Applies-to Entry No."); + WithholdingTaxEntry3.SetRange("Applies-to Entry No.", WithholdingTaxEntry."Entry No."); + WithholdingTaxEntry3.CalcSums(Amount, "Amount (LCY)"); + if (Abs(Abs(WithholdingTaxEntry3.Amount) + Abs(TotalWithholdingTaxAmount) - Abs(WithholdingTaxEntry."Unrealized Amount")) < 0.1) and + (Abs(Abs(WithholdingTaxEntry3.Amount) + Abs(TotalWithholdingTaxAmount) - Abs(WithholdingTaxEntry."Unrealized Amount")) > 0) + then begin + Diff := WithholdingTaxEntry."Unrealized Amount" - (WithholdingTaxEntry3.Amount + TotalWithholdingTaxAmount); + TotalWithholdingTaxAmount := TotalWithholdingTaxAmount + Diff; + end; + + exit(Round(TotalWithholdingTaxAmount)); + end + end else begin + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetRange("Document No.", VendorLedgerEntry."Document No."); + if WithholdingTaxEntry.FindFirst() then + if WithholdingPostingSetup.Get( + WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", + WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group") + then + if ((WithholdingPostingSetup."Realized Withholding Tax Type" = + WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest) and + (WithholdingTaxEntry."Withholding Tax %" = WithholdingPostingSetup."Withholding Tax %")) + then begin + TotAmt := 0; + TotAmt := GenJnlLine.Amount; + + VendorLedgerEntries.Reset(); + VendorLedgerEntries.SetRange("Entry No.", VendorLedgerEntry."Entry No."); + if VendorLedgerEntries.FindSet() then begin + VendorLedgerEntries.CalcFields( + Amount, "Amount (LCY)", + "Remaining Amount", "Remaining Amt. (LCY)"); + + if CheckPmtDisc( + GenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + Abs(VendorLedgerEntries."Amount to Apply"), + Abs(VendorLedgerEntries."Remaining Amount"), + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), + Abs(TotAmt)) + then + TotAmt := TotAmt - VendorLedgerEntries."Original Pmt. Disc. Possible"; + + if Abs(WithholdingTaxEntry."Rem Realized Base") >= WithholdingTaxBase then + TotAmt := 0 + else + TotAmt := TotAmt - Abs(WithholdingTaxEntry."Rem Realized Base"); + end; + + WithholdingTaxBase := TotAmt; + end; + end; + end; + end else + if GenJnlLine."Applies-to ID" <> '' then begin + if ((GenJnlLine."Document Type" = GenJnlLine."Document Type"::Invoice) or + (GenJnlLine."Document Type" = GenJnlLine."Document Type"::Refund)) + then begin + VendorLedgerEntry.Reset(); + VendorLedgerEntry.SetRange("Applies-to ID", GenJnlLine."Applies-to ID"); + VendorLedgerEntry.SetFilter( + "Document Type", + '%1|%2', + VendorLedgerEntry."Document Type"::Payment, + VendorLedgerEntry."Document Type"::"Credit Memo"); + if VendorLedgerEntry.FindSet() then + repeat + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetRange("Document No.", VendorLedgerEntry."Document No."); + if WithholdingTaxEntry.FindSet() then + repeat + if WithholdingPostingSetup.Get( + WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", + WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group") + then + if ((WithholdingPostingSetup."Realized Withholding Tax Type" = + WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest) and + (WithholdingTaxEntry."Withholding Tax %" = WithholdingPostingSetup."Withholding Tax %")) + then + if TotalWithholdingTaxBase > Abs(WithholdingTaxEntry."Rem Realized Base") then begin + TotalWithholdingTaxBase := TotalWithholdingTaxBase - Abs(WithholdingTaxEntry."Rem Realized Base"); + if (((GenJnlLine."Document Type" = GenJnlLine."Document Type"::Refund) and + (WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::"Credit Memo")) or + ((GenJnlLine."Document Type" = GenJnlLine."Document Type"::Invoice) and + (WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::Payment))) + then + WithholdingTaxBase := WithholdingTaxBase - Abs(WithholdingTaxEntry."Rem Realized Base"); + end else begin + if (TotalWithholdingTaxBase > 0) and (Abs(TotalWithholdingTaxBase) <= Abs(WithholdingTaxEntry."Rem Realized Base")) then + TotalWithholdingTaxBase := TotalWithholdingTaxBase - TotalWithholdingTaxBase; + + if (((GenJnlLine."Document Type" = GenJnlLine."Document Type"::Refund) and + (WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::"Credit Memo")) or + ((GenJnlLine."Document Type" = GenJnlLine."Document Type"::Invoice) and + (WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::Payment))) + then + WithholdingTaxBase := 0; + end; + until WithholdingTaxEntry.Next() = 0; + until VendorLedgerEntry.Next() = 0; + end; + + if ((GenJnlLine."Document Type" = GenJnlLine."Document Type"::Payment) or + (GenJnlLine."Document Type" = GenJnlLine."Document Type"::"Credit Memo")) + then begin + TotalWithholdingTaxAmount := 0; + TotalWithholdingTaxAmount2 := 0; + TotalWithholdingTaxAmount3 := 0; + RemainingAmt := 0; + TotAmt := 0; + + VendorLedgerEntries1.Reset(); + VendorLedgerEntries1.SetRange("Applies-to ID", GenJnlLine."Applies-to ID"); + VendorLedgerEntries1.SetRange(Open, true); + if GenJnlLine."Bill-to/Pay-to No." = '' then + VendorLedgerEntries1.SetRange("Buy-from Vendor No.", GenJnlLine."Account No.") + else + VendorLedgerEntries1.SetRange("Buy-from Vendor No.", GenJnlLine."Bill-to/Pay-to No."); + if VendorLedgerEntries1.FindSet() then + repeat + VendorLedgerEntries1.CalcFields( + Amount, "Amount (LCY)", + "Remaining Amount", "Remaining Amt. (LCY)"); + + RemainingAmt := RemainingAmt + VendorLedgerEntries1."Remaining Amt. (LCY)"; + until VendorLedgerEntries1.Next() = 0; + + TotAmt := Abs(GenJnlLine."Amount (LCY)"); + CurrFactor := + CurrExchRate.ExchangeRate( + GenJnlLine."Document Date", GenJnlLine."Currency Code"); + + VendorLedgerEntry.Reset(); + VendorLedgerEntry.SetRange("Applies-to ID", GenJnlLine."Applies-to ID"); + VendorLedgerEntry.SetRange("Document Type", VendorLedgerEntry."Document Type"::Refund); + if VendorLedgerEntry.FindSet() then + repeat + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetRange("Document No.", VendorLedgerEntry."Document No."); + if WithholdingTaxEntry.FindSet() then + repeat + if WithholdingPostingSetup.Get( + WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", + WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group") + then + if ((WithholdingPostingSetup."Realized Withholding Tax Type" = + WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest) and + (WithholdingTaxEntry."Withholding Tax %" = WithholdingPostingSetup."Withholding Tax %")) + then + if TotalWithholdingTaxBase > Abs(WithholdingTaxEntry."Rem Realized Base") then begin + TotalWithholdingTaxBase := TotalWithholdingTaxBase - Abs(WithholdingTaxEntry."Rem Realized Base"); + if GenJnlLine."Document Type" = GenJnlLine."Document Type"::"Credit Memo" then + WithholdingTaxBase := WithholdingTaxBase - Abs(WithholdingTaxEntry."Rem Realized Base"); + end else + if (TotalWithholdingTaxBase > 0) and (Abs(TotalWithholdingTaxBase) <= Abs(WithholdingTaxEntry."Rem Realized Base")) then begin + TotalWithholdingTaxBase := 0; + if GenJnlLine."Document Type" = GenJnlLine."Document Type"::"Credit Memo" then + WithholdingTaxBase := 0; + end; + until WithholdingTaxEntry.Next() = 0; + until VendorLedgerEntry.Next() = 0; + + VendorLedgerEntry.Reset(); + VendorLedgerEntry.SetRange("Applies-to ID", GenJnlLine."Applies-to ID"); + VendorLedgerEntry.SetRange("Document Type", VendorLedgerEntry."Document Type"::Invoice); + if VendorLedgerEntry.FindSet() then begin + repeat + if GenJnlLine."Currency Code" <> VendorLedgerEntry."Currency Code" then + Error(CurrencyCodeSameErr); + + if VendorLedgerEntry.Prepayment then begin + VendorLedgerEntries.Reset(); + VendorLedgerEntries.SetRange("Entry No.", VendorLedgerEntry."Entry No."); + if VendorLedgerEntries.FindSet() then begin + VendorLedgerEntries.CalcFields( + Amount, "Amount (LCY)", + "Remaining Amount", "Remaining Amt. (LCY)"); + + if CheckPmtDisc( + GenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + Abs(VendorLedgerEntries."Amount to Apply"), CurrFactor), + Abs(VendorLedgerEntries."Remaining Amt. (LCY)"), + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), CurrFactor), + Abs(TotAmt)) + then + TotAmt := TotAmt - + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + VendorLedgerEntries."Original Pmt. Disc. Possible", CurrFactor); + + if (Abs(RemainingAmt) < Abs(TotAmt)) or + (Abs(VendorLedgerEntries."Remaining Amt. (LCY)") < Abs(TotAmt)) + then begin + if CheckPmtDisc( + GenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + Abs(VendorLedgerEntries."Amount to Apply"), CurrFactor), + Abs(VendorLedgerEntries."Remaining Amt. (LCY)"), + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), CurrFactor), + Abs(TotAmt)) + then begin + GenJnlLine.Validate( + Amount, + Abs(VendorLedgerEntries."Remaining Amt. (LCY)" - + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + VendorLedgerEntries."Original Pmt. Disc. Possible", CurrFactor))); + + if VendorLedgerEntries."Document Type" <> + VendorLedgerEntries."Document Type"::"Credit Memo" + then + TotAmt := TotAmt + VendorLedgerEntries."Remaining Amt. (LCY)"; + + RemainingAmt := + RemainingAmt - + VendorLedgerEntries."Remaining Amt. (LCY)"; + end else begin + GenJnlLine.Validate(Amount, Abs(VendorLedgerEntries."Remaining Amt. (LCY)")); + + if VendorLedgerEntries."Document Type" <> + VendorLedgerEntries."Document Type"::"Credit Memo" + then + TotAmt := TotAmt + VendorLedgerEntries."Remaining Amt. (LCY)"; + + RemainingAmt := RemainingAmt - VendorLedgerEntries."Remaining Amt. (LCY)"; + end; + end else begin + if CheckPmtDisc( + GenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + Abs(VendorLedgerEntries."Amount to Apply"), CurrFactor), + Abs(VendorLedgerEntries."Remaining Amt. (LCY)"), + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), CurrFactor), + Abs(TotAmt)) + then + GenJnlLine.Validate(Amount, TotAmt + + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + VendorLedgerEntries."Original Pmt. Disc. Possible", CurrFactor)) + else + GenJnlLine.Validate(Amount, TotAmt); + + TotAmt := 0; + end; + + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::Invoice then + GenJnlLine."Applies-to Doc. Type" := GenJnlLine."Applies-to Doc. Type"::Invoice + else begin + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::"Credit Memo" then + GenJnlLine."Applies-to Doc. Type" := GenJnlLine."Applies-to Doc. Type"::"Credit Memo"; + + RemainingAmt := RemainingAmt + VendorLedgerEntries."Remaining Amt. (LCY)"; + TotAmt := TotAmt + VendorLedgerEntries."Remaining Amt. (LCY)"; + end; + + GenJnlLine."Applies-to Doc. No." := VendorLedgerEntries."Document No."; + PaymentAmount1 := GenJnlLine.Amount; + + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetCurrentKey("Transaction Type", "Document No.", "Document Type", "Bill-to/Pay-to No."); + WithholdingTaxEntry.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Purchase); + if GenJnlLine."Applies-to Doc. No." <> '' then begin + WithholdingTaxEntry.SetRange("Document Type", GenJnlLine."Applies-to Doc. Type"); + WithholdingTaxEntry.SetRange("Document No.", GenJnlLine."Applies-to Doc. No."); + end else + WithholdingTaxEntry.SetRange("Bill-to/Pay-to No.", GenJnlLine."Account No."); + if WithholdingTaxEntry.FindSet() then + repeat + PurchCrMemoHeader.Reset(); + PurchCrMemoHeader.SetRange("Applies-to Doc. No.", GenJnlLine."Applies-to Doc. No."); + PurchCrMemoHeader.SetRange("Applies-to Doc. Type", PurchCrMemoHeader."Applies-to Doc. Type"::Invoice); + if PurchCrMemoHeader.FindFirst() then begin + TempRemAmt := 0; + + VendLedgEntry1.SetRange("Document Type", VendLedgEntry1."Document Type"::"Credit Memo"); + VendLedgEntry1.SetRange("Document No.", PurchCrMemoHeader."No."); + if VendLedgEntry1.FindFirst() then + VendLedgEntry1.CalcFields(Amount, "Remaining Amount", + "Amount (LCY)", "Remaining Amt. (LCY)"); + + WithholdingTaxEntryTemp.Reset(); + WithholdingTaxEntryTemp.SetRange("Document Type", WithholdingTaxEntry."Document Type"::"Credit Memo"); + WithholdingTaxEntryTemp.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Purchase); + WithholdingTaxEntryTemp.SetRange("Document No.", PurchCrMemoHeader."No."); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntryTemp.FindFirst() then begin + TempRemBase := WithholdingTaxEntryTemp."Unrealized Amount"; + TempRemAmt := WithholdingTaxEntryTemp."Unrealized Base"; + end; + end; + + VendLedgEntry.Reset(); + VendLedgEntry.SetRange("Document No.", GenJnlLine."Applies-to Doc. No."); + if GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice then + VendLedgEntry.SetRange("Document Type", VendLedgEntry."Document Type"::Invoice) + else + if GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::"Credit Memo" then + VendLedgEntry.SetRange("Document Type", VendLedgEntry."Document Type"::"Credit Memo"); + if VendLedgEntry.FindFirst() then + VendLedgEntry.CalcFields(Amount, "Remaining Amount", + "Amount (LCY)", "Remaining Amt. (LCY)"); + ExpectedAmount := -(VendLedgEntry.Amount + VendLedgEntry1.Amount); + if (GenJnlLine."Posting Date" <= VendLedgEntry."Pmt. Discount Date") and + (Abs(PaymentAmount1) >= + (Abs(VendLedgEntry."Remaining Amt. (LCY)" + VendLedgEntry1."Remaining Amt. (LCY)") - + Abs( + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + VendorLedgerEntries."Original Pmt. Disc. Possible", CurrFactor)))) + then + AppldAmount := + Round( + ((PaymentAmount1 - + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + VendorLedgerEntries."Original Pmt. Disc. Possible", CurrFactor)) * + (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / + ExpectedAmount) + else + AppldAmount := + Round( + (PaymentAmount1 * + (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / + ExpectedAmount); + + TotalWithholdingTaxAmount := Round(TotalWithholdingTaxAmount + AppldAmount * WithholdingTaxEntry."Withholding Tax %" / 100); + + if GenJnlLine."Currency Code" <> '' then + TotalWithholdingTaxAmount2 := + Round( + TotalWithholdingTaxAmount2 + + Round( + CurrExchRate.ExchangeAmtLCYToFCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + AppldAmount * WithholdingTaxEntry."Withholding Tax %" / 100, + CurrFactor))) + else + TotalWithholdingTaxAmount2 := TotalWithholdingTaxAmount; + + WithholdingTaxEntry3.Reset(); + WithholdingTaxEntry3.SetCurrentKey("Applies-to Entry No."); + WithholdingTaxEntry3.SetRange("Applies-to Entry No.", WithholdingTaxEntry."Entry No."); + WithholdingTaxEntry3.CalcSums(Amount, "Amount (LCY)"); + if (Abs(Abs(WithholdingTaxEntry3.Amount) + Abs(TotalWithholdingTaxAmount2) - Abs(WithholdingTaxEntry."Unrealized Amount")) < 0.1) and + (Abs(Abs(WithholdingTaxEntry3.Amount) + Abs(TotalWithholdingTaxAmount2) - Abs(WithholdingTaxEntry."Unrealized Amount")) > 0) + then begin + Diff := WithholdingTaxEntry."Unrealized Amount" - (WithholdingTaxEntry3.Amount + TotalWithholdingTaxAmount2); + TotalWithholdingTaxAmount2 := TotalWithholdingTaxAmount2 + Diff; + end; + + until WithholdingTaxEntry.Next() = 0; + end; + end else begin + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetRange("Document No.", VendorLedgerEntry."Document No."); + if WithholdingTaxEntry.FindSet() then + repeat + if WithholdingPostingSetup.Get( + WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", + WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group") + then + if ((WithholdingPostingSetup."Realized Withholding Tax Type" = + WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest) and + (WithholdingTaxEntry."Withholding Tax %" = WithholdingPostingSetup."Withholding Tax %")) + then begin + VendorLedgerEntries.Reset(); + VendorLedgerEntries.SetRange("Entry No.", VendorLedgerEntry."Entry No."); + if VendorLedgerEntries.FindSet() then begin + VendorLedgerEntries.CalcFields( + Amount, "Amount (LCY)", + "Remaining Amount", "Remaining Amt. (LCY)"); + + if CheckPmtDisc( + GenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + Abs(VendorLedgerEntries."Amount to Apply"), CurrFactor), + Abs(VendorLedgerEntries."Remaining Amt. (LCY)"), + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), CurrFactor), + Abs(TotAmt)) + then + TotAmt := TotAmt - + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + VendorLedgerEntries."Original Pmt. Disc. Possible", CurrFactor); + + if (Abs(RemainingAmt) < Abs(TotAmt)) or + (Abs(VendorLedgerEntries."Remaining Amt. (LCY)") < Abs(TotAmt)) + then begin + if VendorLedgerEntries."Document Type" <> + VendorLedgerEntries."Document Type"::"Credit Memo" + then + TotAmt := TotAmt + VendorLedgerEntries."Remaining Amt. (LCY)"; + RemainingAmt := RemainingAmt - VendorLedgerEntries."Remaining Amt. (LCY)"; + end else + TotAmt := 0; + end; + end; + until WithholdingTaxEntry.Next() = 0; + end; + until VendorLedgerEntry.Next() = 0; + + if TotAmt > 0 then begin + TotalWithholdingTaxAmount3 := Round(TotalWithholdingTaxAmount3 + TotAmt * WithholdingPostingSetup."Withholding Tax %" / 100); + + if GenJnlLine."Currency Code" <> '' then + TotalWithholdingTaxAmount2 := + Round( + TotalWithholdingTaxAmount2 + + Round( + CurrExchRate.ExchangeAmtLCYToFCY( + GenJnlLine."Document Date", + GenJnlLine."Currency Code", + TotAmt * WithholdingPostingSetup."Withholding Tax %" / 100, + CurrFactor))) + else + TotalWithholdingTaxAmount2 := TotalWithholdingTaxAmount2 + TotalWithholdingTaxAmount3; + end else + WithholdingTaxBase := 0; + + if Round(TotalWithholdingTaxAmount2) <> 0 then + exit(Round(TotalWithholdingTaxAmount2)); + end; + end; + end; + + WithholdingTaxAmount := Round(WithholdingTaxBase * WithholdingPostingSetup."Withholding Tax %" / 100); + + if WithholdingPostingSetup.Get(GenJnlLine."Wthldg. Tax Bus. Post. Group", GenJnlLine."Wthldg. Tax Prod. Post. Group") then + if WithholdingPostingSetup."Realized Withholding Tax Type" = WithholdingPostingSetup."Realized Withholding Tax Type"::Earliest then + if WithholdingTaxBase < WithholdingPostingSetup."Wthldg. Tax Min. Inv. Amount" then + WithholdingTaxAmount := 0; + end; + + local procedure UpdateAmounts(VendorLedgerEntry: Record "Vendor Ledger Entry"; var GenJournalLine: Record "Gen. Journal Line"; var RemainingAmt: Decimal; var TotAmt: Decimal; var GenJnlLineAmount: Decimal; var ExitLoop: Boolean) + begin + if (Abs(RemainingAmt) < Abs(TotAmt)) or + (Abs(VendorLedgerEntry."Remaining Amount") < Abs(TotAmt)) + then begin + GenJnlLineAmount := Abs(ABSMin(VendorLedgerEntry."Remaining Amount", RemainingAmt)); + GenJournalLine.Validate(Amount, Abs(ABSMin(VendorLedgerEntry."Amount to Apply", GenJnlLineAmount))); + TotAmt := TotAmt - Abs(GenJournalLine.Amount); + RemainingAmt := RemainingAmt + Abs(GenJournalLine.Amount); + end else begin + GenJournalLine.Validate(Amount, TotAmt); + ExitLoop := true; + end; + end; + + local procedure FilterWithholdingTaxEntry(var WithholdingTaxEntry: Record "Withholding Tax Entry"; GenJournalLine: Record "Gen. Journal Line") + begin + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetCurrentKey("Transaction Type", "Document No.", "Document Type", "Bill-to/Pay-to No."); + WithholdingTaxEntry.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Purchase); + if GenJournalLine."Applies-to Doc. No." <> '' then begin + WithholdingTaxEntry.SetRange("Document Type", GenJournalLine."Applies-to Doc. Type"); + WithholdingTaxEntry.SetRange("Document No.", GenJournalLine."Applies-to Doc. No."); + end else + WithholdingTaxEntry.SetRange("Bill-to/Pay-to No.", GenJournalLine."Account No."); + end; + + procedure CalcAppliedWithholdingTaxAmount(var VendorLedgerEntry: Record "Vendor Ledger Entry"; AppliedAmountWithholding: Decimal; WithholdingTaxPercent: Decimal; ExitLoop: Boolean): Decimal + var + Result: Decimal; + EntryNo: Integer; + TotalAmountToApply: Decimal; + AppliedAmount: Decimal; + begin + if ExitLoop then begin + // Here we can have several Vendor Ledger Entries to be applied. + // So we need iterate through remaining entries to calculate Withholding Tax amount per entry + EntryNo := VendorLedgerEntry."Entry No."; + TotalAmountToApply := AppliedAmountWithholding; + repeat + AppliedAmount := ABSMin(-VendorLedgerEntry."Amount to Apply", TotalAmountToApply); + Result += CalcWithholdingTaxAmount(AppliedAmount, WithholdingTaxPercent); + TotalAmountToApply -= AppliedAmount; + until (VendorLedgerEntry.Next() = 0) or (TotalAmountToApply <= 0); + + VendorLedgerEntry.Get(EntryNo); + + exit(Result); + end; + + exit(CalcWithholdingTaxAmount(AppliedAmountWithholding, WithholdingTaxPercent)); + end; + + local procedure CalcWithholdingTaxAmount(Amount: Decimal; WithholdingTaxPercent: Decimal): Decimal + begin + exit(Round(Amount * WithholdingTaxPercent / 100)); + end; + + procedure ABSMin(Decimal1: Decimal; Decimal2: Decimal): Decimal + begin + if Abs(Decimal1) < Abs(Decimal2) then + exit(Decimal1); + + exit(Decimal2); + end; + + local procedure IsForeignVendor(GenJnlLine: Record "Gen. Journal Line"): Boolean + var + GLSetup: Record "General Ledger Setup"; + Vendor: Record Vendor; + begin + GLSetup.Get(); + if not GLSetup."Enable Withholding Tax" then + exit(false); + + if GenJnlLine."Bill-to/Pay-to No." = '' then begin + if GenJnlLine."Account Type" = GenJnlLine."Account Type"::Vendor then + Vendor.Get(GenJnlLine."Account No."); + end else + if (GenJnlLine."Bal. Account Type" = GenJnlLine."Bal. Account Type"::Vendor) or + (GenJnlLine."Account Type" = GenJnlLine."Account Type"::Vendor) + then + Vendor.Get(GenJnlLine."Bill-to/Pay-to No."); + + if (Vendor."WHT ABN" <> '') or Vendor."WHT Foreign Vend" then + exit(true); + + exit(false); + end; + + procedure PrintWHTSlips(var GLReg: Record "G/L Register"; ScheduleInJobQueue: Boolean) + var + GLEntry: Record "G/L Entry"; + WithholdingTaxEntry: Record "Withholding Tax Entry"; + WithholdingTaxEntry2: Record "Withholding Tax Entry"; + WithholdingSlipBuffer: Record "Withholding Tax Cert. Buffer"; + PurchSetup: Record "Purchases & Payables Setup"; + ReportSelection: Record "Report Selections"; + WithholdingRevenueTypes: Record "Withholding Tax Revenue Types"; + GeneralLedgerSetup: Record "General Ledger Setup"; + BatchPostingPrintMgt: Codeunit "Batch Posting Print Mgt."; + NoSeries: Codeunit "No. Series"; + GLRegFilter: Text; + StartTrans: Integer; + EndTrans: Integer; + x: Integer; + PrintSlips: Integer; + WHTSlipBuffer2: Code[20]; + WHTSlipDocument2: Code[20]; + VendorArray: array[1000] of Code[20]; + DocumentArray: array[1000] of Code[20]; + WHTSlipNo: Code[20]; + ActualVendorExist: Boolean; + begin + x := 0; + GLRegFilter := GLReg.GetFilters(); + + GLEntry.Reset(); + if GLReg."From Entry No." < 0 then + GLEntry.SetRange("Entry No.", GLReg."To Entry No.", GLReg."From Entry No.") + else + GLEntry.SetRange("Entry No.", GLReg."From Entry No.", GLReg."To Entry No."); + GLEntry.FindFirst(); + + StartTrans := GLEntry."Transaction No."; + GLEntry.FindLast(); + EndTrans := GLEntry."Transaction No."; + + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetCurrentKey("Bill-to/Pay-to No.", "Original Document No.", "Withholding Tax Revenue Type"); + WithholdingTaxEntry.SetRange("Entry No.", GLReg."From Withholding Tax Entry No.", GLReg."To Withholding Tax Entry No."); + if not WithholdingTaxEntry.FindFirst() then + exit; + repeat + if WithholdingTaxEntry."Transaction Type" = WithholdingTaxEntry."Transaction Type"::Sale then + if WithholdingTaxEntry."Document Type" in [ + WithholdingTaxEntry."Document Type"::Invoice, + WithholdingTaxEntry."Document Type"::Payment] + then + exit; + + x := x + 1; + + if WithholdingTaxEntry."Actual Vendor No." <> '' then begin + VendorArray[x] := WithholdingTaxEntry."Actual Vendor No."; + ActualVendorExist := true; + end else + VendorArray[x] := WithholdingTaxEntry."Bill-to/Pay-to No."; + + DocumentArray[x] := WithholdingTaxEntry."Original Document No."; + until WithholdingTaxEntry.Next() = 0; + + PurchSetup.Get(); + WithholdingSlipBuffer.DeleteAll(); + + for PrintSlips := 1 to x do begin + WithholdingSlipBuffer.Init(); + WithholdingSlipBuffer."Line No." := PrintSlips; + WithholdingSlipBuffer."Vendor No." := VendorArray[PrintSlips]; + WithholdingSlipBuffer."Document No." := DocumentArray[PrintSlips]; + WithholdingSlipBuffer.Insert(); + end; + + x := 0; + Clear(VendorArray); + Clear(DocumentArray); + + WithholdingSlipBuffer.Reset(); + WithholdingSlipBuffer.SetCurrentKey("Vendor No.", "Document No."); + WithholdingSlipBuffer.FindSet(); + repeat + x := x + 1; + VendorArray[x] := WithholdingSlipBuffer."Vendor No."; + DocumentArray[x] := WithholdingSlipBuffer."Document No."; + until WithholdingSlipBuffer.Next() = 0; + + for PrintSlips := 1 to x do begin + if (VendorArray[PrintSlips] <> WHTSlipBuffer2) or + (DocumentArray[PrintSlips] <> WHTSlipDocument2) + then begin + PurchSetup.TestField("Wthldg. Tax Certificate Nos."); + WHTSlipNo := NoSeries.GetNextNo(PurchSetup."Wthldg. Tax Certificate Nos.", WithholdingTaxEntry."Posting Date"); + + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetCurrentKey("Bill-to/Pay-to No.", "Original Document No.", "Withholding Tax Revenue Type"); + if ActualVendorExist then + WithholdingTaxEntry.SetRange("Actual Vendor No.", VendorArray[PrintSlips]) + else + WithholdingTaxEntry.SetRange("Bill-to/Pay-to No.", VendorArray[PrintSlips]); + WithholdingTaxEntry.SetRange("Original Document No.", DocumentArray[PrintSlips]); + if WithholdingTaxEntry.FindSet() then + repeat + WithholdingRevenueTypes.Reset(); + WithholdingRevenueTypes.SetRange(Code, WithholdingTaxEntry."Withholding Tax Revenue Type"); + + WithholdingTaxEntry2.Reset(); + WithholdingTaxEntry2 := WithholdingTaxEntry; + + if WithholdingRevenueTypes.FindFirst() then begin + WithholdingTaxEntry2."Wthldg. Tax Certificate No." := WHTSlipNo; + WithholdingTaxEntry2.Modify(); + end else + Error(MissingRevenueTypeErr, WithholdingTaxEntry."Withholding Tax Revenue Type"); + + until WithholdingTaxEntry.Next() = 0; + + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetCurrentKey("Bill-to/Pay-to No.", "Original Document No.", "Withholding Tax Revenue Type"); + if ActualVendorExist then + WithholdingTaxEntry.SetRange("Actual Vendor No.", VendorArray[PrintSlips]) + else + WithholdingTaxEntry.SetRange("Bill-to/Pay-to No.", VendorArray[PrintSlips]); + WithholdingTaxEntry.SetRange("Original Document No.", DocumentArray[PrintSlips]); + WithholdingTaxEntry.SetRange("Wthldg. Tax Certificate No.", WHTSlipNo); + if WithholdingTaxEntry.FindSet() then + ReportSelection.Reset(); + + ReportSelection.SetRange(Usage, ReportSelection.Usage::"Withholding Tax Certificate"); + GeneralLedgerSetup.Get(); + if ReportSelection.FindSet() then + repeat + if ScheduleInJobQueue then + BatchPostingPrintMgt.SchedulePrintJobQueueEntry(WithholdingTaxEntry, ReportSelection."Report ID", GeneralLedgerSetup."Report Output Type".AsInteger()) + else + REPORT.Run(ReportSelection."Report ID", PurchSetup."WHT Print Dialog", false, WithholdingTaxEntry); + until ReportSelection.Next() = 0; + end; + + WHTSlipBuffer2 := VendorArray[PrintSlips]; + WHTSlipDocument2 := DocumentArray[PrintSlips]; + end; + end; + + procedure ApplyVendInvoiceWHT(var VendLedgerEntry: Record "Vendor Ledger Entry"; var GenJnlLine: Record "Gen. Journal Line") EntryNo: Integer + var + GLSetup: Record "General Ledger Setup"; + Vendor: Record Vendor; + Currency: Option Vendor,Customer; + RemainingAmt: Decimal; + PmtDiscount: Decimal; + NextEntry: Integer; + begin + GLSetup.Get(); + if GLSetup."Enable Withholding Tax" then + if GenJnlLine."Bill-to/Pay-to No." = '' then begin + if GenJnlLine."Account Type" = GenJnlLine."Account Type"::Vendor then begin + Vendor.Get(GenJnlLine."Account No."); + if (Vendor."WHT ABN" <> '') or Vendor."WHT Foreign Vend" then + exit; + end; + end else begin + Vendor.Get(GenJnlLine."Bill-to/Pay-to No."); + if (Vendor."WHT ABN" <> '') or Vendor."WHT Foreign Vend" then + exit; + end; + + ExitLoop := false; + + VendorLedgerEntries1.Reset(); + SetVendAppliesToFilter(VendorLedgerEntries1, GenJnlLine); + VendorLedgerEntries1.SetFilter("Document Type", '<>%1', VendorLedgerEntries1."Document Type"::" "); + if VendorLedgerEntries1.FindSet() then + repeat + VendorLedgerEntries1.CalcFields( + Amount, "Amount (LCY)", "Remaining Amount", "Remaining Amt. (LCY)", + "Original Amount", "Original Amt. (LCY)"); + + if VendorLedgerEntries1."Rem. Amt for Withholding Tax" = 0 then + VendorLedgerEntries1."Rem. Amt for Withholding Tax" := VendorLedgerEntries1."Remaining Amount"; + + RemainingAmt := RemainingAmt + VendorLedgerEntries1."Rem. Amt for Withholding Tax"; + until VendorLedgerEntries1.Next() = 0; + + TotAmt := Abs(GenJnlLine.Amount); + + VendorLedgerEntries.Reset(); + SetVendAppliesToFilter(VendorLedgerEntries, GenJnlLine); + VendorLedgerEntries.SetRange("Document Type", VendorLedgerEntries."Document Type"::"Credit Memo"); + if VendorLedgerEntries.FindSet() then + repeat + VendorLedgerEntries.CalcFields( + Amount, "Amount (LCY)", "Remaining Amount", "Remaining Amt. (LCY)", + "Original Amount", "Original Amt. (LCY)"); + + PmtDiscount := 0; + + if CheckPmtDisc( + GenJnlLine."Posting Date", VendorLedgerEntries."Pmt. Discount Date", + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"), + Abs(VendorLedgerEntries."WHT Rem. Amt"), + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), + Abs(TotAmt)) + then + PmtDiscount := VendorLedgerEntries."Original Pmt. Disc. Possible"; + + GenJnlLine.Validate(Amount, -Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax" - PmtDiscount)); + RemainingAmt -= VendorLedgerEntries."Rem. Amt for Withholding Tax"; + TotAmt += (VendorLedgerEntries."Rem. Amt for Withholding Tax" - PmtDiscount); + + GenJnlLine."Applies-to Doc. Type" := GenJnlLine."Applies-to Doc. Type"::"Credit Memo"; + GenJnlLine."Applies-to Doc. No." := VendorLedgerEntries."Document No."; + NextEntry := + ProcessPayment( + GenJnlLine, VendLedgerEntry."Transaction No.", VendLedgerEntry."Entry No.", Currency::Vendor, false); + + if ExitLoop then + exit(NextEntry); + until VendorLedgerEntries.Next() = 0; + + ExitLoop := false; + VendorLedgerEntries.Reset(); + SetVendAppliesToFilter(VendorLedgerEntries, GenJnlLine); + VendorLedgerEntries.SetFilter("Document Type", '<>%1&<>%2', + VendorLedgerEntries."Document Type"::"Credit Memo", VendorLedgerEntries."Document Type"::" "); + if VendorLedgerEntries.FindSet() then + repeat + VendorLedgerEntries.CalcFields( + Amount, + "Amount (LCY)", + "Remaining Amount", + "Remaining Amt. (LCY)", + "Original Amount", + "Original Amt. (LCY)"); + + if VendorLedgerEntries."Remaining Amount" = 0 then + if CheckPmtDisc( + GenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"), + Abs(VendorLedgerEntries."WHT Rem. Amt"), + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), + Abs(TotAmt)) + then + TotAmt := TotAmt - VendorLedgerEntries."Original Pmt. Disc. Possible"; + + if (Abs(RemainingAmt) < Abs(TotAmt)) or + (Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") < Abs(TotAmt)) + then begin + if CheckPmtDisc( + GenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"), + Abs(VendorLedgerEntries."WHT Rem. Amt"), + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), + Abs(TotAmt)) + then begin + if (Abs(TotAmt) < Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax")) or (VendorLedgerEntries."Rem. Amt for Withholding Tax" = 0) then + GenJnlLine.Validate(Amount, TotAmt) + else + GenJnlLine.Validate( + Amount, + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax" - VendorLedgerEntries."Original Pmt. Disc. Possible")); + + TotAmt := TotAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + RemainingAmt := + RemainingAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax" + VendorLedgerEntries."Original Pmt. Disc. Possible"; + end else begin + GenJnlLine.Validate(Amount, Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax")); + TotAmt := TotAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + RemainingAmt := RemainingAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax"; + end; + end else begin + if CheckPmtDisc( + GenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax"), + Abs(VendorLedgerEntries."WHT Rem. Amt"), + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), + Abs(TotAmt)) + then + GenJnlLine.Validate(Amount, TotAmt + VendorLedgerEntries."Original Pmt. Disc. Possible") + else + GenJnlLine.Validate(Amount, TotAmt); + + ExitLoop := true; + end; + + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::Invoice then + GenJnlLine."Applies-to Doc. Type" := GenJnlLine."Applies-to Doc. Type"::Invoice; + + GenJnlLine."Applies-to Doc. No." := VendorLedgerEntries."Document No."; + NextEntry := + ProcessPayment( + GenJnlLine, VendLedgerEntry."Transaction No.", VendLedgerEntry."Entry No.", Currency::Vendor, false); + + if ExitLoop then + exit(NextEntry); + until VendorLedgerEntries.Next() = 0; + + exit(NextEntry); + end; + + local procedure SetVendAppliesToFilter(var VendLedgEntry: Record "Vendor Ledger Entry"; GenJnlLine: Record "Gen. Journal Line") + begin + if GenJnlLine."Applies-to ID" <> '' then + VendLedgEntry.SetRange("Applies-to ID", GenJnlLine."Applies-to ID") + else begin + VendLedgEntry.SetRange("Document Type", GenJnlLine."Applies-to Doc. Type"); + VendLedgEntry.SetRange("Document No.", GenJnlLine."Applies-to Doc. No."); + end; + end; + + procedure ProcessPayment(var GenJnlLine: Record "Gen. Journal Line"; TransactionNo: Integer; EntryNo: Integer; Source: Option Vendor,Customer; AmountWithDisc: Boolean) PaymentNo: Integer + var + WithholdingTaxEntry: Record "Withholding Tax Entry"; + WithholdingTaxEntry2: Record "Withholding Tax Entry"; + WithholdingTaxEntry3: Record "Withholding Tax Entry"; + GLSetup: Record "General Ledger Setup"; + WithholdingTaxEntryTemp: Record "Withholding Tax Entry"; + PurchCrMemoHeader: Record "Purch. Cr. Memo Hdr."; + VendLedgEntry1: Record "Vendor Ledger Entry"; + VendLedgEntry: Record "Vendor Ledger Entry"; + TempWithholdingTaxEntry: Record "Temp Withholding Tax Entry"; + GenJnlTemplate: Record "Gen. Journal Template"; + WithholdingTaxEntry4: Record "Withholding Tax Entry"; + Vendor: Record Vendor; + NoSeries: Codeunit "No. Series"; + PaymentAmount: Decimal; + AppldAmount: Decimal; + ExpectedAmount: Decimal; + PaymentAmount1: Decimal; + begin + GLSetup.Get(); + if GLSetup."Enable Withholding Tax" then + if GenJnlLine."Bill-to/Pay-to No." = '' then begin + Vendor.Get(GenJnlLine."Account No."); + if (Vendor."WHT ABN" <> '') or Vendor."WHT Foreign Vend" then + exit; + end else begin + Vendor.Get(GenJnlLine."Bill-to/Pay-to No."); + if (Vendor."WHT ABN" <> '') or Vendor."WHT Foreign Vend" then + exit; + end; + + case Source of + Source::Vendor: + begin + WithholdingTaxEntry4.Reset(); + WithholdingTaxEntry4.SetCurrentKey("Document Type", "Document No."); + WithholdingTaxEntry4.SetRange("Document Type", VendorLedgerEntries."Document Type"); + WithholdingTaxEntry4.SetFilter("Document No.", VendorLedgerEntries."Document No."); + if WithholdingTaxEntry4.FindFirst() then begin + if Abs(GenJnlLine.Amount) < Abs(VendorLedgerEntries.Amount) then + PaymentAmount1 := GenJnlLine.Amount + else + PaymentAmount1 := -VendorLedgerEntries.Amount; + + if CheckPmtDisc( + GenJnlLine."Posting Date", + VendorLedgerEntries."Pmt. Discount Date", Abs(VendorLedgerEntries."Amount to Apply"), + Abs(VendorLedgerEntries."Remaining Amount"), Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"), + Abs(PaymentAmount1)) + then + PaymentAmount1 := PaymentAmount1 - VendorLedgerEntries."Original Pmt. Disc. Possible"; //xxx + end else + if (VendorLedgerEntries."Document No." = '') and (GenJnlLine.Amount <> 0) then + PaymentAmount1 := GenJnlLine.Amount; + end; + end; + + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetCurrentKey("Transaction Type", "Document No.", "Document Type", "Bill-to/Pay-to No."); + if GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice then + WithholdingTaxEntry.SetRange("Document Type", WithholdingTaxEntry."Document Type"::Invoice); + if GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::"Credit Memo" then + WithholdingTaxEntry.SetRange("Document Type", WithholdingTaxEntry."Document Type"::"Credit Memo"); + case Source of + Source::Vendor: + WithholdingTaxEntry.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Purchase); + Source::Customer: + WithholdingTaxEntry.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Sale); + end; + + WithholdingTaxEntry.SetRange(Closed, false); + WithholdingTaxEntry.SetRange("Transaction No.", 0); + if GenJnlLine."Applies-to Doc. No." <> '' then + WithholdingTaxEntry.SetRange("Document No.", GenJnlLine."Applies-to Doc. No.") + else + WithholdingTaxEntry.SetRange("Bill-to/Pay-to No.", GenJnlLine."Account No."); + if WithholdingTaxEntry.FindSet() then + repeat + WithholdingPostingSetup.Get(WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if (WithholdingPostingSetup."Realized Withholding Tax Type" = + WithholdingPostingSetup."Realized Withholding Tax Type"::Payment) + then begin + WithholdingTaxEntry3.Reset(); + WithholdingTaxEntry3 := WithholdingTaxEntry; + + case Source of + Source::Vendor: + begin + if GenJnlLine."Applies-to Doc. No." = '' then + exit; + PurchCrMemoHeader.Reset(); + PurchCrMemoHeader.SetRange("Applies-to Doc. No.", GenJnlLine."Applies-to Doc. No."); + PurchCrMemoHeader.SetRange("Applies-to Doc. Type", PurchCrMemoHeader."Applies-to Doc. Type"::Invoice); + if PurchCrMemoHeader.FindFirst() then begin + TempRemAmt := 0; + + VendLedgEntry1.Reset(); + VendLedgEntry1.SetRange("Document No.", PurchCrMemoHeader."No."); + VendLedgEntry1.SetRange("Document Type", VendLedgEntry1."Document Type"::"Credit Memo"); + if VendLedgEntry1.FindFirst() then + VendLedgEntry1.CalcFields(Amount, "Remaining Amount"); + + WithholdingTaxEntryTemp.Reset(); + WithholdingTaxEntryTemp.SetRange("Document No.", PurchCrMemoHeader."No."); + WithholdingTaxEntryTemp.SetRange("Document Type", WithholdingTaxEntry."Document Type"::"Credit Memo"); + WithholdingTaxEntryTemp.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Purchase); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntryTemp.FindFirst() then begin + TempRemBase := WithholdingTaxEntryTemp."Unrealized Amount"; + TempRemAmt := WithholdingTaxEntryTemp."Unrealized Base"; + end; + end; + + VendLedgEntry.Reset(); + VendLedgEntry.SetRange("Document No.", GenJnlLine."Applies-to Doc. No."); + if GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice then + VendLedgEntry.SetRange("Document Type", VendLedgEntry."Document Type"::Invoice) + else + if GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::"Credit Memo" then + VendLedgEntry.SetRange("Document Type", VendLedgEntry."Document Type"::"Credit Memo"); + if VendLedgEntry.FindFirst() then + VendLedgEntry.CalcFields(Amount, "Remaining Amount"); + + ExpectedAmount := -(VendLedgEntry.Amount + VendLedgEntry1.Amount); + + if VendLedgEntry1."Amount (LCY)" = 0 then + VendLedgEntry1."WHT Rem. Amt" := 0; + + if (GenJnlLine."Posting Date" <= VendLedgEntry."Pmt. Discount Date") and + (Abs(PaymentAmount1) >= + (Abs(VendLedgEntry."WHT Rem. Amt" + VendLedgEntry1."WHT Rem. Amt") - + Abs(VendLedgEntry."Original Pmt. Disc. Possible"))) and + (not AmountWithDisc) + then begin + if VendLedgEntry."Remaining Amount" = 0 then begin + AppldAmount := + Round( + (PaymentAmount1 * + (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / + ExpectedAmount); + WithholdingTaxEntry3."Remaining Unrealized Base" := + Round( + WithholdingTaxEntry."Remaining Unrealized Base" - + Round( + (PaymentAmount1 * + (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / + ExpectedAmount)); + WithholdingTaxEntry3."Remaining Unrealized Amount" := + Round( + WithholdingTaxEntry."Remaining Unrealized Amount" - + Round( + (PaymentAmount1 * + ((WithholdingTaxEntry."Unrealized Base" + * WithholdingTaxEntry."Withholding Tax %" / 100) + TempRemBase)) / + ExpectedAmount)); + end else begin + AppldAmount := + Round( + (PaymentAmount1 * + (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / + ExpectedAmount); + WithholdingTaxEntry3."Remaining Unrealized Base" := + Round( + WithholdingTaxEntry."Remaining Unrealized Base" - + Round( + (PaymentAmount1 * + (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / + ExpectedAmount)); + WithholdingTaxEntry3."Remaining Unrealized Amount" := + Round( + WithholdingTaxEntry."Remaining Unrealized Amount" - + Round( + (PaymentAmount1 * + (WithholdingTaxEntry."Unrealized Amount" + TempRemBase)) / + ExpectedAmount)); + end + end else begin + AppldAmount := + Round( + (PaymentAmount1 * (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / + ExpectedAmount); + WithholdingTaxEntry3."Remaining Unrealized Base" := + Round( + WithholdingTaxEntry."Remaining Unrealized Base" - + Round( + (PaymentAmount1 * (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / + ExpectedAmount)); + WithholdingTaxEntry3."Remaining Unrealized Amount" := + Round( + WithholdingTaxEntry."Remaining Unrealized Amount" - + Round( + (PaymentAmount1 * (WithholdingTaxEntry."Unrealized Amount" + TempRemBase)) / + ExpectedAmount)); + end; + + PaymentAmount := PaymentAmount + AppldAmount; + end; + end; + + if (WithholdingTaxEntry."Remaining Unrealized Base" = 0) and (WithholdingTaxEntry."Remaining Unrealized Amount" = 0) then + WithholdingTaxEntry3.Closed := true; + + if GenJnlLine."Currency Code" <> WithholdingTaxEntry."Currency Code" then + Error(CurrencyCodeSameErr); + + if AppldAmount = 0 then + exit; + + WithholdingTaxEntry2.Init(); + WithholdingTaxEntry2."Posting Date" := GenJnlLine."Document Date"; + WithholdingTaxEntry2."Entry No." := NextEntryNo(); + WithholdingTaxEntry2."Document Date" := WithholdingTaxEntry."Document Date"; + WithholdingTaxEntry2."Document Type" := GenJnlLine."Document Type"; + WithholdingTaxEntry2."Document No." := WithholdingTaxEntry."Document No."; + WithholdingTaxEntry2."Gen. Bus. Posting Group" := WithholdingTaxEntry."Gen. Bus. Posting Group"; + WithholdingTaxEntry2."Gen. Prod. Posting Group" := WithholdingTaxEntry."Gen. Prod. Posting Group"; + WithholdingTaxEntry2."Bill-to/Pay-to No." := WithholdingTaxEntry."Bill-to/Pay-to No."; + WithholdingTaxEntry2."Wthldg. Tax Bus. Post. Group" := WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"; + WithholdingTaxEntry2."Wthldg. Tax Prod. Post. Group" := WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"; + WithholdingTaxEntry2."Withholding Tax Revenue Type" := WithholdingTaxEntry."Withholding Tax Revenue Type"; + WithholdingTaxEntry2."Currency Code" := GenJnlLine."Currency Code"; + WithholdingTaxEntry2."Applies-to Entry No." := WithholdingTaxEntry."Entry No."; + WithholdingTaxEntry2."User ID" := UserId; + WithholdingTaxEntry2."External Document No." := GenJnlLine."External Document No."; + WithholdingTaxEntry2."Actual Vendor No." := GenJnlLine."WHT Actual Vendor No."; + WithholdingTaxEntry2."Original Document No." := GenJnlLine."Document No."; + WithholdingTaxEntry2."Source Code" := GenJnlLine."Source Code"; + WithholdingTaxEntry2."Transaction No." := TransactionNo; + WithholdingTaxEntry2."Unreal. Wthldg. Tax Entry No." := WithholdingTaxEntry."Entry No."; + WithholdingTaxEntry2."Withholding Tax %" := WithholdingTaxEntry."Withholding Tax %"; + + case Source of + Source::Vendor: + begin + WithholdingTaxEntry2.Base := Round(AppldAmount); + WithholdingTaxEntry2.Amount := Round(WithholdingTaxEntry2.Base * WithholdingTaxEntry2."Withholding Tax %" / 100); + WithholdingTaxEntry2."Payment Amount" := PaymentAmount1; + WithholdingTaxEntry2."Transaction Type" := WithholdingTaxEntry2."Transaction Type"::Purchase; + WithholdingPostingSetup.Get(WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + WithholdingTaxEntry2."Withholding Tax Report" := WithholdingPostingSetup."Withholding Tax Report"; + + if GenJnlLine."WHT Certificate Printed" then begin + WithholdingTaxEntry2."Wthldg. Tax Report Line No" := GenJnlLine."Wthldg. Tax Report Line No."; + TempWithholdingTaxEntry.SetRange("Document No.", WithholdingTaxEntry2."Document No."); + if TempWithholdingTaxEntry.FindFirst() then + WithholdingTaxEntry2."Wthldg. Tax Certificate No." := TempWithholdingTaxEntry."Wthldg. Tax Certificate No."; + end else begin + if ((Source = Source::Vendor) and + (WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::Invoice)) or + ((Source = Source::Customer) and + (WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::"Credit Memo")) + then + if (WithholdingReportLineNo = '') and + (WithholdingTaxEntry2.Amount <> 0) and + (WithholdingPostingSetup."Wthldg. Tax Rep Line No Series" <> '') + then + WithholdingReportLineNo := NoSeries.GetNextNo(WithholdingPostingSetup."Wthldg. Tax Rep Line No Series", WithholdingTaxEntry2."Posting Date"); + + WithholdingTaxEntry2."Wthldg. Tax Report Line No" := WithholdingReportLineNo; + end; + + TType := TType::Purchase; + end; + end; + + if WithholdingTaxEntry2."Currency Code" <> '' then begin + CurrFactor := GenJnlLine."Currency Factor"; + WithholdingTaxEntry2."Base (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + WithholdingTaxEntry2."Currency Code", + WithholdingTaxEntry2.Base, CurrFactor)); + WithholdingTaxEntry2."Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + WithholdingTaxEntry2."Currency Code", + WithholdingTaxEntry2.Amount, CurrFactor)); + end else begin + WithholdingTaxEntry2."Amount (LCY)" := WithholdingTaxEntry2.Amount; + WithholdingTaxEntry2."Base (LCY)" := WithholdingTaxEntry2.Base; + end; + + if WithholdingTaxEntry2."Currency Code" <> '' then begin + CurrFactor := GenJnlLine."Currency Factor"; + WithholdingTaxEntry2."Base (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + WithholdingTaxEntry2."Currency Code", + WithholdingTaxEntry2.Base, CurrFactor)); + WithholdingTaxEntry2."Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + WithholdingTaxEntry2."Currency Code", + WithholdingTaxEntry2.Amount, CurrFactor)); + end else begin + WithholdingTaxEntry2."Amount (LCY)" := WithholdingTaxEntry2.Amount; + WithholdingTaxEntry2."Base (LCY)" := WithholdingTaxEntry2.Base; + end; + + if VendLedgEntry."Original Pmt. Disc. Possible" <> 0 then + if WithholdingTaxEntry2.Base <> WithholdingTaxEntry."Unrealized Base" then begin + if VendLedgEntry."Remaining Amount" = 0 then begin + WithholdingTaxEntry3."Rem Unrealized Amount (LCY)" := WithholdingTaxEntry2."Rem Unrealized Amount (LCY)"; + WithholdingTaxEntry3."Rem Unrealized Base (LCY)" := WithholdingTaxEntry2."Rem Unrealized Base (LCY)"; + WithholdingTaxEntry3."Remaining Unrealized Amount" := WithholdingTaxEntry2."Remaining Unrealized Amount"; + WithholdingTaxEntry3."Remaining Unrealized Base" := WithholdingTaxEntry2."Remaining Unrealized Base"; + + WithholdingTaxEntry4.Reset(); + WithholdingTaxEntry4.SetCurrentKey("Applies-to Entry No."); + WithholdingTaxEntry4.SetFilter("Applies-to Entry No.", '=%1', WithholdingTaxEntry."Entry No."); + WithholdingTaxEntry4.CalcSums(WithholdingTaxEntry4.Base); + WithholdingTaxEntry3."Pymt. Disc. Diff. Base" := WithholdingTaxEntry."Unrealized Base" - (WithholdingTaxEntry4.Base + WithholdingTaxEntry2.Base); + WithholdingTaxEntry3."Pymt. Disc. Diff. Amount" := Round((WithholdingTaxEntry3."Pymt. Disc. Diff. Base" * WithholdingTaxEntry3."Withholding Tax %") / 100); + WithholdingTaxEntry3."Withholding Tax Difference" := + WithholdingTaxEntry3."Withholding Tax Difference" + Abs(Abs(WithholdingTaxEntry3."Pymt. Disc. Diff. Amount") - + Abs(WithholdingTaxEntry."Unrealized Amount" - (WithholdingTaxEntry4.Amount + WithholdingTaxEntry2.Amount))); + end; + end else begin + WithholdingTaxEntry3."Rem Unrealized Amount (LCY)" := + WithholdingTaxEntry."Rem Unrealized Amount (LCY)" - WithholdingTaxEntry2."Amount (LCY)"; + WithholdingTaxEntry3."Rem Unrealized Base (LCY)" := + WithholdingTaxEntry."Rem Unrealized Base (LCY)" - WithholdingTaxEntry2."Base (LCY)"; + end; + + WithholdingTaxEntry2.Insert(); + WithholdingTaxEntry3.Modify(); + + AdjustWithholdingTaxEntryWithTaxDifference(WithholdingTaxEntry, WithholdingTaxEntry2, WithholdingTaxEntry3); + + if Source = Source::Vendor then + GenJnlTemplate.SetRange(Type, GenJnlTemplate.Type::Purchases); + + if GenJnlTemplate.FindFirst() then + if GenJnlLine."Journal Template Name" <> GenJnlTemplate.Name then + if WithholdingTaxEntry2.Amount <> 0 then + InsertWithholdingTaxPostingBuffer(WithholdingTaxEntry2, GenJnlLine, 0, AmountWithDisc); + end; + until (WithholdingTaxEntry.Next() = 0); + + if (WithholdingPostingSetup."Realized Withholding Tax Type" = + WithholdingPostingSetup."Realized Withholding Tax Type"::Payment) + then + exit(WithholdingTaxEntry2."Entry No." + 1); + end; + + local procedure AdjustWithholdingTaxEntryWithTaxDifference(WithholdingTaxEntry: Record "Withholding Tax Entry"; var WithholdingTaxEntry2: Record "Withholding Tax Entry"; var WithholdingTaxEntry3: Record "Withholding Tax Entry") + var + AmountDifference: Decimal; + begin + WithholdingTaxEntry3.Reset(); + WithholdingTaxEntry3.SetCurrentKey("Applies-to Entry No."); + WithholdingTaxEntry3.SetRange("Applies-to Entry No.", WithholdingTaxEntry."Entry No."); + WithholdingTaxEntry3.CalcSums(Amount, "Amount (LCY)"); + AmountDifference := Abs(WithholdingTaxEntry3.Amount) - Abs(WithholdingTaxEntry."Unrealized Amount"); + + if (Abs(AmountDifference) < 0.1) and + (Abs(AmountDifference) > 0) + then begin + WithholdingTaxEntry2."Withholding Tax Difference" := WithholdingTaxEntry2."Withholding Tax Difference" + Abs(WithholdingTaxEntry."Unrealized Amount" - WithholdingTaxEntry3.Amount); + WithholdingTaxEntry2.Modify(); + end else + if WithholdingTaxEntry2."Withholding Tax Difference" = 0 then + if (Abs(Abs(WithholdingTaxEntry3."Amount (LCY)") - Abs(WithholdingTaxEntry."Unrealized Amount (LCY)")) < 0.1) and + (Abs(Abs(WithholdingTaxEntry3."Amount (LCY)") - Abs(WithholdingTaxEntry."Unrealized Amount (LCY)")) > 0) + then begin + WithholdingTaxEntry2."Amount (LCY)" := + WithholdingTaxEntry2."Amount (LCY)" + (WithholdingTaxEntry."Unrealized Amount (LCY)" - WithholdingTaxEntry3."Amount (LCY)"); + WithholdingTaxEntry2.Modify(); + end; + end; + + procedure InsertWithholdingTaxPostingBuffer(var WithholdingTaxEntryGL: Record "Withholding Tax Entry"; var GenJnlLine: Record "Gen. Journal Line"; Source: Option Payment,Refund; Oldest: Boolean) + var + GLSetup: Record "General Ledger Setup"; + GenJnlLine2: Record "Gen. Journal Line"; + GenJnlLine3: Record "Gen. Journal Line"; + HighestLineNo: Integer; + begin + WithholdingPostingSetup.Get(WithholdingTaxEntryGL."Wthldg. Tax Bus. Post. Group", WithholdingTaxEntryGL."Wthldg. Tax Prod. Post. Group"); + + GLSetup.Get(); + + GenJnlLine2 := GenJnlLine; + GenJnlLine2.SetRange("Journal Template Name", GenJnlLine."Journal Template Name"); + GenJnlLine2.SetRange("Journal Batch Name", GenJnlLine."Journal Batch Name"); + if GenJnlLine2.FindLast() then + HighestLineNo := GenJnlLine2."Line No." + 10000 + else + HighestLineNo := 0; + + GenJnlLine3.Reset(); + GenJnlLine3 := GenJnlLine; + GenJnlLine3.SetRange("Journal Template Name", GenJnlLine."Journal Template Name"); + GenJnlLine3.SetRange("Journal Batch Name", GenJnlLine."Journal Batch Name"); + GenJnlLine3."Line No." := HighestLineNo; + if GenJnlLine3.Next() = 0 then + GenJnlLine3."Line No." := HighestLineNo + 10000 + else begin + while GenJnlLine3."Line No." = HighestLineNo + 1 do begin + HighestLineNo := GenJnlLine3."Line No."; + if GenJnlLine3.Next() = 0 then + GenJnlLine3."Line No." := HighestLineNo + 20000; + end; + GenJnlLine3."Line No." := HighestLineNo + 10000; + end; + + GenJnlLine3.Init(); + GenJnlLine3.Validate("Posting Date", GenJnlLine."Posting Date"); + GenJnlLine3."Document Type" := GenJnlLine."Document Type"; + GenJnlLine3."Account Type" := GenJnlLine3."Account Type"::"G/L Account"; + GenJnlLine3."System-Created Entry" := true; + GenJnlLine3."Is Withholding Tax" := true; + if GenJnlLine."Document Type" = GenJnlLine."Document Type"::Refund then begin + if TType = TType::Purchase then + GenJnlLine3.Validate("Account No.", WithholdingPostingSetup."Purch. Wthldg. Tax Adj. Acc No"); + + if TType = TType::Sale then + GenJnlLine3.Validate("Account No.", WithholdingPostingSetup."Sales Wthldg. Tax Adj. Acc No"); + end else begin + if TType = TType::Purchase then + GenJnlLine3.Validate("Account No.", WithholdingPostingSetup."Payable Wthldg. Tax Acc. Code"); + + if TType = TType::Sale then begin + WithholdingPostingSetup.TestField("Prepaid Wthldg. Tax Acc. Code"); + GenJnlLine3.Validate("Account No.", WithholdingPostingSetup."Prepaid Wthldg. Tax Acc. Code"); + end; + end; + + GenJnlLine3.Validate("Currency Code", WithholdingTaxEntryGL."Currency Code"); + + if GLSetup."Round Amount Wthldg. Tax Calc" then begin + GenJnlLine3.Validate(Amount, RoundWithholdingTaxAmount(-WithholdingTaxEntryGL.Amount)); + GenJnlLine3."Amount (LCY)" := RoundWithholdingTaxAmount(-WithholdingTaxEntryGL."Amount (LCY)"); + end else begin + GenJnlLine3.Validate(Amount, -WithholdingTaxEntryGL.Amount); + GenJnlLine3."Amount (LCY)" := -WithholdingTaxEntryGL."Amount (LCY)"; + end; + + if (GenJnlLine."Gen. Posting Type" = GenJnlLine."Gen. Posting Type"::" ") and + (GenJnlLine."Document Type" = GenJnlLine."Document Type"::Refund) + then + GenJnlLine3."Gen. Posting Type" := GenJnlLine."Gen. Posting Type"; + + GenJnlLine3."System-Created Entry" := true; // Payment Method Code + GLSetup.Get(); + + if (Oldest = true) or GLSetup."Manual Sales Wthldg. Tax Calc." then + if TType = TType::Purchase then begin + case WithholdingPostingSetup."Bal. Payable Account Type" of + WithholdingPostingSetup."Bal. Payable Account Type"::"Bank Account": + GenJnlLine3."Bal. Account Type" := GenJnlLine3."Account Type"::"Bank Account"; + WithholdingPostingSetup."Bal. Payable Account Type"::"G/L Account": + GenJnlLine3."Bal. Account Type" := GenJnlLine3."Account Type"::"G/L Account"; + end; + WithholdingPostingSetup.TestField("Bal. Payable Account No."); + GenJnlLine3.Validate("Bal. Account No.", WithholdingPostingSetup."Bal. Payable Account No."); + end; + + GenJnlLine3."Source Code" := GenJnlLine."Source Code"; + GenJnlLine3."Reason Code" := GenJnlLine."Reason Code"; + GenJnlLine3."Shortcut Dimension 1 Code" := GenJnlLine."Shortcut Dimension 1 Code"; + GenJnlLine3."Shortcut Dimension 2 Code" := GenJnlLine."Shortcut Dimension 2 Code"; + GenJnlLine3."Allow Zero-Amount Posting" := true; + GenJnlLine3."Wthldg. Tax Bus. Post. Group" := WithholdingTaxEntryGL."Wthldg. Tax Bus. Post. Group"; + GenJnlLine3."Wthldg. Tax Prod. Post. Group" := WithholdingTaxEntryGL."Wthldg. Tax Prod. Post. Group"; + GenJnlLine3."Document Type" := GenJnlLine."Document Type"; + GenJnlLine3."Document No." := GenJnlLine."Document No."; + GenJnlLine3."External Document No." := GenJnlLine."External Document No."; + + if Source = Source::Refund then + GenJnlLine3."Gen. Posting Type" := GenJnlLine3."Gen. Posting Type"::" "; + + GenJnlLine3.Insert(); + end; + + internal procedure RoundWithholdingTaxAmount(Amount: Decimal): Decimal + begin + exit(Round(Amount, 1, '<')); + end; + + procedure ProcessManualReceipt(var GenJnlLine: Record "Gen. Journal Line"; TransactionNo: Integer; EntryNo: Integer; Source: Option Vendor,Customer) PaymentNo: Integer + var + WithholdingTaxEntry: Record "Withholding Tax Entry"; + WithholdingTaxEntry2: Record "Withholding Tax Entry"; + WithholdingTaxEntry3: Record "Withholding Tax Entry"; + WithholdingTaxEntryTemp: Record "Withholding Tax Entry"; + PaymentAmount: Decimal; + PaymentAmountLCY: Decimal; + AppldAmount: Decimal; + PaymentAmount1: Decimal; + WHTAmount: Decimal; + begin + PaymentAmount := GenJnlLine.Amount; + PaymentAmount1 := GenJnlLine.Amount; + PaymentAmountLCY := GenJnlLine."Amount (LCY)"; + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetCurrentKey("Transaction Type", "Document No.", "Document Type", "Bill-to/Pay-to No."); + + case Source of + Source::Vendor: + WithholdingTaxEntry.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Purchase); + end; + + if GenJnlLine."Applies-to Doc. No." <> '' then + WithholdingTaxEntry.SetRange("Document No.", GenJnlLine."Applies-to Doc. No.") + else + WithholdingTaxEntry.SetRange("Bill-to/Pay-to No.", GenJnlLine."Account No."); + + if GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice then + WithholdingTaxEntry.SetRange("Document Type", WithholdingTaxEntry."Document Type"::Invoice) + else + if GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::"Credit Memo" then + WithholdingTaxEntry.SetRange("Document Type", WithholdingTaxEntry."Document Type"::"Credit Memo"); + + if WithholdingTaxEntry.FindSet() then + repeat + WithholdingTaxEntryTemp.Reset(); + WithholdingTaxEntryTemp := WithholdingTaxEntry; + + case Source of + Source::Vendor: + begin + if GenJnlLine."Applies-to Doc. No." = '' then + exit; + + WithholdingTaxEntry3.Reset(); + WHTAmount := 0; + WithholdingTaxEntry3.Copy(WithholdingTaxEntry); + if WithholdingTaxEntry3.FindSet() then + repeat + WHTAmount := WHTAmount + WithholdingTaxEntry3."Unrealized Amount"; + until WithholdingTaxEntry3.Next() = 0; + + AppldAmount := -Round(GenJnlLine.Amount * WithholdingTaxEntry."Unrealized Amount" / WHTAmount); + + if AppldAmount = 0 then + AppliedBase := WithholdingTaxEntry."Remaining Unrealized Base" + else + AppliedBase := Round(AppldAmount * 100 / WithholdingTaxEntry."Withholding Tax %"); + + if WithholdingTaxEntry."Withholding Tax %" <> 0 then + WithholdingTaxEntryTemp."Remaining Unrealized Base" := + Round(WithholdingTaxEntry."Remaining Unrealized Base" - Round(AppldAmount * 100 / WithholdingTaxEntry."Withholding Tax %")) + else + WithholdingTaxEntryTemp."Remaining Unrealized Base" := 0; + + WithholdingTaxEntryTemp."Remaining Unrealized Amount" := + Round( + WithholdingTaxEntry."Remaining Unrealized Amount" - + Round(AppldAmount)); + PaymentAmount := PaymentAmount + AppldAmount; + TType := TType::Purchase; + end; + end; + + if GenJnlLine."Currency Code" <> WithholdingTaxEntry."Currency Code" then + Error(CurrencyCodeSameErr); + + WithholdingTaxEntry2.Init(); + WithholdingTaxEntry2."Posting Date" := GenJnlLine."Document Date"; + WithholdingTaxEntry2."Entry No." := NextEntryNo(); + WithholdingTaxEntry2."Document Date" := WithholdingTaxEntry."Document Date"; + WithholdingTaxEntry2."Document Type" := GenJnlLine."Document Type"; + WithholdingTaxEntry2."Document No." := WithholdingTaxEntry."Document No."; + WithholdingTaxEntry2."Gen. Bus. Posting Group" := WithholdingTaxEntry."Gen. Bus. Posting Group"; + WithholdingTaxEntry2."Gen. Prod. Posting Group" := WithholdingTaxEntry."Gen. Prod. Posting Group"; + WithholdingTaxEntry2."Bill-to/Pay-to No." := WithholdingTaxEntry."Bill-to/Pay-to No."; + WithholdingTaxEntry2."Wthldg. Tax Bus. Post. Group" := WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"; + WithholdingTaxEntry2."Wthldg. Tax Prod. Post. Group" := WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"; + WithholdingTaxEntry2."Withholding Tax Revenue Type" := WithholdingTaxEntry."Withholding Tax Revenue Type"; + WithholdingTaxEntry2."Currency Code" := GenJnlLine."Currency Code"; + WithholdingTaxEntry2."Applies-to Entry No." := WithholdingTaxEntry."Entry No."; + WithholdingTaxEntry2."User ID" := UserId; + WithholdingTaxEntry2."External Document No." := GenJnlLine."External Document No."; + WithholdingTaxEntry2."Original Document No." := GenJnlLine."Document No."; + WithholdingTaxEntry2."Source Code" := GenJnlLine."Source Code"; + WithholdingTaxEntry2."Transaction No." := TransactionNo; + + if TType = TType::Sale then + WithholdingTaxEntry2."Transaction Type" := WithholdingTaxEntry2."Transaction Type"::Sale + else + WithholdingTaxEntry2."Transaction Type" := WithholdingTaxEntry2."Transaction Type"::Purchase; + + WithholdingTaxEntry2."Withholding Tax %" := WithholdingTaxEntry."Withholding Tax %"; + WithholdingTaxEntry2."Unreal. Wthldg. Tax Entry No." := WithholdingTaxEntry."Entry No."; + WithholdingTaxEntry2.Base := Round(AppliedBase); + WithholdingTaxEntry2.Amount := Round(AppldAmount); + + if WithholdingTaxEntry2."Currency Code" <> '' then begin + CurrFactor := + CurrExchRate.ExchangeRate(WithholdingTaxEntry2."Posting Date", WithholdingTaxEntry2."Currency Code"); + WithholdingTaxEntry2."Base (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + WithholdingTaxEntry2."Currency Code", + WithholdingTaxEntry2.Base, CurrFactor)); + WithholdingTaxEntry2."Amount (LCY)" := Round(WithholdingTaxEntry2."Base (LCY)"); + end else begin + WithholdingTaxEntry2."Amount (LCY)" := WithholdingTaxEntry2.Amount; + WithholdingTaxEntry2."Base (LCY)" := WithholdingTaxEntry2.Base; + end; + + WithholdingTaxEntry2.Insert(); + WithholdingTaxEntryTemp."Rem Unrealized Amount (LCY)" := + WithholdingTaxEntry."Rem Unrealized Amount (LCY)" - WithholdingTaxEntry2."Amount (LCY)"; + WithholdingTaxEntryTemp."Rem Unrealized Base (LCY)" := + WithholdingTaxEntry."Rem Unrealized Base (LCY)" - WithholdingTaxEntry2."Base (LCY)"; + WithholdingTaxEntryTemp.Modify(); + + if WithholdingTaxEntry2.Amount <> 0 then + InsertWithholdingTaxPostingBuffer(WithholdingTaxEntry2, GenJnlLine, 0, false); + + until (WithholdingTaxEntry.Next() = 0); + + exit(WithholdingTaxEntry2."Entry No." + 1); + end; + + procedure ApplyVendInvoiceWHTPosted(var VendLedgerEntry: Record "Vendor Ledger Entry"; var GenJnlLine: Record "Gen. Journal Line"; TransNo: Integer) EntryNo: Integer + var + Currency: Option Vendor,Customer; + RemainingAmt: Decimal; + NextEntry: Integer; + begin + VendorLedgerEntries.Reset(); + if GenJnlLine."Applies-to Doc. No." = '' then begin + VendorLedgerEntries1.SetRange("Applies-to ID", GenJnlLine."Document No."); + VendorLedgerEntries1.SetRange(Open, true); + if VendorLedgerEntries1.FindSet() then + repeat + VendorLedgerEntries1.CalcFields( + Amount, + "Amount (LCY)", + "Remaining Amount", + "Remaining Amt. (LCY)", + "Original Amount", + "Original Amt. (LCY)"); + + if VendorLedgerEntries1."Rem. Amt for Withholding Tax" = 0 then + VendorLedgerEntries1."Rem. Amt for Withholding Tax" := VendorLedgerEntries1."Remaining Amt. (LCY)"; + + RemainingAmt := RemainingAmt + VendorLedgerEntries1."Rem. Amt for Withholding Tax"; + + if VendorLedgerEntries1."Document Type" = VendorLedgerEntries1."Document Type"::"Credit Memo" then + RemainingAmt := RemainingAmt + VendorLedgerEntries1."Rem. Amt for Withholding Tax"; + until VendorLedgerEntries1.Next() = 0; + + TotAmt := Abs(GenJnlLine.Amount); + + if GenJnlLine."Applies-to ID" <> '' then + VendorLedgerEntries.SetRange("Applies-to ID", GenJnlLine."Applies-to ID") + else + VendorLedgerEntries.SetRange("Applies-to ID", GenJnlLine."Document No."); + + VendorLedgerEntries.SetRange("Document Type", VendorLedgerEntries."Document Type"::"Credit Memo"); + + if VendorLedgerEntries.FindSet() then + repeat + VendorLedgerEntries.CalcFields( + Amount, + "Amount (LCY)", + "Remaining Amount", + "Remaining Amt. (LCY)", + "Original Amount", + "Original Amt. (LCY)"); + + if (GenJnlLine."Posting Date" <= VendorLedgerEntries."Pmt. Discount Date") and + (Abs(TotAmt) >= (Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") - + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"))) + then + TotAmt := TotAmt - VendorLedgerEntries."Original Pmt. Disc. Possible"; + + if (Abs(RemainingAmt) < Abs(TotAmt)) or + (Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") < Abs(TotAmt)) + then begin + if (GenJnlLine."Posting Date" <= VendorLedgerEntries."Pmt. Discount Date") and + (Abs(TotAmt) >= (Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") - + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"))) + then begin + GenJnlLine.Validate( + Amount, + -Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax" + + VendorLedgerEntries."Original Pmt. Disc. Possible")); + + if VendorLedgerEntries."Document Type" <> VendorLedgerEntries."Document Type"::"Credit Memo" then + TotAmt := TotAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax"; + + RemainingAmt := + RemainingAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax" + VendorLedgerEntries."Original Pmt. Disc. Possible"; + end else begin + GenJnlLine.Validate(Amount, -Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax")); + + if VendorLedgerEntries."Document Type" <> VendorLedgerEntries."Document Type"::"Credit Memo" then + TotAmt := TotAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax"; + + RemainingAmt := RemainingAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax"; + end; + end else begin + if (GenJnlLine."Posting Date" <= VendorLedgerEntries."Pmt. Discount Date") and + (Abs(TotAmt) >= (Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") - + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"))) + then + GenJnlLine.Validate(Amount, TotAmt + VendorLedgerEntries."Original Pmt. Disc. Possible") + else + GenJnlLine.Validate(Amount, TotAmt); + + ExitLoop := true; + end; + + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::Invoice then + GenJnlLine."Applies-to Doc. Type" := GenJnlLine."Applies-to Doc. Type"::Invoice + else begin + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::"Credit Memo" then + GenJnlLine."Applies-to Doc. Type" := GenJnlLine."Applies-to Doc. Type"::"Credit Memo"; + + RemainingAmt := RemainingAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax"; + TotAmt := TotAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + ExitLoop := false; + end; + + GenJnlLine."Applies-to Doc. No." := VendorLedgerEntries."Document No."; + NextEntry := + ProcessPaymentPosted( + GenJnlLine, TransNo, VendLedgerEntry."Entry No.", Currency::Vendor); + + if ExitLoop then + exit(NextEntry); + until VendorLedgerEntries.Next() = 0; + + ExitLoop := false; + VendorLedgerEntries.Reset(); + if GenJnlLine."Applies-to ID" <> '' then + VendorLedgerEntries.SetRange("Applies-to ID", GenJnlLine."Applies-to ID") + else + VendorLedgerEntries.SetRange("Applies-to ID", GenJnlLine."Document No."); + + VendorLedgerEntries.SetFilter("Document Type", '<>%1', VendorLedgerEntries."Document Type"::"Credit Memo"); + if VendorLedgerEntries.FindSet() then begin + repeat + VendorLedgerEntries.CalcFields( + Amount, "Amount (LCY)", + "Remaining Amount", + "Remaining Amt. (LCY)", + "Original Amount", + "Original Amt. (LCY)"); + + if (GenJnlLine."Posting Date" <= VendorLedgerEntries."Pmt. Discount Date") and + (Abs(TotAmt) >= (Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") - + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"))) + then + TotAmt := TotAmt - VendorLedgerEntries."Original Pmt. Disc. Possible"; + + if (Abs(RemainingAmt) < Abs(TotAmt)) or + (Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") < Abs(TotAmt)) + then begin + if (GenJnlLine."Posting Date" <= VendorLedgerEntries."Pmt. Discount Date") and + (Abs(TotAmt) >= (Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") - + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"))) + then begin + GenJnlLine.Validate( + Amount, + Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax" - + VendorLedgerEntries."Original Pmt. Disc. Possible")); + + if VendorLedgerEntries."Document Type" <> VendorLedgerEntries."Document Type"::"Credit Memo" then + TotAmt := TotAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + + RemainingAmt := + RemainingAmt - + VendorLedgerEntries."Rem. Amt for Withholding Tax" + + VendorLedgerEntries."Original Pmt. Disc. Possible"; + end else begin + GenJnlLine.Validate(Amount, Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax")); + + if VendorLedgerEntries."Document Type" <> + VendorLedgerEntries."Document Type"::"Credit Memo" + then + TotAmt := TotAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + + RemainingAmt := RemainingAmt - VendorLedgerEntries."Rem. Amt for Withholding Tax"; + end; + end else begin + if (GenJnlLine."Posting Date" <= VendorLedgerEntries."Pmt. Discount Date") and + (Abs(TotAmt) >= (Abs(VendorLedgerEntries."Rem. Amt for Withholding Tax") - + Abs(VendorLedgerEntries."Original Pmt. Disc. Possible"))) + then + GenJnlLine.Validate(Amount, TotAmt + VendorLedgerEntries."Original Pmt. Disc. Possible") + else + GenJnlLine.Validate(Amount, TotAmt); + + ExitLoop := true; + end; + + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::Invoice then + GenJnlLine."Applies-to Doc. Type" := GenJnlLine."Applies-to Doc. Type"::Invoice + else begin + if VendorLedgerEntries."Document Type" = VendorLedgerEntries."Document Type"::"Credit Memo" then + GenJnlLine."Applies-to Doc. Type" := GenJnlLine."Applies-to Doc. Type"::"Credit Memo"; + + RemainingAmt := RemainingAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + TotAmt := TotAmt + VendorLedgerEntries."Rem. Amt for Withholding Tax"; + ExitLoop := false; + end; + + GenJnlLine."Applies-to Doc. No." := VendorLedgerEntries."Document No."; + NextEntry := + ProcessPaymentPosted( + GenJnlLine, TransNo, VendLedgerEntry."Entry No.", Currency::Vendor); + + if ExitLoop then + exit(NextEntry); + until VendorLedgerEntries.Next() = 0; + + exit(NextEntry); + end; + + exit( + ProcessPaymentPosted( + GenJnlLine, TransNo, VendLedgerEntry."Entry No.", Currency::Vendor)); + end; + + exit( + ProcessPaymentPosted( + GenJnlLine, TransNo, VendLedgerEntry."Entry No.", Currency::Vendor)); + end; + + procedure ProcessPaymentPosted(var GenJnlLine: Record "Gen. Journal Line"; TransactionNo: Integer; EntryNo: Integer; Source: Option Vendor,Customer) PaymentNo: Integer + var + WithholdingTaxEntry: Record "Withholding Tax Entry"; + WithholdingTaxEntry2: Record "Withholding Tax Entry"; + WithholdingTaxEntry3: Record "Withholding Tax Entry"; + WithholdingTaxEntryTemp: Record "Withholding Tax Entry"; + PurchCrMemoHeader: Record "Purch. Cr. Memo Hdr."; + VendLedgEntry1: Record "Vendor Ledger Entry"; + VendLedgEntry: Record "Vendor Ledger Entry"; + TempWithholdingTaxEntry: Record "Temp Withholding Tax Entry"; + GLSetup: Record "General Ledger Setup"; + Vendor: Record Vendor; + NoSeries: Codeunit "No. Series"; + PaymentAmount: Decimal; + PaymentAmountLCY: Decimal; + AppldAmount: Decimal; + ExpectedAmount: Decimal; + PaymentAmount1: Decimal; + begin + GLSetup.Get(); + if GLSetup."Enable Withholding Tax" then + if GenJnlLine."Bill-to/Pay-to No." = '' then begin + Vendor.Get(GenJnlLine."Account No."); + if Vendor."WHT ABN" <> '' then + exit; + end else begin + Vendor.Get(GenJnlLine."Bill-to/Pay-to No."); + if Vendor."WHT ABN" <> '' then + exit; + end; + + PaymentAmount := GenJnlLine.Amount; + PaymentAmount1 := GenJnlLine.Amount; + PaymentAmountLCY := GenJnlLine."Amount (LCY)"; + + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetCurrentKey("Transaction Type", "Document No.", "Document Type", "Bill-to/Pay-to No."); + if GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice then + WithholdingTaxEntry.SetRange("Document Type", WithholdingTaxEntry."Document Type"::Invoice); + + if GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::"Credit Memo" then + WithholdingTaxEntry.SetRange("Document Type", WithholdingTaxEntry."Document Type"::"Credit Memo"); + + case Source of + Source::Vendor: + WithholdingTaxEntry.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Purchase); + end; + + WithholdingTaxEntry.SetRange(Closed, false); + if GenJnlLine."Applies-to Doc. No." <> '' then begin + WithholdingTaxEntry.SetRange("Document No.", GenJnlLine."Applies-to Doc. No."); + WithholdingTaxEntry.SetRange("Document Type", GenJnlLine."Applies-to Doc. Type"); + end else + WithholdingTaxEntry.SetRange("Bill-to/Pay-to No.", GenJnlLine."Account No."); + + if WithholdingTaxEntry.FindSet() then + repeat + WithholdingPostingSetup.Get(WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if (WithholdingPostingSetup."Realized Withholding Tax Type" = + WithholdingPostingSetup."Realized Withholding Tax Type"::Payment) + then begin + WithholdingTaxEntry3.Reset(); + WithholdingTaxEntry3 := WithholdingTaxEntry; + + case Source of + Source::Vendor: + begin + if GenJnlLine."Applies-to Doc. No." = '' then + exit; + + PurchCrMemoHeader.Reset(); + PurchCrMemoHeader.SetRange("Applies-to Doc. No.", GenJnlLine."Applies-to Doc. No."); + PurchCrMemoHeader.SetRange("Applies-to Doc. Type", PurchCrMemoHeader."Applies-to Doc. Type"::Invoice); + if PurchCrMemoHeader.FindFirst() then begin + TempRemAmt := 0; + + VendLedgEntry1.SetRange("Document Type", VendLedgEntry1."Document Type"::"Credit Memo"); + VendLedgEntry1.SetRange("Document No.", PurchCrMemoHeader."No."); + if VendLedgEntry1.FindFirst() then + VendLedgEntry1.CalcFields(Amount, "Remaining Amount"); + + WithholdingTaxEntryTemp.Reset(); + WithholdingTaxEntryTemp.SetRange("Document No.", PurchCrMemoHeader."No."); + WithholdingTaxEntryTemp.SetRange("Document Type", WithholdingTaxEntry."Document Type"::"Credit Memo"); + WithholdingTaxEntryTemp.SetRange("Transaction Type", WithholdingTaxEntry."Transaction Type"::Purchase); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"); + WithholdingTaxEntryTemp.SetRange("Wthldg. Tax Prod. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if WithholdingTaxEntryTemp.FindFirst() then begin + TempRemBase := WithholdingTaxEntryTemp."Unrealized Amount"; + TempRemAmt := WithholdingTaxEntryTemp."Unrealized Base"; + end; + end; + + VendLedgEntry.Reset(); + VendLedgEntry.SetRange("Document No.", GenJnlLine."Applies-to Doc. No."); + if GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice then + VendLedgEntry.SetRange("Document Type", VendLedgEntry."Document Type"::Invoice) + else + if GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::"Credit Memo" then + VendLedgEntry.SetRange("Document Type", VendLedgEntry."Document Type"::"Credit Memo"); + + if VendLedgEntry.FindFirst() then + VendLedgEntry.CalcFields(Amount, "Remaining Amount"); + + ExpectedAmount := -(VendLedgEntry.Amount + VendLedgEntry1.Amount); + + if VendLedgEntry1."Amount (LCY)" = 0 then + VendLedgEntry1."Rem. Amt for Withholding Tax" := 0; + if (GenJnlLine."Posting Date" <= VendLedgEntry."Pmt. Discount Date") and + (Abs(PaymentAmount1) >= + (Abs(VendLedgEntry."Rem. Amt for Withholding Tax" + VendLedgEntry1."Rem. Amt for Withholding Tax") - + Abs(VendLedgEntry."Original Pmt. Disc. Possible"))) + then begin + AppldAmount := + Round( + ((PaymentAmount1 - VendLedgEntry."Original Pmt. Disc. Possible") * + (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / ExpectedAmount); + WithholdingTaxEntry3."Remaining Unrealized Base" := + Round( + WithholdingTaxEntry."Remaining Unrealized Base" - + Round( + ((PaymentAmount1 - VendLedgEntry."Original Pmt. Disc. Possible") * + (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / ExpectedAmount)); + WithholdingTaxEntry3."Remaining Unrealized Amount" := + Round( + WithholdingTaxEntry."Remaining Unrealized Amount" - + Round( + ((PaymentAmount1 - VendLedgEntry."Original Pmt. Disc. Possible") * + (WithholdingTaxEntry."Unrealized Amount" + TempRemBase)) / ExpectedAmount)); + end else begin + AppldAmount := + Round( + (PaymentAmount1 * (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / + ExpectedAmount); + + WithholdingTaxEntry3."Remaining Unrealized Base" := + Round( + WithholdingTaxEntry."Remaining Unrealized Base" - + Round( + (PaymentAmount1 * (WithholdingTaxEntry."Unrealized Base" + TempRemAmt)) / + ExpectedAmount)); + + WithholdingTaxEntry3."Remaining Unrealized Amount" := + Round( + WithholdingTaxEntry."Remaining Unrealized Amount" - + Round( + (PaymentAmount1 * (WithholdingTaxEntry."Unrealized Amount" + TempRemBase)) / + ExpectedAmount)); + end; + + PaymentAmount := PaymentAmount + AppldAmount; + end; + end; + + if (WithholdingTaxEntry."Remaining Unrealized Base" = 0) and + (WithholdingTaxEntry."Remaining Unrealized Amount" = 0) + then + WithholdingTaxEntry3.Closed := true; + + if GenJnlLine."Source Currency Code" <> WithholdingTaxEntry."Currency Code" then + Error(CurrencyCodeSameErr); + + GLSetup.Get(); + if GLSetup."Manual Sales Wthldg. Tax Calc." and not GenJnlLine."Withholding Tax Payment" then + AppldAmount := 0; + + if AppldAmount = 0 then + exit(WithholdingTaxEntry2."Entry No."); + + WithholdingTaxEntry2.Init(); + WithholdingTaxEntry2."Posting Date" := GenJnlLine."Document Date"; + WithholdingTaxEntry2."Entry No." := NextEntryNo(); + WithholdingTaxEntry2."Document Date" := WithholdingTaxEntry."Document Date"; + WithholdingTaxEntry2."Document Type" := GenJnlLine."Document Type"; + WithholdingTaxEntry2."Document No." := WithholdingTaxEntry."Document No."; + WithholdingTaxEntry2."Gen. Bus. Posting Group" := WithholdingTaxEntry."Gen. Bus. Posting Group"; + WithholdingTaxEntry2."Gen. Prod. Posting Group" := WithholdingTaxEntry."Gen. Prod. Posting Group"; + WithholdingTaxEntry2."Bill-to/Pay-to No." := WithholdingTaxEntry."Bill-to/Pay-to No."; + WithholdingTaxEntry2."Wthldg. Tax Bus. Post. Group" := WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group"; + WithholdingTaxEntry2."Wthldg. Tax Prod. Post. Group" := WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"; + WithholdingTaxEntry2."Withholding Tax Revenue Type" := WithholdingTaxEntry."Withholding Tax Revenue Type"; + WithholdingTaxEntry2."Unreal. Wthldg. Tax Entry No." := WithholdingTaxEntry."Entry No."; + WithholdingTaxEntry2."Currency Code" := GenJnlLine."Source Currency Code"; + WithholdingTaxEntry2."Applies-to Entry No." := WithholdingTaxEntry."Entry No."; + WithholdingTaxEntry2."User ID" := UserId; + WithholdingTaxEntry2."External Document No." := GenJnlLine."External Document No."; + WithholdingTaxEntry2."Actual Vendor No." := GenJnlLine."WHT Actual Vendor No."; + WithholdingTaxEntry2."Original Document No." := GenJnlLine."Document No."; + WithholdingTaxEntry2."Source Code" := GenJnlLine."Source Code"; + WithholdingTaxEntry2."Transaction No." := TransactionNo; + WithholdingTaxEntry2."Withholding Tax %" := WithholdingTaxEntry."Withholding Tax %"; + + case Source of + Source::Vendor: + begin + WithholdingTaxEntry2.Base := Round(AppldAmount); + WithholdingTaxEntry2.Amount := Round(WithholdingTaxEntry2.Base * WithholdingTaxEntry2."Withholding Tax %" / 100); + WithholdingTaxEntry2."Transaction Type" := WithholdingTaxEntry2."Transaction Type"::Purchase; + WithholdingPostingSetup.Get(WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + WithholdingTaxEntry2."Withholding Tax Report" := WithholdingPostingSetup."Withholding Tax Report"; + + if GenJnlLine."WHT Certificate Printed" then begin + WithholdingTaxEntry2."Wthldg. Tax Report Line No" := GenJnlLine."Wthldg. Tax Report Line No."; + TempWithholdingTaxEntry.SetRange("Document No.", WithholdingTaxEntry2."Document No."); + if TempWithholdingTaxEntry.FindFirst() then + WithholdingTaxEntry2."Wthldg. Tax Certificate No." := TempWithholdingTaxEntry."Wthldg. Tax Certificate No."; + end else begin + if ((Source = Source::Vendor) and + (WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::Invoice)) or + ((Source = Source::Customer) and + (WithholdingTaxEntry."Document Type" = WithholdingTaxEntry."Document Type"::"Credit Memo")) + then + if (WithholdingReportLineNo = '') and (WithholdingTaxEntry2.Amount <> 0) and + (WithholdingPostingSetup."Wthldg. Tax Rep Line No Series" <> '') + then + WithholdingReportLineNo := NoSeries.GetNextNo(WithholdingPostingSetup."Wthldg. Tax Rep Line No Series", WithholdingTaxEntry2."Posting Date"); + + WithholdingTaxEntry2."Wthldg. Tax Report Line No" := WithholdingReportLineNo; + end; + end; + end; + + WithholdingTaxEntry2."Payment Amount" := PaymentAmount1; + + if WithholdingTaxEntry2."Currency Code" <> '' then begin + CurrFactor := + CurrExchRate.ExchangeRate( + WithholdingTaxEntry2."Posting Date", WithholdingTaxEntry2."Currency Code"); + + WithholdingTaxEntry2."Base (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + WithholdingTaxEntry2."Currency Code", + WithholdingTaxEntry2.Base, CurrFactor)); + + WithholdingTaxEntry2."Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + GenJnlLine."Document Date", + WithholdingTaxEntry2."Currency Code", + WithholdingTaxEntry2.Amount, CurrFactor)); + end else begin + WithholdingTaxEntry2."Amount (LCY)" := WithholdingTaxEntry2.Amount; + WithholdingTaxEntry2."Base (LCY)" := WithholdingTaxEntry2.Base; + end; + + WithholdingTaxEntry2.Insert(); + TType := TType::Purchase; + WithholdingTaxEntry3.Modify(); + + WithholdingTaxEntry3.Reset(); + WithholdingTaxEntry3.SetCurrentKey("Applies-to Entry No."); + WithholdingTaxEntry3.SetRange("Applies-to Entry No.", WithholdingTaxEntry."Entry No."); + WithholdingTaxEntry3.CalcSums(Amount, "Amount (LCY)"); + if (Abs(Abs(WithholdingTaxEntry3.Amount) - Abs(WithholdingTaxEntry."Unrealized Amount")) < 0.1) and + (Abs(Abs(WithholdingTaxEntry3.Amount) - Abs(WithholdingTaxEntry."Unrealized Amount")) > 0) + then begin + WithholdingTaxEntry2."Withholding Tax Difference" := WithholdingTaxEntry."Unrealized Amount" - WithholdingTaxEntry3.Amount; + WithholdingTaxEntry2.Amount := WithholdingTaxEntry2.Amount - WithholdingTaxEntry2."Withholding Tax Difference"; + WithholdingTaxEntry2.Modify(); + end; + + if (Abs(Abs(WithholdingTaxEntry3."Amount (LCY)") - + Abs(WithholdingTaxEntry."Unrealized Amount (LCY)")) < 0.1) and + (Abs(Abs(WithholdingTaxEntry3."Amount (LCY)") - Abs(WithholdingTaxEntry."Unrealized Amount (LCY)")) > 0) + then begin + WithholdingTaxEntry2."Amount (LCY)" := WithholdingTaxEntry2."Amount (LCY)" - + WithholdingTaxEntry."Unrealized Amount (LCY)" + WithholdingTaxEntry3."Amount (LCY)"; + WithholdingTaxEntry2.Modify(); + end; + end; + until (WithholdingTaxEntry.Next() = 0); + + if (WithholdingPostingSetup."Realized Withholding Tax Type" = + WithholdingPostingSetup."Realized Withholding Tax Type"::Payment) + then + exit(WithholdingTaxEntry2."Entry No." + 1); + end; +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxPostingBuffer.Table.al b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxPostingBuffer.Table.al new file mode 100644 index 0000000000..4cdd609f84 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WithholdingTaxPostingBuffer.Table.al @@ -0,0 +1,40 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +table 6791 "Withholding Tax Posting Buffer" +{ + Caption = 'Withholding Tax Posting Buffer'; + DataClassification = CustomerContent; + + fields + { + field(2; "Tax Invoice No."; Code[20]) + { + Caption = 'Tax Invoice No.'; + DataClassification = SystemMetadata; + } + field(3; "Invoice No."; Text[30]) + { + Caption = 'Invoice No.'; + DataClassification = SystemMetadata; + } + field(4; Type; Option) + { + Caption = 'Type'; + DataClassification = SystemMetadata; + OptionCaption = 'Purchase Invoice,Sales Invoice,Purchase Credit Memo,Sales Credit Memo'; + OptionMembers = "Purchase Invoice","Sales Invoice","Purchase Credit Memo","Sales Credit Memo"; + } + } + + keys + { + key(Key1; "Tax Invoice No.", Type) + { + Clustered = true; + } + } +} \ No newline at end of file diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WthldgTaxNavigateHandler.Codeunit.al b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WthldgTaxNavigateHandler.Codeunit.al new file mode 100644 index 0000000000..adea7b67e7 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WthldgTaxNavigateHandler.Codeunit.al @@ -0,0 +1,43 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using Microsoft.Foundation.Navigate; + +codeunit 6787 "Wthldg Tax Navigate Handler" +{ + var + [SecurityFiltering(SecurityFilter::Filtered)] + WithholdingTaxEntry: Record "Withholding Tax Entry"; + + [EventSubscriber(ObjectType::Page, Page::Navigate, OnAfterNavigateFindRecords, '', false, false)] + local procedure OnAfterNavigateFindRecords(var DocumentEntry: Record "Document Entry"; DocNoFilter: Text; PostingDateFilter: Text) + begin + if WithholdingTaxEntry.ReadPermission() then begin + SetWithholdingEntryFilters(DocNoFilter, PostingDateFilter); + DocumentEntry.InsertIntoDocEntry(Database::"Withholding Tax Entry", WithholdingTaxEntry.TableCaption(), WithholdingTaxEntry.Count); + end; + end; + + [EventSubscriber(ObjectType::Page, Page::Navigate, OnBeforeShowRecords, '', false, false)] + local procedure OnBeforeShowRecords(var TempDocumentEntry: Record "Document Entry"; DocNoFilter: Text; PostingDateFilter: Text; var IsHandled: Boolean; ContactNo: Code[250]) + begin + case TempDocumentEntry."Table ID" of + Database::"Withholding Tax Entry": + begin + SetWithholdingEntryFilters(DocNoFilter, PostingDateFilter); + Page.Run(0, WithholdingTaxEntry); + end; + end; + end; + + local procedure SetWithholdingEntryFilters(DocNoFilter: Text; PostingDateFilter: Text) + begin + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetCurrentKey("Document No.", "Posting Date"); + WithholdingTaxEntry.SetFilter("Document No.", DocNoFilter); + WithholdingTaxEntry.SetFilter("Posting Date", PostingDateFilter); + end; +} diff --git a/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WthldgTaxPurchSubscribers.Codeunit.al b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WthldgTaxPurchSubscribers.Codeunit.al new file mode 100644 index 0000000000..70adc92762 --- /dev/null +++ b/Apps/W1/WithholdingTax/app/src/Purchase/Transaction/WthldgTaxPurchSubscribers.Codeunit.al @@ -0,0 +1,505 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.WithholdingTax; + +using Microsoft.Finance.Currency; +using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Finance.GeneralLedger.Journal; +using Microsoft.Finance.GeneralLedger.Ledger; +using Microsoft.Finance.GeneralLedger.Posting; +using Microsoft.Finance.GeneralLedger.Setup; +using Microsoft.Finance.ReceivablesPayables; +using Microsoft.FixedAssets.FixedAsset; +using Microsoft.Inventory.Item; +using Microsoft.Purchases.Document; +using Microsoft.Purchases.History; +using Microsoft.Purchases.Posting; +using Microsoft.Purchases.Setup; +using Microsoft.Purchases.Vendor; + +codeunit 6784 "Wthldg Tax Purch. Subscribers" +{ + var + GeneralLedgerSetup: Record "General Ledger Setup"; + + [EventSubscriber(ObjectType::Table, Database::"Purchase Header", OnAfterCopyBuyFromVendorFieldsFromVendor, '', false, false)] + local procedure CopyVendorInfo(var PurchaseHeader: Record "Purchase Header"; Vendor: Record Vendor) + begin + if CheckWithholdingTaxDisabled() then + exit; + + PurchaseHeader."Wthldg. Tax Bus. Post. Group" := Vendor."Wthldg. Tax Bus. Post. Group"; + end; + + [EventSubscriber(ObjectType::Table, Database::"Purchase Line", OnAfterInitHeaderDefaults, '', false, false)] + local procedure CopyHeaderInf0(PurchHeader: Record "Purchase Header"; var PurchLine: Record "Purchase Line") + begin + if CheckWithholdingTaxDisabled() then + exit; + + PurchLine."Wthldg. Tax Bus. Post. Group" := PurchHeader."Wthldg. Tax Bus. Post. Group"; + end; + + [EventSubscriber(ObjectType::Table, Database::"Purchase Line", OnAfterAssignGLAccountValues, '', false, false)] + local procedure AssignGLAccValue(var PurchLine: Record "Purchase Line"; GLAccount: Record "G/L Account") + begin + if CheckWithholdingTaxDisabled() then + exit; + + PurchLine."Wthldg. Tax Prod. Post. Group" := GLAccount."Wthldg. Tax Prod. Post. Group"; + end; + + [EventSubscriber(ObjectType::Table, Database::"Purchase Line", OnAfterAssignItemValues, '', false, false)] + local procedure AssignItemValue(var PurchLine: Record "Purchase Line"; Item: Record Item) + begin + if CheckWithholdingTaxDisabled() then + exit; + + PurchLine."Wthldg. Tax Prod. Post. Group" := Item."Wthldg. Tax Prod. Post. Group"; + end; + + [EventSubscriber(ObjectType::Table, Database::"Purchase Line", OnAfterAssignFixedAssetValues, '', false, false)] + local procedure AssignFAValue(var PurchLine: Record "Purchase Line"; FixedAsset: Record "Fixed Asset") + begin + if CheckWithholdingTaxDisabled() then + exit; + + PurchLine."Wthldg. Tax Prod. Post. Group" := FixedAsset."Wthldg. Tax Prod. Post. Group"; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Purch. Post Invoice Events", OnAfterPrepareInvoicePostingBuffer, '', false, false)] + local procedure OnAfterPrepareInvoicePostingBuffer(var InvoicePostingBuffer: Record "Invoice Posting Buffer" temporary; var PurchaseLine: Record "Purchase Line") + begin + if CheckWithholdingTaxDisabled() then + exit; + + InvoicePostingBuffer."Wthldg. Tax Bus. Post. Group" := PurchaseLine."Wthldg. Tax Bus. Post. Group"; + InvoicePostingBuffer."Wthldg. Tax Prod. Post. Group" := PurchaseLine."Wthldg. Tax Prod. Post. Group"; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Purch. Post Invoice Events", OnPrepareGenJnlLineOnAfterCopyToGenJnlLine, '', false, false)] + local procedure OnPrepareGenJnlLineOnAfterCopyToGenJnlLine(InvoicePostingBuffer: Record "Invoice Posting Buffer" temporary; var GenJnlLine: Record "Gen. Journal Line") + begin + if CheckWithholdingTaxDisabled() then + exit; + + InvoicePostingBuffer."Wthldg. Tax Bus. Post. Group" := GenJnlLine."Wthldg. Tax Bus. Post. Group"; + InvoicePostingBuffer."Wthldg. Tax Prod. Post. Group" := GenJnlLine."Wthldg. Tax Prod. Post. Group"; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Purch. Post Invoice Events", OnPostLedgerEntryOnBeforeGenJnlPostLine, '', false, false)] + local procedure OnPostLedgerEntryOnBeforeGenJnlPostLine(var GenJnlLine: Record "Gen. Journal Line"; var PurchHeader: Record "Purchase Header") + begin + if CheckWithholdingTaxDisabled() then + exit; + + GenJnlLine."Wthldg. Tax Bus. Post. Group" := PurchHeader."Wthldg. Tax Bus. Post. Group"; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Purch. Post Invoice Events", OnPostBalancingEntryOnAfterInitNewLine, '', false, false)] + local procedure OnPostBalancingEntryOnAfterInitNewLine(var GenJnlLine: Record "Gen. Journal Line"; var PurchHeader: Record "Purchase Header") + begin + if CheckWithholdingTaxDisabled() then + exit; + + GenJnlLine."Wthldg. Tax Bus. Post. Group" := PurchHeader."Wthldg. Tax Bus. Post. Group"; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Purch. Post Invoice Events", OnPrepareLineOnAfterAssignAmounts, '', false, false)] + local procedure OnPrepareLineOnAfterAssignAmounts(PurchLine: Record "Purchase Line"; var TotalAmount: Decimal; var TotalAmountACY: Decimal) + begin + if CheckWithholdingTaxDisabled() then + exit; + + AssignWithholdingAmounts(PurchLine, TotalAmount, TotalAmountACY); + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Purch. Post Invoice Events", OnAfterInitGenJnlLineAmountFieldsFromTotalLines, '', false, false)] + local procedure OnAfterInitGenJnlLineAmountFieldsFromTotalLines(var GenJnlLine: Record "Gen. Journal Line"; var PurchHeader: Record "Purchase Header"; var TotalPurchLine: Record "Purchase Line"; var TotalPurchLineLCY: Record "Purchase Line") + var + CurrExchRate: Record "Currency Exchange Rate"; + begin + if CheckWithholdingTaxDisabled() then + exit; + + GenJnlLine.Amount += PurchHeader."Withholding Tax Amount"; + GenJnlLine."Source Currency Amount" += PurchHeader."Withholding Tax Amount"; + + if (PurchHeader."Withholding Tax Amount" <> 0) and (PurchHeader."Currency Code" <> '') then + GenJnlLine."Amount (LCY)" += + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + PurchHeader."Posting Date", PurchHeader."Currency Code", PurchHeader."Withholding Tax Amount", PurchHeader."Currency Factor")) + else + GenJnlLine."Amount (LCY)" += PurchHeader."Withholding Tax Amount"; + end; + + local procedure AssignWithholdingAmounts(PurchLine: Record "Purchase Line"; var TotalAmount: Decimal; var TotalAmountACY: Decimal) + var + PurchHeader: Record "Purchase Header"; + GenPostingSetup: Record "General Posting Setup"; + CurrExchRate: Record "Currency Exchange Rate"; + PrepaymentPurchInvHeader: Record "Purch. Inv. Header"; + PrepaymentWithholdingTaxEntry: Record "Withholding Tax Entry"; + TotalWHTAmtToBeDeducted: Decimal; + TotalWHTAmountToBeDeductedLCY: Decimal; + TotalWHTAmountToBeDeductedACY: Integer; + begin + PurchHeader := PurchLine.GetPurchHeader(); + GenPostingSetup.Get(PurchLine."Gen. Bus. Posting Group", PurchLine."Gen. Prod. Posting Group"); + + PrepaymentPurchInvHeader.Reset(); + PrepaymentPurchInvHeader.SetRange("Prepayment Order No.", PurchLine."Document No."); + PrepaymentPurchInvHeader.SetRange("Prepayment Invoice", true); + if PrepaymentPurchInvHeader.FindSet() then + repeat + PrepaymentWithholdingTaxEntry.SetRange("Document Type", PrepaymentWithholdingTaxEntry."Document Type"::Invoice); + PrepaymentWithholdingTaxEntry.SetRange("Document No.", PrepaymentPurchInvHeader."No."); + PrepaymentWithholdingTaxEntry.SetRange("Gen. Bus. Posting Group", GenPostingSetup."Gen. Bus. Posting Group"); + PrepaymentWithholdingTaxEntry.SetRange("Gen. Prod. Posting Group", GenPostingSetup."Gen. Prod. Posting Group"); + if PrepaymentWithholdingTaxEntry.FindSet() then + repeat + TotalWHTAmountToBeDeductedLCY := TotalWHTAmountToBeDeductedLCY + PrepaymentWithholdingTaxEntry."Unrealized Amount (LCY)"; + TotalWHTAmtToBeDeducted := TotalWHTAmtToBeDeducted + PrepaymentWithholdingTaxEntry."Unrealized Amount"; + until PrepaymentWithholdingTaxEntry.Next() = 0; + until PrepaymentPurchInvHeader.Next() = 0; + + GeneralLedgerSetup.Get(); + if GeneralLedgerSetup."Additional Reporting Currency" <> '' then + TotalWHTAmountToBeDeductedACY := + CurrExchRate.ExchangeAmtLCYToFCY( + PurchHeader."Posting Date", GeneralLedgerSetup."Additional Reporting Currency", + TotalWHTAmtToBeDeducted, 0); + + if PurchLine."Prepayment Line" then begin + TotalAmount := TotalAmount + TotalWHTAmountToBeDeductedLCY; + TotalAmountACY := TotalAmountACY + TotalWHTAmountToBeDeductedACY; + end; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Purch.-Post", OnCheckAndUpdateOnBeforeSetPostingFlags, '', false, false)] + local procedure CheckWithholdingApplication(var PurchHeader: Record "Purchase Header") + var + WithholdingTaxMgmt: Codeunit "Withholding Tax Mgmt."; + begin + if CheckWithholdingTaxDisabled() then + exit; + + if PurchHeader.IsCreditDocType() then begin + if (PurchHeader."Applies-to Doc. Type" = PurchHeader."Applies-to Doc. Type"::Invoice) and (PurchHeader."Applies-to Doc. No." <> '') then + WithholdingTaxMgmt.CheckApplicationPurchWithholdingTax(PurchHeader); + + if ((PurchHeader."Applies-to Doc. Type" = PurchHeader."Applies-to Doc. Type"::Refund) and (PurchHeader."Applies-to Doc. No." <> '')) or + (PurchHeader."Applies-to ID" <> '') + then + WithholdingTaxMgmt.CheckApplicationPurchWithholdingTax(PurchHeader); + end; + + if PurchHeader."Document Type" in [PurchHeader."Document Type"::Invoice] then begin + if (PurchHeader."Applies-to Doc. Type" = PurchHeader."Applies-to Doc. Type"::"Credit Memo") and (PurchHeader."Applies-to Doc. No." <> '') then + WithholdingTaxMgmt.CheckApplicationPurchWithholdingTax(PurchHeader); + + if ((PurchHeader."Applies-to Doc. Type" = PurchHeader."Applies-to Doc. Type"::Payment) and (PurchHeader."Applies-to Doc. No." <> '')) or + (PurchHeader."Applies-to ID" <> '') + then + WithholdingTaxMgmt.CheckApplicationPurchWithholdingTax(PurchHeader); + end; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Purch.-Post", OnPostInvoiceOnAfterPostLines, '', false, false)] + local procedure PostPurchWithholdingTax(var PurchaseHeader: Record "Purchase Header"; SrcCode: Code[10]; GenJnlLineDocType: Enum "Gen. Journal Document Type"; GenJnlLineExtDocNo: Code[35]; GenJnlLineDocNo: Code[20]; var GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line"; var TotalPurchLine: Record "Purchase Line"; var TotalPurchLineLCY: Record "Purchase Line"; var TempPurchLineGlobal: Record "Purchase Line" temporary; TotalAmount: Decimal) + begin + if CheckWithholdingTaxDisabled() then + exit; + + PostWithholdingTax(PurchaseHeader, SrcCode, GenJnlLineDocType, GenJnlLineDocNo, GenJnlLineExtDocNo, GenJnlPostLine, TotalPurchLineLCY, TempPurchLineGlobal, TotalAmount); + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Purchase-Post Prepayments", OnAfterCreateLinesOnBeforeGLPosting, '', false, false)] + local procedure VendorPrepaymentInvoiceWithholdingTax(var PurchaseHeader: Record "Purchase Header"; PurchInvHeader: Record "Purch. Inv. Header"; DocumentType: Option Invoice,"Credit Memo") + var + WithholdingTaxMgmt: Codeunit "Withholding Tax Mgmt."; + begin + if CheckWithholdingTaxDisabled() then + exit; + + if PurchaseHeader."Document Type" in [PurchaseHeader."Document Type"::Order, PurchaseHeader."Document Type"::Invoice] then + if DocumentType = DocumentType::Invoice then + WithholdingTaxMgmt.InsertVendPrepaymentInvoiceWithholding(PurchInvHeader, PurchaseHeader); + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Purchase-Post Prepayments", OnBeforePostPrepmtInvLineBuffer, '', false, false)] + local procedure PostPrepmtInvLineBuffer(var GenJnlLine: Record "Gen. Journal Line"; PrepmtInvLineBuffer: Record "Prepayment Inv. Line Buffer") + var + WithholdingTaxEntry: Record "Withholding Tax Entry"; + GLRegister: Record "G/L Register"; + WithholdingTaxAmount: Decimal; + WithholdingTaxAmountLCY: Decimal; + begin + if CheckWithholdingTaxDisabled() then + exit; + + WithholdingTaxAmount := 0; + WithholdingTaxAmountLCY := 0; + + CalcWithholdingTaxAmounts(GenJnlLine."Document No.", PrepmtInvLineBuffer, WithholdingTaxEntry, WithholdingTaxAmount, WithholdingTaxAmountLCY); + + if GenJnlLine."Currency Code" <> '' then + GenJnlLine.Amount := PrepmtInvLineBuffer.Amount - WithholdingTaxAmountLCY + else + GenJnlLine.Amount := PrepmtInvLineBuffer.Amount - WithholdingTaxAmount; + + if WithholdingTaxEntry.FindLast() then + if GLRegister.FindLast() then begin + GLRegister."To Withholding Tax Entry No." := WithholdingTaxEntry."Entry No."; + GLRegister.Modify(); + end; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Purchase-Post Prepayments", OnBeforePostVendorEntry, '', false, false)] + local procedure OnBeforePostVendorEntry(var GenJnlLine: Record "Gen. Journal Line") + var + WithholdingTaxEntry: Record "Withholding Tax Entry"; + WithholdingTaxAmount: Decimal; + WithholdingTaxAmountLCY: Decimal; + begin + if CheckWithholdingTaxDisabled() then + exit; + + CalcWithholdingTaxAmounts(GenJnlLine."Document No.", WithholdingTaxEntry, WithholdingTaxAmount, WithholdingTaxAmountLCY); + + GenJnlLine.Amount += WithholdingTaxAmount; + GenJnlLine."Amount (LCY)" += WithholdingTaxAmountLCY; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Purchase-Post Prepayments", OnBeforePostBalancingEntry, '', false, false)] + local procedure OnBeforePostBalancingEntry(var GenJnlLine: Record "Gen. Journal Line") + var + WithholdingTaxEntry: Record "Withholding Tax Entry"; + WithholdingTaxAmount: Decimal; + WithholdingTaxAmountLCY: Decimal; + begin + if CheckWithholdingTaxDisabled() then + exit; + + CalcWithholdingTaxAmounts(GenJnlLine."Document No.", WithholdingTaxEntry, WithholdingTaxAmount, WithholdingTaxAmountLCY); + + GenJnlLine.Amount -= WithholdingTaxAmount; + GenJnlLine."Source Currency Amount" := GenJnlLine.Amount; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Purchase-Post Prepayments", OnCodeOnAfterUpdateHeaderAndLines, '', false, false)] + local procedure VendorPrepaymentCrMemoWithholdingTax(var PurchaseHeader: Record "Purchase Header"; var PurchCrMemoHdr: Record "Purch. Cr. Memo Hdr."; DocumentType: Option Invoice,"Credit Memo") + var + WithholdingTaxMgmt: Codeunit "Withholding Tax Mgmt."; + begin + if CheckWithholdingTaxDisabled() then + exit; + + if PurchaseHeader."Document Type" in [PurchaseHeader."Document Type"::Order, PurchaseHeader."Document Type"::Invoice] then + if DocumentType = DocumentType::"Credit Memo" then + WithholdingTaxMgmt.InsertVendPrepaymentCrMemoWithholding(PurchCrMemoHdr, PurchaseHeader); + end; + + local procedure CalcWithholdingTaxAmounts(PurchInvNo: Code[20]; PrepaymentInvLineBuffer: Record "Prepayment Inv. Line Buffer"; var WithholdingTaxEntry: Record "Withholding Tax Entry"; var WithholdingTaxAmount: Decimal; var WithholdingTaxAmountLCY: Decimal) + var + WithholdingPostingSetup: Record "Withholding Tax Posting Setup"; + begin + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetRange("Document Type", WithholdingTaxEntry."Document Type"::Invoice); + WithholdingTaxEntry.SetRange("Document No.", PurchInvNo); + WithholdingTaxEntry.SetRange("Gen. Bus. Posting Group", PrepaymentInvLineBuffer."Gen. Bus. Posting Group"); + WithholdingTaxEntry.SetRange("Gen. Prod. Posting Group", PrepaymentInvLineBuffer."Gen. Prod. Posting Group"); + WithholdingTaxEntry.SetFilter("Unrealized Amount", '<>%1', 0); + if WithholdingTaxEntry.FindSet() then + repeat + WithholdingPostingSetup.Get(WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if (WithholdingPostingSetup."Realized Withholding Tax Type" <> WithholdingPostingSetup."Realized Withholding Tax Type"::Payment) and + (WithholdingPostingSetup."Realized Withholding Tax Type" <> WithholdingPostingSetup."Realized Withholding Tax Type"::" ") + then begin + WithholdingTaxAmount += WithholdingTaxEntry."Unrealized Amount"; + WithholdingTaxAmountLCY += WithholdingTaxEntry."Unrealized Amount (LCY)"; + end; + until WithholdingTaxEntry.Next() = 0; + end; + + local procedure CalcWithholdingTaxAmounts(PurchInvNo: Code[20]; var WithholdingTaxEntry: Record "Withholding Tax Entry"; var WithholdingTaxAmount: Decimal; var WithholdingTaxAmountLCY: Decimal) + var + WithholdingPostingSetup: Record "Withholding Tax Posting Setup"; + begin + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetRange("Document Type", WithholdingTaxEntry."Document Type"::Invoice); + WithholdingTaxEntry.SetRange("Document No.", PurchInvNo); + WithholdingTaxEntry.SetFilter("Unrealized Amount", '<>%1', 0); + if WithholdingTaxEntry.FindSet() then + repeat + WithholdingPostingSetup.Get(WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if (WithholdingPostingSetup."Realized Withholding Tax Type" <> WithholdingPostingSetup."Realized Withholding Tax Type"::Payment) and + (WithholdingPostingSetup."Realized Withholding Tax Type" <> WithholdingPostingSetup."Realized Withholding Tax Type"::" ") + then begin + WithholdingTaxAmount += WithholdingTaxEntry."Unrealized Amount"; + WithholdingTaxAmountLCY += WithholdingTaxEntry."Unrealized Amount (LCY)"; + end; + until WithholdingTaxEntry.Next() = 0; + end; + + local procedure PostWithholdingTax(var PurchHeader: Record "Purchase Header"; SrcCode: Code[10]; GenJnlLineDocType: Enum "Gen. Journal Document Type"; GenJnlLineDocNo: Code[20]; GenJnlLineExtDocNo: Code[35]; var GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line"; var TotalPurchLineLCY: Record "Purchase Line"; var TempPurchLineGlobal: Record "Purchase Line" temporary; TotalInvAmount: Decimal) + var + GenJnlLine: Record "Gen. Journal Line"; + PurchSetup: Record "Purchases & Payables Setup"; + WithholdingPostingSetup: Record "Withholding Tax Posting Setup"; + GLReg: Record "G/L Register"; + WithholdingTaxEntry: Record "Withholding Tax Entry"; + PurchInvHeader: Record "Purch. Inv. Header"; + PurchCrMemoHeader: Record "Purch. Cr. Memo Hdr."; + WithholdingTaxMgmt: Codeunit "Withholding Tax Mgmt."; + InvoiceWithholdingTaxExists: Boolean; + begin + if TempPurchLineGlobal.Type <> TempPurchLineGlobal.Type::" " then + WithholdingPostingSetup.Get(TempPurchLineGlobal."Wthldg. Tax Bus. Post. Group", TempPurchLineGlobal."Wthldg. Tax Prod. Post. Group"); + + if PurchHeader."Document Type" in [PurchHeader."Document Type"::Order, PurchHeader."Document Type"::Invoice] then begin + PurchInvHeader.Get(GenJnlLineDocNo); + + if TotalInvAmount >= WithholdingPostingSetup."Wthldg. Tax Min. Inv. Amount" then + WithholdingTaxMgmt.InsertVendInvoiceWithholdingTax(PurchInvHeader); + + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetRange("Document Type", WithholdingTaxEntry."Document Type"::Invoice); + WithholdingTaxEntry.SetRange("Document No.", PurchInvHeader."No."); + if WithholdingTaxEntry.FindSet() then + repeat + WithholdingPostingSetup.Get(WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if (WithholdingPostingSetup."Realized Withholding Tax Type" <> WithholdingPostingSetup."Realized Withholding Tax Type"::Payment) and + (WithholdingPostingSetup."Realized Withholding Tax Type" <> WithholdingPostingSetup."Realized Withholding Tax Type"::" ") + then + if WithholdingTaxEntry.Amount <> 0 then begin + PurchHeader."Withholding Tax Amount" := WithholdingTaxEntry.Amount; + InsertGenJournalWithholding(PurchHeader, GenJnlLine, WithholdingPostingSetup.GetPayableWithholdingTaxAccount(), SrcCode, GenJnlLineDocType, GenJnlLineDocNo, GenJnlLineExtDocNo, WithholdingTaxEntry.Amount, TotalPurchLineLCY); + GenJnlPostLine.IncreaseTaxEntryNo(); + GenJnlPostLine.Run(GenJnlLine); + end; + until WithholdingTaxEntry.Next() = 0; + + GenJnlPostLine.GetGLReg(GLReg); + + if WithholdingTaxEntry.FindLast() then + InvoiceWithholdingTaxExists := true; + end else begin + PurchCrMemoHeader.Get(GenJnlLineDocNo); + WithholdingTaxMgmt.InsertVendCreditWithholding(PurchCrMemoHeader, PurchHeader."Applies-to ID"); + + WithholdingTaxEntry.Reset(); + WithholdingTaxEntry.SetRange("Document Type", WithholdingTaxEntry."Document Type"::"Credit Memo"); + WithholdingTaxEntry.SetRange("Document No.", PurchCrMemoHeader."No."); + if WithholdingTaxEntry.FindSet() then + repeat + WithholdingPostingSetup.Get(WithholdingTaxEntry."Wthldg. Tax Bus. Post. Group", WithholdingTaxEntry."Wthldg. Tax Prod. Post. Group"); + if (WithholdingPostingSetup."Realized Withholding Tax Type" <> WithholdingPostingSetup."Realized Withholding Tax Type"::Payment) and + (WithholdingPostingSetup."Realized Withholding Tax Type" <> WithholdingPostingSetup."Realized Withholding Tax Type"::" ") + then + if WithholdingTaxEntry.Amount <> 0 then begin + PurchHeader."Withholding Tax Amount" := WithholdingTaxEntry.Amount; + InsertGenJournalWithholding(PurchHeader, GenJnlLine, WithholdingPostingSetup.GetPayableWithholdingTaxAccount(), SrcCode, GenJnlLineDocType, GenJnlLineDocNo, GenJnlLineExtDocNo, WithholdingTaxEntry.Amount, TotalPurchLineLCY); + GenJnlPostLine.RunWithCheck(GenJnlLine); + end; + until WithholdingTaxEntry.Next() = 0; + + GenJnlPostLine.GetGLReg(GLReg); + if WithholdingTaxEntry.FindLast() then + InvoiceWithholdingTaxExists := true + end; + + PurchSetup.Get(); + PurchHeader."Withholding Tax Amount" := PurchHeader."Withholding Tax Amount" - CalcWithholdingAmountOnPrepayment(PurchHeader."No."); + if (PurchHeader."Withholding Tax Amount" <> 0) and InvoiceWithholdingTaxExists then + if PurchHeader."Document Type" = PurchHeader."Document Type"::"Credit Memo" then begin + if PurchSetup."Print Wthldg. Tax Docs Cr.Memo" then + WithholdingTaxMgmt.PrintWHTSlips(GLReg, false); + end else + WithholdingTaxMgmt.PrintWHTSlips(GLReg, false); + end; + + local procedure CalcWithholdingAmountOnPrepayment(DocNo: Code[20]): Decimal + var + PurchInvHeaderPrePmt: Record "Purch. Inv. Header"; + WithholdingTaxEntryPrePmt: Record "Withholding Tax Entry"; + TotalAmtToBeDeducted: Decimal; + begin + PurchInvHeaderPrePmt.Reset(); + PurchInvHeaderPrePmt.SetRange("Prepayment Order No.", DocNo); + PurchInvHeaderPrePmt.SetRange("Prepayment Invoice", true); + if PurchInvHeaderPrePmt.FindSet() then + repeat + WithholdingTaxEntryPrePmt.SetRange("Document Type", WithholdingTaxEntryPrePmt."Document Type"::Invoice); + WithholdingTaxEntryPrePmt.SetRange("Document No.", PurchInvHeaderPrePmt."No."); + if WithholdingTaxEntryPrePmt.FindSet() then + repeat + TotalAmtToBeDeducted := TotalAmtToBeDeducted + WithholdingTaxEntryPrePmt."Unrealized Amount"; + until WithholdingTaxEntryPrePmt.Next() = 0; + until PurchInvHeaderPrePmt.Next() = 0; + exit(TotalAmtToBeDeducted); + end; + + procedure InsertGenJournalWithholding(var PurchHeader: Record "Purchase Header"; var GenJnlLine: Record "Gen. Journal Line"; AccountNo: Code[20]; SrcCode: Code[10]; GenJnlLineDocType: Enum "Gen. Journal Document Type"; GenJnlLineDocNo: Code[20]; GenJnlLineExtDocNo: Code[35]; TotalAmount: Decimal; TotalPurchLineLCY: Record "Purchase Line") + var + CurrExchRate: Record "Currency Exchange Rate"; + begin + GenJnlLine.Init(); + GenJnlLine."Posting Date" := PurchHeader."Posting Date"; + GenJnlLine."Document Date" := PurchHeader."Document Date"; + GenJnlLine.Description := PurchHeader."Posting Description"; + GenJnlLine."Shortcut Dimension 1 Code" := PurchHeader."Shortcut Dimension 1 Code"; + GenJnlLine."Shortcut Dimension 2 Code" := PurchHeader."Shortcut Dimension 2 Code"; + GenJnlLine."Dimension Set ID" := PurchHeader."Dimension Set ID"; + GenJnlLine."Reason Code" := PurchHeader."Reason Code"; + GenJnlLine."Account Type" := GenJnlLine."Account Type"::"G/L Account"; + GenJnlLine."Account No." := AccountNo; + GenJnlLine."Document Type" := GenJnlLineDocType; + GenJnlLine."Document No." := GenJnlLineDocNo; + GenJnlLine."External Document No." := GenJnlLineExtDocNo; + GenJnlLine."Currency Code" := PurchHeader."Currency Code"; + GenJnlLine.Amount := -TotalAmount; + GenJnlLine."Source Currency Code" := PurchHeader."Currency Code"; + GenJnlLine."Source Currency Amount" := -TotalAmount; + + if PurchHeader."Currency Code" <> '' then + GenJnlLine."Amount (LCY)" := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + PurchHeader."Posting Date", PurchHeader."Currency Code", -TotalAmount, PurchHeader."Currency Factor")); + + if PurchHeader."Currency Code" = '' then + GenJnlLine."Currency Factor" := 1 + else + GenJnlLine."Currency Factor" := PurchHeader."Currency Factor"; + + GenJnlLine."Sales/Purch. (LCY)" := -TotalPurchLineLCY.Amount; + GenJnlLine.Correction := PurchHeader.Correction; + GenJnlLine."Inv. Discount (LCY)" := -TotalPurchLineLCY."Inv. Discount Amount"; + GenJnlLine."Sell-to/Buy-from No." := PurchHeader."Buy-from Vendor No."; + GenJnlLine."Bill-to/Pay-to No." := PurchHeader."Pay-to Vendor No."; + GenJnlLine."Salespers./Purch. Code" := PurchHeader."Purchaser Code"; + GenJnlLine."System-Created Entry" := true; + GenJnlLine."On Hold" := PurchHeader."On Hold"; + GenJnlLine."Allow Application" := PurchHeader."Bal. Account No." = ''; + GenJnlLine."Due Date" := PurchHeader."Due Date"; + GenJnlLine."Payment Terms Code" := PurchHeader."Payment Terms Code"; + GenJnlLine."Source Type" := GenJnlLine."Source Type"::Vendor; + GenJnlLine."Source No." := PurchHeader."Pay-to Vendor No."; + GenJnlLine."Source Code" := SrcCode; + GenJnlLine."Posting No. Series" := PurchHeader."Posting No. Series"; + GenJnlLine."IC Partner Code" := PurchHeader."Pay-to IC Partner Code"; + end; + + local procedure CheckWithholdingTaxDisabled(): Boolean + begin + GeneralLedgerSetup.Get(); + if not GeneralLedgerSetup."Enable Withholding Tax" then + exit(true); + + exit(false); + end; +} \ No newline at end of file diff --git a/Build/Packages.json b/Build/Packages.json index 5779abcc7d..10e8ad7100 100644 --- a/Build/Packages.json +++ b/Build/Packages.json @@ -4,7 +4,7 @@ "Source": "NuGet.org" }, "AppBaselines-BCArtifacts": { - "Version": "27.3.43540", + "Version": "27.3.44069", "Source": "BCArtifacts", "_comment": "Used to fetch app baselines from BC artifacts" } diff --git a/Build/rulesets/app.ruleset.json b/Build/rulesets/app.ruleset.json index 5eee8228c2..709f7e78ca 100644 --- a/Build/rulesets/app.ruleset.json +++ b/Build/rulesets/app.ruleset.json @@ -22,6 +22,11 @@ "id": "AL0424", "action": "Warning" }, + { + "id": "AL0897", + "action": "Error", + "justification": "Marking it as error temporarily to ensure subsequent PRs have using statements in sorted order to unblock the merging of BCApps PR (to remove the exception for AL0897). Will be reverted once the exception for AL0897 is removed from BCApps." + }, { "id": "AL0432", "action": "Warning", diff --git a/Build/rulesets/base.ruleset.json b/Build/rulesets/base.ruleset.json index 6f697780e5..3b18079dec 100644 --- a/Build/rulesets/base.ruleset.json +++ b/Build/rulesets/base.ruleset.json @@ -23,6 +23,11 @@ "action": "Warning", "justification": "Bug 472148. The multilanguage syntax is being deprecated. Please update to the new syntax." }, + { + "id": "AL0897", + "action": "Error", + "justification": "Marking it as error temporarily to ensure subsequent PRs have using statements in sorted order to unblock the merging of BCApps PR (to remove the exception for AL0897). Will be reverted once the exception for AL0897 is removed from BCApps." + }, { "id": "AL0432", "action": "None", diff --git a/Build/rulesets/ruleset.json b/Build/rulesets/ruleset.json index 6da850c7ad..56f0ad3f9c 100644 --- a/Build/rulesets/ruleset.json +++ b/Build/rulesets/ruleset.json @@ -29,11 +29,6 @@ } ], "rules": [ - { - "id": "AL0897", - "action": "None", - "justification": "TODO(#611991) - Temporarily downgraded to unblock compiler uptake." - }, { "id": "AS0077", "action": "None", @@ -44,6 +39,11 @@ "action": "None", "justification": "TODO(#572306) - (see PTE0026) This will require a multi-release effort." }, + { + "id": "AL0897", + "action": "None", + "justification": "TODO(#616973)" + }, { "id": "AS0139", "action": "None",