diff --git a/Apps/US/HybridSL_US/app/ExtensionLogo.png b/Apps/US/HybridSL_US/app/ExtensionLogo.png new file mode 100644 index 0000000000..5dc7f8c287 Binary files /dev/null and b/Apps/US/HybridSL_US/app/ExtensionLogo.png differ diff --git a/Apps/US/HybridSL_US/app/Permissions/SLD365BasicExtHSLUS.PermissionSetExt.al b/Apps/US/HybridSL_US/app/Permissions/SLD365BasicExtHSLUS.PermissionSetExt.al new file mode 100644 index 0000000000..3f54569d72 --- /dev/null +++ b/Apps/US/HybridSL_US/app/Permissions/SLD365BasicExtHSLUS.PermissionSetExt.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.DataMigration.SL; + +using System.Security.AccessControl; + +permissionsetextension 47200 "SLD365 Basic Ext. - HSLUS" extends "D365 Basic" +{ + Permissions = tabledata "SL Supported Tax Year" = RIMD, + tabledata "SL 1099 Box Mapping" = RIMD, + tabledata "SL 1099 Migration Log" = RIMD; +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/app/Permissions/SLD365BasicISVExtHSLUS.PermissionSetExt.al b/Apps/US/HybridSL_US/app/Permissions/SLD365BasicISVExtHSLUS.PermissionSetExt.al new file mode 100644 index 0000000000..ab2c11e004 --- /dev/null +++ b/Apps/US/HybridSL_US/app/Permissions/SLD365BasicISVExtHSLUS.PermissionSetExt.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.DataMigration.SL; + +using System.Security.AccessControl; + +permissionsetextension 47201 "SLD365 Basic ISV Ext. - HSLUS" extends "D365 Basic ISV" +{ + Permissions = tabledata "SL Supported Tax Year" = RIMD, + tabledata "SL 1099 Box Mapping" = RIMD, + tabledata "SL 1099 Migration Log" = RIMD; +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/app/Permissions/SLD365TeamMemberHSLUS.PermissionSetExt.al b/Apps/US/HybridSL_US/app/Permissions/SLD365TeamMemberHSLUS.PermissionSetExt.al new file mode 100644 index 0000000000..fa8a4b5693 --- /dev/null +++ b/Apps/US/HybridSL_US/app/Permissions/SLD365TeamMemberHSLUS.PermissionSetExt.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.DataMigration.SL; + +using System.Security.AccessControl; + +permissionsetextension 47202 "SLD365 Team Member Ext. - HSLUS" extends "D365 Team Member" +{ + Permissions = tabledata "SL Supported Tax Year" = RIMD, + tabledata "SL 1099 Box Mapping" = RIMD, + tabledata "SL 1099 Migration Log" = RIMD; +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/app/Permissions/SLIntelligentCloudHSLUS.PermissionSetExt.al b/Apps/US/HybridSL_US/app/Permissions/SLIntelligentCloudHSLUS.PermissionSetExt.al new file mode 100644 index 0000000000..88a2474c0e --- /dev/null +++ b/Apps/US/HybridSL_US/app/Permissions/SLIntelligentCloudHSLUS.PermissionSetExt.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.DataMigration.SL; + +using System.Security.AccessControl; + +permissionsetextension 47203 "SL Intelligent Cloud Ext. - HSLUS" extends "INTELLIGENT CLOUD" +{ + Permissions = tabledata "SL Supported Tax Year" = RIMD, + tabledata "SL 1099 Box Mapping" = RIMD, + tabledata "SL 1099 Migration Log" = RIMD; +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/app/Permissions/SLMigrationUSEdit.PermissionSet.al b/Apps/US/HybridSL_US/app/Permissions/SLMigrationUSEdit.PermissionSet.al new file mode 100644 index 0000000000..8ffb06a82d --- /dev/null +++ b/Apps/US/HybridSL_US/app/Permissions/SLMigrationUSEdit.PermissionSet.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.DataMigration.SL; + +permissionset 47200 "SL Migration US - Edit" +{ + Assignable = false; + Access = Public; + Caption = 'SL Migration US - Edit'; + + IncludedPermissionSets = "SL Migration US - Read"; + Permissions = tabledata "SL Supported Tax Year" = IMD, + tabledata "SL 1099 Box Mapping" = IMD, + tabledata "SL 1099 Migration Log" = IMD; +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/app/Permissions/SLMigrationUSObjects.PermissionSet.al b/Apps/US/HybridSL_US/app/Permissions/SLMigrationUSObjects.PermissionSet.al new file mode 100644 index 0000000000..05bdc1df03 --- /dev/null +++ b/Apps/US/HybridSL_US/app/Permissions/SLMigrationUSObjects.PermissionSet.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. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DataMigration.SL; + +permissionset 47202 "SL Migration US - Objects" +{ + Assignable = false; + Access = Public; + Caption = 'SL Migration - Objects'; + + Permissions = + table "SL 1099 Box Mapping" = X, + table "SL 1099 Migration Log" = X, + table "SL Supported Tax Year" = X, + codeunit "SL Cloud Migration US" = X, + codeunit "SL Populate Vendor 1099 Data" = X, + codeunit "SL Vendor 1099 Mapping Helpers" = X, + page "SL 1099 Migration Log List" = X; +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/app/Permissions/SLMigrationUSRead.PermissionSet.al b/Apps/US/HybridSL_US/app/Permissions/SLMigrationUSRead.PermissionSet.al new file mode 100644 index 0000000000..84b995a9e6 --- /dev/null +++ b/Apps/US/HybridSL_US/app/Permissions/SLMigrationUSRead.PermissionSet.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.DataMigration.SL; + +permissionset 47201 "SL Migration US - Read" +{ + Assignable = false; + Access = Public; + Caption = 'SL Migration US - Read'; + + IncludedPermissionSets = "SL Migration US - Objects"; + Permissions = tabledata "SL Supported Tax Year" = R, + tabledata "SL 1099 Box Mapping" = R, + tabledata "SL 1099 Migration Log" = R; +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/app/app.json b/Apps/US/HybridSL_US/app/app.json new file mode 100644 index 0000000000..5b08701c72 --- /dev/null +++ b/Apps/US/HybridSL_US/app/app.json @@ -0,0 +1,51 @@ +{ + "id": "40f34440-fcff-4601-a664-69ad316f4324", + "name": "Dynamics SL Migration - US", + "publisher": "Microsoft", + "version": "28.0.0.0", + "brief": "This extension migrates US specific information during a SL migration.", + "description": "This extension migrates US specific information during a SL migration, such as Vendor 1099 data.", + "privacyStatement": "https://go.microsoft.com/fwlink/?LinkId=724009", + "EULA": "https://go.microsoft.com/fwlink/?linkid=2009120", + "help": "https://go.microsoft.com/fwlink/?linkid=2009037", + "url": "https://go.microsoft.com/fwlink/?LinkId=724011", + "contextSensitiveHelpUrl": "https://learn.microsoft.com/dynamics365/business-central/", + "logo": "ExtensionLogo.png", + "dependencies": [ + { + "id": "58623bfa-0559-4bc2-ae1c-0979c29fd9e0", + "name": "Intelligent Cloud Base", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "237981b4-9e3c-437c-9b92-988aae978e8f", + "publisher": "Microsoft", + "name": "Dynamics SL Migration", + "version": "28.0.0.0" + }, + { + "id": "b696b4c9-637c-49d1-a806-763ff8f0a20e", + "name": "IRS Forms", + "publisher": "Microsoft", + "version": "28.0.0.0" + } + ], + "idRanges": [ + { + "from": 47200, + "to": 47399 + } + ], + "screenshots": [], + "platform": "28.0.0.0", + "application": "28.0.0.0", + "resourceExposurePolicy": { + "allowDebugging": true, + "allowDownloadingSource": true, + "includeSourceInSymbolFile": true + }, + "features": [ + "NoImplicitWith" + ] +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/app/src/Codeunits/SLCloudMigrationUS.Codeunit.al b/Apps/US/HybridSL_US/app/src/Codeunits/SLCloudMigrationUS.Codeunit.al new file mode 100644 index 0000000000..6476b2b9f3 --- /dev/null +++ b/Apps/US/HybridSL_US/app/src/Codeunits/SLCloudMigrationUS.Codeunit.al @@ -0,0 +1,61 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DataMigration.SL; + +using System.Integration; +using Microsoft.Finance.VAT.Reporting; + +codeunit 47203 "SL Cloud Migration US" +{ + [EventSubscriber(ObjectType::Codeunit, CodeUnit::"Data Migration Mgt.", 'OnAfterMigrationFinished', '', false, false)] + local procedure OnAfterMigrationFinishedSubscriber(var DataMigrationStatus: Record "Data Migration Status"; WasAborted: Boolean; StartTime: DateTime; Retry: Boolean) + var + SLHelperFunctions: Codeunit "SL Helper Functions"; + begin + if not (DataMigrationStatus."Migration Type" = SLHelperFunctions.GetMigrationTypeTxt()) then + exit; + + RunPostMigration(); + end; + + procedure RunPostMigration() + var + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + SLPopulateVendor1099Data: Codeunit "SL Populate Vendor 1099 Data"; + begin + if (SLCompanyAdditionalSettings.GetMigrateCurrent1099YearEnabled()) or (SLCompanyAdditionalSettings.GetMigrateNext1099YearEnabled()) then begin + SetupIRSFormsFeatureIfNeeded(); + BindSubscription(SLPopulateVendor1099Data); + SLPopulateVendor1099Data.Run(); + UnbindSubscription(SLPopulateVendor1099Data); + end; + end; + + local procedure SetupIRSFormsFeatureIfNeeded() + var + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + IRSFormsData: Codeunit "IRS Forms Data"; + SLVendor1099MappingHelpers: Codeunit "SL Vendor 1099 Mapping Helpers"; + ReportingYear: Integer; + Open1099Year: Boolean; + begin + SLCompanyAdditionalSettings.GetSingleInstance(); + if SLCompanyAdditionalSettings.GetMigrateCurrent1099YearEnabled() then begin + ReportingYear := SLVendor1099MappingHelpers.GetCurrent1099YearFromSLAPSetup(); + Open1099Year := SLVendor1099MappingHelpers.GetCurrent1099YearOpenStatus(); + if ReportingYear <> 0 then + if Open1099Year then + IRSFormsData.AddReportingPeriodsWithForms(ReportingYear); + end; + if SLCompanyAdditionalSettings.GetMigrateNext1099YearEnabled() then begin + ReportingYear := SLVendor1099MappingHelpers.GetNext1099YearFromSLAPSetup(); + Open1099Year := SLVendor1099MappingHelpers.GetNext1099YearOpenStatus(); + if ReportingYear <> 0 then + if Open1099Year then + IRSFormsData.AddReportingPeriodsWithForms(ReportingYear); + end; + end; +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/app/src/Codeunits/SLPopulateVendor1099Data.Codeunit.al b/Apps/US/HybridSL_US/app/src/Codeunits/SLPopulateVendor1099Data.Codeunit.al new file mode 100644 index 0000000000..826da4a50f --- /dev/null +++ b/Apps/US/HybridSL_US/app/src/Codeunits/SLPopulateVendor1099Data.Codeunit.al @@ -0,0 +1,647 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DataMigration.SL; + +using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Finance.GeneralLedger.Journal; +using Microsoft.Finance.GeneralLedger.Posting; +using Microsoft.Finance.ReceivablesPayables; +using Microsoft.Finance.VAT.Reporting; +using Microsoft.Foundation.NoSeries; +using Microsoft.Purchases.Payables; +using Microsoft.Purchases.Vendor; +using System.Integration; + +codeunit 47201 "SL Populate Vendor 1099 Data" +{ + EventSubscriberInstance = Manual; + Permissions = tabledata "IRS 1099 Form Box" = R, + tabledata "IRS 1099 Vendor Form Box Setup" = RIM; + + var + DefaultPayablesAccountCode: Code[20]; + PostingDate: Date; + NextYearPostingDate: Date; + SLCurr1099Yr: Integer; + SLNext1099Yr: Integer; + Current1099YearOpen: Boolean; + Next1099YearOpen: Boolean; + GenJournalBatchDescriptionTxt: Label 'SL Vendor 1099 Tax Journal for ', Locked = true; + MessageCodeAbortedTxt: Label 'ABORTED', Locked = true; + MessageCodeCompletedTxt: Label 'COMPLETED', Locked = true; + MessageCodeSkippedTxt: Label 'SKIPPED', Locked = true; + MessageCodeStartTxt: Label 'START', Locked = true; + MessageCodeProcessingTxt: Label 'PROCESSING', Locked = true; + NoSeriesDescriptionTxt: Label 'SL Vendor 1099', Locked = true; + SourceCodeTxt: Label 'GENJNL', Locked = true; + VendorTaxBatchNameTxt: Label 'SL1099', Locked = true; + VendorTaxNoSeriesTxt: Label 'VENDTAX', Locked = true; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post", 'OnBeforeCode', '', false, false)] + local procedure OnBeforeCode(var GenJournalLine: Record "Gen. Journal Line"; var HideDialog: Boolean) + begin + HideDialog := true; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post", 'OnBeforeShowPostResultMessage', '', false, false)] + local procedure OnBeforeShowPostResultMessage(var GenJnlLine: Record "Gen. Journal Line"; TempJnlBatchName: Code[10]; var IsHandled: Boolean) + begin + IsHandled := true; + end; + + trigger OnRun() + var + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + SLVendor1099MappingHelpers: Codeunit "SL Vendor 1099 Mapping Helpers"; + begin + if not SLCompanyAdditionalSettings.GetMigrateCurrent1099YearEnabled() and not SLCompanyAdditionalSettings.GetMigrateNext1099YearEnabled() then begin + LogMessage(MessageCodeAbortedTxt, 'SL Vendor 1099 Data Migration is not enabled on the SL Company Migration Configuration page.'); + exit; + end; + if not SLCompanyAdditionalSettings.GetMigrateCurrent1099YearEnabled() then + LogMessage(MessageCodeSkippedTxt, 'SL Vendor Current 1099 Year Data Migration is not enabled on the SL Company Migration Configuration page.'); + if not SLCompanyAdditionalSettings.GetMigrateNext1099YearEnabled() then + LogMessage(MessageCodeSkippedTxt, 'SL Vendor Next 1099 Year Data Migration is not enabled on the SL Company Migration Configuration page.'); + + SLCurr1099Yr := SLVendor1099MappingHelpers.GetCurrent1099YearFromSLAPSetup(); + if SLCurr1099Yr <> 0 then begin + Current1099YearOpen := SLVendor1099MappingHelpers.GetCurrent1099YearOpenStatus(); + end; + SLNext1099Yr := SLVendor1099MappingHelpers.GetNext1099YearFromSLAPSetup(); + if SLNext1099Yr <> 0 then begin + Next1099YearOpen := SLVendor1099MappingHelpers.GetNext1099YearOpenStatus(); + end; + if not Current1099YearOpen and not Next1099YearOpen then begin + LogMessage(MessageCodeAbortedTxt, 'Neither the SL Current 1099 Year nor the Next 1099 Year is open for data entry.'); + exit; + end; + if not Current1099YearOpen then + LogMessage(MessageCodeSkippedTxt, 'SL Current 1099 Year ' + Format(SLCurr1099Yr) + ' is not open for data entry.'); + + if not Next1099YearOpen then + LogMessage(MessageCodeSkippedTxt, 'SL Next 1099 Year ' + Format(SLNext1099Yr) + ' is not open for data entry.'); + + UpdateAllVendorTaxInfo(); + end; + + local procedure UpdateAllVendorTaxInfo() + begin + Initialize(); + LogMessage(MessageCodeCompletedTxt, 'Completed Initialization for Vendor Tax Info Update'); + if (SLCurr1099Yr <> 0) and (Current1099YearOpen) then begin + LogMessage(MessageCodeStartTxt, 'Starting SL Vendor 1099 Data Migration for Current 1099 Tax Year ' + Format(SLCurr1099Yr)); + UpdateVendorTaxInfo(SLCurr1099Yr, PostingDate); + LogMessage(MessageCodeCompletedTxt, 'Completed SL Vendor 1099 Data Migration for Current 1099 Tax Year ' + Format(SLCurr1099Yr)); + end; + + if (SLNext1099Yr <> 0) and (Next1099YearOpen) then begin + LogMessage(MessageCodeStartTxt, 'Starting SL Vendor 1099 Data Migration for Next 1099 Tax Year ' + Format(SLNext1099Yr)); + UpdateVendorTaxInfo(SLNext1099Yr, NextYearPostingDate); + LogMessage(MessageCodeCompletedTxt, 'Completed SL Vendor 1099 Data Migration for Next 1099 Tax Year ' + Format(SLNext1099Yr)); + end; + + LogMessage(MessageCodeCompletedTxt, 'Completed Vendor Tax Info Update'); + + CleanUp(SLCurr1099Yr); + CleanUp(SLNext1099Yr); + end; + + local procedure Initialize() + var + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + DataMigrationFacadeHelper: Codeunit "Data Migration Facade Helper"; + SLHelperFunctions: Codeunit "SL Helper Functions"; + CurrentYear: Integer; + Day31: Integer; + Month12: Integer; + NextYear: Integer; + VendorTaxBatchCode: Code[10]; + begin + SLCompanyAdditionalSettings.GetSingleInstance(); + CurrentYear := SLCurr1099Yr; + NextYear := SLNext1099Yr; + + CreateMappingsIfNeeded(); + + PostingDate := DMY2Date(31, 12, CurrentYear); + NextYearPostingDate := DMY2Date(31, 12, NextYear); + + CreateNoSeriesIfNeeded(); + DefaultPayablesAccountCode := SLHelperFunctions.GetPostingAccountNumber('PayablesAccount'); + + if (CurrentYear <> 0) and (Current1099YearOpen) then begin + VendorTaxBatchCode := VendorTaxBatchNameTxt + Format(CurrentYear); + CreateGeneralJournalBatchIfNeeded(VendorTaxBatchCode, '', '', CurrentYear); + end; + if (NextYear <> 0) and (Next1099YearOpen) then begin + VendorTaxBatchCode := VendorTaxBatchNameTxt + Format(NextYear); + CreateGeneralJournalBatchIfNeeded(VendorTaxBatchCode, '', '', NextYear); + end; + + DataMigrationFacadeHelper.CreateSourceCodeIfNeeded(SourceCodeTxt); + end; + + local procedure CreateMappingsIfNeeded() + begin + Create1099Mappings(SLCurr1099Yr, Current1099YearOpen); + Create1099Mappings(SLNext1099Yr, Next1099YearOpen); + end; + + local procedure Create1099Mappings(TaxYear: Integer; Open1099Year: Boolean) + var + SLSupportedTaxYear: Record "SL Supported Tax Year"; + SLVendor1099MappingHelpers: Codeunit "SL Vendor 1099 Mapping Helpers"; + begin + if TaxYear = 0 then + exit; + if not Open1099Year then + exit; + if SLSupportedTaxYear.Get(TaxYear) then + exit; + SLVendor1099MappingHelpers.InsertSupportedTaxYear(TaxYear); + + // MISC + SLVendor1099MappingHelpers.InsertMapping(TaxYear, '1', '1M', 'MISC', 'MISC-01'); + SLVendor1099MappingHelpers.InsertMapping(TaxYear, '2', '2M', 'MISC', 'MISC-02'); + SLVendor1099MappingHelpers.InsertMapping(TaxYear, '3', '3M', 'MISC', 'MISC-03'); + SLVendor1099MappingHelpers.InsertMapping(TaxYear, '4', '4M', 'MISC', 'MISC-04'); + SLVendor1099MappingHelpers.InsertMapping(TaxYear, '5', '5M', 'MISC', 'MISC-05'); + SLVendor1099MappingHelpers.InsertMapping(TaxYear, '6', '6M', 'MISC', 'MISC-06'); + SLVendor1099MappingHelpers.InsertMapping(TaxYear, '8', '8M', 'MISC', 'MISC-08'); + SLVendor1099MappingHelpers.InsertMapping(TaxYear, '10', '9M', 'MISC', 'MISC-09'); + SLVendor1099MappingHelpers.InsertMapping(TaxYear, '14', '10M', 'MISC', 'MISC-10'); + SLVendor1099MappingHelpers.InsertMapping(TaxYear, '15', '12M', 'MISC', 'MISC-12'); + SLVendor1099MappingHelpers.InsertMapping(TaxYear, '13', '14M', 'MISC', 'MISC-14'); + SLVendor1099MappingHelpers.InsertMapping(TaxYear, '25', '15M', 'MISC', 'MISC-15'); + + // NEC + SLVendor1099MappingHelpers.InsertMapping(TaxYear, '7', '1N', 'NEC', 'NEC-01'); + + LogMessage(MessageCodeCompletedTxt, 'Completed Box Mappings for Tax Year ' + Format(TaxYear)); + end; + + local procedure CreateNoSeriesIfNeeded() + var + NoSeries: Record "No. Series"; + NoSeriesLine: Record "No. Series Line"; + begin + if not NoSeries.Get(VendorTaxNoSeriesTxt) then begin + NoSeries."Code" := VendorTaxNoSeriesTxt; + NoSeries.Description := NoSeriesDescriptionTxt; + NoSeries."Default Nos." := true; + NoSeries."Manual Nos." := true; + NoSeries.Insert(); + + NoSeriesLine."Series Code" := VendorTaxNoSeriesTxt; + NoSeriesLine."Starting No." := 'VT000000'; + NoSeriesLine."Ending No." := 'VT999999'; + NoSeriesLine."Increment-by No." := 1; + NoSeriesLine.Open := true; + NoSeriesLine.Insert(); + end; + end; + + local procedure UpdateVendorTaxInfo(TaxYear: Integer; YearEndPostingDate: Date) + var + SLVendor: Record "SL Vendor"; + begin + SLVendor.SetRange(Vend1099, 1); + if SLVendor.FindSet() then + repeat + LogVendorMessage(CopyStr(SLVendor.VendId, 1, MaxStrLen(SLVendor.VendId)), MessageCodeProcessingTxt, 'Processing Tax Info for Vendor No.: ' + SLVendor.VendId.Trim() + ', ' + 'Tax Year: ' + Format(TaxYear)); + ProcessVendorTaxInfo(SLVendor, TaxYear, YearEndPostingDate); + until SLVendor.Next() = 0; + end; + + local procedure ProcessVendorTaxInfo(var SLVendor: Record "SL Vendor"; TaxYear: Integer; YearEndPostingDate: Date) + var + Vendor: Record Vendor; + SLVendor1099MappingHelpers: Codeunit "SL Vendor 1099 Mapping Helpers"; + IRS1099Code: Code[10]; + begin + if not Vendor.Get(SLVendor.VendId) then begin + LogVendorMessage(SLVendor.VendId, MessageCodeAbortedTxt, 'Vendor No.: ' + SLVendor.VendId.Trim() + ' not found in Business Central.'); + exit; + end; + + IRS1099Code := SLVendor1099MappingHelpers.GetIRS1099BoxCode(TaxYear, SLVendor.DfltBox); + if IRS1099Code <> '' then + if not VendorAlreadyHasIRS1099CodeAssigned(Vendor, TaxYear) then begin + AssignIRS1099CodeToVendor(Vendor, IRS1099Code, TaxYear); + if SLVendor.TIN.TrimEnd() <> '' then + Vendor.Validate("Federal ID No.", SLVendor.TIN.TrimEnd()); + if SLVendor.S4Future09 = 1 then + Vendor.Validate("FATCA Requirement", true); + if SLVendor.TIN.TrimEnd() <> '' then + Vendor.Validate("Tax Identification Type", Vendor."Tax Identification Type"::"Legal Entity"); + if not Vendor.Modify() then begin + LogLastError(Vendor."No."); + exit; + end; + end else + LogVendorSkipped(Vendor."No.", 'Vendor already has an IRS 1099 Code assigned.'); + + AddVendor1099Values(Vendor, TaxYear, YearEndPostingDate); + end; + + local procedure VendorAlreadyHasIRS1099CodeAssigned(var Vendor: Record Vendor; TaxYear: Integer): Boolean + var + IRS1099VendorFormBoxSetup: Record "IRS 1099 Vendor Form Box Setup"; + begin + exit(IRS1099VendorFormBoxSetup.Get(TaxYear, Vendor."No.")); + end; + + local procedure AssignIRS1099CodeToVendor(var Vendor: Record Vendor; IRS1099Code: Code[10]; TaxYear: Integer): Boolean + var + IRS1099VendorFormBoxSetup: Record "IRS 1099 Vendor Form Box Setup"; + IRS1099FormBox: Record "IRS 1099 Form Box"; + begin + IRS1099FormBox.SetRange("No.", IRS1099Code); + if not IRS1099FormBox.FindFirst() then + exit(false); + + IRS1099VendorFormBoxSetup.Validate("Period No.", Format(TaxYear)); + IRS1099VendorFormBoxSetup.Validate("Vendor No.", Vendor."No."); + IRS1099VendorFormBoxSetup.Validate("Form No.", IRS1099FormBox."Form No."); + IRS1099VendorFormBoxSetup.Validate("Form Box No.", IRS1099Code); + IRS1099VendorFormBoxSetup.Insert(true); + LogVendorDefaultBoxMessage(Vendor."No.", IRS1099Code, MessageCodeCompletedTxt, 'Assigned IRS 1099 Code ' + IRS1099Code + ' to Vendor No.: ' + Vendor."No."); + exit(true); + end; + + local procedure AddVendor1099Values(var Vendor: Record Vendor; TaxYear: Integer; YearEndPostingDate: Date) + var + InvoiceGenJournalLine: Record "Gen. Journal Line"; + PaymentGenJournalLine: Record "Gen. Journal Line"; + NoSeries: Codeunit "No. Series"; + InvoiceDocumentNo: Code[20]; + InvoiceExternalDocumentNo: Code[35]; + IRS1099Code: Code[10]; + PaymentDocumentNo: Code[20]; + PaymentExternalDocumentNo: Code[35]; + VendorPayablesAccountCode: Code[20]; + VendorYear1099AmountDictionary: Dictionary of [Code[10], Decimal]; + TaxAmount: Decimal; + InvoiceCreated: Boolean; + PaymentCreated: Boolean; + begin + BuildVendor1099Entries(Vendor."No.", VendorYear1099AmountDictionary, TaxYear); + LogVendorMessage(Vendor."No.", MessageCodeCompletedTxt, 'Built 1099 Entries for Vendor No.: ' + Vendor."No." + ' for Tax Year: ' + Format(TaxYear)); + if VendorYear1099AmountDictionary.Count() = 0 then begin + LogVendorSkipped(Vendor."No.", 'No 1099 amounts found for Vendor: ' + Vendor."No." + ' for Tax Year: ' + Format(TaxYear)); + exit; + end; + + VendorPayablesAccountCode := GetPostingAccountNo(Vendor); + if VendorPayablesAccountCode = '' then begin + LogErrorMessage(Vendor."No.", 'No Payables Account found.'); + exit; + end; + + foreach IRS1099Code in VendorYear1099AmountDictionary.Keys() do begin + TaxAmount := VendorYear1099AmountDictionary.Get(IRS1099Code); + + if TaxAmount > 0 then begin + // Invoice + InvoiceExternalDocumentNo := CopyStr(IRS1099Code + '-INV-' + Format(TaxYear), 1, MaxStrLen(InvoiceExternalDocumentNo)); + InvoiceDocumentNo := NoSeries.GetNextNo(VendorTaxNoSeriesTxt); + InvoiceCreated := CreateGeneralJournalLine(InvoiceGenJournalLine, + Vendor."No.", + "Gen. Journal Document Type"::Invoice, + InvoiceDocumentNo, + IRS1099Code, + Vendor."No.", + -TaxAmount, + VendorPayablesAccountCode, + IRS1099Code, + InvoiceExternalDocumentNo, + YearEndPostingDate, + TaxYear); + + if InvoiceCreated then + LogVendorDefaultBoxMessage(Vendor."No.", IRS1099Code, MessageCodeCompletedTxt, 'Created Invoice Journal Line for Amount: ' + Format(-TaxAmount)); + + // Payment + PaymentExternalDocumentNo := CopyStr(IRS1099Code + '-PMT-' + Format(TaxYear), 1, MaxStrLen(PaymentExternalDocumentNo)); + PaymentDocumentNo := NoSeries.GetNextNo(VendorTaxNoSeriesTxt); + PaymentCreated := CreateGeneralJournalLine(PaymentGenJournalLine, + Vendor."No.", + "Gen. Journal Document Type"::Payment, + PaymentDocumentNo, + IRS1099Code, + Vendor."No.", + TaxAmount, + VendorPayablesAccountCode, + IRS1099Code, + PaymentExternalDocumentNo, + YearEndPostingDate, + TaxYear); + + if PaymentCreated then + LogVendorDefaultBoxMessage(Vendor."No.", IRS1099Code, MessageCodeCompletedTxt, 'Created Payment Journal Line for Amount: ' + Format(TaxAmount)); + + if InvoiceCreated and PaymentCreated then begin + InvoiceGenJournalLine.SendToPosting(Codeunit::"Gen. Jnl.-Post"); + PaymentGenJournalLine.SendToPosting(Codeunit::"Gen. Jnl.-Post"); + ApplyEntries(Vendor."No.", InvoiceDocumentNo, PaymentDocumentNo, InvoiceExternalDocumentNo, YearEndPostingDate); + end; + end; + end; + end; + + local procedure GetPostingAccountNo(var Vendor: Record Vendor): Code[20] + var + VendorPostingGroup: Record "Vendor Posting Group"; + GLAccount: Record "G/L Account"; + begin + if Vendor."Vendor Posting Group" = '' then + exit(DefaultPayablesAccountCode); + + if VendorPostingGroup.Get(Vendor."Vendor Posting Group") then + if VendorPostingGroup."Payables Account" <> '' then + if GLAccount.Get(VendorPostingGroup."Payables Account") then + exit(GLAccount."No."); + + exit(DefaultPayablesAccountCode); + end; + + local procedure BuildVendor1099Entries(VendorNo: Code[20]; var VendorYear1099AmountDictionary: Dictionary of [Code[10], Decimal]; TaxYear: Integer) + var + SLAPBalances: Record "SL AP_Balances"; + begin + if not SLAPBalances.Get(VendorNo, CompanyName) then + exit; + + ProcessBoxAmount(SLAPBalances.CYBox00, '1', TaxYear, VendorYear1099AmountDictionary); + ProcessBoxAmount(SLAPBalances.CYBox01, '2', TaxYear, VendorYear1099AmountDictionary); + ProcessBoxAmount(SLAPBalances.CYBox02, '3', TaxYear, VendorYear1099AmountDictionary); + ProcessBoxAmount(SLAPBalances.CYBox03, '4', TaxYear, VendorYear1099AmountDictionary); + ProcessBoxAmount(SLAPBalances.CYBox04, '5', TaxYear, VendorYear1099AmountDictionary); + ProcessBoxAmount(SLAPBalances.CYBox05, '6', TaxYear, VendorYear1099AmountDictionary); + ProcessBoxAmount(SLAPBalances.CYBox06, '7', TaxYear, VendorYear1099AmountDictionary); + ProcessBoxAmount(SLAPBalances.CYBox07, '8', TaxYear, VendorYear1099AmountDictionary); + ProcessBoxAmount(SLAPBalances.CYBox09, '10', TaxYear, VendorYear1099AmountDictionary); + ProcessBoxAmount(SLAPBalances.CYBox14, '14', TaxYear, VendorYear1099AmountDictionary); + ProcessBoxAmount(SLAPBalances.CYBox11, '15', TaxYear, VendorYear1099AmountDictionary); + ProcessBoxAmount(SLAPBalances.CYBox13, '13', TaxYear, VendorYear1099AmountDictionary); + ProcessBoxAmount(SLAPBalances.CYBox12, '25', TaxYear, VendorYear1099AmountDictionary); + end; + + local procedure ProcessBoxAmount(BoxAmount: Decimal; SLBoxCode: Text[10]; TaxYear: Integer; var VendorYear1099AmountDictionary: Dictionary of [Code[10], Decimal]) + var + SLVendor1099MappingHelpers: Codeunit "SL Vendor 1099 Mapping Helpers"; + IRS1099Code: Code[10]; + TaxAmount: Decimal; + begin + if BoxAmount <= 0 then + exit; + + IRS1099Code := SLVendor1099MappingHelpers.GetIRS1099BoxCode(TaxYear, SLBoxCode); + if IRS1099Code = '' then + exit; + + if VendorYear1099AmountDictionary.Get(IRS1099Code, TaxAmount) then + VendorYear1099AmountDictionary.Set(IRS1099Code, TaxAmount + BoxAmount) + else + VendorYear1099AmountDictionary.Add(IRS1099Code, BoxAmount); + end; + + local procedure CreateGeneralJournalLine(var GenJournalLine: Record "Gen. Journal Line"; VendorNo: Code[20]; DocumentType: enum "Gen. Journal Document Type"; DocumentNo: Code[20]; + Description: Text[50]; AccountNo: Code[20]; Amount: Decimal; BalancingAccount: Code[20]; IRS1099Code: Code[10]; ExternalDocumentNo: Code[35]; YearEndPostingDate: Date; TaxYear: Integer): boolean + var + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLineCurrent: Record "Gen. Journal Line"; + GenJournalTemplate: Record "Gen. Journal Template"; + IRS1099FormBox: Record "IRS 1099 Form Box"; + LineNum: Integer; + VendorTaxBatchCode: Code[10]; + begin + VendorTaxBatchCode := VendorTaxBatchNameTxt + Format(TaxYear); + GenJournalBatch.Get(CreateGenJournalTemplateIfNeeded(VendorTaxBatchCode, TaxYear), VendorTaxBatchCode); + + GenJournalLineCurrent.SetRange("Journal Template Name", GenJournalBatch."Journal Template Name"); + GenJournalLineCurrent.SetRange("Journal Batch Name", GenJournalBatch.Name); + if GenJournalLineCurrent.FindLast() then + LineNum := GenJournalLineCurrent."Line No." + 10000 + else + LineNum := 10000; + + GenJournalTemplate.Get(GenJournalBatch."Journal Template Name"); + + Clear(GenJournalLine); + GenJournalLine.SetHideValidation(true); + GenJournalLine.Validate("Source Code", GenJournalTemplate."Source Code"); + GenJournalLine.Validate("Journal Template Name", GenJournalBatch."Journal Template Name"); + GenJournalLine.Validate("Journal Batch Name", GenJournalBatch.Name); + GenJournalLine.Validate("Line No.", LineNum); + GenJournalLine.Validate("Account Type", "Gen. Journal Account Type"::Vendor); + GenJournalLine.Validate("Document No.", DocumentNo); + GenJournalLine.Validate("Account No.", AccountNo); + GenJournalLine.Validate(Description, Description); + GenJournalLine.Validate("Document Date", YearEndPostingDate); + GenJournalLine.Validate("Posting Date", YearEndPostingDate); + GenJournalLine.Validate("Due Date", YearEndPostingDate); + GenJournalLine.Validate(Amount, Amount); + GenJournalLine.Validate("Amount (LCY)", Amount); + GenJournalLine.Validate("Currency Code", ''); + GenJournalLine.Validate("Bal. Account Type", GenJournalLine."Bal. Account Type"::"G/L Account"); + GenJournalLine.Validate("Bal. Account No.", BalancingAccount); + GenJournalLine.Validate("Bal. Gen. Posting Type", GenJournalLine."Bal. Gen. Posting Type"::" "); + GenJournalLine.Validate("Bal. Gen. Bus. Posting Group", ''); + GenJournalLine.Validate("Bal. Gen. Prod. Posting Group", ''); + GenJournalLine.Validate("Bal. VAT Prod. Posting Group", ''); + GenJournalLine.Validate("Bal. VAT Bus. Posting Group", ''); + GenJournalLine.Validate("Document Type", DocumentType); + GenJournalLine.Validate("Source Code", SourceCodeTxt); + GenJournalLine.Validate("External Document No.", ExternalDocumentNo); + GenJournalLine.Validate("IRS 1099 Reporting Period", Format(TaxYear)); + + IRS1099FormBox.SetRange("No.", IRS1099Code); + if IRS1099FormBox.FindFirst() then + GenJournalLine.Validate("IRS 1099 Form No.", IRS1099FormBox."Form No."); + + GenJournalLine.Validate("IRS 1099 Form Box No.", IRS1099Code); + GenJournalLine.Validate("IRS 1099 Reporting Amount", Amount); + + if GenJournalLine.Insert(true) then + exit(true) + else + LogLastError(VendorNo); + + exit(false); + end; + + local procedure CreateGenJournalTemplateIfNeeded(GenJournalBatchCode: Code[10]; TaxYear: Integer): Code[10] + var + GenJournalTemplate: Record "Gen. Journal Template"; + begin + GenJournalTemplate.SetRange(Type, GenJournalTemplate.Type::General); + GenJournalTemplate.SetRange(Recurring, false); + if not GenJournalTemplate.FindFirst() then begin + Clear(GenJournalTemplate); + GenJournalTemplate.Validate(Name, GenJournalBatchCode); + GenJournalTemplate.Validate(Type, GenJournalTemplate.Type::General); + GenJournalTemplate.Validate(Recurring, false); + GenJournalTemplate.Validate(Description, GenJournalBatchDescriptionTxt + Format(TaxYear)); + GenJournalTemplate.Insert(true); + end; + exit(GenJournalTemplate.Name); + end; + + local procedure ApplyEntries(VendorNo: Code[20]; InvoiceDocumentNo: Code[20]; PaymentDocumentNo: Code[20]; ExternalDocumentNo: Code[35]; YearEndPostingDate: Date) + var + PaymentVendorLedgerEntry: Record "Vendor Ledger Entry"; + InvoiceVendorLedgerEntry: Record "Vendor Ledger Entry"; + ApplyUnapplyParameters: Record "Apply Unapply Parameters"; + VendEntrySetApplID: Codeunit "Vend. Entry-SetAppl.ID"; + VendEntryApplyPostedEntries: Codeunit "VendEntry-Apply Posted Entries"; + begin + PaymentVendorLedgerEntry.SetRange("Vendor No.", VendorNo); + PaymentVendorLedgerEntry.SetRange("Document Type", "Gen. Journal Document Type"::Payment); + PaymentVendorLedgerEntry.SetRange("Document No.", PaymentDocumentNo); + PaymentVendorLedgerEntry.SetRange("Posting Date", YearEndPostingDate); + if PaymentVendorLedgerEntry.FindFirst() then begin + InvoiceVendorLedgerEntry.SetRange("Vendor No.", VendorNo); + InvoiceVendorLedgerEntry.SetRange("Document Type", "Gen. Journal Document Type"::Invoice); + InvoiceVendorLedgerEntry.SetRange("Document No.", InvoiceDocumentNo); + InvoiceVendorLedgerEntry.SetRange("Posting Date", YearEndPostingDate); + + if InvoiceVendorLedgerEntry.FindFirst() then begin + PaymentVendorLedgerEntry.CalcFields(Amount); + InvoiceVendorLedgerEntry.CalcFields(Amount); + + InvoiceVendorLedgerEntry.Validate("Applying Entry", true); + InvoiceVendorLedgerEntry.Validate("Applies-to ID", PaymentVendorLedgerEntry."Document No."); + InvoiceVendorLedgerEntry.CalcFields("Remaining Amount"); + InvoiceVendorLedgerEntry.Validate("Amount to Apply", InvoiceVendorLedgerEntry.Amount); + Codeunit.Run(Codeunit::"Vend. Entry-Edit", InvoiceVendorLedgerEntry); + + VendEntrySetApplID.SetApplId(PaymentVendorLedgerEntry, InvoiceVendorLedgerEntry, PaymentVendorLedgerEntry."Document No."); + + ApplyUnapplyParameters."Account Type" := "Gen. Journal Account Type"::Vendor; + ApplyUnapplyParameters."Account No." := VendorNo; + ApplyUnapplyParameters."Document Type" := InvoiceVendorLedgerEntry."Document Type"; + ApplyUnapplyParameters."Document No." := InvoiceVendorLedgerEntry."Document No."; + ApplyUnapplyParameters."Posting Date" := YearEndPostingDate; + ApplyUnapplyParameters."External Document No." := ExternalDocumentNo; + VendEntryApplyPostedEntries.Apply(InvoiceVendorLedgerEntry, ApplyUnapplyParameters); + end; + end; + end; + + local procedure CreateGeneralJournalBatchIfNeeded(GeneralJournalBatchCode: Code[10]; NoSeriesCode: Code[20]; PostingNoSeriesCode: Code[20]; TaxYear: Integer) + var + GenJournalBatch: Record "Gen. Journal Batch"; + TemplateName: Code[10]; + begin + TemplateName := CreateGenJournalTemplateIfNeeded(GeneralJournalBatchCode, TaxYear); + GenJournalBatch.SetRange("Journal Template Name", TemplateName); + GenJournalBatch.SetRange(Name, GeneralJournalBatchCode); + GenJournalBatch.SetRange("No. Series", NoSeriesCode); + GenJournalBatch.SetRange("Posting No. Series", PostingNoSeriesCode); + if GenJournalBatch.IsEmpty() then begin + GenJournalBatch.Init(); + GenJournalBatch.Validate("Journal Template Name", TemplateName); + GenJournalBatch.SetupNewBatch(); + GenJournalBatch.Validate(Name, GeneralJournalBatchCode); + GenJournalBatch.Validate(Description, GenJournalBatchDescriptionTxt + Format(TaxYear)); + GenJournalBatch."No. Series" := NoSeriesCode; + GenJournalBatch."Posting No. Series" := PostingNoSeriesCode; + GenJournalBatch.Insert(true); + end; + end; + + local procedure CleanUp(SL1099Year: Integer) + var + GenJournalTemplate: Record "Gen. Journal Template"; + GenJournalBatch: Record "Gen. Journal Batch"; + GenJournalLine: Record "Gen. Journal Line"; + SL1099YearJournalBatchName: Code[20]; + NextYearJournalBatchName: Code[20]; + begin + SL1099YearJournalBatchName := VendorTaxBatchNameTxt + Format(SL1099Year); + GenJournalLine.SetRange("Journal Batch Name", SL1099YearJournalBatchName); + GenJournalLine.SetFilter("Account No.", '<>%1', ''); + if (not GenJournalLine.IsEmpty()) then + exit; + + Clear(GenJournalLine); + GenJournalLine.SetRange("Journal Batch Name", SL1099YearJournalBatchName); + GenJournalLine.SetRange("Account No.", ''); + if not GenJournalLine.IsEmpty() then + GenJournalLine.DeleteAll(); + + GenJournalBatch.SetRange(Name, SL1099YearJournalBatchName); + if GenJournalBatch.FindFirst() then begin + GenJournalBatch.Delete(true); + if (GenJournalTemplate.Get(SL1099YearJournalBatchName)) then + GenJournalTemplate.Delete(true); + end; + end; + + local procedure LogLastError(VendorNo: Code[20]) + var + SL1099MigrationLog: Record "SL 1099 Migration Log"; + begin + SL1099MigrationLog."Vendor No." := VendorNo; + SL1099MigrationLog.IsError := true; + SL1099MigrationLog."Error Code" := CopyStr(GetLastErrorCode(), 1, MaxStrLen(SL1099MigrationLog."Error Code")); + SL1099MigrationLog.SetErrorMessage(GetLastErrorCallStack()); + SL1099MigrationLog.Insert(); + ClearLastError(); + end; + + local procedure LogErrorMessage(VendorNo: Code[20]; ErrorMsg: Text) + var + SL1099MigrationLog: Record "SL 1099 Migration Log"; + begin + SL1099MigrationLog."Vendor No." := VendorNo; + SL1099MigrationLog.IsError := true; + SL1099MigrationLog.SetErrorMessage(ErrorMsg); + SL1099MigrationLog.Insert(); + ClearLastError(); + end; + + local procedure LogVendorSkipped(VendorNo: Code[20]; MessageText: Text[250]) + var + SL1099MigrationLog: Record "SL 1099 Migration Log"; + begin + SL1099MigrationLog."Vendor No." := VendorNo; + SL1099MigrationLog.WasSkipped := true; + SL1099MigrationLog."Message Text" := MessageText; + SL1099MigrationLog.Insert(); + end; + + local procedure LogMessage(MessageCode: Text[100]; MessageText: Text[250]) + var + SL1099MigrationLog: Record "SL 1099 Migration Log"; + begin + SL1099MigrationLog."Message Code" := MessageCode; + SL1099MigrationLog."Message Text" := MessageText; + SL1099MigrationLog.Insert(); + end; + + local procedure LogVendorMessage(VendorNo: Code[20]; MessageCode: Text[100]; MessageText: Text[250]) + var + SL1099MigrationLog: Record "SL 1099 Migration Log"; + begin + SL1099MigrationLog."Vendor No." := VendorNo; + SL1099MigrationLog."Message Code" := MessageCode; + SL1099MigrationLog."Message Text" := MessageText; + SL1099MigrationLog.Insert(); + end; + + local procedure LogVendorDefaultBoxMessage(VendorNo: Code[20]; IRS1099Code: Code[10]; MessageCode: Text[100]; MessageText: Text[250]) + var + SL1099MigrationLog: Record "SL 1099 Migration Log"; + begin + SL1099MigrationLog."Vendor No." := VendorNo; + SL1099MigrationLog."BC IRS 1099 Code" := IRS1099Code; + SL1099MigrationLog."Message Code" := MessageCode; + SL1099MigrationLog."Message Text" := MessageText; + SL1099MigrationLog.Insert(); + end; +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/app/src/Codeunits/SLVendor1099MappingHelpers.Codeunit.al b/Apps/US/HybridSL_US/app/src/Codeunits/SLVendor1099MappingHelpers.Codeunit.al new file mode 100644 index 0000000000..6586284e94 --- /dev/null +++ b/Apps/US/HybridSL_US/app/src/Codeunits/SLVendor1099MappingHelpers.Codeunit.al @@ -0,0 +1,101 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DataMigration.SL; + +codeunit 47202 "SL Vendor 1099 Mapping Helpers" +{ + var + APStringTxt: Label 'AP', Locked = true; + StatusOpenTxt: Label 'O', Locked = true; + + procedure InsertSupportedTaxYear(TaxYear: Integer) + var + SLSupportedTaxYear: Record "SL Supported Tax Year"; + begin + SLSupportedTaxYear."Tax Year" := TaxYear; + SLSupportedTaxYear.Insert(); + end; + + procedure InsertMapping(TaxYear: Integer; SL1099DataValue: Text[2]; SL1099BoxNo: Text[3]; FormType: Text[4]; BCIRS1099Code: Code[10]) + var + SL1099BoxMapping: Record "SL 1099 Box Mapping"; + begin + SL1099BoxMapping."Tax Year" := TaxYear; + SL1099BoxMapping."SL 1099 Box No." := SL1099BoxNo; + SL1099BoxMapping."SL Data Value" := SL1099DataValue; + SL1099BoxMapping."Form Type" := FormType; + SL1099BoxMapping."BC IRS 1099 Code" := BCIRS1099Code; + SL1099BoxMapping.Insert(); + end; + + procedure GetIRS1099BoxCode(TaxYear: Integer; SL1099DataValue: Text[2]): Code[10] + var + SL1099BoxMapping: Record "SL 1099 Box Mapping"; + begin + if SL1099BoxMapping.Get(TaxYear, SL1099DataValue) then + exit(SL1099BoxMapping."BC IRS 1099 Code"); + + exit(''); + end; + + internal procedure GetCurrent1099YearFromSLAPSetup(): Integer + var + SLAPSetup: Record "SL APSetup"; + ReportingYear: Integer; + begin + if not SLAPSetup.Get(APStringTxt) then + exit(0); + + if Evaluate(ReportingYear, SLAPSetup.Curr1099Yr) then + exit(ReportingYear) + else + exit(0); + end; + + internal procedure GetCurrent1099YearOpenStatus(): Boolean + var + SLAPSetup: Record "SL APSetup"; + CurrentYearStatus: Text[1]; + begin + if not SLAPSetup.Get(APStringTxt) then + exit(false); + + CurrentYearStatus := SLAPSetup.CY1099Stat; + if CurrentYearStatus = StatusOpenTxt then + exit(true) + else + exit(false); + end; + + internal procedure GetNext1099YearFromSLAPSetup(): Integer + var + SLAPSetup: Record "SL APSetup"; + ReportingYear: Integer; + begin + if not SLAPSetup.Get(APStringTxt) then + exit(0); + + if Evaluate(ReportingYear, SLAPSetup.Next1099Yr) then + exit(ReportingYear) + else + exit(0); + end; + + internal procedure GetNext1099YearOpenStatus(): Boolean + var + SLAPSetup: Record "SL APSetup"; + NextYearStatus: Text[1]; + begin + if not SLAPSetup.Get(APStringTxt) then + exit(false); + + NextYearStatus := SLAPSetup.NY1099Stat; + if NextYearStatus = StatusOpenTxt then + exit(true) + else + exit(false); + end; +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/app/src/PageExt/SLCompanyAddSettListExt.PageExt.al b/Apps/US/HybridSL_US/app/src/PageExt/SLCompanyAddSettListExt.PageExt.al new file mode 100644 index 0000000000..489b410394 --- /dev/null +++ b/Apps/US/HybridSL_US/app/src/PageExt/SLCompanyAddSettListExt.PageExt.al @@ -0,0 +1,28 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DataMigration.SL; + +pageextension 47201 "SL Company Add. Sett. List Ext" extends "SL Company Add. Settings List" +{ + layout + { + addlast(General) + { + field("Migrate Current 1099 Year"; Rec."Migrate Current 1099 Year") + { + ApplicationArea = All; + Caption = 'Migrate Current 1099 Year'; + ToolTip = 'Specifies whether to migrate current 1099 year data.'; + } + field("Migrate Next 1099 Year"; Rec."Migrate Next 1099 Year") + { + ApplicationArea = All; + Caption = 'Migrate Next 1099 Year'; + ToolTip = 'Specifies whether to migrate next 1099 year data.'; + } + } + } +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/app/src/PageExt/SLMigrationConfigurationExt.PageExt.al b/Apps/US/HybridSL_US/app/src/PageExt/SLMigrationConfigurationExt.PageExt.al new file mode 100644 index 0000000000..a805770d75 --- /dev/null +++ b/Apps/US/HybridSL_US/app/src/PageExt/SLMigrationConfigurationExt.PageExt.al @@ -0,0 +1,58 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DataMigration.SL; + +pageextension 47200 "SL Migration Configuration Ext" extends "SL Migration Configuration" +{ + layout + { + addafter(Classes) + { + group(Vendor1099) + { + Caption = 'Vendor 1099'; + InstructionalText = 'Choose whether to migrate vendor 1099 information from Dynamics SL to Business Central. This option is only available if the Payables module is selected for migration.'; + + field("Migrate Current 1099 Year"; Rec."Migrate Current 1099 Year") + { + ApplicationArea = All; + Caption = 'Migrate Current 1099 Year'; + ToolTip = 'Specifies whether to migrate current 1099 year information.'; + + trigger OnValidate() + var + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + begin + SLCompanyAdditionalSettings.SetFilter(Name, '<>%1', ''); + if SLCompanyAdditionalSettings.FindSet() then + repeat + SLCompanyAdditionalSettings.Validate("Migrate Current 1099 Year", Rec."Migrate Current 1099 Year"); + SLCompanyAdditionalSettings.Modify(); + until SLCompanyAdditionalSettings.Next() = 0; + end; + } + field("Migrate Next 1099 Year"; Rec."Migrate Next 1099 Year") + { + ApplicationArea = All; + Caption = 'Migrate Next 1099 Year'; + ToolTip = 'Specifies whether to migrate next 1099 year information.'; + + trigger OnValidate() + var + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + begin + SLCompanyAdditionalSettings.SetFilter(Name, '<>%1', ''); + if SLCompanyAdditionalSettings.FindSet() then + repeat + SLCompanyAdditionalSettings.Validate("Migrate Next 1099 Year", Rec."Migrate Next 1099 Year"); + SLCompanyAdditionalSettings.Modify(); + until SLCompanyAdditionalSettings.Next() = 0; + end; + } + } + } + } +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/app/src/Pages/SL1099MigrationLog.Page.al b/Apps/US/HybridSL_US/app/src/Pages/SL1099MigrationLog.Page.al new file mode 100644 index 0000000000..dabc75f3f0 --- /dev/null +++ b/Apps/US/HybridSL_US/app/src/Pages/SL1099MigrationLog.Page.al @@ -0,0 +1,88 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DataMigration.SL; + +page 47200 "SL 1099 Migration Log List" +{ + ApplicationArea = All; + Caption = 'SL 1099 Migration Log List'; + PageType = List; + SourceTable = "SL 1099 Migration Log"; + UsageCategory = Administration; + DeleteAllowed = false; + InsertAllowed = false; + ModifyAllowed = false; + + layout + { + area(Content) + { + repeater(General) + { + field("Vendor No."; Rec."Vendor No.") + { + Caption = 'Vendor No.'; + ToolTip = 'Specifies the value of the Vendor No. field.'; + } + field("SL Data Value"; Rec."SL Data Value") + { + Caption = 'SL Data Value'; + ToolTip = 'Specifies the value of the DfltBox field in the SL Vendor table.'; + } + field("SL 1099 Box No."; Rec."SL 1099 Box No.") + { + Caption = 'SL Default 1099 Box No.'; + ToolTip = 'Specifies the SL Default 1099 Box No. based on the SL Data Value field.'; + } + field("Form Type"; Rec."Form Type") + { + Caption = 'Form Type'; + ToolTip = 'Specifies the value of the Form Type field. Value can be MISC or NEC.'; + } + field("BC IRS 1099 Code"; Rec."BC IRS 1099 Code") + { + Caption = 'IRS 1099 Code'; + ToolTip = 'Specifies the value of the IRS 1099 Code in Business Central based on the SL 1099 Box No. field.'; + } + field(WasSkipped; Rec.WasSkipped) + { + Caption = 'Was Skipped'; + ToolTip = 'Specifies whether the record was skipped.'; + } + field(IsError; Rec.IsError) + { + Caption = 'Is Error'; + ToolTip = 'Specifies whether the record has an error.'; + } + field("Error Code"; Rec."Error Code") + { + Caption = 'Error Code'; + ToolTip = 'Specifies the value of the Error Code field.'; + } + field("Error Message"; Rec.GetErrorMessage()) + { + Caption = 'Error Message'; + ToolTip = 'Specifies the value of the Error Message field.'; + } + field("Message Code"; Rec."Message Code") + { + Caption = 'Message Code'; + ToolTip = 'Specifies the value of the Message Code field.'; + } + field("Message Text"; Rec."Message Text") + { + Caption = 'Message Text'; + ToolTip = 'Specifies the value of the Message Text field.'; + } + } + } + } + + procedure FilterOnErrors() + begin + Rec.SetRange(IsError, true); + end; +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/app/src/TableExt/SLCompanyAddSettingsExt.TableExt.al b/Apps/US/HybridSL_US/app/src/TableExt/SLCompanyAddSettingsExt.TableExt.al new file mode 100644 index 0000000000..e9e690444e --- /dev/null +++ b/Apps/US/HybridSL_US/app/src/TableExt/SLCompanyAddSettingsExt.TableExt.al @@ -0,0 +1,79 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DataMigration.SL; + + +tableextension 47200 "SL Company Add. Settings Ext." extends "SL Company Additional Settings" +{ + fields + { + field(57200; "Migrate Current 1099 Year"; Boolean) + { + Caption = 'Migrate Current 1099 Year'; + InitValue = true; + DataClassification = SystemMetadata; + + trigger OnValidate() + begin + if Rec."Migrate Current 1099 Year" then begin + Rec.Validate("Migrate Payables Module", true); + + if not Rec."Migrate GL Module" then + Rec.Validate("Migrate GL Module", true); + end; + end; + } + field(57201; "Migrate Next 1099 Year"; Boolean) + { + Caption = 'Migrate Next 1099 Year'; + InitValue = true; + DataClassification = SystemMetadata; + + trigger OnValidate() + begin + if Rec."Migrate Next 1099 Year" then begin + Rec.Validate("Migrate Payables Module", true); + + if not Rec."Migrate GL Module" then + Rec.Validate("Migrate GL Module", true); + end; + end; + } + + modify("Migrate Payables Module") + { + trigger OnAfterValidate() + begin + if not Rec."Migrate Payables Module" then begin + Rec."Migrate Current 1099 Year" := false; + Rec."Migrate Next 1099 Year" := false; + end; + end; + } + modify("Migrate GL Module") + { + trigger OnAfterValidate() + begin + if not Rec."Migrate GL Module" then begin + Rec."Migrate Current 1099 Year" := false; + Rec."Migrate Next 1099 Year" := false; + end; + end; + } + } + + procedure GetMigrateCurrent1099YearEnabled(): Boolean + begin + GetSingleInstance(); + exit(Rec."Migrate Current 1099 Year"); + end; + + procedure GetMigrateNext1099YearEnabled(): Boolean + begin + GetSingleInstance(); + exit(Rec."Migrate Next 1099 Year"); + end; +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/app/src/Tables/SL1099BoxMapping.Table.al b/Apps/US/HybridSL_US/app/src/Tables/SL1099BoxMapping.Table.al new file mode 100644 index 0000000000..756bf4b975 --- /dev/null +++ b/Apps/US/HybridSL_US/app/src/Tables/SL1099BoxMapping.Table.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.DataMigration.SL; + +table 47201 "SL 1099 Box Mapping" +{ + Caption = 'SL 1099 Box Mapping'; + DataClassification = SystemMetadata; + + Fields + { + field(1; "Tax Year"; Integer) + { + Caption = 'Tax Year'; + NotBlank = true; + TableRelation = "SL Supported Tax Year"."Tax Year"; + } + field(2; "SL Data Value"; Text[2]) + { + Caption = 'SL Data Value'; + } + field(3; "SL 1099 Box No."; Text[3]) + { + Caption = 'SL 1099 Box No.'; + NotBlank = true; + } + field(4; "Form Type"; Text[4]) + { + Caption = 'Form Type'; + NotBlank = true; + } + field(5; "BC IRS 1099 Code"; Code[10]) + { + Caption = 'BC IRS 1099 Code'; + NotBlank = true; + } + } + Keys + { + key(Key1; "Tax Year", "SL Data Value") + { + Clustered = true; + } + } +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/app/src/Tables/SL1099MigrationLog.Table.al b/Apps/US/HybridSL_US/app/src/Tables/SL1099MigrationLog.Table.al new file mode 100644 index 0000000000..a40aad3e4e --- /dev/null +++ b/Apps/US/HybridSL_US/app/src/Tables/SL1099MigrationLog.Table.al @@ -0,0 +1,97 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DataMigration.SL; + +table 47203 "SL 1099 Migration Log" +{ + Caption = 'SL 1099 Migration Log'; + DataClassification = SystemMetadata; + + fields + { + field(1; "Primary Key"; Integer) + { + Caption = 'Primary Key'; + AutoIncrement = true; + } + field(2; "Vendor No."; Code[20]) + { + Caption = 'Vendor No.'; + DataClassification = CustomerContent; + } + field(3; "SL Data Value"; Text[2]) + { + Caption = 'SL Data Value'; + } + field(4; "SL 1099 Box No."; Text[3]) + { + Caption = 'SL 1099 Box No.'; + } + field(5; "Form Type"; Text[4]) + { + Caption = 'Form Type'; + } + field(6; "BC IRS 1099 Code"; Code[10]) + { + Caption = 'BC IRS 1099 Code'; + } + field(7; IsError; Boolean) + { + Caption = 'Error'; + } + field(8; WasSkipped; Boolean) + { + Caption = 'Skipped'; + } + field(9; "Error Code"; Text[100]) + { + Caption = 'Error Code'; + } + field(10; "Error Message"; Blob) + { + Caption = 'Error Message'; + } + field(11; "Message Code"; Text[100]) + { + Caption = 'Message Code'; + } + field(12; "Message Text"; Text[250]) + { + Caption = 'Message Text'; + } + } + + keys + { + key(PK; "Primary Key") + { + Clustered = true; + } + } + + procedure SetErrorMessage(ErrorMessageText: Text) + var + ErrorMessageOutStream: OutStream; + begin + Rec."Error Message".CreateOutStream(ErrorMessageOutStream); + ErrorMessageOutStream.WriteText(ErrorMessageText); + end; + + procedure GetErrorMessage(): Text + var + ErrorMessageBuilder: TextBuilder; + ErrorMessageInStream: InStream; + ErrorMessageLine: Text; + begin + CalcFields(Rec."Error Message"); + Rec."Error Message".CreateInStream(ErrorMessageInStream); + while not ErrorMessageInStream.EOS do begin + ErrorMessageInStream.ReadText(ErrorMessageLine); + ErrorMessageBuilder.AppendLine(ErrorMessageLine); + end; + exit(ErrorMessageBuilder.ToText().Trim()); + end; +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/app/src/Tables/SLSupportedTaxYear.Table.al b/Apps/US/HybridSL_US/app/src/Tables/SLSupportedTaxYear.Table.al new file mode 100644 index 0000000000..2c665cb95e --- /dev/null +++ b/Apps/US/HybridSL_US/app/src/Tables/SLSupportedTaxYear.Table.al @@ -0,0 +1,28 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DataMigration.SL; + +table 47200 "SL Supported Tax Year" +{ + Caption = 'Supported Tax Year'; + DataClassification = SystemMetadata; + + fields + { + field(1; "Tax Year"; Integer) + { + Caption = 'Tax Year'; + NotBlank = true; + } + } + keys + { + key(PK; "Tax Year") + { + Clustered = true; + } + } +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/test/.resources/datasets/input/SLBCGLAccount.csv b/Apps/US/HybridSL_US/test/.resources/datasets/input/SLBCGLAccount.csv new file mode 100644 index 0000000000..d7f0ca98f3 --- /dev/null +++ b/Apps/US/HybridSL_US/test/.resources/datasets/input/SLBCGLAccount.csv @@ -0,0 +1,383 @@ +No.,Name,Search Name,Account Type,Account Category,Income/Balance,Debit/Credit,Direct Posting +000000,GL SUSPENSE ,GL SUSPENSE,Posting,Assets,Balance Sheet,Both,true +1000,Cash - NPP ,CASH - NPP,Posting,Assets,Balance Sheet,Both,true +1001,Cash 1001 ,CASH 1001,Posting,Assets,Balance Sheet,Both,true +1030,Cash-US Dollars-US ,CASH-US DOLLARS-US,Posting,Assets,Balance Sheet,Both,true +1031,Cash US Dollars ,CASH US DOLLARS,Posting,Assets,Balance Sheet,Both,true +1037,Cash US Dollars-Main ,CASH US DOLLARS-MAIN,Posting,Assets,Balance Sheet,Both,true +1038,Cash US Dollars-Investments ,CASH US DOLLARS-INVESTMENTS,Posting,Assets,Balance Sheet,Both,true +1039,Cash US Dollars-Petty Cash ,CASH US DOLLARS-PETTY CASH,Posting,Assets,Balance Sheet,Both,true +1040,Cash US Dollars-Corporate ,CASH US DOLLARS-CORPORATE,Posting,Assets,Balance Sheet,Both,true +1041,Cash Us Dollars-General ,CASH US DOLLARS-GENERAL,Posting,Assets,Balance Sheet,Both,true +1070,Cash-Other ,CASH-OTHER,Posting,Assets,Balance Sheet,Both,true +1110,A/R Trade-USD ,A/R TRADE-USD,Posting,Assets,Balance Sheet,Both,true +1115,AR Holding Account ,AR HOLDING ACCOUNT,Posting,Assets,Balance Sheet,Both,true +1140,Advances in Travel & Expense ,ADVANCES IN TRAVEL & EXPENSE,Posting,Assets,Balance Sheet,Both,true +1150,Due From Company 0010 ,DUE FROM COMPANY 0010,Posting,Assets,Balance Sheet,Both,true +1151,Due From Company 0020 ,DUE FROM COMPANY 0020,Posting,Assets,Balance Sheet,Both,true +1152,Due From Company 0030 ,DUE FROM COMPANY 0030,Posting,Assets,Balance Sheet,Both,true +1153,Due From Company 0040 ,DUE FROM COMPANY 0040,Posting,Assets,Balance Sheet,Both,true +1154,Due From Company 0050 ,DUE FROM COMPANY 0050,Posting,Assets,Balance Sheet,Both,true +1155,Due From Company 0060 ,DUE FROM COMPANY 0060,Posting,Assets,Balance Sheet,Both,true +1156,Due From Company 0070 ,DUE FROM COMPANY 0070,Posting,Assets,Balance Sheet,Both,true +1157,Due From Company 0080 ,DUE FROM COMPANY 0080,Posting,Assets,Balance Sheet,Both,true +1160,A/R Inter-Company-USD ,A/R INTER-COMPANY-USD,Posting,Assets,Balance Sheet,Both,true +1170,Notes Receivable-USD ,NOTES RECEIVABLE-USD,Posting,Assets,Balance Sheet,Both,true +1171,Notes Receivable-IntCo-0010 ,NOTES RECEIVABLE-INTCO-0010,Posting,Assets,Balance Sheet,Both,true +1173,Notes Receivable-IntCo-0020 ,NOTES RECEIVABLE-INTCO-0020,Posting,Assets,Balance Sheet,Both,true +1190,A/R Holding-USD ,A/R HOLDING-USD,Posting,Assets,Balance Sheet,Both,true +1191,Miscellaneous Receivables ,MISCELLANEOUS RECEIVABLES,Posting,Assets,Balance Sheet,Both,true +1192,Unbilled Receivables - Expense,UNBILLED RECEIVABLES - EXPENSE,Posting,Assets,Balance Sheet,Both,true +1210,Inventory-Merchandise ,INVENTORY-MERCHANDISE,Posting,Assets,Balance Sheet,Both,true +1220,Inventory-Raw Materials ,INVENTORY-RAW MATERIALS,Posting,Assets,Balance Sheet,Both,true +1225,Inventory-WIP ,INVENTORY-WIP,Posting,Assets,Balance Sheet,Both,true +1226,Project Materials ,PROJECT MATERIALS,Posting,Assets,Balance Sheet,Both,true +1230,Inventory-Components ,INVENTORY-COMPONENTS,Posting,Assets,Balance Sheet,Both,true +12301,WIP: Materials ,WIP: MATERIALS,Posting,Assets,Balance Sheet,Both,true +12302,WIP: Labor ,WIP: LABOR,Posting,Assets,Balance Sheet,Both,true +12303,WIP: Subcontract ,WIP: SUBCONTRACT,Posting,Assets,Balance Sheet,Both,true +12304,WIP: Other Direct Costs ,WIP: OTHER DIRECT COSTS,Posting,Assets,Balance Sheet,Both,true +12305,WIP: Overhead ,WIP: OVERHEAD,Posting,Assets,Balance Sheet,Both,true +12309,WIP: Rollup Variance ,WIP: ROLLUP VARIANCE,Posting,Assets,Balance Sheet,Both,true +1231,Inventory-Components-1 ,INVENTORY-COMPONENTS-1,Posting,Assets,Balance Sheet,Both,true +12311,Project WIP: Materials ,PROJECT WIP: MATERIALS,Posting,Assets,Balance Sheet,Both,true +12312,Project WIP: Labor ,PROJECT WIP: LABOR,Posting,Assets,Balance Sheet,Both,true +12313,Project WIP: Subcontract ,PROJECT WIP: SUBCONTRACT,Posting,Assets,Balance Sheet,Both,true +12314,Project WIP: Other Direct Cost,PROJECT WIP: OTHER DIRECT COST,Posting,Assets,Balance Sheet,Both,true +12315,Project WIP: Overhead ,PROJECT WIP: OVERHEAD,Posting,Assets,Balance Sheet,Both,true +12319,Project WIP: Rollup Variance ,PROJECT WIP: ROLLUP VARIANCE,Posting,Assets,Balance Sheet,Both,true +1232,Inventory-Components-2 ,INVENTORY-COMPONENTS-2,Posting,Assets,Balance Sheet,Both,true +1233,Inventory-Components-3 ,INVENTORY-COMPONENTS-3,Posting,Assets,Balance Sheet,Both,true +1234,Inventory-Components-4 ,INVENTORY-COMPONENTS-4,Posting,Assets,Balance Sheet,Both,true +1235,Inventory-Components-5 ,INVENTORY-COMPONENTS-5,Posting,Assets,Balance Sheet,Both,true +1236,Inventory-Components-6 ,INVENTORY-COMPONENTS-6,Posting,Assets,Balance Sheet,Both,true +1237,Inventory-Components-7 ,INVENTORY-COMPONENTS-7,Posting,Assets,Balance Sheet,Both,true +1240,Inventory-Fin. Goods ,INVENTORY-FIN. GOODS,Posting,Assets,Balance Sheet,Both,true +1241,Inventory-Fin. Goods-1 ,INVENTORY-FIN. GOODS-1,Posting,Assets,Balance Sheet,Both,true +1242,Inventory-Fin. Goods-2 ,INVENTORY-FIN. GOODS-2,Posting,Assets,Balance Sheet,Both,true +1243,Inventory-Fin. Goods-3 ,INVENTORY-FIN. GOODS-3,Posting,Assets,Balance Sheet,Both,true +1244,Inventory-Fin. Goods-4 ,INVENTORY-FIN. GOODS-4,Posting,Assets,Balance Sheet,Both,true +1245,Inventory-Fin. Goods-5 ,INVENTORY-FIN. GOODS-5,Posting,Assets,Balance Sheet,Both,true +1246,Inventory-Fin. Goods-6 ,INVENTORY-FIN. GOODS-6,Posting,Assets,Balance Sheet,Both,true +1247,Inventory-Fin. Goods-7 ,INVENTORY-FIN. GOODS-7,Posting,Assets,Balance Sheet,Both,true +1250,Supplies ,SUPPLIES,Posting,Assets,Balance Sheet,Both,true +1251,Prepaid Supplies ,PREPAID SUPPLIES,Posting,Assets,Balance Sheet,Both,true +1310,Prepaid Insurance ,PREPAID INSURANCE,Posting,Assets,Balance Sheet,Both,true +1320,Prepaid Interest ,PREPAID INTEREST,Posting,Assets,Balance Sheet,Both,true +1330,Deposits Refundable ,DEPOSITS REFUNDABLE,Posting,Assets,Balance Sheet,Both,true +1340,Bid Deposits ,BID DEPOSITS,Posting,Assets,Balance Sheet,Both,true +1565,SWE Test ,SWE TEST,Posting,Assets,Balance Sheet,Both,true +1601,Currency Gain - Unrealized ,CURRENCY GAIN - UNREALIZED,Posting,Assets,Balance Sheet,Both,true +1602,Currency Gain - Realized ,CURRENCY GAIN - REALIZED,Posting,Assets,Balance Sheet,Both,true +1610,Land ,LAND,Posting,Assets,Balance Sheet,Both,true +1620,Buildings ,BUILDINGS,Posting,Assets,Balance Sheet,Both,true +1621,Accumulated Depreciation ,ACCUMULATED DEPRECIATION,Posting,Assets,Balance Sheet,Both,true +1630,Furniture & Fixtures ,FURNITURE & FIXTURES,Posting,Assets,Balance Sheet,Both,true +1631,Less: Accumulated Deprec. ,LESS: ACCUMULATED DEPREC.,Posting,Assets,Balance Sheet,Both,true +1640,Machines & Equipment ,MACHINES & EQUIPMENT,Posting,Assets,Balance Sheet,Both,true +1641,Less: Accumulated Deprec. ,LESS: ACCUMULATED DEPREC.,Posting,Assets,Balance Sheet,Both,true +1650,Automobiles ,AUTOMOBILES,Posting,Assets,Balance Sheet,Both,true +1651,Less: Accumulated Deprec. ,LESS: ACCUMULATED DEPREC.,Posting,Assets,Balance Sheet,Both,true +1660,Trucks ,TRUCKS,Posting,Assets,Balance Sheet,Both,true +1661,Less: Accumulated Deprec. ,LESS: ACCUMULATED DEPREC.,Posting,Assets,Balance Sheet,Both,true +1670,Office Equipment ,OFFICE EQUIPMENT,Posting,Assets,Balance Sheet,Both,true +1671,Less: Accumulated Deprec. ,LESS: ACCUMULATED DEPREC.,Posting,Assets,Balance Sheet,Both,true +1680,Leaseholds ,LEASEHOLDS,Posting,Assets,Balance Sheet,Both,true +1681,Less: Accumulated Deprec. ,LESS: ACCUMULATED DEPREC.,Posting,Assets,Balance Sheet,Both,true +1810,Prepaid Insurance ,PREPAID INSURANCE,Posting,Assets,Balance Sheet,Both,true +1820,Prepaid Interest ,PREPAID INTEREST,Posting,Assets,Balance Sheet,Both,true +1830,Prepaid Rent ,PREPAID RENT,Posting,Assets,Balance Sheet,Both,true +1840,Organizational Expense ,ORGANIZATIONAL EXPENSE,Posting,Assets,Balance Sheet,Both,true +1850,Deferred Charges ,DEFERRED CHARGES,Posting,Assets,Balance Sheet,Both,true +1860,Deposits ,DEPOSITS,Posting,Assets,Balance Sheet,Both,true +1901,Due to/from NPP ,DUE TO/FROM NPP,Posting,Assets,Balance Sheet,Both,true +1910,Investments Treasuries ,INVESTMENTS TREASURIES,Posting,Assets,Balance Sheet,Both,true +1911,Investments Money Market ,INVESTMENTS MONEY MARKET,Posting,Assets,Balance Sheet,Both,true +1912,Investments Banks ,INVESTMENTS BANKS,Posting,Assets,Balance Sheet,Both,true +1913,Investments Stocks ,INVESTMENTS STOCKS,Posting,Assets,Balance Sheet,Both,true +1914,Investments Stocks Foreign ,INVESTMENTS STOCKS FOREIGN,Posting,Assets,Balance Sheet,Both,true +1915,Investments Miscellanous ,INVESTMENTS MISCELLANOUS,Posting,Assets,Balance Sheet,Both,true +1916,Accrued Investment Income ,ACCRUED INVESTMENT INCOME,Posting,Assets,Balance Sheet,Both,true +1917,Accrued Misc. Receivables ,ACCRUED MISC. RECEIVABLES,Posting,Assets,Balance Sheet,Both,true +1918,Accrued Income Misc. ,ACCRUED INCOME MISC.,Posting,Assets,Balance Sheet,Both,true +1920,Goodwill ,GOODWILL,Posting,Assets,Balance Sheet,Both,true +1990,Due to/from 401K ,DUE TO/FROM 401K,Posting,Assets,Balance Sheet,Both,true +1999,Out of Balance Correction ,OUT OF BALANCE CORRECTION,Posting,Assets,Balance Sheet,Both,true +2000,AP - NPP ,AP - NPP,Posting,Liabilities,Balance Sheet,Both,true +2001,Due to Company 0010 ,DUE TO COMPANY 0010,Posting,Liabilities,Balance Sheet,Both,true +2002,Due to Company 0020 ,DUE TO COMPANY 0020,Posting,Liabilities,Balance Sheet,Both,true +2003,Due to Company 0030 ,DUE TO COMPANY 0030,Posting,Liabilities,Balance Sheet,Both,true +2004,Due to Company 0040 ,DUE TO COMPANY 0040,Posting,Liabilities,Balance Sheet,Both,true +2005,Due to Company 0050 ,DUE TO COMPANY 0050,Posting,Liabilities,Balance Sheet,Both,true +2006,Due to Company 0060 ,DUE TO COMPANY 0060,Posting,Liabilities,Balance Sheet,Both,true +2007,Due to Company 0070 ,DUE TO COMPANY 0070,Posting,Liabilities,Balance Sheet,Both,true +2008,Due to Company 0080 ,DUE TO COMPANY 0080,Posting,Liabilities,Balance Sheet,Both,true +2010,Inter-Company A/P-USD ,INTER-COMPANY A/P-USD,Posting,Liabilities,Balance Sheet,Both,true +2020,Mortgage Payable-Current ,MORTGAGE PAYABLE-CURRENT,Posting,Liabilities,Balance Sheet,Both,true +2025,Bonds Payable ,BONDS PAYABLE,Posting,Liabilities,Balance Sheet,Both,true +2030,Notes Payable-Demand ,NOTES PAYABLE-DEMAND,Posting,Liabilities,Balance Sheet,Both,true +2031,Notes Payable-Line of Credit ,NOTES PAYABLE-LINE OF CREDIT,Posting,Liabilities,Balance Sheet,Both,true +2032,Notes Payable- Suppliers ,NOTES PAYABLE- SUPPLIERS,Posting,Liabilities,Balance Sheet,Both,true +2033,Notes Payable-Other Banks ,NOTES PAYABLE-OTHER BANKS,Posting,Liabilities,Balance Sheet,Both,true +2040,Notes Payable-Current ,NOTES PAYABLE-CURRENT,Posting,Liabilities,Balance Sheet,Both,true +2050,A/P Trade-USD ,A/P TRADE-USD,Posting,Liabilities,Balance Sheet,Both,true +2060,A/P-Other-USD ,A/P-OTHER-USD,Posting,Liabilities,Balance Sheet,Both,true +2065,A/P-Misc-USD ,A/P-MISC-USD,Posting,Liabilities,Balance Sheet,Both,true +2070,A/P-Customer Refunds ,A/P-CUSTOMER REFUNDS,Posting,Liabilities,Balance Sheet,Both,true +2071,A/R Customer Refunds ,A/R CUSTOMER REFUNDS,Posting,Liabilities,Balance Sheet,Both,true +2072,A/R Prepayment ,A/R PREPAYMENT,Posting,Liabilities,Balance Sheet,Both,true +2075,Customer Deposits ,CUSTOMER DEPOSITS,Posting,Liabilities,Balance Sheet,Both,true +2080,Contracts Payable-Current ,CONTRACTS PAYABLE-CURRENT,Posting,Liabilities,Balance Sheet,Both,true +2090,Construction Advances ,CONSTRUCTION ADVANCES,Posting,Liabilities,Balance Sheet,Both,true +2100,Benefits Payable ,BENEFITS PAYABLE,Posting,Liabilities,Balance Sheet,Both,true +2110,Federal Tax Withheld ,FEDERAL TAX WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2120,FICA Withheld ,FICA WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2121,Employee Medicare FICA ,EMPLOYEE MEDICARE FICA,Posting,Liabilities,Balance Sheet,Both,true +2130,FICA-Employer ,FICA-EMPLOYER,Posting,Liabilities,Balance Sheet,Both,true +2131,Employer Medicare FICA ,EMPLOYER MEDICARE FICA,Posting,Liabilities,Balance Sheet,Both,true +2140,State Income Tax Withheld ,STATE INCOME TAX WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2150,Local Income Tax Withheld ,LOCAL INCOME TAX WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2160,Federal Unemploy. Withheld ,FEDERAL UNEMPLOY. WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2170,State Unemploy. Withheld ,STATE UNEMPLOY. WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2180,Workers' Compensation ,WORKERS' COMPENSATION,Posting,Liabilities,Balance Sheet,Both,true +2190,Misc. 1 Withheld ,MISC. 1 WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2200,Misc. 2 Withheld ,MISC. 2 WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2210,Misc. 3 Withheld ,MISC. 3 WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2220,Misc. 4 Withheld ,MISC. 4 WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2230,Misc. 5 Withheld ,MISC. 5 WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2240,Sales Tax Payable ,SALES TAX PAYABLE,Posting,Liabilities,Balance Sheet,Both,true +2241,Sales Tax Payable - City ,SALES TAX PAYABLE - CITY,Posting,Liabilities,Balance Sheet,Both,true +2242,Sales Tax Payable - County ,SALES TAX PAYABLE - COUNTY,Posting,Liabilities,Balance Sheet,Both,true +2243,Sales Tax Payable - State ,SALES TAX PAYABLE - STATE,Posting,Liabilities,Balance Sheet,Both,true +2245,Sales Tax Payable - AvaTax ,SALES TAX PAYABLE - AVATAX,Posting,Liabilities,Balance Sheet,Both,true +2300,Accrued A/P Trade-USD ,ACCRUED A/P TRADE-USD,Posting,Liabilities,Balance Sheet,Both,true +2301,Accrued A/P Trade-CAD ,ACCRUED A/P TRADE-CAD,Posting,Liabilities,Balance Sheet,Both,true +2302,Accrued A/P Trade-FRF ,ACCRUED A/P TRADE-FRF,Posting,Liabilities,Balance Sheet,Both,true +2303,Accrued A/P Trade-DEM ,ACCRUED A/P TRADE-DEM,Posting,Liabilities,Balance Sheet,Both,true +2304,Accrued A/P Trade-GBP ,ACCRUED A/P TRADE-GBP,Posting,Liabilities,Balance Sheet,Both,true +2305,Accrued A/P Trade-LRA ,ACCRUED A/P TRADE-LRA,Posting,Liabilities,Balance Sheet,Both,true +2310,Accrued Interest ,ACCRUED INTEREST,Posting,Liabilities,Balance Sheet,Both,true +2320,Accrued Rent ,ACCRUED RENT,Posting,Liabilities,Balance Sheet,Both,true +2330,Accrued Wages ,ACCRUED WAGES,Posting,Liabilities,Balance Sheet,Both,true +23301,Applied Labor ,APPLIED LABOR,Posting,Liabilities,Balance Sheet,Both,true +2340,Accrued Insurance ,ACCRUED INSURANCE,Posting,Liabilities,Balance Sheet,Both,true +2350,Accrued Real Estate Taxes ,ACCRUED REAL ESTATE TAXES,Posting,Liabilities,Balance Sheet,Both,true +2360,Federal Taxes Payable ,FEDERAL TAXES PAYABLE,Posting,Liabilities,Balance Sheet,Both,true +2370,State Taxes Payable ,STATE TAXES PAYABLE,Posting,Liabilities,Balance Sheet,Both,true +2410,Dividends Paid ,DIVIDENDS PAID,Posting,Liabilities,Balance Sheet,Both,true +2510,Mortgage Payable ,MORTGAGE PAYABLE,Posting,Liabilities,Balance Sheet,Both,true +2520,Long Term Notes Payable ,LONG TERM NOTES PAYABLE,Posting,Liabilities,Balance Sheet,Both,true +2530,Contracts Payable-LT ,CONTRACTS PAYABLE-LT,Posting,Liabilities,Balance Sheet,Both,true +2540,Land Contracts Payable ,LAND CONTRACTS PAYABLE,Posting,Liabilities,Balance Sheet,Both,true +2550,Shareholder Loans ,SHAREHOLDER LOANS,Posting,Liabilities,Balance Sheet,Both,true +2560,Officer Loans ,OFFICER LOANS,Posting,Liabilities,Balance Sheet,Both,true +2610,Deferred Income ,DEFERRED INCOME,Posting,Liabilities,Balance Sheet,Both,true +2710,Issued Common Stock ,ISSUED COMMON STOCK,Posting,Liabilities,Balance Sheet,Both,true +2720,Paid in Capital ,PAID IN CAPITAL,Posting,Liabilities,Balance Sheet,Both,true +2730,Treasury Stock ,TREASURY STOCK,Posting,Liabilities,Balance Sheet,Both,true +2740,Retained Earnings ,RETAINED EARNINGS,Posting,Liabilities,Balance Sheet,Both,true +2750,YTD Net Income ,YTD NET INCOME,Posting,Liabilities,Balance Sheet,Both,true +2760,Variance ,VARIANCE,Posting,Liabilities,Balance Sheet,Both,true +2800,SWE Test ,SWE TEST,Posting,Liabilities,Balance Sheet,Both,true +2810,SWE Test ,SWE TEST,Posting,Liabilities,Balance Sheet,Both,true +2900,Pension Accrued ,PENSION ACCRUED,Posting,Liabilities,Balance Sheet,Both,true +2901,401k Accrued ,401K ACCRUED,Posting,Liabilities,Balance Sheet,Both,true +3020,Inter-Company Sales ,INTER-COMPANY SALES,Posting,Income,Income Statement,Both,true +3030,Sales/Income ,SALES/INCOME,Posting,Income,Income Statement,Both,true +3031,Sales/Income Type 1 ,SALES/INCOME TYPE 1,Posting,Income,Income Statement,Both,true +3032,Sales/Income Type 2 ,SALES/INCOME TYPE 2,Posting,Income,Income Statement,Both,true +3033,Sales/Income Type 3 ,SALES/INCOME TYPE 3,Posting,Income,Income Statement,Both,true +3034,Sales/Income Type 4 ,SALES/INCOME TYPE 4,Posting,Income,Income Statement,Both,true +3035,Sales/Income Type 5 ,SALES/INCOME TYPE 5,Posting,Income,Income Statement,Both,true +3036,Sales/Income Type 6 ,SALES/INCOME TYPE 6,Posting,Income,Income Statement,Both,true +3037,Sales/Income Type 7 ,SALES/INCOME TYPE 7,Posting,Income,Income Statement,Both,true +3042,Writeup/Writedown Labor ,WRITEUP/WRITEDOWN LABOR,Posting,Income,Income Statement,Both,true +3044,Writeup/Writedown Expenses ,WRITEUP/WRITEDOWN EXPENSES,Posting,Income,Income Statement,Both,true +3050,Discounts Allowed-Trade ,DISCOUNTS ALLOWED-TRADE,Posting,Income,Income Statement,Both,true +3070,Freight Income ,FREIGHT INCOME,Posting,Income,Income Statement,Both,true +3080,Miscellaneous Income ,MISCELLANEOUS INCOME,Posting,Income,Income Statement,Both,true +3090,Customer Finance Charges ,CUSTOMER FINANCE CHARGES,Posting,Income,Income Statement,Both,true +3100,Miscellaneous Income ,MISCELLANEOUS INCOME,Posting,Income,Income Statement,Both,true +3220,Proceeds from Securities ,PROCEEDS FROM SECURITIES,Posting,Income,Income Statement,Both,true +4010,Beginning Inventory ,BEGINNING INVENTORY,Posting,Expense,Income Statement,Both,true +4020,Inter-Company Purchases ,INTER-COMPANY PURCHASES,Posting,Expense,Income Statement,Both,true +4030,Merchandise Purchases ,MERCHANDISE PURCHASES,Posting,Expense,Income Statement,Both,true +4040,Discounts Taken ,DISCOUNTS TAKEN,Posting,Expense,Income Statement,Both,true +4050,Productive Labor ,PRODUCTIVE LABOR,Posting,Expense,Income Statement,Both,true +4051,Premium Labor ,PREMIUM LABOR,Posting,Expense,Income Statement,Both,true +4052,Labor - Direct ,LABOR - DIRECT,Posting,Expense,Income Statement,Both,true +4053,"Labor - Direct, Fixed ","LABOR - DIRECT, FIXED",Posting,Expense,Income Statement,Both,true +4054,Labor - Indirect ,LABOR - INDIRECT,Posting,Expense,Income Statement,Both,true +4055,"Labor - Indirect, Fixed ","LABOR - INDIRECT, FIXED",Posting,Expense,Income Statement,Both,true +4059,Fringe ,FRINGE,Posting,Expense,Income Statement,Both,true +4060,Vacation-Holiday Pay ,VACATION-HOLIDAY PAY,Posting,Expense,Income Statement,Both,true +4065,Sick Leave ,SICK LEAVE,Posting,Expense,Income Statement,Both,true +4070,Payroll Taxes ,PAYROLL TAXES,Posting,Expense,Income Statement,Both,true +4080,Payroll Benefits ,PAYROLL BENEFITS,Posting,Expense,Income Statement,Both,true +4090,Sub-Contracts ,SUB-CONTRACTS,Posting,Expense,Income Statement,Both,true +4091,Federal Tax Expense ,FEDERAL TAX EXPENSE,Posting,Expense,Income Statement,Both,true +4092,State Taxes Payable ,STATE TAXES PAYABLE,Posting,Expense,Income Statement,Both,true +4100,Freight-In ,FREIGHT-IN,Posting,Expense,Income Statement,Both,true +4110,Supplies ,SUPPLIES,Posting,Expense,Income Statement,Both,true +4120,Deprec.-Production Equip. ,DEPREC.-PRODUCTION EQUIP.,Posting,Expense,Income Statement,Both,true +4130,Utilities-Production ,UTILITIES-PRODUCTION,Posting,Expense,Income Statement,Both,true +4140,Inventory Increase/Decrease ,INVENTORY INCREASE/DECREASE,Posting,Expense,Income Statement,Both,true +4141,Inventory Issue (Non-Project) ,INVENTORY ISSUE (NON-PROJECT),Posting,Expense,Income Statement,Both,true +4142,Inventory Issue (Project) ,INVENTORY ISSUE (PROJECT),Posting,Expense,Income Statement,Both,true +4150,Cost of Goods Sold ,COST OF GOODS SOLD,Posting,Expense,Income Statement,Both,true +41501,Late Charges ,LATE CHARGES,Posting,Expense,Income Statement,Both,true +4151,Cost of Goods Sold-Type 1 ,COST OF GOODS SOLD-TYPE 1,Posting,Expense,Income Statement,Both,true +4152,Cost of Goods Sold-Type 2 ,COST OF GOODS SOLD-TYPE 2,Posting,Expense,Income Statement,Both,true +4153,Cost of Goods Sold-Type 3 ,COST OF GOODS SOLD-TYPE 3,Posting,Expense,Income Statement,Both,true +4154,Cost of Goods Sold-Type 4 ,COST OF GOODS SOLD-TYPE 4,Posting,Expense,Income Statement,Both,true +4155,Cost of Goods Sold-Type 5 ,COST OF GOODS SOLD-TYPE 5,Posting,Expense,Income Statement,Both,true +4156,Cost of Goods Sold-Type 6 ,COST OF GOODS SOLD-TYPE 6,Posting,Expense,Income Statement,Both,true +4157,Cost of Goods Sold-Type 7 ,COST OF GOODS SOLD-TYPE 7,Posting,Expense,Income Statement,Both,true +4200,Ending Inventory ,ENDING INVENTORY,Posting,Expense,Income Statement,Both,true +4210,Inventory Revaluation ,INVENTORY REVALUATION,Posting,Expense,Income Statement,Both,true +4220,Clearing-Other Direct Costs ,CLEARING-OTHER DIRECT COSTS,Posting,Expense,Income Statement,Both,true +4230,Clearing-Material O/H ,CLEARING-MATERIAL O/H,Posting,Expense,Income Statement,Both,true +4240,Clearing-Machine O/H ,CLEARING-MACHINE O/H,Posting,Expense,Income Statement,Both,true +4290,Clearing-Landed Costs ,CLEARING-LANDED COSTS,Posting,Expense,Income Statement,Both,true +4300,Variance-Direct Material ,VARIANCE-DIRECT MATERIAL,Posting,Expense,Income Statement,Both,true +43001,Variance-Rollup Variance ,VARIANCE-ROLLUP VARIANCE,Posting,Expense,Income Statement,Both,true +4310,Variance-Direct Labor ,VARIANCE-DIRECT LABOR,Posting,Expense,Income Statement,Both,true +4320,Variance-Other Direct Cost ,VARIANCE-OTHER DIRECT COST,Posting,Expense,Income Statement,Both,true +4330,Variance-Material O/H ,VARIANCE-MATERIAL O/H,Posting,Expense,Income Statement,Both,true +4340,Variance-Labor O/H ,VARIANCE-LABOR O/H,Posting,Expense,Income Statement,Both,true +4350,Variance-Machine O/H ,VARIANCE-MACHINE O/H,Posting,Expense,Income Statement,Both,true +4360,Scrap Var-Direct Material ,SCRAP VAR-DIRECT MATERIAL,Posting,Expense,Income Statement,Both,true +4370,Scrap Var-Direct Labor ,SCRAP VAR-DIRECT LABOR,Posting,Expense,Income Statement,Both,true +4380,Scrap Var-Other Direct Cost ,SCRAP VAR-OTHER DIRECT COST,Posting,Expense,Income Statement,Both,true +4390,Scrap Var-Material O/H ,SCRAP VAR-MATERIAL O/H,Posting,Expense,Income Statement,Both,true +4400,Scrap Var-Labor O/H ,SCRAP VAR-LABOR O/H,Posting,Expense,Income Statement,Both,true +4410,Scrap Var-Machine O/H ,SCRAP VAR-MACHINE O/H,Posting,Expense,Income Statement,Both,true +4500,Std Chg Var-Dir Material ,STD CHG VAR-DIR MATERIAL,Posting,Expense,Income Statement,Both,true +4510,Std Chg Var-Dir Labor ,STD CHG VAR-DIR LABOR,Posting,Expense,Income Statement,Both,true +4520,Std Chg Var-Other Direct ,STD CHG VAR-OTHER DIRECT,Posting,Expense,Income Statement,Both,true +4530,Std Chg Var-Material O/H ,STD CHG VAR-MATERIAL O/H,Posting,Expense,Income Statement,Both,true +4540,Std Chg Var-Labor O/H ,STD CHG VAR-LABOR O/H,Posting,Expense,Income Statement,Both,true +4550,Std Chg Var-Machine O/H ,STD CHG VAR-MACHINE O/H,Posting,Expense,Income Statement,Both,true +4610,Effic Var-Direct Labor ,EFFIC VAR-DIRECT LABOR,Posting,Expense,Income Statement,Both,true +4710,Rate Var-Direct Labor ,RATE VAR-DIRECT LABOR,Posting,Expense,Income Statement,Both,true +4790,Variance-Landed Costs ,VARIANCE-LANDED COSTS,Posting,Expense,Income Statement,Both,true +5010,Officers Salaries ,OFFICERS SALARIES,Posting,Expense,Income Statement,Both,true +5020,Office Salaries ,OFFICE SALARIES,Posting,Expense,Income Statement,Both,true +5030,Sales Salaries ,SALES SALARIES,Posting,Expense,Income Statement,Both,true +5040,Shop Wages ,SHOP WAGES,Posting,Expense,Income Statement,Both,true +5050,Delivery Wages ,DELIVERY WAGES,Posting,Expense,Income Statement,Both,true +5060,Maintenance Wages ,MAINTENANCE WAGES,Posting,Expense,Income Statement,Both,true +5070,Warehouse Wages ,WAREHOUSE WAGES,Posting,Expense,Income Statement,Both,true +5080,Vacation ,VACATION,Posting,Expense,Income Statement,Both,true +5090,Payroll Taxes ,PAYROLL TAXES,Posting,Expense,Income Statement,Both,true +5100,Payroll Benefits ,PAYROLL BENEFITS,Posting,Expense,Income Statement,Both,true +5110,Clearing-Direct Labor ,CLEARING-DIRECT LABOR,Posting,Expense,Income Statement,Both,true +5120,Clearing-Labor O/H ,CLEARING-LABOR O/H,Posting,Expense,Income Statement,Both,true +5130,Clearing - Labor G&A ,CLEARING - LABOR G&A,Posting,Expense,Income Statement,Both,true +5400,SWE Test ,SWE TEST,Posting,Expense,Income Statement,Both,true +5450,SWE Test ,SWE TEST,Posting,Expense,Income Statement,Both,true +6010,Advertising ,ADVERTISING,Posting,Expense,Income Statement,Both,true +6020,Answering Service ,ANSWERING SERVICE,Posting,Expense,Income Statement,Both,true +6030,Accounting and Legal Fees ,ACCOUNTING AND LEGAL FEES,Posting,Expense,Income Statement,Both,true +6040,Vehicle Expense ,VEHICLE EXPENSE,Posting,Expense,Income Statement,Both,true +6050,Bad Check ,BAD CHECK,Posting,Expense,Income Statement,Both,true +6060,Bad Debts ,BAD DEBTS,Posting,Expense,Income Statement,Both,true +6061,Small Balance WO ,SMALL BALANCE WO,Posting,Expense,Income Statement,Both,true +6070,Bank Service Charges ,BANK SERVICE CHARGES,Posting,Expense,Income Statement,Both,true +6071,Bank Fee ,BANK FEE,Posting,Expense,Income Statement,Both,true +6080,Janitorial/Cleaning Service ,JANITORIAL/CLEANING SERVICE,Posting,Expense,Income Statement,Both,true +6100,Lab Tests ,LAB TESTS,Posting,Expense,Income Statement,Both,true +6500,Commissions ,COMMISSIONS,Posting,Expense,Income Statement,Both,true +6510,Contributions ,CONTRIBUTIONS,Posting,Expense,Income Statement,Both,true +6520,Collection ,COLLECTION,Posting,Expense,Income Statement,Both,true +6530,Delivery ,DELIVERY,Posting,Expense,Income Statement,Both,true +6540,Directors Fees ,DIRECTORS FEES,Posting,Expense,Income Statement,Both,true +6550,Dues and Subscriptions ,DUES AND SUBSCRIPTIONS,Posting,Expense,Income Statement,Both,true +6560,Depreciation ,DEPRECIATION,Posting,Expense,Income Statement,Both,true +6570,Amort/Leasehold Improve. ,AMORT/LEASEHOLD IMPROVE.,Posting,Expense,Income Statement,Both,true +6580,Amort/Organ. Expense ,AMORT/ORGAN. EXPENSE,Posting,Expense,Income Statement,Both,true +6590,Entertainment ,ENTERTAINMENT,Posting,Expense,Income Statement,Both,true +7000,Travel Expense ,TRAVEL EXPENSE,Posting,Expense,Income Statement,Both,true +7001,Per Diem ,PER DIEM,Posting,Expense,Income Statement,Both,true +7005,Travel Expense - Meals ,TRAVEL EXPENSE - MEALS,Posting,Expense,Income Statement,Both,true +7006,Meals ,MEALS,Posting,Expense,Income Statement,Both,true +7007,Management Meals ,MANAGEMENT MEALS,Posting,Expense,Income Statement,Both,true +7010,Travel Expense - Lodging ,TRAVEL EXPENSE - LODGING,Posting,Expense,Income Statement,Both,true +7011,Logding ,LOGDING,Posting,Expense,Income Statement,Both,true +7020,Travel Expense - Transportatin,TRAVEL EXPENSE - TRANSPORTATIN,Posting,Expense,Income Statement,Both,true +7021,Air/Train ,AIR/TRAIN,Posting,Expense,Income Statement,Both,true +7022,Taxi/Mass Transit ,TAXI/MASS TRANSIT,Posting,Expense,Income Statement,Both,true +7030,Travel Expense - Entertainment,TRAVEL EXPENSE - ENTERTAINMENT,Posting,Expense,Income Statement,Both,true +7040,Office Expenses - Misc. ,OFFICE EXPENSES - MISC.,Posting,Expense,Income Statement,Both,true +7050,Telephone Expense ,TELEPHONE EXPENSE,Posting,Expense,Income Statement,Both,true +7055,Equipment Rental ,EQUIPMENT RENTAL,Posting,Expense,Income Statement,Both,true +7056,AV Equipment ,AV EQUIPMENT,Posting,Expense,Income Statement,Both,true +7060,Electric Expense ,ELECTRIC EXPENSE,Posting,Expense,Income Statement,Both,true +7070,Gas ,GAS,Posting,Expense,Income Statement,Both,true +7080,Water ,WATER,Posting,Expense,Income Statement,Both,true +7090,Insurance-General ,INSURANCE-GENERAL,Posting,Expense,Income Statement,Both,true +7100,Insurance-Group Medical ,INSURANCE-GROUP MEDICAL,Posting,Expense,Income Statement,Both,true +7101,Currency Loss - Unrealized ,CURRENCY LOSS - UNREALIZED,Posting,Expense,Income Statement,Both,true +7102,Currency Loss - Realized ,CURRENCY LOSS - REALIZED,Posting,Expense,Income Statement,Both,true +7110,Insurance-Officer's Life ,INSURANCE-OFFICER'S LIFE,Posting,Expense,Income Statement,Both,true +7120,Long Term Interest ,LONG TERM INTEREST,Posting,Expense,Income Statement,Both,true +7130,Laundry ,LAUNDRY,Posting,Expense,Income Statement,Both,true +7140,Uniform ,UNIFORM,Posting,Expense,Income Statement,Both,true +7150,Licenses ,LICENSES,Posting,Expense,Income Statement,Both,true +7160,Repair/Maint-Building ,REPAIR/MAINT-BUILDING,Posting,Expense,Income Statement,Both,true +7170,Repair/Maint-Equipment ,REPAIR/MAINT-EQUIPMENT,Posting,Expense,Income Statement,Both,true +7171,Repair/Maint Expense ,REPAIR/MAINT EXPENSE,Posting,Expense,Income Statement,Both,true +7172,Management Rent ,MANAGEMENT RENT,Posting,Expense,Income Statement,Both,true +7180,Office Supplies ,OFFICE SUPPLIES,Posting,Expense,Income Statement,Both,true +7181,Copy Services ,COPY SERVICES,Posting,Expense,Income Statement,Both,true +7182,Design Services ,DESIGN SERVICES,Posting,Expense,Income Statement,Both,true +7183,Printing Services ,PRINTING SERVICES,Posting,Expense,Income Statement,Both,true +7184,Copy Services - ODC ,COPY SERVICES - ODC,Posting,Expense,Income Statement,Both,true +7190,Outside Services ,OUTSIDE SERVICES,Posting,Expense,Income Statement,Both,true +7200,Rubbish Removal ,RUBBISH REMOVAL,Posting,Expense,Income Statement,Both,true +7210,Sales Promotion ,SALES PROMOTION,Posting,Expense,Income Statement,Both,true +7220,Salesman's Vehicle Expense ,SALESMAN'S VEHICLE EXPENSE,Posting,Expense,Income Statement,Both,true +7221,Corporate Vehicle Expense ,CORPORATE VEHICLE EXPENSE,Posting,Expense,Income Statement,Both,true +7222,Travel Expenses ,TRAVEL EXPENSES,Posting,Expense,Income Statement,Both,true +7230,Shop Supplies ,SHOP SUPPLIES,Posting,Expense,Income Statement,Both,true +7240,Taxes/Personal Property ,TAXES/PERSONAL PROPERTY,Posting,Expense,Income Statement,Both,true +7250,Taxes/Real Estate ,TAXES/REAL ESTATE,Posting,Expense,Income Statement,Both,true +7260,Taxes Franchise ,TAXES FRANCHISE,Posting,Expense,Income Statement,Both,true +7270,Freight ,FREIGHT,Posting,Expense,Income Statement,Both,true +7271,Freight Expense ,FREIGHT EXPENSE,Posting,Expense,Income Statement,Both,true +7272,Express Freight ,EXPRESS FREIGHT,Posting,Expense,Income Statement,Both,true +7273,Honor ,HONOR,Posting,Expense,Income Statement,Both,true +7280,Postage ,POSTAGE,Posting,Expense,Income Statement,Both,true +7281,Postage Expense ,POSTAGE EXPENSE,Posting,Expense,Income Statement,Both,true +7290,Personnel ,PERSONNEL,Posting,Expense,Income Statement,Both,true +7300,Miscellaneous ,MISCELLANEOUS,Posting,Expense,Income Statement,Both,true +7410,Sales Tax Paid ,SALES TAX PAID,Posting,Expense,Income Statement,Both,true +7411,Sales Tax Paid - City ,SALES TAX PAID - CITY,Posting,Expense,Income Statement,Both,true +7412,Sales Tax Paid - County ,SALES TAX PAID - COUNTY,Posting,Expense,Income Statement,Both,true +7413,Sales Tax Paid - State ,SALES TAX PAID - STATE,Posting,Expense,Income Statement,Both,true +7415,Sales Tax Paid - IL ,SALES TAX PAID - IL,Posting,Expense,Income Statement,Both,true +7416,Sales Tax Paid - IL - City ,SALES TAX PAID - IL - CITY,Posting,Expense,Income Statement,Both,true +7417,Sales Tax Paid - IL - County ,SALES TAX PAID - IL - COUNTY,Posting,Expense,Income Statement,Both,true +7418,Sales Tax Paid - IL - State ,SALES TAX PAID - IL - STATE,Posting,Expense,Income Statement,Both,true +7419,Sales Tax Paid Expense - GST ,SALES TAX PAID EXPENSE - GST,Posting,Expense,Income Statement,Both,true +7420,Sales Tax Paid Expense - VAT ,SALES TAX PAID EXPENSE - VAT,Posting,Expense,Income Statement,Both,true +7500,PPV ,PPV,Posting,Expense,Income Statement,Both,true +8000,Pooled Rent Expense ,POOLED RENT EXPENSE,Posting,Expense,Income Statement,Both,true +8001,Test Allocation 8001 ,TEST ALLOCATION 8001,Posting,Expense,Income Statement,Both,true +8002,Test Allocation 8002 ,TEST ALLOCATION 8002,Posting,Expense,Income Statement,Both,true +8003,Test Allocation 8003 ,TEST ALLOCATION 8003,Posting,Expense,Income Statement,Both,true +8010,Commissions ,COMMISSIONS,Posting,Income,Income Statement,Both,true +8020,Interest Earned ,INTEREST EARNED,Posting,Income,Income Statement,Both,true +8030,Discounts Taken ,DISCOUNTS TAKEN,Posting,Income,Income Statement,Both,true +8040,Rents ,RENTS,Posting,Income,Income Statement,Both,true +8050,Gain on Sale of Assets ,GAIN ON SALE OF ASSETS,Posting,Income,Income Statement,Both,true +8060,Dividends Received ,DIVIDENDS RECEIVED,Posting,Income,Income Statement,Both,true +8070,Miscellaneous ,MISCELLANEOUS,Posting,Income,Income Statement,Both,true +8300,SWE Test ,SWE TEST,Posting,Income,Income Statement,Both,true +8999,Allocated Rent Offset ,ALLOCATED RENT OFFSET,Posting,Income,Income Statement,Both,true +9010,Discounts-Allowed ,DISCOUNTS-ALLOWED,Posting,Expense,Income Statement,Both,true +9020,Interest-General ,INTEREST-GENERAL,Posting,Expense,Income Statement,Both,true +9030,Loss on Sale of Assets ,LOSS ON SALE OF ASSETS,Posting,Expense,Income Statement,Both,true +9040,Miscellaneous ,MISCELLANEOUS,Posting,Expense,Income Statement,Both,true +9050,Non-Deductible Penalties ,NON-DEDUCTIBLE PENALTIES,Posting,Expense,Income Statement,Both,true +9090,Provision for Income Tax1 ,PROVISION FOR INCOME TAX1,Posting,Expense,Income Statement,Both,true diff --git a/Apps/US/HybridSL_US/test/.resources/datasets/input/SLBCVendorNo1099.csv b/Apps/US/HybridSL_US/test/.resources/datasets/input/SLBCVendorNo1099.csv new file mode 100644 index 0000000000..5a0cd3282a --- /dev/null +++ b/Apps/US/HybridSL_US/test/.resources/datasets/input/SLBCVendorNo1099.csv @@ -0,0 +1,9 @@ +No.,Name,Search Name,Name 2,Address,Address 2,City,Contact,Phone No.,Vendor Posting Group,Payment Terms Code,Country/Region Code,Blocked,Fax No.,Gen. Bus. Posting Group,ZIP Code,State,Email,Tax Area Code,Tax Liable +VT0100,International,INTERNATIONAL,International,400 West Madison St.,Suite 400,Chicago,,5555550190,TRADE,,US,,5555550191,SL,222222,IL ,someone@example.com,COOK-G,true +VT0110,America,AMERICA,America,100 N. State St.,Suite 1200,Madison,,5555550196,TRADE,,US,,5555550197,SL,45454,WI ,,,false +VT0120,Circle,CIRCLE,Circle,258 N. Johnson Ave.,,Sioux City,,5555550105,TRADE,,US,,5555550106,SL,09000,IA ,,,false +VT0121,Square,SQUARE,Square,10 S. Ricker Ave.,,Sioux City,,5555550107,TRADE,,US,,5555550108,SL,08777,IA ,,,false +VT0122,Alphabet,ALPHABET,Alphabet,125 N. Main Ave.,,Sioux City,,5555550109,TRADE,,US,,5555550110,SL,10100,IA ,,,false +VT0123,Consolidated Messenger,CONSOLIDATED MESSENGER,Consolidated Messenger,139 N. Akron Ave.,,Sioux City,,5555550111,TRADE,,US,,5555550112,SL,22111,IA ,,,false +VT0124,Fourth Coffee,FOURTH COFFEE,Fourth Coffee,420 S. State St.,,Sioux City,,5555550112,TRADE,,US,,5555550113,SL,01000,IA ,,,false +VT0125,Trey Research,TREY RESEARCH,Trey Research,520 N. Laurence Ave.,,Sioux City,,5555550113,TRADE,,US,,5555550114,SL,01000,IA ,,,false \ No newline at end of file diff --git a/Apps/US/HybridSL_US/test/.resources/datasets/input/SLBCVendorPostingGroup.csv b/Apps/US/HybridSL_US/test/.resources/datasets/input/SLBCVendorPostingGroup.csv new file mode 100644 index 0000000000..8a06183c8b --- /dev/null +++ b/Apps/US/HybridSL_US/test/.resources/datasets/input/SLBCVendorPostingGroup.csv @@ -0,0 +1,5 @@ +Code,Payables Account,Service Charge Acc.,Payment Disc. Debit Acc.,Invoice Rounding Account,Debit Curr. Appln. Rndg. Acc.,Credit Curr. Appln. Rndg. Acc.,Debit Rounding Account,Credit Rounding Account,Payment Disc. Credit Acc.,Payment Tolerance Debit Acc.,Payment Tolerance Credit Acc.,Description +CONTRACT,2080,,,,,,,,,,,1099 Vendors +EMP,2050,,,,,,,,,,,Employee +SL,2050,,,,,,,,,,,Migrated from SL +TRADE,2050,,,,,,,,,,,Trade Vendor \ No newline at end of file diff --git a/Apps/US/HybridSL_US/test/.resources/datasets/input/SLCompanyAdditionalSettings.csv b/Apps/US/HybridSL_US/test/.resources/datasets/input/SLCompanyAdditionalSettings.csv new file mode 100644 index 0000000000..3bbcb80de0 --- /dev/null +++ b/Apps/US/HybridSL_US/test/.resources/datasets/input/SLCompanyAdditionalSettings.csv @@ -0,0 +1,3 @@ +Company,Inactive Customers,Inactive Vendors,Vendor Classes,Customer Classes,Product Classes,Oldest GL Year,AP Module,AR Module,Inventory Module,Dimension 1,Dimension 2,Open POs,GL Master Only,AP Master Only,Rec. Master Only,Inventory Master Only,Inactive Items,Delete Status Items,Oldest Snapshot year,Snapshot GLTran,Snapshot ARTran,Snapshot APTran,Snapshot INTran,Snapshot POTran,Skip Posting G/L Account Batches,Skip Posting Customer Batches,Skip Posting Vendor Batches,GL Module,Skip Posting Item Batches,Project Controller Module,Projects Only,Tasks Only,Resources Only,Include Plan Status Projects,Include Hold Status Resources,Migrate Current 1099 Year,Migrate Next 1099 Year +,false,false,true,true,true,0,true,true,true,,,false,false,false,false,false,false,false,0,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true +"CRONUS USA, Inc.",false,false,true,true,true,2016,true,true,true,Reporting Unit,Reg/Branch,false,false,false,false,false,false,false,2016,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true diff --git a/Apps/US/HybridSL_US/test/.resources/datasets/input/SLCompanyMigrationSettings.csv b/Apps/US/HybridSL_US/test/.resources/datasets/input/SLCompanyMigrationSettings.csv new file mode 100644 index 0000000000..2e7e388101 --- /dev/null +++ b/Apps/US/HybridSL_US/test/.resources/datasets/input/SLCompanyMigrationSettings.csv @@ -0,0 +1,2 @@ +Name,Global Dimension 1,Global Dimension 2,Migrate Inactive Customers,Migrate Inactive Vendors,ProcessesAreRunning +"CRONUS USA, Inc.",Reporting Unit,Reg/Branch,false,false,false diff --git a/Apps/US/HybridSL_US/test/.resources/datasets/input/SLTables/SLAPSetup.csv b/Apps/US/HybridSL_US/test/.resources/datasets/input/SLTables/SLAPSetup.csv new file mode 100644 index 0000000000..70ce03932e --- /dev/null +++ b/Apps/US/HybridSL_US/test/.resources/datasets/input/SLTables/SLAPSetup.csv @@ -0,0 +1,2 @@ +SetupId,APAcct,Curr1099Yr,CY1099Stat,Next1099Yr,NY1099Stat +AP,2050,2018,O,2019,O \ No newline at end of file diff --git a/Apps/US/HybridSL_US/test/.resources/datasets/input/SLTables/SLAP_Balances.csv b/Apps/US/HybridSL_US/test/.resources/datasets/input/SLTables/SLAP_Balances.csv new file mode 100644 index 0000000000..89d5b5b806 --- /dev/null +++ b/Apps/US/HybridSL_US/test/.resources/datasets/input/SLTables/SLAP_Balances.csv @@ -0,0 +1,9 @@ +VendID,CpnyID,CYBox00,CYBox01,CYBox02,CYBox03,CYBox04,CYBox05,CYBox06,CYBox07,CYBox08,CYBox09,CYBox10,CYBox11,CYBox12,CYBox13,CYBox14,CYBox15 +VT0100 ,"CRONUS USA, Inc.",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +VT0110 ,"CRONUS USA, Inc.",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +VT0120 ,"CRONUS USA, Inc.",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +VT0121 ,"CRONUS USA, Inc.",0,0,0,0,0,0,615,0,0,0,0,0,0,0,0,0 +VT0122 ,"CRONUS USA, Inc.",0,0,0,0,610,0,0,0,0,0,0,0,0,0,0,0 +VT0123 ,"CRONUS USA, Inc.",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +VT0124 ,"CRONUS USA, Inc.",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +VT0125 ,"CRONUS USA, Inc.",0,2500,0,0,0,0,0,0,0,0,0,0,0,0,0,0 diff --git a/Apps/US/HybridSL_US/test/.resources/datasets/input/SLTables/SLVendorWith1099.csv b/Apps/US/HybridSL_US/test/.resources/datasets/input/SLTables/SLVendorWith1099.csv new file mode 100644 index 0000000000..144a51d1fa --- /dev/null +++ b/Apps/US/HybridSL_US/test/.resources/datasets/input/SLTables/SLVendorWith1099.csv @@ -0,0 +1,9 @@ +VendId,Addr1,Addr2,APAcct,APSub,Attn,City,ClassID,Country,Curr1099Yr,DfltBox,EMailAddr,Fax,Name,Next1099Yr,Phone,RemitName,S4Future09,State,Status,TaxId00,TaxRegNbr,Terms,TIN,Vend1099,Zip +VT0100 ,400 West Madison St. ,Suite 400 ,2050 ,01100AA00001 ,,Chicago ,TRADE ,US ,2018,,someone@example.com ,5555550191 ,International ,2019,5555550190 ,International ,0,IL ,A,COOK-G ,25-5254254 ,01,,0,222222 +VT0110 ,100 N. State St. ,Suite 1200 ,2050 ,01100AA00001 ,,Madison ,TRADE ,US ,2018,7 ,,5555550197 ,America ,2019,5555550196 ,America ,0,WI ,A,MADISON ,25-3636254 ,05,1122334455 ,1,45454 +VT0120 ,258 N. Johnson Ave. ,,2050 ,01100AA00001 ,,Sioux City ,TRADE ,US ,2018,14,,5555550106 ,Circle ,2019,5555550105 ,Circle ,0,IA ,A,,,05,369987 ,1,09000 +VT0121 ,10 S. Ricker Ave. ,,2050 ,01100AA00001 ,,Sioux City ,TRADE ,US ,2018,7 ,,5555550108 ,Square ,2019,5555550107 ,Square ,0,IA ,A,,,05,123321 ,1,08777 +VT0122 ,125 N. Main Ave. ,,2050 ,01100AA00001 ,,Sioux City ,TRADE ,US ,2018,5 ,,5555550110 ,Alphabet ,2019,5555550109 ,Alphabet ,0,IA ,A,,,05,147852 ,1,10100 +VT0123 ,139 N. Akron Ave. ,,2050 ,01100AA00001 ,,Sioux City ,TRADE ,US ,2018,1 ,,5555550112 ,Consolidated Messenger ,2019,5555550111 ,Consolidated Messenger ,0,IA ,A,,,05,369258 ,1,22111 +VT0124 ,420 S. State St. ,,2050 ,01100AA00001 ,,Sioux City ,TRADE ,US ,2018,1 ,,5555550113 ,Fourth Coffee ,2019,5555550112 ,Fourth Coffee ,0,IA ,A,,,05,951159 ,1,01000 +VT0125 ,520 N. Laurence Ave. ,,2050 ,01100AA00001 ,,Sioux City ,TRADE ,US ,2018,2 ,,5555550114 ,Trey Research ,2019,5555550113 ,Trey Research ,0,IA ,A,,,05,986532 ,1,01000 \ No newline at end of file diff --git a/Apps/US/HybridSL_US/test/.resources/datasets/results/SL1099BoxMapping.csv b/Apps/US/HybridSL_US/test/.resources/datasets/results/SL1099BoxMapping.csv new file mode 100644 index 0000000000..b942b88f2a --- /dev/null +++ b/Apps/US/HybridSL_US/test/.resources/datasets/results/SL1099BoxMapping.csv @@ -0,0 +1,27 @@ +Tax Year,SL Data Value,SL 1099 Box No.,Form Type,BC IRS 1099 Code +2018,1,1M,MISC,MISC-01 +2018,10,9M,MISC,MISC-09 +2018,13,14M,MISC,MISC-14 +2018,14,10M,MISC,MISC-10 +2018,15,12M,MISC,MISC-12 +2018,2,2M,MISC,MISC-02 +2018,25,15M,MISC,MISC-15 +2018,3,3M,MISC,MISC-03 +2018,4,4M,MISC,MISC-04 +2018,5,5M,MISC,MISC-05 +2018,6,6M,MISC,MISC-06 +2018,7,1N,NEC,NEC-01 +2018,8,8M,MISC,MISC-08 +2019,1,1M,MISC,MISC-01 +2019,10,9M,MISC,MISC-09 +2019,13,14M,MISC,MISC-14 +2019,14,10M,MISC,MISC-10 +2019,15,12M,MISC,MISC-12 +2019,2,2M,MISC,MISC-02 +2019,25,15M,MISC,MISC-15 +2019,3,3M,MISC,MISC-03 +2019,4,4M,MISC,MISC-04 +2019,5,5M,MISC,MISC-05 +2019,6,6M,MISC,MISC-06 +2019,7,1N,NEC,NEC-01 +2019,8,8M,MISC,MISC-08 diff --git a/Apps/US/HybridSL_US/test/.resources/datasets/results/SLBCVendorLedgerEntry.csv b/Apps/US/HybridSL_US/test/.resources/datasets/results/SLBCVendorLedgerEntry.csv new file mode 100644 index 0000000000..6edb9c02c9 --- /dev/null +++ b/Apps/US/HybridSL_US/test/.resources/datasets/results/SLBCVendorLedgerEntry.csv @@ -0,0 +1,13 @@ +Entry No.,Vendor No.,Posting Date,Document Type,Document No.,Description,Vendor Name,IRS 1099 Subject For Reporting,IRS 1099 Reporting Period,IRS 1099 Form No.,IRS 1099 Form Box No.,IRS 1099 Reporting Amount +14,VT0121,2018-12-31,Invoice,VT000000,NEC-01,Square,true,2018,NEC,NEC-01,-615 +16,VT0121,2018-12-31,Payment,VT000001,NEC-01,Square,true,2018,NEC,NEC-01,615 +18,VT0122,2018-12-31,Invoice,VT000002,MISC-05,Alphabet,true,2018,MISC,MISC-05,-610 +20,VT0122,2018-12-31,Payment,VT000003,MISC-05,Alphabet,true,2018,MISC,MISC-05,610 +22,VT0125,2018-12-31,Invoice,VT000004,MISC-02,Trey Research,true,2018,MISC,MISC-02,-2500 +24,VT0125,2018-12-31,Payment,VT000005,MISC-02,Trey Research,true,2018,MISC,MISC-02,2500 +38,VT0121,2019-12-31,Invoice,VT000006,NEC-01,Square,true,2019,NEC,NEC-01,-615 +40,VT0121,2019-12-31,Payment,VT000007,NEC-01,Square,true,2019,NEC,NEC-01,615 +42,VT0122,2019-12-31,Invoice,VT000008,MISC-05,Alphabet,true,2019,MISC,MISC-05,-610 +44,VT0122,2019-12-31,Payment,VT000009,MISC-05,Alphabet,true,2019,MISC,MISC-05,610 +46,VT0125,2019-12-31,Invoice,VT000010,MISC-02,Trey Research,true,2019,MISC,MISC-02,-2500 +48,VT0125,2019-12-31,Payment,VT000011,MISC-02,Trey Research,true,2019,MISC,MISC-02,2500 \ No newline at end of file diff --git a/Apps/US/HybridSL_US/test/.resources/datasets/results/SLBCVendorWith1099.csv b/Apps/US/HybridSL_US/test/.resources/datasets/results/SLBCVendorWith1099.csv new file mode 100644 index 0000000000..5e136eeb59 --- /dev/null +++ b/Apps/US/HybridSL_US/test/.resources/datasets/results/SLBCVendorWith1099.csv @@ -0,0 +1,9 @@ +No.,Name,Search Name,Name 2,Address,Address 2,City,Contact,Phone No.,Vendor Posting Group,Payment Terms Code,Country/Region Code,Blocked,Fax No.,Gen. Bus. Posting Group,ZIP Code,State,Email,Tax Area Code,Tax Liable,Federal ID No.,FATCA Requirement,Tax Identification Type +VT0100,International,INTERNATIONAL,International,400 West Madison St.,Suite 400,Chicago,,5555550190,TRADE,,US,,5555550191,SL,222222,IL ,someone@example.com,COOK-G,true,,false,Legal Entity +VT0110,America,AMERICA,America,100 N. State St.,Suite 1200,Madison,,5555550196,TRADE,,US,,5555550197,SL,45454,WI ,,,false,1122334455,false,Legal Entity +VT0120,Circle,CIRCLE,Circle,258 N. Johnson Ave.,,Sioux City,,5555550105,TRADE,,US,,5555550106,SL,09000,IA ,,,false,369987,false,Legal Entity +VT0121,Square,SQUARE,Square,10 S. Ricker Ave.,,Sioux City,,5555550107,TRADE,,US,,5555550108,SL,08777,IA ,,,false,123321,false,Legal Entity +VT0122,Alphabet,ALPHABET,Alphabet,125 N. Main Ave.,,Sioux City,,5555550109,TRADE,,US,,5555550110,SL,10100,IA ,,,false,147852,false,Legal Entity +VT0123,Consolidated Messenger,CONSOLIDATED MESSENGER,Consolidated Messenger,139 N. Akron Ave.,,Sioux City,,5555550111,TRADE,,US,,5555550112,SL,22111,IA ,,,false,369258,false,Legal Entity +VT0124,Fourth Coffee,FOURTH COFFEE,Fourth Coffee,420 S. State St.,,Sioux City,,5555550112,TRADE,,US,,5555550113,SL,01000,IA ,,,false,951159,false,Legal Entity +VT0125,Trey Research,TREY RESEARCH,Trey Research,520 N. Laurence Ave.,,Sioux City,,5555550113,TRADE,,US,,5555550114,SL,01000,IA ,,,false,986532,false,Legal Entity diff --git a/Apps/US/HybridSL_US/test/.resources/datasets/results/SLSupportedTaxYear.csv b/Apps/US/HybridSL_US/test/.resources/datasets/results/SLSupportedTaxYear.csv new file mode 100644 index 0000000000..94f16adfc0 --- /dev/null +++ b/Apps/US/HybridSL_US/test/.resources/datasets/results/SLSupportedTaxYear.csv @@ -0,0 +1,3 @@ +Tax Year +2018 +2019 diff --git a/Apps/US/HybridSL_US/test/ExtensionLogo.png b/Apps/US/HybridSL_US/test/ExtensionLogo.png new file mode 100644 index 0000000000..0ce0327e67 Binary files /dev/null and b/Apps/US/HybridSL_US/test/ExtensionLogo.png differ diff --git a/Apps/US/HybridSL_US/test/app.json b/Apps/US/HybridSL_US/test/app.json new file mode 100644 index 0000000000..b64c58b0f9 --- /dev/null +++ b/Apps/US/HybridSL_US/test/app.json @@ -0,0 +1,58 @@ +{ + "id": "5f85a491-a6f4-4303-88ed-95a577849f91", + "name": "Dynamics SL Migration - US Tests", + "publisher": "Microsoft", + "version": "28.0.0.0", + "brief": "Tests for migrating Microsoft Dynamics SL Vendor 1099 Data to Dynamics 365 Business Central", + "description": "Tests for the Dynamics SL Migration - US extension.", + "resourceFolders": [".resources"], + "privacyStatement": "https://go.microsoft.com/fwlink/?LinkId=724009", + "EULA": "https://go.microsoft.com/fwlink/?linkid=2009120", + "help": "https://go.microsoft.com/fwlink/?linkid=2009037", + "url": "https://go.microsoft.com/fwlink/?LinkId=724011", + "contextSensitiveHelpUrl": "https://go.microsoft.com/fwlink/?linkid=2285106", + "logo": "ExtensionLogo.png", + "dependencies": [ + { + "id": "237981b4-9e3c-437c-9b92-988aae978e8f", + "publisher": "Microsoft", + "name": "Dynamics SL Migration", + "version": "28.0.0.0" + }, + { + "id": "2c75580e-ca19-49be-899b-d0b59fc3f2f3", + "publisher": "Microsoft", + "name": "Dynamics SL Migration - US", + "version": "28.0.0.0" + }, + { + "id": "b696b4c9-637c-49d1-a806-763ff8f0a20e", + "name": "IRS Forms", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "dd0be2ea-f733-4d65-bb34-a28f4624fb14", + "publisher": "Microsoft", + "name": "Library Assert", + "version": "28.0.0.0" + } + ], + "screenshots": [], + "platform": "28.0.0.0", + "application": "28.0.0.0", + "idRanges": [ + { + "from": 147650, + "to": 147699 + } + ], + "resourceExposurePolicy": { + "allowDebugging": true, + "allowDownloadingSource": true, + "includeSourceInSymbolFile": true + }, + "features": [ + "NoImplicitWith" + ] +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/test/src/SL1099BoxMappingData.XmlPort.al b/Apps/US/HybridSL_US/test/src/SL1099BoxMappingData.XmlPort.al new file mode 100644 index 0000000000..1e278184b2 --- /dev/null +++ b/Apps/US/HybridSL_US/test/src/SL1099BoxMappingData.XmlPort.al @@ -0,0 +1,84 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +xmlport 147656 "SL 1099 Box Mapping Data" +{ + Caption = 'SL 1099 Box Mapping data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL 1099 Box Mapping"; "SL 1099 Box Mapping") + { + AutoSave = false; + XmlName = 'SL1099BoxMapping'; + UseTemporary = true; + + textelement(TaxYear) + { + } + textelement(SLDataValue) + { + } + textelement(SL1099BoxNo) + { + } + textelement(FormType) + { + } + textelement(BCIRS1099Code) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + Evaluate(TempSL1099BoxMapping."Tax Year", TaxYear); + Evaluate(TempSL1099BoxMapping."SL Data Value", SLDataValue); + TempSL1099BoxMapping."SL 1099 Box No." := SL1099BoxNo; + TempSL1099BoxMapping."Form Type" := FormType; + TempSL1099BoxMapping."BC IRS 1099 Code" := BCIRS1099Code; + TempSL1099BoxMapping.Insert(true); + end; + } + } + } + + trigger OnPreXmlPort() + begin + CaptionRow := true; + end; + + procedure GetExpectedSL1099BoxMapping(var NewTempSL1099BoxMapping: Record "SL 1099 Box Mapping" temporary) + begin + if TempSL1099BoxMapping.FindSet() then + repeat + NewTempSL1099BoxMapping := TempSL1099BoxMapping; + NewTempSL1099BoxMapping.Insert(); + until TempSL1099BoxMapping.Next() = 0; + end; + + var + CaptionRow: Boolean; + TempSL1099BoxMapping: Record "SL 1099 Box Mapping" temporary; +} diff --git a/Apps/US/HybridSL_US/test/src/SLAPBalancesData.XmlPort.al b/Apps/US/HybridSL_US/test/src/SLAPBalancesData.XmlPort.al new file mode 100644 index 0000000000..1cc5ec81e6 --- /dev/null +++ b/Apps/US/HybridSL_US/test/src/SLAPBalancesData.XmlPort.al @@ -0,0 +1,129 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +xmlport 147658 "SL AP Balances Data" +{ + Caption = 'SL AP Balances data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL AP Balances"; "SL AP_Balances") + { + AutoSave = false; + XmlName = 'SLAPBalances'; + + textelement(VendID) + { + } + textelement(CpnyID) + { + } + textelement(CYBox00) + { + } + textelement(CYBox01) + { + } + textelement(CYBox02) + { + } + textelement(CYBox03) + { + } + textelement(CYBox04) + { + } + textelement(CYBox05) + { + } + textelement(CYBox06) + { + } + textelement(CYBox07) + { + } + textelement(CYBox08) + { + } + textelement(CYBox09) + { + } + textelement(CYBox10) + { + } + textelement(CYBox11) + { + } + textelement(CYBox12) + { + } + textelement(CYBox13) + { + } + textelement(CYBox14) + { + } + textelement(CYBox15) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLAPBalances: Record "SL AP_Balances"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLAPBalances.VendID := VendID; + SLAPBalances.CpnyID := CpnyID; + Evaluate(SLAPBalances.CYBox00, CYBox00); + Evaluate(SLAPBalances.CYBox01, CYBox01); + Evaluate(SLAPBalances.CYBox02, CYBox02); + Evaluate(SLAPBalances.CYBox03, CYBox03); + Evaluate(SLAPBalances.CYBox04, CYBox04); + Evaluate(SLAPBalances.CYBox05, CYBox05); + Evaluate(SLAPBalances.CYBox06, CYBox06); + Evaluate(SLAPBalances.CYBox07, CYBox07); + Evaluate(SLAPBalances.CYBox08, CYBox08); + Evaluate(SLAPBalances.CYBox09, CYBox09); + Evaluate(SLAPBalances.CYBox10, CYBox10); + Evaluate(SLAPBalances.CYBox11, CYBox11); + Evaluate(SLAPBalances.CYBox12, CYBox12); + Evaluate(SLAPBalances.CYBox13, CYBox13); + Evaluate(SLAPBalances.CYBox14, CYBox14); + Evaluate(SLAPBalances.CYBox15, CYBox15); + SLAPBalances.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLAPBalances.DeleteAll(true); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLAPBalances: Record "SL AP_Balances"; +} diff --git a/Apps/US/HybridSL_US/test/src/SLAPSetupData.XmlPort.al b/Apps/US/HybridSL_US/test/src/SLAPSetupData.XmlPort.al new file mode 100644 index 0000000000..5dd65d5880 --- /dev/null +++ b/Apps/US/HybridSL_US/test/src/SLAPSetupData.XmlPort.al @@ -0,0 +1,81 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +xmlport 147650 "SL APSetup Data" +{ + Caption = 'SL APSetup data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL APSetup"; "SL APSetup") + { + AutoSave = false; + XmlName = 'SLAPSetup'; + + textelement(SetupID) + { + } + textelement(APAcct) + { + } + textelement(Curr1099Yr) + { + } + textelement(CY1099Stat) + { + } + textelement(Next1099Yr) + { + } + textelement(NY1099Stat) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLAPSetup: Record "SL APSetup"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLAPSetup.SetupId := SetupID; + SLAPSetup.APAcct := APAcct; + SLAPSetup.Curr1099Yr := Curr1099Yr; + SLAPSetup.CY1099Stat := CY1099Stat; + SLAPSetup.Next1099Yr := Next1099Yr; + SLAPSetup.NY1099Stat := NY1099Stat; + SLAPSetup.Insert(true); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLAPSetup.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLAPSetup: Record "SL APSetup"; +} diff --git a/Apps/US/HybridSL_US/test/src/SLBCGLAccountData.XmlPort.al b/Apps/US/HybridSL_US/test/src/SLBCGLAccountData.XmlPort.al new file mode 100644 index 0000000000..06f47db526 --- /dev/null +++ b/Apps/US/HybridSL_US/test/src/SLBCGLAccountData.XmlPort.al @@ -0,0 +1,90 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; +using Microsoft.Finance.GeneralLedger.Account; + +xmlport 147660 "SL BC GL Account Data" +{ + Caption = 'SL BC GL Account data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("G/L Account"; "G/L Account") + { + AutoSave = false; + XmlName = 'BCGLAccount'; + + textelement(No) + { + } + textelement(Name) + { + } + textelement(SearchName) + { + } + textelement(AccountType) + { + } + textelement(AccountCategory) + { + } + textelement(IncomeBalance) + { + } + textelement(DebitCredit) + { + } + textelement(DirectPosting) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + GLAccount: Record "G/L Account"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + GLAccount."No." := No; + GLAccount.Name := Name; + GLAccount."Search Name" := SearchName; + Evaluate(GLAccount."Account Type", AccountType); + Evaluate(GLAccount."Account Category", AccountCategory); + Evaluate(GLAccount."Income/Balance", IncomeBalance); + Evaluate(GLAccount."Debit/Credit", DebitCredit); + Evaluate(GLAccount."Direct Posting", DirectPosting); + GLAccount.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + GLAccount.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + GLAccount: Record "G/L Account"; +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/test/src/SLBCVendorLedgerEntryData.XmlPort.al b/Apps/US/HybridSL_US/test/src/SLBCVendorLedgerEntryData.XmlPort.al new file mode 100644 index 0000000000..ea03ec9c38 --- /dev/null +++ b/Apps/US/HybridSL_US/test/src/SLBCVendorLedgerEntryData.XmlPort.al @@ -0,0 +1,115 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +using Microsoft.Purchases.Payables; + +xmlport 147661 "SL BC Vendor Ledger Entry Data" +{ + Caption = 'BC Vendor Ledger Entry data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement(VendorLedgerEntry; "Vendor Ledger Entry") + { + AutoSave = false; + XmlName = 'BCVendorLedgerEntry'; + UseTemporary = true; + + textelement("EntryNo") + { + } + textelement("VendorNo") + { + } + textelement("PostingDate") + { + } + textelement("DocumentType") + { + } + textelement("DocumentNo") + { + } + textelement("Description") + { + } + textelement("VendorName") + { + } + textelement("IRS1099SubjectForReporting") + { + } + textelement("IRS1099ReportingPeriod") + { + } + textelement("IRS1099FormNo") + { + } + textelement("IRS1099FormBoxNo") + { + } + textelement("IRS1099ReportingAmount") + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + Evaluate(TempVendorLedgerEntry."Entry No.", "EntryNo"); + TempVendorLedgerEntry."Vendor No." := "VendorNo"; + Evaluate(TempVendorLedgerEntry."Posting Date", "PostingDate", 9); + Evaluate(TempVendorLedgerEntry."Document Type", "DocumentType"); + TempVendorLedgerEntry."Document No." := "DocumentNo"; + TempVendorLedgerEntry.Description := "Description"; + TempVendorLedgerEntry."Vendor Name" := "VendorName"; + Evaluate(TempVendorLedgerEntry."IRS 1099 Subject For Reporting", "IRS1099SubjectForReporting", 9); + Evaluate(TempVendorLedgerEntry."IRS 1099 Reporting Period", "IRS1099ReportingPeriod", 9); + TempVendorLedgerEntry."IRS 1099 Form No." := "IRS1099FormNo"; + TempVendorLedgerEntry."IRS 1099 Form Box No." := "IRS1099FormBoxNo"; + Evaluate(TempVendorLedgerEntry."IRS 1099 Reporting Amount", "IRS1099ReportingAmount", 9); + TempVendorLedgerEntry.Insert(false); + end; + } + } + } + + trigger OnPreXmlPort() + begin + CaptionRow := true; + end; + + procedure GetExpectedVendorLedgerEntries(var NewTempVendorLedgerEntry: Record "Vendor Ledger Entry" temporary) + begin + if TempVendorLedgerEntry.FindSet() then begin + repeat + NewTempVendorLedgerEntry.Copy(TempVendorLedgerEntry); + NewTempVendorLedgerEntry.Insert(); + until TempVendorLedgerEntry.Next() = 0; + end; + end; + + var + CaptionRow: Boolean; + TempVendorLedgerEntry: Record "Vendor Ledger Entry" temporary; +} diff --git a/Apps/US/HybridSL_US/test/src/SLBCVendorNo1099Data.XmlPost.al b/Apps/US/HybridSL_US/test/src/SLBCVendorNo1099Data.XmlPost.al new file mode 100644 index 0000000000..814414cadf --- /dev/null +++ b/Apps/US/HybridSL_US/test/src/SLBCVendorNo1099Data.XmlPost.al @@ -0,0 +1,139 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +using Microsoft.Purchases.Vendor; + +xmlport 147654 "SL BC Vendor No 1099 Data" +{ + Caption = 'Vendor data without 1099 information for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("Vendor"; Vendor) + { + AutoSave = false; + XmlName = 'Vendor'; + + textelement("No.") + { + } + textelement("Name") + { + } + textelement("SearchName") + { + } + textelement("Name2") + { + } + textelement("Address") + { + } + textelement("Address2") + { + } + textelement("City") + { + } + textelement("Contact") + { + } + textelement("PhoneNo.") + { + } + textelement("VendorPostingGroup") + { + } + textelement("PaymentTermsCode") + { + } + textelement("CountryRegionCode") + { + } + textelement("Blocked") + { + } + textelement("FaxNo.") + { + } + textelement("GenBusPostingGroup") + { + } + textelement("ZipCode") + { + } + textelement("State") + { + } + textelement("EMail") + { + } + textelement("TaxAreaCode") + { + } + textelement("TaxLiable") + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + BCVendor: Record Vendor; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + BCVendor."No." := "No."; + BCVendor.Name := "Name"; + BCVendor."Search Name" := "SearchName"; + BCVendor."Name 2" := "Name2"; + BCVendor.Address := "Address"; + BCVendor."Address 2" := "Address2"; + BCVendor.City := "City"; + BCVendor."Contact" := "Contact"; + BCVendor."Phone No." := "PhoneNo."; + BCVendor."Vendor Posting Group" := "VendorPostingGroup"; + BCVendor."Payment Terms Code" := "PaymentTermsCode"; + BCVendor."Country/Region Code" := "CountryRegionCode"; + Evaluate(BCVendor."Blocked", "Blocked"); + BCVendor."Fax No." := "FaxNo."; + BCVendor."Gen. Bus. Posting Group" := "GenBusPostingGroup"; + BCVendor."Post Code" := "ZipCode"; + BCVendor.County := "State"; + BCVendor."E-Mail" := "EMail"; + BCVendor."Tax Area Code" := "TaxAreaCode"; + Evaluate(BCVendor."Tax Liable", "TaxLiable", 9); + BCVendor.Insert(true); + end; + } + } + } + + trigger OnPreXmlPort() + begin + BCVendor.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + BCVendor: Record Vendor; +} diff --git a/Apps/US/HybridSL_US/test/src/SLBCVendorWith1099Data.XmlPort.al b/Apps/US/HybridSL_US/test/src/SLBCVendorWith1099Data.XmlPort.al new file mode 100644 index 0000000000..a58f1d58c1 --- /dev/null +++ b/Apps/US/HybridSL_US/test/src/SLBCVendorWith1099Data.XmlPort.al @@ -0,0 +1,159 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +using Microsoft.Purchases.Vendor; + +xmlport 147657 "SL BC Vendor With 1099 Data" +{ + Caption = 'BC Vendor With 1099 data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement(Vendor; Vendor) + { + AutoSave = false; + XmlName = 'BCVendor'; + UseTemporary = true; + + textelement("No.") + { + } + textelement("Name") + { + } + textelement("SearchName") + { + } + textelement("Name2") + { + } + textelement("Address") + { + } + textelement("Address2") + { + } + textelement("City") + { + } + textelement("Contact") + { + } + textelement("PhoneNo.") + { + } + textelement("VendorPostingGroup") + { + } + textelement("PaymentTermsCode") + { + } + textelement("CountryRegionCode") + { + } + textelement("Blocked") + { + } + textelement("FaxNo.") + { + } + textelement("GenBusPostingGroup") + { + } + textelement("ZIPCode") + { + } + textelement("State") + { + } + textelement("Email") + { + } + textelement("TaxAreaCode") + { + } + textelement("TaxLiable") + { + } + textelement("FederalIDNo") + { + } + textelement("FATCARequirement") + { + } + textelement("TaxIdentificationType") + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + TempVendor."No." := "No."; + TempVendor.Name := "Name"; + TempVendor."Search Name" := "SearchName"; + TempVendor."Name 2" := "Name2"; + TempVendor.Address := "Address"; + TempVendor."Address 2" := "Address2"; + TempVendor.City := "City"; + TempVendor."Contact" := "Contact"; + TempVendor."Phone No." := "PhoneNo."; + TempVendor."Vendor Posting Group" := "VendorPostingGroup"; + TempVendor."Payment Terms Code" := "PaymentTermsCode"; + TempVendor."Country/Region Code" := "CountryRegionCode"; + Evaluate(TempVendor."Blocked", "Blocked"); + TempVendor."Fax No." := "FaxNo."; + TempVendor."Gen. Bus. Posting Group" := "GenBusPostingGroup"; + TempVendor."Post Code" := "ZipCode"; + TempVendor.County := "State"; + TempVendor."E-Mail" := "EMail"; + TempVendor."Tax Area Code" := "TaxAreaCode"; + Evaluate(TempVendor."Tax Liable", "TaxLiable", 9); + TempVendor."Federal ID No." := "FederalIDNo"; + Evaluate(TempVendor."FATCA Requirement", "FATCARequirement", 9); + Evaluate(TempVendor."Tax Identification Type", "TaxIdentificationType"); + TempVendor.Insert(false); + end; + } + } + } + + trigger OnPreXmlPort() + begin + CaptionRow := true; + end; + + procedure GetExpectedVendors(var NewTempVendor: Record Vendor temporary) + begin + if TempVendor.FindSet() then begin + repeat + NewTempVendor.Copy(TempVendor); + NewTempVendor.Insert(); + until TempVendor.Next() = 0; + end; + end; + + var + CaptionRow: Boolean; + TempVendor: Record Vendor temporary; +} diff --git a/Apps/US/HybridSL_US/test/src/SLCompanyAdditionalSettings.XmlPort.al b/Apps/US/HybridSL_US/test/src/SLCompanyAdditionalSettings.XmlPort.al new file mode 100644 index 0000000000..5c23fe0b09 --- /dev/null +++ b/Apps/US/HybridSL_US/test/src/SLCompanyAdditionalSettings.XmlPort.al @@ -0,0 +1,218 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +xmlport 147651 "SL Company Additional Settings" +{ + Caption = 'SL Company Additional Settings'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(Root) + { + tableelement("SL Company Additional Settings"; "SL Company Additional Settings") + { + AutoSave = false; + XmlName = 'SLCompanyAdditionalSettings'; + + textelement(Name) + { + } + textelement(MigrateInactiveCustomers) + { + } + textelement(MigrateInactiveVendors) + { + } + textelement(MigrateVendorClasses) + { + } + textelement(MigrateCustomerClasses) + { + } + textelement(MigrateItemClasses) + { + } + textelement(OldestGLYeartoMigrate) + { + } + textelement(MigratePayablesModule) + { + } + textelement(MigrateReceivablesModule) + { + } + textelement(MigrateInventoryModule) + { + } + textelement(GlobalDimension1) + { + } + textelement(GlobalDimension2) + { + } + textelement(MigrateOpenPOs) + { + } + textelement(MigrateOnlyGLMaster) + { + } + textelement(MigrateOnlyPayablesMaster) + { + } + textelement(MigrateOnlyRecMaster) + { + } + textelement(MigrateOnlyInventoryMaster) + { + } + textelement(MigrateInactiveItems) + { + } + textelement(MigrateDiscontinuedItems) + { + } + textelement(OldestHistYeartoMigrate) + { + } + textelement(MigrateHistGLTrx) + { + } + textelement(MigrateHistARTrx) + { + } + textelement(MigrateHistAPTrx) + { + } + textelement(MigrateHistInvTrx) + { + } + textelement(MigrateHistPurchTrx) + { + } + textelement(MigrationCompleted) + { + } + textelement(SkipPostingAccountBatches) + { + } + textelement(SkipPostingCustomerBatches) + { + } + textelement(SkipPostingVendorBatches) + { + } + textelement(MigrateGLModule) + { + } + textelement(SkipPostingItemBatches) + { + } + textelement(HasHybridCompany) + { + } + textelement(IncludeProjectModule) + { + } + textelement(ProjectMasterOnly) + { + } + textelement(TaskMasterOnly) + { + } + textelement(ResourceMasterOnly) + { + } + textelement(IncludePlanStatusProjects) + { + MinOccurs = Once; + } + textelement(IncludeHoldStatusResources) + { + } + textelement(MigrateCurrent1099Year) + { + } + textelement(MigrateNext1099Year) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLCompanyAdditionalSettings.Name := Name; + Evaluate(SLCompanyAdditionalSettings."Migrate Inactive Customers", MigrateInactiveCustomers, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Inactive Vendors", MigrateInactiveVendors, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Vendor Classes", MigrateVendorClasses, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Customer Classes", MigrateCustomerClasses, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Item Classes", MigrateItemClasses, 9); + Evaluate(SLCompanyAdditionalSettings."Oldest GL Year to Migrate", OldestGLYeartoMigrate, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Payables Module", MigratePayablesModule, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Receivables Module", MigrateReceivablesModule, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Inventory Module", MigrateInventoryModule, 9); + SLCompanyAdditionalSettings."Global Dimension 1" := GlobalDimension1; + SLCompanyAdditionalSettings."Global Dimension 2" := GlobalDimension2; + Evaluate(SLCompanyAdditionalSettings."Migrate Open POs", MigrateOpenPOs, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Only GL Master", MigrateOnlyGLMaster, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Only Payables Master", MigrateOnlyPayablesMaster, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Only Rec. Master", MigrateOnlyRecMaster, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Only Inventory Master", MigrateOnlyInventoryMaster, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Inactive Items", MigrateInactiveItems, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Discontinued Items", MigrateDiscontinuedItems, 9); + Evaluate(SLCompanyAdditionalSettings."Oldest Hist. Year to Migrate", OldestHistYeartoMigrate, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Hist. GL Trx.", MigrateHistGLTrx, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Hist. AR Trx.", MigrateHistARTrx, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Hist. AP Trx.", MigrateHistAPTrx, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Hist. Inv. Trx.", MigrateHistInvTrx, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Hist. Purch. Trx.", MigrateHistPurchTrx, 9); + Evaluate(SLCompanyAdditionalSettings."Migration Completed", MigrationCompleted, 9); + Evaluate(SLCompanyAdditionalSettings."Skip Posting Account Batches", SkipPostingAccountBatches, 9); + Evaluate(SLCompanyAdditionalSettings."Skip Posting Customer Batches", SkipPostingCustomerBatches, 9); + Evaluate(SLCompanyAdditionalSettings."Skip Posting Vendor Batches", SkipPostingVendorBatches, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate GL Module", MigrateGLModule, 9); + Evaluate(SLCompanyAdditionalSettings."Skip Posting Item Batches", SkipPostingItemBatches, 9); + Evaluate(SLCompanyAdditionalSettings."Has Hybrid Company", HasHybridCompany, 9); + Evaluate(SLCompanyAdditionalSettings."Include Project Module", IncludeProjectModule, 9); + Evaluate(SLCompanyAdditionalSettings."Project Master Only", ProjectMasterOnly, 9); + Evaluate(SLCompanyAdditionalSettings."Task Master Only", TaskMasterOnly, 9); + Evaluate(SLCompanyAdditionalSettings."Resource Master Only", ResourceMasterOnly, 9); + Evaluate(SLCompanyAdditionalSettings."Include Plan Status Projects", IncludePlanStatusProjects); + Evaluate(SLCompanyAdditionalSettings."Include Hold Status Resources", IncludeHoldStatusResources, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Current 1099 Year", MigrateCurrent1099Year, 9); + Evaluate(SLCompanyAdditionalSettings."Migrate Next 1099 Year", MigrateNext1099Year, 9); + SLCompanyAdditionalSettings.Insert(true); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLCompanyAdditionalSettings.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; +} diff --git a/Apps/US/HybridSL_US/test/src/SLCompanyMigrationSettings.Xmlport.al b/Apps/US/HybridSL_US/test/src/SLCompanyMigrationSettings.Xmlport.al new file mode 100644 index 0000000000..c1c23d1ca9 --- /dev/null +++ b/Apps/US/HybridSL_US/test/src/SLCompanyMigrationSettings.Xmlport.al @@ -0,0 +1,81 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +xmlport 147652 "SL Company Migration Settings" +{ + Caption = 'Company Migration Settings data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL Company Migration Settings"; "SL Company Migration Settings") + { + AutoSave = false; + XmlName = 'SLCompanyMigrationSettings'; + + textelement("Name") + { + } + textelement("GlobalDimension1") + { + } + textelement("GlobalDimension2") + { + } + textelement("MigrateInactiveCustomers") + { + } + textelement("MigrateInactiveVendors") + { + } + textelement("ProcessesAreRunning") + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLCompanyMigrationSettings: Record "SL Company Migration Settings"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLCompanyMigrationSettings.Name := Name; + SLCompanyMigrationSettings."Global Dimension 1" := GlobalDimension1; + SLCompanyMigrationSettings."Global Dimension 2" := GlobalDimension2; + Evaluate(SLCompanyMigrationSettings."Migrate Inactive Customers", MigrateInactiveCustomers); + Evaluate(SLCompanyMigrationSettings."Migrate Inactive Vendors", MigrateInactiveVendors); + Evaluate(SLCompanyMigrationSettings.ProcessesAreRunning, ProcessesAreRunning); + SLCompanyMigrationSettings.Insert(false); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLCompanyMigrationSettings.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLCompanyMigrationSettings: Record "SL Company Migration Settings"; +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/test/src/SLMigrationVendor1099Tests.Codeunit.al b/Apps/US/HybridSL_US/test/src/SLMigrationVendor1099Tests.Codeunit.al new file mode 100644 index 0000000000..ac2392d139 --- /dev/null +++ b/Apps/US/HybridSL_US/test/src/SLMigrationVendor1099Tests.Codeunit.al @@ -0,0 +1,205 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DataMigration.SL; + +using Microsoft.Purchases.Payables; +using Microsoft.Purchases.Vendor; +using System.TestLibraries.Utilities; + +codeunit 147650 "SL Migration Vendor 1099 Tests" +{ + EventSubscriberInstance = Manual; + Subtype = Test; + TestPermissions = Disabled; + Permissions = tabledata "Detailed Vendor Ledg. Entry" = rimd, + tabledata "Vendor Ledger Entry" = rimd; + + var + Assert: Codeunit "Library Assert"; + SLTestHelperFunctions: Codeunit "SL Test Helper Functions"; + IsInitialized: Boolean; + + [Test] + procedure TestVendor1099Migration() + var + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + TempVendor: Record Vendor temporary; + TempVendorLedgerEntry: Record "Vendor Ledger Entry" temporary; + SLCloudMigrationUS: Codeunit "SL Cloud Migration US"; + ExpectedVendorData: XmlPort "SL BC Vendor With 1099 Data"; + ExpectedSLVendorLedgerEntryData: XmlPort "SL BC Vendor Ledger Entry Data"; + VendorInstream: InStream; + VendorLedgerEntryInstream: InStream; + begin + // [Given] SL Data + Initialize(); + + // Enable Current 1099 Year and Next 1099 Year migration in SL Company Additional Settings + SLCompanyAdditionalSettings.GetSingleInstance(); + SLCompanyAdditionalSettings.Validate("Migrate Current 1099 Year", true); + SLCompanyAdditionalSettings.Validate("Migrate Next 1099 Year", true); + SLCompanyAdditionalSettings.Modify(); + + // Import test data + SLTestHelperFunctions.ImportGLAccountData(); + SLTestHelperFunctions.ImportVendorPostingGroupData(); + SLTestHelperFunctions.ImportSLVendorData(); + SLTestHelperFunctions.ImportBCVendorDataNo1099(); + SLTestHelperFunctions.ImportSLAPBalancesData(); + + // [When] SL migration has completed and the Vendor 1099 migration has started + SLCloudMigrationUS.RunPostMigration(); + + // [Then] Validate BC Vendor 1099 data has been populated correctly + SLTestHelperFunctions.GetInputStreamFromResource('datasets/results/SLBCVendorWith1099.csv', VendorInstream); + ExpectedVendorData.SetSource(VendorInstream); + ExpectedVendorData.Import(); + ExpectedVendorData.GetExpectedVendors(TempVendor); + ValidateVendor1099Data(TempVendor); + + // [Then] The Vendor will have Vendor Ledger Entries applied correctly + SLTestHelperFunctions.GetInputStreamFromResource('datasets/results/SLBCVendorLedgerEntry.csv', VendorLedgerEntryInstream); + ExpectedSLVendorLedgerEntryData.SetSource(VendorLedgerEntryInstream); + ExpectedSLVendorLedgerEntryData.Import(); + ExpectedSLVendorLedgerEntryData.GetExpectedVendorLedgerEntries(TempVendorLedgerEntry); + ValidateVendorLedgerEntryData(TempVendorLedgerEntry); + end; + + [Test] + procedure TestMappingCreated() + var + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + SLSupportedTaxYear: Record "SL Supported Tax Year"; + TempSL1099BoxMapping: Record "SL 1099 Box Mapping" temporary; + TempSLSupportedTaxYear: Record "SL Supported Tax Year" temporary; + SLCloudMigrationUS: Codeunit "SL Cloud Migration US"; + ExpectedSL1099BoxMappingData: XmlPort "SL 1099 Box Mapping Data"; + ExpectedSLSupportedTaxYearData: XmlPort "SL Supported Tax Year Data"; + SL1099BoxMappingInstream: InStream; + SLSupportedTaxYearInstream: InStream; + begin + // [Scenario] Current 1099 Year and Next 1099 Year migration enabled in SL Company Additional Settings + + // [Given] SL Data + Initialize(); + + // Enable Current 1099 Year and Next 1099 Year migration in SL Company Additional Settings + SLCompanyAdditionalSettings.GetSingleInstance(); + SLCompanyAdditionalSettings.Validate("Migrate Current 1099 Year", true); + SLCompanyAdditionalSettings.Validate("Migrate Next 1099 Year", true); + SLCompanyAdditionalSettings.Modify(); + + // Import test data + SLTestHelperFunctions.ImportSLVendorData(); + SLTestHelperFunctions.ImportBCVendorDataNo1099(); + + // [When] SL migration has completed and the Vendor 1099 migration has started + SLCloudMigrationUS.RunPostMigration(); + + // [Then] Mappings will be present for the supported tax years + SLTestHelperFunctions.GetInputStreamFromResource('datasets/results/SL1099BoxMapping.csv', SL1099BoxMappingInstream); + ExpectedSL1099BoxMappingData.SetSource(SL1099BoxMappingInstream); + ExpectedSL1099BoxMappingData.Import(); + ExpectedSL1099BoxMappingData.GetExpectedSL1099BoxMapping(TempSL1099BoxMapping); + ValidateSL1099BoxMappingData(TempSL1099BoxMapping); + + // [Then] Validate supported tax years + SLTestHelperFunctions.GetInputStreamFromResource('datasets/results/SLSupportedTaxYear.csv', SLSupportedTaxYearInstream); + ExpectedSLSupportedTaxYearData.SetSource(SLSupportedTaxYearInstream); + ExpectedSLSupportedTaxYearData.Import(); + ExpectedSLSupportedTaxYearData.GetExpectedSLSupportedTaxYear(TempSLSupportedTaxYear); + ValidateSLSupportedTaxYearData(TempSLSupportedTaxYear); + end; + + + local procedure ValidateSLSupportedTaxYearData(var TempSLSupportedTaxYear: Record "SL Supported Tax Year" temporary) + var + SLSupportedTaxYear: Record "SL Supported Tax Year"; + begin + TempSLSupportedTaxYear.Reset(); + TempSLSupportedTaxYear.FindSet(); + repeat + Assert.IsTrue(SLSupportedTaxYear.Get(TempSLSupportedTaxYear."Tax Year"), 'SL Supported Tax Year record not found for Tax Year ' + Format(TempSLSupportedTaxYear."Tax Year")); + until TempSLSupportedTaxYear.Next() = 0; + end; + + local procedure ValidateSL1099BoxMappingData(var TempSL1099BoxMapping: Record "SL 1099 Box Mapping" temporary) + var + SL1099BoxMapping: Record "SL 1099 Box Mapping"; + begin + TempSL1099BoxMapping.Reset(); + TempSL1099BoxMapping.FindSet(); + repeat + Assert.IsTrue(SL1099BoxMapping.Get(TempSL1099BoxMapping."Tax Year", TempSL1099BoxMapping."SL Data Value"), 'SL 1099 Box Mapping record not found for Tax Year ' + Format(TempSL1099BoxMapping."Tax Year") + ' and SL Data Value ' + TempSL1099BoxMapping."SL Data Value"); + Assert.AreEqual(TempSL1099BoxMapping."SL 1099 Box No.", SL1099BoxMapping."SL 1099 Box No.", 'SL 1099 Box No. does not match for Tax Year ' + Format(TempSL1099BoxMapping."Tax Year") + ' and SL Data Value ' + TempSL1099BoxMapping."SL Data Value"); + Assert.AreEqual(TempSL1099BoxMapping."Form Type", SL1099BoxMapping."Form Type", 'Form Type does not match for Tax Year ' + Format(TempSL1099BoxMapping."Tax Year") + ' and SL Data Value ' + TempSL1099BoxMapping."SL Data Value"); + Assert.AreEqual(TempSL1099BoxMapping."BC IRS 1099 Code", SL1099BoxMapping."BC IRS 1099 Code", 'BC IRS 1099 Code does not match for Tax Year ' + Format(TempSL1099BoxMapping."Tax Year") + ' and SL Data Value ' + TempSL1099BoxMapping."SL Data Value"); + until TempSL1099BoxMapping.Next() = 0; + end; + + local procedure ValidateVendor1099Data(var TempVendor: Record Vendor temporary) + var + Vendor: Record Vendor; + begin + TempVendor.Reset(); + TempVendor.FindSet(); + repeat + Assert.IsTrue(Vendor.Get(TempVendor."No."), 'Vendor record not found for No. ' + TempVendor."No."); + Assert.AreEqual(TempVendor."Federal ID No.", Vendor."Federal ID No.", 'Federal ID No. does not match for Vendor No. ' + TempVendor."No."); + Assert.AreEqual(TempVendor."FATCA Requirement", Vendor."FATCA Requirement", 'FATCA Requirement does not match for Vendor No. ' + TempVendor."No."); + Assert.AreEqual(TempVendor."Tax Identification Type", Vendor."Tax Identification Type", 'Tax Identification Type does not match for Vendor No. ' + TempVendor."No."); + until TempVendor.Next() = 0; + end; + + local procedure ValidateVendorLedgerEntryData(var TempVendorLedgerEntry: Record "Vendor Ledger Entry" temporary) + var + VendorLedgerEntry: Record "Vendor Ledger Entry"; + begin + TempVendorLedgerEntry.Reset(); + TempVendorLedgerEntry.FindSet(); + repeat + VendorLedgerEntry.SetRange("Vendor No.", TempVendorLedgerEntry."Vendor No."); + VendorLedgerEntry.SetRange("Posting Date", TempVendorLedgerEntry."Posting Date"); + VendorLedgerEntry.SetRange("Document Type", TempVendorLedgerEntry."Document Type"); + VendorLedgerEntry.SetRange("Document No.", TempVendorLedgerEntry."Document No."); + Assert.IsTrue(VendorLedgerEntry.Count() > 0, 'Vendor Ledger Entry record not found for Vendor No. ' + TempVendorLedgerEntry."Vendor No." + ', Posting Date ' + Format(TempVendorLedgerEntry."Posting Date") + ', Document Type ' + Format(TempVendorLedgerEntry."Document Type") + ', Document No. ' + TempVendorLedgerEntry."Document No."); + VendorLedgerEntry.FindFirst(); + Assert.AreEqual(TempVendorLedgerEntry."IRS 1099 Subject For Reporting", VendorLedgerEntry."IRS 1099 Subject For Reporting", 'IRS 1099 Subject For Reporting does not match for Vendor Ledger Entry No. ' + Format(TempVendorLedgerEntry."Entry No.")); + Assert.AreEqual(TempVendorLedgerEntry."IRS 1099 Reporting Period", VendorLedgerEntry."IRS 1099 Reporting Period", 'IRS 1099 Reporting Period does not match for Vendor Ledger Entry No. ' + Format(TempVendorLedgerEntry."Entry No.")); + Assert.AreEqual(TempVendorLedgerEntry."IRS 1099 Form No.", VendorLedgerEntry."IRS 1099 Form No.", 'IRS 1099 Form No. does not match for Vendor Ledger Entry No. ' + Format(TempVendorLedgerEntry."Entry No.")); + Assert.AreEqual(TempVendorLedgerEntry."IRS 1099 Form Box No.", VendorLedgerEntry."IRS 1099 Form Box No.", 'IRS 1099 Form Box No. does not match for Vendor Ledger Entry No. ' + Format(TempVendorLedgerEntry."Entry No.")); + Assert.AreEqual(TempVendorLedgerEntry."IRS 1099 Reporting Amount", VendorLedgerEntry."IRS 1099 Reporting Amount", 'IRS 1099 Reporting Amount does not match for Vendor Ledger Entry No. ' + Format(TempVendorLedgerEntry."Entry No.")); + until TempVendorLedgerEntry.Next() = 0; + end; + + local procedure Initialize() + var + SLAPBalances: Record "SL AP_Balances"; + SLAPSetup: Record "SL APSetup"; + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + SLCompanyMigrationSettings: Record "SL Company Migration Settings"; + SLVendor: Record "SL Vendor"; + + begin + // Clear existing data + if not SLAPSetup.IsEmpty() then + SLAPSetup.DeleteAll(); + if not SLVendor.IsEmpty() then + SLVendor.DeleteAll(); + if not SLAPBalances.IsEmpty() then + SLAPBalances.DeleteAll(); + + if IsInitialized then + exit; + + SLTestHelperFunctions.ClearBCVendorTableData(); + SLTestHelperFunctions.DeleteAllSettings(); + SLTestHelperFunctions.CreateConfigurationSettings(); + SLTestHelperFunctions.ImportSLAPSetupData(); + Commit(); + IsInitialized := true; + end; +} diff --git a/Apps/US/HybridSL_US/test/src/SLSupportedTaxYearData.XmlPort.al b/Apps/US/HybridSL_US/test/src/SLSupportedTaxYearData.XmlPort.al new file mode 100644 index 0000000000..e4878a97ca --- /dev/null +++ b/Apps/US/HybridSL_US/test/src/SLSupportedTaxYearData.XmlPort.al @@ -0,0 +1,68 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +xmlport 147655 "SL Supported Tax Year Data" +{ + Caption = 'SL Supported Tax Year data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL Supported Tax Year"; "SL Supported Tax Year") + { + AutoSave = false; + XmlName = 'SLSupportedTaxYear'; + UseTemporary = true; + + textelement("TaxYear") + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + Evaluate(TempSLSupportedTaxYear."Tax Year", TaxYear); + TempSLSupportedTaxYear.Insert(true); + end; + } + } + } + + trigger OnPreXmlPort() + begin + CaptionRow := true; + end; + + procedure GetExpectedSLSupportedTaxYear(var NewTempSLSupportedTaxYear: Record "SL Supported Tax Year" temporary) + begin + if TempSLSupportedTaxYear.FindSet() then + repeat + NewTempSLSupportedTaxYear := TempSLSupportedTaxYear; + NewTempSLSupportedTaxYear.Insert(); + until TempSLSupportedTaxYear.Next() = 0; + end; + + var + CaptionRow: Boolean; + TempSLSupportedTaxYear: Record "SL Supported Tax Year" temporary; +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/test/src/SLTestHelperFunctions.Codeunit.al b/Apps/US/HybridSL_US/test/src/SLTestHelperFunctions.Codeunit.al new file mode 100644 index 0000000000..65b9c44992 --- /dev/null +++ b/Apps/US/HybridSL_US/test/src/SLTestHelperFunctions.Codeunit.al @@ -0,0 +1,162 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +using Microsoft.Purchases.Vendor; + +codeunit 147651 "SL Test Helper Functions" +{ + procedure GetInputStreamFromResource(ResourcePath: Text; var ResInstream: InStream) + begin + NavApp.GetResource(ResourcePath, ResInstream); + end; + + procedure ImportGLAccountData() + var + GLAccountInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLBCGLAccount.csv', GLAccountInstream); + PopulateGLAccountTable(GLAccountInstream); + end; + + procedure ImportSLAPBalancesData() + var + SLAPBalancesInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLAP_Balances.csv', SLAPBalancesInstream); + PopulateSLAPBalancesTable(SLAPBalancesInstream); + end; + + procedure ImportSLAPSetupData() + var + SLAPSetupInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLAPSetup.csv', SLAPSetupInstream); + PopulateSLAPSetupTable(SLAPSetupInstream); + end; + + procedure ImportSLCompanyAdditionalSettingsData() + var + SLCompanyAdditionalSettingsInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLCompanyAdditionalSettings.csv', SLCompanyAdditionalSettingsInstream); + PopulateSLCompanyAdditionalSettingsTable(SLCompanyAdditionalSettingsInstream); + end; + + procedure ImportSLCompanyMigrationSettingsData() + var + SLCompanyMigrationSettingsInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLCompanyMigrationSettings.csv', SLCompanyMigrationSettingsInstream); + PopulateSLCompanyMigrationSettingsTable(SLCompanyMigrationSettingsInstream); + end; + + procedure ImportVendorPostingGroupData() + var + VendorPostingGroupInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLBCVendorPostingGroup.csv', VendorPostingGroupInstream); + PopulateVendorPostingGroupTable(VendorPostingGroupInstream); + end; + + procedure ImportSLVendorData() + var + SLVendorInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLVendorWith1099.csv', SLVendorInstream); + PopulateSLVendorTable(SLVendorInstream); + end; + + procedure ImportBCVendorDataNo1099() + var + BCVendorInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLBCVendorNo1099.csv', BCVendorInstream); + PopulateBCVendorTableNo1099(BCVendorInstream); + end; + + procedure PopulateGLAccountTable(var Instream: InStream) + begin + // Populate GL Account table + Xmlport.Import(Xmlport::"SL BC GL Account Data", Instream); + end; + + procedure PopulateSLAPBalancesTable(var Instream: InStream) + begin + // Populate SL AP_Balances table + Xmlport.Import(Xmlport::"SL AP Balances Data", Instream); + end; + + procedure PopulateSLAPSetupTable(var Instream: InStream) + begin + // Populate SL APSetup table + Xmlport.Import(Xmlport::"SL APSetup Data", Instream); + end; + + procedure PopulateSLCompanyAdditionalSettingsTable(var Instream: InStream) + begin + // Populate SL Company Additional Settings table + Xmlport.Import(Xmlport::"SL Company Additional Settings", Instream); + end; + + procedure PopulateSLCompanyMigrationSettingsTable(var Instream: InStream) + begin + // Populate SL Company Migration Settings table + Xmlport.Import(Xmlport::"SL Company Migration Settings", Instream); + end; + + procedure PopulateSLVendorTable(var Instream: InStream) + begin + // Populate SL Vendor table + Xmlport.Import(Xmlport::"SL Vendor Data", Instream); + end; + + procedure PopulateBCVendorTableNo1099(var Instream: InStream) + begin + // Populate BC Vendor table + Xmlport.Import(Xmlport::"SL BC Vendor No 1099 Data", Instream); + end; + + procedure PopulateVendorPostingGroupTable(var Instream: InStream) + begin + // Populate Vendor Posting Group table + Xmlport.Import(Xmlport::"SL Vendor Posting Group Data", Instream); + end; + + procedure ClearBCVendorTableData() + var + Vendor: Record Vendor; + begin + Vendor.DeleteAll(); + end; + + procedure CreateConfigurationSettings() + var + SLCompanyMigrationSettings: Record "SL Company Migration Settings"; + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + CompanyNameText: Text[30]; + begin + CompanyNameText := CompanyName(); + + if not SLCompanyMigrationSettings.Get(CompanyNameText) then begin + SLCompanyMigrationSettings.Name := CompanyNameText; + SLCompanyMigrationSettings.Insert(); + end; + + if not SLCompanyAdditionalSettings.Get(CompanyNameText) then begin + SLCompanyAdditionalSettings.Name := CompanyNameText; + SLCompanyAdditionalSettings.Insert(); + end; + end; + + procedure DeleteAllSettings() + var + SLCompanyMigrationSettings: Record "SL Company Migration Settings"; + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + begin + SLCompanyMigrationSettings.DeleteAll(); + SLCompanyAdditionalSettings.DeleteAll(); + end; +} \ No newline at end of file diff --git a/Apps/US/HybridSL_US/test/src/SLVendorData.XmlPort.al b/Apps/US/HybridSL_US/test/src/SLVendorData.XmlPort.al new file mode 100644 index 0000000000..0679d50271 --- /dev/null +++ b/Apps/US/HybridSL_US/test/src/SLVendorData.XmlPort.al @@ -0,0 +1,161 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +xmlport 147653 "SL Vendor Data" +{ + Caption = 'SL Vendor data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL Vendor"; "SL Vendor") + { + AutoSave = false; + XmlName = 'SLVendor'; + + textelement(VendId) + { + } + textelement(Addr1) + { + } + textelement(Addr2) + { + } + textelement(APAcct) + { + } + textelement(APSub) + { + } + textelement(Attn) + { + } + textelement(City) + { + } + textelement(ClassID) + { + } + textelement(Country) + { + } + textelement(Curr1099Yr) + { + } + textelement(DfltBox) + { + } + textelement(EMailAddr) + { + } + textelement(Fax) + { + } + textelement(Name) + { + } + textelement(Next1099Yr) + { + } + textelement(Phone) + { + } + textelement(RemitName) + { + } + textelement(S4Future09) + { + } + textelement(State) + { + } + textelement(Status) + { + } + textelement(TaxId00) + { + } + textelement(TaxRegNbr) + { + } + textelement(Terms) + { + } + textelement(TIN) + { + } + textelement(Vend1099) + { + } + textelement(Zip) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLVendor: Record "SL Vendor"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLVendor.VendId := VendId; + SLVendor.Addr1 := Addr1; + SLVendor.Addr2 := Addr2; + SLVendor.APAcct := APAcct; + SLVendor.APSub := APSub; + SLVendor.Attn := Attn; + SLVendor.City := City; + SLVendor.ClassID := ClassID; + SLVendor.Country := Country; + SLVendor.Curr1099Yr := Curr1099Yr; + SLVendor.DfltBox := DfltBox; + SLVendor.EMailAddr := EMailAddr; + SLVendor.Fax := Fax; + SLVendor.Name := Name; + SLVendor.Next1099Yr := Next1099Yr; + SLVendor.Phone := Phone; + SLVendor.RemitName := RemitName; + Evaluate(SLVendor.S4Future09, S4Future09, 9); + SLVendor.State := State; + SLVendor.Status := Status; + SLVendor.TaxId00 := TaxId00; + SLVendor.TaxRegNbr := TaxRegNbr; + SLVendor.Terms := Terms; + SLVendor.TIN := TIN; + Evaluate(SLVendor.Vend1099, Vend1099, 9); + SLVendor.Zip := Zip; + SLVendor.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLVendor.DeleteAll(true); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLVendor: Record "SL Vendor"; +} diff --git a/Apps/US/HybridSL_US/test/src/SLVendorPostingGroupData.XmlPort.al b/Apps/US/HybridSL_US/test/src/SLVendorPostingGroupData.XmlPort.al new file mode 100644 index 0000000000..b522216cf8 --- /dev/null +++ b/Apps/US/HybridSL_US/test/src/SLVendorPostingGroupData.XmlPort.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.DataMigration.SL; + +using Microsoft.Purchases.Vendor; + +xmlport 147659 "SL Vendor Posting Group Data" +{ + Caption = 'Vendor Posting Group data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("Vendor Posting Group"; "Vendor Posting Group") + { + AutoSave = false; + XmlName = 'BCVendorPostingGroup'; + + textelement(Code) + { + } + textelement(PayablesAccount) + { + } + textelement(ServiceChargeAcc) + { + } + textelement(PaymentDiscDebitAcc) + { + } + textelement(InvoiceRoundingAccount) + { + } + textelement(DebitCurrApplnRndgAcc) + { + } + textelement(CreditCurrApplnRndgAcc) + { + } + textelement(DebitRoundingAccount) + { + } + textelement(CreditRoundingAccount) + { + } + textelement(PaymentDiscCreditAcc) + { + } + textelement(PaymentToleranceDebitAcc) + { + } + textelement(PaymentToleranceCreditAcc) + { + } + textelement(Description) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + VendorPostingGroup: Record "Vendor Posting Group"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + VendorPostingGroup.Code := Code; + VendorPostingGroup."Payables Account" := PayablesAccount; + VendorPostingGroup."Service Charge Acc." := ServiceChargeAcc; + VendorPostingGroup."Payment Disc. Debit Acc." := PaymentDiscDebitAcc; + VendorPostingGroup."Invoice Rounding Account" := InvoiceRoundingAccount; + VendorPostingGroup."Debit Curr. Appln. Rndg. Acc." := DebitCurrApplnRndgAcc; + VendorPostingGroup."Credit Curr. Appln. Rndg. Acc." := CreditCurrApplnRndgAcc; + VendorPostingGroup."Debit Rounding Account" := DebitRoundingAccount; + VendorPostingGroup."Credit Rounding Account" := CreditRoundingAccount; + VendorPostingGroup."Payment Disc. Credit Acc." := PaymentDiscCreditAcc; + VendorPostingGroup."Payment Tolerance Debit Acc." := PaymentToleranceDebitAcc; + VendorPostingGroup."Payment Tolerance Credit Acc." := PaymentToleranceCreditAcc; + VendorPostingGroup.Description := Description; + VendorPostingGroup.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + VendorPostingGroup.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + VendorPostingGroup: Record "Vendor Posting Group"; +} diff --git a/Apps/W1/HybridSL/app/src/Migration/Accounts/SLAccountMigrator.Codeunit.al b/Apps/W1/HybridSL/app/src/Migration/Accounts/SLAccountMigrator.Codeunit.al index f3f918c1a2..54b04640be 100644 --- a/Apps/W1/HybridSL/app/src/Migration/Accounts/SLAccountMigrator.Codeunit.al +++ b/Apps/W1/HybridSL/app/src/Migration/Accounts/SLAccountMigrator.Codeunit.al @@ -6,6 +6,7 @@ namespace Microsoft.DataMigration.SL; using Microsoft.Finance.Dimension; +using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Finance.GeneralLedger.Journal; using System.Integration; @@ -14,6 +15,7 @@ codeunit 47000 "SL Account Migrator" Access = Internal; var + BeginningBalanceDescriptionTxt: Label 'Beginning Balance for ', Locked = true; PostingGroupCodeTxt: Label 'SL', Locked = true; PostingGroupDescriptionTxt: Label 'Migrated from SL', Locked = true; GLModuleIDLbl: Label 'GL', Locked = true; @@ -111,8 +113,157 @@ codeunit 47000 "SL Account Migrator" Sender.ModifyGLAccount(true); end; + [EventSubscriber(ObjectType::Codeunit, Codeunit::"GL Acc. Data Migration Facade", OnCreateOpeningBalanceTrx, '', true, true)] + local procedure OnCreateOpeningBalanceTrx(var Sender: Codeunit "GL Acc. Data Migration Facade"; RecordIdToMigrate: RecordId) + begin + CreateOpeningBalanceTrx(Sender, RecordIdToMigrate); + end; + + internal procedure CreateOpeningBalanceTrx(var Sender: Codeunit "GL Acc. Data Migration Facade"; RecordIdToMigrate: RecordId) + var + SLAccountStaging: Record "SL Account Staging"; + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + begin + if RecordIdToMigrate.TableNo <> Database::"SL Account Staging" then + exit; + if not SLCompanyAdditionalSettings.GetGLModuleEnabled() then + exit; + if SLCompanyAdditionalSettings.GetMigrateOnlyGLMaster() then + exit; + + SLAccountStaging.Get(RecordIdToMigrate); + if SLAccountStaging.IncomeBalance then + exit; + + CreateGLAccountBeginningBalance(SLAccountStaging); + end; + + internal procedure CreateGLAccountBeginningBalance(SLAcccountStaging: Record "SL Account Staging"); + var + GenJournalLine: Record "Gen. Journal Line"; + GLAccount: Record "G/L Account"; + SLAcctHist: Record "SL AcctHist"; + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + SLFiscalPeriods: Record "SL Fiscal Periods"; + SLGLSetup: Record "SL GLSetup"; + DataMigrationFacadeHelper: Codeunit "Data Migration Facade Helper"; + SLPopulateAccountHistory: Codeunit "SL Populate Account History"; + PostingGroupCode: Code[10]; + SubSegment_1: Code[20]; + SubSegment_2: Code[20]; + SubSegment_3: Code[20]; + SubSegment_4: Code[20]; + SubSegment_5: Code[20]; + SubSegment_6: Code[20]; + SubSegment_7: Code[20]; + SubSegment_8: Code[20]; + BeginningBalanceDate: Date; + BeginningBalance: Decimal; + InitialYear: Integer; + PreviousYear: Integer; + NbrOfSegments: Integer; + DimSetID: Integer; + BeginningBalancePeriodTxt: Label '-00', Locked = true; + begin + if not GLAccount.Get(SLAcccountStaging.AcctNum) then + exit; + if not SLGLSetup.Get(GLModuleIDLbl) then + exit; + + SLCompanyAdditionalSettings.GetSingleInstance(); + InitialYear := SLCompanyAdditionalSettings.GetInitialYear(); + if InitialYear = 0 then + exit; + PreviousYear := InitialYear - 1; + if SLFiscalPeriods.Get(SLGLSetup.NbrPer, PreviousYear) then + BeginningBalanceDate := SLFiscalPeriods.PerEndDT + else + exit; + + NbrOfSegments := SLPopulateAccountHistory.GetNumberOfSegments(); + + PostingGroupCode := PostingGroupCodeTxt + Format(InitialYear) + BeginningBalancePeriodTxt; + SLAcctHist.SetRange(CpnyID, CompanyName()); + SLAcctHist.SetRange(Acct, SLAcccountStaging.AcctNum); + SLAcctHist.SetRange(LedgerID, SLGLSetup.LedgerID); + SLAcctHist.SetRange(FiscYr, Format(InitialYear)); + + if SLAcctHist.FindSet() then + repeat + if SLAcccountStaging.AccountCategory = 2 then + BeginningBalance := SLAcctHist.BegBal * -1 + else + BeginningBalance := SLAcctHist.BegBal; + if BeginningBalance <> 0 then begin + CreateBeginningBalanceGenJournalBatchIfNeeded(PostingGroupCode, InitialYear); + DataMigrationFacadeHelper.CreateGeneralJournalLine( + GenJournalLine, + PostingGroupCode, + PostingGroupCode, + BeginningBalanceDescriptionTxt + Format(InitialYear), + GenJournalLine."Account Type"::"G/L Account", + SLAcccountStaging.AcctNum, + BeginningBalanceDate, + 0D, + BeginningBalance, + BeginningBalance, + '', + ''); + + SubSegment_1 := GetSegmentValueFromSubaccount(SLAcctHist.Sub, 1, NbrOfSegments); + SubSegment_2 := GetSegmentValueFromSubaccount(SLAcctHist.Sub, 2, NbrOfSegments); + SubSegment_3 := GetSegmentValueFromSubaccount(SLAcctHist.Sub, 3, NbrOfSegments); + SubSegment_4 := GetSegmentValueFromSubaccount(SLAcctHist.Sub, 4, NbrOfSegments); + SubSegment_5 := GetSegmentValueFromSubaccount(SLAcctHist.Sub, 5, NbrOfSegments); + SubSegment_6 := GetSegmentValueFromSubaccount(SLAcctHist.Sub, 6, NbrOfSegments); + SubSegment_7 := GetSegmentValueFromSubaccount(SLAcctHist.Sub, 7, NbrOfSegments); + SubSegment_8 := GetSegmentValueFromSubaccount(SLAcctHist.Sub, 8, NbrOfSegments); + + DimSetID := CreateDimSetFromSubSegments(SubSegment_1, SubSegment_2, SubSegment_3, SubSegment_4, SubSegment_5, SubSegment_6, SubSegment_7, SubSegment_8); + GenJournalLine.Validate("Dimension Set ID", DimSetID); + GenJournalLine.Modify(true); + end; + until SLAcctHist.Next() = 0; + end; + + internal procedure CreateBeginningBalanceGenJournalBatchIfNeeded(GeneralJournalBatchCode: Code[10]; InitialYear: Integer) + var + GenJournalBatch: Record "Gen. Journal Batch"; + TemplateName: Code[10]; + begin + TemplateName := CreateBeginningBalanceGenJournalTemplateIfNeeded(GeneralJournalBatchCode, InitialYear); + GenJournalBatch.SetRange("Journal Template Name", TemplateName); + GenJournalBatch.SetRange(Name, GeneralJournalBatchCode); + if not GenJournalBatch.FindFirst() then begin + GenJournalBatch.Init(); + GenJournalBatch.Validate("Journal Template Name", TemplateName); + GenJournalBatch.SetupNewBatch(); + GenJournalBatch.Validate(Name, GeneralJournalBatchCode); + GenJournalBatch.Validate(Description, BeginningBalanceDescriptionTxt + Format(InitialYear)); + GenJournalBatch.Insert(true); + end; + end; + + internal procedure CreateBeginningBalanceGenJournalTemplateIfNeeded(GenJournalBatchCode: Code[10]; InitialYear: Integer): Code[10] + var + GenJournalTemplate: Record "Gen. Journal Template"; + begin + GenJournalTemplate.SetRange(Type, GenJournalTemplate.Type::General); + GenJournalTemplate.SetRange(Recurring, false); + if not GenJournalTemplate.FindFirst() then begin + Clear(GenJournalTemplate); + GenJournalTemplate.Validate(Name, GenJournalBatchCode); + GenJournalTemplate.Validate(Type, GenJournalTemplate.Type::General); + GenJournalTemplate.Validate(Recurring, false); + GenJournalTemplate.Validate(Description, BeginningBalanceDescriptionTxt + Format(InitialYear)); + GenJournalTemplate.Insert(true); + end; + exit(GenJournalTemplate.Name); + end; + internal procedure GenerateGLTransactionBatches(SLAccountStaging: Record "SL Account Staging"); var + GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; SLAccountTransactions: Record "SL AccountTransactions"; SLFiscalPeriods: Record "SL Fiscal Periods"; @@ -140,14 +291,14 @@ codeunit 47000 "SL Account Migrator" if SLAccountStaging.AccountCategory = 4 then // Income SLAccountTransactions.Balance := (-1 * SLAccountTransactions.Balance); - CreateGeneralJournalBatchIfNeeded(CopyStr(PostingGroupCode, 1, 10)); + CreateGeneralJournalBatchIfNeeded(CopyStr(PostingGroupCode, 1, MaxStrLen(GenJournalBatch.Name))); BatchDocumentNo := PostingGroupCodeTxt + GLModuleIDLbl + SLAccountTransactions.Year + PostingGroupPeriod; BatchDescription := DescriptionTrxTxt + SLAccountTransactions.Year + '-' + PostingGroupPeriod; if SLFiscalPeriods.Get(SLAccountTransactions.PERIODID, SLAccountTransactions.Year) then DataMigrationFacadeHelper.CreateGeneralJournalLine( GenJournalLine, - CopyStr(PostingGroupCode, 1, 10), + CopyStr(PostingGroupCode, 1, MaxStrLen(GenJournalLine."Journal Batch Name")), CopyStr(BatchDocumentNo, 1, MaxStrLen(BatchDocumentNo)), CopyStr(BatchDescription, 1, MaxStrLen(BatchDescription)), GenJournalLine."Account Type"::"G/L Account", @@ -168,8 +319,9 @@ codeunit 47000 "SL Account Migrator" var GenJournalBatch: Record "Gen. Journal Batch"; TemplateName: Code[10]; + GeneralLbl: Label 'GENERAL', Locked = true; begin - TemplateName := CreateGeneralJournalTemplateIfNeeded('GENERAL'); + TemplateName := CreateGeneralJournalTemplateIfNeeded(GeneralLbl); GenJournalBatch.SetRange("Journal Template Name", TemplateName); GenJournalBatch.SetRange(Name, GeneralJournalBatchCode); if not GenJournalBatch.FindFirst() then begin @@ -201,47 +353,175 @@ codeunit 47000 "SL Account Migrator" var TempDimensionSetEntry: Record "Dimension Set Entry" temporary; DimensionValue: Record "Dimension Value"; - SLSegments: Record "SL Segments"; SLHelperFunctions: Codeunit "SL Helper Functions"; DimensionManagement: Codeunit DimensionManagement; NewDimSetID: Integer; begin - SLSegments.SetCurrentKey(SLSegments.SegmentNumber); - SLSegments.Ascending(true); - if SLSegments.FindSet() then - repeat - DimensionValue.Get(SLHelperFunctions.CheckDimensionName(SLSegments.Id), GetSegmentValue(MigrationSlAccountTrans, SLSegments.SegmentNumber)); - TempDimensionSetEntry.Init(); - TempDimensionSetEntry.Validate("Dimension Code", DimensionValue."Dimension Code"); - TempDimensionSetEntry.Validate("Dimension Value Code", DimensionValue.Code); - TempDimensionSetEntry.Validate("Dimension Value ID", DimensionValue."Dimension Value ID"); - TempDimensionSetEntry.Insert(true); - until SLSegments.Next() = 0; + if MigrationSlAccountTrans.SubSegment_1.TrimEnd() <> '' then begin + DimensionValue.Get(SLHelperFunctions.GetSLSegmentsIdBySegmentNumber(1), MigrationSlAccountTrans.SubSegment_1); + InsertTempDimensionSetEntry(TempDimensionSetEntry, DimensionValue); + end; + if MigrationSlAccountTrans.SubSegment_2.TrimEnd() <> '' then begin + DimensionValue.Get(SLHelperFunctions.GetSLSegmentsIdBySegmentNumber(2), MigrationSlAccountTrans.SubSegment_2); + InsertTempDimensionSetEntry(TempDimensionSetEntry, DimensionValue); + end; + if MigrationSlAccountTrans.SubSegment_3.TrimEnd() <> '' then begin + DimensionValue.Get(SLHelperFunctions.GetSLSegmentsIdBySegmentNumber(3), MigrationSlAccountTrans.SubSegment_3); + InsertTempDimensionSetEntry(TempDimensionSetEntry, DimensionValue); + end; + if MigrationSlAccountTrans.SubSegment_4.TrimEnd() <> '' then begin + DimensionValue.Get(SLHelperFunctions.GetSLSegmentsIdBySegmentNumber(4), MigrationSlAccountTrans.SubSegment_4); + InsertTempDimensionSetEntry(TempDimensionSetEntry, DimensionValue); + end; + if MigrationSlAccountTrans.SubSegment_5.TrimEnd() <> '' then begin + DimensionValue.Get(SLHelperFunctions.GetSLSegmentsIdBySegmentNumber(5), MigrationSlAccountTrans.SubSegment_5); + InsertTempDimensionSetEntry(TempDimensionSetEntry, DimensionValue); + end; + if MigrationSlAccountTrans.SubSegment_6.TrimEnd() <> '' then begin + DimensionValue.Get(SLHelperFunctions.GetSLSegmentsIdBySegmentNumber(6), MigrationSlAccountTrans.SubSegment_6); + InsertTempDimensionSetEntry(TempDimensionSetEntry, DimensionValue); + end; + if MigrationSlAccountTrans.SubSegment_7.TrimEnd() <> '' then begin + DimensionValue.Get(SLHelperFunctions.GetSLSegmentsIdBySegmentNumber(7), MigrationSlAccountTrans.SubSegment_7); + InsertTempDimensionSetEntry(TempDimensionSetEntry, DimensionValue); + end; + if MigrationSlAccountTrans.SubSegment_8.TrimEnd() <> '' then begin + DimensionValue.Get(SLHelperFunctions.GetSLSegmentsIdBySegmentNumber(8), MigrationSlAccountTrans.SubSegment_8); + InsertTempDimensionSetEntry(TempDimensionSetEntry, DimensionValue); + end; NewDimSetID := DimensionManagement.GetDimensionSetID(TempDimensionSetEntry); TempDimensionSetEntry.DeleteAll(); exit(NewDimSetID); end; - internal procedure GetSegmentValue(MigrationSlAccountTrans: Record "SL AccountTransactions"; SegmentNumber: Integer): Code[20] - begin - case SegmentNumber of - 1: - exit(CopyStr(MigrationSlAccountTrans.SubSegment_1, 1, 20)); - 2: - exit(CopyStr(MigrationSlAccountTrans.SubSegment_2, 1, 20)); - 3: - exit(CopyStr(MigrationSlAccountTrans.SubSegment_3, 1, 20)); - 4: - exit(CopyStr(MigrationSlAccountTrans.SubSegment_4, 1, 20)); - 5: - exit(CopyStr(MigrationSlAccountTrans.SubSegment_5, 1, 20)); - 6: - exit(CopyStr(MigrationSlAccountTrans.SubSegment_6, 1, 20)); - 7: - exit(CopyStr(MigrationSlAccountTrans.SubSegment_7, 1, 20)); - 8: - exit(CopyStr(MigrationSlAccountTrans.SubSegment_8, 1, 20)); + internal procedure CreateDimSetFromSubSegments(SubSegment_1: Code[20]; SubSegment_2: Code[20]; SubSegment_3: Code[20]; SubSegment_4: Code[20]; SubSegment_5: Code[20]; SubSegment_6: Code[20]; SubSegment_7: Code[20]; SubSegment_8: Code[20]): Integer + var + TempDimensionSetEntry: Record "Dimension Set Entry" temporary; + DimensionValue: Record "Dimension Value"; + SLHelperFunctions: Codeunit "SL Helper Functions"; + DimensionManagement: Codeunit DimensionManagement; + NewDimSetID: Integer; + begin + if SubSegment_1 <> '' then begin + DimensionValue.Get(SLHelperFunctions.GetSLSegmentsIdBySegmentNumber(1), SubSegment_1); + // InsertTempDimensionSetEntry(TempDimensionSetEntry, DimensionValue); + TempDimensionSetEntry.Init(); + TempDimensionSetEntry.Validate("Dimension Code", DimensionValue."Dimension Code"); + TempDimensionSetEntry.Validate("Dimension Value Code", DimensionValue.Code); + TempDimensionSetEntry.Validate("Dimension Value ID", DimensionValue."Dimension Value ID"); + TempDimensionSetEntry.Insert(true); + end; + if SubSegment_2 <> '' then begin + DimensionValue.Get(SLHelperFunctions.GetSLSegmentsIdBySegmentNumber(2), SubSegment_2); + // InsertTempDimensionSetEntry(TempDimensionSetEntry, DimensionValue); + TempDimensionSetEntry.Init(); + TempDimensionSetEntry.Validate("Dimension Code", DimensionValue."Dimension Code"); + TempDimensionSetEntry.Validate("Dimension Value Code", DimensionValue.Code); + TempDimensionSetEntry.Validate("Dimension Value ID", DimensionValue."Dimension Value ID"); + TempDimensionSetEntry.Insert(true); + end; + if SubSegment_3 <> '' then begin + DimensionValue.Get(SLHelperFunctions.GetSLSegmentsIdBySegmentNumber(3), SubSegment_3); + // InsertTempDimensionSetEntry(TempDimensionSetEntry, DimensionValue); + TempDimensionSetEntry.Init(); + TempDimensionSetEntry.Validate("Dimension Code", DimensionValue."Dimension Code"); + TempDimensionSetEntry.Validate("Dimension Value Code", DimensionValue.Code); + TempDimensionSetEntry.Validate("Dimension Value ID", DimensionValue."Dimension Value ID"); + TempDimensionSetEntry.Insert(true); + end; + if SubSegment_4 <> '' then begin + DimensionValue.Get(SLHelperFunctions.GetSLSegmentsIdBySegmentNumber(4), SubSegment_4); + // InsertTempDimensionSetEntry(TempDimensionSetEntry, DimensionValue); + TempDimensionSetEntry.Init(); + TempDimensionSetEntry.Validate("Dimension Code", DimensionValue."Dimension Code"); + TempDimensionSetEntry.Validate("Dimension Value Code", DimensionValue.Code); + TempDimensionSetEntry.Validate("Dimension Value ID", DimensionValue."Dimension Value ID"); + TempDimensionSetEntry.Insert(true); + end; + if SubSegment_5 <> '' then begin + DimensionValue.Get(SLHelperFunctions.GetSLSegmentsIdBySegmentNumber(5), SubSegment_5); + // InsertTempDimensionSetEntry(TempDimensionSetEntry, DimensionValue); + TempDimensionSetEntry.Init(); + TempDimensionSetEntry.Validate("Dimension Code", DimensionValue."Dimension Code"); + TempDimensionSetEntry.Validate("Dimension Value Code", DimensionValue.Code); + TempDimensionSetEntry.Validate("Dimension Value ID", DimensionValue."Dimension Value ID"); + TempDimensionSetEntry.Insert(true); + end; + if SubSegment_6 <> '' then begin + DimensionValue.Get(SLHelperFunctions.GetSLSegmentsIdBySegmentNumber(6), SubSegment_6); + // InsertTempDimensionSetEntry(TempDimensionSetEntry, DimensionValue); + TempDimensionSetEntry.Init(); + TempDimensionSetEntry.Validate("Dimension Code", DimensionValue."Dimension Code"); + TempDimensionSetEntry.Validate("Dimension Value Code", DimensionValue.Code); + TempDimensionSetEntry.Validate("Dimension Value ID", DimensionValue."Dimension Value ID"); + TempDimensionSetEntry.Insert(true); end; + if SubSegment_7 <> '' then begin + DimensionValue.Get(SLHelperFunctions.GetSLSegmentsIdBySegmentNumber(7), SubSegment_7); + // InsertTempDimensionSetEntry(TempDimensionSetEntry, DimensionValue); + TempDimensionSetEntry.Init(); + TempDimensionSetEntry.Validate("Dimension Code", DimensionValue."Dimension Code"); + TempDimensionSetEntry.Validate("Dimension Value Code", DimensionValue.Code); + TempDimensionSetEntry.Validate("Dimension Value ID", DimensionValue."Dimension Value ID"); + TempDimensionSetEntry.Insert(true); + end; + if SubSegment_8 <> '' then begin + DimensionValue.Get(SLHelperFunctions.GetSLSegmentsIdBySegmentNumber(8), SubSegment_8); + // InsertTempDimensionSetEntry(TempDimensionSetEntry, DimensionValue); + TempDimensionSetEntry.Init(); + TempDimensionSetEntry.Validate("Dimension Code", DimensionValue."Dimension Code"); + TempDimensionSetEntry.Validate("Dimension Value Code", DimensionValue.Code); + TempDimensionSetEntry.Validate("Dimension Value ID", DimensionValue."Dimension Value ID"); + TempDimensionSetEntry.Insert(true); + end; + + NewDimSetID := DimensionManagement.GetDimensionSetID(TempDimensionSetEntry); + TempDimensionSetEntry.DeleteAll(); + exit(NewDimSetID); + end; + + procedure GetSegmentValueFromSubaccount(Sub: Text[24]; SegmentNumber: Integer; NumberOfSegments: Integer): Code[20] + var + SLPopulateAccountHistory: Codeunit "SL Populate Account History"; + SubAcctSegmentText: Text[20]; + begin + SubAcctSegmentText := CopyStr(SLPopulateAccountHistory.GetSubAcctSegmentText(Sub, SegmentNumber, NumberOfSegments), 1, MaxStrLen(SubAcctSegmentText)); + if SubAcctSegmentText.TrimEnd() <> '' then + exit(SubAcctSegmentText) + else + exit(''); + end; + + procedure InsertTempDimensionSetEntry(var TempDimensionSetEntry: Record "Dimension Set Entry" temporary; DimensionValue: Record "Dimension Value") + begin + TempDimensionSetEntry.Init(); + TempDimensionSetEntry.Validate("Dimension Code", DimensionValue."Dimension Code"); + TempDimensionSetEntry.Validate("Dimension Value Code", DimensionValue.Code); + TempDimensionSetEntry.Validate("Dimension Value ID", DimensionValue."Dimension Value ID"); + TempDimensionSetEntry.Insert(true); + end; + + internal procedure AreAllSegmentNumbersEmpty(SubSegment_1: Code[20]; SubSegment_2: Code[20]; SubSegment_3: Code[20]; SubSegment_4: Code[20]; SubSegment_5: Code[20]; SubSegment_6: Code[20]; SubSegment_7: Code[20]; SubSegment_8: Code[20]): Boolean + begin + exit( + CodeIsEmpty(SubSegment_1) and + CodeIsEmpty(SubSegment_2) and + CodeIsEmpty(SubSegment_3) and + CodeIsEmpty(SubSegment_4) and + CodeIsEmpty(SubSegment_5) and + CodeIsEmpty(SubSegment_6) and + CodeIsEmpty(SubSegment_7) and + CodeIsEmpty(SubSegment_8) + ); + end; + + internal procedure CodeIsEmpty(TheCode: Code[20]): Boolean + var + CodeText: Text[20]; + begin + CodeText := TheCode; + CodeText := CopyStr(CodeText.Trim(), 1, MaxStrLen(CodeText)); + exit(CodeText = ''); end; } \ No newline at end of file diff --git a/Apps/W1/HybridSL/app/src/Migration/Accounts/SLAcctHist.Table.al b/Apps/W1/HybridSL/app/src/Migration/Accounts/SLAcctHist.Table.al index 675b8ec7be..d8e81b8843 100644 --- a/Apps/W1/HybridSL/app/src/Migration/Accounts/SLAcctHist.Table.al +++ b/Apps/W1/HybridSL/app/src/Migration/Accounts/SLAcctHist.Table.al @@ -37,7 +37,7 @@ table 47007 "SL AcctHist" { Caption = 'BegBal'; } - field(7; CpnyID; Text[10]) + field(7; CpnyID; Text[30]) { Caption = 'CpnyID'; } diff --git a/Apps/W1/HybridSL/app/src/Migration/Customers/SLCustomerMigrator.Codeunit.al b/Apps/W1/HybridSL/app/src/Migration/Customers/SLCustomerMigrator.Codeunit.al index 342c16bbf2..892de78279 100644 --- a/Apps/W1/HybridSL/app/src/Migration/Customers/SLCustomerMigrator.Codeunit.al +++ b/Apps/W1/HybridSL/app/src/Migration/Customers/SLCustomerMigrator.Codeunit.al @@ -19,7 +19,9 @@ codeunit 47018 "SL Customer Migrator" PostingGroupCodeTxt: Label 'SL', Locked = true; SLPrefixTxt: Label 'SL', Locked = true; SourceCodeTxt: Label 'GENJNL', Locked = true; + StatusCompletedTxt: Label 'C', Locked = true; StatusInactiveTxt: Label 'I', Locked = true; + StatusPostedTxt: Label 'P', Locked = true; [EventSubscriber(ObjectType::Codeunit, Codeunit::"Customer Data Migration Facade", OnMigrateCustomer, '', true, true)] local procedure OnMigrateCustomer(var Sender: Codeunit "Customer Data Migration Facade"; RecordIdToMigrate: RecordId) @@ -209,6 +211,7 @@ codeunit 47018 "SL Customer Migrator" GenJournalLine: Record "Gen. Journal Line"; SLARDoc: Record "SL ARDoc Buffer"; SLARSetup: Record "SL ARSetup"; + SLBatch: Record "SL Batch"; SLCustomer: Record "SL Customer"; SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; DataMigrationFacadeHelper: Codeunit "Data Migration Facade Helper"; @@ -251,13 +254,16 @@ codeunit 47018 "SL Customer Migrator" SLARDoc.SetRange(CustId, SLCustomer.CustId); SLARDoc.SetFilter(DocType, '%1|%2|%3|%4|%5', ARDocTypeInvoiceTxt, ARDocTypeCashSaleTxt, ARDocTypeDebitMemoTxt, ARDocTypeSmallCreditTxt, ARDocTypeNSFCheckChargeTxt); //Invoices SLARDoc.SetFilter(DocBal, '<>%1', 0); + SLARDoc.SetFilter(Rlsed, '1'); if SLARDoc.FindSet() then repeat - DataMigrationErrorLogging.SetLastRecordUnderProcessing(Format(SLARDoc.RecordId)); - GLDocNbr := SLPrefixTxt + SLARDoc.RefNbr; - BalancingAccount := SLARSetup.ArAcct; + SLBatch.Get(ARSetupIDTxt, SLARDoc.BatNbr); + if (SLBatch.Status = StatusPostedTxt) or (SLBatch.Status = StatusCompletedTxt) then begin + DataMigrationErrorLogging.SetLastRecordUnderProcessing(Format(SLARDoc.RecordId)); + GLDocNbr := SLPrefixTxt + SLARDoc.RefNbr; + BalancingAccount := SLARSetup.ArAcct; - Sender.CreateGeneralJournalLine( + Sender.CreateGeneralJournalLine( CopyStr(CustomerBatchNameTxt, 1, MaxStrLen(CustomerBatchNameTxt)), GLDocNbr, SLARDoc.DocDesc, @@ -267,23 +273,24 @@ codeunit 47018 "SL Customer Migrator" SLARDoc.DocBal, '', BalancingAccount - ); - Sender.SetGeneralJournalLineDocumentType(DocTypeToSet::Invoice); - DataMigrationFacadeHelper.CreateSourceCodeIfNeeded(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); - Sender.SetGeneralJournalLineSourceCode(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); - if (SLARDoc.SlsperId.TrimEnd() <> '') then begin - Sender.CreateSalespersonPurchaserIfNeeded(SLARDoc.SlsperId, '', '', ''); - Sender.SetGeneralJournalLineSalesPersonCode(SLARDoc.SlsperId); - end; - if SLARDoc.OrdNbr.TrimEnd() <> '' then - Sender.SetGeneralJournalLineExternalDocumentNo(SLARDoc.OrdNbr); - - // Temporary code to set the Due Date on Invoices until the Payment Terms migration is implemented. - GenJournalLine.SetRange("Journal Batch Name", CustomerBatchNameTxt); - GenJournalLine.SetRange("Document No.", GLDocNbr); - if GenJournalLine.FindLast() then begin - GenJournalLine."Due Date" := SLARDoc.DueDate; - GenJournalLine.Modify(); + ); + Sender.SetGeneralJournalLineDocumentType(DocTypeToSet::Invoice); + DataMigrationFacadeHelper.CreateSourceCodeIfNeeded(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); + Sender.SetGeneralJournalLineSourceCode(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); + if (SLARDoc.SlsperId.TrimEnd() <> '') then begin + Sender.CreateSalespersonPurchaserIfNeeded(SLARDoc.SlsperId, '', '', ''); + Sender.SetGeneralJournalLineSalesPersonCode(SLARDoc.SlsperId); + end; + if SLARDoc.OrdNbr.TrimEnd() <> '' then + Sender.SetGeneralJournalLineExternalDocumentNo(SLARDoc.OrdNbr); + + // Termporary code to set the Due Date on Invoices until the Payment Terms migration is implemented. + GenJournalLine.SetRange("Journal Batch Name", CustomerBatchNameTxt); + GenJournalLine.SetRange("Document No.", GLDocNbr); + if GenJournalLine.FindLast() then begin + GenJournalLine."Due Date" := SLARDoc.DueDate; + GenJournalLine.Modify(); + end; end; until SLARDoc.Next() = 0; @@ -292,31 +299,35 @@ codeunit 47018 "SL Customer Migrator" SLARDoc.SetRange(CustId, SLCustomer.CustId); SLARDoc.SetFilter(DocType, '%1|%2', ARDocTypePaymentTxt, ARDocTypePaymentPrepaymentTxt); //Payments SLARDoc.SetFilter(DocBal, '<>%1', 0); + SLARDoc.SetFilter(Rlsed, '1'); if SLARDoc.FindSet() then repeat - DataMigrationErrorLogging.SetLastRecordUnderProcessing(Format(SLARDoc.RecordId)); - GLDocNbr := SLPrefixTxt + SLARDoc.RefNbr; - BalancingAccount := SLARSetup.ArAcct; + SLBatch.Get(ARSetupIDTxt, SLARDoc.BatNbr); + if SLBatch.Status = StatusPostedTxt then begin + DataMigrationErrorLogging.SetLastRecordUnderProcessing(Format(SLARDoc.RecordId)); + GLDocNbr := SLPrefixTxt + SLARDoc.RefNbr; + BalancingAccount := SLARSetup.ArAcct; - Sender.CreateGeneralJournalLine( - CopyStr(CustomerBatchNameTxt, 1, MaxStrLen(CustomerBatchNameTxt)), - GLDocNbr, - SLARDoc.DocDesc, - SLARDoc.DocDate, - SLARDoc.DocDate, - (SLARDoc.DocBal * -1), - (SLARDoc.DocBal * -1), - '', - BalancingAccount - ); - Sender.SetGeneralJournalLineDocumentType(DocTypeToSet::Payment); - Sender.SetGeneralJournalLineSourceCode(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); - if (SLARDoc.SlsperId.TrimEnd() <> '') then begin - Sender.CreateSalespersonPurchaserIfNeeded(SLARDoc.SlsperId, '', '', ''); - Sender.SetGeneralJournalLineSalesPersonCode(SLARDoc.SlsperId); + Sender.CreateGeneralJournalLine( + CopyStr(CustomerBatchNameTxt, 1, MaxStrLen(CustomerBatchNameTxt)), + GLDocNbr, + SLARDoc.DocDesc, + SLARDoc.DocDate, + SLARDoc.DocDate, + (SLARDoc.DocBal * -1), + (SLARDoc.DocBal * -1), + '', + BalancingAccount + ); + Sender.SetGeneralJournalLineDocumentType(DocTypeToSet::Payment); + Sender.SetGeneralJournalLineSourceCode(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); + if (SLARDoc.SlsperId.TrimEnd() <> '') then begin + Sender.CreateSalespersonPurchaserIfNeeded(SLARDoc.SlsperId, '', '', ''); + Sender.SetGeneralJournalLineSalesPersonCode(SLARDoc.SlsperId); + end; + if SLARDoc.OrdNbr.TrimEnd() <> '' then + Sender.SetGeneralJournalLineExternalDocumentNo(SLARDoc.OrdNbr); end; - if SLARDoc.OrdNbr.TrimEnd() <> '' then - Sender.SetGeneralJournalLineExternalDocumentNo(SLARDoc.OrdNbr); until SLARDoc.Next() = 0; SLARDoc.Reset(); @@ -324,47 +335,95 @@ codeunit 47018 "SL Customer Migrator" SLARDoc.SetRange(CustId, SLCustomer.CustId); SLARDoc.SetFilter(DocType, '%1|%2|%3', ARDocTypeCreditMemoTxt, ARDocTypeSmallBalanceTxt, ARDocTypeNSFReversalTxt); //Credit Memos SLARDoc.SetFilter(DocBal, '<>%1', 0); + SLARDoc.SetFilter(Rlsed, '1'); if SLARDoc.FindSet() then repeat - DataMigrationErrorLogging.SetLastRecordUnderProcessing(Format(SLARDoc.RecordId)); - GLDocNbr := SLPrefixTxt + SLARDoc.RefNbr; - BalancingAccount := SLARSetup.ArAcct; + SLBatch.Get(ARSetupIDTxt, SLARDoc.BatNbr); + if (SLBatch.Status = StatusPostedTxt) or (SLBatch.Status = StatusCompletedTxt) then begin + DataMigrationErrorLogging.SetLastRecordUnderProcessing(Format(SLARDoc.RecordId)); + GLDocNbr := SLPrefixTxt + SLARDoc.RefNbr; + BalancingAccount := SLARSetup.ArAcct; + + if SLARDoc.DocType = ARDocTypeCreditMemoTxt then + Sender.CreateGeneralJournalLine( + CopyStr(CustomerBatchNameTxt, 1, MaxStrLen(CustomerBatchNameTxt)), + GLDocNbr, + SLARDoc.DocDesc, + SLARDoc.DocDate, + SLARDoc.DueDate, + (SLARDoc.DocBal * -1), + (SLARDoc.DocBal * -1), + '', + BalancingAccount + ) + else + Sender.CreateGeneralJournalLine( + CopyStr(CustomerBatchNameTxt, 1, MaxStrLen(CustomerBatchNameTxt)), + GLDocNbr, + SLARDoc.DocDesc, + SLARDoc.DocDate, + SLARDoc.DocDate, + (SLARDoc.DocBal * -1), + (SLARDoc.DocBal * -1), + '', + BalancingAccount + ); + Sender.SetGeneralJournalLineDocumentType(DocTypeToSet::"Credit Memo"); + Sender.SetGeneralJournalLineSourceCode(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); + if (SLARDoc.SlsperId.TrimEnd() <> '') then begin + Sender.CreateSalespersonPurchaserIfNeeded(SLARDoc.SlsperId, '', '', ''); + Sender.SetGeneralJournalLineSalesPersonCode(SLARDoc.SlsperId); + end; + if SLARDoc.OrdNbr.TrimEnd() <> '' then + Sender.SetGeneralJournalLineExternalDocumentNo(SLARDoc.OrdNbr); + + // Temporary code to set the Due Date on Charge Memos until the Payment Terms migration is implemented. + if SLARDoc.DocType = ARDocTypeCreditMemoTxt then begin + GenJournalLine.SetRange("Journal Batch Name", CustomerBatchNameTxt); + GenJournalLine.SetRange("Document No.", GLDocNbr); + if GenJournalLine.FindLast() then begin + GenJournalLine."Due Date" := SLARDoc.DueDate; + GenJournalLine.Modify(); + end; + end; + end; + until SLARDoc.Next() = 0; + + SLARDoc.Reset(); + SLARDoc.SetRange(CpnyID, CompanyName); + SLARDoc.SetRange(CustId, SLCustomer.CustId); + SLARDoc.SetRange(DocType, ARDocTypeFinanceChargeTxt); // Finance Charge + SLARDoc.SetFilter(DocBal, '<>%1', 0); + SLARDoc.SetFilter(Rlsed, '1'); + if SLARDoc.FindSet() then + repeat + SLBatch.Get(ARSetupIDTxt, SLARDoc.BatNbr); + if SLBatch.Status = StatusPostedTxt then begin + DataMigrationErrorLogging.SetLastRecordUnderProcessing(Format(SLARDoc.RecordId)); + GLDocNbr := SLPrefixTxt + SLARDoc.RefNbr; + BalancingAccount := SLARSetup.ArAcct; - if SLARDoc.DocType = ARDocTypeCreditMemoTxt then Sender.CreateGeneralJournalLine( CopyStr(CustomerBatchNameTxt, 1, MaxStrLen(CustomerBatchNameTxt)), GLDocNbr, SLARDoc.DocDesc, SLARDoc.DocDate, SLARDoc.DueDate, - (SLARDoc.DocBal * -1), - (SLARDoc.DocBal * -1), - '', - BalancingAccount - ) - else - Sender.CreateGeneralJournalLine( - CopyStr(CustomerBatchNameTxt, 1, MaxStrLen(CustomerBatchNameTxt)), - GLDocNbr, - SLARDoc.DocDesc, - SLARDoc.DocDate, - SLARDoc.DocDate, - (SLARDoc.DocBal * -1), - (SLARDoc.DocBal * -1), + SLARDoc.DocBal, + SLARDoc.DocBal, '', BalancingAccount ); - Sender.SetGeneralJournalLineDocumentType(DocTypeToSet::"Credit Memo"); - Sender.SetGeneralJournalLineSourceCode(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); - if (SLARDoc.SlsperId.TrimEnd() <> '') then begin - Sender.CreateSalespersonPurchaserIfNeeded(SLARDoc.SlsperId, '', '', ''); - Sender.SetGeneralJournalLineSalesPersonCode(SLARDoc.SlsperId); - end; - if SLARDoc.OrdNbr.TrimEnd() <> '' then - Sender.SetGeneralJournalLineExternalDocumentNo(SLARDoc.OrdNbr); + Sender.SetGeneralJournalLineDocumentType(DocTypeToSet::"Finance Charge Memo"); + Sender.SetGeneralJournalLineSourceCode(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); + if (SLARDoc.SlsperId.TrimEnd() <> '') then begin + Sender.CreateSalespersonPurchaserIfNeeded(SLARDoc.SlsperId, '', '', ''); + Sender.SetGeneralJournalLineSalesPersonCode(SLARDoc.SlsperId); + end; + if SLARDoc.OrdNbr.TrimEnd() <> '' then + Sender.SetGeneralJournalLineExternalDocumentNo(SLARDoc.OrdNbr); - // Temporary code to set the Due Date on Credit Memos until the Payment Terms migration is implemented. - if SLARDoc.DocType = ARDocTypeCreditMemoTxt then begin + // Temporary code to set the Due Date on Finance Charge Memos until the Payment Terms migration is implemented. GenJournalLine.SetRange("Journal Batch Name", CustomerBatchNameTxt); GenJournalLine.SetRange("Document No.", GLDocNbr); if GenJournalLine.FindLast() then begin @@ -373,45 +432,5 @@ codeunit 47018 "SL Customer Migrator" end; end; until SLARDoc.Next() = 0; - - SLARDoc.Reset(); - SLARDoc.SetRange(CpnyID, CompanyName); - SLARDoc.SetRange(CustId, SLCustomer.CustId); - SLARDoc.SetRange(DocType, ARDocTypeFinanceChargeTxt); // Finance Charge - SLARDoc.SetFilter(DocBal, '<>%1', 0); - if SLARDoc.FindSet() then - repeat - DataMigrationErrorLogging.SetLastRecordUnderProcessing(Format(SLARDoc.RecordId)); - GLDocNbr := SLPrefixTxt + SLARDoc.RefNbr; - BalancingAccount := SLARSetup.ArAcct; - - Sender.CreateGeneralJournalLine( - CopyStr(CustomerBatchNameTxt, 1, MaxStrLen(CustomerBatchNameTxt)), - GLDocNbr, - SLARDoc.DocDesc, - SLARDoc.DocDate, - SLARDoc.DueDate, - SLARDoc.DocBal, - SLARDoc.DocBal, - '', - BalancingAccount - ); - Sender.SetGeneralJournalLineDocumentType(DocTypeToSet::"Finance Charge Memo"); - Sender.SetGeneralJournalLineSourceCode(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); - if (SLARDoc.SlsperId.TrimEnd() <> '') then begin - Sender.CreateSalespersonPurchaserIfNeeded(SLARDoc.SlsperId, '', '', ''); - Sender.SetGeneralJournalLineSalesPersonCode(SLARDoc.SlsperId); - end; - if SLARDoc.OrdNbr.TrimEnd() <> '' then - Sender.SetGeneralJournalLineExternalDocumentNo(SLARDoc.OrdNbr); - - // Temporary code to set the Due Date on Finance Charge Memos until the Payment Terms migration is implemented. - GenJournalLine.SetRange("Journal Batch Name", CustomerBatchNameTxt); - GenJournalLine.SetRange("Document No.", GLDocNbr); - if GenJournalLine.FindLast() then begin - GenJournalLine."Due Date" := SLARDoc.DueDate; - GenJournalLine.Modify(); - end; - until SLARDoc.Next() = 0; end; } \ No newline at end of file diff --git a/Apps/W1/HybridSL/app/src/Migration/History/SLAPDocBuffer.Table.al b/Apps/W1/HybridSL/app/src/Migration/History/SLAPDocBuffer.Table.al index 6fd1a3ae33..01f04ce00b 100644 --- a/Apps/W1/HybridSL/app/src/Migration/History/SLAPDocBuffer.Table.al +++ b/Apps/W1/HybridSL/app/src/Migration/History/SLAPDocBuffer.Table.al @@ -65,7 +65,7 @@ table 47073 "SL APDoc Buffer" { Caption = 'CodeType'; } - field(14; CpnyID; Text[10]) + field(14; CpnyID; Text[30]) { Caption = 'CpnyID'; } diff --git a/Apps/W1/HybridSL/app/src/Migration/History/SLARDocBuffer.Table.al b/Apps/W1/HybridSL/app/src/Migration/History/SLARDocBuffer.Table.al index 2a6ec09824..a5fd812873 100644 --- a/Apps/W1/HybridSL/app/src/Migration/History/SLARDocBuffer.Table.al +++ b/Apps/W1/HybridSL/app/src/Migration/History/SLARDocBuffer.Table.al @@ -73,7 +73,7 @@ table 47074 "SL ARDoc Buffer" { Caption = 'ContractID'; } - field(16; CpnyID; Text[10]) + field(16; CpnyID; Text[30]) { Caption = 'CpnyID'; } diff --git a/Apps/W1/HybridSL/app/src/Migration/History/SLBatch.Table.al b/Apps/W1/HybridSL/app/src/Migration/History/SLBatch.Table.al index e99460b433..49862ff407 100644 --- a/Apps/W1/HybridSL/app/src/Migration/History/SLBatch.Table.al +++ b/Apps/W1/HybridSL/app/src/Migration/History/SLBatch.Table.al @@ -57,7 +57,7 @@ table 47027 "SL Batch" { Caption = 'Cleared'; } - field(12; CpnyID; Text[10]) + field(12; CpnyID; Text[30]) { Caption = 'CpnyID'; } diff --git a/Apps/W1/HybridSL/app/src/Migration/SLTables/SLPopulateAccountHistory.Codeunit.al b/Apps/W1/HybridSL/app/src/Migration/SLTables/SLPopulateAccountHistory.Codeunit.al index 86b52e583a..469b774096 100644 --- a/Apps/W1/HybridSL/app/src/Migration/SLTables/SLPopulateAccountHistory.Codeunit.al +++ b/Apps/W1/HybridSL/app/src/Migration/SLTables/SLPopulateAccountHistory.Codeunit.al @@ -141,7 +141,17 @@ codeunit 47002 "SL Populate Account History" NbrSegments: Integer; begin NbrSegments := 0; - SLFlexDef.SetRange(FieldClassName, 'SUBACCOUNT'); + SLFlexDef.SetRange(FieldClassName, SubaccountTxt); + if SLFlexDef.FindFirst() then + NbrSegments := SLFlexDef.NumberSegments; + exit(NbrSegments); + end; + + internal procedure PopulateSegmentLengths() + var + SLFlexDef: Record "SL FlexDef"; + begin + SLFlexDef.SetRange(FieldClassName, SubaccountTxt); if SLFlexDef.FindFirst() then begin SegLen1 := SLFlexDef.SegLength00; SegLen2 := SLFlexDef.SegLength01; @@ -151,15 +161,14 @@ codeunit 47002 "SL Populate Account History" SegLen6 := SLFlexDef.SegLength05; SegLen7 := SLFlexDef.SegLength06; SegLen8 := SLFlexDef.SegLength07; - NbrSegments := SLFlexDef.NumberSegments; end; - exit(NbrSegments); end; internal procedure GetSubAcctSegmentText(Subaccount: Text[24]; SegmentNo: Integer; NbrOfSegments: Integer): Text[24] var SubaccountSegmentText: Text; begin + PopulateSegmentLengths(); case SegmentNo of 1: begin @@ -227,4 +236,5 @@ codeunit 47002 "SL Populate Account History" SegLen6: Integer; SegLen7: Integer; SegLen8: Integer; + SubaccountTxt: Label 'SUBACCOUNT', Locked = true; } \ No newline at end of file diff --git a/Apps/W1/HybridSL/app/src/Migration/SLTables/SLPopulateAccounts.Codeunit.al b/Apps/W1/HybridSL/app/src/Migration/SLTables/SLPopulateAccounts.Codeunit.al index 7324159627..bcf85176bc 100644 --- a/Apps/W1/HybridSL/app/src/Migration/SLTables/SLPopulateAccounts.Codeunit.al +++ b/Apps/W1/HybridSL/app/src/Migration/SLTables/SLPopulateAccounts.Codeunit.al @@ -55,13 +55,13 @@ codeunit 47019 "SL Populate Accounts" begin case (SLAccountType.Trim().Substring(2, 1)) of 'A': - exit(true); + exit(false); 'L': - exit(true); - 'I': exit(false); + 'I': + exit(true); 'E': - exit(false); + exit(true); end; end; } \ No newline at end of file diff --git a/Apps/W1/HybridSL/app/src/Migration/SLTables/SLPopulateFiscalPeriods.Codeunit.al b/Apps/W1/HybridSL/app/src/Migration/SLTables/SLPopulateFiscalPeriods.Codeunit.al index 409d920f99..f2d373f52b 100644 --- a/Apps/W1/HybridSL/app/src/Migration/SLTables/SLPopulateFiscalPeriods.Codeunit.al +++ b/Apps/W1/HybridSL/app/src/Migration/SLTables/SLPopulateFiscalPeriods.Codeunit.al @@ -22,7 +22,6 @@ codeunit 47003 "SL Populate Fiscal Periods" FPDateBeg: Date; FPDateEnd: Date; CurFiscalYear: Integer; - PrevFiscalYear: Integer; FirstFiscalYear: Integer; Index: Integer; IndexYear: Integer; @@ -47,8 +46,6 @@ codeunit 47003 "SL Populate Fiscal Periods" SLGLSetup.Reset(); if SLGLSetup.FindFirst() then begin Evaluate(CurFiscalYear, CopyStr(SLGLSetup.PerNbr, 1, YearLength)); - Evaluate(PrevFiscalYear, CopyStr(SLGLSetup.PerNbr, 1, YearLength)); - PrevFiscalYear := PrevFiscalYear - 1; NumberOfPeriods := SLGLSetup.NbrPer; BeginFiscalYear := SLGLSetup.BegFiscalYr; FiscalPerEnd00 := SLGLSetup.FiscalPerEnd00; diff --git a/Apps/W1/HybridSL/app/src/Migration/Support/SLHelperFunctions.Codeunit.al b/Apps/W1/HybridSL/app/src/Migration/Support/SLHelperFunctions.Codeunit.al index d313e55a6f..f781c228de 100644 --- a/Apps/W1/HybridSL/app/src/Migration/Support/SLHelperFunctions.Codeunit.al +++ b/Apps/W1/HybridSL/app/src/Migration/Support/SLHelperFunctions.Codeunit.al @@ -28,7 +28,6 @@ using System.Integration; codeunit 47023 "SL Helper Functions" { - Access = Internal; Permissions = tabledata "Dimension Set Entry" = rimd, tabledata "G/L Account" = rimd, tabledata "G/L Entry" = rimd, @@ -65,7 +64,7 @@ codeunit 47023 "SL Helper Functions" GeneralTemplateNameTxt: Label 'GENERAL', Locked = true; MigrationLogAreaBatchPostingTxt: Label 'Batch Posting', Locked = true; - internal procedure GetPostingAccountNumber(AccountToGet: Text): Code[20] + procedure GetPostingAccountNumber(AccountToGet: Text): Code[20] var SLAccountStagingSetup: Record "SL Account Staging Setup"; begin @@ -114,7 +113,7 @@ codeunit 47023 "SL Helper Functions" end; end; - internal procedure GetMigrationTypeTxt(): Text[250] + procedure GetMigrationTypeTxt(): Text[250] begin exit(CopyStr(MigrationTypeTxt, 1, MaxStrLen(MigrationTypeTxt))); end; @@ -232,9 +231,9 @@ codeunit 47023 "SL Helper Functions" IncomeBalanceType: Option "Income Statement","Balance Sheet"; begin if SLAccountStaging.IncomeBalance then - exit(IncomeBalanceType::"Balance Sheet"); + exit(IncomeBalanceType::"Income Statement"); - exit(IncomeBalanceType::"Income Statement"); + exit(IncomeBalanceType::"Balance Sheet"); end; internal procedure ResetAdjustforPaymentInGLSetup(var Flag: Boolean); @@ -575,7 +574,7 @@ codeunit 47023 "SL Helper Functions" if (GlobalDim1 <> '') or (GlobalDim2 <> '') then GeneralLedgerSetup.Modify(); - SetShorcutDimenions(); + SetShortcutDimenions(); end; internal procedure CheckPluralization(var GlobalDim: Code[20]) @@ -588,21 +587,25 @@ codeunit 47023 "SL Helper Functions" end; end; - internal procedure SetShorcutDimenions() + internal procedure SetShortcutDimenions() var GeneralLedgerSetup: Record "General Ledger Setup"; SLSegments: Record "SL Segments"; + GlobalDimension1Code: Text[20]; + GlobalDimension2Code: Text[20]; Modified: Boolean; i: Integer; begin i := 1; Modified := false; GeneralLedgerSetup.Get(); + GlobalDimension1Code := GeneralLedgerSetup."Global Dimension 1 Code"; + GlobalDimension2Code := GeneralLedgerSetup."Global Dimension 2 Code"; SLSegments.SetCurrentKey(SLSegments.SegmentNumber); SLSegments.Ascending(true); if SLSegments.FindSet() then repeat - if (SLSegments.Id <> GeneralLedgerSetup."Global Dimension 1 Code") and (SLSegments.Id <> GeneralLedgerSetup."Global Dimension 2 Code") then begin + if (SLSegments.Id <> GlobalDimension1Code) and (SLSegments.Id <> GlobalDimension2Code) then begin case i of 1: GeneralLedgerSetup."Shortcut Dimension 3 Code" := SLSegments.Id; @@ -663,6 +666,15 @@ codeunit 47023 "SL Helper Functions" end; end; + internal procedure GetSLSegmentsIdBySegmentNumber(SegmentNumber: Integer): Text[20] + var + SLSegments: Record "SL Segments"; + begin + SLSegments.SetFilter(SLSegments.SegmentNumber, '%1', SegmentNumber); + if SLSegments.FindFirst() then + exit(SLSegments.Id); + end; + internal procedure SetProcessesRunning(IsRunning: Boolean) var SLCmpnyMigratnSettings: Record "SL Company Migration Settings"; @@ -1084,6 +1096,20 @@ codeunit 47023 "SL Helper Functions" SLConfiguration.Modify(); end; + internal procedure RunPreMigrationCleanup() + var + Dimension: Record "Dimension"; + GeneralPostingSetup: Record "General Posting Setup"; + GenProductPostingGroup: Record "Gen. Product Posting Group"; + begin + if not Dimension.IsEmpty() then + Dimension.DeleteAll(true); + if not GeneralPostingSetup.IsEmpty() then + GeneralPostingSetup.DeleteAll(true); + if not GenProductPostingGroup.IsEmpty() then + GenProductPostingGroup.DeleteAll(true); + end; + internal procedure CreatePreMigrationData(): Boolean var SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; diff --git a/Apps/W1/HybridSL/app/src/Migration/Vendors/SLAPBalances.Table.al b/Apps/W1/HybridSL/app/src/Migration/Vendors/SLAPBalances.Table.al index c3cff299f8..55cbd97e27 100644 --- a/Apps/W1/HybridSL/app/src/Migration/Vendors/SLAPBalances.Table.al +++ b/Apps/W1/HybridSL/app/src/Migration/Vendors/SLAPBalances.Table.al @@ -7,13 +7,12 @@ namespace Microsoft.DataMigration.SL; table 47046 "SL AP_Balances" { - Access = Internal; Caption = 'SL AP_Balances'; DataClassification = CustomerContent; fields { - field(1; CpnyID; Text[10]) + field(1; CpnyID; Text[30]) { Caption = 'CpnyID'; } diff --git a/Apps/W1/HybridSL/app/src/Migration/Vendors/SLAPSetup.Table.al b/Apps/W1/HybridSL/app/src/Migration/Vendors/SLAPSetup.Table.al index 4a95cf5113..53aa195c56 100644 --- a/Apps/W1/HybridSL/app/src/Migration/Vendors/SLAPSetup.Table.al +++ b/Apps/W1/HybridSL/app/src/Migration/Vendors/SLAPSetup.Table.al @@ -7,7 +7,6 @@ namespace Microsoft.DataMigration.SL; table 47047 "SL APSetup" { - Access = Internal; Caption = 'SL APSetup'; DataClassification = CustomerContent; diff --git a/Apps/W1/HybridSL/app/src/Migration/Vendors/SLVendor.Table.al b/Apps/W1/HybridSL/app/src/Migration/Vendors/SLVendor.Table.al index 1cd5906a3c..d79ef27293 100644 --- a/Apps/W1/HybridSL/app/src/Migration/Vendors/SLVendor.Table.al +++ b/Apps/W1/HybridSL/app/src/Migration/Vendors/SLVendor.Table.al @@ -7,7 +7,6 @@ namespace Microsoft.DataMigration.SL; table 47049 "SL Vendor" { - Access = Internal; Caption = 'SL Vendor'; DataClassification = CustomerContent; diff --git a/Apps/W1/HybridSL/app/src/Migration/Vendors/SLVendorMigrator.Codeunit.al b/Apps/W1/HybridSL/app/src/Migration/Vendors/SLVendorMigrator.Codeunit.al index 9a5a6acf21..10bca00e94 100644 --- a/Apps/W1/HybridSL/app/src/Migration/Vendors/SLVendorMigrator.Codeunit.al +++ b/Apps/W1/HybridSL/app/src/Migration/Vendors/SLVendorMigrator.Codeunit.al @@ -21,6 +21,7 @@ codeunit 47021 "SL Vendor Migrator" SLPrefixTxt: Label 'SL', Locked = true; SourceCodeTxt: Label 'GENJNL', Locked = true; StatusInactiveTxt: Label 'I', Locked = true; + StatusPostedTxt: Label 'P', Locked = true; VendorBatchNameTxt: Label 'SLVEND', Locked = true; [EventSubscriber(ObjectType::Codeunit, Codeunit::"Vendor Data Migration Facade", OnMigrateVendor, '', true, true)] @@ -156,6 +157,7 @@ codeunit 47021 "SL Vendor Migrator" var SLAPDoc: Record "SL APDoc Buffer"; SLAPSetup: Record "SL APSetup"; + SLBatch: Record "SL Batch"; SLVendor: Record "SL Vendor"; SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; GenJournalLine: Record "Gen. Journal Line"; @@ -192,32 +194,36 @@ codeunit 47021 "SL Vendor Migrator" SLAPDoc.SetRange(VendId, SLVendor.VendId); SLAPDoc.SetRange(DocType, APDocTypePrePaymentTxt); // Payment SLAPDoc.SetFilter(DocBal, '<>%1', 0); + SLAPDoc.SetFilter(Rlsed, '1'); if SLAPDoc.FindSet() then repeat - DataMigrationErrorLogging.SetLastRecordUnderProcessing(Format(SLAPDoc.RecordID)); - GLDocNbr := SLPrefixTxt + SLAPDoc.RefNbr; - BalancingAccount := SLAPSetup.APAcct; - if SLAPDoc.PONbr.TrimEnd() <> '' then - if SLAPDoc.PONbr.TrimEnd() <> '*' then - LineDescription := JournalLinePOPrefixTxt + SLAPDoc.PONbr.TrimEnd() + '-' + SLAPDoc.DocDesc.TrimEnd() - else - LineDescription := CopyStr(SLAPDoc.DocDesc.TrimEnd(), 1, MaxStrLen(SLAPDoc.DocDesc)); - - Sender.CreateGeneralJournalLine( - CopyStr(VendorBatchNameTxt, 1, MaxStrLen(VendorBatchNameTxt)), - GLDocNbr, - LineDescription, - SLAPDoc.DocDate, - SLAPDoc.DocDate, - SLAPDoc.DocBal, - SLAPDoc.DocBal, - '', - BalancingAccount - ); - Sender.SetGeneralJournalLineDocumentType(DocTypeToSet::Payment); - DataMigrationFacadeHelper.CreateSourceCodeIfNeeded(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); - Sender.SetGeneralJournalLineSourceCode(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); - Sender.SetGeneralJournalLineExternalDocumentNo(SLAPDoc.RefNbr.TrimEnd() + '-' + SLAPDoc.InvcNbr.TrimEnd()); + SLBatch.Get(APSetupIDTxt, SLAPDoc.BatNbr); + if SLBatch.Status = StatusPostedTxt then begin + DataMigrationErrorLogging.SetLastRecordUnderProcessing(Format(SLAPDoc.RecordID)); + GLDocNbr := SLPrefixTxt + SLAPDoc.RefNbr; + BalancingAccount := SLAPSetup.APAcct; + if SLAPDoc.PONbr.TrimEnd() <> '' then + if SLAPDoc.PONbr.TrimEnd() <> '*' then + LineDescription := JournalLinePOPrefixTxt + SLAPDoc.PONbr.TrimEnd() + '-' + SLAPDoc.DocDesc.TrimEnd() + else + LineDescription := CopyStr(SLAPDoc.DocDesc.TrimEnd(), 1, MaxStrLen(SLAPDoc.DocDesc)); + + Sender.CreateGeneralJournalLine( + CopyStr(VendorBatchNameTxt, 1, MaxStrLen(VendorBatchNameTxt)), + GLDocNbr, + LineDescription, + SLAPDoc.DocDate, + SLAPDoc.DocDate, + SLAPDoc.DocBal, + SLAPDoc.DocBal, + '', + BalancingAccount + ); + Sender.SetGeneralJournalLineDocumentType(DocTypeToSet::Payment); + DataMigrationFacadeHelper.CreateSourceCodeIfNeeded(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); + Sender.SetGeneralJournalLineSourceCode(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); + Sender.SetGeneralJournalLineExternalDocumentNo(SLAPDoc.RefNbr.TrimEnd() + '-' + SLAPDoc.InvcNbr.TrimEnd()); + end; until SLAPDoc.Next() = 0; SLAPDoc.Reset(); @@ -225,39 +231,43 @@ codeunit 47021 "SL Vendor Migrator" SLAPDoc.SetRange(VendId, SLVendor.VendId); SLAPDoc.SetFilter(DocType, '%1|%2', APDocTypeVoucherTxt, APDocTypeAdjustmentCreditTxt); // Invoice SLAPDoc.SetFilter(DocBal, '<>%1', 0); + SLAPDoc.SetFilter(Rlsed, '1'); if SLAPDoc.FindSet() then repeat - DataMigrationErrorLogging.SetLastRecordUnderProcessing(Format(SLAPDoc.RecordID)); - GLDocNbr := SLPrefixTxt + SLAPDoc.RefNbr; - BalancingAccount := SLAPSetup.APAcct; - if SLAPDoc.PONbr.TrimEnd() <> '' then - if SLAPDoc.PONbr.TrimEnd() <> '*' then - LineDescription := JournalLinePOPrefixTxt + SLAPDoc.PONbr.TrimEnd() + '-' + SLAPDoc.DocDesc.TrimEnd() - else - LineDescription := CopyStr(SLAPDoc.DocDesc.TrimEnd(), 1, MaxStrLen(SLAPDoc.DocDesc)); - - Sender.CreateGeneralJournalLine( - CopyStr(VendorBatchNameTxt, 1, MaxStrLen(VendorBatchNameTxt)), - GLDocNbr, - LineDescription, - SLAPDoc.DocDate, - SLAPDoc.DueDate, - SLAPDoc.DocBal * -1, - SLAPDoc.DocBal * -1, - '', - BalancingAccount - ); - Sender.SetGeneralJournalLineDocumentType(DocTypeToSet::Invoice); - DataMigrationFacadeHelper.CreateSourceCodeIfNeeded(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); - Sender.SetGeneralJournalLineSourceCode(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); - Sender.SetGeneralJournalLineExternalDocumentNo(SLAPDoc.RefNbr.TrimEnd() + '-' + SLAPDoc.InvcNbr.TrimEnd()); - - // Temporary code to set the Due Date on Invoices until the Payment Terms migration is implemented. - GenJournalLine.SetRange("Journal Batch Name", VendorBatchNameTxt); - GenJournalLine.SetRange("Document No.", GLDocNbr); - if GenJournalLine.FindLast() then begin - GenJournalLine."Due Date" := SLAPDoc.DueDate; - GenJournalLine.Modify(); + SLBatch.Get(APSetupIDTxt, SLAPDoc.BatNbr); + if SLBatch.Status = StatusPostedTxt then begin + DataMigrationErrorLogging.SetLastRecordUnderProcessing(Format(SLAPDoc.RecordID)); + GLDocNbr := SLPrefixTxt + SLAPDoc.RefNbr; + BalancingAccount := SLAPSetup.APAcct; + if SLAPDoc.PONbr.TrimEnd() <> '' then + if SLAPDoc.PONbr.TrimEnd() <> '*' then + LineDescription := JournalLinePOPrefixTxt + SLAPDoc.PONbr.TrimEnd() + '-' + SLAPDoc.DocDesc.TrimEnd() + else + LineDescription := CopyStr(SLAPDoc.DocDesc.TrimEnd(), 1, MaxStrLen(SLAPDoc.DocDesc)); + + Sender.CreateGeneralJournalLine( + CopyStr(VendorBatchNameTxt, 1, MaxStrLen(VendorBatchNameTxt)), + GLDocNbr, + LineDescription, + SLAPDoc.DocDate, + SLAPDoc.DueDate, + SLAPDoc.DocBal * -1, + SLAPDoc.DocBal * -1, + '', + BalancingAccount + ); + Sender.SetGeneralJournalLineDocumentType(DocTypeToSet::Invoice); + DataMigrationFacadeHelper.CreateSourceCodeIfNeeded(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); + Sender.SetGeneralJournalLineSourceCode(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); + Sender.SetGeneralJournalLineExternalDocumentNo(SLAPDoc.RefNbr.TrimEnd() + '-' + SLAPDoc.InvcNbr.TrimEnd()); + + // Termporary code to set the Due Date on Invoices until the Payment Terms migration is implemented. + GenJournalLine.SetRange("Journal Batch Name", VendorBatchNameTxt); + GenJournalLine.SetRange("Document No.", GLDocNbr); + if GenJournalLine.FindLast() then begin + GenJournalLine."Due Date" := SLAPDoc.DueDate; + GenJournalLine.Modify(); + end; end; until SLAPDoc.Next() = 0; @@ -266,40 +276,44 @@ codeunit 47021 "SL Vendor Migrator" SLAPDoc.SetRange(VendId, SLVendor.VendId); SLAPDoc.SetFilter(DocType, APDocTypeAdjustmentDebitTxt); // Credit Memo SLAPDoc.SetFilter(DocBal, '<>%1', 0); + SLAPDoc.SetFilter(Rlsed, '1'); if SLAPDoc.FindSet() then repeat - DataMigrationErrorLogging.SetLastRecordUnderProcessing(Format(SLAPDoc.RecordID)); - GLDocNbr := SLPrefixTxt + SLAPDoc.RefNbr; - BalancingAccount := SLAPSetup.APAcct; - if SLAPDoc.PONbr.TrimEnd() <> '' then - if SLAPDoc.PONbr.TrimEnd() <> '*' then - LineDescription := JournalLinePOPrefixTxt + SLAPDoc.PONbr.TrimEnd() + '-' + SLAPDoc.DocDesc.TrimEnd() - else - LineDescription := CopyStr(SLAPDoc.DocDesc.TrimEnd(), 1, MaxStrLen(SLAPDoc.DocDesc)); - - Sender.CreateGeneralJournalLine( - CopyStr(VendorBatchNameTxt, 1, MaxStrLen(VendorBatchNameTxt)), - GLDocNbr, - LineDescription, - SLAPDoc.DocDate, - SLAPDoc.DueDate, - SLAPDoc.DocBal, - SLAPDoc.DocBal, - '', - BalancingAccount - ); - - Sender.SetGeneralJournalLineDocumentType(DocTypeToSet::"Credit Memo"); - DataMigrationFacadeHelper.CreateSourceCodeIfNeeded(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); - Sender.SetGeneralJournalLineSourceCode(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); - Sender.SetGeneralJournalLineExternalDocumentNo(SLAPDoc.RefNbr.TrimEnd() + '-' + SLAPDoc.InvcNbr.TrimEnd()); - - // Temporary code to set the Due Date on Credit Memos until the Payment Terms migration is implemented. - GenJournalLine.SetRange("Journal Batch Name", VendorBatchNameTxt); - GenJournalLine.SetRange("Document No.", GLDocNbr); - if GenJournalLine.FindLast() then begin - GenJournalLine."Due Date" := SLAPDoc.DueDate; - GenJournalLine.Modify(); + SLBatch.Get(APSetupIDTxt, SLAPDoc.BatNbr); + if SLBatch.Status = StatusPostedTxt then begin + DataMigrationErrorLogging.SetLastRecordUnderProcessing(Format(SLAPDoc.RecordID)); + GLDocNbr := SLPrefixTxt + SLAPDoc.RefNbr; + BalancingAccount := SLAPSetup.APAcct; + if SLAPDoc.PONbr.TrimEnd() <> '' then + if SLAPDoc.PONbr.TrimEnd() <> '*' then + LineDescription := JournalLinePOPrefixTxt + SLAPDoc.PONbr.TrimEnd() + '-' + SLAPDoc.DocDesc.TrimEnd() + else + LineDescription := CopyStr(SLAPDoc.DocDesc.TrimEnd(), 1, MaxStrLen(SLAPDoc.DocDesc)); + + Sender.CreateGeneralJournalLine( + CopyStr(VendorBatchNameTxt, 1, MaxStrLen(VendorBatchNameTxt)), + GLDocNbr, + LineDescription, + SLAPDoc.DocDate, + SLAPDoc.DueDate, + SLAPDoc.DocBal, + SLAPDoc.DocBal, + '', + BalancingAccount + ); + + Sender.SetGeneralJournalLineDocumentType(DocTypeToSet::"Credit Memo"); + DataMigrationFacadeHelper.CreateSourceCodeIfNeeded(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); + Sender.SetGeneralJournalLineSourceCode(CopyStr(SourceCodeTxt, 1, MaxStrLen(SourceCodeTxt))); + Sender.SetGeneralJournalLineExternalDocumentNo(SLAPDoc.RefNbr.TrimEnd() + '-' + SLAPDoc.InvcNbr.TrimEnd()); + + // Temporary code to set the Due Date on Credit Memos until the Payment Terms migration is implemented. + GenJournalLine.SetRange("Journal Batch Name", VendorBatchNameTxt); + GenJournalLine.SetRange("Document No.", GLDocNbr); + if GenJournalLine.FindLast() then begin + GenJournalLine."Due Date" := SLAPDoc.DueDate; + GenJournalLine.Modify(); + end; end; until SLAPDoc.Next() = 0; end; diff --git a/Apps/W1/HybridSL/app/src/codeunits/SLCloudMigration.Codeunit.al b/Apps/W1/HybridSL/app/src/codeunits/SLCloudMigration.Codeunit.al index 551df41806..5ed32897e4 100644 --- a/Apps/W1/HybridSL/app/src/codeunits/SLCloudMigration.Codeunit.al +++ b/Apps/W1/HybridSL/app/src/codeunits/SLCloudMigration.Codeunit.al @@ -122,6 +122,7 @@ codeunit 47001 "SL Cloud Migration" SelectLatestVersion(); SLHelperFunctions.SetProcessesRunning(true); + SLHelperFunctions.RunPreMigrationCleanup(); SLPopulateFiscalPeriods.CreateSLFiscalPeriodsFromGLSetup(); SLFiscalPeriods.MoveStagingData(); diff --git a/Apps/W1/HybridSL/app/src/codeunits/SLDimensions.Codeunit.al b/Apps/W1/HybridSL/app/src/codeunits/SLDimensions.Codeunit.al index 8d14bba17d..a03e6915d5 100644 --- a/Apps/W1/HybridSL/app/src/codeunits/SLDimensions.Codeunit.al +++ b/Apps/W1/HybridSL/app/src/codeunits/SLDimensions.Codeunit.al @@ -74,9 +74,9 @@ codeunit 47020 "SL Dimensions" 0: begin if FlexDefDescInSLSubaccountSegDesc(SLFlexDef.Descr00) then - SLSegments.Id := SLFlexDef.Descr00.Trim() + 's' + SLSegments.Id := SLFlexDef.Descr00.Trim().ToUpper() + 'S' else - SLSegments.Id := SLFlexDef.Descr00; + SLSegments.Id := CopyStr(SLFlexDef.Descr00.Trim().ToUpper(), 1, MaxStrLen(SLSegments.Id)); SLSegments.Name := SLFlexDef.Descr00; SLSegments.CodeCaption := SLFlexDef.Descr00.Trim() + ' Code'; SLSegments.FilterCaption := SLFlexDef.Descr00.Trim() + ' Filter'; @@ -87,9 +87,9 @@ codeunit 47020 "SL Dimensions" 1: begin if FlexDefDescInSLSubaccountSegDesc(SLFlexDef.Descr01) then - SLSegments.Id := SLFlexDef.Descr01.Trim() + 's' + SLSegments.Id := SLFlexDef.Descr01.Trim().ToUpper() + 'S' else - SLSegments.Id := SLFlexDef.Descr01; + SLSegments.Id := CopyStr(SLFlexDef.Descr01.Trim().ToUpper(), 1, MaxStrLen(SLSegments.Id)); SLSegments.Name := SLFlexDef.Descr01; SLSegments.CodeCaption := SLFlexDef.Descr01.Trim() + ' Code'; SLSegments.FilterCaption := SLFlexDef.Descr01.Trim() + ' Filter'; @@ -100,9 +100,9 @@ codeunit 47020 "SL Dimensions" 2: begin if FlexDefDescInSLSubaccountSegDesc(SLFlexDef.Descr02) then - SLSegments.Id := SLFlexDef.Descr02.Trim() + 's' + SLSegments.Id := SLFlexDef.Descr02.Trim().ToUpper() + 'S' else - SLSegments.Id := SLFlexDef.Descr02; + SLSegments.Id := CopyStr(SLFlexDef.Descr02.Trim().ToUpper(), 1, MaxStrLen(SLSegments.Id)); SLSegments.Name := SLFlexDef.Descr02; SLSegments.CodeCaption := SLFlexDef.Descr02.Trim() + ' Code'; SLSegments.FilterCaption := SLFlexDef.Descr02.Trim() + ' Filter'; @@ -113,9 +113,9 @@ codeunit 47020 "SL Dimensions" 3: begin if FlexDefDescInSLSubaccountSegDesc(SLFlexDef.Descr03) then - SLSegments.Id := SLFlexDef.Descr03.Trim() + 's' + SLSegments.Id := SLFlexDef.Descr03.Trim().ToUpper() + 'S' else - SLSegments.Id := SLFlexDef.Descr03; + SLSegments.Id := CopyStr(SLFlexDef.Descr03.Trim().ToUpper(), 1, MaxStrLen(SLSegments.Id)); SLSegments.Name := SLFlexDef.Descr03; SLSegments.CodeCaption := SLFlexDef.Descr03.Trim() + ' Code'; SLSegments.FilterCaption := SLFlexDef.Descr03.Trim() + ' Filter'; @@ -126,9 +126,9 @@ codeunit 47020 "SL Dimensions" 4: begin if FlexDefDescInSLSubaccountSegDesc(SLFlexDef.Descr04) then - SLSegments.Id := SLFlexDef.Descr04.Trim() + 's' + SLSegments.Id := SLFlexDef.Descr04.Trim().ToUpper() + 'S' else - SLSegments.Id := SLFlexDef.Descr04; + SLSegments.Id := CopyStr(SLFlexDef.Descr04.Trim().ToUpper(), 1, MaxStrLen(SLSegments.Id)); SLSegments.Name := SLFlexDef.Descr04; SLSegments.CodeCaption := SLFlexDef.Descr04.Trim() + ' Code'; SLSegments.FilterCaption := SLFlexDef.Descr04.Trim() + ' Filter'; @@ -139,9 +139,9 @@ codeunit 47020 "SL Dimensions" 5: begin if FlexDefDescInSLSubaccountSegDesc(SLFlexDef.Descr05) then - SLSegments.Id := SLFlexDef.Descr05.Trim() + 's' + SLSegments.Id := SLFlexDef.Descr05.Trim().ToUpper() + 'S' else - SLSegments.Id := SLFlexDef.Descr05; + SLSegments.Id := CopyStr(SLFlexDef.Descr05.Trim().ToUpper(), 1, MaxStrLen(SLSegments.Id)); SLSegments.Name := SLFlexDef.Descr05; SLSegments.CodeCaption := SLFlexDef.Descr05.Trim() + ' Code'; SLSegments.FilterCaption := SLFlexDef.Descr05.Trim() + ' Filter'; @@ -152,9 +152,9 @@ codeunit 47020 "SL Dimensions" 6: begin if FlexDefDescInSLSubaccountSegDesc(SLFlexDef.Descr06) then - SLSegments.Id := SLFlexDef.Descr06.Trim() + 's' + SLSegments.Id := SLFlexDef.Descr06.Trim().ToUpper() + 'S' else - SLSegments.Id := SLFlexDef.Descr06; + SLSegments.Id := CopyStr(SLFlexDef.Descr06.Trim().ToUpper(), 1, MaxStrLen(SLSegments.Id)); SLSegments.Name := SLFlexDef.Descr06; SLSegments.CodeCaption := SLFlexDef.Descr06.Trim() + ' Code'; SLSegments.FilterCaption := SLFlexDef.Descr06.Trim() + ' Filter'; @@ -165,9 +165,9 @@ codeunit 47020 "SL Dimensions" 7: begin if FlexDefDescInSLSubaccountSegDesc(SLFlexDef.Descr07) then - SLSegments.Id := SLFlexDef.Descr07.Trim() + 's' + SLSegments.Id := SLFlexDef.Descr07.Trim().ToUpper() + 'S' else - SLSegments.Id := SLFlexDef.Descr07; + SLSegments.Id := CopyStr(SLFlexDef.Descr07.Trim().ToUpper(), 1, MaxStrLen(SLSegments.Id)); SLSegments.Name := SLFlexDef.Descr07; SLSegments.CodeCaption := SLFlexDef.Descr07.Trim() + ' Code'; SLSegments.FilterCaption := SLFlexDef.Descr07.Trim() + ' Filter'; diff --git a/Apps/W1/HybridSL/app/src/pages/SLMigrationConfiguration.Page.al b/Apps/W1/HybridSL/app/src/pages/SLMigrationConfiguration.Page.al index e9f287c8b5..73421d7651 100644 --- a/Apps/W1/HybridSL/app/src/pages/SLMigrationConfiguration.Page.al +++ b/Apps/W1/HybridSL/app/src/pages/SLMigrationConfiguration.Page.al @@ -756,7 +756,7 @@ page 47018 "SL Migration Configuration" CurrPage.Update(); end; - internal procedure PrepSettingsForFieldUpdate(): Boolean + procedure PrepSettingsForFieldUpdate(): Boolean begin SLCompanyAdditionalSettings.SetFilter(Name, '<>%1', ''); SLCompanyAdditionalSettings.SetRange("Migration Completed", false); diff --git a/Apps/W1/HybridSL/app/src/tables/SLCompanyAdditionalSettings.Table.al b/Apps/W1/HybridSL/app/src/tables/SLCompanyAdditionalSettings.Table.al index fb96149f7c..feea1c22a9 100644 --- a/Apps/W1/HybridSL/app/src/tables/SLCompanyAdditionalSettings.Table.al +++ b/Apps/W1/HybridSL/app/src/tables/SLCompanyAdditionalSettings.Table.al @@ -9,7 +9,6 @@ using Microsoft.DataMigration; table 47061 "SL Company Additional Settings" { - Access = Internal; DataClassification = SystemMetadata; DataPerCompany = false; Description = 'Additional Company settings for a SL migration'; @@ -487,7 +486,7 @@ table 47061 "SL Company Additional Settings" } } - internal procedure GetSingleInstance() + procedure GetSingleInstance() var CurrentCompanyName: Text[50]; begin diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCDimension.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCDimension.csv new file mode 100644 index 0000000000..e8822f3a38 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCDimension.csv @@ -0,0 +1,8 @@ +Code,Name,Code Caption,Filter Caption +GROUP,Group,Group Code,Group Filter +LOCATIONS,Location,Location Code,Location Filter +REG/BRANCH,Reg/Branch,Reg/Branch Code,Reg/Branch Filter +REGION,Region,Region Code,Region Filter +REPORTING UNIT,Reporting Unit,Reporting Unit Code,Reporting Unit Filter +SALES TYPE,Sales Type,Sales Type Code,Sales Type Filter +TERRITORY,Territory,Territory Code,Territory Filter \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCDimensionValue.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCDimensionValue.csv new file mode 100644 index 0000000000..8071d46b6b --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCDimensionValue.csv @@ -0,0 +1,104 @@ +Dimension Code,Code,Name,Indentation,Global Dimension No. +GROUP,00,Default ,0,2 +GROUP,01,Group 1 ,0,2 +GROUP,99,Default 99 ,0,2 +LOCATIONS,0,Default 0 ,0,1 +LOCATIONS,00,Default ,0,1 +LOCATIONS,50,Default 50 ,0,1 +LOCATIONS,99,Default 99 ,0,1 +LOCATIONS,AA,Administration Offices ,0,1 +LOCATIONS,AT,Atlanta ,0,1 +LOCATIONS,CD,Canada ,0,1 +LOCATIONS,CH,Chicago ,0,1 +LOCATIONS,FR,France ,0,1 +LOCATIONS,GM,Germany ,0,1 +LOCATIONS,IT,Italy ,0,1 +LOCATIONS,LA,Los Angeles ,0,1 +LOCATIONS,NY,New York ,0,1 +LOCATIONS,SF,San Francisco ,0,1 +LOCATIONS,UK,United Kingdom ,0,1 +REG/BRANCH,000,Default ,0,4 +REG/BRANCH,100,Controller ,0,4 +REG/BRANCH,110,MIS ,0,4 +REG/BRANCH,120,PersonnelPersonnel ,0,4 +REG/BRANCH,130,Office Management ,0,4 +REG/BRANCH,140,Legal ,0,4 +REG/BRANCH,200,Purchasing ,0,4 +REG/BRANCH,210,Production ,0,4 +REG/BRANCH,220,Maintenance ,0,4 +REG/BRANCH,230,Engineering ,0,4 +REG/BRANCH,240,Inventory Management ,0,4 +REG/BRANCH,250,Quality Control ,0,4 +REG/BRANCH,260,Research and Development ,0,4 +REG/BRANCH,270,Shipping ,0,4 +REG/BRANCH,280,Receiving ,0,4 +REG/BRANCH,290,Traffic ,0,4 +REG/BRANCH,300,Planning ,0,4 +REG/BRANCH,310,Scheduling ,0,4 +REG/BRANCH,400,Marketing ,0,4 +REG/BRANCH,410,Sales Operations ,0,4 +REG/BRANCH,420,Customer Service ,0,4 +REG/BRANCH,430,Sales ,0,4 +REG/BRANCH,440,Retail Operations ,0,4 +REG/BRANCH,500,Default 500 ,0,4 +REG/BRANCH,999,Default 999 ,0,4 +REGION,0,Default ,0,6 +REGION,1,North ,0,6 +REGION,2,South ,0,6 +REGION,3,East ,0,6 +REGION,4,West ,0,6 +REGION,8,Southwest ,0,6 +REGION,9,Default 9 ,0,6 +REPORTING UNIT,00,Default ,0,3 +REPORTING UNIT,01,Administration ,0,3 +REPORTING UNIT,02,Manufacturing ,0,3 +REPORTING UNIT,03,Sales and Marketing ,0,3 +REPORTING UNIT,04,International ,0,3 +REPORTING UNIT,10,Default 10 ,0,3 +REPORTING UNIT,99,Default 99 ,0,3 +REPORTING UNIT,AT,AvaTax ,0,3 +REPORTING UNIT,CO,Consulting ,0,3 +REPORTING UNIT,EN,Engineering ,0,3 +REPORTING UNIT,EV,Events ,0,3 +REPORTING UNIT,GC,General Contractors ,0,3 +REPORTING UNIT,HH,Heavy/Highway Construction ,0,3 +REPORTING UNIT,MF,Build-to-Suit Manufacturing ,0,3 +REPORTING UNIT,SC,Specialty Contractors ,0,3 +REPORTING UNIT,SW,Software ,0,3 +SALES TYPE,00,Default ,0,5 +SALES TYPE,01,Retail ,0,5 +SALES TYPE,02,Wholesale ,0,5 +SALES TYPE,03,Mail Order ,0,5 +SALES TYPE,10,Assembled Product-10 ,0,5 +SALES TYPE,11,Component B1 ,0,5 +SALES TYPE,12,Component B2 ,0,5 +SALES TYPE,13,Component B3 ,0,5 +SALES TYPE,14,Component B4 ,0,5 +SALES TYPE,15,Component B5 ,0,5 +SALES TYPE,16,Component B6 ,0,5 +SALES TYPE,17,Component B7 ,0,5 +SALES TYPE,30,Assembled Product-30 ,0,5 +SALES TYPE,31,Component B1 ,0,5 +SALES TYPE,32,Component B2 ,0,5 +SALES TYPE,33,Component B3 ,0,5 +SALES TYPE,34,Component B4 ,0,5 +SALES TYPE,35,Component B5 ,0,5 +SALES TYPE,36,Component B6 ,0,5 +SALES TYPE,37,Component B7 ,0,5 +SALES TYPE,40,Assembled Product-40 ,0,5 +SALES TYPE,41,Component B1 ,0,5 +SALES TYPE,42,Component B2 ,0,5 +SALES TYPE,43,Component B3 ,0,5 +SALES TYPE,44,Component B4 ,0,5 +SALES TYPE,45,Component B5 ,0,5 +SALES TYPE,46,Component B6 ,0,5 +SALES TYPE,47,Component B7 ,0,5 +SALES TYPE,50,Assembled Product-50 ,0,5 +SALES TYPE,51,Component B1 ,0,5 +SALES TYPE,52,Component B2 ,0,5 +SALES TYPE,53,Component B3 ,0,5 +SALES TYPE,54,Component B4 ,0,5 +SALES TYPE,55,Component B5 ,0,5 +SALES TYPE,56,Component B6 ,0,5 +SALES TYPE,57,Component B7 ,0,5 +SALES TYPE,99,Default 99 ,0,5 diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCGLAccounts.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCGLAccounts.csv new file mode 100644 index 0000000000..d7f0ca98f3 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCGLAccounts.csv @@ -0,0 +1,383 @@ +No.,Name,Search Name,Account Type,Account Category,Income/Balance,Debit/Credit,Direct Posting +000000,GL SUSPENSE ,GL SUSPENSE,Posting,Assets,Balance Sheet,Both,true +1000,Cash - NPP ,CASH - NPP,Posting,Assets,Balance Sheet,Both,true +1001,Cash 1001 ,CASH 1001,Posting,Assets,Balance Sheet,Both,true +1030,Cash-US Dollars-US ,CASH-US DOLLARS-US,Posting,Assets,Balance Sheet,Both,true +1031,Cash US Dollars ,CASH US DOLLARS,Posting,Assets,Balance Sheet,Both,true +1037,Cash US Dollars-Main ,CASH US DOLLARS-MAIN,Posting,Assets,Balance Sheet,Both,true +1038,Cash US Dollars-Investments ,CASH US DOLLARS-INVESTMENTS,Posting,Assets,Balance Sheet,Both,true +1039,Cash US Dollars-Petty Cash ,CASH US DOLLARS-PETTY CASH,Posting,Assets,Balance Sheet,Both,true +1040,Cash US Dollars-Corporate ,CASH US DOLLARS-CORPORATE,Posting,Assets,Balance Sheet,Both,true +1041,Cash Us Dollars-General ,CASH US DOLLARS-GENERAL,Posting,Assets,Balance Sheet,Both,true +1070,Cash-Other ,CASH-OTHER,Posting,Assets,Balance Sheet,Both,true +1110,A/R Trade-USD ,A/R TRADE-USD,Posting,Assets,Balance Sheet,Both,true +1115,AR Holding Account ,AR HOLDING ACCOUNT,Posting,Assets,Balance Sheet,Both,true +1140,Advances in Travel & Expense ,ADVANCES IN TRAVEL & EXPENSE,Posting,Assets,Balance Sheet,Both,true +1150,Due From Company 0010 ,DUE FROM COMPANY 0010,Posting,Assets,Balance Sheet,Both,true +1151,Due From Company 0020 ,DUE FROM COMPANY 0020,Posting,Assets,Balance Sheet,Both,true +1152,Due From Company 0030 ,DUE FROM COMPANY 0030,Posting,Assets,Balance Sheet,Both,true +1153,Due From Company 0040 ,DUE FROM COMPANY 0040,Posting,Assets,Balance Sheet,Both,true +1154,Due From Company 0050 ,DUE FROM COMPANY 0050,Posting,Assets,Balance Sheet,Both,true +1155,Due From Company 0060 ,DUE FROM COMPANY 0060,Posting,Assets,Balance Sheet,Both,true +1156,Due From Company 0070 ,DUE FROM COMPANY 0070,Posting,Assets,Balance Sheet,Both,true +1157,Due From Company 0080 ,DUE FROM COMPANY 0080,Posting,Assets,Balance Sheet,Both,true +1160,A/R Inter-Company-USD ,A/R INTER-COMPANY-USD,Posting,Assets,Balance Sheet,Both,true +1170,Notes Receivable-USD ,NOTES RECEIVABLE-USD,Posting,Assets,Balance Sheet,Both,true +1171,Notes Receivable-IntCo-0010 ,NOTES RECEIVABLE-INTCO-0010,Posting,Assets,Balance Sheet,Both,true +1173,Notes Receivable-IntCo-0020 ,NOTES RECEIVABLE-INTCO-0020,Posting,Assets,Balance Sheet,Both,true +1190,A/R Holding-USD ,A/R HOLDING-USD,Posting,Assets,Balance Sheet,Both,true +1191,Miscellaneous Receivables ,MISCELLANEOUS RECEIVABLES,Posting,Assets,Balance Sheet,Both,true +1192,Unbilled Receivables - Expense,UNBILLED RECEIVABLES - EXPENSE,Posting,Assets,Balance Sheet,Both,true +1210,Inventory-Merchandise ,INVENTORY-MERCHANDISE,Posting,Assets,Balance Sheet,Both,true +1220,Inventory-Raw Materials ,INVENTORY-RAW MATERIALS,Posting,Assets,Balance Sheet,Both,true +1225,Inventory-WIP ,INVENTORY-WIP,Posting,Assets,Balance Sheet,Both,true +1226,Project Materials ,PROJECT MATERIALS,Posting,Assets,Balance Sheet,Both,true +1230,Inventory-Components ,INVENTORY-COMPONENTS,Posting,Assets,Balance Sheet,Both,true +12301,WIP: Materials ,WIP: MATERIALS,Posting,Assets,Balance Sheet,Both,true +12302,WIP: Labor ,WIP: LABOR,Posting,Assets,Balance Sheet,Both,true +12303,WIP: Subcontract ,WIP: SUBCONTRACT,Posting,Assets,Balance Sheet,Both,true +12304,WIP: Other Direct Costs ,WIP: OTHER DIRECT COSTS,Posting,Assets,Balance Sheet,Both,true +12305,WIP: Overhead ,WIP: OVERHEAD,Posting,Assets,Balance Sheet,Both,true +12309,WIP: Rollup Variance ,WIP: ROLLUP VARIANCE,Posting,Assets,Balance Sheet,Both,true +1231,Inventory-Components-1 ,INVENTORY-COMPONENTS-1,Posting,Assets,Balance Sheet,Both,true +12311,Project WIP: Materials ,PROJECT WIP: MATERIALS,Posting,Assets,Balance Sheet,Both,true +12312,Project WIP: Labor ,PROJECT WIP: LABOR,Posting,Assets,Balance Sheet,Both,true +12313,Project WIP: Subcontract ,PROJECT WIP: SUBCONTRACT,Posting,Assets,Balance Sheet,Both,true +12314,Project WIP: Other Direct Cost,PROJECT WIP: OTHER DIRECT COST,Posting,Assets,Balance Sheet,Both,true +12315,Project WIP: Overhead ,PROJECT WIP: OVERHEAD,Posting,Assets,Balance Sheet,Both,true +12319,Project WIP: Rollup Variance ,PROJECT WIP: ROLLUP VARIANCE,Posting,Assets,Balance Sheet,Both,true +1232,Inventory-Components-2 ,INVENTORY-COMPONENTS-2,Posting,Assets,Balance Sheet,Both,true +1233,Inventory-Components-3 ,INVENTORY-COMPONENTS-3,Posting,Assets,Balance Sheet,Both,true +1234,Inventory-Components-4 ,INVENTORY-COMPONENTS-4,Posting,Assets,Balance Sheet,Both,true +1235,Inventory-Components-5 ,INVENTORY-COMPONENTS-5,Posting,Assets,Balance Sheet,Both,true +1236,Inventory-Components-6 ,INVENTORY-COMPONENTS-6,Posting,Assets,Balance Sheet,Both,true +1237,Inventory-Components-7 ,INVENTORY-COMPONENTS-7,Posting,Assets,Balance Sheet,Both,true +1240,Inventory-Fin. Goods ,INVENTORY-FIN. GOODS,Posting,Assets,Balance Sheet,Both,true +1241,Inventory-Fin. Goods-1 ,INVENTORY-FIN. GOODS-1,Posting,Assets,Balance Sheet,Both,true +1242,Inventory-Fin. Goods-2 ,INVENTORY-FIN. GOODS-2,Posting,Assets,Balance Sheet,Both,true +1243,Inventory-Fin. Goods-3 ,INVENTORY-FIN. GOODS-3,Posting,Assets,Balance Sheet,Both,true +1244,Inventory-Fin. Goods-4 ,INVENTORY-FIN. GOODS-4,Posting,Assets,Balance Sheet,Both,true +1245,Inventory-Fin. Goods-5 ,INVENTORY-FIN. GOODS-5,Posting,Assets,Balance Sheet,Both,true +1246,Inventory-Fin. Goods-6 ,INVENTORY-FIN. GOODS-6,Posting,Assets,Balance Sheet,Both,true +1247,Inventory-Fin. Goods-7 ,INVENTORY-FIN. GOODS-7,Posting,Assets,Balance Sheet,Both,true +1250,Supplies ,SUPPLIES,Posting,Assets,Balance Sheet,Both,true +1251,Prepaid Supplies ,PREPAID SUPPLIES,Posting,Assets,Balance Sheet,Both,true +1310,Prepaid Insurance ,PREPAID INSURANCE,Posting,Assets,Balance Sheet,Both,true +1320,Prepaid Interest ,PREPAID INTEREST,Posting,Assets,Balance Sheet,Both,true +1330,Deposits Refundable ,DEPOSITS REFUNDABLE,Posting,Assets,Balance Sheet,Both,true +1340,Bid Deposits ,BID DEPOSITS,Posting,Assets,Balance Sheet,Both,true +1565,SWE Test ,SWE TEST,Posting,Assets,Balance Sheet,Both,true +1601,Currency Gain - Unrealized ,CURRENCY GAIN - UNREALIZED,Posting,Assets,Balance Sheet,Both,true +1602,Currency Gain - Realized ,CURRENCY GAIN - REALIZED,Posting,Assets,Balance Sheet,Both,true +1610,Land ,LAND,Posting,Assets,Balance Sheet,Both,true +1620,Buildings ,BUILDINGS,Posting,Assets,Balance Sheet,Both,true +1621,Accumulated Depreciation ,ACCUMULATED DEPRECIATION,Posting,Assets,Balance Sheet,Both,true +1630,Furniture & Fixtures ,FURNITURE & FIXTURES,Posting,Assets,Balance Sheet,Both,true +1631,Less: Accumulated Deprec. ,LESS: ACCUMULATED DEPREC.,Posting,Assets,Balance Sheet,Both,true +1640,Machines & Equipment ,MACHINES & EQUIPMENT,Posting,Assets,Balance Sheet,Both,true +1641,Less: Accumulated Deprec. ,LESS: ACCUMULATED DEPREC.,Posting,Assets,Balance Sheet,Both,true +1650,Automobiles ,AUTOMOBILES,Posting,Assets,Balance Sheet,Both,true +1651,Less: Accumulated Deprec. ,LESS: ACCUMULATED DEPREC.,Posting,Assets,Balance Sheet,Both,true +1660,Trucks ,TRUCKS,Posting,Assets,Balance Sheet,Both,true +1661,Less: Accumulated Deprec. ,LESS: ACCUMULATED DEPREC.,Posting,Assets,Balance Sheet,Both,true +1670,Office Equipment ,OFFICE EQUIPMENT,Posting,Assets,Balance Sheet,Both,true +1671,Less: Accumulated Deprec. ,LESS: ACCUMULATED DEPREC.,Posting,Assets,Balance Sheet,Both,true +1680,Leaseholds ,LEASEHOLDS,Posting,Assets,Balance Sheet,Both,true +1681,Less: Accumulated Deprec. ,LESS: ACCUMULATED DEPREC.,Posting,Assets,Balance Sheet,Both,true +1810,Prepaid Insurance ,PREPAID INSURANCE,Posting,Assets,Balance Sheet,Both,true +1820,Prepaid Interest ,PREPAID INTEREST,Posting,Assets,Balance Sheet,Both,true +1830,Prepaid Rent ,PREPAID RENT,Posting,Assets,Balance Sheet,Both,true +1840,Organizational Expense ,ORGANIZATIONAL EXPENSE,Posting,Assets,Balance Sheet,Both,true +1850,Deferred Charges ,DEFERRED CHARGES,Posting,Assets,Balance Sheet,Both,true +1860,Deposits ,DEPOSITS,Posting,Assets,Balance Sheet,Both,true +1901,Due to/from NPP ,DUE TO/FROM NPP,Posting,Assets,Balance Sheet,Both,true +1910,Investments Treasuries ,INVESTMENTS TREASURIES,Posting,Assets,Balance Sheet,Both,true +1911,Investments Money Market ,INVESTMENTS MONEY MARKET,Posting,Assets,Balance Sheet,Both,true +1912,Investments Banks ,INVESTMENTS BANKS,Posting,Assets,Balance Sheet,Both,true +1913,Investments Stocks ,INVESTMENTS STOCKS,Posting,Assets,Balance Sheet,Both,true +1914,Investments Stocks Foreign ,INVESTMENTS STOCKS FOREIGN,Posting,Assets,Balance Sheet,Both,true +1915,Investments Miscellanous ,INVESTMENTS MISCELLANOUS,Posting,Assets,Balance Sheet,Both,true +1916,Accrued Investment Income ,ACCRUED INVESTMENT INCOME,Posting,Assets,Balance Sheet,Both,true +1917,Accrued Misc. Receivables ,ACCRUED MISC. RECEIVABLES,Posting,Assets,Balance Sheet,Both,true +1918,Accrued Income Misc. ,ACCRUED INCOME MISC.,Posting,Assets,Balance Sheet,Both,true +1920,Goodwill ,GOODWILL,Posting,Assets,Balance Sheet,Both,true +1990,Due to/from 401K ,DUE TO/FROM 401K,Posting,Assets,Balance Sheet,Both,true +1999,Out of Balance Correction ,OUT OF BALANCE CORRECTION,Posting,Assets,Balance Sheet,Both,true +2000,AP - NPP ,AP - NPP,Posting,Liabilities,Balance Sheet,Both,true +2001,Due to Company 0010 ,DUE TO COMPANY 0010,Posting,Liabilities,Balance Sheet,Both,true +2002,Due to Company 0020 ,DUE TO COMPANY 0020,Posting,Liabilities,Balance Sheet,Both,true +2003,Due to Company 0030 ,DUE TO COMPANY 0030,Posting,Liabilities,Balance Sheet,Both,true +2004,Due to Company 0040 ,DUE TO COMPANY 0040,Posting,Liabilities,Balance Sheet,Both,true +2005,Due to Company 0050 ,DUE TO COMPANY 0050,Posting,Liabilities,Balance Sheet,Both,true +2006,Due to Company 0060 ,DUE TO COMPANY 0060,Posting,Liabilities,Balance Sheet,Both,true +2007,Due to Company 0070 ,DUE TO COMPANY 0070,Posting,Liabilities,Balance Sheet,Both,true +2008,Due to Company 0080 ,DUE TO COMPANY 0080,Posting,Liabilities,Balance Sheet,Both,true +2010,Inter-Company A/P-USD ,INTER-COMPANY A/P-USD,Posting,Liabilities,Balance Sheet,Both,true +2020,Mortgage Payable-Current ,MORTGAGE PAYABLE-CURRENT,Posting,Liabilities,Balance Sheet,Both,true +2025,Bonds Payable ,BONDS PAYABLE,Posting,Liabilities,Balance Sheet,Both,true +2030,Notes Payable-Demand ,NOTES PAYABLE-DEMAND,Posting,Liabilities,Balance Sheet,Both,true +2031,Notes Payable-Line of Credit ,NOTES PAYABLE-LINE OF CREDIT,Posting,Liabilities,Balance Sheet,Both,true +2032,Notes Payable- Suppliers ,NOTES PAYABLE- SUPPLIERS,Posting,Liabilities,Balance Sheet,Both,true +2033,Notes Payable-Other Banks ,NOTES PAYABLE-OTHER BANKS,Posting,Liabilities,Balance Sheet,Both,true +2040,Notes Payable-Current ,NOTES PAYABLE-CURRENT,Posting,Liabilities,Balance Sheet,Both,true +2050,A/P Trade-USD ,A/P TRADE-USD,Posting,Liabilities,Balance Sheet,Both,true +2060,A/P-Other-USD ,A/P-OTHER-USD,Posting,Liabilities,Balance Sheet,Both,true +2065,A/P-Misc-USD ,A/P-MISC-USD,Posting,Liabilities,Balance Sheet,Both,true +2070,A/P-Customer Refunds ,A/P-CUSTOMER REFUNDS,Posting,Liabilities,Balance Sheet,Both,true +2071,A/R Customer Refunds ,A/R CUSTOMER REFUNDS,Posting,Liabilities,Balance Sheet,Both,true +2072,A/R Prepayment ,A/R PREPAYMENT,Posting,Liabilities,Balance Sheet,Both,true +2075,Customer Deposits ,CUSTOMER DEPOSITS,Posting,Liabilities,Balance Sheet,Both,true +2080,Contracts Payable-Current ,CONTRACTS PAYABLE-CURRENT,Posting,Liabilities,Balance Sheet,Both,true +2090,Construction Advances ,CONSTRUCTION ADVANCES,Posting,Liabilities,Balance Sheet,Both,true +2100,Benefits Payable ,BENEFITS PAYABLE,Posting,Liabilities,Balance Sheet,Both,true +2110,Federal Tax Withheld ,FEDERAL TAX WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2120,FICA Withheld ,FICA WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2121,Employee Medicare FICA ,EMPLOYEE MEDICARE FICA,Posting,Liabilities,Balance Sheet,Both,true +2130,FICA-Employer ,FICA-EMPLOYER,Posting,Liabilities,Balance Sheet,Both,true +2131,Employer Medicare FICA ,EMPLOYER MEDICARE FICA,Posting,Liabilities,Balance Sheet,Both,true +2140,State Income Tax Withheld ,STATE INCOME TAX WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2150,Local Income Tax Withheld ,LOCAL INCOME TAX WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2160,Federal Unemploy. Withheld ,FEDERAL UNEMPLOY. WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2170,State Unemploy. Withheld ,STATE UNEMPLOY. WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2180,Workers' Compensation ,WORKERS' COMPENSATION,Posting,Liabilities,Balance Sheet,Both,true +2190,Misc. 1 Withheld ,MISC. 1 WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2200,Misc. 2 Withheld ,MISC. 2 WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2210,Misc. 3 Withheld ,MISC. 3 WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2220,Misc. 4 Withheld ,MISC. 4 WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2230,Misc. 5 Withheld ,MISC. 5 WITHHELD,Posting,Liabilities,Balance Sheet,Both,true +2240,Sales Tax Payable ,SALES TAX PAYABLE,Posting,Liabilities,Balance Sheet,Both,true +2241,Sales Tax Payable - City ,SALES TAX PAYABLE - CITY,Posting,Liabilities,Balance Sheet,Both,true +2242,Sales Tax Payable - County ,SALES TAX PAYABLE - COUNTY,Posting,Liabilities,Balance Sheet,Both,true +2243,Sales Tax Payable - State ,SALES TAX PAYABLE - STATE,Posting,Liabilities,Balance Sheet,Both,true +2245,Sales Tax Payable - AvaTax ,SALES TAX PAYABLE - AVATAX,Posting,Liabilities,Balance Sheet,Both,true +2300,Accrued A/P Trade-USD ,ACCRUED A/P TRADE-USD,Posting,Liabilities,Balance Sheet,Both,true +2301,Accrued A/P Trade-CAD ,ACCRUED A/P TRADE-CAD,Posting,Liabilities,Balance Sheet,Both,true +2302,Accrued A/P Trade-FRF ,ACCRUED A/P TRADE-FRF,Posting,Liabilities,Balance Sheet,Both,true +2303,Accrued A/P Trade-DEM ,ACCRUED A/P TRADE-DEM,Posting,Liabilities,Balance Sheet,Both,true +2304,Accrued A/P Trade-GBP ,ACCRUED A/P TRADE-GBP,Posting,Liabilities,Balance Sheet,Both,true +2305,Accrued A/P Trade-LRA ,ACCRUED A/P TRADE-LRA,Posting,Liabilities,Balance Sheet,Both,true +2310,Accrued Interest ,ACCRUED INTEREST,Posting,Liabilities,Balance Sheet,Both,true +2320,Accrued Rent ,ACCRUED RENT,Posting,Liabilities,Balance Sheet,Both,true +2330,Accrued Wages ,ACCRUED WAGES,Posting,Liabilities,Balance Sheet,Both,true +23301,Applied Labor ,APPLIED LABOR,Posting,Liabilities,Balance Sheet,Both,true +2340,Accrued Insurance ,ACCRUED INSURANCE,Posting,Liabilities,Balance Sheet,Both,true +2350,Accrued Real Estate Taxes ,ACCRUED REAL ESTATE TAXES,Posting,Liabilities,Balance Sheet,Both,true +2360,Federal Taxes Payable ,FEDERAL TAXES PAYABLE,Posting,Liabilities,Balance Sheet,Both,true +2370,State Taxes Payable ,STATE TAXES PAYABLE,Posting,Liabilities,Balance Sheet,Both,true +2410,Dividends Paid ,DIVIDENDS PAID,Posting,Liabilities,Balance Sheet,Both,true +2510,Mortgage Payable ,MORTGAGE PAYABLE,Posting,Liabilities,Balance Sheet,Both,true +2520,Long Term Notes Payable ,LONG TERM NOTES PAYABLE,Posting,Liabilities,Balance Sheet,Both,true +2530,Contracts Payable-LT ,CONTRACTS PAYABLE-LT,Posting,Liabilities,Balance Sheet,Both,true +2540,Land Contracts Payable ,LAND CONTRACTS PAYABLE,Posting,Liabilities,Balance Sheet,Both,true +2550,Shareholder Loans ,SHAREHOLDER LOANS,Posting,Liabilities,Balance Sheet,Both,true +2560,Officer Loans ,OFFICER LOANS,Posting,Liabilities,Balance Sheet,Both,true +2610,Deferred Income ,DEFERRED INCOME,Posting,Liabilities,Balance Sheet,Both,true +2710,Issued Common Stock ,ISSUED COMMON STOCK,Posting,Liabilities,Balance Sheet,Both,true +2720,Paid in Capital ,PAID IN CAPITAL,Posting,Liabilities,Balance Sheet,Both,true +2730,Treasury Stock ,TREASURY STOCK,Posting,Liabilities,Balance Sheet,Both,true +2740,Retained Earnings ,RETAINED EARNINGS,Posting,Liabilities,Balance Sheet,Both,true +2750,YTD Net Income ,YTD NET INCOME,Posting,Liabilities,Balance Sheet,Both,true +2760,Variance ,VARIANCE,Posting,Liabilities,Balance Sheet,Both,true +2800,SWE Test ,SWE TEST,Posting,Liabilities,Balance Sheet,Both,true +2810,SWE Test ,SWE TEST,Posting,Liabilities,Balance Sheet,Both,true +2900,Pension Accrued ,PENSION ACCRUED,Posting,Liabilities,Balance Sheet,Both,true +2901,401k Accrued ,401K ACCRUED,Posting,Liabilities,Balance Sheet,Both,true +3020,Inter-Company Sales ,INTER-COMPANY SALES,Posting,Income,Income Statement,Both,true +3030,Sales/Income ,SALES/INCOME,Posting,Income,Income Statement,Both,true +3031,Sales/Income Type 1 ,SALES/INCOME TYPE 1,Posting,Income,Income Statement,Both,true +3032,Sales/Income Type 2 ,SALES/INCOME TYPE 2,Posting,Income,Income Statement,Both,true +3033,Sales/Income Type 3 ,SALES/INCOME TYPE 3,Posting,Income,Income Statement,Both,true +3034,Sales/Income Type 4 ,SALES/INCOME TYPE 4,Posting,Income,Income Statement,Both,true +3035,Sales/Income Type 5 ,SALES/INCOME TYPE 5,Posting,Income,Income Statement,Both,true +3036,Sales/Income Type 6 ,SALES/INCOME TYPE 6,Posting,Income,Income Statement,Both,true +3037,Sales/Income Type 7 ,SALES/INCOME TYPE 7,Posting,Income,Income Statement,Both,true +3042,Writeup/Writedown Labor ,WRITEUP/WRITEDOWN LABOR,Posting,Income,Income Statement,Both,true +3044,Writeup/Writedown Expenses ,WRITEUP/WRITEDOWN EXPENSES,Posting,Income,Income Statement,Both,true +3050,Discounts Allowed-Trade ,DISCOUNTS ALLOWED-TRADE,Posting,Income,Income Statement,Both,true +3070,Freight Income ,FREIGHT INCOME,Posting,Income,Income Statement,Both,true +3080,Miscellaneous Income ,MISCELLANEOUS INCOME,Posting,Income,Income Statement,Both,true +3090,Customer Finance Charges ,CUSTOMER FINANCE CHARGES,Posting,Income,Income Statement,Both,true +3100,Miscellaneous Income ,MISCELLANEOUS INCOME,Posting,Income,Income Statement,Both,true +3220,Proceeds from Securities ,PROCEEDS FROM SECURITIES,Posting,Income,Income Statement,Both,true +4010,Beginning Inventory ,BEGINNING INVENTORY,Posting,Expense,Income Statement,Both,true +4020,Inter-Company Purchases ,INTER-COMPANY PURCHASES,Posting,Expense,Income Statement,Both,true +4030,Merchandise Purchases ,MERCHANDISE PURCHASES,Posting,Expense,Income Statement,Both,true +4040,Discounts Taken ,DISCOUNTS TAKEN,Posting,Expense,Income Statement,Both,true +4050,Productive Labor ,PRODUCTIVE LABOR,Posting,Expense,Income Statement,Both,true +4051,Premium Labor ,PREMIUM LABOR,Posting,Expense,Income Statement,Both,true +4052,Labor - Direct ,LABOR - DIRECT,Posting,Expense,Income Statement,Both,true +4053,"Labor - Direct, Fixed ","LABOR - DIRECT, FIXED",Posting,Expense,Income Statement,Both,true +4054,Labor - Indirect ,LABOR - INDIRECT,Posting,Expense,Income Statement,Both,true +4055,"Labor - Indirect, Fixed ","LABOR - INDIRECT, FIXED",Posting,Expense,Income Statement,Both,true +4059,Fringe ,FRINGE,Posting,Expense,Income Statement,Both,true +4060,Vacation-Holiday Pay ,VACATION-HOLIDAY PAY,Posting,Expense,Income Statement,Both,true +4065,Sick Leave ,SICK LEAVE,Posting,Expense,Income Statement,Both,true +4070,Payroll Taxes ,PAYROLL TAXES,Posting,Expense,Income Statement,Both,true +4080,Payroll Benefits ,PAYROLL BENEFITS,Posting,Expense,Income Statement,Both,true +4090,Sub-Contracts ,SUB-CONTRACTS,Posting,Expense,Income Statement,Both,true +4091,Federal Tax Expense ,FEDERAL TAX EXPENSE,Posting,Expense,Income Statement,Both,true +4092,State Taxes Payable ,STATE TAXES PAYABLE,Posting,Expense,Income Statement,Both,true +4100,Freight-In ,FREIGHT-IN,Posting,Expense,Income Statement,Both,true +4110,Supplies ,SUPPLIES,Posting,Expense,Income Statement,Both,true +4120,Deprec.-Production Equip. ,DEPREC.-PRODUCTION EQUIP.,Posting,Expense,Income Statement,Both,true +4130,Utilities-Production ,UTILITIES-PRODUCTION,Posting,Expense,Income Statement,Both,true +4140,Inventory Increase/Decrease ,INVENTORY INCREASE/DECREASE,Posting,Expense,Income Statement,Both,true +4141,Inventory Issue (Non-Project) ,INVENTORY ISSUE (NON-PROJECT),Posting,Expense,Income Statement,Both,true +4142,Inventory Issue (Project) ,INVENTORY ISSUE (PROJECT),Posting,Expense,Income Statement,Both,true +4150,Cost of Goods Sold ,COST OF GOODS SOLD,Posting,Expense,Income Statement,Both,true +41501,Late Charges ,LATE CHARGES,Posting,Expense,Income Statement,Both,true +4151,Cost of Goods Sold-Type 1 ,COST OF GOODS SOLD-TYPE 1,Posting,Expense,Income Statement,Both,true +4152,Cost of Goods Sold-Type 2 ,COST OF GOODS SOLD-TYPE 2,Posting,Expense,Income Statement,Both,true +4153,Cost of Goods Sold-Type 3 ,COST OF GOODS SOLD-TYPE 3,Posting,Expense,Income Statement,Both,true +4154,Cost of Goods Sold-Type 4 ,COST OF GOODS SOLD-TYPE 4,Posting,Expense,Income Statement,Both,true +4155,Cost of Goods Sold-Type 5 ,COST OF GOODS SOLD-TYPE 5,Posting,Expense,Income Statement,Both,true +4156,Cost of Goods Sold-Type 6 ,COST OF GOODS SOLD-TYPE 6,Posting,Expense,Income Statement,Both,true +4157,Cost of Goods Sold-Type 7 ,COST OF GOODS SOLD-TYPE 7,Posting,Expense,Income Statement,Both,true +4200,Ending Inventory ,ENDING INVENTORY,Posting,Expense,Income Statement,Both,true +4210,Inventory Revaluation ,INVENTORY REVALUATION,Posting,Expense,Income Statement,Both,true +4220,Clearing-Other Direct Costs ,CLEARING-OTHER DIRECT COSTS,Posting,Expense,Income Statement,Both,true +4230,Clearing-Material O/H ,CLEARING-MATERIAL O/H,Posting,Expense,Income Statement,Both,true +4240,Clearing-Machine O/H ,CLEARING-MACHINE O/H,Posting,Expense,Income Statement,Both,true +4290,Clearing-Landed Costs ,CLEARING-LANDED COSTS,Posting,Expense,Income Statement,Both,true +4300,Variance-Direct Material ,VARIANCE-DIRECT MATERIAL,Posting,Expense,Income Statement,Both,true +43001,Variance-Rollup Variance ,VARIANCE-ROLLUP VARIANCE,Posting,Expense,Income Statement,Both,true +4310,Variance-Direct Labor ,VARIANCE-DIRECT LABOR,Posting,Expense,Income Statement,Both,true +4320,Variance-Other Direct Cost ,VARIANCE-OTHER DIRECT COST,Posting,Expense,Income Statement,Both,true +4330,Variance-Material O/H ,VARIANCE-MATERIAL O/H,Posting,Expense,Income Statement,Both,true +4340,Variance-Labor O/H ,VARIANCE-LABOR O/H,Posting,Expense,Income Statement,Both,true +4350,Variance-Machine O/H ,VARIANCE-MACHINE O/H,Posting,Expense,Income Statement,Both,true +4360,Scrap Var-Direct Material ,SCRAP VAR-DIRECT MATERIAL,Posting,Expense,Income Statement,Both,true +4370,Scrap Var-Direct Labor ,SCRAP VAR-DIRECT LABOR,Posting,Expense,Income Statement,Both,true +4380,Scrap Var-Other Direct Cost ,SCRAP VAR-OTHER DIRECT COST,Posting,Expense,Income Statement,Both,true +4390,Scrap Var-Material O/H ,SCRAP VAR-MATERIAL O/H,Posting,Expense,Income Statement,Both,true +4400,Scrap Var-Labor O/H ,SCRAP VAR-LABOR O/H,Posting,Expense,Income Statement,Both,true +4410,Scrap Var-Machine O/H ,SCRAP VAR-MACHINE O/H,Posting,Expense,Income Statement,Both,true +4500,Std Chg Var-Dir Material ,STD CHG VAR-DIR MATERIAL,Posting,Expense,Income Statement,Both,true +4510,Std Chg Var-Dir Labor ,STD CHG VAR-DIR LABOR,Posting,Expense,Income Statement,Both,true +4520,Std Chg Var-Other Direct ,STD CHG VAR-OTHER DIRECT,Posting,Expense,Income Statement,Both,true +4530,Std Chg Var-Material O/H ,STD CHG VAR-MATERIAL O/H,Posting,Expense,Income Statement,Both,true +4540,Std Chg Var-Labor O/H ,STD CHG VAR-LABOR O/H,Posting,Expense,Income Statement,Both,true +4550,Std Chg Var-Machine O/H ,STD CHG VAR-MACHINE O/H,Posting,Expense,Income Statement,Both,true +4610,Effic Var-Direct Labor ,EFFIC VAR-DIRECT LABOR,Posting,Expense,Income Statement,Both,true +4710,Rate Var-Direct Labor ,RATE VAR-DIRECT LABOR,Posting,Expense,Income Statement,Both,true +4790,Variance-Landed Costs ,VARIANCE-LANDED COSTS,Posting,Expense,Income Statement,Both,true +5010,Officers Salaries ,OFFICERS SALARIES,Posting,Expense,Income Statement,Both,true +5020,Office Salaries ,OFFICE SALARIES,Posting,Expense,Income Statement,Both,true +5030,Sales Salaries ,SALES SALARIES,Posting,Expense,Income Statement,Both,true +5040,Shop Wages ,SHOP WAGES,Posting,Expense,Income Statement,Both,true +5050,Delivery Wages ,DELIVERY WAGES,Posting,Expense,Income Statement,Both,true +5060,Maintenance Wages ,MAINTENANCE WAGES,Posting,Expense,Income Statement,Both,true +5070,Warehouse Wages ,WAREHOUSE WAGES,Posting,Expense,Income Statement,Both,true +5080,Vacation ,VACATION,Posting,Expense,Income Statement,Both,true +5090,Payroll Taxes ,PAYROLL TAXES,Posting,Expense,Income Statement,Both,true +5100,Payroll Benefits ,PAYROLL BENEFITS,Posting,Expense,Income Statement,Both,true +5110,Clearing-Direct Labor ,CLEARING-DIRECT LABOR,Posting,Expense,Income Statement,Both,true +5120,Clearing-Labor O/H ,CLEARING-LABOR O/H,Posting,Expense,Income Statement,Both,true +5130,Clearing - Labor G&A ,CLEARING - LABOR G&A,Posting,Expense,Income Statement,Both,true +5400,SWE Test ,SWE TEST,Posting,Expense,Income Statement,Both,true +5450,SWE Test ,SWE TEST,Posting,Expense,Income Statement,Both,true +6010,Advertising ,ADVERTISING,Posting,Expense,Income Statement,Both,true +6020,Answering Service ,ANSWERING SERVICE,Posting,Expense,Income Statement,Both,true +6030,Accounting and Legal Fees ,ACCOUNTING AND LEGAL FEES,Posting,Expense,Income Statement,Both,true +6040,Vehicle Expense ,VEHICLE EXPENSE,Posting,Expense,Income Statement,Both,true +6050,Bad Check ,BAD CHECK,Posting,Expense,Income Statement,Both,true +6060,Bad Debts ,BAD DEBTS,Posting,Expense,Income Statement,Both,true +6061,Small Balance WO ,SMALL BALANCE WO,Posting,Expense,Income Statement,Both,true +6070,Bank Service Charges ,BANK SERVICE CHARGES,Posting,Expense,Income Statement,Both,true +6071,Bank Fee ,BANK FEE,Posting,Expense,Income Statement,Both,true +6080,Janitorial/Cleaning Service ,JANITORIAL/CLEANING SERVICE,Posting,Expense,Income Statement,Both,true +6100,Lab Tests ,LAB TESTS,Posting,Expense,Income Statement,Both,true +6500,Commissions ,COMMISSIONS,Posting,Expense,Income Statement,Both,true +6510,Contributions ,CONTRIBUTIONS,Posting,Expense,Income Statement,Both,true +6520,Collection ,COLLECTION,Posting,Expense,Income Statement,Both,true +6530,Delivery ,DELIVERY,Posting,Expense,Income Statement,Both,true +6540,Directors Fees ,DIRECTORS FEES,Posting,Expense,Income Statement,Both,true +6550,Dues and Subscriptions ,DUES AND SUBSCRIPTIONS,Posting,Expense,Income Statement,Both,true +6560,Depreciation ,DEPRECIATION,Posting,Expense,Income Statement,Both,true +6570,Amort/Leasehold Improve. ,AMORT/LEASEHOLD IMPROVE.,Posting,Expense,Income Statement,Both,true +6580,Amort/Organ. Expense ,AMORT/ORGAN. EXPENSE,Posting,Expense,Income Statement,Both,true +6590,Entertainment ,ENTERTAINMENT,Posting,Expense,Income Statement,Both,true +7000,Travel Expense ,TRAVEL EXPENSE,Posting,Expense,Income Statement,Both,true +7001,Per Diem ,PER DIEM,Posting,Expense,Income Statement,Both,true +7005,Travel Expense - Meals ,TRAVEL EXPENSE - MEALS,Posting,Expense,Income Statement,Both,true +7006,Meals ,MEALS,Posting,Expense,Income Statement,Both,true +7007,Management Meals ,MANAGEMENT MEALS,Posting,Expense,Income Statement,Both,true +7010,Travel Expense - Lodging ,TRAVEL EXPENSE - LODGING,Posting,Expense,Income Statement,Both,true +7011,Logding ,LOGDING,Posting,Expense,Income Statement,Both,true +7020,Travel Expense - Transportatin,TRAVEL EXPENSE - TRANSPORTATIN,Posting,Expense,Income Statement,Both,true +7021,Air/Train ,AIR/TRAIN,Posting,Expense,Income Statement,Both,true +7022,Taxi/Mass Transit ,TAXI/MASS TRANSIT,Posting,Expense,Income Statement,Both,true +7030,Travel Expense - Entertainment,TRAVEL EXPENSE - ENTERTAINMENT,Posting,Expense,Income Statement,Both,true +7040,Office Expenses - Misc. ,OFFICE EXPENSES - MISC.,Posting,Expense,Income Statement,Both,true +7050,Telephone Expense ,TELEPHONE EXPENSE,Posting,Expense,Income Statement,Both,true +7055,Equipment Rental ,EQUIPMENT RENTAL,Posting,Expense,Income Statement,Both,true +7056,AV Equipment ,AV EQUIPMENT,Posting,Expense,Income Statement,Both,true +7060,Electric Expense ,ELECTRIC EXPENSE,Posting,Expense,Income Statement,Both,true +7070,Gas ,GAS,Posting,Expense,Income Statement,Both,true +7080,Water ,WATER,Posting,Expense,Income Statement,Both,true +7090,Insurance-General ,INSURANCE-GENERAL,Posting,Expense,Income Statement,Both,true +7100,Insurance-Group Medical ,INSURANCE-GROUP MEDICAL,Posting,Expense,Income Statement,Both,true +7101,Currency Loss - Unrealized ,CURRENCY LOSS - UNREALIZED,Posting,Expense,Income Statement,Both,true +7102,Currency Loss - Realized ,CURRENCY LOSS - REALIZED,Posting,Expense,Income Statement,Both,true +7110,Insurance-Officer's Life ,INSURANCE-OFFICER'S LIFE,Posting,Expense,Income Statement,Both,true +7120,Long Term Interest ,LONG TERM INTEREST,Posting,Expense,Income Statement,Both,true +7130,Laundry ,LAUNDRY,Posting,Expense,Income Statement,Both,true +7140,Uniform ,UNIFORM,Posting,Expense,Income Statement,Both,true +7150,Licenses ,LICENSES,Posting,Expense,Income Statement,Both,true +7160,Repair/Maint-Building ,REPAIR/MAINT-BUILDING,Posting,Expense,Income Statement,Both,true +7170,Repair/Maint-Equipment ,REPAIR/MAINT-EQUIPMENT,Posting,Expense,Income Statement,Both,true +7171,Repair/Maint Expense ,REPAIR/MAINT EXPENSE,Posting,Expense,Income Statement,Both,true +7172,Management Rent ,MANAGEMENT RENT,Posting,Expense,Income Statement,Both,true +7180,Office Supplies ,OFFICE SUPPLIES,Posting,Expense,Income Statement,Both,true +7181,Copy Services ,COPY SERVICES,Posting,Expense,Income Statement,Both,true +7182,Design Services ,DESIGN SERVICES,Posting,Expense,Income Statement,Both,true +7183,Printing Services ,PRINTING SERVICES,Posting,Expense,Income Statement,Both,true +7184,Copy Services - ODC ,COPY SERVICES - ODC,Posting,Expense,Income Statement,Both,true +7190,Outside Services ,OUTSIDE SERVICES,Posting,Expense,Income Statement,Both,true +7200,Rubbish Removal ,RUBBISH REMOVAL,Posting,Expense,Income Statement,Both,true +7210,Sales Promotion ,SALES PROMOTION,Posting,Expense,Income Statement,Both,true +7220,Salesman's Vehicle Expense ,SALESMAN'S VEHICLE EXPENSE,Posting,Expense,Income Statement,Both,true +7221,Corporate Vehicle Expense ,CORPORATE VEHICLE EXPENSE,Posting,Expense,Income Statement,Both,true +7222,Travel Expenses ,TRAVEL EXPENSES,Posting,Expense,Income Statement,Both,true +7230,Shop Supplies ,SHOP SUPPLIES,Posting,Expense,Income Statement,Both,true +7240,Taxes/Personal Property ,TAXES/PERSONAL PROPERTY,Posting,Expense,Income Statement,Both,true +7250,Taxes/Real Estate ,TAXES/REAL ESTATE,Posting,Expense,Income Statement,Both,true +7260,Taxes Franchise ,TAXES FRANCHISE,Posting,Expense,Income Statement,Both,true +7270,Freight ,FREIGHT,Posting,Expense,Income Statement,Both,true +7271,Freight Expense ,FREIGHT EXPENSE,Posting,Expense,Income Statement,Both,true +7272,Express Freight ,EXPRESS FREIGHT,Posting,Expense,Income Statement,Both,true +7273,Honor ,HONOR,Posting,Expense,Income Statement,Both,true +7280,Postage ,POSTAGE,Posting,Expense,Income Statement,Both,true +7281,Postage Expense ,POSTAGE EXPENSE,Posting,Expense,Income Statement,Both,true +7290,Personnel ,PERSONNEL,Posting,Expense,Income Statement,Both,true +7300,Miscellaneous ,MISCELLANEOUS,Posting,Expense,Income Statement,Both,true +7410,Sales Tax Paid ,SALES TAX PAID,Posting,Expense,Income Statement,Both,true +7411,Sales Tax Paid - City ,SALES TAX PAID - CITY,Posting,Expense,Income Statement,Both,true +7412,Sales Tax Paid - County ,SALES TAX PAID - COUNTY,Posting,Expense,Income Statement,Both,true +7413,Sales Tax Paid - State ,SALES TAX PAID - STATE,Posting,Expense,Income Statement,Both,true +7415,Sales Tax Paid - IL ,SALES TAX PAID - IL,Posting,Expense,Income Statement,Both,true +7416,Sales Tax Paid - IL - City ,SALES TAX PAID - IL - CITY,Posting,Expense,Income Statement,Both,true +7417,Sales Tax Paid - IL - County ,SALES TAX PAID - IL - COUNTY,Posting,Expense,Income Statement,Both,true +7418,Sales Tax Paid - IL - State ,SALES TAX PAID - IL - STATE,Posting,Expense,Income Statement,Both,true +7419,Sales Tax Paid Expense - GST ,SALES TAX PAID EXPENSE - GST,Posting,Expense,Income Statement,Both,true +7420,Sales Tax Paid Expense - VAT ,SALES TAX PAID EXPENSE - VAT,Posting,Expense,Income Statement,Both,true +7500,PPV ,PPV,Posting,Expense,Income Statement,Both,true +8000,Pooled Rent Expense ,POOLED RENT EXPENSE,Posting,Expense,Income Statement,Both,true +8001,Test Allocation 8001 ,TEST ALLOCATION 8001,Posting,Expense,Income Statement,Both,true +8002,Test Allocation 8002 ,TEST ALLOCATION 8002,Posting,Expense,Income Statement,Both,true +8003,Test Allocation 8003 ,TEST ALLOCATION 8003,Posting,Expense,Income Statement,Both,true +8010,Commissions ,COMMISSIONS,Posting,Income,Income Statement,Both,true +8020,Interest Earned ,INTEREST EARNED,Posting,Income,Income Statement,Both,true +8030,Discounts Taken ,DISCOUNTS TAKEN,Posting,Income,Income Statement,Both,true +8040,Rents ,RENTS,Posting,Income,Income Statement,Both,true +8050,Gain on Sale of Assets ,GAIN ON SALE OF ASSETS,Posting,Income,Income Statement,Both,true +8060,Dividends Received ,DIVIDENDS RECEIVED,Posting,Income,Income Statement,Both,true +8070,Miscellaneous ,MISCELLANEOUS,Posting,Income,Income Statement,Both,true +8300,SWE Test ,SWE TEST,Posting,Income,Income Statement,Both,true +8999,Allocated Rent Offset ,ALLOCATED RENT OFFSET,Posting,Income,Income Statement,Both,true +9010,Discounts-Allowed ,DISCOUNTS-ALLOWED,Posting,Expense,Income Statement,Both,true +9020,Interest-General ,INTEREST-GENERAL,Posting,Expense,Income Statement,Both,true +9030,Loss on Sale of Assets ,LOSS ON SALE OF ASSETS,Posting,Expense,Income Statement,Both,true +9040,Miscellaneous ,MISCELLANEOUS,Posting,Expense,Income Statement,Both,true +9050,Non-Deductible Penalties ,NON-DEDUCTIBLE PENALTIES,Posting,Expense,Income Statement,Both,true +9090,Provision for Income Tax1 ,PROVISION FOR INCOME TAX1,Posting,Expense,Income Statement,Both,true diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLAPDocBuffer.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLAPDocBuffer.csv new file mode 100644 index 0000000000..28ba1c9972 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLAPDocBuffer.csv @@ -0,0 +1,161 @@ +Account Number,Sub,DocType,RefNbr,RecordID,Batch Number,CpnyID,DocBal,DocDate,DocDesc,DueDate,InvcDate,InvcNbr,OpenDoc,PONbr,Rlsed,Status,Terms,VendId +1030 ,01100AA00001 ,CK,000001 ,1,000003 ,"CRONUS USA, Inc.",0,1999-10-31,,1900-01-01,1900-01-01,,0,,1,C,,VT0100 +1030 ,01100AA00001 ,CK,000002 ,2,000006 ,"CRONUS USA, Inc.",0,1999-10-31,,1900-01-01,1900-01-01,,0,,1,C,,VT0100 +1030 ,01100AA00001 ,CK,000003 ,3,000013 ,"CRONUS USA, Inc.",0,1999-10-31,,1900-01-01,1900-01-01,,0,,1,C,,VT0122 +1030 ,01100AA00001 ,CK,000004 ,4,000015 ,"CRONUS USA, Inc.",0,1999-10-31,,1900-01-01,1900-01-01,,0,,1,C,,VT0122 +1030 ,01100AA00001 ,CK,000005 ,5,000017 ,"CRONUS USA, Inc.",0,1999-10-31,,1900-01-01,1900-01-01,,0,,1,C,,VT0122 +1030 ,01100AA00001 ,CK,000006 ,6,000021 ,"CRONUS USA, Inc.",0,1999-10-31,,1900-01-01,1900-01-01,,0,,1,C,,VT0121 +1030 ,01100AA00001 ,CK,000007 ,7,000026 ,"CRONUS USA, Inc.",0,1999-10-31,,1900-01-01,1900-01-01,,0,,1,C,,VT0121 +1030 ,01100AA00001 ,CK,000008 ,8,000035 ,"CRONUS USA, Inc.",0,1999-10-31,,1900-01-01,1900-01-01,,0,,1,C,,VT0122 +1030 ,01100AA00001 ,CK,000009 ,9,000040 ,"CRONUS USA, Inc.",0,1999-10-31,,1900-01-01,1900-01-01,,0,,1,C,,VT0123 +1030 ,01100AA00001 ,CK,000010 ,10,000049 ,"CRONUS USA, Inc.",0,1999-10-31,,1900-01-01,1900-01-01,,0,,1,C,,VT0124 +1030 ,01100AA00001 ,CK,000011 ,11,000052 ,"CRONUS USA, Inc.",0,1999-10-31,,1900-01-01,1900-01-01,,0,,1,C,,VT0124 +1030 ,01100AA00001 ,CK,000012 ,12,000064 ,"CRONUS USA, Inc.",0,1999-10-31,,1900-01-01,1900-01-01,,0,,1,C,,VT0110 +1030 ,01100AA00001 ,CK,000013 ,13,000069 ,"CRONUS USA, Inc.",0,1999-11-30,,1900-01-01,1900-01-01,,0,,1,C,,VT0100 +1030 ,01100AA00001 ,CK,000014 ,14,000074 ,"CRONUS USA, Inc.",0,1999-11-30,,1900-01-01,1900-01-01,,0,,1,O,,VT0122 +1030 ,01100AA00001 ,CK,000015 ,15,000077 ,"CRONUS USA, Inc.",0,1999-11-30,,1900-01-01,1900-01-01,,0,,1,O,,VT0121 +1030 ,01100AA00001 ,CK,000016 ,16,000082 ,"CRONUS USA, Inc.",0,1999-11-30,,1900-01-01,1900-01-01,,0,,1,O,,VT0123 +1030 ,01100AA00001 ,CK,000017 ,17,000090 ,"CRONUS USA, Inc.",0,1999-11-30,,1900-01-01,1900-01-01,,0,,1,O,,VT0110 +1030 ,01100AA00001 ,CK,000018 ,18,000092 ,"CRONUS USA, Inc.",0,1999-12-01,,1900-01-01,1900-01-01,,0,,1,O,,VT0100 +1030 ,01100AA00001 ,CK,000019 ,19,000095 ,"CRONUS USA, Inc.",0,1999-12-01,,1900-01-01,1900-01-01,,0,,1,O,,VT0122 +1030 ,01100AA00001 ,CK,000020 ,20,000097 ,"CRONUS USA, Inc.",0,1999-12-01,,1900-01-01,1900-01-01,,0,,1,O,,VT0122 +1030 ,01100AA00001 ,CK,000021 ,21,000099 ,"CRONUS USA, Inc.",0,1999-12-01,,1900-01-01,1900-01-01,,0,,1,O,,VT0121 +1030 ,01100AA00001 ,CK,000022 ,22,000103 ,"CRONUS USA, Inc.",0,1999-12-01,,1900-01-01,1900-01-01,,0,,1,O,,VT0123 +1030 ,01100AA00001 ,CK,000023 ,132,000131 ,"CRONUS USA, Inc.",0,2017-05-22,,1900-01-01,1900-01-01,,0,,1,O,,V00217 +1030 ,01100AA00001 ,CK,000024 ,134,000133 ,"CRONUS USA, Inc.",0,2017-05-22,,1900-01-01,1900-01-01,,0,,1,O,,VT0125 +1030 ,01100AA00001 ,CK,000026 ,143,000139 ,"CRONUS USA, Inc.",0,2017-06-08,,1900-01-01,1900-01-01,,0,,1,O,,V00206 +1030 ,01100AA00001 ,CK,000027 ,146,000143 ,"CRONUS USA, Inc.",0,2017-06-09,,1900-01-01,1900-01-01,,0,,1,O,,VT0121 +1030 ,01100AA00001 ,CK,000028 ,147,000147 ,"CRONUS USA, Inc.",0,2017-06-12,,1900-01-01,1900-01-01,,0,,1,O,,VT0121 +1030 ,01100AA00001 ,CK,000029 ,151,000155 ,"CRONUS USA, Inc.",0,2017-08-31,,1900-01-01,1900-01-01,,0,,1,O,,VT0121 +1030 ,01100AA00001 ,CK,000031 ,153,000157 ,"CRONUS USA, Inc.",0,2017-09-18,,1900-01-01,1900-01-01,,0,,1,O,,V00206 +1030 ,01100AA00001 ,CK,000032 ,178,000183 ,"CRONUS USA, Inc.",0,2018-05-21,,1900-01-01,1900-01-01,,0,,1,O,,VT0121 +1030 ,01100AA00001 ,CK,000033 ,180,000185 ,"CRONUS USA, Inc.",0,2018-06-15,,1900-01-01,1900-01-01,,0,,1,O,,VT0122 +1030 ,01100AA00001 ,CK,000036 ,185,000189 ,"CRONUS USA, Inc.",0,2018-06-30,,1900-01-01,1900-01-01,,0,,1,O,,VT0125 +1030 ,01100AA00001 ,HC,000025 ,141,000137 ,"CRONUS USA, Inc.",0,2017-03-20,,1900-01-01,1900-01-01,,0,,1,O,,VT0124 +1030 ,01100AA00001 ,HC,000030 ,152,000156 ,"CRONUS USA, Inc.",0,2017-09-18,,1900-01-01,1900-01-01,,0,,1,O,,V00206 +2050 ,01000AA00001 ,PP,000108 ,131,000130 ,"CRONUS USA, Inc.",0,2017-05-22,,1900-01-01,2017-05-22,,0,1 ,1,A,,V00217 +2050 ,01000AA00001 ,PP,000116 ,142,000138 ,"CRONUS USA, Inc.",0,2017-06-08,,1900-01-01,2017-06-08,,0,1 ,1,A,,V00206 +2050 ,01000AA00001 ,RC,REC01 ,118,,"CRONUS USA, Inc.",1200,2017-04-04,,2017-05-04,1900-01-01,,0,,0,,05,V00206 +2050 ,01000AA00001 ,VO,000093 ,115,000115 ,"CRONUS USA, Inc.",100,2015-12-01,,2015-12-31,2015-12-01,,1,,1,A,05,V00205 +2050 ,01000AA00001 ,VO,000094 ,116,000116 ,"CRONUS USA, Inc.",600,2015-12-01,,2015-12-31,2015-12-01,,1,000010 ,1,A,05,V00209 +2050 ,01000AA00001 ,VO,000095 ,117,000117 ,"CRONUS USA, Inc.",0,2016-08-23,,2016-09-22,2016-08-23,,0,,1,A,05,V00206 +2050 ,01000AA00001 ,VO,000101 ,124,000125 ,"CRONUS USA, Inc.",640,2016-11-15,Created from Receipt:000010 ,2016-12-15,2016-11-15,,1,* ,1,A,05,V00209 +2050 ,01000AA00001 ,VO,000103 ,126,000123 ,"CRONUS USA, Inc.",100,2016-12-08,,2017-01-07,2016-12-08,,1,,1,A,05,V00207 +2050 ,01000AA00001 ,VO,000106 ,129,000128 ,"CRONUS USA, Inc.",250,2017-03-20,,2017-04-19,2017-03-20,,1,,1,A,05,V00207 +2050 ,01000AA00001 ,VO,000109 ,133,000132 ,"CRONUS USA, Inc.",0,2017-05-22,,2017-06-21,2017-05-22,,0,,1,A,05,V00217 +2050 ,01000AA00001 ,VO,000111 ,136,000135 ,"CRONUS USA, Inc.",0,2016-11-04,,2016-12-04,2016-11-04,,0,,1,A,05,V00206 +2050 ,01000AA00001 ,VO,000112 ,137,000135 ,"CRONUS USA, Inc.",1200,2016-12-04,,2017-01-03,2016-12-04,,1,,1,A,05,V00206 +2050 ,01000AA00001 ,VO,000113 ,138,000135 ,"CRONUS USA, Inc.",1200,2017-01-04,,2017-02-03,2017-01-04,,1,,1,A,05,V00206 +2050 ,01000AA00001 ,VO,000114 ,139,000135 ,"CRONUS USA, Inc.",1200,2017-02-04,,2017-03-06,2017-02-04,,1,,1,A,05,V00206 +2050 ,01000AA00001 ,VO,000115 ,140,000136 ,"CRONUS USA, Inc.",1200,2017-03-04,,2017-04-03,2017-03-04,,1,,1,A,05,V00206 +2050 ,01000AA00001 ,VO,000119 ,148,000148 ,"CRONUS USA, Inc.",1000,2017-08-23,,2017-09-22,2017-08-23,,1,,1,A,05,V00217 +2050 ,01000AA00001 ,VO,000122 ,154,000158 ,"CRONUS USA, Inc.",1000,2017-09-18,,2017-10-18,2017-09-18,,1,,1,A,01,V00205 +2050 ,01000AA00001 ,VO,000137 ,169,000173 ,"CRONUS USA, Inc.",20,2018-12-05,Created from Receipt:000013 ,2019-01-04,2018-12-05,,1,000022 ,1,A,05,V00209 +2050 ,01000AA00001 ,VO,000139 ,171,000175 ,"CRONUS USA, Inc.",100,2019-01-21,,2019-02-20,2019-01-21,,1,,1,A,05,V00205 +2050 ,01000AA00001 ,VT,000123 ,155,,"CRONUS USA, Inc.",100,2017-09-18,,2017-10-18,2017-09-18,,1,1 ,0,V,01,V00205 +2050 ,01000AA00001 ,VT,000140 ,172,,"CRONUS USA, Inc.",100,2019-01-22,,2019-02-21,2019-01-22,,1,,0,V,05,V00206 +2050 ,01100AA00001 ,AC,000007 ,23,000009 ,"CRONUS USA, Inc.",0,1999-10-10,,1999-11-09,1999-10-10,,0,,1,A,01,VT0100 +2050 ,01100AA00001 ,AC,000014 ,24,000019 ,"CRONUS USA, Inc.",0,1999-10-10,,1999-11-09,1999-10-10,,0,,1,A,05,VT0122 +2050 ,01100AA00001 ,AC,000021 ,25,000028 ,"CRONUS USA, Inc.",0,1999-10-19,,1999-11-18,1999-10-19,,0,,1,A,05,VT0121 +2050 ,01100AA00001 ,AC,000022 ,26,000029 ,"CRONUS USA, Inc.",0,1999-10-31,,1999-11-30,1999-10-31,,0,,1,A,05,VT0121 +2050 ,01100AA00001 ,AC,000033 ,28,000042 ,"CRONUS USA, Inc.",0,1999-10-10,,1999-11-09,1999-10-10,,0,,1,A,05,VT0123 +2050 ,01100AA00001 ,AC,000038 ,29,000047 ,"CRONUS USA, Inc.",0,1999-10-31,,1999-11-30,1999-10-31,,0,,1,A,05,VT0123 +2050 ,01100AA00001 ,AC,000048 ,30,000059 ,"CRONUS USA, Inc.",309.949999999999989,1999-10-19,,1999-11-18,1999-10-19,,1,,1,A,05,VT0125 +2050 ,01100AA00001 ,AC,000058 ,31,000071 ,"CRONUS USA, Inc.",0,1998-11-11,,1998-12-11,1998-11-11,,0,,1,A,01,VT0100 +2050 ,01100AA00001 ,AC,000084 ,32,000106 ,"CRONUS USA, Inc.",25.25,1999-12-01,,1999-12-31,1999-12-01,,1,,1,A,05,VT0123 +2050 ,01100AA00001 ,AD,000070 ,34,000086 ,"CRONUS USA, Inc.",250,1999-11-05,,1999-12-05,1999-11-05,,1,,1,A,05,VT0124 +2050 ,01100AA00001 ,AD,000087 ,35,000109 ,"CRONUS USA, Inc.",23122.2400000000016,1999-12-01,,1999-12-31,1999-12-01,,1,,1,A,05,VT0124 +2050 ,01100AA00001 ,AD,000090 ,36,000112 ,"CRONUS USA, Inc.",25.25,1999-12-01,,1999-12-31,1999-12-01,,1,,1,A,05,VT0125 +2050 ,01100AA00001 ,PP,000107 ,130,000129 ,"CRONUS USA, Inc.",0,2017-05-22,,1900-01-01,2017-05-22,,0,1 ,1,A,,VT0125 +2050 ,01100AA00001 ,PP,000117 ,144,000141 ,"CRONUS USA, Inc.",0,2017-06-09,,1900-01-01,2017-06-09,,0,2 ,1,A,,VT0121 +2050 ,01100AA00001 ,PP,000118 ,145,000142 ,"CRONUS USA, Inc.",0,2017-06-09,,1900-01-01,2017-06-09,,0,3 ,1,A,,VT0121 +2050 ,01100AA00001 ,PP,000121 ,150,000151 ,"CRONUS USA, Inc.",0,2017-08-30,,1900-01-01,2017-08-30,,0,1 ,1,A,,VT0121 +2050 ,01100AA00001 ,VO,000001 ,37,000001 ,"CRONUS USA, Inc.",0,1999-10-01,,1999-10-31,1999-10-01,,0,,1,A,01,VT0100 +2050 ,01100AA00001 ,VO,000002 ,38,000002 ,"CRONUS USA, Inc.",0,1999-10-31,,1999-11-30,1999-10-31,,0,,1,A,01,VT0100 +2050 ,01100AA00001 ,VO,000005 ,41,000007 ,"CRONUS USA, Inc.",0,1999-10-15,,1999-11-14,1999-10-15,,0,,1,A,01,VT0100 +2050 ,01100AA00001 ,VO,000006 ,42,000008 ,"CRONUS USA, Inc.",0,1999-10-07,,1999-11-06,1999-10-07,,0,,1,A,01,VT0100 +2050 ,01100AA00001 ,VO,000008 ,43,000010 ,"CRONUS USA, Inc.",0,1999-10-01,,1999-10-31,1999-10-01,,0,,1,A,05,VT0122 +2050 ,01100AA00001 ,VO,000009 ,44,000011 ,"CRONUS USA, Inc.",0,1999-10-31,,1999-11-30,1999-10-31,,0,,1,A,05,VT0122 +2050 ,01100AA00001 ,VO,000010 ,45,000012 ,"CRONUS USA, Inc.",0,1998-10-01,,1998-10-31,1998-10-01,,0,,1,A,05,VT0122 +2050 ,01100AA00001 ,VO,000013 ,48,000018 ,"CRONUS USA, Inc.",0,1999-10-07,,1999-11-06,1999-10-07,,0,,1,A,05,VT0122 +2050 ,01100AA00001 ,VO,000015 ,49,000020 ,"CRONUS USA, Inc.",0,1999-10-01,,1999-10-31,1999-10-01,,0,,1,A,05,VT0121 +2050 ,01100AA00001 ,VO,000016 ,50,000022 ,"CRONUS USA, Inc.",0,1999-10-31,,1999-11-30,1999-10-31,,0,,1,A,05,VT0121 +2050 ,01100AA00001 ,VO,000017 ,51,000023 ,"CRONUS USA, Inc.",0,1999-10-31,,1999-11-30,1999-10-31,,0,,1,A,05,VT0121 +2050 ,01100AA00001 ,VO,000018 ,52,000024 ,"CRONUS USA, Inc.",0,1998-10-01,,1998-10-31,1998-10-01,,0,,1,A,05,VT0121 +2050 ,01100AA00001 ,VO,000019 ,53,000025 ,"CRONUS USA, Inc.",0,1999-10-21,,1999-11-20,1999-10-21,,0,,1,A,05,VT0121 +2050 ,01100AA00001 ,VO,000020 ,54,000027 ,"CRONUS USA, Inc.",0,1999-10-07,,1999-11-06,1999-10-07,,0,,1,A,05,VT0121 +2050 ,01100AA00001 ,VO,000023 ,55,000030 ,"CRONUS USA, Inc.",0,1999-10-01,,1999-10-31,1999-10-01,,0,,1,A,05,VT0122 +2050 ,01100AA00001 ,VO,000024 ,56,000031 ,"CRONUS USA, Inc.",0,1998-10-01,,1998-10-31,1998-10-01,,0,,1,A,05,VT0122 +2050 ,01100AA00001 ,VO,000025 ,57,000032 ,"CRONUS USA, Inc.",0,1999-10-21,,1999-11-20,1999-10-21,,0,,1,A,05,VT0122 +2050 ,01100AA00001 ,VO,000026 ,58,000033 ,"CRONUS USA, Inc.",0,1999-10-15,,1999-11-14,1999-10-15,,0,,1,A,05,VT0122 +2050 ,01100AA00001 ,VO,000027 ,59,000034 ,"CRONUS USA, Inc.",0,1999-10-15,,1999-11-14,1999-10-15,,0,,1,A,05,VT0122 +2050 ,01100AA00001 ,VO,000032 ,63,000041 ,"CRONUS USA, Inc.",0,1998-10-01,,1998-10-31,1998-10-01,,0,,1,A,05,VT0123 +2050 ,01100AA00001 ,VO,000034 ,64,000043 ,"CRONUS USA, Inc.",0,1999-10-21,,1999-11-20,1999-10-21,,0,,1,A,05,VT0123 +2050 ,01100AA00001 ,VO,000035 ,65,000044 ,"CRONUS USA, Inc.",0,1999-10-15,,1999-11-14,1999-10-15,,0,,1,A,05,VT0123 +2050 ,01100AA00001 ,VO,000036 ,66,000045 ,"CRONUS USA, Inc.",0,1999-10-15,,1999-11-14,1999-10-15,,0,,1,A,05,VT0123 +2050 ,01100AA00001 ,VO,000037 ,67,000046 ,"CRONUS USA, Inc.",0,1999-10-07,,1999-11-06,1999-10-07,,0,,1,A,05,VT0123 +2050 ,01100AA00001 ,VO,000039 ,68,000048 ,"CRONUS USA, Inc.",0,1999-10-31,,1999-11-30,1999-10-31,,0,,1,A,05,VT0124 +2050 ,01100AA00001 ,VO,000040 ,69,000050 ,"CRONUS USA, Inc.",0,1999-10-31,,1999-11-30,1999-10-31,,0,,1,A,05,VT0124 +2050 ,01100AA00001 ,VO,000041 ,70,000051 ,"CRONUS USA, Inc.",0,1998-10-01,,1998-10-31,1998-10-01,,0,,1,A,05,VT0124 +2050 ,01100AA00001 ,VO,000042 ,71,000053 ,"CRONUS USA, Inc.",402600.520000000019,1999-10-15,,1999-11-14,1999-10-15,,1,,1,A,05,VT0124 +2050 ,01100AA00001 ,VO,000043 ,72,000054 ,"CRONUS USA, Inc.",1449002.56000000006,1999-10-15,,1999-11-14,1999-10-15,,1,,1,A,05,VT0124 +2050 ,01100AA00001 ,VO,000044 ,73,000055 ,"CRONUS USA, Inc.",67995.070000000007,1999-10-07,,1999-11-06,1999-10-07,,1,,1,A,05,VT0124 +2050 ,01100AA00001 ,VO,000045 ,74,000056 ,"CRONUS USA, Inc.",25.25,1999-10-01,,1999-10-31,1999-10-01,,1,,1,A,05,VT0125 +2050 ,01100AA00001 ,VO,000046 ,75,000057 ,"CRONUS USA, Inc.",46414.2099999999991,1999-10-31,,1999-11-30,1999-10-31,,1,,1,A,05,VT0125 +2050 ,01100AA00001 ,VO,000047 ,76,000058 ,"CRONUS USA, Inc.",402600.520000000019,1999-10-15,,1999-11-14,1999-10-15,,1,,1,A,05,VT0125 +2050 ,01100AA00001 ,VO,000049 ,77,000060 ,"CRONUS USA, Inc.",0,1999-10-01,,1999-10-31,1999-10-01,,0,,1,A,05,VT0110 +2050 ,01100AA00001 ,VO,000050 ,78,000061 ,"CRONUS USA, Inc.",0,1999-10-31,,1999-11-30,1999-10-31,,0,,1,A,05,VT0110 +2050 ,01100AA00001 ,VO,000051 ,79,000062 ,"CRONUS USA, Inc.",0,1998-10-01,,1998-10-31,1998-10-01,,0,,1,A,05,VT0110 +2050 ,01100AA00001 ,VO,000052 ,80,000063 ,"CRONUS USA, Inc.",0,1999-10-15,,1999-11-14,1999-10-15,,0,,1,A,05,VT0110 +2050 ,01100AA00001 ,VO,000055 ,82,000067 ,"CRONUS USA, Inc.",0,1999-11-01,,1999-12-01,1999-11-01,,0,,1,A,01,VT0100 +2050 ,01100AA00001 ,VO,000056 ,83,000068 ,"CRONUS USA, Inc.",0,2000-11-30,,2000-12-30,2000-11-30,,0,,1,A,01,VT0100 +2050 ,01100AA00001 ,VO,000059 ,85,000072 ,"CRONUS USA, Inc.",0,1999-11-01,,1999-12-01,1999-11-01,,0,,1,A,05,VT0122 +2050 ,01100AA00001 ,VO,000060 ,86,000073 ,"CRONUS USA, Inc.",0,2000-11-30,,2000-12-30,2000-11-30,,0,,1,A,05,VT0122 +2050 ,01100AA00001 ,VO,000062 ,88,000076 ,"CRONUS USA, Inc.",0,1999-11-01,,1999-12-01,1999-11-01,,0,,1,A,05,VT0121 +2050 ,01100AA00001 ,VO,000063 ,89,000078 ,"CRONUS USA, Inc.",0,2000-11-30,,2000-12-30,2000-11-30,,0,,1,A,05,VT0121 +2050 ,01100AA00001 ,VO,000064 ,90,000079 ,"CRONUS USA, Inc.",0,2000-11-30,,2000-12-30,2000-11-30,,0,,1,A,05,VT0121 +2050 ,01100AA00001 ,VO,000067 ,93,000083 ,"CRONUS USA, Inc.",0,2000-11-30,,2000-12-30,2000-11-30,,0,,1,A,05,VT0123 +2050 ,01100AA00001 ,VO,000068 ,94,000084 ,"CRONUS USA, Inc.",25.25,1999-11-01,,1999-12-01,1999-11-01,,1,,1,A,05,VT0124 +2050 ,01100AA00001 ,VO,000069 ,95,000085 ,"CRONUS USA, Inc.",0,2000-11-30,,2000-12-30,2000-11-30,,0,,1,A,05,VT0124 +2050 ,01100AA00001 ,VO,000072 ,97,000088 ,"CRONUS USA, Inc.",402600.520000000019,1999-11-15,,1999-12-15,1999-11-15,,1,,1,A,05,VT0125 +2050 ,01100AA00001 ,VO,000073 ,98,000089 ,"CRONUS USA, Inc.",0,1999-11-01,,1999-12-01,1999-11-01,,0,,1,A,05,VT0110 +2050 ,01100AA00001 ,VO,000074 ,99,000091 ,"CRONUS USA, Inc.",1546810.22999999998,1999-11-15,,1999-12-15,1999-11-15,,1,,1,A,05,VT0110 +2050 ,01100AA00001 ,VO,000079 ,104,000100 ,"CRONUS USA, Inc.",0,1998-10-01,,1998-10-31,1998-10-01,,0,,1,A,05,VT0121 +2050 ,01100AA00001 ,VO,000080 ,105,000101 ,"CRONUS USA, Inc.",0,1999-10-21,,1999-11-20,1999-10-21,,0,,1,A,05,VT0121 +2050 ,01100AA00001 ,VO,000082 ,107,000104 ,"CRONUS USA, Inc.",1000,1999-12-01,,1999-12-31,1999-12-01,,1,,1,A,05,VT0123 +2050 ,01100AA00001 ,VO,000083 ,108,000105 ,"CRONUS USA, Inc.",23122.2400000000016,1999-12-01,,1999-12-31,1999-12-01,,1,,1,A,05,VT0123 +2050 ,01100AA00001 ,VO,000085 ,109,000107 ,"CRONUS USA, Inc.",25.25,1999-12-01,,1999-12-31,1999-12-01,,1,,1,A,05,VT0124 +2050 ,01100AA00001 ,VO,000086 ,110,000108 ,"CRONUS USA, Inc.",402600.520000000019,1999-12-01,,1999-12-31,1999-12-01,,1,,1,A,05,VT0124 +2050 ,01100AA00001 ,VO,000088 ,111,000110 ,"CRONUS USA, Inc.",25.25,1999-12-01,,1999-12-31,1999-12-01,,1,,1,A,05,VT0125 +2050 ,01100AA00001 ,VO,000089 ,112,000111 ,"CRONUS USA, Inc.",46414.2099999999991,1999-12-01,,1999-12-31,1999-12-01,,1,,1,A,05,VT0125 +2050 ,01100AA00001 ,VO,000091 ,113,000113 ,"CRONUS USA, Inc.",26.9600000000000009,1999-12-01,,1999-12-31,1999-12-01,,1,,1,A,05,VT0110 +2050 ,01100AA00001 ,VO,000092 ,114,000114 ,"CRONUS USA, Inc.",429776.049999999988,1999-12-01,,1999-12-31,1999-12-01,,1,,1,A,05,VT0110 +2050 ,01100AA00001 ,VO,000096 ,119,000119 ,"CRONUS USA, Inc.",320.25,2016-11-14,Created from Receipt:000007 ,2016-12-14,2016-11-14,,1,000014 ,1,A,01,VT0100 +2050 ,01100AA00001 ,VO,000097 ,120,000118 ,"CRONUS USA, Inc.",25,2016-11-14,6120000 000007 ,2016-11-14,2016-11-14,,1,,1,A,06,VT0100 +2050 ,01100AA00001 ,VO,000099 ,122,000121 ,"CRONUS USA, Inc.",346.939999999999998,2016-11-14,,2016-12-14,2016-11-14,,1,000015 ,1,A,01,VT0100 +2050 ,01100AA00001 ,VO,000100 ,123,000124 ,"CRONUS USA, Inc.",8662.5,2016-11-14,Created from Receipt:000009 ,2016-12-14,2016-11-14,,1,000003 ,1,A,05,VT0120 +2050 ,01100AA00001 ,VO,000120 ,149,000150 ,"CRONUS USA, Inc.",0,2017-08-30,,2017-09-29,2017-08-30,,0,,1,A,05,VT0121 +2050 ,01100AA00001 ,VO,000142 ,174,000178 ,"CRONUS USA, Inc.",144.120000000000005,2024-07-09,Created from Receipt:000015 ,2024-08-08,2024-07-09,,1,000027 ,1,A,05,VT0110 +2050 ,01100AA00001 ,VO,000144 ,176,000180 ,"CRONUS USA, Inc.",123.450000000000003,2025-10-06,,2025-11-05,2025-10-06,1099Test ,1,,1,H,05,VT0110 +2050 ,01100AA00001 ,VO,000145 ,177,000181 ,"CRONUS USA, Inc.",0,2018-05-10,,2018-06-09,2018-05-10,1099Test01 ,0,,1,A,05,VT0121 +2050 ,01100AA00001 ,VO,000146 ,179,000184 ,"CRONUS USA, Inc.",0,2018-06-10,,2018-07-10,2018-06-10,1099-5M-01 ,0,,1,A,05,VT0122 +2050 ,01100AA00001 ,VO,000148 ,182,000187 ,"CRONUS USA, Inc.",0,2018-06-25,,2018-07-25,2018-06-25,1099Royalty ,0,,1,A,05,VT0125 +2050 ,01100AA00001 ,VT,000098 ,121,,"CRONUS USA, Inc.",346.939999999999998,2016-11-14,Created from Receipt:000008 ,2016-12-14,2016-11-14,,1,000015 ,0,V,01,VT0100 +2050 ,03430AA00001 ,VO,000104 ,127,000126 ,"CRONUS USA, Inc.",3000,2016-12-22,Created from Receipt:000011 ,2017-01-21,2016-12-22,,1,000020 ,1,A,01,V00152 +2050 ,03430AA00001 ,VO,000105 ,128,000127 ,"CRONUS USA, Inc.",100,2017-02-13,,2017-03-15,2017-02-13,,1,,1,A,01,V00152 +2050 ,03430AA00001 ,VO,000124 ,156,000160 ,"CRONUS USA, Inc.",110,2017-10-31,,2017-11-30,2017-10-31,,1,,1,A,05,V00152 +2050 ,03430AA00001 ,VO,000125 ,157,000161 ,"CRONUS USA, Inc.",110,2017-10-31,,2017-11-30,2017-10-31,,1,,1,A,05,V00152 +2050 ,03430AA00001 ,VO,000126 ,158,000162 ,"CRONUS USA, Inc.",110,2017-10-31,,2017-11-30,2017-10-31,,1,,1,A,05,V00152 +2050 ,03430AA00001 ,VO,000127 ,159,000163 ,"CRONUS USA, Inc.",110,2017-10-31,,2017-11-30,2017-10-31,,1,,1,A,05,V00152 +2050 ,03430AA00001 ,VO,000128 ,160,000164 ,"CRONUS USA, Inc.",110,2017-10-31,,2017-11-30,2017-10-31,,1,,1,A,05,V00152 +2050 ,03430AA00001 ,VO,000129 ,161,000165 ,"CRONUS USA, Inc.",110,2017-10-31,,2017-11-30,2017-10-31,,1,,1,A,05,V00152 +2050 ,03430AA00001 ,VO,000130 ,162,000166 ,"CRONUS USA, Inc.",100,2017-10-31,,2017-11-30,2017-10-31,,1,,1,A,05,V00152 +2050 ,03430AA00001 ,VO,000131 ,163,000167 ,"CRONUS USA, Inc.",100,2017-10-31,,2017-11-30,2017-10-31,,1,,1,A,05,V00152 +2050 ,03430AA00001 ,VO,000132 ,164,000168 ,"CRONUS USA, Inc.",100,2017-10-31,,2017-11-30,2017-10-31,,1,,1,A,05,V00152 +2050 ,03430AA00001 ,VO,000133 ,165,000169 ,"CRONUS USA, Inc.",100,2017-10-31,,2017-11-30,2017-10-31,,1,,1,A,05,V00152 +2050 ,03430AA00001 ,VO,000134 ,166,000170 ,"CRONUS USA, Inc.",100,2017-10-31,,2017-11-30,2017-10-31,,1,,1,A,05,V00152 +2050 ,03430AA00001 ,VO,000135 ,167,000171 ,"CRONUS USA, Inc.",100,2017-10-31,,2017-11-30,2017-10-31,,1,,1,A,05,V00152 +2050 ,03430AA00001 ,VO,000136 ,168,000172 ,"CRONUS USA, Inc.",700,2018-05-07,Created from Receipt:000012 ,2018-06-06,2018-05-07,,1,000021 ,1,A,01,V00152 +2050 ,03430AA00001 ,VO,000138 ,170,000174 ,"CRONUS USA, Inc.",100,2019-01-21,,2019-02-20,2019-01-21,,1,,1,A,01,V00152 +2050 ,03430AA00001 ,VO,000141 ,173,000177 ,"CRONUS USA, Inc.",3000,2018-04-05,Created from Receipt:000014 ,2018-05-05,2018-04-05,,1,000023 ,1,A,01,V00152 +2060 ,EN2300000000 ,VO,000102 ,125,000122 ,"CRONUS USA, Inc.",270,2016-12-04,Test ,2016-12-05,2016-12-04,0000200028 ,1,,1,A,06,E01182 diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLARDocBuffer.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLARDocBuffer.csv new file mode 100644 index 0000000000..56bab65d19 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLARDocBuffer.csv @@ -0,0 +1,171 @@ +CustId,DocType,RefNbr,BatNbr,BatSeq,CpnyID,DocBal,DocDate,DocDesc,DueDate,OpenDoc,OrdNbr,Rlsed,SlsperId,Status,Terms +C300 ,CM,100170 ,000316 ,0,"CRONUS USA, Inc.",50,2020-09-21,Test ,2020-10-21,1,,1,PM ,,01 +C300 ,CS,100159 ,000277 ,0,"CRONUS USA, Inc.",0,2017-09-14,Test Cash Sale ,2017-10-14,0,,1,PM ,,01 +C300 ,DM,100160 ,000278 ,0,"CRONUS USA, Inc.",0,2017-09-20,Test open DM ,2017-10-20,0,,1,PM ,,01 +C300 ,IN,100113 ,000193 ,0,"CRONUS USA, Inc.",0,2016-04-06,BIREG ,2016-05-06,0,,1,PM ,,01 +C300 ,IN,100114 ,000194 ,0,"CRONUS USA, Inc.",86.75,2016-04-06,BIREG ,2016-05-06,1,,1,PM ,,01 +C300 ,IN,100141 ,000236 ,0,"CRONUS USA, Inc.",100.25,2017-05-15,Test Future period ,2017-06-14,1,,1,PM ,,01 +C300 ,IN,100156 ,000257 ,0,"CRONUS USA, Inc.",0,2017-08-23,Test for period 4 ,2017-08-23,0,,1,PM ,,06 +C300 ,IN,100157 ,000266 ,0,"CRONUS USA, Inc.",0,2017-08-29,Test ,2017-09-28,0,,1,PM ,,01 +C300 ,IN,100165 ,000292 ,0,"CRONUS USA, Inc.",100.25,2018-01-01,Future Year Test ,2018-01-31,1,,1,PM ,,01 +C300 ,IN,100166 ,000293 ,0,"CRONUS USA, Inc.",100,2018-02-01,,2018-03-03,1,,1,PM ,,01 +C300 ,IN,100167 ,000294 ,0,"CRONUS USA, Inc.",200,2018-02-28,,2018-03-30,1,,1,PM ,,01 +C300 ,IN,100168 ,000294 ,0,"CRONUS USA, Inc.",500,2018-02-28,,2018-03-30,1,,1,PM ,,01 +C300 ,IN,I1009387 ,000131 ,1,"CRONUS USA, Inc.",7600,2015-10-23,Counter Sale ,2015-11-22,1,,1,,,01 +C300 ,IN,I1009410 ,000209 ,1,"CRONUS USA, Inc.",380.949999999999989,2016-11-16,Sales Order ,2016-12-16,1,O1005159 ,1,,,01 +C300 ,IN,I1009457 ,000300 ,1,"CRONUS USA, Inc.",380,2019-03-05,Sales Order ,2019-04-04,1,O1005213 ,1,,,01 +C300 ,PA,1 ,000233 ,1,"CRONUS USA, Inc.",0,2017-05-15,,1900-01-01,0,,1,PM ,, +C300 ,PA,2 ,000234 ,1,"CRONUS USA, Inc.",0,2017-05-15,,1900-01-01,0,,1,PM ,, +C300 ,PA,3 ,000279 ,1,"CRONUS USA, Inc.",0,2017-09-20,,1900-01-01,0,,1,PM ,, +C300 ,PA,4 ,000258 ,1,"CRONUS USA, Inc.",0,2017-08-28,,1900-01-01,0,,1,PM ,, +C300 ,PA,5 ,000269 ,1,"CRONUS USA, Inc.",0,2017-08-31,,1900-01-01,0,,1,PM ,, +C300 ,PA,6 ,000267 ,1,"CRONUS USA, Inc.",0,2017-08-29,,1900-01-01,0,,1,PM ,, +C300 ,PA,7 ,000268 ,1,"CRONUS USA, Inc.",0,2017-08-29,,1900-01-01,0,,1,PM ,, +C300 ,PA,8 ,000280 ,1,"CRONUS USA, Inc.",0,2017-09-20,,1900-01-01,0,,1,PM ,, +C315 ,IN,100093 ,000141 ,0,"CRONUS USA, Inc.",1334.38000000000011,2016-01-22,BIREG ,2016-02-21,1,,1,BW ,,01 +C315 ,IN,100094 ,000141 ,0,"CRONUS USA, Inc.",106.75,2016-01-20,BIREG ,2016-02-19,1,,1,BW ,,01 +C315 ,IN,100107 ,000193 ,0,"CRONUS USA, Inc.",5204.06999999999971,2016-04-06,BIREG ,2016-05-06,1,,1,BW ,,01 +C315 ,IN,100125 ,000210 ,0,"CRONUS USA, Inc.",107.5,2016-10-05,BIREG ,2016-11-04,1,,1,BW ,,01 +C315 ,IN,100137 ,000228 ,0,"CRONUS USA, Inc.",106.75,2017-04-04,Test ,2017-05-04,1,,1,BW ,,01 +C315 ,IN,100169 ,000298 ,0,"CRONUS USA, Inc.",213.379999999999995,2018-04-03,BIREG ,2018-05-03,1,,1,BW ,,01 +C331 ,CM,100140 ,000232 ,0,"CRONUS USA, Inc.",25,2017-01-27,Test CM ,2017-02-26,1,,1,BW ,,01 +C331 ,IN,100138 ,000229 ,0,"CRONUS USA, Inc.",0,2017-04-03,Test Discount ,2017-05-03,0,,1,BW ,,01 +C331 ,IN,100139 ,000231 ,0,"CRONUS USA, Inc.",100,2017-01-23,Test ,2017-02-22,1,,1,BW ,,01 +C331 ,IN,I1009462 ,000305 ,1,"CRONUS USA, Inc.",380,2018-03-05,Invoice - No AvaTax ,2018-04-04,1,,1,,,01 +C331 ,IN,I1009469 ,000311 ,1,"CRONUS USA, Inc.",380,2018-09-03,Invoice - No AvaTax ,2018-10-03,1,,1,,,01 +C331 ,IN,I1009471 ,000312 ,1,"CRONUS USA, Inc.",500,2018-05-15,Invoice - No AvaTax ,2018-06-14,1,,1,,,01 +C331 ,PA,1 ,000230 ,1,"CRONUS USA, Inc.",0,2017-04-07,,1900-01-01,0,,1,BW ,, +C376 ,IN,100142 ,000237 ,0,"CRONUS USA, Inc.",0,2017-02-27,Test partial payments ,2017-03-29,0,,1,BW ,,01 +C376 ,PA,1 ,000238 ,1,"CRONUS USA, Inc.",0,2017-02-28,,1900-01-01,0,,1,BW ,, +C376 ,PA,2 ,000270 ,1,"CRONUS USA, Inc.",0,2017-08-31,,1900-01-01,0,,1,BW ,, +C389 ,IN,100155 ,000256 ,0,"CRONUS USA, Inc.",150,2017-08-18,,2017-09-17,1,,1,BW ,,01 +C389 ,IN,100161 ,000281 ,0,"CRONUS USA, Inc.",0,2017-10-04,Test ,2017-11-03,0,,1,BW ,,05 +C389 ,IN,I1009458 ,000301 ,1,"CRONUS USA, Inc.",100,2018-04-09,Invoice - No AvaTax ,2018-05-09,1,,1,,,01 +C389 ,IN,I1009459 ,000302 ,1,"CRONUS USA, Inc.",100,2018-05-07,Invoice - No AvaTax ,2018-06-06,1,,1,,,01 +C389 ,IN,I1009460 ,000303 ,1,"CRONUS USA, Inc.",100,2018-06-04,Invoice - No AvaTax ,2018-07-04,1,,1,,,01 +C389 ,IN,I1009461 ,000304 ,1,"CRONUS USA, Inc.",100,2018-07-02,Invoice - No AvaTax ,2018-08-01,1,,1,,,01 +C389 ,IN,I1009467 ,000310 ,1,"CRONUS USA, Inc.",380,2018-08-07,Invoice - No AvaTax ,2018-09-06,1,,1,,,01 +C389 ,IN,I1009472 ,000312 ,2,"CRONUS USA, Inc.",1900,2018-05-17,Invoice - No AvaTax ,2018-06-16,1,,1,,,01 +C389 ,PA,1 ,000282 ,1,"CRONUS USA, Inc.",0,2017-10-04,,1900-01-01,0,,1,BW ,, +C389 ,PA,2 ,000283 ,1,"CRONUS USA, Inc.",0,2017-10-25,,1900-01-01,0,,1,BW ,, +C404 ,IN,100148 ,000241 ,0,"CRONUS USA, Inc.",100,2017-01-02,Test recurring Invoice ,2017-02-01,1,,1,BW ,,01 +C404 ,IN,100149 ,000242 ,0,"CRONUS USA, Inc.",100,2017-02-02,Test recurring Invoice ,2017-03-04,1,,1,BW ,,01 +C404 ,IN,I1009463 ,000306 ,1,"CRONUS USA, Inc.",380,2018-04-03,Invoice - No AvaTax ,2018-05-03,1,,1,,,01 +C404 ,IN,I1009464 ,000307 ,1,"CRONUS USA, Inc.",380,2018-05-02,Invoice - No AvaTax ,2018-06-01,1,,1,,,01 +C404 ,IN,I1009465 ,000308 ,1,"CRONUS USA, Inc.",380,2018-06-05,Invoice - No AvaTax ,2018-07-05,1,,1,,,01 +C404 ,IN,I1009466 ,000309 ,1,"CRONUS USA, Inc.",380,2018-07-03,Invoice - No AvaTax ,2018-08-02,1,,1,,,01 +C404 ,IN,I1009470 ,000311 ,2,"CRONUS USA, Inc.",100,2018-09-03,Invoice - No AvaTax ,2018-10-03,1,,1,,,01 +C404 ,RC,JJREC2017 ,,0,"CRONUS USA, Inc.",100,2017-03-02,Test recurring Invoice ,2017-04-01,0,,0,BW ,,01 +C407 ,IN,100150 ,000243 ,0,"CRONUS USA, Inc.",0,2017-02-13,Test SBWO ,2017-02-13,0,,1,BW ,,06 +C407 ,NC,100151 ,000248 ,1,"CRONUS USA, Inc.",25,2017-05-19,,2017-05-19,1,,1,,,06 +C407 ,NS,1 ,000247 ,1,"CRONUS USA, Inc.",0,2017-05-19,,2017-05-19,0,,1,,, +C407 ,PA,1 ,000244 ,1,"CRONUS USA, Inc.",0,2017-02-20,,1900-01-01,0,,1,BW ,, +C407 ,PA,2 ,000271 ,1,"CRONUS USA, Inc.",0,2017-08-31,,1900-01-01,0,,1,BW ,, +C407 ,PP,TTPP1 ,000246 ,1,"CRONUS USA, Inc.",100,2017-05-19,,1900-01-01,1,,1,BW ,, +C407 ,SB,000000 ,000245 ,2,"CRONUS USA, Inc.",0,2017-05-19,,1900-01-01,0,,1,BW ,, +C419 ,IN,100086 ,000128 ,0,"CRONUS USA, Inc.",106.75,2015-10-26,BIREG ,2015-11-25,1,,1,BW ,,05 +C419 ,IN,100087 ,000141 ,0,"CRONUS USA, Inc.",373.629999999999995,2015-10-27,BIREG ,2015-11-26,1,,1,BW ,,05 +C419 ,IN,100095 ,000165 ,0,"CRONUS USA, Inc.",222.039999999999992,2016-03-24,BIREG ,2016-04-23,1,,1,BW ,,05 +C419 ,IN,100106 ,000189 ,0,"CRONUS USA, Inc.",160.129999999999995,2016-04-05,BIREG ,2016-05-05,1,,1,BW ,,05 +C419 ,IN,100108 ,000193 ,0,"CRONUS USA, Inc.",111.019999999999996,2016-04-06,BIREG ,2016-05-06,1,,1,BW ,,05 +C419 ,IN,100120 ,000210 ,0,"CRONUS USA, Inc.",840.5,2016-05-11,BIREG ,2016-06-10,1,,1,BW ,,05 +C422 ,IN,I1009468 ,000310 ,2,"CRONUS USA, Inc.",100,2018-08-07,Invoice - No AvaTax ,2018-09-06,1,,1,,,05 +CT0100 ,CM,000016 ,000022 ,0,"CRONUS USA, Inc.",0,1998-10-01,Company 0060 ,1998-10-31,0,,1,MN ,,01 +CT0100 ,DM,000015 ,000021 ,0,"CRONUS USA, Inc.",0,1999-09-01,Company 0060 ,1999-10-01,0,,1,MN ,,01 +CT0100 ,IN,000009 ,000013 ,0,"CRONUS USA, Inc.",0,1999-12-01,Company 0060 ,1999-12-31,0,,1,MN ,,01 +CT0100 ,IN,000010 ,000015 ,0,"CRONUS USA, Inc.",0,1998-10-01,Company 0060 ,1998-10-31,0,,1,MN ,,01 +CT0100 ,IN,000013 ,000019 ,0,"CRONUS USA, Inc.",0,1998-10-01,Company 0060 ,1998-10-31,0,,1,MN ,,01 +CT0100 ,IN,000014 ,000020 ,0,"CRONUS USA, Inc.",0,1999-10-01,Company 0060 ,1999-10-31,0,,1,MN ,,01 +CT0100 ,IN,000065 ,000098 ,0,"CRONUS USA, Inc.",0,1999-12-01,Company 0060 ,1999-12-31,0,,1,MN ,,01 +CT0100 ,IN,000080 ,000121 ,0,"CRONUS USA, Inc.",0,1999-12-15,,2000-01-14,0,,1,MN ,,01 +CT0100 ,PA,000004 ,000014 ,1,"CRONUS USA, Inc.",0,1999-09-01,,1900-01-01,0,,1,MN ,, +CT0100 ,PA,000005 ,000016 ,1,"CRONUS USA, Inc.",0,1999-09-01,,1900-01-01,0,,1,MN ,, +CT0100 ,PA,1 ,000264 ,1,"CRONUS USA, Inc.",0,2017-08-28,,1900-01-01,0,,1,MN ,, +CT0100 ,PA,200008 ,000095 ,1,"CRONUS USA, Inc.",0,1999-12-01,,1900-01-01,0,,1,MN ,, +CT0100 ,PA,99999 ,000084 ,1,"CRONUS USA, Inc.",0,1999-07-15,Unapplied Payment from CA ,1900-01-01,0,,1,,C, +CT0110 ,CM,000032 ,000043 ,0,"CRONUS USA, Inc.",0,1999-10-10,Company 0060 ,1999-11-09,0,,1,MN ,,05 +CT0110 ,DM,000031 ,000042 ,0,"CRONUS USA, Inc.",0,1999-10-01,Company 0060 ,1999-10-31,0,,1,MN ,,05 +CT0110 ,IN,000027 ,000038 ,0,"CRONUS USA, Inc.",0,2000-01-01,Company 0060 ,2000-01-31,0,,1,MN ,,05 +CT0110 ,IN,000028 ,000039 ,0,"CRONUS USA, Inc.",0,2000-01-01,Company 0060 ,2000-01-31,0,,1,MN ,,05 +CT0110 ,IN,000029 ,000040 ,0,"CRONUS USA, Inc.",0,1998-10-01,Company 0060 ,1998-10-31,0,,1,MN ,,05 +CT0110 ,IN,000030 ,000041 ,0,"CRONUS USA, Inc.",0,1999-10-01,Company 0060 ,1999-10-31,0,,1,MN ,,05 +CT0110 ,IN,000070 ,000105 ,0,"CRONUS USA, Inc.",0,1999-12-01,Company 0060 ,1999-12-31,0,,1,MN ,,05 +CT0110 ,IN,000071 ,000106 ,0,"CRONUS USA, Inc.",0,1999-12-01,Company 0060 ,1999-12-31,0,,1,MN ,,05 +CT0110 ,PA,000008 ,000036 ,1,"CRONUS USA, Inc.",0,1999-09-01,,1900-01-01,0,,1,MN ,, +CT0110 ,PA,1 ,000260 ,1,"CRONUS USA, Inc.",0,2017-08-28,,1900-01-01,0,,1,MN ,, +CT0110 ,PA,123 ,000079 ,1,"CRONUS USA, Inc.",0,1999-03-18,,1900-01-01,0,,1,MN ,, +CT0110 ,PA,321 ,000081 ,1,"CRONUS USA, Inc.",0,1999-03-18,,1900-01-01,0,,1,MN ,, +CT0110 ,PA,654 ,000082 ,1,"CRONUS USA, Inc.",0,1999-03-18,,1900-01-01,0,,1,MN ,, +CT0120 ,CM,000024 ,000033 ,0,"CRONUS USA, Inc.",0,1998-10-01,Company 0060 ,1998-10-31,0,,1,MN ,,01 +CT0120 ,CM,000069 ,000103 ,0,"CRONUS USA, Inc.",0,1999-12-01,Company 0060 ,1999-12-31,0,,1,MN ,,01 +CT0120 ,DM,000023 ,000032 ,0,"CRONUS USA, Inc.",0,1999-09-01,Company 0060 ,1999-10-01,0,,1,MN ,,01 +CT0120 ,IN,000017 ,000024 ,0,"CRONUS USA, Inc.",0,1999-12-01,Company 0060 ,1999-12-31,0,,1,MN ,,01 +CT0120 ,IN,000018 ,000026 ,0,"CRONUS USA, Inc.",0,1998-10-01,Company 0060 ,1998-10-31,0,,1,MN ,,01 +CT0120 ,IN,000021 ,000030 ,0,"CRONUS USA, Inc.",0,1998-10-01,Company 0060 ,1998-10-31,0,,1,MN ,,01 +CT0120 ,IN,000022 ,000031 ,0,"CRONUS USA, Inc.",0,1999-10-01,Company 0060 ,1999-10-31,0,,1,MN ,,01 +CT0120 ,IN,000068 ,000102 ,0,"CRONUS USA, Inc.",0,1999-12-01,Company 0060 ,1999-12-31,0,,1,MN ,,01 +CT0120 ,PA,000006 ,000025 ,1,"CRONUS USA, Inc.",0,1999-09-01,,1900-01-01,0,,1,MN ,, +CT0120 ,PA,000007 ,000027 ,1,"CRONUS USA, Inc.",0,1999-09-01,,1900-01-01,0,,1,MN ,, +CT0120 ,PA,1 ,000259 ,1,"CRONUS USA, Inc.",0,2017-08-28,,1900-01-01,0,,1,MN ,, +CT0120 ,PA,123 ,000080 ,1,"CRONUS USA, Inc.",0,1999-03-18,,1900-01-01,0,,1,MN ,, +CT0120 ,PA,200009 ,000099 ,1,"CRONUS USA, Inc.",0,1999-12-01,,1900-01-01,0,,1,MN ,, +CT0120 ,PA,987 ,000083 ,1,"CRONUS USA, Inc.",0,1999-03-18,,1900-01-01,0,,1,MN ,, +CT0130 ,CM,000008 ,000011 ,0,"CRONUS USA, Inc.",0,1998-10-01,Company 0060 ,1998-10-31,0,,1,MN ,,05 +CT0130 ,CM,000062 ,000093 ,0,"CRONUS USA, Inc.",0,1999-12-01,Company 0060 ,1999-12-31,0,,1,MN ,,05 +CT0130 ,DM,000007 ,000010 ,0,"CRONUS USA, Inc.",0,1999-09-01,Company 0060 ,1999-10-01,0,,1,MN ,,05 +CT0130 ,FI,000000 ,000239 ,0,"CRONUS USA, Inc.",12708.2900000000009,2017-05-18,Finance Charge ,2017-05-18,1,,1,,, +CT0130 ,IN,000001 ,000001 ,0,"CRONUS USA, Inc.",0,1999-12-01,Company 0060 ,1999-12-31,0,,1,MN ,,05 +CT0130 ,IN,000002 ,000003 ,0,"CRONUS USA, Inc.",0,1998-10-01,Company 0060 ,1998-10-31,0,,1,MN ,,05 +CT0130 ,IN,000005 ,000008 ,0,"CRONUS USA, Inc.",0,1998-10-01,Company 0060 ,1998-10-31,0,,1,MN ,,05 +CT0130 ,IN,000006 ,000009 ,0,"CRONUS USA, Inc.",0,1999-10-01,Company 0060 ,1999-10-31,0,,1,MN ,,05 +CT0130 ,IN,000061 ,000092 ,0,"CRONUS USA, Inc.",0,1999-12-01,Company 0060 ,1999-12-31,0,,1,MN ,,05 +CT0130 ,IN,000079 ,000119 ,0,"CRONUS USA, Inc.",0,1999-12-23,,2000-01-22,0,,1,MN ,,05 +CT0130 ,PA,000001 ,000002 ,1,"CRONUS USA, Inc.",0,1999-09-01,,1900-01-01,0,,1,MN ,, +CT0130 ,PA,000002 ,000004 ,1,"CRONUS USA, Inc.",0,1999-09-01,,1900-01-01,0,,1,MN ,, +CT0130 ,PA,000003 ,000006 ,1,"CRONUS USA, Inc.",0,1999-09-01,,1900-01-01,0,,1,MN ,, +CT0130 ,PA,1 ,000263 ,1,"CRONUS USA, Inc.",0,2017-08-28,,1900-01-01,0,,1,MN ,, +CT0130 ,PA,200007 ,000091 ,1,"CRONUS USA, Inc.",0,1999-12-01,,1900-01-01,0,,1,MN ,, +CT0131 ,CM,000040 ,000054 ,0,"CRONUS USA, Inc.",0,1999-10-10,Company 0060 ,1999-11-09,0,,1,MN ,,05 +CT0131 ,DM,000039 ,000053 ,0,"CRONUS USA, Inc.",905.169999999999959,1999-10-01,Company 0060 ,1999-10-31,1,,1,MN ,,05 +CT0131 ,IN,000035 ,000049 ,0,"CRONUS USA, Inc.",0,2000-01-01,Company 0060 ,2000-01-31,0,,1,MN ,,05 +CT0131 ,IN,000036 ,000050 ,0,"CRONUS USA, Inc.",0,2000-01-01,Company 0060 ,2000-01-31,0,,1,MN ,,05 +CT0131 ,IN,000037 ,000051 ,0,"CRONUS USA, Inc.",0,1998-10-01,Company 0060 ,1998-10-31,0,,1,MN ,,05 +CT0131 ,IN,000038 ,000052 ,0,"CRONUS USA, Inc.",0,1999-10-01,Company 0060 ,1999-10-31,0,,1,MN ,,05 +CT0131 ,IN,000072 ,000107 ,0,"CRONUS USA, Inc.",0,1999-12-01,Company 0060 ,1999-12-31,0,,1,MN ,,05 +CT0131 ,IN,000073 ,000108 ,0,"CRONUS USA, Inc.",0,1999-12-01,Company 0060 ,1999-12-31,0,,1,MN ,,05 +CT0131 ,IN,000074 ,000109 ,0,"CRONUS USA, Inc.",0,1999-12-01,Company 0060 ,1999-12-31,0,,1,MN ,,05 +CT0131 ,PA,000011 ,000048 ,1,"CRONUS USA, Inc.",0,1999-09-01,,1900-01-01,0,,1,MN ,, +CT0131 ,PA,00009 ,000046 ,1,"CRONUS USA, Inc.",0,1999-09-01,,1900-01-01,0,,1,MN ,, +CT0131 ,PA,1 ,000261 ,1,"CRONUS USA, Inc.",0,2017-08-28,,1900-01-01,0,,1,MN ,, +CT0131 ,PA,100 ,000250 ,1,"CRONUS USA, Inc.",1000,2017-06-02,,1900-01-01,1,,1,MN ,, +CT0131 ,PA,123 ,000078 ,1,"CRONUS USA, Inc.",0,1999-03-18,,1900-01-01,0,,1,MN ,, +CT0131 ,PA,2 ,000262 ,1,"CRONUS USA, Inc.",0,2017-08-28,,1900-01-01,0,,1,MN ,, +CT0132 ,CM,000049 ,000065 ,0,"CRONUS USA, Inc.",0,1998-10-01,Company 0060 ,1998-10-31,0,,1,MN ,,05 +CT0132 ,DM,000047 ,000063 ,0,"CRONUS USA, Inc.",0,1999-10-01,Company 0060 ,1999-10-31,0,,1,MN ,,05 +CT0132 ,DM,000048 ,000064 ,0,"CRONUS USA, Inc.",0,1999-12-01,Company 0060 ,1999-12-31,0,,1,MN ,,05 +CT0132 ,DM,000057 ,000085 ,0,"CRONUS USA, Inc.",0,1999-11-01,Company 0060 ,1999-12-01,0,,1,MN ,,05 +CT0132 ,IN,000041 ,000056 ,0,"CRONUS USA, Inc.",0,1999-12-01,Company 0060 ,1999-12-31,0,,1,MN ,,05 +CT0132 ,IN,000042 ,000058 ,0,"CRONUS USA, Inc.",0,1998-10-01,Company 0060 ,1998-10-31,0,,1,MN ,,05 +CT0132 ,IN,000044 ,000060 ,0,"CRONUS USA, Inc.",0,2000-01-01,Company 0060 ,2000-01-31,0,,1,MN ,,05 +CT0132 ,IN,000046 ,000062 ,0,"CRONUS USA, Inc.",0,1999-10-01,Company 0060 ,1999-10-31,0,,1,MN ,,05 +CT0132 ,IN,000075 ,000111 ,0,"CRONUS USA, Inc.",0,1999-12-01,Company 0060 ,1999-12-31,0,,1,MN ,,05 +CT0132 ,IN,000081 ,000121 ,0,"CRONUS USA, Inc.",0,1999-12-16,,2000-01-15,0,,1,MN ,,05 +CT0132 ,IN,I1009473 ,000313 ,1,"CRONUS USA, Inc.",3724,2018-06-13,Invoice - No AvaTax ,2018-07-13,1,,1,,,05 +CT0132 ,IN,I1009475 ,000314 ,1,"CRONUS USA, Inc.",1862,2019-01-08,Invoice - No AvaTax ,2019-02-07,1,,1,,,05 +CT0132 ,PA,000012 ,000057 ,1,"CRONUS USA, Inc.",0,1999-09-01,,1900-01-01,0,,1,MN ,, +CT0132 ,PA,1 ,000265 ,1,"CRONUS USA, Inc.",0,2017-08-28,,1900-01-01,0,,1,MN ,, +CT0132 ,PA,200010 ,000110 ,1,"CRONUS USA, Inc.",0,1999-12-01,,1900-01-01,0,,1,MN ,, +CT0133 ,CM,000056 ,000075 ,0,"CRONUS USA, Inc.",0,1999-10-10,Company 0060 ,1999-11-09,0,,1,MN ,,05 +CT0133 ,CM,000077 ,000114 ,0,"CRONUS USA, Inc.",0,1999-12-01,Company 0060 ,1999-12-31,0,,1,MN ,,05 +CT0133 ,DM,000055 ,000074 ,0,"CRONUS USA, Inc.",0,1999-09-01,Company 0060 ,1999-10-01,0,,1,MN ,,05 +CT0133 ,IN,000051 ,000069 ,0,"CRONUS USA, Inc.",0,1998-10-01,Company 0060 ,1998-10-31,0,,1,MN ,,05 +CT0133 ,IN,000052 ,000071 ,0,"CRONUS USA, Inc.",0,2000-01-01,Company 0060 ,2000-01-31,0,,1,MN ,,05 +CT0133 ,IN,000054 ,000073 ,0,"CRONUS USA, Inc.",0,1998-10-01,Company 0060 ,1998-10-31,0,,1,MN ,,05 +CT0133 ,IN,000059 ,000088 ,0,"CRONUS USA, Inc.",0,1999-11-01,Company 0060 ,1999-12-01,0,,1,MN ,,05 +CT0133 ,IN,000060 ,000090 ,0,"CRONUS USA, Inc.",0,1999-11-01,Company 0060 ,1999-12-01,0,,1,MN ,,05 +CT0133 ,PA,000013 ,000068 ,1,"CRONUS USA, Inc.",0,1999-09-01,,1900-01-01,0,,1,MN ,, +CT0133 ,PA,000014 ,000070 ,1,"CRONUS USA, Inc.",0,1999-09-01,,1900-01-01,0,,1,MN ,, +CT0133 ,PA,100006 ,000087 ,1,"CRONUS USA, Inc.",0,1999-11-01,,1900-01-01,0,,1,MN ,, +CT0133 ,PA,100007 ,000089 ,1,"CRONUS USA, Inc.",0,1999-11-01,,1900-01-01,0,,1,MN ,, +CT0133 ,PA,123 ,000077 ,1,"CRONUS USA, Inc.",0,1999-03-18,,1900-01-01,0,,1,MN ,, +CT0133 ,PA,200011 ,000113 ,1,"CRONUS USA, Inc.",0,1999-12-01,,1900-01-01,0,,1,MN ,, diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLAccountStagingWithInactiveAccount.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLAccountStagingWithInactiveAccount.csv new file mode 100644 index 0000000000..c719d8973e --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLAccountStagingWithInactiveAccount.csv @@ -0,0 +1,384 @@ +Account Number,Name,Search Name,Account Category,Income/Balance,Debit/Credit,Active +000000 ,GL SUSPENSE ,GL SUSPENSE ,1,true,0,true +1000 ,Cash - NPP ,Cash - NPP ,1,true,0,true +1001 ,Cash 1001 ,Cash 1001 ,1,true,0,true +1030 ,Cash-US Dollars-US ,Cash-US Dollars-US ,1,true,0,true +1031 ,Cash US Dollars ,Cash US Dollars ,1,true,0,true +1037 ,Cash US Dollars-Main ,Cash US Dollars-Main ,1,true,0,true +1038 ,Cash US Dollars-Investments ,Cash US Dollars-Investments ,1,true,0,true +1039 ,Cash US Dollars-Petty Cash ,Cash US Dollars-Petty Cash ,1,true,0,true +1040 ,Cash US Dollars-Corporate ,Cash US Dollars-Corporate ,1,true,0,true +1041 ,Cash Us Dollars-General ,Cash Us Dollars-General ,1,true,0,true +1070 ,Cash-Other ,Cash-Other ,1,true,0,true +1110 ,A/R Trade-USD ,A/R Trade-USD ,1,true,0,true +1115 ,AR Holding Account ,AR Holding Account ,1,true,0,true +1140 ,Advances in Travel & Expense ,Advances in Travel & Expense ,1,true,0,true +1150 ,Due From Company 0010 ,Due From Company 0010 ,1,true,0,true +1151 ,Due From Company 0020 ,Due From Company 0020 ,1,true,0,true +1152 ,Due From Company 0030 ,Due From Company 0030 ,1,true,0,true +1153 ,Due From Company 0040 ,Due From Company 0040 ,1,true,0,true +1154 ,Due From Company 0050 ,Due From Company 0050 ,1,true,0,true +1155 ,Due From Company 0060 ,Due From Company 0060 ,1,true,0,true +1156 ,Due From Company 0070 ,Due From Company 0070 ,1,true,0,true +1157 ,Due From Company 0080 ,Due From Company 0080 ,1,true,0,true +1160 ,A/R Inter-Company-USD ,A/R Inter-Company-USD ,1,true,0,true +1170 ,Notes Receivable-USD ,Notes Receivable-USD ,1,true,0,true +1171 ,Notes Receivable-IntCo-0010 ,Notes Receivable-IntCo-0010 ,1,true,0,true +1173 ,Notes Receivable-IntCo-0020 ,Notes Receivable-IntCo-0020 ,1,true,0,true +1190 ,A/R Holding-USD ,A/R Holding-USD ,1,true,0,true +1191 ,Miscellaneous Receivables ,Miscellaneous Receivables ,1,true,0,true +1192 ,Unbilled Receivables - Expense,Unbilled Receivables - Expense,1,true,0,true +1195 ,Miscellaneous Receivables Othr,Miscellaneous Receivables Othr,1,true,0,false +1210 ,Inventory-Merchandise ,Inventory-Merchandise ,1,true,0,true +1220 ,Inventory-Raw Materials ,Inventory-Raw Materials ,1,true,0,true +1225 ,Inventory-WIP ,Inventory-WIP ,1,true,0,true +1226 ,Project Materials ,Project Materials ,1,true,0,true +1230 ,Inventory-Components ,Inventory-Components ,1,true,0,true +12301 ,WIP: Materials ,WIP: Materials ,1,true,0,true +12302 ,WIP: Labor ,WIP: Labor ,1,true,0,true +12303 ,WIP: Subcontract ,WIP: Subcontract ,1,true,0,true +12304 ,WIP: Other Direct Costs ,WIP: Other Direct Costs ,1,true,0,true +12305 ,WIP: Overhead ,WIP: Overhead ,1,true,0,true +12309 ,WIP: Rollup Variance ,WIP: Rollup Variance ,1,true,0,true +1231 ,Inventory-Components-1 ,Inventory-Components-1 ,1,true,0,true +12311 ,Project WIP: Materials ,Project WIP: Materials ,1,true,0,true +12312 ,Project WIP: Labor ,Project WIP: Labor ,1,true,0,true +12313 ,Project WIP: Subcontract ,Project WIP: Subcontract ,1,true,0,true +12314 ,Project WIP: Other Direct Cost,Project WIP: Other Direct Cost,1,true,0,true +12315 ,Project WIP: Overhead ,Project WIP: Overhead ,1,true,0,true +12319 ,Project WIP: Rollup Variance ,Project WIP: Rollup Variance ,1,true,0,true +1232 ,Inventory-Components-2 ,Inventory-Components-2 ,1,true,0,true +1233 ,Inventory-Components-3 ,Inventory-Components-3 ,1,true,0,true +1234 ,Inventory-Components-4 ,Inventory-Components-4 ,1,true,0,true +1235 ,Inventory-Components-5 ,Inventory-Components-5 ,1,true,0,true +1236 ,Inventory-Components-6 ,Inventory-Components-6 ,1,true,0,true +1237 ,Inventory-Components-7 ,Inventory-Components-7 ,1,true,0,true +1240 ,Inventory-Fin. Goods ,Inventory-Fin. Goods ,1,true,0,true +1241 ,Inventory-Fin. Goods-1 ,Inventory-Fin. Goods-1 ,1,true,0,true +1242 ,Inventory-Fin. Goods-2 ,Inventory-Fin. Goods-2 ,1,true,0,true +1243 ,Inventory-Fin. Goods-3 ,Inventory-Fin. Goods-3 ,1,true,0,true +1244 ,Inventory-Fin. Goods-4 ,Inventory-Fin. Goods-4 ,1,true,0,true +1245 ,Inventory-Fin. Goods-5 ,Inventory-Fin. Goods-5 ,1,true,0,true +1246 ,Inventory-Fin. Goods-6 ,Inventory-Fin. Goods-6 ,1,true,0,true +1247 ,Inventory-Fin. Goods-7 ,Inventory-Fin. Goods-7 ,1,true,0,true +1250 ,Supplies ,Supplies ,1,true,0,true +1251 ,Prepaid Supplies ,Prepaid Supplies ,1,true,0,true +1310 ,Prepaid Insurance ,Prepaid Insurance ,1,true,0,true +1320 ,Prepaid Interest ,Prepaid Interest ,1,true,0,true +1330 ,Deposits Refundable ,Deposits Refundable ,1,true,0,true +1340 ,Bid Deposits ,Bid Deposits ,1,true,0,true +1565 ,SWE Test ,SWE Test ,1,true,0,true +1601 ,Currency Gain - Unrealized ,Currency Gain - Unrealized ,1,true,0,true +1602 ,Currency Gain - Realized ,Currency Gain - Realized ,1,true,0,true +1610 ,Land ,Land ,1,true,0,true +1620 ,Buildings ,Buildings ,1,true,0,true +1621 ,Accumulated Depreciation ,Accumulated Depreciation ,1,true,0,true +1630 ,Furniture & Fixtures ,Furniture & Fixtures ,1,true,0,true +1631 ,Less: Accumulated Deprec. ,Less: Accumulated Deprec. ,1,true,0,true +1640 ,Machines & Equipment ,Machines & Equipment ,1,true,0,true +1641 ,Less: Accumulated Deprec. ,Less: Accumulated Deprec. ,1,true,0,true +1650 ,Automobiles ,Automobiles ,1,true,0,true +1651 ,Less: Accumulated Deprec. ,Less: Accumulated Deprec. ,1,true,0,true +1660 ,Trucks ,Trucks ,1,true,0,true +1661 ,Less: Accumulated Deprec. ,Less: Accumulated Deprec. ,1,true,0,true +1670 ,Office Equipment ,Office Equipment ,1,true,0,true +1671 ,Less: Accumulated Deprec. ,Less: Accumulated Deprec. ,1,true,0,true +1680 ,Leaseholds ,Leaseholds ,1,true,0,true +1681 ,Less: Accumulated Deprec. ,Less: Accumulated Deprec. ,1,true,0,true +1810 ,Prepaid Insurance ,Prepaid Insurance ,1,true,0,true +1820 ,Prepaid Interest ,Prepaid Interest ,1,true,0,true +1830 ,Prepaid Rent ,Prepaid Rent ,1,true,0,true +1840 ,Organizational Expense ,Organizational Expense ,1,true,0,true +1850 ,Deferred Charges ,Deferred Charges ,1,true,0,true +1860 ,Deposits ,Deposits ,1,true,0,true +1901 ,Due to/from NPP ,Due to/from NPP ,1,true,0,true +1910 ,Investments Treasuries ,Investments Treasuries ,1,true,0,true +1911 ,Investments Money Market ,Investments Money Market ,1,true,0,true +1912 ,Investments Banks ,Investments Banks ,1,true,0,true +1913 ,Investments Stocks ,Investments Stocks ,1,true,0,true +1914 ,Investments Stocks Foreign ,Investments Stocks Foreign ,1,true,0,true +1915 ,Investments Miscellanous ,Investments Miscellanous ,1,true,0,true +1916 ,Accrued Investment Income ,Accrued Investment Income ,1,true,0,true +1917 ,Accrued Misc. Receivables ,Accrued Misc. Receivables ,1,true,0,true +1918 ,Accrued Income Misc. ,Accrued Income Misc. ,1,true,0,true +1920 ,Goodwill ,Goodwill ,1,true,0,true +1990 ,Due to/from 401K ,Due to/from 401K ,1,true,0,true +1999 ,Out of Balance Correction ,Out of Balance Correction ,1,true,0,true +2000 ,AP - NPP ,AP - NPP ,2,true,0,true +2001 ,Due to Company 0010 ,Due to Company 0010 ,2,true,0,true +2002 ,Due to Company 0020 ,Due to Company 0020 ,2,true,0,true +2003 ,Due to Company 0030 ,Due to Company 0030 ,2,true,0,true +2004 ,Due to Company 0040 ,Due to Company 0040 ,2,true,0,true +2005 ,Due to Company 0050 ,Due to Company 0050 ,2,true,0,true +2006 ,Due to Company 0060 ,Due to Company 0060 ,2,true,0,true +2007 ,Due to Company 0070 ,Due to Company 0070 ,2,true,0,true +2008 ,Due to Company 0080 ,Due to Company 0080 ,2,true,0,true +2010 ,Inter-Company A/P-USD ,Inter-Company A/P-USD ,2,true,0,true +2020 ,Mortgage Payable-Current ,Mortgage Payable-Current ,2,true,0,true +2025 ,Bonds Payable ,Bonds Payable ,2,true,0,true +2030 ,Notes Payable-Demand ,Notes Payable-Demand ,2,true,0,true +2031 ,Notes Payable-Line of Credit ,Notes Payable-Line of Credit ,2,true,0,true +2032 ,Notes Payable- Suppliers ,Notes Payable- Suppliers ,2,true,0,true +2033 ,Notes Payable-Other Banks ,Notes Payable-Other Banks ,2,true,0,true +2040 ,Notes Payable-Current ,Notes Payable-Current ,2,true,0,true +2050 ,A/P Trade-USD ,A/P Trade-USD ,2,true,0,true +2060 ,A/P-Other-USD ,A/P-Other-USD ,2,true,0,true +2065 ,A/P-Misc-USD ,A/P-Misc-USD ,2,true,0,true +2070 ,A/P-Customer Refunds ,A/P-Customer Refunds ,2,true,0,true +2071 ,A/R Customer Refunds ,A/R Customer Refunds ,2,true,0,true +2072 ,A/R Prepayment ,A/R Prepayment ,2,true,0,true +2075 ,Customer Deposits ,Customer Deposits ,2,true,0,true +2080 ,Contracts Payable-Current ,Contracts Payable-Current ,2,true,0,true +2090 ,Construction Advances ,Construction Advances ,2,true,0,true +2100 ,Benefits Payable ,Benefits Payable ,2,true,0,true +2110 ,Federal Tax Withheld ,Federal Tax Withheld ,2,true,0,true +2120 ,FICA Withheld ,FICA Withheld ,2,true,0,true +2121 ,Employee Medicare FICA ,Employee Medicare FICA ,2,true,0,true +2130 ,FICA-Employer ,FICA-Employer ,2,true,0,true +2131 ,Employer Medicare FICA ,Employer Medicare FICA ,2,true,0,true +2140 ,State Income Tax Withheld ,State Income Tax Withheld ,2,true,0,true +2150 ,Local Income Tax Withheld ,Local Income Tax Withheld ,2,true,0,true +2160 ,Federal Unemploy. Withheld ,Federal Unemploy. Withheld ,2,true,0,true +2170 ,State Unemploy. Withheld ,State Unemploy. Withheld ,2,true,0,true +2180 ,Workers' Compensation ,Workers' Compensation ,2,true,0,true +2190 ,Misc. 1 Withheld ,Misc. 1 Withheld ,2,true,0,true +2200 ,Misc. 2 Withheld ,Misc. 2 Withheld ,2,true,0,true +2210 ,Misc. 3 Withheld ,Misc. 3 Withheld ,2,true,0,true +2220 ,Misc. 4 Withheld ,Misc. 4 Withheld ,2,true,0,true +2230 ,Misc. 5 Withheld ,Misc. 5 Withheld ,2,true,0,true +2240 ,Sales Tax Payable ,Sales Tax Payable ,2,true,0,true +2241 ,Sales Tax Payable - City ,Sales Tax Payable - City ,2,true,0,true +2242 ,Sales Tax Payable - County ,Sales Tax Payable - County ,2,true,0,true +2243 ,Sales Tax Payable - State ,Sales Tax Payable - State ,2,true,0,true +2245 ,Sales Tax Payable - AvaTax ,Sales Tax Payable - AvaTax ,2,true,0,true +2300 ,Accrued A/P Trade-USD ,Accrued A/P Trade-USD ,2,true,0,true +2301 ,Accrued A/P Trade-CAD ,Accrued A/P Trade-CAD ,2,true,0,true +2302 ,Accrued A/P Trade-FRF ,Accrued A/P Trade-FRF ,2,true,0,true +2303 ,Accrued A/P Trade-DEM ,Accrued A/P Trade-DEM ,2,true,0,true +2304 ,Accrued A/P Trade-GBP ,Accrued A/P Trade-GBP ,2,true,0,true +2305 ,Accrued A/P Trade-LRA ,Accrued A/P Trade-LRA ,2,true,0,true +2310 ,Accrued Interest ,Accrued Interest ,2,true,0,true +2320 ,Accrued Rent ,Accrued Rent ,2,true,0,true +2330 ,Accrued Wages ,Accrued Wages ,2,true,0,true +23301 ,Applied Labor ,Applied Labor ,2,true,0,true +2340 ,Accrued Insurance ,Accrued Insurance ,2,true,0,true +2350 ,Accrued Real Estate Taxes ,Accrued Real Estate Taxes ,2,true,0,true +2360 ,Federal Taxes Payable ,Federal Taxes Payable ,2,true,0,true +2370 ,State Taxes Payable ,State Taxes Payable ,2,true,0,true +2410 ,Dividends Paid ,Dividends Paid ,2,true,0,true +2510 ,Mortgage Payable ,Mortgage Payable ,2,true,0,true +2520 ,Long Term Notes Payable ,Long Term Notes Payable ,2,true,0,true +2530 ,Contracts Payable-LT ,Contracts Payable-LT ,2,true,0,true +2540 ,Land Contracts Payable ,Land Contracts Payable ,2,true,0,true +2550 ,Shareholder Loans ,Shareholder Loans ,2,true,0,true +2560 ,Officer Loans ,Officer Loans ,2,true,0,true +2610 ,Deferred Income ,Deferred Income ,2,true,0,true +2710 ,Issued Common Stock ,Issued Common Stock ,2,true,0,true +2720 ,Paid in Capital ,Paid in Capital ,2,true,0,true +2730 ,Treasury Stock ,Treasury Stock ,2,true,0,true +2740 ,Retained Earnings ,Retained Earnings ,2,true,0,true +2750 ,YTD Net Income ,YTD Net Income ,2,true,0,true +2760 ,Variance ,Variance ,2,true,0,true +2800 ,SWE Test ,SWE Test ,2,true,0,true +2810 ,SWE Test ,SWE Test ,2,true,0,true +2900 ,Pension Accrued ,Pension Accrued ,2,true,0,true +2901 ,401k Accrued ,401k Accrued ,2,true,0,true +3020 ,Inter-Company Sales ,Inter-Company Sales ,4,false,0,true +3030 ,Sales/Income ,Sales/Income ,4,false,0,true +3031 ,Sales/Income Type 1 ,Sales/Income Type 1 ,4,false,0,true +3032 ,Sales/Income Type 2 ,Sales/Income Type 2 ,4,false,0,true +3033 ,Sales/Income Type 3 ,Sales/Income Type 3 ,4,false,0,true +3034 ,Sales/Income Type 4 ,Sales/Income Type 4 ,4,false,0,true +3035 ,Sales/Income Type 5 ,Sales/Income Type 5 ,4,false,0,true +3036 ,Sales/Income Type 6 ,Sales/Income Type 6 ,4,false,0,true +3037 ,Sales/Income Type 7 ,Sales/Income Type 7 ,4,false,0,true +3042 ,Writeup/Writedown Labor ,Writeup/Writedown Labor ,4,false,0,true +3044 ,Writeup/Writedown Expenses ,Writeup/Writedown Expenses ,4,false,0,true +3050 ,Discounts Allowed-Trade ,Discounts Allowed-Trade ,4,false,0,true +3070 ,Freight Income ,Freight Income ,4,false,0,true +3080 ,Miscellaneous Income ,Miscellaneous Income ,4,false,0,true +3090 ,Customer Finance Charges ,Customer Finance Charges ,4,false,0,true +3100 ,Miscellaneous Income ,Miscellaneous Income ,4,false,0,true +3220 ,Proceeds from Securities ,Proceeds from Securities ,4,false,0,true +4010 ,Beginning Inventory ,Beginning Inventory ,6,false,0,true +4020 ,Inter-Company Purchases ,Inter-Company Purchases ,6,false,0,true +4030 ,Merchandise Purchases ,Merchandise Purchases ,6,false,0,true +4040 ,Discounts Taken ,Discounts Taken ,6,false,0,true +4050 ,Productive Labor ,Productive Labor ,6,false,0,true +4051 ,Premium Labor ,Premium Labor ,6,false,0,true +4052 ,Labor - Direct ,Labor - Direct ,6,false,0,true +4053 ,"Labor - Direct, Fixed ","Labor - Direct, Fixed ",6,false,0,true +4054 ,Labor - Indirect ,Labor - Indirect ,6,false,0,true +4055 ,"Labor - Indirect, Fixed ","Labor - Indirect, Fixed ",6,false,0,true +4059 ,Fringe ,Fringe ,6,false,0,true +4060 ,Vacation-Holiday Pay ,Vacation-Holiday Pay ,6,false,0,true +4065 ,Sick Leave ,Sick Leave ,6,false,0,true +4070 ,Payroll Taxes ,Payroll Taxes ,6,false,0,true +4080 ,Payroll Benefits ,Payroll Benefits ,6,false,0,true +4090 ,Sub-Contracts ,Sub-Contracts ,6,false,0,true +4091 ,Federal Tax Expense ,Federal Tax Expense ,6,false,0,true +4092 ,State Taxes Payable ,State Taxes Payable ,6,false,0,true +4100 ,Freight-In ,Freight-In ,6,false,0,true +4110 ,Supplies ,Supplies ,6,false,0,true +4120 ,Deprec.-Production Equip. ,Deprec.-Production Equip. ,6,false,0,true +4130 ,Utilities-Production ,Utilities-Production ,6,false,0,true +4140 ,Inventory Increase/Decrease ,Inventory Increase/Decrease ,6,false,0,true +4141 ,Inventory Issue (Non-Project) ,Inventory Issue (Non-Project) ,6,false,0,true +4142 ,Inventory Issue (Project) ,Inventory Issue (Project) ,6,false,0,true +4150 ,Cost of Goods Sold ,Cost of Goods Sold ,6,false,0,true +41501 ,Late Charges ,Late Charges ,6,false,0,true +4151 ,Cost of Goods Sold-Type 1 ,Cost of Goods Sold-Type 1 ,6,false,0,true +4152 ,Cost of Goods Sold-Type 2 ,Cost of Goods Sold-Type 2 ,6,false,0,true +4153 ,Cost of Goods Sold-Type 3 ,Cost of Goods Sold-Type 3 ,6,false,0,true +4154 ,Cost of Goods Sold-Type 4 ,Cost of Goods Sold-Type 4 ,6,false,0,true +4155 ,Cost of Goods Sold-Type 5 ,Cost of Goods Sold-Type 5 ,6,false,0,true +4156 ,Cost of Goods Sold-Type 6 ,Cost of Goods Sold-Type 6 ,6,false,0,true +4157 ,Cost of Goods Sold-Type 7 ,Cost of Goods Sold-Type 7 ,6,false,0,true +4200 ,Ending Inventory ,Ending Inventory ,6,false,0,true +4210 ,Inventory Revaluation ,Inventory Revaluation ,6,false,0,true +4220 ,Clearing-Other Direct Costs ,Clearing-Other Direct Costs ,6,false,0,true +4230 ,Clearing-Material O/H ,Clearing-Material O/H ,6,false,0,true +4240 ,Clearing-Machine O/H ,Clearing-Machine O/H ,6,false,0,true +4290 ,Clearing-Landed Costs ,Clearing-Landed Costs ,6,false,0,true +4300 ,Variance-Direct Material ,Variance-Direct Material ,6,false,0,true +43001 ,Variance-Rollup Variance ,Variance-Rollup Variance ,6,false,0,true +4310 ,Variance-Direct Labor ,Variance-Direct Labor ,6,false,0,true +4320 ,Variance-Other Direct Cost ,Variance-Other Direct Cost ,6,false,0,true +4330 ,Variance-Material O/H ,Variance-Material O/H ,6,false,0,true +4340 ,Variance-Labor O/H ,Variance-Labor O/H ,6,false,0,true +4350 ,Variance-Machine O/H ,Variance-Machine O/H ,6,false,0,true +4360 ,Scrap Var-Direct Material ,Scrap Var-Direct Material ,6,false,0,true +4370 ,Scrap Var-Direct Labor ,Scrap Var-Direct Labor ,6,false,0,true +4380 ,Scrap Var-Other Direct Cost ,Scrap Var-Other Direct Cost ,6,false,0,true +4390 ,Scrap Var-Material O/H ,Scrap Var-Material O/H ,6,false,0,true +4400 ,Scrap Var-Labor O/H ,Scrap Var-Labor O/H ,6,false,0,true +4410 ,Scrap Var-Machine O/H ,Scrap Var-Machine O/H ,6,false,0,true +4500 ,Std Chg Var-Dir Material ,Std Chg Var-Dir Material ,6,false,0,true +4510 ,Std Chg Var-Dir Labor ,Std Chg Var-Dir Labor ,6,false,0,true +4520 ,Std Chg Var-Other Direct ,Std Chg Var-Other Direct ,6,false,0,true +4530 ,Std Chg Var-Material O/H ,Std Chg Var-Material O/H ,6,false,0,true +4540 ,Std Chg Var-Labor O/H ,Std Chg Var-Labor O/H ,6,false,0,true +4550 ,Std Chg Var-Machine O/H ,Std Chg Var-Machine O/H ,6,false,0,true +4610 ,Effic Var-Direct Labor ,Effic Var-Direct Labor ,6,false,0,true +4710 ,Rate Var-Direct Labor ,Rate Var-Direct Labor ,6,false,0,true +4790 ,Variance-Landed Costs ,Variance-Landed Costs ,6,false,0,true +5010 ,Officers Salaries ,Officers Salaries ,6,false,0,true +5020 ,Office Salaries ,Office Salaries ,6,false,0,true +5030 ,Sales Salaries ,Sales Salaries ,6,false,0,true +5040 ,Shop Wages ,Shop Wages ,6,false,0,true +5050 ,Delivery Wages ,Delivery Wages ,6,false,0,true +5060 ,Maintenance Wages ,Maintenance Wages ,6,false,0,true +5070 ,Warehouse Wages ,Warehouse Wages ,6,false,0,true +5080 ,Vacation ,Vacation ,6,false,0,true +5090 ,Payroll Taxes ,Payroll Taxes ,6,false,0,true +5100 ,Payroll Benefits ,Payroll Benefits ,6,false,0,true +5110 ,Clearing-Direct Labor ,Clearing-Direct Labor ,6,false,0,true +5120 ,Clearing-Labor O/H ,Clearing-Labor O/H ,6,false,0,true +5130 ,Clearing - Labor G&A ,Clearing - Labor G&A ,6,false,0,true +5400 ,SWE Test ,SWE Test ,6,false,0,true +5450 ,SWE Test ,SWE Test ,6,false,0,true +6010 ,Advertising ,Advertising ,6,false,0,true +6020 ,Answering Service ,Answering Service ,6,false,0,true +6030 ,Accounting and Legal Fees ,Accounting and Legal Fees ,6,false,0,true +6040 ,Vehicle Expense ,Vehicle Expense ,6,false,0,true +6050 ,Bad Check ,Bad Check ,6,false,0,true +6060 ,Bad Debts ,Bad Debts ,6,false,0,true +6061 ,Small Balance WO ,Small Balance WO ,6,false,0,true +6070 ,Bank Service Charges ,Bank Service Charges ,6,false,0,true +6071 ,Bank Fee ,Bank Fee ,6,false,0,true +6080 ,Janitorial/Cleaning Service ,Janitorial/Cleaning Service ,6,false,0,true +6100 ,Lab Tests ,Lab Tests ,6,false,0,true +6500 ,Commissions ,Commissions ,6,false,0,true +6510 ,Contributions ,Contributions ,6,false,0,true +6520 ,Collection ,Collection ,6,false,0,true +6530 ,Delivery ,Delivery ,6,false,0,true +6540 ,Directors Fees ,Directors Fees ,6,false,0,true +6550 ,Dues and Subscriptions ,Dues and Subscriptions ,6,false,0,true +6560 ,Depreciation ,Depreciation ,6,false,0,true +6570 ,Amort/Leasehold Improve. ,Amort/Leasehold Improve. ,6,false,0,true +6580 ,Amort/Organ. Expense ,Amort/Organ. Expense ,6,false,0,true +6590 ,Entertainment ,Entertainment ,6,false,0,true +7000 ,Travel Expense ,Travel Expense ,6,false,0,true +7001 ,Per Diem ,Per Diem ,6,false,0,true +7005 ,Travel Expense - Meals ,Travel Expense - Meals ,6,false,0,true +7006 ,Meals ,Meals ,6,false,0,true +7007 ,Management Meals ,Management Meals ,6,false,0,true +7010 ,Travel Expense - Lodging ,Travel Expense - Lodging ,6,false,0,true +7011 ,Logding ,Logding ,6,false,0,true +7020 ,Travel Expense - Transportatin,Travel Expense - Transportatin,6,false,0,true +7021 ,Air/Train ,Air/Train ,6,false,0,true +7022 ,Taxi/Mass Transit ,Taxi/Mass Transit ,6,false,0,true +7030 ,Travel Expense - Entertainment,Travel Expense - Entertainment,6,false,0,true +7040 ,Office Expenses - Misc. ,Office Expenses - Misc. ,6,false,0,true +7050 ,Telephone Expense ,Telephone Expense ,6,false,0,true +7055 ,Equipment Rental ,Equipment Rental ,6,false,0,true +7056 ,AV Equipment ,AV Equipment ,6,false,0,true +7060 ,Electric Expense ,Electric Expense ,6,false,0,true +7070 ,Gas ,Gas ,6,false,0,true +7080 ,Water ,Water ,6,false,0,true +7090 ,Insurance-General ,Insurance-General ,6,false,0,true +7100 ,Insurance-Group Medical ,Insurance-Group Medical ,6,false,0,true +7101 ,Currency Loss - Unrealized ,Currency Loss - Unrealized ,6,false,0,true +7102 ,Currency Loss - Realized ,Currency Loss - Realized ,6,false,0,true +7110 ,Insurance-Officer's Life ,Insurance-Officer's Life ,6,false,0,true +7120 ,Long Term Interest ,Long Term Interest ,6,false,0,true +7130 ,Laundry ,Laundry ,6,false,0,true +7140 ,Uniform ,Uniform ,6,false,0,true +7150 ,Licenses ,Licenses ,6,false,0,true +7160 ,Repair/Maint-Building ,Repair/Maint-Building ,6,false,0,true +7170 ,Repair/Maint-Equipment ,Repair/Maint-Equipment ,6,false,0,true +7171 ,Repair/Maint Expense ,Repair/Maint Expense ,6,false,0,true +7172 ,Management Rent ,Management Rent ,6,false,0,true +7180 ,Office Supplies ,Office Supplies ,6,false,0,true +7181 ,Copy Services ,Copy Services ,6,false,0,true +7182 ,Design Services ,Design Services ,6,false,0,true +7183 ,Printing Services ,Printing Services ,6,false,0,true +7184 ,Copy Services - ODC ,Copy Services - ODC ,6,false,0,true +7190 ,Outside Services ,Outside Services ,6,false,0,true +7200 ,Rubbish Removal ,Rubbish Removal ,6,false,0,true +7210 ,Sales Promotion ,Sales Promotion ,6,false,0,true +7220 ,Salesman's Vehicle Expense ,Salesman's Vehicle Expense ,6,false,0,true +7221 ,Corporate Vehicle Expense ,Corporate Vehicle Expense ,6,false,0,true +7222 ,Travel Expenses ,Travel Expenses ,6,false,0,true +7230 ,Shop Supplies ,Shop Supplies ,6,false,0,true +7240 ,Taxes/Personal Property ,Taxes/Personal Property ,6,false,0,true +7250 ,Taxes/Real Estate ,Taxes/Real Estate ,6,false,0,true +7260 ,Taxes Franchise ,Taxes Franchise ,6,false,0,true +7270 ,Freight ,Freight ,6,false,0,true +7271 ,Freight Expense ,Freight Expense ,6,false,0,true +7272 ,Express Freight ,Express Freight ,6,false,0,true +7273 ,Honor ,Honor ,6,false,0,true +7280 ,Postage ,Postage ,6,false,0,true +7281 ,Postage Expense ,Postage Expense ,6,false,0,true +7290 ,Personnel ,Personnel ,6,false,0,true +7300 ,Miscellaneous ,Miscellaneous ,6,false,0,true +7410 ,Sales Tax Paid ,Sales Tax Paid ,6,false,0,true +7411 ,Sales Tax Paid - City ,Sales Tax Paid - City ,6,false,0,true +7412 ,Sales Tax Paid - County ,Sales Tax Paid - County ,6,false,0,true +7413 ,Sales Tax Paid - State ,Sales Tax Paid - State ,6,false,0,true +7415 ,Sales Tax Paid - IL ,Sales Tax Paid - IL ,6,false,0,true +7416 ,Sales Tax Paid - IL - City ,Sales Tax Paid - IL - City ,6,false,0,true +7417 ,Sales Tax Paid - IL - County ,Sales Tax Paid - IL - County ,6,false,0,true +7418 ,Sales Tax Paid - IL - State ,Sales Tax Paid - IL - State ,6,false,0,true +7419 ,Sales Tax Paid Expense - GST ,Sales Tax Paid Expense - GST ,6,false,0,true +7420 ,Sales Tax Paid Expense - VAT ,Sales Tax Paid Expense - VAT ,6,false,0,true +7500 ,PPV ,PPV ,6,false,0,true +8000 ,Pooled Rent Expense ,Pooled Rent Expense ,6,false,0,true +8001 ,Test Allocation 8001 ,Test Allocation 8001 ,6,false,0,true +8002 ,Test Allocation 8002 ,Test Allocation 8002 ,6,false,0,true +8003 ,Test Allocation 8003 ,Test Allocation 8003 ,6,false,0,true +8010 ,Commissions ,Commissions ,4,false,0,true +8020 ,Interest Earned ,Interest Earned ,4,false,0,true +8030 ,Discounts Taken ,Discounts Taken ,4,false,0,true +8040 ,Rents ,Rents ,4,false,0,true +8050 ,Gain on Sale of Assets ,Gain on Sale of Assets ,4,false,0,true +8060 ,Dividends Received ,Dividends Received ,4,false,0,true +8070 ,Miscellaneous ,Miscellaneous ,4,false,0,true +8300 ,SWE Test ,SWE Test ,4,false,0,true +8999 ,Allocated Rent Offset ,Allocated Rent Offset ,4,false,0,true +9010 ,Discounts-Allowed ,Discounts-Allowed ,6,false,0,true +9020 ,Interest-General ,Interest-General ,6,false,0,true +9030 ,Loss on Sale of Assets ,Loss on Sale of Assets ,6,false,0,true +9040 ,Miscellaneous ,Miscellaneous ,6,false,0,true +9050 ,Non-Deductible Penalties ,Non-Deductible Penalties ,6,false,0,true +9090 ,Provision for Income Tax1 ,Provision for Income Tax1 ,6,false,0,true diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLAcctHistWithBeginningBalances.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLAcctHistWithBeginningBalances.csv new file mode 100644 index 0000000000..ddc2552cf1 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLAcctHistWithBeginningBalances.csv @@ -0,0 +1,650 @@ +CpnyID,Acct,Sub,LedgerID,FiscYr,BegBal,PtdBal00,PtdBal01,PtdBal02,PtdBal03,PtdBal04,PtdBal05,PtdBal06,PtdBal07,PtdBal08,PtdBal09,PtdBal10,PtdBal11,PtdBal12 +"CRONUS USA, Inc.",000000 ,000000000000 ,0000000000,2017,0,0,0,0,0,-13.3800000000000008,0,0,0,-7003.69999999999982,-8,-16,0,0 +"CRONUS USA, Inc.",000000 ,01100AA00001 ,0000000000,2017,0,0,-25,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",000000 ,000000000000 ,0000000000,2018,-7041.07999999999993,0,0,0,-6.75,-13.5,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",000000 ,01100AA00001 ,0000000000,2018,-25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1000 ,000000000000 ,0000000000,2016,0,-10000,-11000,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1000 ,000000000000 ,0000000000,2017,-21000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1000 ,000000000000 ,0000000000,2018,-21000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1030 ,000000000000 ,0000000000,2014,12345678.9000000004,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,0000000000,2014,-1859858.43999999994,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1030 ,03440AA00510 ,0000000000,2015,6000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1030 ,000000000000 ,0000000000,2016,12345678.9000000004,0,0,0,0,0,0,0,0,0,0,-100,-100,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,0000000000,2016,-1859858.43999999994,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1030 ,03440AA00510 ,0000000000,2016,6000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1030 ,000000000000 ,0000000000,2017,12345478.9000000004,-100,-100,-100,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,0000000000,2017,-1859858.43999999994,226136.799999999988,198,-110260.699999999997,1163.13000000000011,-299.75,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1030 ,03440AA00510 ,0000000000,2017,6000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1030 ,000000000000 ,0000000000,2018,12345178.9000000004,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,0000000000,2018,-1742920.95999999996,0,0,0,0,-915,-8460,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1030 ,03440AA00510 ,0000000000,2018,6000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1031 ,01100AA00001 ,0000000000,2014,3250000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1031 ,03440AA00510 ,0000000000,2014,17097550,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1031 ,01100AA00001 ,0000000000,2015,3250000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1031 ,03440AA00510 ,0000000000,2015,17097550,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1031 ,01100AA00001 ,0000000000,2016,3250000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1031 ,03440AA00510 ,0000000000,2016,17097550,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1031 ,01100AA00001 ,0000000000,2017,3250000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1031 ,03440AA00510 ,0000000000,2017,17097550,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1031 ,999999999999 ,0000000000,2017,0,0,0,0,0,0,0,0,0,0,108,216,0,0 +"CRONUS USA, Inc.",1031 ,01100AA00001 ,0000000000,2018,3250000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1031 ,03440AA00510 ,0000000000,2018,17097550,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1031 ,999999999999 ,0000000000,2018,324,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1037 ,000000000000 ,0000000000,2014,625321.939999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1037 ,01100AA00001 ,0000000000,2014,-25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1037 ,03440AA00510 ,0000000000,2014,11054064.2100000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1037 ,000000000000 ,0000000000,2015,625321.939999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1037 ,01100AA00001 ,0000000000,2015,-25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1037 ,03440AA00510 ,0000000000,2015,11054064.2100000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1037 ,000000000000 ,0000000000,2016,625321.939999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1037 ,01100AA00001 ,0000000000,2016,-25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1037 ,03440AA00510 ,0000000000,2016,11054064.2100000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1037 ,000000000000 ,0000000000,2017,625321.939999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1037 ,01100AA00001 ,0000000000,2017,-25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1037 ,03440AA00510 ,0000000000,2017,11054064.2100000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1037 ,000000000000 ,0000000000,2018,625321.939999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1037 ,01100AA00001 ,0000000000,2018,-25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1037 ,03440AA00510 ,0000000000,2018,11054064.2100000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1039 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,200,200,100,0 +"CRONUS USA, Inc.",1039 ,000000000000 ,0000000000,2017,500,100,100,100,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1039 ,000000000000 ,0000000000,2018,800,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1040 ,000000000000 ,0000000000,2014,658425.390000000014,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1040 ,000000000000 ,0000000000,2015,658425.390000000014,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1040 ,000000000000 ,0000000000,2016,658425.390000000014,0,0,0,0,0,0,0,0,0,0,10970.5300000000007,0,0 +"CRONUS USA, Inc.",1040 ,000000000000 ,0000000000,2017,669395.920000000042,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1040 ,000000000000 ,0000000000,2018,669395.920000000042,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1041 ,01100AA00001 ,0000000000,2014,11562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1041 ,01100AA00001 ,0000000000,2015,11562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1041 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-100,-100,0,0 +"CRONUS USA, Inc.",1041 ,01100AA00001 ,0000000000,2016,11562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1041 ,000000000000 ,0000000000,2017,-200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1041 ,01100AA00001 ,0000000000,2017,11562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1041 ,000000000000 ,0000000000,2018,-200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1041 ,01100AA00001 ,0000000000,2018,11562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1070 ,000000000000 ,0000000000,2014,-781063.189999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1070 ,000000000000 ,0000000000,2015,-781063.189999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1070 ,000000000000 ,0000000000,2016,-781063.189999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1070 ,000000000000 ,0000000000,2017,-781063.189999999944,-50,-100,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1070 ,000000000000 ,0000000000,2018,-781213.189999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1110 ,01100AA00001 ,0000000000,2014,777.990000000000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1110 ,03430AA00001 ,0000000000,2014,227778.279999999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1110 ,01100AA00001 ,0000000000,2015,777.990000000000009,654.25,0,0,0,0,0,0,0,0,0,0,2842.5,0 +"CRONUS USA, Inc.",1110 ,03000AA00001 ,0000000000,2015,0,106.75,373.629999999999995,0,0,0,0,0,0,0,0,0,222.039999999999992,0 +"CRONUS USA, Inc.",1110 ,03430AA00001 ,0000000000,2015,227778.279999999999,0,1441.13000000000011,0,0,0,0,0,0,0,7600,0,0,0 +"CRONUS USA, Inc.",1110 ,01100AA00001 ,0000000000,2016,4274.73999999999978,3372.59999999999991,3064,216,1585.75,1435.79999999999995,0,0,1067.5,0,35938.6900000000023,2647.40000000000009,-256.699999999999989,0 +"CRONUS USA, Inc.",1110 ,03000AA00001 ,0000000000,2016,702.419999999999959,1111.65000000000009,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1110 ,03430AA00001 ,0000000000,2016,236819.410000000003,5485.06999999999971,0,0,0,0,0,0,0,0,0,380.949999999999989,0,0 +"CRONUS USA, Inc.",1110 ,01100AA00001 ,0000000000,2017,53345.7799999999988,2595.65999999999985,0,7707.35000000000036,5321.51000000000022,673.32000000000005,0,0,400.319999999999993,184157.700000000012,200,0,0,0 +"CRONUS USA, Inc.",1110 ,03000AA00001 ,0000000000,2017,1814.06999999999994,6.75,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1110 ,03430AA00001 ,0000000000,2017,242685.429999999993,-225961.799999999988,13885.0400000000009,-850,-1031.75,313.629999999999995,900.25,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1110 ,01100AA00001 ,0000000000,2018,254401.640000000014,0,0,0,106.75,213.5,1514.25,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1110 ,03000AA00001 ,0000000000,2018,1820.81999999999994,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1110 ,03430AA00001 ,0000000000,2018,29940.7999999999993,0,0,380,480,2830,4204,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1115 ,SC0000000000 ,0000000000,2016,0,40,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1115 ,SC0000000000 ,0000000000,2017,40,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1115 ,SC0000000000 ,0000000000,2018,40,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1150 ,000000000000 ,0000000000,2014,-113667.529999999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1150 ,000000000000 ,0000000000,2015,-113667.529999999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1150 ,000000000000 ,0000000000,2016,-113667.529999999999,0,0,0,0,0,0,0,0,0,-75,0,0,0 +"CRONUS USA, Inc.",1150 ,000000000000 ,0000000000,2017,-113742.529999999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1150 ,000000000000 ,0000000000,2018,-113742.529999999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1151 ,000000000000 ,0000000000,2014,-326519.869999999995,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1151 ,000000000000 ,0000000000,2015,-326519.869999999995,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1151 ,000000000000 ,0000000000,2016,-326519.869999999995,0,0,0,0,0,0,0,0,0,-75,0,0,0 +"CRONUS USA, Inc.",1151 ,000000000000 ,0000000000,2017,-326594.869999999995,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1151 ,000000000000 ,0000000000,2018,-326594.869999999995,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1156 ,000000000000 ,0000000000,2014,66644.679999999993,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1156 ,000000000000 ,0000000000,2015,66644.679999999993,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1156 ,000000000000 ,0000000000,2016,66644.679999999993,2150,0,0,0,0,0,0,0,0,-50,0,0,0 +"CRONUS USA, Inc.",1156 ,000000000000 ,0000000000,2017,68744.679999999993,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1156 ,000000000000 ,0000000000,2018,68744.679999999993,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1157 ,000000000000 ,0000000000,2014,-124358.190000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1157 ,000000000000 ,0000000000,2015,-124358.190000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1157 ,000000000000 ,0000000000,2016,-124358.190000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1157 ,000000000000 ,0000000000,2017,-124358.190000000002,0,-50,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1157 ,000000000000 ,0000000000,2018,-124408.190000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1160 ,000000000000 ,0000000000,2014,-145157,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1160 ,000000000000 ,0000000000,2015,-145157,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1160 ,000000000000 ,0000000000,2016,-145157,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1160 ,000000000000 ,0000000000,2017,-145157,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1160 ,000000000000 ,0000000000,2018,-145157,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1170 ,01100AA00001 ,0000000000,2014,13790.2800000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1170 ,01100AA00001 ,0000000000,2015,13790.2800000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1170 ,01100AA00001 ,0000000000,2016,13790.2800000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1170 ,01100AA00001 ,0000000000,2017,13790.2800000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1170 ,01100AA00001 ,0000000000,2018,13790.2800000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1190 ,000000000000 ,0000000000,2014,1000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1190 ,000000000000 ,0000000000,2015,1000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1190 ,CO0000000000 ,0000000000,2015,0,0,-1250,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1190 ,EN0000000000 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,0,0,-208,0 +"CRONUS USA, Inc.",1190 ,000000000000 ,0000000000,2016,1000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1190 ,CO0000000000 ,0000000000,2016,-1250,-6875,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1190 ,EN0000000000 ,0000000000,2016,-208,-104,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1190 ,000000000000 ,0000000000,2017,1000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1190 ,CO0000000000 ,0000000000,2017,-8125,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1190 ,EN0000000000 ,0000000000,2017,-312,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1190 ,000000000000 ,0000000000,2018,1000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1190 ,CO0000000000 ,0000000000,2018,-8125,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1190 ,EN0000000000 ,0000000000,2018,-312,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1191 ,01100AA00001 ,0000000000,2014,15136.8400000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1191 ,01100AA00001 ,0000000000,2015,15136.8400000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1191 ,01100AA00001 ,0000000000,2016,15136.8400000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1191 ,01100AA00001 ,0000000000,2017,15136.8400000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1191 ,01100AA00001 ,0000000000,2018,15136.8400000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1192 ,CO0000000000 ,0000000000,2015,0,0,-100,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1192 ,EN0000000000 ,0000000000,2015,0,-100,-350,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1192 ,010000000000 ,0000000000,2016,0,-150,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1192 ,CO0000000000 ,0000000000,2016,-100,-100,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1192 ,EN0000000000 ,0000000000,2016,-450,-950,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1192 ,010000000000 ,0000000000,2017,-150,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1192 ,AT0000000000 ,0000000000,2017,0,-1600,0,0,-100,-630,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1192 ,CO0000000000 ,0000000000,2017,-200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1192 ,EN0000000000 ,0000000000,2017,-1400,0,0,0,0,-200,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1192 ,010000000000 ,0000000000,2018,-150,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1192 ,AT0000000000 ,0000000000,2018,-2330,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1192 ,CO0000000000 ,0000000000,2018,-200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1192 ,EN0000000000 ,0000000000,2018,-1600,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1210 ,000000000000 ,0000000000,2014,421518,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1210 ,000000000000 ,0000000000,2015,421518,600,0,0,0,0,0,0,0,0,-6000,0,10000,0 +"CRONUS USA, Inc.",1210 ,000000000000 ,0000000000,2016,426118,27600,-300,-100,-1050,-650,0,0,7950,0,3900,-600,0,0 +"CRONUS USA, Inc.",1210 ,000000000000 ,0000000000,2017,462868,-600,330,-5700,10000,0,1600,5100,140,-2700,-150,-100,0,0 +"CRONUS USA, Inc.",1210 ,000000000000 ,0000000000,2018,470788,0,0,-300,-350,310,-3320,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1226 ,AT0000000000 ,0000000000,2017,0,0,0,0,0,600,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1226 ,AT0000000000 ,0000000000,2018,600,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1230 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,528.259999999999991,0,0,0 +"CRONUS USA, Inc.",1230 ,000000000000 ,0000000000,2017,528.259999999999991,0,0,0,0,0,10,0,20,0,0,0,0,0 +"CRONUS USA, Inc.",1230 ,000000000000 ,0000000000,2018,558.259999999999991,3000,0,0,-30,-180,-330,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1240 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,907.019999999999982,0,0,0 +"CRONUS USA, Inc.",1240 ,000000000000 ,0000000000,2017,907.019999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1240 ,000000000000 ,0000000000,2018,907.019999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1310 ,01100AA00001 ,0000000000,2017,0,0,100,60066.6600000000035,-59916.6600000000035,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1310 ,01100AA00001 ,0000000000,2018,250,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1565 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,-4209,0,0 +"CRONUS USA, Inc.",1565 ,000000000000 ,0000000000,2017,-4209,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1565 ,000000000000 ,0000000000,2018,-4209,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1620 ,000000000000 ,0000000000,2014,2500658.93999999994,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1620 ,000000000000 ,0000000000,2015,2500658.93999999994,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1620 ,000000000000 ,0000000000,2016,2500658.93999999994,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1620 ,000000000000 ,0000000000,2017,2500658.93999999994,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1620 ,000000000000 ,0000000000,2018,2500658.93999999994,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1621 ,000000000000 ,0000000000,2014,-15004.3999999999996,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1621 ,000000000000 ,0000000000,2015,-15004.3999999999996,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1621 ,000000000000 ,0000000000,2016,-15004.3999999999996,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1621 ,000000000000 ,0000000000,2017,-15004.3999999999996,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1621 ,000000000000 ,0000000000,2018,-15004.3999999999996,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1630 ,000000000000 ,0000000000,2014,650000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1630 ,000000000000 ,0000000000,2015,650000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1630 ,000000000000 ,0000000000,2016,650000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1630 ,000000000000 ,0000000000,2017,650000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1630 ,000000000000 ,0000000000,2018,650000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1631 ,000000000000 ,0000000000,2014,-15476.2000000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1631 ,000000000000 ,0000000000,2015,-15476.2000000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1631 ,000000000000 ,0000000000,2016,-15476.2000000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1631 ,000000000000 ,0000000000,2017,-15476.2000000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1631 ,000000000000 ,0000000000,2018,-15476.2000000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1640 ,000000000000 ,0000000000,2014,1850954.56000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1640 ,000000000000 ,0000000000,2015,1850954.56000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1640 ,000000000000 ,0000000000,2016,1850954.56000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1640 ,000000000000 ,0000000000,2017,1850954.56000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1640 ,000000000000 ,0000000000,2018,1850954.56000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1641 ,000000000000 ,0000000000,2014,-61448.4800000000032,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1641 ,000000000000 ,0000000000,2015,-61448.4800000000032,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1641 ,000000000000 ,0000000000,2016,-61448.4800000000032,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1641 ,000000000000 ,0000000000,2017,-61448.4800000000032,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1641 ,000000000000 ,0000000000,2018,-61448.4800000000032,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1650 ,000000000000 ,0000000000,2014,100000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1650 ,000000000000 ,0000000000,2015,100000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1650 ,000000000000 ,0000000000,2016,100000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1650 ,000000000000 ,0000000000,2017,100000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1650 ,000000000000 ,0000000000,2018,100000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1651 ,000000000000 ,0000000000,2014,-3750,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1651 ,000000000000 ,0000000000,2015,-3750,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1651 ,000000000000 ,0000000000,2016,-3750,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1651 ,000000000000 ,0000000000,2017,-3750,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1651 ,000000000000 ,0000000000,2018,-3750,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1660 ,000000000000 ,0000000000,2014,95600,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1660 ,000000000000 ,0000000000,2015,95600,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1660 ,000000000000 ,0000000000,2016,95600,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1660 ,000000000000 ,0000000000,2017,95600,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1660 ,000000000000 ,0000000000,2018,95600,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1661 ,000000000000 ,0000000000,2014,-3733.34000000000015,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1661 ,000000000000 ,0000000000,2015,-3733.34000000000015,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1661 ,000000000000 ,0000000000,2016,-3733.34000000000015,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1661 ,000000000000 ,0000000000,2017,-3733.34000000000015,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1661 ,000000000000 ,0000000000,2018,-3733.34000000000015,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1670 ,000000000000 ,0000000000,2014,1985756.22999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1670 ,000000000000 ,0000000000,2015,1985756.22999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1670 ,000000000000 ,0000000000,2016,1985756.22999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1670 ,000000000000 ,0000000000,2017,1985756.22999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1670 ,000000000000 ,0000000000,2018,1985756.22999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1671 ,000000000000 ,0000000000,2014,-110319.800000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1671 ,000000000000 ,0000000000,2015,-110319.800000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1671 ,000000000000 ,0000000000,2016,-110319.800000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1671 ,000000000000 ,0000000000,2017,-110319.800000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1671 ,000000000000 ,0000000000,2018,-110319.800000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1820 ,01100AA00001 ,0000000000,2014,25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1820 ,01100AA00001 ,0000000000,2015,25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1820 ,01100AA00001 ,0000000000,2016,25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1820 ,01100AA00001 ,0000000000,2017,25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1820 ,01100AA00001 ,0000000000,2018,25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1850 ,000000000000 ,0000000000,2014,-50000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1850 ,01100AA00001 ,0000000000,2014,-31562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1850 ,000000000000 ,0000000000,2015,-50000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1850 ,01100AA00001 ,0000000000,2015,-31562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1850 ,000000000000 ,0000000000,2016,-50000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1850 ,01100AA00001 ,0000000000,2016,-31562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1850 ,000000000000 ,0000000000,2017,-50000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1850 ,01100AA00001 ,0000000000,2017,-31562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1850 ,000000000000 ,0000000000,2018,-50000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1850 ,01100AA00001 ,0000000000,2018,-31562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1860 ,000000000000 ,0000000000,2014,5250,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1860 ,000000000000 ,0000000000,2015,5250,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1860 ,000000000000 ,0000000000,2016,5250,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1860 ,000000000000 ,0000000000,2017,5250,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1860 ,000000000000 ,0000000000,2018,5250,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1910 ,000000000000 ,0000000000,2014,153257.559999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1910 ,01100AA00001 ,0000000000,2014,25.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1910 ,03440AA00510 ,0000000000,2014,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1910 ,000000000000 ,0000000000,2015,153257.559999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1910 ,01100AA00001 ,0000000000,2015,25.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1910 ,03440AA00510 ,0000000000,2015,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1910 ,000000000000 ,0000000000,2016,153257.559999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1910 ,01100AA00001 ,0000000000,2016,25.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1910 ,03440AA00510 ,0000000000,2016,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1910 ,000000000000 ,0000000000,2017,153257.559999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1910 ,01100AA00001 ,0000000000,2017,25.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1910 ,03440AA00510 ,0000000000,2017,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1910 ,000000000000 ,0000000000,2018,153257.559999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1910 ,01100AA00001 ,0000000000,2018,25.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1910 ,03440AA00510 ,0000000000,2018,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1911 ,000000000000 ,0000000000,2014,12536700.5099999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1911 ,000000000000 ,0000000000,2015,12536700.5099999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1911 ,000000000000 ,0000000000,2016,12536700.5099999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1911 ,000000000000 ,0000000000,2017,12536700.5099999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1911 ,000000000000 ,0000000000,2018,12536700.5099999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1990 ,000000000000 ,0000000000,2016,0,-3349.51000000000022,40750,0,0,0,-2900,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1990 ,000000000000 ,0000000000,2017,34500.4800000000032,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1990 ,000000000000 ,0000000000,2018,34500.4800000000032,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1999 ,000000000000 ,0000000000,2016,0,2676.40000000000009,-6350.72000000000025,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1999 ,000000000000 ,0000000000,2017,-3674.32000000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",1999 ,000000000000 ,0000000000,2018,-3674.32000000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2000 ,000000000000 ,0000000000,2016,0,2501.26999999999998,1122.03999999999996,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2000 ,010000000000 ,0000000000,2016,0,251.52000000000001,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2000 ,000000000000 ,0000000000,2017,3623.30999999999995,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2000 ,010000000000 ,0000000000,2017,251.52000000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2000 ,000000000000 ,0000000000,2018,3623.30999999999995,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2000 ,010000000000 ,0000000000,2018,251.52000000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2002 ,01100UK00001 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,100,0,0,0 +"CRONUS USA, Inc.",2002 ,01100UK00001 ,0000000000,2017,100,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2002 ,01100UK00001 ,0000000000,2018,100,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2007 ,01100AA00001 ,0000000000,2014,-360074.840000000026,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2007 ,01100AA00001 ,0000000000,2015,-360074.840000000026,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2007 ,01100AA00001 ,0000000000,2016,-360074.840000000026,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2007 ,01100AA00001 ,0000000000,2017,-360074.840000000026,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2007 ,01100AA00001 ,0000000000,2018,-360074.840000000026,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2008 ,01100AA00001 ,0000000000,2014,-110.5,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2008 ,01100AA00001 ,0000000000,2015,-110.5,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2008 ,01100AA00001 ,0000000000,2016,-110.5,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2008 ,01100AA00001 ,0000000000,2017,-110.5,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2008 ,01100AA00001 ,0000000000,2018,-110.5,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2020 ,000000000000 ,0000000000,2014,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2020 ,03440AA00510 ,0000000000,2014,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2020 ,000000000000 ,0000000000,2015,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2020 ,03440AA00510 ,0000000000,2015,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2020 ,000000000000 ,0000000000,2016,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2020 ,03440AA00510 ,0000000000,2016,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2020 ,000000000000 ,0000000000,2017,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2020 ,03440AA00510 ,0000000000,2017,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2020 ,000000000000 ,0000000000,2018,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2020 ,03440AA00510 ,0000000000,2018,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2025 ,000000000000 ,0000000000,2014,19535654.1799999997,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2025 ,000000000000 ,0000000000,2015,19535654.1799999997,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2025 ,000000000000 ,0000000000,2016,19535654.1799999997,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2025 ,000000000000 ,0000000000,2017,19535654.1799999997,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2025 ,000000000000 ,0000000000,2018,19535654.1799999997,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2030 ,000000000000 ,0000000000,2014,988337.010000000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2030 ,000000000000 ,0000000000,2015,988337.010000000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2030 ,000000000000 ,0000000000,2016,988337.010000000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2030 ,000000000000 ,0000000000,2017,988337.010000000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2030 ,000000000000 ,0000000000,2018,988337.010000000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2050 ,01100AA00001 ,0000000000,2014,5583455.4299999997,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2050 ,000000000000 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2050 ,01000AA00001 ,0000000000,2015,0,700,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2050 ,01100AA00001 ,0000000000,2015,5583455.4299999997,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2050 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,4200,0,0,0,0,0 +"CRONUS USA, Inc.",2050 ,01000AA00001 ,0000000000,2016,700,0,500,0,0,0,0,0,0,0,740,0,0,0 +"CRONUS USA, Inc.",2050 ,01100AA00001 ,0000000000,2016,5583455.4299999997,0,0,0,0,0,0,0,0,0,9354.69000000000051,0,0,0 +"CRONUS USA, Inc.",2050 ,03430AA00001 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,3000,0,0,0 +"CRONUS USA, Inc.",2050 ,000000000000 ,0000000000,2017,4200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2050 ,01000AA00001 ,0000000000,2017,1940,0,4800,250,1000,500,0,0,120,0,0,0,0,0 +"CRONUS USA, Inc.",2050 ,01100AA00001 ,0000000000,2017,5592810.12000000011,0,0,-50114.2099999999991,-60038.9000000000015,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2050 ,03430AA00001 ,0000000000,2017,3000,0,100,0,0,1260,0,700,100,0,0,0,0,0 +"CRONUS USA, Inc.",2050 ,000000000000 ,0000000000,2018,4200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2050 ,01000AA00001 ,0000000000,2018,8610,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2050 ,01100AA00001 ,0000000000,2018,5482657.00999999978,0,0,0,0,844.120000000000005,-1000,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2050 ,03430AA00001 ,0000000000,2018,5160,3000,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2060 ,01100AA00001 ,0000000000,2014,-275000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2060 ,01100AA00001 ,0000000000,2015,-275000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2060 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2060 ,01100AA00001 ,0000000000,2016,-275000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2060 ,EN2300000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,270,0,0,0 +"CRONUS USA, Inc.",2060 ,01100AA00001 ,0000000000,2017,-275000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2060 ,EN2300000000 ,0000000000,2017,270,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2060 ,01100AA00001 ,0000000000,2018,-275000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2060 ,EN2300000000 ,0000000000,2018,270,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2065 ,000000000000 ,0000000000,2014,2140.80000000000018,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2065 ,000000000000 ,0000000000,2015,2140.80000000000018,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2065 ,000000000000 ,0000000000,2016,2140.80000000000018,0,0,0,0,0,0,0,0,0,-25,0,0,0 +"CRONUS USA, Inc.",2065 ,040000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2065 ,000000000000 ,0000000000,2017,2115.80000000000018,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2065 ,000000000000 ,0000000000,2018,2115.80000000000018,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2072 ,01100AA00001 ,0000000000,2017,0,0,100,100,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2072 ,01100AA00001 ,0000000000,2018,200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2080 ,SC260AA99999 ,0000000000,2018,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2110 ,000000000000 ,0000000000,2014,331794.219999999972,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2110 ,000000000000 ,0000000000,2015,331794.219999999972,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2110 ,000000000000 ,0000000000,2016,331794.219999999972,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2110 ,000000000000 ,0000000000,2017,331794.219999999972,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2110 ,000000000000 ,0000000000,2018,331794.219999999972,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2120 ,000000000000 ,0000000000,2014,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2120 ,000000000000 ,0000000000,2015,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2120 ,000000000000 ,0000000000,2016,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2120 ,000000000000 ,0000000000,2017,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2120 ,000000000000 ,0000000000,2018,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2121 ,000000000000 ,0000000000,2014,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2121 ,000000000000 ,0000000000,2015,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2121 ,000000000000 ,0000000000,2016,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2121 ,000000000000 ,0000000000,2017,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2121 ,000000000000 ,0000000000,2018,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2130 ,000000000000 ,0000000000,2014,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2130 ,000000000000 ,0000000000,2015,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2130 ,000000000000 ,0000000000,2016,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2130 ,000000000000 ,0000000000,2017,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2130 ,000000000000 ,0000000000,2018,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2131 ,000000000000 ,0000000000,2014,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2131 ,000000000000 ,0000000000,2015,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2131 ,000000000000 ,0000000000,2016,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2131 ,000000000000 ,0000000000,2017,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2131 ,000000000000 ,0000000000,2018,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2140 ,000000000000 ,0000000000,2014,77245.0500000000029,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2140 ,000000000000 ,0000000000,2015,77245.0500000000029,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2140 ,000000000000 ,0000000000,2016,77245.0500000000029,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2140 ,000000000000 ,0000000000,2017,77245.0500000000029,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2140 ,000000000000 ,0000000000,2018,77245.0500000000029,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2160 ,000000000000 ,0000000000,2014,5275.35999999999967,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2160 ,000000000000 ,0000000000,2015,5275.35999999999967,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2160 ,000000000000 ,0000000000,2016,5275.35999999999967,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2160 ,000000000000 ,0000000000,2017,5275.35999999999967,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2160 ,000000000000 ,0000000000,2018,5275.35999999999967,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2190 ,000000000000 ,0000000000,2014,11913.4400000000005,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2190 ,000000000000 ,0000000000,2015,11913.4400000000005,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2190 ,000000000000 ,0000000000,2016,11913.4400000000005,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2190 ,000000000000 ,0000000000,2017,11913.4400000000005,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2190 ,000000000000 ,0000000000,2018,11913.4400000000005,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2241 ,01100AA00001 ,0000000000,2014,7985.10000000000036,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2241 ,01100AA00001 ,0000000000,2015,7985.10000000000036,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2241 ,01100AA00001 ,0000000000,2016,7985.10000000000036,0,0,0,0,0,0,0,0,0,0,0.949999999999999956,0,0 +"CRONUS USA, Inc.",2241 ,01100AA00001 ,0000000000,2017,7986.05000000000018,0,0,0.419999999999999984,0.25,0.5,0.25,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2241 ,01100AA00001 ,0000000000,2018,7987.47000000000025,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2242 ,01100AA00001 ,0000000000,2014,726.009999999999991,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2242 ,01100AA00001 ,0000000000,2015,726.009999999999991,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2242 ,01100AA00001 ,0000000000,2016,726.009999999999991,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2242 ,01100AA00001 ,0000000000,2017,726.009999999999991,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2242 ,01100AA00001 ,0000000000,2018,726.009999999999991,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2243 ,01100AA00001 ,0000000000,2014,29038.5900000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2243 ,01100AA00001 ,0000000000,2015,29038.5900000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2243 ,01100AA00001 ,0000000000,2016,29038.5900000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2243 ,01100AA00001 ,0000000000,2017,29038.5900000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2243 ,01100AA00001 ,0000000000,2018,29038.5900000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2245 ,000000000000 ,0000000000,2015,0,61,114.760000000000005,0,0,0,0,0,0,0,0,0,156.539999999999992,0 +"CRONUS USA, Inc.",2245 ,000000000000 ,0000000000,2016,332.300000000000011,696.32000000000005,189,16,100.75,90.7999999999999972,0,0,67.5,0,2328.69000000000005,167.400000000000006,-56.7000000000000028,0 +"CRONUS USA, Inc.",2245 ,000000000000 ,0000000000,2017,3932.05999999999995,142.409999999999997,6.75,487.350000000000023,474.879999999999995,43.3200000000000003,0,0,25.3200000000000003,0,0,0,0,0 +"CRONUS USA, Inc.",2245 ,000000000000 ,0000000000,2018,5112.09000000000015,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2360 ,01000GM00001 ,0000000000,2014,5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2360 ,01000GM00001 ,0000000000,2015,5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2360 ,01000GM00001 ,0000000000,2016,5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2360 ,01000GM00001 ,0000000000,2017,5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2360 ,01000GM00001 ,0000000000,2018,5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2370 ,01000IT00001 ,0000000000,2014,3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2370 ,01000IT00001 ,0000000000,2015,3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2370 ,01000IT00001 ,0000000000,2016,3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2370 ,01000IT00001 ,0000000000,2017,3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2370 ,01000IT00001 ,0000000000,2018,3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2520 ,01100AA00001 ,0000000000,2014,1460202.81000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2520 ,01100AA00001 ,0000000000,2015,1460202.81000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2520 ,01100AA00001 ,0000000000,2016,1460202.81000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2520 ,01100AA00001 ,0000000000,2017,1460202.81000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2520 ,01100AA00001 ,0000000000,2018,1460202.81000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2550 ,01100AA00001 ,0000000000,2014,1000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2550 ,01100AA00001 ,0000000000,2015,1000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2550 ,01100AA00001 ,0000000000,2016,1000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2550 ,01100AA00001 ,0000000000,2017,1000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2550 ,01100AA00001 ,0000000000,2018,1000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,000000000000 ,0000000000,2014,-1133712.40999999992,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01000CD00001 ,0000000000,2014,-5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01000FR00001 ,0000000000,2014,-3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01100AA00001 ,0000000000,2014,-7574323.15000000037,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,02230AA00001 ,0000000000,2014,-59999.9400000000023,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03000AA00001 ,0000000000,2014,45446.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03430AA00001 ,0000000000,2014,-29559.5999999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03440AA00031 ,0000000000,2014,12971000.8399999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03440AA00510 ,0000000000,2014,34813805.5099999979,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,CO0000000000 ,0000000000,2014,448094.690000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,000000000000 ,0000000000,2015,-1133712.40999999992,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01000CD00001 ,0000000000,2015,-5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01000FR00001 ,0000000000,2015,-3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01100AA00001 ,0000000000,2015,-7574323.15000000037,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,02230AA00001 ,0000000000,2015,-59999.9400000000023,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03000AA00001 ,0000000000,2015,45446.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03430AA00001 ,0000000000,2015,-29559.5999999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03440AA00031 ,0000000000,2015,12971000.8399999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03440AA00510 ,0000000000,2015,34813805.5099999979,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,CO0000000000 ,0000000000,2015,448094.690000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,000000000000 ,0000000000,2016,-1123712.40999999992,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01000AA00001 ,0000000000,2016,-100,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01000CD00001 ,0000000000,2016,-5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01000FR00001 ,0000000000,2016,-3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01100AA00001 ,0000000000,2016,-7571023.15000000037,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,02230AA00001 ,0000000000,2016,-59999.9400000000023,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03000AA00001 ,0000000000,2016,45446.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03430AA00001 ,0000000000,2016,-29559.5999999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03440AA00031 ,0000000000,2016,12971000.8399999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03440AA00510 ,0000000000,2016,34813805.5099999979,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,999999999999 ,0000000000,2016,1600,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,CO0000000000 ,0000000000,2016,448094.690000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,EN0000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,000000000000 ,0000000000,2017,-1091490.12000000011,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,010000000000 ,0000000000,2017,-50.1499999999999986,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01000AA00001 ,0000000000,2017,-350,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01000CD00001 ,0000000000,2017,-5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01000FR00001 ,0000000000,2017,-3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01100AA00001 ,0000000000,2017,-7532655.33999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,020000000000 ,0000000000,2017,-50.6199999999999974,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,02230AA00001 ,0000000000,2017,-59999.9400000000023,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,030000000000 ,0000000000,2017,75,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03000AA00001 ,0000000000,2017,45446.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03430AA00001 ,0000000000,2017,-29559.5999999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03440AA00031 ,0000000000,2017,12971000.8399999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03440AA00510 ,0000000000,2017,34813805.5099999979,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,101005000000 ,0000000000,2017,2533.19000000000005,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,105005000000 ,0000000000,2017,20,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,999999999999 ,0000000000,2017,3749,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,CO0000000000 ,0000000000,2017,448094.690000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,EN0000000000 ,0000000000,2017,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,EN2300000000 ,0000000000,2017,-270,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,SC0000000000 ,0000000000,2017,200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,000000000000 ,0000000000,2018,-1074910.12000000011,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,010000000000 ,0000000000,2018,-50.1499999999999986,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01000AA00001 ,0000000000,2018,-8800,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01000CD00001 ,0000000000,2018,-5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01000FR00001 ,0000000000,2018,-3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,01100AA00001 ,0000000000,2018,-7515204.04999999981,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,020000000000 ,0000000000,2018,-50.6199999999999974,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,02230AA00001 ,0000000000,2018,-59999.9400000000023,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,030000000000 ,0000000000,2018,75,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03000AA00001 ,0000000000,2018,45446.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03430AA00001 ,0000000000,2018,-26664.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03430AA00008 ,0000000000,2018,100,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03440AA00031 ,0000000000,2018,12971000.8399999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,03440AA00510 ,0000000000,2018,34813805.5099999979,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,101005000000 ,0000000000,2018,2533.19000000000005,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,105005000000 ,0000000000,2018,20,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,999999999999 ,0000000000,2018,180358,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,AT0000000000 ,0000000000,2018,-660,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,CO0000000000 ,0000000000,2018,448094.690000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,EN0000000000 ,0000000000,2018,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,EN2300000000 ,0000000000,2018,-270,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2740 ,SC0000000000 ,0000000000,2018,200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,000000000000 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,0,0,10000,0 +"CRONUS USA, Inc.",2750 ,01000AA00001 ,0000000000,2015,0,-100,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,01100AA00001 ,0000000000,2015,0,600,0,0,0,0,0,0,0,0,0,0,2700,0 +"CRONUS USA, Inc.",2750 ,999999999999 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,1600,0,0,0 +"CRONUS USA, Inc.",2750 ,CO0000000000 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,EN0000000000 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,000000000000 ,0000000000,2016,0,16699.8600000000006,22027.2400000000016,0,0,0,-2900,0,3750,0,-7367.22000000000025,12.4100000000000001,0,0 +"CRONUS USA, Inc.",2750 ,010000000000 ,0000000000,2016,0,-50.1499999999999986,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,01000AA00001 ,0000000000,2016,0,0,-250,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,01100AA00001 ,0000000000,2016,0,310,2160,0,0,0,0,0,1000,0,32797.8099999999977,2100,0,0 +"CRONUS USA, Inc.",2750 ,020000000000 ,0000000000,2016,0,-50.6199999999999974,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,030000000000 ,0000000000,2016,0,-25,0,0,0,0,0,0,0,0,100,0,0,0 +"CRONUS USA, Inc.",2750 ,101005000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,2533.19000000000005,0,0 +"CRONUS USA, Inc.",2750 ,105005000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,20,0,0 +"CRONUS USA, Inc.",2750 ,999999999999 ,0000000000,2016,0,374,415,100,435,695,0,0,0,0,170,160,-200,0 +"CRONUS USA, Inc.",2750 ,CO0000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,EN0000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,EN2300000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-270,0,0,0 +"CRONUS USA, Inc.",2750 ,SC0000000000 ,0000000000,2016,0,200,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,000000000000 ,0000000000,2017,0,-50,230,0,10000,0,1710,4400,290,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,01000AA00001 ,0000000000,2017,0,0,-4900,-1450,-1000,-1000,0,0,-100,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,01100AA00001 ,0000000000,2017,0,100,12701.2900000000009,-150,4800,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,03430AA00001 ,0000000000,2017,0,175,1300,319.75,200,200,800,0,-100,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,03430AA00008 ,0000000000,2017,0,0,0,0,0,100,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,999999999999 ,0000000000,2017,0,160,0,1520,0,0,0,0,225,174454,150,100,0,0 +"CRONUS USA, Inc.",2750 ,AT0000000000 ,0000000000,2017,0,0,0,0,0,-660,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,EN0000000000 ,0000000000,2017,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,000000000000 ,0000000000,2018,0,0,0,0,0,2100,74.25,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,01100AA00001 ,0000000000,2018,0,0,0,0,0,-1624.11999999999989,-3110,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,03430AA00001 ,0000000000,2018,0,0,0,0,0,-50,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,999999999999 ,0000000000,2018,0,0,0,80,200,975,1994,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2750 ,SC260AA99999 ,0000000000,2018,0,0,0,0,0,0,-4350,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2760 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-25,0,0,0 +"CRONUS USA, Inc.",2760 ,000000000000 ,0000000000,2017,-25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2760 ,000000000000 ,0000000000,2018,-25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2800 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2810 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2900 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,4195.93000000000029,0,0 +"CRONUS USA, Inc.",2900 ,000000000000 ,0000000000,2017,4195.93000000000029,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",2900 ,000000000000 ,0000000000,2018,4195.93000000000029,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3030 ,01100AA00001 ,0000000000,2015,0,600,0,0,0,0,0,0,0,0,0,0,2700,0 +"CRONUS USA, Inc.",3030 ,999999999999 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,7600,0,0,0 +"CRONUS USA, Inc.",3030 ,CO0000000000 ,0000000000,2015,0,0,1250,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3030 ,EN0000000000 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,0,0,208,0 +"CRONUS USA, Inc.",3030 ,01100AA00001 ,0000000000,2016,0,310,2160,0,0,0,0,0,1000,0,32840,2100,0,0 +"CRONUS USA, Inc.",3030 ,030000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,100,0,0,0 +"CRONUS USA, Inc.",3030 ,999999999999 ,0000000000,2016,0,2660,600,200,1440,1300,0,0,0,0,480,760,-200,0 +"CRONUS USA, Inc.",3030 ,CO0000000000 ,0000000000,2016,0,6875,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3030 ,EN0000000000 ,0000000000,2016,0,104,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3030 ,SC0000000000 ,0000000000,2016,0,200,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3030 ,01100AA00001 ,0000000000,2017,0,100,0,0,4800,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3030 ,03430AA00001 ,0000000000,2017,0,175,1400,200,200,200,800,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3030 ,03430AA00008 ,0000000000,2017,0,0,0,0,0,100,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3030 ,999999999999 ,0000000000,2017,0,760,0,7220,0,0,0,0,300,174884,300,200,0,0 +"CRONUS USA, Inc.",3030 ,03430AA00001 ,0000000000,2018,0,0,0,0,0,-50,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3030 ,999999999999 ,0000000000,2018,0,0,0,380,580,3080,5320,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3031 ,000000000000 ,0000000000,2017,0,0,0,0,0,0,100,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3031 ,03430AA00001 ,0000000000,2017,0,0,0,100,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3032 ,CO0000000000 ,0000000000,2015,0,0,-1250,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3032 ,EN0000000000 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,0,0,-208,0 +"CRONUS USA, Inc.",3032 ,CO0000000000 ,0000000000,2016,0,-6875,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3032 ,EN0000000000 ,0000000000,2016,0,-104,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3032 ,03430AA00001 ,0000000000,2017,0,0,0,12.5,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3033 ,03430AA00001 ,0000000000,2017,0,0,0,7.25,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3034 ,CO0000000000 ,0000000000,2015,0,0,100,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3034 ,EN0000000000 ,0000000000,2015,0,100,350,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3034 ,010000000000 ,0000000000,2016,0,150,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3034 ,CO0000000000 ,0000000000,2016,0,100,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3034 ,EN0000000000 ,0000000000,2016,0,950,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3034 ,AT0000000000 ,0000000000,2017,0,1600,0,0,100,300,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3034 ,EN0000000000 ,0000000000,2017,0,0,0,0,0,200,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3036 ,CO0000000000 ,0000000000,2015,0,0,-100,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3036 ,EN0000000000 ,0000000000,2015,0,-100,-350,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3036 ,010000000000 ,0000000000,2016,0,-150,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3036 ,CO0000000000 ,0000000000,2016,0,-100,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3036 ,EN0000000000 ,0000000000,2016,0,-950,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3036 ,AT0000000000 ,0000000000,2017,0,-1600,0,0,-100,-630,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3036 ,EN0000000000 ,0000000000,2017,0,0,0,0,0,-200,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3044 ,AT0000000000 ,0000000000,2017,0,0,0,0,0,330,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3050 ,999999999999 ,0000000000,2016,0,-76,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3050 ,999999999999 ,0000000000,2018,0,0,0,0,0,0,-76,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3070 ,999999999999 ,0000000000,2016,0,25,30,0,15,10,0,0,0,0,15,0,0,0 +"CRONUS USA, Inc.",3070 ,999999999999 ,0000000000,2017,0,0,0,0,0,0,0,0,75,2270,0,0,0,0 +"CRONUS USA, Inc.",3080 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,-3750,0,0,0,0,0 +"CRONUS USA, Inc.",3080 ,999999999999 ,0000000000,2016,0,165,85,0,30,35,0,0,0,0,25,0,0,0 +"CRONUS USA, Inc.",3080 ,000000000000 ,0000000000,2017,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3080 ,999999999999 ,0000000000,2018,0,0,0,0,0,0,400,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",3090 ,01100AA00001 ,0000000000,2017,0,0,12708.2900000000009,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",4030 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,15,0,0,0 +"CRONUS USA, Inc.",4030 ,01100AA00001 ,0000000000,2017,0,0,0,150,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",4030 ,01100AA00001 ,0000000000,2018,0,0,0,0,0,615,3110,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",4040 ,01100AA00001 ,0000000000,2017,0,0,2,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",4090 ,01000AA00001 ,0000000000,2015,0,100,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",4090 ,01000AA00001 ,0000000000,2017,0,0,100,0,1000,1000,0,0,100,0,0,0,0,0 +"CRONUS USA, Inc.",4090 ,03430AA00001 ,0000000000,2017,0,0,100,0,0,0,0,0,100,0,0,0,0,0 +"CRONUS USA, Inc.",4090 ,AT0000000000 ,0000000000,2017,0,0,0,0,0,330,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",4090 ,SC260AA99999 ,0000000000,2018,0,0,0,0,0,0,4350,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",4150 ,999999999999 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,6000,0,0,0 +"CRONUS USA, Inc.",4150 ,999999999999 ,0000000000,2016,0,2400,300,100,1050,650,0,0,0,0,350,600,0,0 +"CRONUS USA, Inc.",4150 ,999999999999 ,0000000000,2017,0,600,0,5700,0,0,0,0,150,2700,150,100,0,0 +"CRONUS USA, Inc.",4150 ,999999999999 ,0000000000,2018,0,0,0,300,380,2105,3650,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",4200 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,-12.4100000000000001,0,0 +"CRONUS USA, Inc.",4220 ,000000000000 ,0000000000,2018,0,0,0,0,0,0,-74.25,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",4230 ,000000000000 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,0,0,-10000,0 +"CRONUS USA, Inc.",4230 ,000000000000 ,0000000000,2016,0,-30000,0,0,0,0,0,0,-7500,0,-1271.78999999999996,0,0,0 +"CRONUS USA, Inc.",4230 ,000000000000 ,0000000000,2017,0,0,-200,0,-10000,0,-1610,-4400,-290,0,0,0,0,0 +"CRONUS USA, Inc.",4230 ,000000000000 ,0000000000,2018,0,0,0,0,0,-2100,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",4240 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-26.5599999999999987,0,0,0 +"CRONUS USA, Inc.",4300 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,8662.5,0,0,0 +"CRONUS USA, Inc.",4410 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",4500 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-50,0,0,0 +"CRONUS USA, Inc.",4530 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-64.25,0,0,0 +"CRONUS USA, Inc.",4530 ,000000000000 ,0000000000,2017,0,0,-130,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",5110 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-67.0999999999999943,0,0,0 +"CRONUS USA, Inc.",5120 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-5.58000000000000007,0,0,0 +"CRONUS USA, Inc.",5400 ,101005000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,-2301.23999999999978,0,0 +"CRONUS USA, Inc.",5450 ,101005000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,-131.949999999999989,0,0 +"CRONUS USA, Inc.",6040 ,000000000000 ,0000000000,2017,0,50,100,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",6061 ,01100AA00001 ,0000000000,2017,0,0,5,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",6080 ,01100AA00001 ,0000000000,2018,0,0,0,0,0,1000,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",7000 ,000000000000 ,0000000000,2016,0,4700.89999999999964,32972.760000000002,0,0,0,2900,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",7000 ,010000000000 ,0000000000,2016,0,50.1499999999999986,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",7000 ,01000AA00001 ,0000000000,2016,0,0,250,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",7000 ,020000000000 ,0000000000,2016,0,50.6199999999999974,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",7000 ,030000000000 ,0000000000,2016,0,25,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",7000 ,EN2300000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,50,0,0,0 +"CRONUS USA, Inc.",7005 ,EN2300000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,220,0,0,0 +"CRONUS USA, Inc.",7010 ,01000AA00001 ,0000000000,2017,0,0,0,250,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",7055 ,01000AA00001 ,0000000000,2017,0,0,4800,1200,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",7150 ,101005000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,-100,0,0 +"CRONUS USA, Inc.",7170 ,AT0000000000 ,0000000000,2017,0,0,0,0,0,330,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",7270 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,25,0,0,0 +"CRONUS USA, Inc.",7411 ,01100AA00001 ,0000000000,2018,0,0,0,0,0,3.37999999999999989,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",7412 ,01100AA00001 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,1.56000000000000005,0,0,0 +"CRONUS USA, Inc.",7412 ,01100AA00001 ,0000000000,2018,0,0,0,0,0,2.70000000000000018,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",7413 ,01100AA00001 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,40.6300000000000026,0,0,0 +"CRONUS USA, Inc.",7413 ,01100AA00001 ,0000000000,2018,0,0,0,0,0,3.04000000000000004,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",8000 ,000000000000 ,0000000000,2016,0,12501.2700000000004,11100,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",8001 ,000000000000 ,0000000000,2016,0,0,281.120000000000005,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",8001 ,010000000000 ,0000000000,2016,0,100.290000000000006,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",8001 ,01000AA00001 ,0000000000,2016,0,0,500,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",8002 ,000000000000 ,0000000000,2016,0,0,101.230000000000004,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",8002 ,020000000000 ,0000000000,2016,0,101.230000000000004,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",8003 ,000000000000 ,0000000000,2016,0,0,639.690000000000055,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",8003 ,030000000000 ,0000000000,2016,0,50,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",8010 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-100,0,0,0 +"CRONUS USA, Inc.",8070 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-50,0,0,0 +"CRONUS USA, Inc.",8300 ,105005000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,20,0,0 +"CRONUS USA, Inc.",8999 ,000000000000 ,0000000000,2016,0,3902.03999999999996,67122.0399999999936,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",8999 ,010000000000 ,0000000000,2016,0,100.290000000000006,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",8999 ,01000AA00001 ,0000000000,2016,0,0,500,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",8999 ,020000000000 ,0000000000,2016,0,101.230000000000004,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA, Inc.",8999 ,030000000000 ,0000000000,2016,0,50,0,0,0,0,0,0,0,0,0,0,0,0 diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLBatch.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLBatch.csv new file mode 100644 index 0000000000..d5a890d47c --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLBatch.csv @@ -0,0 +1,599 @@ +Module,BatNbr,Acct,CpnyID,JrnlType,LedgerID,Rlsed,Status +AP,000001 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000002 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000003 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000004 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000005 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000006 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000007 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000008 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000009 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000010 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000011 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000012 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000013 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000014 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000015 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000016 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000017 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000018 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000019 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000020 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000021 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000022 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000023 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000024 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000025 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000026 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000027 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000028 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000029 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000030 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000031 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000032 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000033 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000034 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000035 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000036 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000037 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000038 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000039 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000040 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000041 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000042 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000043 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000044 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000045 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000046 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000047 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000048 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000049 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000050 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000051 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000052 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000053 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000054 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000055 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000056 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000057 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000058 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000059 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000060 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000061 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000062 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000063 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000064 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000065 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000066 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000067 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000068 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000069 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000070 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000071 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000072 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000073 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000074 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000075 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000076 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000077 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000078 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000079 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000080 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000081 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000082 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000083 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000084 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000085 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000086 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000087 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000088 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000089 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000090 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000091 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000092 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000093 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000094 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000095 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000096 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000097 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000098 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000099 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000100 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000101 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000102 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000103 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000104 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000105 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000106 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000107 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000108 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000109 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000110 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000111 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000112 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000113 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000114 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000115 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000116 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000117 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000118 ,,"CRONUS USA, Inc.",LC ,0000000000,1,P +AP,000119 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000120 ,,"CRONUS USA, Inc.",,,1,V +AP,000121 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000122 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000123 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000124 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000125 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000126 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000127 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000128 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000129 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000130 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000131 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000132 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000133 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000135 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000136 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000137 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000138 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000139 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000140 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000141 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000142 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000143 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000144 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000145 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000147 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000148 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000149 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000150 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000151 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000152 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000153 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000154 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000155 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000156 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000157 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000158 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000159 ,,"CRONUS USA, Inc.",,0000000000,1,V +AP,000160 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000161 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000162 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000163 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000164 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000165 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000166 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000167 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000168 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000169 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000170 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000171 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000172 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000173 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000174 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000175 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000176 ,,"CRONUS USA, Inc.",,0000000000,1,V +AP,000177 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000178 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000179 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000180 ,,"CRONUS USA, Inc.",AP ,0000000000,1,U +AP,000181 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000182 ,,"CRONUS USA, Inc.",AP ,0000000000,1,V +AP,000183 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000184 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000185 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000186 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000187 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000188 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000189 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000190 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AP,000191 ,,"CRONUS USA, Inc.",AP ,0000000000,1,P +AR,000001 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000002 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000003 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000004 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000005 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000006 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000007 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000008 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000009 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000010 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000011 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000012 ,,"CRONUS USA, Inc.",AR ,0000000000,1,C +AR,000013 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000014 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000015 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000016 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000017 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000018 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000019 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000020 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000021 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000022 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000023 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000024 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000025 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000026 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000027 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000028 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000029 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000030 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000031 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000032 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000033 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000034 ,,"CRONUS USA, Inc.",AR ,0000000000,1,C +AR,000035 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000036 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000037 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000038 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000039 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000040 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000041 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000042 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000043 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000044 ,,"CRONUS USA, Inc.",AR ,0000000000,1,C +AR,000045 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000046 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000047 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000048 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000049 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000050 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000051 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000052 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000053 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000054 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000055 ,,"CRONUS USA, Inc.",AR ,0000000000,1,C +AR,000056 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000057 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000058 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000059 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000060 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000061 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000062 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000063 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000064 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000065 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000067 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000068 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000069 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000070 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000071 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000072 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000073 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000074 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000075 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000077 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000078 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000079 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000080 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000081 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000082 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000083 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000084 ,,"CRONUS USA, Inc.",CA ,0000000000,1,P +AR,000085 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000086 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000087 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000088 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000089 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000090 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000091 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000092 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000093 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000094 ,,"CRONUS USA, Inc.",AR ,0000000000,1,C +AR,000095 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000096 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000097 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000098 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000099 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000100 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000101 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000102 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000103 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000104 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000105 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000106 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000107 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000108 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000109 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000110 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000111 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000112 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000113 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000114 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000115 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000116 ,,"CRONUS USA, Inc.",AR ,0000000000,1,C +AR,000117 ,,"CRONUS USA, Inc.",AR ,0000000000,1,C +AR,000118 ,,"CRONUS USA, Inc.",AR ,0000000000,1,C +AR,000119 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000120 ,,"CRONUS USA, Inc.",AR ,0000000000,1,C +AR,000121 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000122 ,,"CRONUS USA, Inc.",AR ,0000000000,1,C +AR,000123 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000124 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000125 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000126 ,,"CRONUS USA, Inc.",AR ,0000000000,1,V +AR,000127 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000128 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000129 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000130 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000131 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000132 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000133 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000134 ,,"CRONUS USA, Inc.",AR ,0000000000,1,V +AR,000135 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000136 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000137 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000138 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000139 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000140 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000141 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000142 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000143 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000144 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000145 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000146 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000147 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000148 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000149 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000150 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000151 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000152 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000153 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000156 ,,"CRONUS USA, Inc.",AR ,0000000000,1,V +AR,000157 ,,"CRONUS USA, Inc.",AR ,0000000000,1,V +AR,000158 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000159 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000160 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000161 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000162 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000163 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000164 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000165 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000166 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000170 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000172 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000176 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000183 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000186 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000189 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000190 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000192 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000193 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000194 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000196 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000197 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000198 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000199 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000200 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000201 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000202 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000204 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000206 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000207 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000208 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000209 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000210 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000211 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000212 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000213 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000214 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000215 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000216 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000217 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000218 ,,"CRONUS USA, Inc.",AR ,0000000000,1,V +AR,000219 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000220 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000221 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000222 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000223 ,,"CRONUS USA, Inc.",AR ,0000000000,1,V +AR,000224 ,,"CRONUS USA, Inc.",AR ,0000000000,1,V +AR,000225 ,,"CRONUS USA, Inc.",AR ,0000000000,1,V +AR,000226 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000227 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000228 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000229 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000230 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000231 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000232 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000233 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000234 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000235 ,,"CRONUS USA, Inc.",AR ,0000000000,1,V +AR,000236 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000237 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000238 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000239 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000240 ,,"CRONUS USA, Inc.",AR ,0000000000,1,V +AR,000241 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000242 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000243 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000244 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000245 ,6061 ,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000246 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000247 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000248 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000249 ,,"CRONUS USA, Inc.",AR ,0000000000,1,C +AR,000250 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000251 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000252 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000253 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000254 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000255 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000256 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000257 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000258 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000259 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000260 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000261 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000262 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000263 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000264 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000265 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000266 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000267 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000268 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000269 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000270 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000271 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000272 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000273 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000274 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000275 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000276 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000277 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000278 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000279 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000280 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000281 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000282 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000283 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000284 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000285 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000286 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000287 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000288 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000289 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000290 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000291 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000292 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000293 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000294 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +AR,000295 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000296 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000297 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000298 ,,"CRONUS USA, Inc.",BI ,0000000000,1,C +AR,000299 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000300 ,,"CRONUS USA, Inc.",OM ,0000000000,1,U +AR,000301 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000302 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000303 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000304 ,,"CRONUS USA, Inc.",OM ,0000000000,1,U +AR,000305 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000306 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000307 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000308 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000309 ,,"CRONUS USA, Inc.",OM ,0000000000,1,U +AR,000310 ,,"CRONUS USA, Inc.",OM ,0000000000,1,U +AR,000311 ,,"CRONUS USA, Inc.",OM ,0000000000,1,U +AR,000312 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000313 ,,"CRONUS USA, Inc.",OM ,0000000000,1,P +AR,000314 ,,"CRONUS USA, Inc.",OM ,0000000000,1,U +AR,000315 ,,"CRONUS USA, Inc.",OM ,0000000000,1,U +AR,000316 ,,"CRONUS USA, Inc.",AR ,0000000000,1,P +CA,000001 ,,"CRONUS USA, Inc.",CA ,0000000000,1,P +CA,000002 ,,"CRONUS USA, Inc.",CA ,0000000000,1,P +CA,000003 ,,"CRONUS USA, Inc.",CA ,0000000000,1,C +GL,000069 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000070 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000071 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000072 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000073 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000079 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000080 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000081 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000082 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000083 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000084 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000085 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000086 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000087 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000088 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000089 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000090 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000091 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000092 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000093 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000094 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000095 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000096 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000097 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000098 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000099 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000100 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000101 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000102 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000103 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000109 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000110 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000111 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000112 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000113 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000114 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000115 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000116 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000117 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000118 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000119 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000120 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000121 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000122 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000123 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000124 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000125 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000126 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000127 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000128 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000130 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000131 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000138 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000139 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000140 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000141 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000142 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000143 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000164 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000234 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000235 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000236 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000237 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000239 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000240 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000248 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000249 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000263 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000264 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000268 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000269 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000270 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000271 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000272 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000273 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000274 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000275 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000276 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000277 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000278 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000279 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000291 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000292 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000295 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000296 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000299 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000300 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000304 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000305 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000307 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000308 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000310 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000311 ,,"CRONUS USA, Inc.",IA ,0000000000,1,P +GL,000313 ,,"CRONUS USA, Inc.",LC ,0000000000,1,P +GL,000314 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000315 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000316 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000317 ,,"CRONUS USA, Inc.",IC ,0000000000,1,P +GL,000318 ,,"CRONUS USA, Inc.",GJ ,0000000000,0,B +GL,000319 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000321 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000322 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000331 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000332 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000333 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000334 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000335 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000336 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000337 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000338 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000339 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000340 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000341 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000342 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P +GL,000343 ,,"CRONUS USA, Inc.",GJ ,0000000000,1,P \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLFlexDef.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLFlexDef.csv new file mode 100644 index 0000000000..6190412b8b --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLFlexDef.csv @@ -0,0 +1,2 @@ +FieldClassName,Caption,Descr00,Descr01,Descr02,Descr03,Descr04,Descr05,Descr06,Descr07,NumberSegments,SegLength00,SegLength01,SegLength02,SegLength03,SegLength04,SegLength05,SegLength06,SegLength07 +SUBACCOUNT ,Subaccount ,Reporting Unit ,Reg/Branch ,Location ,Group ,Sales Type ,Region ,,,6,2,3,2,2,2,1,0,0 diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLGLSetup12Periods.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLGLSetup12Periods.csv index 266fa9aa99..1e955fe60a 100644 --- a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLGLSetup12Periods.csv +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLGLSetup12Periods.csv @@ -1,2 +1,2 @@ -SetupId,BegFiscalYr,CpnyId,CpnyName,FiscalPerEnd00,FiscalPerEnd01,FiscalPerEnd02,FiscalPerEnd03,FiscalPerEnd04,FiscalPerEnd05,FiscalPerEnd06,FiscalPerEnd07,FiscalPerEnd08,FiscalPerEnd09,FiscalPerEnd10,FiscalPerEnd11,FiscalPerEnd12,NbrPer,PerNbr -GL,1,0060 ,"Contoso, Ltd:Demo ",0131,0228,0331,0430,0531,0630,0731,0831,0930,1031,1130,1231,,12,201805 +SetupId,BegFiscalYr,CpnyId,CpnyName,FiscalPerEnd00,FiscalPerEnd01,FiscalPerEnd02,FiscalPerEnd03,FiscalPerEnd04,FiscalPerEnd05,FiscalPerEnd06,FiscalPerEnd07,FiscalPerEnd08,FiscalPerEnd09,FiscalPerEnd10,FiscalPerEnd11,FiscalPerEnd12,LedgerID,NbrPer,PerNbr +GL,1,0060 ,"Contoso, Ltd:Demo ",0131,0228,0331,0430,0531,0630,0731,0831,0930,1031,1130,1231,,0000000000,12,201805 diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLGLSetup13Periods.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLGLSetup13Periods.csv index 3b73d6aa56..fcd5fdd911 100644 --- a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLGLSetup13Periods.csv +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLGLSetup13Periods.csv @@ -1,2 +1,2 @@ -SetupId,BegFiscalYr,CpnyId,CpnyName,FiscalPerEnd00,FiscalPerEnd01,FiscalPerEnd02,FiscalPerEnd03,FiscalPerEnd04,FiscalPerEnd05,FiscalPerEnd06,FiscalPerEnd07,FiscalPerEnd08,FiscalPerEnd09,FiscalPerEnd10,FiscalPerEnd11,FiscalPerEnd12,NbrPer,PerNbr -GL,1,0060 ,"Contoso, Ltd:Demo ",0131,0228,0331,0430,0531,0630,0731,0831,0930,1031,1130,1230,1231,13,201805 +SetupId,BegFiscalYr,CpnyId,CpnyName,FiscalPerEnd00,FiscalPerEnd01,FiscalPerEnd02,FiscalPerEnd03,FiscalPerEnd04,FiscalPerEnd05,FiscalPerEnd06,FiscalPerEnd07,FiscalPerEnd08,FiscalPerEnd09,FiscalPerEnd10,FiscalPerEnd11,FiscalPerEnd12,LedgerID,NbrPer,PerNbr +GL,1,0060 ,"Contoso, Ltd:Demo ",0131,0228,0331,0430,0531,0630,0731,0831,0930,1031,1130,1230,1231,0000000000,13,201805 diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLSegments.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLSegments.csv new file mode 100644 index 0000000000..a588382aca --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLSegments.csv @@ -0,0 +1,7 @@ +Id,Name,CodeCaption,FilterCaption,SegmentNumber +GROUP,Group ,Group Code,Group Filter,4 +LOCATIONS,Location ,Location Code,Location Filter,3 +REG/BRANCH,Reg/Branch ,Reg/Branch Code,Reg/Branch Filter,2 +REGION,Region ,Region Code,Region Filter,6 +REPORTING UNIT,Reporting Unit ,Reporting Unit Code,Reporting Unit Filter,1 +SALES TYPE,Sales Type ,Sales Type Code,Sales Type Filter,5 diff --git a/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCGenJournalLineBeginningBalance.csv b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCGenJournalLineBeginningBalance.csv new file mode 100644 index 0000000000..fcad7fa9e9 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCGenJournalLineBeginningBalance.csv @@ -0,0 +1,86 @@ +Journal Template Name,Journal Batch Name,Line No.,Account Type,Account No.,Posting Date,Document Type,Document No.,Description,Bal. Account No.,Amount,Debit Amount,Credit Amount,Posting Group,Shortcut Dimension 1 Code,Shortcut Dimension 2 Code,Due Date,Pmt. Discount Date,Payment Discount %,Quantity,Gen. Bus. Posting Group,Gen. Prod. Posting Group,Bal. Account Type,Document Date,External Document No.,Tax Area Code,Tax Liable,Dimension Set ID +GENERAL,SL2016-00,10000,G/L Account,1030,2015-12-31,,SL2016-00,Beginning Balance for 2016,,12345678.9,12345678.9,0,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,20000,G/L Account,1030,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-1859858.44,0,1859858.44,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,30000,G/L Account,1030,2015-12-31,,SL2016-00,Beginning Balance for 2016,,6000000,6000000,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,15 +GENERAL,SL2016-00,40000,G/L Account,1031,2015-12-31,,SL2016-00,Beginning Balance for 2016,,3250000,3250000,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,50000,G/L Account,1031,2015-12-31,,SL2016-00,Beginning Balance for 2016,,17097550,17097550,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,15 +GENERAL,SL2016-00,60000,G/L Account,1037,2015-12-31,,SL2016-00,Beginning Balance for 2016,,625321.94,625321.94,0,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,70000,G/L Account,1037,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-25341.85,0,25341.85,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,80000,G/L Account,1037,2015-12-31,,SL2016-00,Beginning Balance for 2016,,11054064.21,11054064.21,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,15 +GENERAL,SL2016-00,90000,G/L Account,1040,2015-12-31,,SL2016-00,Beginning Balance for 2016,,658425.39,658425.39,0,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,100000,G/L Account,1041,2015-12-31,,SL2016-00,Beginning Balance for 2016,,11562,11562,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,110000,G/L Account,1070,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-781063.19,0,781063.19,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,120000,G/L Account,1110,2015-12-31,,SL2016-00,Beginning Balance for 2016,,4274.74,4274.74,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,130000,G/L Account,1110,2015-12-31,,SL2016-00,Beginning Balance for 2016,,702.42,702.42,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,29 +GENERAL,SL2016-00,140000,G/L Account,1110,2015-12-31,,SL2016-00,Beginning Balance for 2016,,236819.41,236819.41,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,33 +GENERAL,SL2016-00,150000,G/L Account,1150,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-113667.53,0,113667.53,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,160000,G/L Account,1151,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-326519.87,0,326519.87,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,170000,G/L Account,1156,2015-12-31,,SL2016-00,Beginning Balance for 2016,,66644.68,66644.68,0,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,180000,G/L Account,1157,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-124358.19,0,124358.19,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,190000,G/L Account,1160,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-145157,0,145157,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,200000,G/L Account,1170,2015-12-31,,SL2016-00,Beginning Balance for 2016,,13790.28,13790.28,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,210000,G/L Account,1190,2015-12-31,,SL2016-00,Beginning Balance for 2016,,1000,1000,0,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,220000,G/L Account,1190,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-1250,0,1250,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,37 +GENERAL,SL2016-00,230000,G/L Account,1190,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-208,0,208,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,39 +GENERAL,SL2016-00,240000,G/L Account,1191,2015-12-31,,SL2016-00,Beginning Balance for 2016,,15136.84,15136.84,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,250000,G/L Account,1192,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-100,0,100,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,37 +GENERAL,SL2016-00,260000,G/L Account,1192,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-450,0,450,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,39 +GENERAL,SL2016-00,270000,G/L Account,1210,2015-12-31,,SL2016-00,Beginning Balance for 2016,,426118,426118,0,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,280000,G/L Account,1620,2015-12-31,,SL2016-00,Beginning Balance for 2016,,2500658.94,2500658.94,0,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,290000,G/L Account,1621,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-15004.4,0,15004.4,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,300000,G/L Account,1630,2015-12-31,,SL2016-00,Beginning Balance for 2016,,650000,650000,0,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,310000,G/L Account,1631,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-15476.2,0,15476.2,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,320000,G/L Account,1640,2015-12-31,,SL2016-00,Beginning Balance for 2016,,1850954.56,1850954.56,0,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,330000,G/L Account,1641,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-61448.48,0,61448.48,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,340000,G/L Account,1650,2015-12-31,,SL2016-00,Beginning Balance for 2016,,100000,100000,0,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,350000,G/L Account,1651,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-3750,0,3750,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,360000,G/L Account,1660,2015-12-31,,SL2016-00,Beginning Balance for 2016,,95600,95600,0,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,370000,G/L Account,1661,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-3733.34,0,3733.34,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,380000,G/L Account,1670,2015-12-31,,SL2016-00,Beginning Balance for 2016,,1985756.23,1985756.23,0,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,390000,G/L Account,1671,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-110319.8,0,110319.8,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,400000,G/L Account,1820,2015-12-31,,SL2016-00,Beginning Balance for 2016,,25341.85,25341.85,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,410000,G/L Account,1850,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-50000,0,50000,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,420000,G/L Account,1850,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-31562,0,31562,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,430000,G/L Account,1860,2015-12-31,,SL2016-00,Beginning Balance for 2016,,5250,5250,0,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,440000,G/L Account,1910,2015-12-31,,SL2016-00,Beginning Balance for 2016,,153257.56,153257.56,0,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,450000,G/L Account,1910,2015-12-31,,SL2016-00,Beginning Balance for 2016,,25.25,25.25,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,460000,G/L Account,1910,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-563.25,0,563.25,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,15 +GENERAL,SL2016-00,470000,G/L Account,1911,2015-12-31,,SL2016-00,Beginning Balance for 2016,,12536700.51,12536700.51,0,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,480000,G/L Account,2007,2015-12-31,,SL2016-00,Beginning Balance for 2016,,360074.84,360074.84,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,490000,G/L Account,2008,2015-12-31,,SL2016-00,Beginning Balance for 2016,,110.5,110.5,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,500000,G/L Account,2020,2015-12-31,,SL2016-00,Beginning Balance for 2016,,563.25,563.25,0,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,510000,G/L Account,2020,2015-12-31,,SL2016-00,Beginning Balance for 2016,,563.25,563.25,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,15 +GENERAL,SL2016-00,520000,G/L Account,2025,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-19535654.18,0,19535654.18,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,530000,G/L Account,2030,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-988337.01,0,988337.01,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,540000,G/L Account,2050,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-700,0,700,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,50 +GENERAL,SL2016-00,550000,G/L Account,2050,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-5583455.43,0,5583455.43,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,560000,G/L Account,2060,2015-12-31,,SL2016-00,Beginning Balance for 2016,,275000,275000,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,570000,G/L Account,2065,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-2140.8,0,2140.8,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,580000,G/L Account,2110,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-331794.22,0,331794.22,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,590000,G/L Account,2120,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-54886.93,0,54886.93,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,600000,G/L Account,2121,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-18493.49,0,18493.49,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,610000,G/L Account,2130,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-54886.93,0,54886.93,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,620000,G/L Account,2131,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-18493.49,0,18493.49,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,630000,G/L Account,2140,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-77245.05,0,77245.05,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,640000,G/L Account,2160,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-5275.36,0,5275.36,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,650000,G/L Account,2190,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-11913.44,0,11913.44,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,660000,G/L Account,2241,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-7985.1,0,7985.1,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,670000,G/L Account,2242,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-726.01,0,726.01,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,680000,G/L Account,2243,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-29038.59,0,29038.59,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,690000,G/L Account,2245,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-332.3,0,332.3,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,700000,G/L Account,2360,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-5964.87,0,5964.87,,GM,00,,,0,0,,,G/L Account,2015-12-31,,,false,59 +GENERAL,SL2016-00,710000,G/L Account,2370,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-3589.45,0,3589.45,,IT,00,,,0,0,,,G/L Account,2015-12-31,,,false,64 +GENERAL,SL2016-00,720000,G/L Account,2520,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-1460202.81,0,1460202.81,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,730000,G/L Account,2550,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-1000000,0,1000000,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,740000,G/L Account,2740,2015-12-31,,SL2016-00,Beginning Balance for 2016,,1123712.41,1123712.41,0,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,11 +GENERAL,SL2016-00,750000,G/L Account,2740,2015-12-31,,SL2016-00,Beginning Balance for 2016,,100,100,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,50 +GENERAL,SL2016-00,760000,G/L Account,2740,2015-12-31,,SL2016-00,Beginning Balance for 2016,,5964.87,5964.87,0,,CD,00,,,0,0,,,G/L Account,2015-12-31,,,false,69 +GENERAL,SL2016-00,770000,G/L Account,2740,2015-12-31,,SL2016-00,Beginning Balance for 2016,,3589.45,3589.45,0,,FR,00,,,0,0,,,G/L Account,2015-12-31,,,false,74 +GENERAL,SL2016-00,780000,G/L Account,2740,2015-12-31,,SL2016-00,Beginning Balance for 2016,,7571023.15,7571023.15,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,6 +GENERAL,SL2016-00,790000,G/L Account,2740,2015-12-31,,SL2016-00,Beginning Balance for 2016,,59999.94,59999.94,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,78 +GENERAL,SL2016-00,800000,G/L Account,2740,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-45446.93,0,45446.93,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,29 +GENERAL,SL2016-00,810000,G/L Account,2740,2015-12-31,,SL2016-00,Beginning Balance for 2016,,29559.6,29559.6,0,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,33 +GENERAL,SL2016-00,820000,G/L Account,2740,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-12971000.84,0,12971000.84,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,81 +GENERAL,SL2016-00,830000,G/L Account,2740,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-34813805.51,0,34813805.51,,AA,00,,,0,0,,,G/L Account,2015-12-31,,,false,15 +GENERAL,SL2016-00,840000,G/L Account,2740,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-1600,0,1600,,99,99,,,0,0,,,G/L Account,2015-12-31,,,false,21 +GENERAL,SL2016-00,850000,G/L Account,2740,2015-12-31,,SL2016-00,Beginning Balance for 2016,,-448094.69,0,448094.69,,00,00,,,0,0,,,G/L Account,2015-12-31,,,false,37 diff --git a/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCGenJournalLineOpenAP.csv b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCGenJournalLineOpenAP.csv new file mode 100644 index 0000000000..21dcbb0b2d --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCGenJournalLineOpenAP.csv @@ -0,0 +1,59 @@ +Journal Template Name,Journal Batch Name,Line No.,Account Type,Account No.,Posting Date,Document Type,Document No.,Description,Bal. Account No.,Amount,Debit Amount,Credit Amount,Posting Group,Shortcut Dimension 1 Code,Shortcut Dimension 2 Code,Due Date,Pmt. Discount Date,Payment Discount %,Quantity,Gen. Bus. Posting Group,Gen. Prod. Posting Group,Bal. Account Type,Document Date,External Document No.,Tax Area Code,Tax Liable,Dimension Set ID +GENERAL,SLVEND,10000,Vendor,E01182,2016-12-04,Invoice,SL000102,,2050,-270,0,270,EMP,,,2016-12-05,,0,0,,,G/L Account,2016-12-04,000102-0000200028,,false, +GENERAL,SLVEND,20000,Vendor,V00152,2016-12-22,Invoice,SL000104,PO:000020-Created from Receipt:000011,2050,-3000,0,3000,TRADE,,,2017-01-21,,0,0,,,G/L Account,2016-12-22,000104-,,false, +GENERAL,SLVEND,30000,Vendor,V00152,2017-02-13,Invoice,SL000105,PO:000020-Created from Receipt:000011,2050,-100,0,100,TRADE,,,2017-03-15,,0,0,,,G/L Account,2017-02-13,000105-,,false, +GENERAL,SLVEND,40000,Vendor,V00152,2017-10-31,Invoice,SL000124,PO:000020-Created from Receipt:000011,2050,-110,0,110,TRADE,,,2017-11-30,,0,0,,,G/L Account,2017-10-31,000124-,,false, +GENERAL,SLVEND,50000,Vendor,V00152,2017-10-31,Invoice,SL000125,PO:000020-Created from Receipt:000011,2050,-110,0,110,TRADE,,,2017-11-30,,0,0,,,G/L Account,2017-10-31,000125-,,false, +GENERAL,SLVEND,60000,Vendor,V00152,2017-10-31,Invoice,SL000126,PO:000020-Created from Receipt:000011,2050,-110,0,110,TRADE,,,2017-11-30,,0,0,,,G/L Account,2017-10-31,000126-,,false, +GENERAL,SLVEND,70000,Vendor,V00152,2017-10-31,Invoice,SL000127,PO:000020-Created from Receipt:000011,2050,-110,0,110,TRADE,,,2017-11-30,,0,0,,,G/L Account,2017-10-31,000127-,,false, +GENERAL,SLVEND,80000,Vendor,V00152,2017-10-31,Invoice,SL000128,PO:000020-Created from Receipt:000011,2050,-110,0,110,TRADE,,,2017-11-30,,0,0,,,G/L Account,2017-10-31,000128-,,false, +GENERAL,SLVEND,90000,Vendor,V00152,2017-10-31,Invoice,SL000129,PO:000020-Created from Receipt:000011,2050,-110,0,110,TRADE,,,2017-11-30,,0,0,,,G/L Account,2017-10-31,000129-,,false, +GENERAL,SLVEND,100000,Vendor,V00152,2017-10-31,Invoice,SL000130,PO:000020-Created from Receipt:000011,2050,-100,0,100,TRADE,,,2017-11-30,,0,0,,,G/L Account,2017-10-31,000130-,,false, +GENERAL,SLVEND,110000,Vendor,V00152,2017-10-31,Invoice,SL000131,PO:000020-Created from Receipt:000011,2050,-100,0,100,TRADE,,,2017-11-30,,0,0,,,G/L Account,2017-10-31,000131-,,false, +GENERAL,SLVEND,120000,Vendor,V00152,2017-10-31,Invoice,SL000132,PO:000020-Created from Receipt:000011,2050,-100,0,100,TRADE,,,2017-11-30,,0,0,,,G/L Account,2017-10-31,000132-,,false, +GENERAL,SLVEND,130000,Vendor,V00152,2017-10-31,Invoice,SL000133,PO:000020-Created from Receipt:000011,2050,-100,0,100,TRADE,,,2017-11-30,,0,0,,,G/L Account,2017-10-31,000133-,,false, +GENERAL,SLVEND,140000,Vendor,V00152,2017-10-31,Invoice,SL000134,PO:000020-Created from Receipt:000011,2050,-100,0,100,TRADE,,,2017-11-30,,0,0,,,G/L Account,2017-10-31,000134-,,false, +GENERAL,SLVEND,150000,Vendor,V00152,2017-10-31,Invoice,SL000135,PO:000020-Created from Receipt:000011,2050,-100,0,100,TRADE,,,2017-11-30,,0,0,,,G/L Account,2017-10-31,000135-,,false, +GENERAL,SLVEND,160000,Vendor,V00152,2018-05-07,Invoice,SL000136,PO:000021-Created from Receipt:000012,2050,-700,0,700,TRADE,,,2018-06-06,,0,0,,,G/L Account,2018-05-07,000136-,,false, +GENERAL,SLVEND,170000,Vendor,V00152,2019-01-21,Invoice,SL000138,PO:000021-Created from Receipt:000012,2050,-100,0,100,TRADE,,,2019-02-20,,0,0,,,G/L Account,2019-01-21,000138-,,false, +GENERAL,SLVEND,180000,Vendor,V00152,2018-04-05,Invoice,SL000141,PO:000023-Created from Receipt:000014,2050,-3000,0,3000,TRADE,,,2018-05-05,,0,0,,,G/L Account,2018-04-05,000141-,,false, +GENERAL,SLVEND,190000,Vendor,V00205,2015-12-01,Invoice,SL000093,,2050,-100,0,100,TRADE,,,2015-12-31,,0,0,,,G/L Account,2015-12-01,000093-,,false, +GENERAL,SLVEND,200000,Vendor,V00205,2017-09-18,Invoice,SL000122,,2050,-1000,0,1000,TRADE,,,2017-10-18,,0,0,,,G/L Account,2017-09-18,000122-,,false, +GENERAL,SLVEND,210000,Vendor,V00205,2019-01-21,Invoice,SL000139,,2050,-100,0,100,TRADE,,,2019-02-20,,0,0,,,G/L Account,2019-01-21,000139-,,false, +GENERAL,SLVEND,220000,Vendor,V00206,2016-12-04,Invoice,SL000112,,2050,-1200,0,1200,TRADE,,,2017-01-03,,0,0,,,G/L Account,2016-12-04,000112-,,false, +GENERAL,SLVEND,230000,Vendor,V00206,2017-01-04,Invoice,SL000113,,2050,-1200,0,1200,TRADE,,,2017-02-03,,0,0,,,G/L Account,2017-01-04,000113-,,false, +GENERAL,SLVEND,240000,Vendor,V00206,2017-02-04,Invoice,SL000114,,2050,-1200,0,1200,TRADE,,,2017-03-06,,0,0,,,G/L Account,2017-02-04,000114-,,false, +GENERAL,SLVEND,250000,Vendor,V00206,2017-03-04,Invoice,SL000115,,2050,-1200,0,1200,TRADE,,,2017-04-03,,0,0,,,G/L Account,2017-03-04,000115-,,false, +GENERAL,SLVEND,260000,Vendor,V00207,2016-12-08,Invoice,SL000103,,2050,-100,0,100,TRADE,,,2017-01-07,,0,0,,,G/L Account,2016-12-08,000103-,,false, +GENERAL,SLVEND,270000,Vendor,V00207,2017-03-20,Invoice,SL000106,,2050,-250,0,250,TRADE,,,2017-04-19,,0,0,,,G/L Account,2017-03-20,000106-,,false, +GENERAL,SLVEND,280000,Vendor,V00209,2015-12-01,Invoice,SL000094,PO:000010-,2050,-600,0,600,TRADE,,,2015-12-31,,0,0,,,G/L Account,2015-12-01,000094-,,false, +GENERAL,SLVEND,290000,Vendor,V00209,2016-11-15,Invoice,SL000101,Created from Receipt:000010,2050,-640,0,640,TRADE,,,2016-12-15,,0,0,,,G/L Account,2016-11-15,000101-,,false, +GENERAL,SLVEND,300000,Vendor,V00209,2018-12-05,Invoice,SL000137,PO:000022-Created from Receipt:000013,2050,-20,0,20,TRADE,,,2019-01-04,,0,0,,,G/L Account,2018-12-05,000137-,,false, +GENERAL,SLVEND,310000,Vendor,V00217,2017-08-23,Invoice,SL000119,,2050,-1000,0,1000,TRADE,,,2017-09-22,,0,0,,,G/L Account,2017-08-23,000119-,,false, +GENERAL,SLVEND,320000,Vendor,VT0100,2016-11-14,Invoice,SL000096,PO:000014-Created from Receipt:000007,2050,-320.25,0,320.25,TRADE,,,2016-12-14,,0,0,,,G/L Account,2016-11-14,000096-,COOK-G,false, +GENERAL,SLVEND,330000,Vendor,VT0100,2016-11-14,Invoice,SL000097,PO:000014-Created from Receipt:000007,2050,-25,0,25,TRADE,,,2016-11-14,,0,0,,,G/L Account,2016-11-14,000097-,COOK-G,false, +GENERAL,SLVEND,340000,Vendor,VT0100,2016-11-14,Invoice,SL000099,PO:000015-,2050,-346.94,0,346.94,TRADE,,,2016-12-14,,0,0,,,G/L Account,2016-11-14,000099-,COOK-G,false, +GENERAL,SLVEND,350000,Vendor,VT0110,1999-11-15,Invoice,SL000074,,2050,-1546810.23,0,1546810.23,TRADE,,,1999-12-15,,0,0,,,G/L Account,1999-11-15,000074-,,false, +GENERAL,SLVEND,360000,Vendor,VT0110,1999-12-01,Invoice,SL000091,,2050,-26.96,0,26.96,TRADE,,,1999-12-31,,0,0,,,G/L Account,1999-12-01,000091-,,false, +GENERAL,SLVEND,370000,Vendor,VT0110,1999-12-01,Invoice,SL000092,,2050,-429776.05,0,429776.05,TRADE,,,1999-12-31,,0,0,,,G/L Account,1999-12-01,000092-,,false, +GENERAL,SLVEND,380000,Vendor,VT0110,2024-07-09,Invoice,SL000142,PO:000027-Created from Receipt:000015,2050,-144.12,0,144.12,TRADE,,,2024-08-08,,0,0,,,G/L Account,2024-07-09,000142-,,false, +GENERAL,SLVEND,390000,Vendor,VT0120,2016-11-14,Invoice,SL000100,PO:000003-Created from Receipt:000009,2050,-8662.5,0,8662.5,TRADE,,,2016-12-14,,0,0,,,G/L Account,2016-11-14,000100-,,false, +GENERAL,SLVEND,400000,Vendor,VT0123,1999-12-01,Invoice,SL000084,,2050,-25.25,0,25.25,TRADE,,,1999-12-31,,0,0,,,G/L Account,1999-12-01,000084-,,false, +GENERAL,SLVEND,410000,Vendor,VT0123,1999-12-01,Invoice,SL000082,,2050,-1000,0,1000,TRADE,,,1999-12-31,,0,0,,,G/L Account,1999-12-01,000082-,,false, +GENERAL,SLVEND,420000,Vendor,VT0123,1999-12-01,Invoice,SL000083,,2050,-23122.24,0,23122.24,TRADE,,,1999-12-31,,0,0,,,G/L Account,1999-12-01,000083-,,false, +GENERAL,SLVEND,430000,Vendor,VT0124,1999-10-15,Invoice,SL000042,,2050,-402600.52,0,402600.52,TRADE,,,1999-11-14,,0,0,,,G/L Account,1999-10-15,000042-,,false, +GENERAL,SLVEND,440000,Vendor,VT0124,1999-10-15,Invoice,SL000043,,2050,-1449002.56,0,1449002.56,TRADE,,,1999-11-14,,0,0,,,G/L Account,1999-10-15,000043-,,false, +GENERAL,SLVEND,450000,Vendor,VT0124,1999-10-07,Invoice,SL000044,,2050,-67995.07,0,67995.07,TRADE,,,1999-11-06,,0,0,,,G/L Account,1999-10-07,000044-,,false, +GENERAL,SLVEND,460000,Vendor,VT0124,1999-11-01,Invoice,SL000068,,2050,-25.25,0,25.25,TRADE,,,1999-12-01,,0,0,,,G/L Account,1999-11-01,000068-,,false, +GENERAL,SLVEND,470000,Vendor,VT0124,1999-12-01,Invoice,SL000085,,2050,-25.25,0,25.25,TRADE,,,1999-12-31,,0,0,,,G/L Account,1999-12-01,000085-,,false, +GENERAL,SLVEND,480000,Vendor,VT0124,1999-12-01,Invoice,SL000086,,2050,-402600.52,0,402600.52,TRADE,,,1999-12-31,,0,0,,,G/L Account,1999-12-01,000086-,,false, +GENERAL,SLVEND,490000,Vendor,VT0124,1999-11-05,Credit Memo,SL000070,,2050,250,250,0,TRADE,,,1999-12-05,,0,0,,,G/L Account,1999-11-05,000070-,,false, +GENERAL,SLVEND,500000,Vendor,VT0124,1999-12-01,Credit Memo,SL000087,,2050,23122.24,23122.24,0,TRADE,,,1999-12-31,,0,0,,,G/L Account,1999-12-01,000087-,,false, +GENERAL,SLVEND,510000,Vendor,VT0125,1999-10-19,Invoice,SL000048,,2050,-309.95,0,309.95,TRADE,,,1999-11-18,,0,0,,,G/L Account,1999-10-19,000048-,,false, +GENERAL,SLVEND,520000,Vendor,VT0125,1999-10-01,Invoice,SL000045,,2050,-25.25,0,25.25,TRADE,,,1999-10-31,,0,0,,,G/L Account,1999-10-01,000045-,,false, +GENERAL,SLVEND,530000,Vendor,VT0125,1999-10-31,Invoice,SL000046,,2050,-46414.21,0,46414.21,TRADE,,,1999-11-30,,0,0,,,G/L Account,1999-10-31,000046-,,false, +GENERAL,SLVEND,540000,Vendor,VT0125,1999-10-15,Invoice,SL000047,,2050,-402600.52,0,402600.52,TRADE,,,1999-11-14,,0,0,,,G/L Account,1999-10-15,000047-,,false, +GENERAL,SLVEND,550000,Vendor,VT0125,1999-11-15,Invoice,SL000072,,2050,-402600.52,0,402600.52,TRADE,,,1999-12-15,,0,0,,,G/L Account,1999-11-15,000072-,,false, +GENERAL,SLVEND,560000,Vendor,VT0125,1999-12-01,Invoice,SL000088,,2050,-25.25,0,25.25,TRADE,,,1999-12-31,,0,0,,,G/L Account,1999-12-01,000088-,,false, +GENERAL,SLVEND,570000,Vendor,VT0125,1999-12-01,Invoice,SL000089,,2050,-46414.21,0,46414.21,TRADE,,,1999-12-31,,0,0,,,G/L Account,1999-12-01,000089-,,false, +GENERAL,SLVEND,580000,Vendor,VT0125,1999-12-01,Credit Memo,SL000090,,2050,25.25,25.25,0,TRADE,,,1999-12-31,,0,0,,,G/L Account,1999-12-01,000090-,,false, diff --git a/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCGenJournalLineOpenAR.csv b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCGenJournalLineOpenAR.csv new file mode 100644 index 0000000000..0b0edf5b9b --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCGenJournalLineOpenAR.csv @@ -0,0 +1,42 @@ +Journal Template Name,Journal Batch Name,Line No.,Account Type,Account No.,Posting Date,Document Type,Document No.,Description,Bal. Account No.,Amount,Debit Amount,Credit Amount,Posting Group,Shortcut Dimension 1 Code,Shortcut Dimension 2 Code,Due Date,Pmt. Discount Date,Payment Discount %,Quantity,Gen. Bus. Posting Group,Gen. Prod. Posting Group,Bal. Account Type,Document Date,External Document No.,Tax Area Code,Tax Liable,Dimension Set ID +GENERAL,SLCUST,10000,Customer,C300,2016-04-06,Invoice,SL100114,BIREG,1110,86.75,86.75,0,COMM,,,2016-05-06,,0,0,,,G/L Account,2016-04-06,,,false, +GENERAL,SLCUST,20000,Customer,C300,2017-05-15,Invoice,SL100141,Test Future period,1110,100.25,100.25,0,COMM,,,2017-06-14,,0,0,,,G/L Account,2017-05-15,,,false, +GENERAL,SLCUST,30000,Customer,C300,2018-01-01,Invoice,SL100165,Future Year Test,1110,100.25,100.25,0,COMM,,,2018-01-31,,0,0,,,G/L Account,2018-01-01,,,false, +GENERAL,SLCUST,40000,Customer,C300,2018-02-01,Invoice,SL100166,,1110,100,100,0,COMM,,,2018-03-03,,0,0,,,G/L Account,2018-02-01,,,false, +GENERAL,SLCUST,50000,Customer,C300,2018-02-28,Invoice,SL100167,,1110,200,200,0,COMM,,,2018-03-30,,0,0,,,G/L Account,2018-02-28,,,false, +GENERAL,SLCUST,60000,Customer,C300,2018-02-28,Invoice,SL100168,,1110,500,500,0,COMM,,,2018-03-30,,0,0,,,G/L Account,2018-02-28,,,false, +GENERAL,SLCUST,70000,Customer,C300,2015-10-23,Invoice,SLI1009387,Counter Sale,1110,7600,7600,0,COMM,,,2015-11-22,,0,0,,,G/L Account,2015-10-23,,,false, +GENERAL,SLCUST,80000,Customer,C300,2016-11-16,Invoice,SLI1009410,Sales Order,1110,380.95,380.95,0,COMM,,,2016-12-16,,0,0,,,G/L Account,2016-11-16,O1005159,,false, +GENERAL,SLCUST,90000,Customer,C300,2020-09-21,Credit Memo,SL100170,Test,1110,-50,0,50,COMM,,,2020-10-21,,0,0,,,G/L Account,2020-09-21,,,false, +GENERAL,SLCUST,100000,Customer,C315,2016-01-22,Invoice,SL100093,BIREG,1110,1334.38,1334.38,0,SL,,,2016-02-21,,0,0,,,G/L Account,2016-01-22,,,false, +GENERAL,SLCUST,110000,Customer,C315,2016-01-20,Invoice,SL100094,BIREG,1110,106.75,106.75,0,SL,,,2016-02-19,,0,0,,,G/L Account,2016-01-20,,,false, +GENERAL,SLCUST,120000,Customer,C315,2016-04-06,Invoice,SL100107,BIREG,1110,5204.07,5204.07,0,SL,,,2016-05-06,,0,0,,,G/L Account,2016-04-06,,,false, +GENERAL,SLCUST,130000,Customer,C315,2016-10-05,Invoice,SL100125,BIREG,1110,107.5,107.5,0,SL,,,2016-11-04,,0,0,,,G/L Account,2016-10-05,,,false, +GENERAL,SLCUST,140000,Customer,C315,2017-04-04,Invoice,SL100137,Test,1110,106.75,106.75,0,SL,,,2017-05-04,,0,0,,,G/L Account,2017-04-04,,,false, +GENERAL,SLCUST,150000,Customer,C315,2018-04-03,Invoice,SL100169,BIREG,1110,213.38,213.38,0,SL,,,2018-05-03,,0,0,,,G/L Account,2018-04-03,,,false, +GENERAL,SLCUST,160000,Customer,C331,2017-01-23,Invoice,SL100139,Test,1110,100,100,0,COMM,,,2017-02-22,,0,0,,,G/L Account,2017-01-23,,,false, +GENERAL,SLCUST,170000,Customer,C331,2018-03-05,Invoice,SLI1009462,Invoice - No AvaTax,1110,380,380,0,COMM,,,2018-04-04,,0,0,,,G/L Account,2018-03-05,,,false, +GENERAL,SLCUST,180000,Customer,C331,2018-05-15,Invoice,SLI1009471,Invoice - No AvaTax,1110,500,500,0,COMM,,,2018-06-14,,0,0,,,G/L Account,2018-05-15,,,false, +GENERAL,SLCUST,190000,Customer,C331,2017-01-27,Credit Memo,SL100140,Test CM,1110,-25,0,25,COMM,,,2017-02-26,,0,0,,,G/L Account,2017-01-27,,,false, +GENERAL,SLCUST,200000,Customer,C389,2017-08-18,Invoice,SL100155,,1110,150,150,0,COMM,,,2017-09-17,,0,0,,,G/L Account,2017-08-18,,,false, +GENERAL,SLCUST,210000,Customer,C389,2018-04-09,Invoice,SLI1009458,Invoice - No AvaTax,1110,100,100,0,COMM,,,2018-05-09,,0,0,,,G/L Account,2018-04-09,,,false, +GENERAL,SLCUST,220000,Customer,C389,2018-05-07,Invoice,SLI1009459,Invoice - No AvaTax,1110,100,100,0,COMM,,,2018-06-06,,0,0,,,G/L Account,2018-05-07,,,false, +GENERAL,SLCUST,230000,Customer,C389,2018-06-04,Invoice,SLI1009460,Invoice - No AvaTax,1110,100,100,0,COMM,,,2018-07-04,,0,0,,,G/L Account,2018-06-04,,,false, +GENERAL,SLCUST,240000,Customer,C389,2018-05-17,Invoice,SLI1009472,Invoice - No AvaTax,1110,1900,1900,0,COMM,,,2018-06-16,,0,0,,,G/L Account,2018-05-17,,,false, +GENERAL,SLCUST,250000,Customer,C404,2017-01-02,Invoice,SL100148,Test recurring Invoice,1110,100,100,0,COMM,,,2017-02-01,,0,0,,,G/L Account,2017-01-02,,,false, +GENERAL,SLCUST,260000,Customer,C404,2017-02-02,Invoice,SL100149,Test recurring Invoice,1110,100,100,0,COMM,,,2017-03-04,,0,0,,,G/L Account,2017-02-02,,,false, +GENERAL,SLCUST,270000,Customer,C404,2018-04-03,Invoice,SLI1009463,Invoice - No AvaTax,1110,380,380,0,COMM,,,2018-05-03,,0,0,,,G/L Account,2018-04-03,,,false, +GENERAL,SLCUST,280000,Customer,C404,2018-05-02,Invoice,SLI1009464,Invoice - No AvaTax,1110,380,380,0,COMM,,,2018-06-01,,0,0,,,G/L Account,2018-05-02,,,false, +GENERAL,SLCUST,290000,Customer,C404,2018-06-05,Invoice,SLI1009465,Invoice - No AvaTax,1110,380,380,0,COMM,,,2018-07-05,,0,0,,,G/L Account,2018-06-05,,,false, +GENERAL,SLCUST,300000,Customer,C407,2017-05-19,Invoice,SL100151,,1110,25,25,0,COMM,,,2017-05-19,,0,0,,,G/L Account,2017-05-19,,,false, +GENERAL,SLCUST,310000,Customer,C407,2017-05-19,Payment,SLTTPP1,,1110,-100,0,100,COMM,,,2017-05-19,,0,0,,,G/L Account,2017-05-19,,,false, +GENERAL,SLCUST,320000,Customer,C419,2015-10-26,Invoice,SL100086,BIREG,1110,106.75,106.75,0,GOVERN,,,2015-11-25,,0,0,,,G/L Account,2015-10-26,,,false, +GENERAL,SLCUST,330000,Customer,C419,2015-10-27,Invoice,SL100087,BIREG,1110,373.63,373.63,0,GOVERN,,,2015-11-26,,0,0,,,G/L Account,2015-10-27,,,false, +GENERAL,SLCUST,340000,Customer,C419,2016-03-24,Invoice,SL100095,BIREG,1110,222.04,222.04,0,GOVERN,,,2016-04-23,,0,0,,,G/L Account,2016-03-24,,,false, +GENERAL,SLCUST,350000,Customer,C419,2016-04-05,Invoice,SL100106,BIREG,1110,160.13,160.13,0,GOVERN,,,2016-05-05,,0,0,,,G/L Account,2016-04-05,,,false, +GENERAL,SLCUST,360000,Customer,C419,2016-04-06,Invoice,SL100108,BIREG,1110,111.02,111.02,0,GOVERN,,,2016-05-06,,0,0,,,G/L Account,2016-04-06,,,false, +GENERAL,SLCUST,370000,Customer,C419,2016-05-11,Invoice,SL100120,BIREG,1110,840.5,840.5,0,GOVERN,,,2016-06-10,,0,0,,,G/L Account,2016-05-11,,,false, +GENERAL,SLCUST,380000,Customer,CT0130,2017-05-18,Finance Charge Memo,SL000000,Finance Charge,1110,12708.29,12708.29,0,WHOLE,,,2017-05-18,,0,0,,,G/L Account,2017-05-18,,,false, +GENERAL,SLCUST,390000,Customer,CT0131,1999-10-01,Invoice,SL000039,Company 0060,1110,905.17,905.17,0,WHOLE,,,1999-10-31,,0,0,,,G/L Account,1999-10-01,,,false, +GENERAL,SLCUST,400000,Customer,CT0131,2017-06-02,Payment,SL100,,1110,-1000,0,1000,WHOLE,,,2017-06-02,,0,0,,,G/L Account,2017-06-02,,,false, +GENERAL,SLCUST,410000,Customer,CT0132,2018-06-13,Invoice,SLI1009473,Invoice - No AvaTax,1110,3724,3724,0,WHOLE,,,2018-07-13,,0,0,,,G/L Account,2018-06-13,,,false, diff --git a/Apps/W1/HybridSL/test/src/SLAPDocBufferData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLAPDocBufferData.XmlPort.al new file mode 100644 index 0000000000..ff38a3a3d8 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLAPDocBufferData.XmlPort.al @@ -0,0 +1,133 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +xmlport 147633 "SL APDoc Buffer Data" +{ + Caption = 'SL APDoc Buffer data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL APDoc Buffer"; "SL APDoc Buffer") + { + AutoSave = false; + XmlName = 'SLAPDocBuffer'; + + textelement(AccountNumber) + { + } + textelement(Sub) + { + } + textelement(DocType) + { + } + textelement(RefNbr) + { + } + textelement(RecordID) + { + } + textelement(BatchNbr) + { + } + textelement(CpnyID) + { + } + textelement(DocBal) + { + } + textelement(DocDate) + { + } + textelement(DocDesc) + { + } + textelement(DueDate) + { + } + textelement(InvcDate) + { + } + textelement(InvcNbr) + { + } + textelement(OpenDoc) + { + } + textelement(PONbr) + { + } + textelement(Rlsed) + { + } + textelement(Status) + { + } + textelement(Terms) + { + } + textelement(VendId) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLAPDocBuffer: Record "SL APDoc Buffer"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLAPDocBuffer.Acct := AccountNumber; + SLAPDocBuffer.Sub := Sub; + SLAPDocBuffer.DocType := DocType; + SLAPDocBuffer.RefNbr := RefNbr; + Evaluate(SLAPDocBuffer.RecordID, RecordID); + SLAPDocBuffer.BatNbr := BatchNbr; + SLAPDocBuffer.CpnyID := CpnyID; + Evaluate(SLAPDocBuffer.DocBal, DocBal); + Evaluate(SLAPDocBuffer.DocDate, DocDate); + SLAPDocBuffer.DocDesc := DocDesc; + Evaluate(SLAPDocBuffer.DueDate, DueDate); + Evaluate(SLAPDocBuffer.InvcDate, InvcDate); + SLAPDocBuffer.InvcNbr := InvcNbr; + Evaluate(SLAPDocBuffer.OpenDoc, OpenDoc); + SLAPDocBuffer.PONbr := PONbr; + Evaluate(SLAPDocBuffer.Rlsed, Rlsed); + SLAPDocBuffer.Status := Status; + SLAPDocBuffer.Terms := Terms; + SLAPDocBuffer.VendId := VendId; + SLAPDocBuffer.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLAPDocBuffer.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLAPDocBuffer: Record "SL APDoc Buffer"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLARDocBufferData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLARDocBufferData.XmlPort.al new file mode 100644 index 0000000000..4f6c99178f --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLARDocBufferData.XmlPort.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.DataMigration.SL; + +xmlport 147631 "SL ARDoc Buffer Data" +{ + Caption = 'SL ARDoc Buffer data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL ARDoc Buffer"; "SL ARDoc Buffer") + { + AutoSave = false; + XmlName = 'SLARDocBuffer'; + + textelement(CustId) + { + } + textelement(DocType) + { + } + textelement(RefNbr) + { + } + textelement(BatNbr) + { + } + textelement(BatSeq) + { + } + textelement(CpnyID) + { + } + textelement(DocBal) + { + } + textelement(DocDate) + { + } + textelement(DocDesc) + { + } + textelement(DueDate) + { + } + textelement(OpenDoc) + { + } + textelement(OrdNbr) + { + } + textelement(Rlsed) + { + } + textelement(SlsperId) + { + } + textelement(Status) + { + } + textelement(Terms) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLARDocBuffer: Record "SL ARDoc Buffer"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLARDocBuffer.CustId := CustId; + SLARDocBuffer.DocType := DocType; + SLARDocBuffer.RefNbr := RefNbr; + SLARDocBuffer.BatNbr := BatNbr; + Evaluate(SLARDocBuffer.BatSeq, BatSeq); + SLARDocBuffer.CpnyID := CpnyID; + Evaluate(SLARDocBuffer.DocBal, DocBal); + Evaluate(SLARDocBuffer.DocDate, DocDate); + SLARDocBuffer.DocDesc := DocDesc; + Evaluate(SLARDocBuffer.DueDate, DueDate); + Evaluate(SLARDocBuffer.OpenDoc, OpenDoc); + SLARDocBuffer.OrdNbr := OrdNbr; + Evaluate(SLARDocBuffer.Rlsed, Rlsed); + SLARDocBuffer.SlsperId := SlsperId; + SLARDocBuffer.Status := Status; + SLARDocBuffer.Terms := Terms; + SLARDocBuffer.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLARDocBuffer.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLARDocBuffer: Record "SL ARDoc Buffer"; +} diff --git a/Apps/W1/HybridSL/test/src/SLAccountMigratorTests.CodeUnit.al b/Apps/W1/HybridSL/test/src/SLAccountMigratorTests.CodeUnit.al index 9e92cbcd97..cc6b6d6814 100644 --- a/Apps/W1/HybridSL/test/src/SLAccountMigratorTests.CodeUnit.al +++ b/Apps/W1/HybridSL/test/src/SLAccountMigratorTests.CodeUnit.al @@ -4,6 +4,7 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.DataMigration.SL; +using Microsoft.Finance.GeneralLedger.Journal; using Microsoft.Foundation.Period; using System.TestLibraries.Utilities; @@ -14,12 +15,14 @@ codeunit 147602 "SL Account Migrator Tests" var Assert: Codeunit "Library Assert"; + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; SLTestHelperFunctions: Codeunit "SL Test Helper Functions"; IsInitialized: Boolean; local procedure Initialize() var AccountingPeriod: Record "Accounting Period"; + SLAccountStaging: Record "SL Account Staging"; SLAcctHist: Record "SL AcctHist"; SLGLSetup: Record "SL GLSetup"; SLPeriodListWorkTable: Record "SL Period List Work Table"; @@ -31,6 +34,7 @@ codeunit 147602 "SL Account Migrator Tests" if IsInitialized then exit; + SLAccountStaging.DeleteAll(); SLAcctHist.DeleteAll(); SLTestHelperFunctions.ImportSLAcctHist(); Commit(); @@ -95,4 +99,71 @@ codeunit 147602 "SL Account Migrator Tests" SLExpectedBCAccountingPeriodData.GetExpectedAccountingPeriods(TempAccountingPeriod); ValidateAccountingPeriods(TempAccountingPeriod); end; + + [Test] + procedure TestAccountBeginningBalance() + var + SLAccountStaging: Record "SL Account Staging"; + TempGenJournalLine: Record "Gen. Journal Line" temporary; + SLAccountMigrator: Codeunit "SL Account Migrator"; + SLFiscalPeriods: Codeunit "SL Fiscal Periods"; + SLPopulateFiscalPeriods: Codeunit "SL Populate Fiscal Periods"; + SLExpectedBCGenJournalLineData: XmlPort "SL BC Gen. Journal Line Data"; + BCGenJournalLineInstream: InStream; + begin + // [Scenario] Account beginning balances should be migrated to BC + + // [Given] SL AcctHist data with beginning balances + Initialize(); + SLTestHelperFunctions.ClearAccountTableData(); + + // Import supporting test data + SLTestHelperFunctions.CreateConfigurationSettings(); + SLTestHelperFunctions.ImportSLFlexDefData(); + SLTestHelperFunctions.ImportSLSegmentsData(); + SLTestHelperFunctions.ImportDimensionData(); + SLTestHelperFunctions.ImportDimensionValueData(); + SLTestHelperFunctions.ImportSLAccountStagingData(); + SLTestHelperFunctions.ImportGLAccountData(); + SLTestHelperFunctions.ImportSLGLSetupData12Periods(); + SLPopulateFiscalPeriods.CreateSLFiscalPeriodsFromGLSetup(); + Commit(); + SLFiscalPeriods.MoveStagingData(); + + // Set Oldest GL Year to Migrate to 2016 + SLCompanyAdditionalSettings.GetSingleInstance(); + SLCompanyAdditionalSettings.Validate("Oldest GL Year to Migrate", 2016); + SLCompanyAdditionalSettings.Validate("Skip Posting Account Batches", true); + SLCompanyAdditionalSettings.Modify(); + + // [When] Migrating SL AcctHist data with beginning balances, create Beginning Balances for G/L Accounts, if applicable + SLAccountStaging.FindSet(); + repeat + SLAccountMigrator.CreateGLAccountBeginningBalance(SLAccountStaging); + until SLAccountStaging.Next() = 0; + + // [Then] Verify Accounts have Beginning Balance transactions in BC + SLTestHelperFunctions.GetInputStreamFromResource('datasets/results/SLBCGenJournalLineBeginningBalance.csv', BCGenJournalLineInstream); + SLExpectedBCGenJournalLineData.SetSource(BCGenJournalLineInstream); + SLExpectedBCGenJournalLineData.Import(); + SLExpectedBCGenJournalLineData.GetExpectedGenJournalLines(TempGenJournalLine); + ValidateAccountBeginningBalanceData(TempGenJournalLine); + end; + + procedure ValidateAccountBeginningBalanceData(var TempGenJournalLine: Record "Gen. Journal Line" temporary) + var + GenJournalLine: Record "Gen. Journal Line"; + begin + TempGenJournalLine.Reset(); + TempGenJournalLine.SetRange("Journal Template Name", 'GENERAL'); + TempGenJournalLine.SetRange("Journal Batch Name", 'SL2016-00'); + TempGenJournalLine.FindSet(); + repeat + Assert.IsTrue(GenJournalLine.Get(TempGenJournalLine."Journal Template Name", TempGenJournalLine."Journal Batch Name", TempGenJournalLine."Line No."), 'Beginning Balance Journal Line does not exist in BC (' + Format(TempGenJournalLine."Line No.") + ')'); + Assert.AreEqual(GenJournalLine."Account No.", TempGenJournalLine."Account No.", 'Account No. does not match for Beginning Balance Journal Line (' + Format(TempGenJournalLine."Line No.") + ')'); + Assert.AreEqual(GenJournalLine.Amount, TempGenJournalLine.Amount, 'Amount does not match for Beginning Balance Journal Line (' + Format(TempGenJournalLine."Line No.") + ')'); + Assert.AreEqual(GenJournalLine."Debit Amount", TempGenJournalLine."Debit Amount", 'Debit Amount does not match for Beginning Balance Journal Line (' + Format(TempGenJournalLine."Line No.") + ')'); + Assert.AreEqual(GenJournalLine."Credit Amount", TempGenJournalLine."Credit Amount", 'Credit Amount does not match for Beginning Balance Journal Line (' + Format(TempGenJournalLine."Line No.") + ')'); + until TempGenJournalLine.Next() = 0; + end; } \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLAccountStagingData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLAccountStagingData.XmlPort.al new file mode 100644 index 0000000000..7ffcc12121 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLAccountStagingData.XmlPort.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.DataMigration.SL; + +xmlport 147622 "SL Account Staging Data" +{ + Caption = 'SL Account Staging data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL Account Staging"; "SL Account Staging") + { + AutoSave = false; + XmlName = 'SLAccountStaging'; + + textelement("AccountNumber") + { + } + textelement("Name") + { + } + textelement("SearchName") + { + } + textelement("AccountCategory") + { + } + textelement("IncomeBalance") + { + } + textelement("DebitCredit") + { + } + textelement("Active") + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLAccountStaging.AcctNum := AccountNumber; + SLAccountStaging.Name := Name; + SLAccountStaging.SearchName := SearchName; + Evaluate(SLAccountStaging.AccountCategory, AccountCategory); + Evaluate(SLAccountStaging.IncomeBalance, IncomeBalance); + Evaluate(SLAccountStaging.DebitCredit, DebitCredit); + Evaluate(SLAccountStaging.Active, Active); + SLAccountStaging.Insert(false); + end; + } + } + } + + trigger OnPreXmlPort() + begin + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLAccountStaging: Record "SL Account Staging"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLBCDimensionData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCDimensionData.XmlPort.al new file mode 100644 index 0000000000..c036000d9a --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLBCDimensionData.XmlPort.al @@ -0,0 +1,75 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +using Microsoft.Finance.Dimension; + +xmlport 147628 "SL BC Dimension Data" +{ + Caption = 'BC Dimension data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("Dimension"; Dimension) + { + AutoSave = false; + XmlName = 'Dimension'; + + textelement(Code) + { + } + textelement(Name) + { + } + textelement(CodeCaption) + { + } + textelement(FilterCaption) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + Dimension: Record Dimension; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + Dimension.Code := Code; + Dimension.Name := Name; + Dimension."Code Caption" := CodeCaption; + Dimension."Filter Caption" := FilterCaption; + Dimension.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + DimensionRec.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + DimensionRec: Record Dimension; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLBCDimensionValueData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCDimensionValueData.XmlPort.al new file mode 100644 index 0000000000..1ede4969a0 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLBCDimensionValueData.XmlPort.al @@ -0,0 +1,79 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +using Microsoft.Finance.Dimension; + +xmlport 147629 "SL BC Dimension Value Data" +{ + Caption = 'BC Dimension Value data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("Dimension Value"; "Dimension Value") + { + AutoSave = false; + XmlName = 'DimensionValue'; + + textelement(DimensionCode) + { + } + textelement(Code) + { + } + textelement(Name) + { + } + textelement(Indentation) + { + } + textelement(GlobalDimensionNo) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + DimensionValue: Record "Dimension Value"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + DimensionValue."Dimension Code" := DimensionCode; + DimensionValue.Code := Code; + DimensionValue.Name := Name; + Evaluate(DimensionValue.Indentation, Indentation); + Evaluate(DimensionValue."Global Dimension No.", GlobalDimensionNo); + DimensionValue.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + DimensionValue.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + DimensionValue: Record "Dimension Value"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLBCGLAccountData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCGLAccountData.XmlPort.al index d05bda4d89..16fcc7524d 100644 --- a/Apps/W1/HybridSL/test/src/SLBCGLAccountData.XmlPort.al +++ b/Apps/W1/HybridSL/test/src/SLBCGLAccountData.XmlPort.al @@ -81,11 +81,20 @@ xmlport 147602 "SL BC GL Account Data" trigger OnPreXmlPort() begin - GLAccount.DeleteAll(); CaptionRow := true; end; + procedure GetExpectedGLAccounts(var NewTempGLAccount: Record "G/L Account" temporary) + begin + if TempGLAccount.FindSet() then begin + repeat + NewTempGLAccount.Copy(TempGLAccount); + NewTempGLAccount.Insert(); + until TempGLAccount.Next() = 0; + end; + end; + var CaptionRow: Boolean; - GLAccount: Record "G/L Account"; + TempGLAccount: Record "G/L Account" temporary; } diff --git a/Apps/W1/HybridSL/test/src/SLBCGenJournalLineData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCGenJournalLineData.XmlPort.al new file mode 100644 index 0000000000..efcfc8d816 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLBCGenJournalLineData.XmlPort.al @@ -0,0 +1,185 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +using Microsoft.Finance.GeneralLedger.Journal; + +xmlport 147630 "SL BC Gen. Journal Line Data" +{ + Caption = 'BC Gen. Journal Line data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("Gen. Journal Line"; "Gen. Journal Line") + { + AutoSave = false; + XmlName = 'GenJournalLine'; + UseTemporary = true; + + textelement(JournalTemplateName) + { + } + textelement(JournalBatchName) + { + } + textelement(LineNo) + { + } + textelement(AccountType) + { + } + textelement(AccountNo) + { + } + textelement(PostingDate) + { + } + textelement(DocumentType) + { + } + textelement(DocumentNo) + { + } + textelement(Description) + { + } + textelement(BalAccountNo) + { + } + textelement(Amount) + { + } + textelement(DebitAmount) + { + } + textelement(CreditAmount) + { + } + textelement(PostingGroup) + { + } + textelement(ShortcutDimension1Code) + { + } + textelement(ShortcutDimension2Code) + { + } + textelement(DueDate) + { + } + textelement(PmtDiscountDate) + { + } + textelement(PaymentDiscountPercent) + { + } + textelement(Quantity) + { + } + textelement(GenBusPostingGroup) + { + } + textelement(GenProdPostingGroup) + { + } + textelement(BalAccountType) + { + } + textelement(DocumentDate) + { + } + textelement(ExternalDocumentNo) + { + } + textelement(TaxAreaCode) + { + } + textelement(TaxLiable) + { + } + textelement(DimensionSetID) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + TempGenJournalLine."Journal Template Name" := JournalTemplateName; + TempGenJournalLine."Journal Batch Name" := JournalBatchName; + Evaluate(TempGenJournalLine."Line No.", LineNo); + Evaluate(TempGenJournalLine."Account Type", AccountType); + TempGenJournalLine."Account No." := AccountNo; + Evaluate(TempGenJournalLine."Posting Date", PostingDate); + if DocumentType <> '' then + Evaluate(TempGenJournalLine."Document Type", DocumentType); + TempGenJournalLine."Document No." := DocumentNo; + TempGenJournalLine.Description := Description; + TempGenJournalLine."Bal. Account No." := BalAccountNo; + Evaluate(TempGenJournalLine.Amount, Amount); + Evaluate(TempGenJournalLine."Debit Amount", DebitAmount); + Evaluate(TempGenJournalLine."Credit Amount", CreditAmount); + TempGenJournalLine."Posting Group" := PostingGroup; + TempGenJournalLine."Shortcut Dimension 1 Code" := ShortcutDimension1Code; + TempGenJournalLine."Shortcut Dimension 2 Code" := ShortcutDimension2Code; + if DueDate <> '' then + Evaluate(TempGenJournalLine."Due Date", DueDate); + if PmtDiscountDate <> '' then + Evaluate(TempGenJournalLine."Pmt. Discount Date", PmtDiscountDate); + Evaluate(TempGenJournalLine."Payment Discount %", PaymentDiscountPercent); + Evaluate(TempGenJournalLine.Quantity, Quantity); + TempGenJournalLine."Gen. Bus. Posting Group" := GenBusPostingGroup; + TempGenJournalLine."Gen. Prod. Posting Group" := GenProdPostingGroup; + if BalAccountType <> '' then + Evaluate(TempGenJournalLine."Bal. Account Type", BalAccountType); + if DocumentDate <> '' then + Evaluate(TempGenJournalLine."Document Date", DocumentDate); + TempGenJournalLine."External Document No." := ExternalDocumentNo; + TempGenJournalLine."Tax Area Code" := TaxAreaCode; + Evaluate(TempGenJournalLine."Tax Liable", TaxLiable); + if DimensionSetID <> '' then + Evaluate(TempGenJournalLine."Dimension Set ID", DimensionSetID); + TempGenJournalLine.Insert(false); + end; + } + } + } + + trigger OnPreXmlPort() + begin + CaptionRow := true; + end; + + procedure GetExpectedGenJournalLines(var NewTempGenJournalLine: Record "Gen. Journal Line" temporary) + begin + if TempGenJournalLine.FindSet() then begin + repeat + NewTempGenJournalLine.Copy(TempGenJournalLine); + NewTempGenJournalLine.Insert(); + until TempGenJournalLine.Next() = 0; + end; + end; + + var + CaptionRow: Boolean; + TempGenJournalLine: Record "Gen. Journal Line" temporary; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLBatchData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBatchData.XmlPort.al new file mode 100644 index 0000000000..d219a2e4d6 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLBatchData.XmlPort.al @@ -0,0 +1,89 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +xmlport 147632 "SL Batch Data" +{ + Caption = 'SL Batch data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL Batch"; "SL Batch") + { + AutoSave = false; + XmlName = 'SLBatch'; + + textelement(Module) + { + } + textelement(BatNbr) + { + } + textelement(Acct) + { + } + textelement(CpnyID) + { + } + textelement(JrnlType) + { + } + textelement(LedgerID) + { + } + textelement(Rlsed) + { + } + textelement(Status) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLBatch: Record "SL Batch"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLBatch.Module := Module; + SLBatch.BatNbr := BatNbr; + SLBatch.Acct := Acct; + SLBatch.CpnyID := CpnyID; + SLBatch.JrnlType := JrnlType; + SLBatch.LedgerID := LedgerID; + Evaluate(SLBatch.Rlsed, Rlsed); + SLBatch.Status := Status; + SLBatch.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLBatch.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLBatch: Record "SL Batch"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLCustomerMigratorTests.CodeUnit.al b/Apps/W1/HybridSL/test/src/SLCustomerMigratorTests.CodeUnit.al index 5cde27b234..934c301236 100644 --- a/Apps/W1/HybridSL/test/src/SLCustomerMigratorTests.CodeUnit.al +++ b/Apps/W1/HybridSL/test/src/SLCustomerMigratorTests.CodeUnit.al @@ -4,6 +4,7 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.DataMigration.SL; +using Microsoft.Finance.GeneralLedger.Journal; using Microsoft.Foundation.Address; using Microsoft.Foundation.Shipping; using Microsoft.Sales.Customer; @@ -37,7 +38,10 @@ codeunit 147600 "SL Customer Migrator Tests" // [Given] SL data Initialize(); + SLTestHelperFunctions.ClearAccountTableData(); SLTestHelperFunctions.CreateConfigurationSettings(); + SLTestHelperFunctions.ImportGLAccountData(); + Commit(); // Enable Receivables Module and Customer classes settings SLCompanyAdditionalSettings.GetSingleInstance(); @@ -46,8 +50,7 @@ codeunit 147600 "SL Customer Migrator Tests" SLCompanyAdditionalSettings.Modify(); // [When] Customer data is imported - SLTestHelperFunctions.GetInputStreamFromResource('datasets/input/SLTables/SLCustomerWithClassID.csv', SLCustomerInstream); - PopulateCustomerBufferTable(SLCustomerInstream); + SLTestHelperFunctions.ImportSLCustomerData(); // Run Customer related migration procedures SLCustomer.FindSet(); @@ -80,8 +83,10 @@ codeunit 147600 "SL Customer Migrator Tests" // [Given] SL data Initialize(); SLTestHelperFunctions.ClearBCCustomerTableData(); - SLTestHelperFunctions.DeleteAllSettings(); + SLTestHelperFunctions.ClearAccountTableData(); SLTestHelperFunctions.CreateConfigurationSettings(); + SLTestHelperFunctions.ImportGLAccountData(); + Commit(); // Enable Receivables module and disable Customer Class setting SLCompanyAdditionalSettings.GetSingleInstance(); @@ -91,8 +96,7 @@ codeunit 147600 "SL Customer Migrator Tests" Commit(); // [When] Customer data is imported - SLTestHelperFunctions.GetInputStreamFromResource('datasets/input/SLTables/SLCustomerWithClassID.csv', SLCustomerInstream); - PopulateCustomerBufferTable(SLCustomerInstream); + SLTestHelperFunctions.ImportSLCustomerData(); // Run Customer related migration procedures SLCustomer.FindSet(); @@ -125,8 +129,10 @@ codeunit 147600 "SL Customer Migrator Tests" // [Given] SL data Initialize(); SLTestHelperFunctions.ClearBCCustomerTableData(); - SLTestHelperFunctions.DeleteAllSettings(); + SLTestHelperFunctions.ClearAccountTableData(); SLTestHelperFunctions.CreateConfigurationSettings(); + SLTestHelperFunctions.ImportGLAccountData(); + Commit(); // Select Receivables module and Inactive Customer options SLCompanyAdditionalSettings.GetSingleInstance(); @@ -136,8 +142,7 @@ codeunit 147600 "SL Customer Migrator Tests" Commit(); // [When] Customer data is imported - SLTestHelperFunctions.GetInputStreamFromResource('datasets/input/SLTables/SLCustomerWithClassID.csv', SLCustomerInstream); - PopulateCustomerBufferTable(SLCustomerInstream); + SLTestHelperFunctions.ImportSLCustomerData(); // Run Customer related migration procedures SLCustomer.FindSet(); @@ -181,8 +186,7 @@ codeunit 147600 "SL Customer Migrator Tests" Commit(); // [When] Customer data is imported - SLTestHelperFunctions.GetInputStreamFromResource('datasets/input/SLTables/SLCustomerWithClassID.csv', SLCustomerInstream); - PopulateCustomerBufferTable(SLCustomerInstream); + SLTestHelperFunctions.ImportSLCustomerData(); // Run Customer related migration procedures SLCustomer.FindSet(); @@ -199,12 +203,6 @@ codeunit 147600 "SL Customer Migrator Tests" ValidateCustomerData(TempCustomer); end; - local procedure PopulateCustomerBufferTable(var Instream: InStream) - begin - // Populate Customer buffer table - Xmlport.Import(Xmlport::"SL Customer Data", Instream); - end; - local procedure ValidateCustomerData(var TempCustomer: Record Customer temporary) var Customer: Record Customer; @@ -224,7 +222,6 @@ codeunit 147600 "SL Customer Migrator Tests" Assert.AreEqual(TempCustomer."Territory Code", Customer."Territory Code", 'Customer Territory Code does not match' + ' (Customer: ' + Customer."No." + ')'); Assert.AreEqual(TempCustomer."Credit Limit (LCY)", Customer."Credit Limit (LCY)", 'Customer Credit Limit does not match' + ' (Customer: ' + Customer."No." + ')'); Assert.AreEqual(TempCustomer."Customer Posting Group", Customer."Customer Posting Group", 'Customer Posting Group does not match' + ' (Customer: ' + Customer."No." + ')'); - Assert.AreEqual(TempCustomer."Payment Terms Code", Customer."Payment Terms Code", 'Customer Payment Terms Code does not match' + ' (Customer: ' + Customer."No." + ')'); Assert.AreEqual(TempCustomer."Salesperson Code", Customer."Salesperson Code", 'Customer Salesperson Code does not match' + ' (Customer: ' + Customer."No." + ')'); Assert.AreEqual(TempCustomer."Post Code", Customer."Post Code", 'Customer Post Code does not match' + ' (Customer: ' + Customer."No." + ')'); Assert.AreEqual(TempCustomer."Country/Region Code", Customer."Country/Region Code", 'Customer Country/Region Code does not match' + ' (Customer: ' + Customer."No." + ')'); @@ -236,32 +233,99 @@ codeunit 147600 "SL Customer Migrator Tests" until TempCustomer.Next() = 0; end; + [Test] + procedure TestCustomerTransactions() + var + SLCustomer: Record "SL Customer"; + TempGenJournalLine: Record "Gen. Journal Line" temporary; + CustomerDataMigrationFacade: Codeunit "Customer Data Migration Facade"; + SLCustomerMigrator: Codeunit "SL Customer Migrator"; + SLExpectedBCGenJournalLineData: XmlPort "SL BC Gen. Journal Line Data"; + BCGenJournalLineInstream: InStream; + begin + IsInitialized := false; + // [Scenario] Open Customer balances should be migrated to BC + Initialize(); + SLTestHelperFunctions.ClearAccountTableData(); + + // [Given] SL ARDoc data + SLTestHelperFunctions.ImportSLARDocBufferData(); + + // Import supporting test data + SLTestHelperFunctions.CreateConfigurationSettings(); + SLTestHelperFunctions.ImportSLBatchData(); + SLTestHelperFunctions.ImportGLAccountData(); + Commit(); + + // Set Congfiguration Settings for AR Module + SLCompanyAdditionalSettings.GetSingleInstance(); + SLCompanyAdditionalSettings.Validate("Migrate GL Module", true); + SLCompanyAdditionalSettings.Validate("Migrate Receivables Module", true); + SLCompanyAdditionalSettings.Validate("Migrate Customer Classes", true); + SLCompanyAdditionalSettings.Validate("Skip Posting Customer Batches", true); + SLCompanyAdditionalSettings.Modify(); + + // [When] Migrating open Customer balances, create general journal entries + // Run Migrate Customer Transactions + SLCustomer.FindSet(); + repeat + SLCustomerMigrator.MigrateCustomer(CustomerDataMigrationFacade, SLCustomer.RecordId); + SLCustomerMigrator.MigrateCustomerPostingGroups(CustomerDataMigrationFacade, SLCustomer.RecordId, true); + SLCustomerMigrator.MigrateCustomerTransactions(CustomerDataMigrationFacade, SLCustomer.RecordId, true); + until SLCustomer.Next() = 0; + + // [Then] Verify Customer open balance data + SLTestHelperFunctions.GetInputStreamFromResource('datasets/results/SLBCGenJournalLineOpenAR.csv', BCGenJournalLineInstream); + SLExpectedBCGenJournalLineData.SetSource(BCGenJournalLineInstream); + SLExpectedBCGenJournalLineData.Import(); + SLExpectedBCGenJournalLineData.GetExpectedGenJournalLines(TempGenJournalLine); + ValidateCustomerOpenBalanceData(TempGenJournalLine); + end; + + procedure ValidateCustomerOpenBalanceData(var TempGenJournalLine: Record "Gen. Journal Line" temporary) + var + GenJournalLine: Record "Gen. Journal Line"; + begin + TempGenJournalLine.Reset(); + TempGenJournalLine.SetRange("Journal Template Name", 'GENERAL'); + TempGenJournalLine.SetRange("Journal Batch Name", 'SLCUST'); + TempGenJournalLine.FindSet(); + repeat + Assert.IsTrue(GenJournalLine.Get(TempGenJournalLine."Journal Template Name", TempGenJournalLine."Journal Batch Name", TempGenJournalLine."Line No."), 'Open AR Journal Line does not exist in BC (' + Format(TempGenJournalLine."Line No.") + ')'); + Assert.AreEqual(GenJournalLine."Account No.", TempGenJournalLine."Account No.", 'Account No. does not match for Open AR Journal Line (' + Format(TempGenJournalLine."Line No.") + ')'); + Assert.AreEqual(GenJournalLine.Amount, TempGenJournalLine.Amount, 'Amount does not match for Open AR Journal Line (' + Format(TempGenJournalLine."Line No.") + ')'); + Assert.AreEqual(GenJournalLine."Debit Amount", TempGenJournalLine."Debit Amount", 'Debit Amount does not match for Open AR Journal Line (' + Format(TempGenJournalLine."Line No.") + ')'); + Assert.AreEqual(GenJournalLine."Credit Amount", TempGenJournalLine."Credit Amount", 'Credit Amount does not match for Open AR Journal Line (' + Format(TempGenJournalLine."Line No.") + ')'); + until TempGenJournalLine.Next() = 0; + end; + local procedure Initialize() var + GenJournalLine: Record "Gen. Journal Line"; ShipmentMethod: Record "Shipment Method"; SLCustomer: Record "SL Customer"; SLCustClass: Record "SL CustClass"; ZipCode: Record "Post Code"; - begin // Delete/empty buffer tables - SLCustomer.DeleteAll(); - SLCustClass.DeleteAll(); + GenJournalLine.DeleteAll(true); + SLCustomer.DeleteAll(true); + SLCustClass.DeleteAll(true); if IsInitialized then exit; - ShipmentMethod.DeleteAll(); - ZipCode.DeleteAll(); + ShipmentMethod.DeleteAll(true); + ZipCode.DeleteAll(true); // Import supporting data SLTestHelperFunctions.ImportDataMigrationStatus(); - SLTestHelperFunctions.ImportGLAccountData(); SLTestHelperFunctions.ImportGenBusinessPostingGroupData(); SLTestHelperFunctions.ImportSLARSetupData(); SLTestHelperFunctions.ImportSLSalesTaxData(); SLTestHelperFunctions.ImportSLSOAddressData(); SLTestHelperFunctions.ImportSLCustClassData(); + SLTestHelperFunctions.ImportSLCustomerData(); Commit(); IsInitialized := true; end; diff --git a/Apps/W1/HybridSL/test/src/SLFlexDefData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLFlexDefData.XmlPort.al new file mode 100644 index 0000000000..8182ba6ea8 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLFlexDefData.XmlPort.al @@ -0,0 +1,133 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +xmlport 147627 "SL FlexDef Data" +{ + Caption = 'SL FlexDef data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL FlexDef"; "SL FlexDef") + { + AutoSave = false; + XmlName = 'SLFlexDef'; + + textelement(FieldClassName) + { + } + textelement(Caption) + { + } + textelement(Descr00) + { + } + textelement(Descr01) + { + } + textelement(Descr02) + { + } + textelement(Descr03) + { + } + textelement(Descr04) + { + } + textelement(Descr05) + { + } + textelement(Descr06) + { + } + textelement(Descr07) + { + } + textelement(NumberSegments) + { + } + textelement(SegLength00) + { + } + textelement(SegLength01) + { + } + textelement(SegLength02) + { + } + textelement(SegLength03) + { + } + textelement(SegLength04) + { + } + textelement(SegLength05) + { + } + textelement(SegLength06) + { + } + textelement(SegLength07) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLFlexDef: Record "SL FlexDef"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLFlexDef.FieldClassName := FieldClassName; + SLFlexDef.Caption := Caption; + SLFlexDef.Descr00 := Descr00; + SLFlexDef.Descr01 := Descr01; + SLFlexDef.Descr02 := Descr02; + SLFlexDef.Descr03 := Descr03; + SLFlexDef.Descr04 := Descr04; + SLFlexDef.Descr05 := Descr05; + SLFlexDef.Descr06 := Descr06; + SLFlexDef.Descr07 := Descr07; + Evaluate(SLFlexDef.NumberSegments, NumberSegments); + Evaluate(SLFlexDef.SegLength00, SegLength00); + Evaluate(SLFlexDef.SegLength01, SegLength01); + Evaluate(SLFlexDef.SegLength02, SegLength02); + Evaluate(SLFlexDef.SegLength03, SegLength03); + Evaluate(SLFlexDef.SegLength04, SegLength04); + Evaluate(SLFlexDef.SegLength05, SegLength05); + Evaluate(SLFlexDef.SegLength06, SegLength06); + Evaluate(SLFlexDef.SegLength07, SegLength07); + SLFlexDef.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLFlexDef.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLFlexDef: Record "SL FlexDef"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLGLSetupData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLGLSetupData.XmlPort.al index 7c004446ab..538d86c80f 100644 --- a/Apps/W1/HybridSL/test/src/SLGLSetupData.XmlPort.al +++ b/Apps/W1/HybridSL/test/src/SLGLSetupData.XmlPort.al @@ -72,6 +72,9 @@ xmlport 147609 "SL GLSetup Data" textelement(FiscalPerEnd12) { } + textelement(LedgerID) + { + } textelement(NbrPer) { } @@ -113,6 +116,7 @@ xmlport 147609 "SL GLSetup Data" SLGLSetup.FiscalPerEnd10 := FiscalPerEnd10; SLGLSetup.FiscalPerEnd11 := FiscalPerEnd11; SLGLSetup.FiscalPerEnd12 := FiscalPerEnd12; + SLGLSetup.LedgerID := LedgerID; Evaluate(SLGLSetup.NbrPer, NbrPer); Evaluate(SLGLSetup.PerNbr, PerNbr); SLGLSetup.Insert(true); diff --git a/Apps/W1/HybridSL/test/src/SLSegments.XmlPort.al b/Apps/W1/HybridSL/test/src/SLSegments.XmlPort.al new file mode 100644 index 0000000000..3f301eb7b4 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLSegments.XmlPort.al @@ -0,0 +1,87 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +xmlport 147625 "SL Segments" +{ + Caption = 'SL Segments data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL Segments"; "SL Segments") + { + AutoSave = false; + XmlName = 'SLSegment'; + + textelement(Id) + { + } + textelement(Name) + { + } + textelement("CodeCaption") + { + } + textelement("FilterCaption") + { + } + textelement("SegmentNumber") + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLSegments: Record "SL Segments"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLSegments.Id := Id; + SLSegments.Name := Name; + SLSegments.CodeCaption := CodeCaption; + SLSegments.FilterCaption := FilterCaption; + Evaluate(SLSegments.SegmentNumber, SegmentNumber); + SLSegments.Insert(false); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLSegments.DeleteAll(); + CaptionRow := true; + end; + + // procedure GetExpectedSLSegments(var NewTempSLSegment: Record "SL Segment" temporary) + // begin + // if TempSLSegment.FindSet() then begin + // repeat + // NewTempSLSegment.Copy(TempSLSegment); + // NewTempSLSegment.Insert(); + // until TempSLSegment.Next() = 0; + // end; + // end; + + var + CaptionRow: Boolean; + SLSegments: Record "SL Segments"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLTestHelperFunctions.CodeUnit.al b/Apps/W1/HybridSL/test/src/SLTestHelperFunctions.CodeUnit.al index 28b1837900..7ba767294b 100644 --- a/Apps/W1/HybridSL/test/src/SLTestHelperFunctions.CodeUnit.al +++ b/Apps/W1/HybridSL/test/src/SLTestHelperFunctions.CodeUnit.al @@ -4,12 +4,20 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.DataMigration.SL; +using Microsoft.Finance.GeneralLedger.Account; using Microsoft.Inventory.Item; using Microsoft.Purchases.Vendor; using Microsoft.Sales.Customer; codeunit 147601 "SL Test Helper Functions" { + procedure ClearAccountTableData() + var + GLAccount: Record "G/L Account"; + begin + GLAccount.DeleteAll(); + end; + procedure ClearBCCustomerTableData() var Customer: Record Customer; @@ -72,11 +80,27 @@ codeunit 147601 "SL Test Helper Functions" PopulateDataMigrationStatusTable(DataMigrationStatusInstream); end; + procedure ImportDimensionData() + var + DimensionInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLBCDimension.csv', DimensionInstream); + PopulateDimensionTable(DimensionInstream); + end; + + procedure ImportDimensionValueData() + var + DimensionValueInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLBCDimensionValue.csv', DimensionValueInstream); + PopulateDimensionValueTable(DimensionValueInstream); + end; + procedure ImportGLAccountData() var GLAccountInstream: InStream; begin - GetInputStreamFromResource('datasets/input/SLGLChartOfAccounts.csv', GLAccountInstream); + GetInputStreamFromResource('datasets/input/SLBCGLAccounts.csv', GLAccountInstream); PopulateGLAccountTable(GLAccountInstream); end; @@ -104,14 +128,30 @@ codeunit 147601 "SL Test Helper Functions" PopulateItemTrackingCodeTable(ItemTrackingCodeInstream); end; + procedure ImportSLAccountStagingData() + var + SLAccountStagingInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLAccountStagingWithInactiveAccount.csv', SLAccountStagingInstream); + PopulateSLAccountStagingTable(SLAccountStagingInstream); + end; + procedure ImportSLAcctHist() var SLAcctHistInstream: InStream; begin - GetInputStreamFromResource('datasets/input/SLTables/SLAcctHistDataForAccountingPeriodTest.csv', SLAcctHistInstream); + GetInputStreamFromResource('datasets/input/SLTables/SLAcctHistWithBeginningBalances.csv', SLAcctHistInstream); PopulateSLAcctHistTable(SLAcctHistInstream); end; + procedure ImportSLAPDocBufferData() + var + SLAPDocBufferInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLAPDocBuffer.csv', SLAPDocBufferInstream); + PopulateSLAPDocBufferTable(SLAPDocBufferInstream); + end; + procedure ImportSLAPSetupData() var SLAPSetupInstream: InStream; @@ -120,6 +160,14 @@ codeunit 147601 "SL Test Helper Functions" PopulateSLAPSetupTable(SLAPSetupInstream); end; + procedure ImportSLARDocBufferData() + var + SLARDocBufferInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLARDocBuffer.csv', SLARDocBufferInstream); + PopulateSLARDocBufferTable(SLARDocBufferInstream); + end; + procedure ImportSLARSetupData() var SLARSetupInstream: InStream; @@ -128,12 +176,12 @@ codeunit 147601 "SL Test Helper Functions" PopulateSLARSetupTable(SLARSetupInstream); end; - procedure ImportSLCompanyAdditionalSettingsData() + procedure ImportSLBatchData() var - SLCompanyAdditionalSettingsInstream: InStream; + SLBatchInstream: InStream; begin - GetInputStreamFromResource('datasets/input/SLCompanyAdditonalSettingsDefault.csv', SLCompanyAdditionalSettingsInstream); - PopulateSLCompanyAdditionalSettingsTable(SLCompanyAdditionalSettingsInstream); + GetInputStreamFromResource('datasets/input/SLTables/SLBatch.csv', SLBatchInstream); + PopulateSLBatchTable(SLBatchInstream); end; procedure ImportSLCustClassData() @@ -144,6 +192,21 @@ codeunit 147601 "SL Test Helper Functions" PopulateSLCustClassTable(SLCustClassInstream); end; + procedure ImportSLCustomerData() + var + SLCustomerInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLCustomerWithClassID.csv', SLCustomerInstream); + PopulateSLCustomerTable(SLCustomerInstream); + end; + + procedure ImportSLFlexDefData() + var + SLFlexDefInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLFlexDef.csv', SLFlexDefInstream); + PopulateSLFlexDefTable(SLFlexDefInstream); + end; procedure ImportSLGLSetupData12Periods() var @@ -177,7 +240,6 @@ codeunit 147601 "SL Test Helper Functions" PopulateSLProductClassTable(SLProductClassInstream); end; - procedure ImportSLSalesTaxData() var SLSalesTaxInstream: InStream; @@ -186,6 +248,14 @@ codeunit 147601 "SL Test Helper Functions" PopulateSLSalesTaxTable(SLSalesTaxInstream); end; + procedure ImportSLSegmentsData() + var + SLSegmentsInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLSegments.csv', SLSegmentsInstream); + PopulateSLSegmentsTable(SLSegmentsInstream); + end; + procedure ImportSLSOAddressData() var SLSOAddressInstream: InStream; @@ -202,12 +272,38 @@ codeunit 147601 "SL Test Helper Functions" PopulateSLVendClassTable(SLVendClassInstream); end; + procedure ImportSLVendorData() + var + SLVendorInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLVendorWithClassID.csv', SLVendorInstream); + PopulateSLVendorTable(SLVendorInstream); + end; + + procedure PopulateSLCustomerTable(var Instream: InStream) + begin + // Populate Customer buffer table + Xmlport.Import(Xmlport::"SL Customer Data", Instream); + end; + procedure PopulateDataMigrationStatusTable(var Instream: InStream) begin // Populate Data Migration Status table Xmlport.Import(Xmlport::"SL BC Data Migration Status", Instream); end; + procedure PopulateDimensionTable(var Instream: InStream) + begin + // Populate Dimension table + Xmlport.Import(Xmlport::"SL BC Dimension Data", Instream); + end; + + procedure PopulateDimensionValueTable(var Instream: InStream) + begin + // Populate Dimension Value table + Xmlport.Import(Xmlport::"SL BC Dimension Value Data", Instream); + end; + procedure PopulateGLAccountTable(var Instream: InStream) begin // Populate G/L Account table @@ -232,28 +328,46 @@ codeunit 147601 "SL Test Helper Functions" Xmlport.Import(Xmlport::"SL BC Item Tracking Code Data", Instream); end; + procedure PopulateSLAccountStagingTable(var Instream: InStream) + begin + // Populate SL Account Staging table + Xmlport.Import(Xmlport::"SL Account Staging Data", Instream); + end; + procedure PopulateSLAcctHistTable(var Instream: InStream) begin // Populate SL AcctHist table Xmlport.Import(Xmlport::"SL AcctHist Data", Instream); end; + procedure PopulateSLAPDocBufferTable(var Instream: InStream) + begin + // Populate SL APDoc Buffer table + Xmlport.Import(Xmlport::"SL APDoc Buffer Data", Instream); + end; + procedure PopulateSLAPSetupTable(var Instream: InStream) begin // Populate SL APSetup table Xmlport.Import(Xmlport::"SL APSetup Data", Instream); end; + procedure PopulateSLARDocBufferTable(var Instream: InStream) + begin + // Populate SL ARDoc Buffer table + Xmlport.Import(Xmlport::"SL ARDoc Buffer Data", Instream); + end; + procedure PopulateSLARSetupTable(var Instream: InStream) begin // Populate SL ARSetup table Xmlport.Import(Xmlport::"SL ARSetup Data", Instream); end; - procedure PopulateSLCompanyAdditionalSettingsTable(var Instream: InStream) + procedure PopulateSLBatchTable(var Instream: InStream) begin - // Populate SL Company Additional Settings table - Xmlport.Import(Xmlport::"SL Company Additional Settings", Instream); + // Populate SL Batch table + Xmlport.Import(Xmlport::"SL Batch Data", Instream); end; procedure PopulateSLCustClassTable(var Instream: InStream) @@ -262,6 +376,12 @@ codeunit 147601 "SL Test Helper Functions" Xmlport.Import(Xmlport::"SL CustClass Data", Instream); end; + procedure PopulateSLFlexDefTable(var Instream: InStream) + begin + // Populate SL FlexDef table + Xmlport.Import(Xmlport::"SL FlexDef Data", Instream); + end; + procedure PopulateSLGLSetupTable(var Instream: InStream) begin // Populate SL GLSetup table @@ -286,6 +406,12 @@ codeunit 147601 "SL Test Helper Functions" Xmlport.Import(Xmlport::"SL SalesTax Data", Instream); end; + procedure PopulateSLSegmentsTable(var Instream: InStream) + begin + // Populate SL Segments table + Xmlport.Import(Xmlport::"SL Segments", Instream); + end; + procedure PopulateSLSOAddressTable(var Instream: InStream) begin // Populate SL SOAddress table @@ -297,4 +423,10 @@ codeunit 147601 "SL Test Helper Functions" // Populate SL VendClass table Xmlport.Import(Xmlport::"SL VendClass Data", Instream); end; + + procedure PopulateSLVendorTable(var Instream: InStream) + begin + // Populate Vendor buffer table + Xmlport.Import(Xmlport::"SL Vendor Data", Instream); + end; } diff --git a/Apps/W1/HybridSL/test/src/SLVendorMigratorTests.CodeUnit.al b/Apps/W1/HybridSL/test/src/SLVendorMigratorTests.CodeUnit.al index 93f3c85734..1ff915062c 100644 --- a/Apps/W1/HybridSL/test/src/SLVendorMigratorTests.CodeUnit.al +++ b/Apps/W1/HybridSL/test/src/SLVendorMigratorTests.CodeUnit.al @@ -4,6 +4,7 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.DataMigration.SL; +using Microsoft.Finance.GeneralLedger.Journal; using Microsoft.Foundation.Address; using Microsoft.Purchases.Vendor; using System.Integration; @@ -33,23 +34,26 @@ codeunit 147603 "SL Vendor Migrator Tests" BCVendorInstream: InStream; begin // [Scenario] Vendor Class migration is turned on - - // [Given] SL data Initialize(); - SLTestHelperFunctions.ClearBCVendorTableData(); + SLTestHelperFunctions.ClearAccountTableData(); SLTestHelperFunctions.DeleteAllSettings(); SLTestHelperFunctions.CreateConfigurationSettings(); + // [Given] SL Vendor data + SLTestHelperFunctions.ImportSLVendorData(); + + // Import supporting test data + SLTestHelperFunctions.CreateConfigurationSettings(); + SLTestHelperFunctions.ImportGLAccountData(); + Commit(); + // Enable Payables Module and Vendor classes settings SLCompanyAdditionalSettings.GetSingleInstance(); SLCompanyAdditionalSettings.Validate("Migrate Payables Module", true); SLCompanyAdditionalSettings.Validate("Migrate Vendor Classes", true); SLCompanyAdditionalSettings.Modify(); - // [When] Vendor data is imported - SLTestHelperFunctions.GetInputStreamFromResource('datasets/input/SLTables/SLVendorWithClassID.csv', SLVendorInstream); - PopulateVendorBufferTable(SLVendorInstream); - + // [When] Migrate Vendor Classes is enabled, migrate SL Vendor Classes to BC Vendor Posting Groups // Run Vendor related migration procedures SLVendor.FindSet(); repeat @@ -91,8 +95,7 @@ codeunit 147603 "SL Vendor Migrator Tests" SLCompanyAdditionalSettings.Modify(); // [When] Vendor data is imported - SLTestHelperFunctions.GetInputStreamFromResource('datasets/input/SLTables/SLVendorWithClassID.csv', SLVendorInstream); - PopulateVendorBufferTable(SLVendorInstream); + SLTestHelperFunctions.ImportSLVendorData(); // Run Vendor related migration procedures SLVendor.FindSet(); @@ -136,8 +139,7 @@ codeunit 147603 "SL Vendor Migrator Tests" Commit(); // [When] Vendor data is imported - SLTestHelperFunctions.GetInputStreamFromResource('datasets/input/SLTables/SLVendorWithClassID.csv', SLVendorInstream); - PopulateVendorBufferTable(SLVendorInstream); + SLTestHelperFunctions.ImportSLVendorData(); // Run Vendor related migration procedures SLVendor.FindSet(); @@ -170,7 +172,6 @@ codeunit 147603 "SL Vendor Migrator Tests" // [Given] SL data Initialize(); SLTestHelperFunctions.ClearBCVendorTableData(); - SLTestHelperFunctions.DeleteAllSettings(); SLTestHelperFunctions.CreateConfigurationSettings(); // Enable Payables Module and Vendor classes settings @@ -181,8 +182,7 @@ codeunit 147603 "SL Vendor Migrator Tests" Commit(); // [When] Vendor data is imported - SLTestHelperFunctions.GetInputStreamFromResource('datasets/input/SLTables/SLVendorWithClassID.csv', SLVendorInstream); - PopulateVendorBufferTable(SLVendorInstream); + SLTestHelperFunctions.ImportSLVendorData(); // Run Vendor related migration procedures SLVendor.FindSet(); @@ -199,12 +199,6 @@ codeunit 147603 "SL Vendor Migrator Tests" ValidateVendorData(TempVendor); end; - local procedure PopulateVendorBufferTable(var Instream: InStream) - begin - // Populate Vendor buffer table - Xmlport.Import(Xmlport::"SL Vendor Data", Instream); - end; - local procedure ValidateVendorData(var TempVendor: Record Vendor temporary) var Vendor: Record Vendor; @@ -222,7 +216,6 @@ codeunit 147603 "SL Vendor Migrator Tests" Assert.AreEqual(TempVendor."Contact", Vendor."Contact", 'Vendor Contact does not match' + ' (Vendor: ' + Vendor."No." + ')'); Assert.AreEqual(TempVendor."Phone No.", Vendor."Phone No.", 'Vendor Phone No. does not match' + ' (Vendor: ' + Vendor."No." + ')'); Assert.AreEqual(TempVendor."Vendor Posting Group", Vendor."Vendor Posting Group", 'Vendor Vendor Posting Group does not match' + ' (Vendor: ' + Vendor."No." + ')'); - Assert.AreEqual(TempVendor."Payment Terms Code", Vendor."Payment Terms Code", 'Vendor Payment Terms Code does not match' + ' (Vendor: ' + Vendor."No." + ')'); Assert.AreEqual(TempVendor."Country/Region Code", Vendor."Country/Region Code", 'Vendor Country/Region Code does not match' + ' (Vendor: ' + Vendor."No." + ')'); Assert.AreEqual(TempVendor.Blocked, Vendor.Blocked, 'Vendor Blocked does not match' + ' (Vendor: ' + Vendor."No." + ')'); Assert.AreEqual(TempVendor."Fax No.", Vendor."Fax No.", 'Vendor Fax No. does not match' + ' (Vendor: ' + Vendor."No." + ')'); @@ -236,15 +229,84 @@ codeunit 147603 "SL Vendor Migrator Tests" until TempVendor.Next() = 0; end; + [Test] + procedure TestVendorTransactions() + var + SLVendor: Record "SL Vendor"; + TempGenJournalLine: Record "Gen. Journal Line" temporary; + SLVendorMigrator: Codeunit "SL Vendor Migrator"; + VendorDataMigrationFacade: Codeunit "Vendor Data Migration Facade"; + SLExpectedBCGenJournalLineData: XmlPort "SL BC Gen. Journal Line Data"; + BCGenJournalLineInstream: InStream; + begin + IsInitialized := false; + // [Scenario] Open Vendor balances should be migrated to BC + Initialize(); + SLTestHelperFunctions.ClearAccountTableData(); + + // [Given] SL Vendor and APDoc data + SLTestHelperFunctions.ImportSLVendorData(); + SLTestHelperFunctions.ImportSLAPDocBufferData(); + + // Import supporting test data + SLTestHelperFunctions.CreateConfigurationSettings(); + SLTestHelperFunctions.ImportSLBatchData(); + SLTestHelperFunctions.ImportGLAccountData(); + Commit(); + + // Set Congfiguration Settings for AP Module + SLCompanyAdditionalSettings.GetSingleInstance(); + SLCompanyAdditionalSettings.Validate("Migrate GL Module", true); + SLCompanyAdditionalSettings.Validate("Migrate Payables Module", true); + SLCompanyAdditionalSettings.Validate("Migrate Vendor Classes", true); + SLCompanyAdditionalSettings.Validate("Skip Posting Vendor Batches", true); + SLCompanyAdditionalSettings.Modify(); + + // [When] Migrating open Vendor balances, create general journal entries + // Run Migrate Vendor, Vendor Posting Groups, and Vendor Transactions procedures + SLVendor.FindSet(); + repeat + SLVendorMigrator.MigrateVendor(VendorDataMigrationFacade, SLVendor.RecordId); + SLVendorMigrator.MigrateVendorPostingGroups(VendorDataMigrationFacade, SLVendor.RecordId, true); + SLVendorMigrator.MigrateVendorTransactions(VendorDataMigrationFacade, SLVendor.RecordId, true); + until SLVendor.Next() = 0; + + // [Then] Verify Vendor open balance data + SLTestHelperFunctions.GetInputStreamFromResource('datasets/results/SLBCGenJournalLineOpenAP.csv', BCGenJournalLineInstream); + SLExpectedBCGenJournalLineData.SetSource(BCGenJournalLineInstream); + SLExpectedBCGenJournalLineData.Import(); + SLExpectedBCGenJournalLineData.GetExpectedGenJournalLines(TempGenJournalLine); + ValidateVendorOpenBalanceData(TempGenJournalLine); + end; + + procedure ValidateVendorOpenBalanceData(var TempGenJournalLine: Record "Gen. Journal Line" temporary) + var + GenJournalLine: Record "Gen. Journal Line"; + begin + TempGenJournalLine.Reset(); + TempGenJournalLine.SetRange("Journal Template Name", 'GENERAL'); + TempGenJournalLine.SetRange("Journal Batch Name", 'SLVEND'); + TempGenJournalLine.FindSet(); + repeat + Assert.IsTrue(GenJournalLine.Get(TempGenJournalLine."Journal Template Name", TempGenJournalLine."Journal Batch Name", TempGenJournalLine."Line No."), 'Gen. Journal Line does not exist in BC' + ' (Line No.: ' + Format(TempGenJournalLine."Line No.") + ')'); + Assert.AreEqual(TempGenJournalLine.Amount, GenJournalLine.Amount, 'Gen. Journal Line Amount does not match' + ' (Line No.: ' + Format(TempGenJournalLine."Line No.") + ')'); + Assert.AreEqual(TempGenJournalLine."Account No.", GenJournalLine."Account No.", 'Gen. Journal Line Account No. does not match' + ' (Line No.: ' + Format(TempGenJournalLine."Line No.") + ')'); + Assert.AreEqual(TempGenJournalLine.Description, GenJournalLine.Description, 'Gen. Journal Line Description does not match' + ' (Line No.: ' + Format(TempGenJournalLine."Line No.") + ')'); + until TempGenJournalLine.Next() = 0; + end; + local procedure Initialize() var + GenJournalLine: Record "Gen. Journal Line"; SLVendor: Record "SL Vendor"; SLVendClass: Record "SL VendClass"; ZipCode: Record "Post Code"; begin // Delete/empty buffer tables + GenJournalLine.DeleteAll(true); SLVendor.DeleteAll(); SLVendClass.DeleteAll(); + SLTestHelperFunctions.ClearBCVendorTableData(); if IsInitialized then exit; @@ -254,7 +316,6 @@ codeunit 147603 "SL Vendor Migrator Tests" // Import supporting data SLTestHelperFunctions.ImportDataMigrationStatus(); - SLTestHelperFunctions.ImportGLAccountData(); SLTestHelperFunctions.ImportGenBusinessPostingGroupData(); SLTestHelperFunctions.ImportSLAPSetupData(); SLTestHelperFunctions.ImportSLSalesTaxData();