diff --git a/Apps/W1/HybridSL/app/src/Migration/Accounts/SLAccountStaging.Table.al b/Apps/W1/HybridSL/app/src/Migration/Accounts/SLAccountStaging.Table.al index 070e7f5cfa..03cef6c407 100644 --- a/Apps/W1/HybridSL/app/src/Migration/Accounts/SLAccountStaging.Table.al +++ b/Apps/W1/HybridSL/app/src/Migration/Accounts/SLAccountStaging.Table.al @@ -19,6 +19,7 @@ table 47000 "SL Account Staging" } field(2; Name; Text[30]) { + Caption = 'Name'; } field(3; SearchName; Text[30]) { diff --git a/Apps/W1/HybridSL/app/src/Migration/History/SLPopulateHistTables.Codeunit.al b/Apps/W1/HybridSL/app/src/Migration/History/SLPopulateHistTables.Codeunit.al index 1ada298a5a..4230f10f0e 100644 --- a/Apps/W1/HybridSL/app/src/Migration/History/SLPopulateHistTables.Codeunit.al +++ b/Apps/W1/HybridSL/app/src/Migration/History/SLPopulateHistTables.Codeunit.al @@ -373,15 +373,14 @@ codeunit 47025 "SL Populate Hist. Tables" internal procedure PopulateHistoricalSOHeader() var - SLSOHeader: Record "SL SOHeader"; + SLSOHeader: Record "SL SOHeader Buffer"; SLHistSOHeader: Record "SL Hist. SOHeader"; SourceTableId: Integer; LastSourceRecordId: Integer; begin - SourceTableId := Database::"SL SOHeader"; + SourceTableId := Database::"SL SOHeader Buffer"; if InitialHistYear > 0 then - SLSOHeader.SetFilter(Crtd_DateTime, '>= %1', InitialDateTime); - + SLSOHeader.SetFilter(OrdDate, '>= %1', InitialYearDate); SLSOHeader.SetFilter(CpnyID, '= %1', GetCpnyID()); if not SLSOHeader.FindSet() then @@ -404,32 +403,53 @@ codeunit 47025 "SL Populate Hist. Tables" internal procedure PopulateHistoricalSOLine() var - SLSOLine: Record "SL SOLine"; SLHistSOLine: Record "SL Hist. SOLine"; + SLSOHeader: Record "SL SOHeader Buffer"; + SLSOLine: Record "SL SOLine Buffer"; SourceTableId: Integer; LastSourceRecordId: Integer; begin - SourceTableId := Database::"SL SOLine"; - if InitialHistYear > 0 then - SLSOLine.SetFilter(Crtd_DateTime, '>= %1', InitialDateTime); - - SLSOLine.SetFilter(CpnyID, '= %1', GetCpnyID()); - - if not SLSOLine.FindSet() then - exit; - - repeat - LastSourceRecordId := SLSOLine.SystemRowVersion; - Clear(SLHistSOLine); - SLHistSOLine.TransferFields(SLSOLine); - - if SLHistSOLine.Insert() then - ReportLastSuccess(SourceTableId, LastSourceRecordId) - else - ReportLastError(SourceTableId, LastSourceRecordId, "SL Hist. Migration Step Type"::"SL Receivables Trx.", SLSOLine.CpnyID + '-' + SLSOLine.OrdNbr + '-' + SLSOLine.LineRef); + SourceTableId := Database::"SL SOLine Buffer"; + if InitialHistYear > 0 then begin + SLSOHeader.SetFilter(CpnyID, '= %1', GetCpnyID()); + SLSOHeader.SetFilter(OrdDate, '>= %1', InitialYearDate); + if not SLSOHeader.FindSet() then + exit; + repeat + SLSOLine.SetFilter(CpnyID, '= %1', GetCpnyID()); + SLSOLine.SetFilter(OrdNbr, '= %1', SLSOHeader.OrdNbr); + if not SLSOLine.FindSet() then + continue; + repeat + LastSourceRecordId := SLSOLine.SystemRowVersion; + Clear(SLHistSOLine); + SLHistSOLine.TransferFields(SLSOLine); + if SLHistSOLine.Insert() then + ReportLastSuccess(SourceTableId, LastSourceRecordId) + else + ReportLastError(SourceTableId, LastSourceRecordId, "SL Hist. Migration Step Type"::"SL Receivables Trx.", SLSOLine.CpnyID + '-' + SLSOLine.OrdNbr + '-' + SLSOLine.LineRef); + + AfterProcessedNextRecord(SourceTableId, LastSourceRecordId); + until SLSOLine.Next() = 0; + until SLSOHeader.Next() = 0; + end else begin + SLSOLine.SetFilter(CpnyID, '= %1', GetCpnyID()); + if not SLSOLine.FindSet() then + exit; + repeat + LastSourceRecordId := SLSOLine.SystemRowVersion; + Clear(SLHistSOLine); + SLHistSOLine.TransferFields(SLSOLine); + + if SLHistSOLine.Insert() then + ReportLastSuccess(SourceTableId, LastSourceRecordId) + else + ReportLastError(SourceTableId, LastSourceRecordId, "SL Hist. Migration Step Type"::"SL Receivables Trx.", SLSOLine.CpnyID + '-' + SLSOLine.OrdNbr + '-' + SLSOLine.LineRef); + + AfterProcessedNextRecord(SourceTableId, LastSourceRecordId); + until SLSOLine.Next() = 0; + end; - AfterProcessedNextRecord(SourceTableId, LastSourceRecordId); - until SLSOLine.Next() = 0; AfterProcessedSection(SourceTableId, LastSourceRecordId); end; @@ -475,7 +495,7 @@ codeunit 47025 "SL Populate Hist. Tables" if InitialHistYear > 0 then SLSOShipLine.SetFilter(Crtd_DateTime, '>= %1', InitialDateTime); - SLSOShipLine.SetFilter(CpnyID, '= %1', CompanyName); + SLSOShipLine.SetFilter(CpnyID, '= %1', GetCpnyID()); if not SLSOShipLine.FindSet() then exit; @@ -497,20 +517,16 @@ codeunit 47025 "SL Populate Hist. Tables" internal procedure PopulateHistoricalSOType() var - SLSOType: Record "SL SOType"; + SLSOType: Record "SL SOType Buffer"; SLHistSOType: Record "SL Hist. SOType"; SourceTableId: Integer; LastSourceRecordId: Integer; Inactive: Integer; begin - SourceTableId := Database::"SL SOType"; + SourceTableId := Database::"SL SOType Buffer"; Inactive := 0; - if InitialHistYear > 0 then - SLSOType.SetFilter(Crtd_DateTime, '>= %1', InitialDateTime); - SLSOType.SetFilter(CpnyID, '= %1', GetCpnyID()); SLSOType.SetFilter(Active, '<> %1', Inactive); - if not SLSOType.FindSet() then exit; @@ -679,17 +695,15 @@ codeunit 47025 "SL Populate Hist. Tables" internal procedure PopulateHistoricalPurOrdDet() var - SLPurOrdDet: Record "SL PurOrdDet"; + SLPurOrdDet: Record "SL PurOrdDet Buffer"; SLHistPurOrdDet: Record "SL Hist. PurOrdDet"; SourceTableId: Integer; LastSourceRecordId: Integer; begin - SourceTableId := Database::"SL PurOrdDet"; + SourceTableId := Database::"SL PurOrdDet Buffer"; if InitialHistYear > 0 then SLPurOrdDet.SetFilter(Crtd_DateTime, '>= %1', InitialDateTime); - SLPurOrdDet.SetFilter(CpnyID, '= %1', GetCpnyID()); - if not SLPurOrdDet.FindSet() then exit; @@ -710,14 +724,14 @@ codeunit 47025 "SL Populate Hist. Tables" internal procedure PopulateHistoricalPurchOrd() var - SLPurchOrd: Record "SL PurchOrd"; + SLPurchOrd: Record "SL PurchOrd Buffer"; SLHistPurchOrd: Record "SL Hist. PurchOrd"; SourceTableId: Integer; LastSourceRecordId: Integer; begin - SourceTableId := Database::"SL PurchOrd"; + SourceTableId := Database::"SL PurchOrd Buffer"; if InitialHistYear > 0 then - SLPurchOrd.SetFilter(PODate, '>= %1', InitialDateTime); + SLPurchOrd.SetFilter(PODate, '>= %1', InitialYearDate); SLPurchOrd.SetFilter(CpnyID, '= %1', GetCpnyID()); diff --git a/Apps/W1/HybridSL/app/src/Migration/History/SLSOHeader.Table.al b/Apps/W1/HybridSL/app/src/Migration/History/SLSOHeader.Table.al index f42cfcb530..38b80a8e7f 100644 --- a/Apps/W1/HybridSL/app/src/Migration/History/SLSOHeader.Table.al +++ b/Apps/W1/HybridSL/app/src/Migration/History/SLSOHeader.Table.al @@ -1,3 +1,4 @@ +#if not CLEANSCHEMA31 // ------------------------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. @@ -10,6 +11,14 @@ table 47034 "SL SOHeader" Access = Internal; DataClassification = CustomerContent; ReplicateData = false; + ObsoleteReason = 'Replaced by table SL SOHeader Buffer.'; +#if not CLEAN28 + ObsoleteState = Pending; + ObsoleteTag = '28.0'; +#else + ObsoleteState = Removed; + ObsoleteTag = '31.0'; +#endif fields { @@ -836,4 +845,5 @@ table 47034 "SL SOHeader" Clustered = true; } } -} \ No newline at end of file +} +#endif diff --git a/Apps/W1/HybridSL/app/src/Migration/History/SLSOLine.Table.al b/Apps/W1/HybridSL/app/src/Migration/History/SLSOLine.Table.al index c4d4438316..6a765ab698 100644 --- a/Apps/W1/HybridSL/app/src/Migration/History/SLSOLine.Table.al +++ b/Apps/W1/HybridSL/app/src/Migration/History/SLSOLine.Table.al @@ -1,3 +1,4 @@ +#if not CLEANSCHEMA31 // ------------------------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. @@ -10,6 +11,14 @@ table 47035 "SL SOLine" Access = Internal; DataClassification = CustomerContent; ReplicateData = false; + ObsoleteReason = 'Replaced by table SL SOLine Buffer.'; +#if not CLEAN28 + ObsoleteState = Pending; + ObsoleteTag = '28.0'; +#else + ObsoleteState = Removed; + ObsoleteTag = '31.0'; +#endif fields { @@ -595,4 +604,5 @@ table 47035 "SL SOLine" Clustered = true; } } -} \ No newline at end of file +} +#endif diff --git a/Apps/W1/HybridSL/app/src/Migration/History/SLSOType.Table.al b/Apps/W1/HybridSL/app/src/Migration/History/SLSOType.Table.al index 92ee4a1247..339f86af4c 100644 --- a/Apps/W1/HybridSL/app/src/Migration/History/SLSOType.Table.al +++ b/Apps/W1/HybridSL/app/src/Migration/History/SLSOType.Table.al @@ -1,3 +1,4 @@ +#if not CLEANSCHEMA31 // ------------------------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. @@ -10,6 +11,14 @@ table 47051 "SL SOType" Access = Internal; DataClassification = CustomerContent; ReplicateData = false; + ObsoleteReason = 'Replaced by table SL SOType Buffer.'; +#if not CLEAN28 + ObsoleteState = Pending; + ObsoleteTag = '28.0'; +#else + ObsoleteState = Removed; + ObsoleteTag = '31.0'; +#endif fields { @@ -328,4 +337,5 @@ table 47051 "SL SOType" Clustered = true; } } -} \ No newline at end of file +} +#endif diff --git a/Apps/W1/HybridSL/app/src/Migration/Items/SLINUnit.Table.al b/Apps/W1/HybridSL/app/src/Migration/Items/SLINUnit.Table.al new file mode 100644 index 0000000000..a469f61b70 --- /dev/null +++ b/Apps/W1/HybridSL/app/src/Migration/Items/SLINUnit.Table.al @@ -0,0 +1,168 @@ +// ------------------------------------------------------------------------------------------------ +// 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 47098 "SL INUnit" +{ + Access = Internal; + Caption = 'SL INUnit'; + DataClassification = CustomerContent; + + fields + { + field(1; ClassID; Text[6]) + { + Caption = 'ClassID'; + } + field(2; CnvFact; Decimal) + { + Caption = 'CnvFact'; + AutoFormatType = 0; + } + field(3; Crtd_DateTime; DateTime) + { + Caption = 'Crtd_DateTime'; + } + field(4; Crtd_Prog; Text[8]) + { + Caption = 'Crtd_Prog'; + } + field(5; Crtd_User; Text[10]) + { + Caption = 'Crtd_User'; + } + field(6; FromUnit; Text[6]) + { + Caption = 'FromUnit'; + } + field(7; InvtId; Text[30]) + { + Caption = 'InvtId'; + } + field(8; LUpd_DateTime; DateTime) + { + Caption = 'LUpd_DateTime'; + } + field(9; LUpd_Prog; Text[8]) + { + Caption = 'LUpd_Prog'; + } + field(10; LUpd_User; Text[10]) + { + Caption = 'LUpd_User'; + } + field(11; MultDiv; Text[1]) + { + Caption = 'MultDiv'; + } + field(12; NoteID; Integer) + { + Caption = 'NoteID'; + } + field(13; S4Future01; Text[30]) + { + Caption = 'S4Future01'; + } + field(14; S4Future02; Text[30]) + { + Caption = 'S4Future02'; + } + field(15; S4Future03; Decimal) + { + Caption = 'S4Future03'; + AutoFormatType = 0; + } + field(16; S4Future04; Decimal) + { + Caption = 'S4Future04'; + AutoFormatType = 0; + } + field(17; S4Future05; Decimal) + { + Caption = 'S4Future05'; + AutoFormatType = 0; + } + field(18; S4Future06; Decimal) + { + Caption = 'S4Future06'; + AutoFormatType = 0; + } + field(19; S4Future07; Date) + { + Caption = 'S4Future07'; + } + field(20; S4Future08; Date) + { + Caption = 'S4Future08'; + } + field(21; S4Future09; Integer) + { + Caption = 'S4Future09'; + } + field(22; S4Future10; Integer) + { + Caption = 'S4Future10'; + } + field(23; S4Future11; Text[10]) + { + Caption = 'S4Future11'; + } + field(24; S4Future12; Text[10]) + { + Caption = 'S4Future12'; + } + field(25; ToUnit; Text[6]) + { + Caption = 'ToUnit'; + } + field(26; UnitType; Text[1]) + { + Caption = 'UnitType'; + } + field(27; User1; Text[30]) + { + Caption = 'User1'; + } + field(28; User2; Text[30]) + { + Caption = 'User2'; + } + field(29; User3; Decimal) + { + Caption = 'User3'; + AutoFormatType = 0; + } + field(30; User4; Decimal) + { + Caption = 'User4'; + AutoFormatType = 0; + } + field(31; User5; Text[10]) + { + Caption = 'User5'; + } + field(32; User6; Text[10]) + { + Caption = 'User6'; + } + field(33; User7; Date) + { + Caption = 'User7'; + } + field(34; User8; Date) + { + Caption = 'User8'; + } + } + + keys + { + key(PK; UnitType, ClassID, InvtId, FromUnit, ToUnit) + { + Clustered = true; + } + } +} diff --git a/Apps/W1/HybridSL/app/src/Migration/Items/SLItemMigrator.Codeunit.al b/Apps/W1/HybridSL/app/src/Migration/Items/SLItemMigrator.Codeunit.al index c34285a89c..e659d88f5a 100644 --- a/Apps/W1/HybridSL/app/src/Migration/Items/SLItemMigrator.Codeunit.al +++ b/Apps/W1/HybridSL/app/src/Migration/Items/SLItemMigrator.Codeunit.al @@ -38,9 +38,9 @@ codeunit 47026 "SL Item Migrator" SerialTrackedWhenReceivedTxt: Label 'SERRCVD', Locked = true; SerialTrackedWhenReceivedWithExpirationTxt: Label 'SERRCVDEXP', Locked = true; SerialTrackedWhenUsedTxt: Label 'SERUSED', Locked = true; - SimpleInvJnlNameTxt: Label 'DEFAULT', Comment = 'The default name of the item journal', Locked = true; SLItemImportPostingGroupCodeTxt: Label 'SLITEMIMPORT', Locked = true; SLItemImportPostingGroupDescriptionTxt: Label 'SL Item Import (No impact to GL)', Locked = true; + SLItemJournalBatchDescriptionTxt: Label 'SL Migration of On-hand Quantities and Costs', Locked = true; SpecificIdentificationValuationMethodTxt: Label 'S', Locked = true; StandardCostValuationMethodTxt: Label 'T', Locked = true; TranStatusCodeDeleteTxt: Label 'DE', Locked = true; @@ -214,7 +214,7 @@ codeunit 47026 "SL Item Migrator" AverageCostValuationMethodTxt, StandardCostValuationMethodTxt, UserSpecifiedCostValuationMethodTxt: begin SLItemSite.SetRange(InvtID, SLInventory.InvtID); - SLItemSite.SetFilter(CpnyID, CompanyName); + SLItemSite.SetFilter(CpnyID, CopyStr(CompanyName, 1, MaxStrLen(SLItemSite.CpnyID))); SLItemSite.SetFilter(QtyOnHand, '<>%1', 0); if SLItemSite.FindSet() then repeat @@ -226,7 +226,7 @@ codeunit 47026 "SL Item Migrator" FIFOValuationMethodTxt, LIFOValuationMethodTxt, SpecificIdentificationValuationMethodTxt: begin SLItemSite.SetRange(InvtID, SLInventory.InvtID); - SLItemSite.SetFilter(CpnyID, CompanyName); + SLItemSite.SetFilter(CpnyID, CopyStr(CompanyName, 1, MaxStrLen(SLItemSite.CpnyID))); SLItemSite.SetFilter(QtyOnHand, '<>%1', 0); if SLItemSite.FindSet() then repeat @@ -273,9 +273,16 @@ codeunit 47026 "SL Item Migrator" var ItemJournalBatch: Record "Item Journal Batch"; ItemJournalLine: Record "Item Journal Line"; + DefaultItemJournalBatchNameTxt: Label 'DEFAULT', Locked = true; begin + ItemJournalBatch.SetFilter(Name, '<>%1', DefaultItemJournalBatchNameTxt); CurrentBatchNumber := ItemJournalBatch.Count(); + if CurrentBatchNumber = 0 then begin + CurrentBatchLineNo := 0; + exit; + end; + if ItemJournalBatch.FindLast() then begin ItemJournalLine.SetRange("Journal Template Name", ItemJournalBatch."Journal Template Name"); ItemJournalLine.SetRange("Journal Batch Name", ItemJournalBatch.Name); @@ -302,7 +309,7 @@ codeunit 47026 "SL Item Migrator" Clear(ItemJnlBatch); ItemJnlBatch."Journal Template Name" := TemplateName; ItemJnlBatch.Name := BatchName; - ItemJnlBatch.Description := SimpleInvJnlNameTxt; + ItemJnlBatch.Description := SLItemJournalBatchDescriptionTxt; ItemJnlBatch.Insert(); end; diff --git a/Apps/W1/HybridSL/app/src/Migration/PuchaseOrders/SLPOMigrator.Codeunit.al b/Apps/W1/HybridSL/app/src/Migration/PuchaseOrders/SLPOMigrator.Codeunit.al new file mode 100644 index 0000000000..8c33209950 --- /dev/null +++ b/Apps/W1/HybridSL/app/src/Migration/PuchaseOrders/SLPOMigrator.Codeunit.al @@ -0,0 +1,297 @@ +// ------------------------------------------------------------------------------------------------ +// 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.Foundation.UOM; +using Microsoft.Inventory.Item; +using Microsoft.Purchases.Document; +using Microsoft.Purchases.Setup; +using Microsoft.Purchases.Vendor; +using System.Integration; + +codeunit 47011 "SL PO Migrator" +{ + var + ItemWarningTxt: Label 'PO Line was skipped because the Item is invalid. Item: %1', Locked = true; + ItemUnitOfMeasureWarningTxt: Label 'PO Line was skipped because the Item Unit of Measure is invalid. Item: %1, Unit of Measure: %2', Locked = true; + MigratedFromSLDescriptionTxt: Label 'Migrated from SL'; + MigrationPOTxt: Label 'PO', Locked = true; + MigrationPOLineTxt: Label 'PO Line', Locked = true; + PurchaseAccountWarningTxt: Label 'PO Line was skipped because the Purchase Account is invalid. Account: %1', Locked = true; + SLPOStatusTxt: Label 'O|P', Locked = true; + SLPOTypeRegularOrderTxt: Label 'OR', Locked = true; + VendorNotMigratedWarningTxt: Label 'PO was skipped because Vendor (%1) has not been migrated.', Locked = true; + + procedure MigrateOpenPurchaseOrders() + var + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + begin + SLCompanyAdditionalSettings.Get(CompanyName); + if not SLCompanyAdditionalSettings.GetGLModuleEnabled() then + exit; + if not SLCompanyAdditionalSettings.GetPayablesModuleEnabled() then + exit; + if not SLCompanyAdditionalSettings.GetMigrateOpenPOs() then + exit; + + MigrateOpenPurchaseOrderData(); + end; + + procedure MigrateOpenPurchaseOrderData() + var + PurchaseHeader: Record "Purchase Header"; + PurchaseLine: Record "Purchase Line"; + PurchasePayablesSetup: Record "Purchases & Payables Setup"; + SLMigrationWarnings: Record "SL Migration Warnings"; + SLPurchOrd: Record "SL PurchOrd Buffer"; + Vendor: Record Vendor; + DataMigrationErrorLogging: Codeunit "Data Migration Error Logging"; + DataMigrationFacadeHelper: Codeunit "Data Migration Facade Helper"; + ShipViaID: Code[10]; + PurchaseDocumentType: Enum "Purchase Document Type"; + PurchaseDocumentStatus: Enum "Purchase Document Status"; + begin + SLPurchOrd.SetRange(CpnyID, CopyStr(CompanyName, 1, MaxStrLen(SLPurchOrd.CpnyID))); + SLPurchOrd.SetRange(POType, SLPOTypeRegularOrderTxt); // Regular Order + SLPurchOrd.SetFilter(Status, SLPOStatusTxt); // Open Order | Purchase Order + SLPurchOrd.SetFilter(VendID, '<>%1', ''); + if not SLPurchOrd.FindSet() then + exit; + + repeat + if Vendor.Get(SLPurchOrd.VendID) then begin + DataMigrationErrorLogging.SetLastRecordUnderProcessing(Format(SLPurchOrd.RecordId)); + Clear(PurchaseHeader); + + PurchaseHeader.Validate("Document Type", PurchaseDocumentType::Order); + PurchaseHeader."No." := SLPurchOrd.PONbr; + PurchaseHeader.Status := PurchaseDocumentStatus::Open; + PurchaseHeader.Insert(true); + + PurchaseHeader.Validate("Buy-from Vendor No.", SLPurchOrd.VendID); + PurchaseHeader.Validate("Pay-to Vendor No.", SLPurchOrd.VendID); + PurchaseHeader.Validate("Order Date", SLPurchOrd.PODate); + PurchaseHeader.Validate("Posting Date", SLPurchOrd.PODate); + PurchaseHeader.Validate("Document Date", SLPurchOrd.PODate); + PurchaseHeader.Validate("Posting Description", MigratedFromSLDescriptionTxt); + + if SLPurchOrd.ShipVia <> '' then begin + ShipViaID := CopyStr(SLPurchOrd.ShipVia, 1, MaxStrLen(PurchaseHeader."Shipment Method Code")); + DataMigrationFacadeHelper.CreateShipmentMethodIfNeeded(ShipViaID, ShipViaID + ' - ' + MigratedFromSLDescriptionTxt); + PurchaseHeader."Shipment Method Code" := ShipViaID; + end; + PurchaseHeader.Validate("Prices Including VAT", false); + + UpdateShipToAddress(SLPurchOrd, PurchaseHeader); + + if PurchasePayablesSetup.FindFirst() then begin + PurchaseHeader.Validate("Posting No. Series", PurchasePayablesSetup."Posted Invoice Nos."); + PurchaseHeader.Validate("Receiving No. Series", PurchasePayablesSetup."Posted Receipt Nos.") + end; + + PurchaseHeader.Modify(true); + CreateLines(PurchaseHeader."No.", PurchaseHeader."Buy-from Vendor No."); + + // If no lines were created, delete the empty Purchase Header + PurchaseLine.SetRange("Document Type", PurchaseLine."Document Type"::Order); + PurchaseLine.SetRange("Document No.", PurchaseHeader."No."); + if PurchaseLine.IsEmpty then + PurchaseHeader.Delete(); + end else + SLMigrationWarnings.InsertWarning(MigrationPOTxt, SLPurchOrd.PONbr, StrSubstNo(VendorNotMigratedWarningTxt, SLPurchOrd.VendID.TrimEnd())); + until SLPurchOrd.Next() = 0; + end; + + local procedure UpdateShipToAddress(SLPurchOrd: Record "SL PurchOrd Buffer"; var PurchaseHeader: Record "Purchase Header") + begin + if SLPurchOrd.ShipName.Trim() <> '' then + PurchaseHeader."Ship-to Name" := CopyStr(SLPurchOrd.ShipName.Trim(), 1, MaxStrLen(PurchaseHeader."Ship-to Name")); + if SLPurchOrd.ShipAttn.Trim() <> '' then + PurchaseHeader."Ship-to Contact" := CopyStr(SLPurchOrd.ShipAttn.Trim(), 1, MaxStrLen(PurchaseHeader."Ship-to Contact")); + if SLPurchOrd.ShipAddr1.Trim() <> '' then + PurchaseHeader."Ship-to Address" := CopyStr(SLPurchOrd.ShipAddr1.Trim(), 1, MaxStrLen(PurchaseHeader."Ship-to Address")); + if SLPurchOrd.ShipAddr2.Trim() <> '' then + PurchaseHeader."Ship-to Address 2" := CopyStr(SLPurchOrd.ShipAddr2.Trim(), 1, MaxStrLen(PurchaseHeader."Ship-to Address 2")); + if SLPurchOrd.ShipCity.Trim() <> '' then + PurchaseHeader."Ship-to City" := CopyStr(SLPurchOrd.ShipCity.Trim(), 1, MaxStrLen(PurchaseHeader."Ship-to City")); + if SLPurchOrd.ShipState.Trim() <> '' then + PurchaseHeader."Ship-to County" := CopyStr(SLPurchOrd.ShipState.Trim(), 1, MaxStrLen(PurchaseHeader."Ship-to County")); + if SLPurchOrd.ShipCountry.Trim() <> '' then + PurchaseHeader."Ship-to Country/Region Code" := CopyStr(SLPurchOrd.ShipCountry.Trim(), 1, MaxStrLen(PurchaseHeader."Ship-to Country/Region Code")); + if SLPurchOrd.ShipZip.Trim() <> '' then + PurchaseHeader."Ship-to Post Code" := CopyStr(SLPurchOrd.ShipZip.Trim(), 1, MaxStrLen(PurchaseHeader."Ship-to Post Code")); + end; + + local procedure CreateLines(PONumber: Code[20]; VendorNo: Code[20]) + var + GLAccount: Record "G/L Account"; + Item: Record Item; + PurchaseLine: Record "Purchase Line"; + SLMigrationWarnings: Record "SL Migration Warnings"; + SLPurOrdDet: Record "SL PurOrdDet Buffer"; + SLHelperFunctions: Codeunit "SL Helper Functions"; + DimSetIDPurchaseLine: Integer; + InventoryID: Text[20]; + PurchaseAccount: Text[10]; + PurchaseUnitOfMeasure: Text[6]; + begin + SLPurOrdDet.SetRange(PONbr, PONumber); + SLPurOrdDet.SetRange(OpenLine, 1); + if not SLPurOrdDet.FindSet() then + exit; + + repeat + PurchaseLine."Document Type" := PurchaseLine."Document Type"::Order; + PurchaseLine."Document No." := PONumber; + PurchaseLine."Line No." := SLPurOrdDet.LineID; + PurchaseLine."Buy-from Vendor No." := VendorNo; + PurchaseAccount := CopyStr(SLPurOrdDet.PurAcct.TrimEnd(), 1, MaxStrLen(PurchaseAccount)); + DimSetIDPurchaseLine := SLHelperFunctions.GetDimSetIDByFullSubaccount(SLPurOrdDet.PurSub); + case + SLPurOrdDet.PurchaseType of + 'DL': // Description Line + begin + PurchaseLine.Validate(Type, PurchaseLine.Type::" "); + PurchaseLine.Validate(Description, SLPurOrdDet.TranDesc.TrimEnd()); + PurchaseLine.Insert(true); + end; + + 'FR', 'MI': // Freight Charges, Misc Charges + begin + if not ValidatePOLineAccount(PurchaseAccount) then begin + // Log warning and skip line + SLMigrationWarnings.InsertWarning(MigrationPOLineTxt, SLPurOrdDet.PONbr, StrSubstNo(PurchaseAccountWarningTxt, PurchaseAccount)); + continue; + end; + if GLAccount.Get(PurchaseAccount) then begin + PurchaseLine.Validate(Type, PurchaseLine.Type::"G/L Account"); + PurchaseLine.Validate("No.", PurchaseAccount); + PurchaseLine.Validate(Description, SLPurOrdDet.TranDesc.TrimEnd()); + PurchaseLine.Validate(Quantity, 1); + PurchaseLine.Validate("Direct Unit Cost", SLPurOrdDet.ExtCost); + PurchaseLine.Validate("Dimension Set ID", DimSetIDPurchaseLine); + PurchaseLine.Insert(true); + end; + end; + + 'GI', 'GS', 'GP', 'PI', 'PS': // Goods for Inventory, Goods for Sales Order, Goods for Project, Goods for Project Inventory, Goods for Project Sales Order + begin + InventoryID := CopyStr(SLPurOrdDet.InvtID.TrimEnd(), 1, MaxStrLen(Item."No.")); + PurchaseUnitOfMeasure := CopyStr(SLPurOrdDet.PurchUnit.TrimEnd(), 1, MaxStrLen(SLPurOrdDet.PurchUnit)); + if not ValidatePOLineItem(InventoryID) then begin + // Log warning and skip line + SLMigrationWarnings.InsertWarning(MigrationPOLineTxt, SLPurOrdDet.PONbr, StrSubstNo(ItemWarningTxt, InventoryID)); + continue; + end; + if not ValidatePOLineItemUOM(InventoryID, PurchaseUnitOfMeasure) then + if not CreateItemUnitOfMeasure(InventoryID, PurchaseUnitOfMeasure) then begin + // Log warning and skip line + SLMigrationWarnings.InsertWarning(MigrationPOLineTxt, SLPurOrdDet.PONbr, StrSubstNo(ItemUnitOfMeasureWarningTxt, InventoryID, PurchaseUnitOfMeasure)); + continue; + end; + + DimSetIDPurchaseLine := SLHelperFunctions.GetDimSetIDByFullSubaccount(SLPurOrdDet.PurSub); + + if Item.Get(InventoryID) then begin + PurchaseLine.Validate(Type, PurchaseLine.Type::Item); + PurchaseLine.Validate("No.", InventoryID); + PurchaseLine.Validate(Description, SLPurOrdDet.TranDesc.TrimEnd()); + PurchaseLine.Validate("Location Code", SLPurOrdDet.SiteID); + PurchaseLine.Validate(Quantity, SLPurOrdDet.QtyOrd - SLPurOrdDet.QtyRcvd); + PurchaseLine.Validate("Unit of Measure Code", PurchaseUnitOfMeasure); + PurchaseLine.Validate("Direct Unit Cost", SLPurOrdDet.UnitCost); + PurchaseLine.Validate("Promised Receipt Date", SLPurOrdDet.PromDate); + PurchaseLine.Validate("Dimension Set ID", DimSetIDPurchaseLine); + PurchaseLine.Insert(true); + end; + end; + 'GN', 'SE', 'SP': // Goods for non-Inventory, Services for Expense, Services for Project + begin + if not ValidatePOLineAccount(PurchaseAccount) then begin + // Log warning and skip line + SLMigrationWarnings.InsertWarning(MigrationPOLineTxt, SLPurOrdDet.PONbr, StrSubstNo(PurchaseAccountWarningTxt, PurchaseAccount)); + continue; + end; + if GLAccount.Get(PurchaseAccount) then begin + PurchaseLine.Validate(Type, PurchaseLine.Type::"G/L Account"); + PurchaseLine.Validate("No.", PurchaseAccount); + PurchaseLine.Validate(Description, SLPurOrdDet.TranDesc.TrimEnd()); + PurchaseLine.Validate(Quantity, SLPurOrdDet.QtyOrd - SLPurOrdDet.QtyRcvd); + PurchaseLine.Validate("Direct Unit Cost", SLPurOrdDet.UnitCost); + PurchaseLine.Validate("Promised Receipt Date", SLPurOrdDet.PromDate); + PurchaseLine.Validate("Dimension Set ID", DimSetIDPurchaseLine); + PurchaseLine.Insert(true); + end; + end; + end; + until SLPurOrdDet.Next() = 0; + end; + + procedure CreateItemUnitOfMeasure(InvtId: Text[20]; FromUnit: Text[6]): Boolean + var + Item: Record Item; + ItemUnitOfMeasure: Record "Item Unit of Measure"; + SLINUnit: Record "SL INUnit"; + SLHelperFunctions: Codeunit "SL Helper Functions"; + GlobalTxt: Label '1', Locked = true; + ItemSpecificTxt: Label '3', Locked = true; + begin + if not Item.Get(InvtId) then + exit(false); + + SLHelperFunctions.CreateUnitOfMeasureIfNeeded(FromUnit, FromUnit.TrimEnd() + ' - ' + MigratedFromSLDescriptionTxt); + + SLINUnit.SetRange(UnitType, ItemSpecificTxt); + SLINUnit.SetRange(InvtId, InvtId); + SLINUnit.SetFilter(FromUnit, '%1', FromUnit); + SLINUnit.SetFilter(ToUnit, '%1', Item."Base Unit of Measure"); + if SLINUnit.FindFirst() then begin + // Create Item Unit of Measure record based on SLINUnit record + ItemUnitOfMeasure.Validate("Item No.", InvtId); + ItemUnitOfMeasure.Validate(Code, FromUnit); + ItemUnitOfMeasure.Validate("Qty. per Unit of Measure", SLINUnit.CnvFact); + ItemUnitOfMeasure.Insert(); + exit(true); + end; + + Clear(SLINUnit); + SLINUnit.SetRange(UnitType, GlobalTxt); + SLINUnit.SetFilter(FromUnit, '%1', FromUnit); + SLINUnit.SetFilter(ToUnit, '%1', Item."Base Unit of Measure"); + if SLINUnit.FindFirst() then begin + // Create Item Unit of Measure record based on SLINUnit record + ItemUnitOfMeasure.Validate("Item No.", InvtId); + ItemUnitOfMeasure.Validate(Code, FromUnit); + ItemUnitOfMeasure.Validate("Qty. per Unit of Measure", SLINUnit.CnvFact); + ItemUnitOfMeasure.Insert(); + exit(true); + end; + + exit(false); + end; + + local procedure ValidatePOLineAccount(PurchAcct: Text[10]): Boolean + var + GLAccount: Record "G/L Account"; + begin + exit(GLAccount.Get(PurchAcct)); + end; + + local procedure ValidatePOLineItem(ItemNo: Code[20]): Boolean + var + Item: Record Item; + begin + exit(Item.Get(ItemNo)); + end; + + local procedure ValidatePOLineItemUOM(ItemNo: Code[20]; UnitOfMeasureCode: Code[10]): Boolean + var + ItemUnitOfMeasure: Record "Item Unit of Measure"; + begin + exit(ItemUnitOfMeasure.Get(ItemNo, UnitOfMeasureCode)); + end; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/app/src/Migration/PuchaseOrders/SLPurOrdDetBuffer.Table.al b/Apps/W1/HybridSL/app/src/Migration/PuchaseOrders/SLPurOrdDetBuffer.Table.al new file mode 100644 index 0000000000..0b4bcd131b --- /dev/null +++ b/Apps/W1/HybridSL/app/src/Migration/PuchaseOrders/SLPurOrdDetBuffer.Table.al @@ -0,0 +1,612 @@ +// ------------------------------------------------------------------------------------------------ +// 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 47097 "SL PurOrdDet Buffer" +{ + Access = Internal; + DataClassification = CustomerContent; + ReplicateData = false; + + fields + { + field(1; AddlCostPct; Decimal) + { + Caption = 'AddlCostPct'; + AutoFormatType = 0; + } + field(2; AllocCntr; Integer) + { + Caption = 'AllocCntr'; + } + field(3; AlternateID; Text[30]) + { + Caption = 'AlternateID'; + } + field(4; AltIDType; Text[1]) + { + Caption = 'AltIDType'; + } + field(5; BlktLineID; Integer) + { + Caption = 'BlktLineID'; + } + field(6; BlktLineRef; Text[5]) + { + Caption = 'BlktLineRef'; + } + field(7; Buyer; Text[10]) + { + Caption = 'Buyer'; + } + field(8; CnvFact; Decimal) + { + Caption = 'CnvFact'; + AutoFormatType = 0; + } + field(9; CostReceived; Decimal) + { + Caption = 'CostReceived'; + AutoFormatType = 0; + } + field(10; CostReturned; Decimal) + { + Caption = 'CostReturned'; + AutoFormatType = 0; + } + field(11; CostVouched; Decimal) + { + Caption = 'CostVouched'; + AutoFormatType = 0; + } + field(12; CpnyID; Text[10]) + { + Caption = 'CpnyID'; + } + field(13; Crtd_DateTime; DateTime) + { + Caption = 'Crtd_DateTime'; + } + field(14; Crtd_Prog; Text[8]) + { + Caption = 'Crtd_Prog'; + } + field(15; Crtd_User; Text[10]) + { + Caption = 'Crtd_User'; + } + field(16; CuryCostReceived; Decimal) + { + Caption = 'CuryCostReceived'; + AutoFormatType = 0; + } + field(17; CuryCostReturned; Decimal) + { + Caption = 'CuryCostReturned'; + AutoFormatType = 0; + } + field(18; CuryCostVouched; Decimal) + { + Caption = 'CuryCostVouched'; + AutoFormatType = 0; + } + field(19; CuryExtCost; Decimal) + { + Caption = 'CuryExtCost'; + AutoFormatType = 0; + } + field(20; CuryID; Text[4]) + { + Caption = 'CuryID'; + } + field(21; CuryMultDiv; Text[1]) + { + Caption = 'CuryMultDiv'; + } + field(22; CuryRate; Decimal) + { + Caption = 'CuryRate'; + AutoFormatType = 0; + } + field(23; CuryTaxAmt00; Decimal) + { + Caption = 'CuryTaxAmt00'; + AutoFormatType = 0; + } + field(24; CuryTaxAmt01; Decimal) + { + Caption = 'CuryTaxAmt01'; + AutoFormatType = 0; + } + field(25; CuryTaxAmt02; Decimal) + { + Caption = 'CuryTaxAmt02'; + AutoFormatType = 0; + } + field(26; CuryTaxAmt03; Decimal) + { + Caption = 'CuryTaxAmt03'; + AutoFormatType = 0; + } + field(27; CuryTxblAmt00; Decimal) + { + Caption = 'CuryTxblAmt00'; + AutoFormatType = 0; + } + field(28; CuryTxblAmt01; Decimal) + { + Caption = 'CuryTxblAmt01'; + AutoFormatType = 0; + } + field(29; CuryTxblAmt02; Decimal) + { + Caption = 'CuryTxblAmt02'; + AutoFormatType = 0; + } + field(30; CuryTxblAmt03; Decimal) + { + Caption = 'CuryTxblAmt03'; + AutoFormatType = 0; + } + field(31; CuryUnitCost; Decimal) + { + Caption = 'CuryUnitCost'; + AutoFormatType = 0; + } + field(32; ExtCost; Decimal) + { + Caption = 'ExtCost'; + AutoFormatType = 0; + } + field(33; ExtWeight; Decimal) + { + Caption = 'ExtWeight'; + AutoFormatType = 0; + } + field(34; FlatRateLineNbr; Integer) + { + Caption = 'FlatRateLineNbr'; + } + field(35; InclForecastUsageClc; Integer) + { + Caption = 'InclForecastUsageClc'; + } + field(36; InvtID; Text[30]) + { + Caption = 'InvtID'; + } + field(37; IRIncLeadTime; Integer) + { + Caption = 'IRIncLeadTime'; + } + field(38; KitUnExpld; Integer) + { + Caption = 'KitUnExpld'; + } + field(39; Labor_Class_Cd; Text[4]) + { + Caption = 'Labor_Class_Cd'; + } + field(40; LineID; Integer) + { + Caption = 'LineID'; + } + field(41; LineNbr; Integer) + { + Caption = 'LineNbr'; + } + field(42; LineRef; Text[5]) + { + Caption = 'LineRef'; + } + field(43; LUpd_DateTime; DateTime) + { + Caption = 'LUpd_DateTime'; + } + field(44; LUpd_Prog; Text[8]) + { + Caption = 'LUpd_Prog'; + } + field(45; LUpd_User; Text[10]) + { + Caption = 'LUpd_User'; + } + field(46; NoteID; Integer) + { + Caption = 'NoteID'; + } + field(47; OpenLine; Integer) + { + Caption = 'OpenLine'; + } + field(48; OrigPOLine; Integer) + { + Caption = 'OrigPOLine'; + } + field(49; PC_Flag; Text[1]) + { + Caption = 'PC_Flag'; + } + field(50; PC_ID; Text[20]) + { + Caption = 'PC_ID'; + } + field(51; PC_Status; Text[1]) + { + Caption = 'PC_Status'; + } + field(52; PONbr; Text[10]) + { + Caption = 'PONbr'; + } + field(53; POType; Text[2]) + { + Caption = 'POType'; + } + field(54; ProjectID; Text[16]) + { + Caption = 'ProjectID'; + } + field(55; PromDate; Date) + { + Caption = 'PromDate'; + } + field(56; PurAcct; Text[10]) + { + Caption = 'PurAcct'; + } + field(57; PurchaseType; Text[2]) + { + Caption = 'PurchaseType'; + } + field(58; PurchUnit; Text[6]) + { + Caption = 'PurchUnit'; + } + field(59; PurSub; Text[24]) + { + Caption = 'PurSub'; + } + field(60; QtyOrd; Decimal) + { + Caption = 'QtyOrd'; + AutoFormatType = 0; + } + field(61; QtyRcvd; Decimal) + { + Caption = 'QtyRcvd'; + AutoFormatType = 0; + } + field(62; QtyReturned; Decimal) + { + Caption = 'QtyReturned'; + AutoFormatType = 0; + } + field(63; QtyVouched; Decimal) + { + Caption = 'QtyVouched'; + AutoFormatType = 0; + } + field(64; RcptPctAct; Text[1]) + { + Caption = 'RcptPctAct'; + } + field(65; RcptPctMax; Decimal) + { + Caption = 'RcptPctMax'; + AutoFormatType = 0; + } + field(66; RcptPctMin; Decimal) + { + Caption = 'RcptPctMin'; + AutoFormatType = 0; + } + field(67; RcptStage; Text[1]) + { + Caption = 'RcptStage'; + } + field(68; ReasonCd; Text[6]) + { + Caption = 'ReasonCd'; + } + field(69; RefNbr; Text[10]) + { + Caption = 'RefNbr'; + } + field(70; ReqdDate; Date) + { + Caption = 'ReqdDate'; + } + field(71; ReqNbr; Text[10]) + { + Caption = 'ReqNbr'; + } + field(72; S4Future01; Text[30]) + { + Caption = 'S4Future01'; + } + field(73; S4Future02; Text[30]) + { + Caption = 'S4Future02'; + } + field(74; S4Future03; Decimal) + { + Caption = 'S4Future03'; + AutoFormatType = 0; + } + field(75; S4Future04; Decimal) + { + Caption = 'S4Future04'; + AutoFormatType = 0; + } + field(76; S4Future05; Decimal) + { + Caption = 'S4Future05'; + AutoFormatType = 0; + } + field(77; S4Future06; Decimal) + { + Caption = 'S4Future06'; + AutoFormatType = 0; + } + field(78; S4Future07; Date) + { + Caption = 'S4Future07'; + } + field(79; S4Future08; Date) + { + Caption = 'S4Future08'; + } + field(80; S4Future09; Integer) + { + Caption = 'S4Future09'; + } + field(81; S4Future10; Integer) + { + Caption = 'S4Future10'; + } + field(82; S4Future11; Text[10]) + { + Caption = 'S4Future11'; + } + field(83; S4Future12; Text[10]) + { + Caption = 'S4Future12'; + } + field(84; ServiceCallID; Text[10]) + { + Caption = 'ServiceCallID'; + } + field(85; ShelfLife; Integer) + { + Caption = 'ShelfLife'; + } + field(86; ShipAddr1; Text[60]) + { + Caption = 'ShipAddr1'; + } + field(87; ShipAddr2; Text[60]) + { + Caption = 'ShipAddr2'; + } + field(88; ShipAddrID; Text[10]) + { + Caption = 'ShipAddrID'; + } + field(89; ShipCity; Text[30]) + { + Caption = 'ShipCity'; + } + field(90; ShipCountry; Text[3]) + { + Caption = 'ShipCountry'; + } + field(91; ShipName; Text[60]) + { + Caption = 'ShipName'; + } + field(92; ShipState; Text[3]) + { + Caption = 'ShipState'; + } + field(93; ShipViaID; Text[15]) + { + Caption = 'ShipViaID'; + } + field(94; ShipZip; Text[10]) + { + Caption = 'ShipZip'; + } + field(95; SiteID; Text[10]) + { + Caption = 'SiteID'; + } + field(96; SOLineRef; Text[5]) + { + Caption = 'SOLineRef'; + } + field(97; SOOrdNbr; Text[15]) + { + Caption = 'SOOrdNbr'; + } + field(98; SOSchedRef; Text[5]) + { + Caption = 'SOSchedRef'; + } + field(99; StepNbr; Integer) + { + Caption = 'StepNbr'; + } + field(100; SvcContractID; Text[10]) + { + Caption = 'SvcContractID'; + } + field(101; SvcLineNbr; Integer) + { + Caption = 'SvcLineNbr'; + } + field(102; TaskID; Text[32]) + { + Caption = 'TaskID'; + } + field(103; TaxAmt00; Decimal) + { + Caption = 'TaxAmt00'; + AutoFormatType = 0; + } + field(104; TaxAmt01; Decimal) + { + Caption = 'TaxAmt01'; + AutoFormatType = 0; + } + field(105; TaxAmt02; Decimal) + { + Caption = 'TaxAmt02'; + AutoFormatType = 0; + } + field(106; TaxAmt03; Decimal) + { + Caption = 'TaxAmt03'; + AutoFormatType = 0; + } + field(107; TaxCalced; Text[1]) + { + Caption = 'TaxCalced'; + } + field(108; TaxCat; Text[10]) + { + Caption = 'TaxCat'; + } + field(109; TaxID00; Text[10]) + { + Caption = 'TaxID00'; + } + field(110; TaxID01; Text[10]) + { + Caption = 'TaxID01'; + } + field(111; TaxID02; Text[10]) + { + Caption = 'TaxID02'; + } + field(112; TaxID03; Text[10]) + { + Caption = 'TaxID03'; + } + field(113; TaxIdDflt; Text[10]) + { + Caption = 'TaxIdDflt'; + } + field(114; TranDesc; Text[60]) + { + Caption = 'TranDesc'; + } + field(115; TxblAmt00; Decimal) + { + Caption = 'TxblAmt00'; + AutoFormatType = 0; + } + field(116; TxblAmt01; Decimal) + { + Caption = 'TxblAmt01'; + AutoFormatType = 0; + } + field(117; TxblAmt02; Decimal) + { + Caption = 'TxblAmt02'; + AutoFormatType = 0; + } + field(118; TxblAmt03; Decimal) + { + Caption = 'TxblAmt03'; + AutoFormatType = 0; + } + field(119; UnitCost; Decimal) + { + Caption = 'UnitCost'; + AutoFormatType = 0; + } + field(120; UnitMultDiv; Text[1]) + { + Caption = 'UnitMultDiv'; + } + field(121; UnitWeight; Decimal) + { + Caption = 'UnitWeight'; + AutoFormatType = 0; + } + field(122; User1; Text[30]) + { + Caption = 'User1'; + } + field(123; User2; Text[30]) + { + Caption = 'User2'; + } + field(124; User3; Decimal) + { + Caption = 'User3'; + AutoFormatType = 0; + } + field(125; User4; Decimal) + { + Caption = 'User4'; + AutoFormatType = 0; + } + field(126; User5; Text[10]) + { + Caption = 'User5'; + } + field(127; User6; Text[10]) + { + Caption = 'User6'; + } + field(128; User7; Date) + { + Caption = 'User7'; + } + field(129; User8; Date) + { + Caption = 'User8'; + } + field(130; VouchStage; Text[1]) + { + Caption = 'VouchStage'; + } + field(131; WIP_COGS_Acct; Text[10]) + { + Caption = 'WIP_COGS_Acct'; + } + field(132; WIP_COGS_Sub; Text[24]) + { + Caption = 'WIP_COGS_Sub'; + } + field(133; WOBOMSeq; Integer) + { + Caption = 'WOBOMSeq'; + } + field(134; WOCostType; Text[2]) + { + Caption = 'WOCostType'; + } + field(135; WONbr; Text[10]) + { + Caption = 'WONbr'; + } + field(136; WOStepNbr; Integer) + { + Caption = 'WOStepNbr'; + } + } + + keys + { + key(Key1; PONbr, LineRef) + { + Clustered = true; + } + } +} diff --git a/Apps/W1/HybridSL/app/src/Migration/PuchaseOrders/SLPurchOrdBuffer.Table.al b/Apps/W1/HybridSL/app/src/Migration/PuchaseOrders/SLPurchOrdBuffer.Table.al new file mode 100644 index 0000000000..233c9e301e --- /dev/null +++ b/Apps/W1/HybridSL/app/src/Migration/PuchaseOrders/SLPurchOrdBuffer.Table.al @@ -0,0 +1,572 @@ +// ------------------------------------------------------------------------------------------------ +// 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 47096 "SL PurchOrd Buffer" +{ + Access = Internal; + DataClassification = CustomerContent; + ReplicateData = false; + + fields + { + field(1; AckDateTime; Date) + { + Caption = 'AckDateTime'; + } + field(2; ASID; Integer) + { + Caption = 'ASID'; + } + field(3; BatNbr; Text[10]) + { + Caption = 'BatNbr'; + } + field(4; BillShipAddr; Integer) + { + Caption = 'BillShipAddr'; + } + field(5; BlktExprDate; Date) + { + Caption = 'BlktExprDate'; + } + field(6; BlktPONbr; Text[10]) + { + Caption = 'BlktPONbr'; + } + field(7; Buyer; Text[10]) + { + Caption = 'Buyer'; + } + field(8; BuyerEmail; Text[80]) + { + Caption = 'BuyerEmail'; + } + field(9; CertCompl; Integer) + { + Caption = 'CertCompl'; + } + field(10; ConfirmTo; Text[10]) + { + Caption = 'ConfirmTo'; + } + field(11; CpnyID; Text[10]) + { + Caption = 'CpnyID'; + } + field(12; Crtd_DateTime; DateTime) + { + Caption = 'Crtd_DateTime'; + } + field(13; Crtd_Prog; Text[8]) + { + Caption = 'Crtd_Prog'; + } + field(14; Crtd_User; Text[10]) + { + Caption = 'Crtd_User'; + } + field(15; CurrentNbr; Integer) + { + Caption = 'CurrentNbr'; + } + field(16; CuryEffDate; Date) + { + Caption = 'CuryEffDate'; + } + field(17; CuryFreight; Decimal) + { + Caption = 'CuryFreight'; + AutoFormatType = 0; + } + field(18; CuryID; Text[4]) + { + Caption = 'CuryID'; + } + field(19; CuryMultDiv; Text[1]) + { + Caption = 'CuryMultDiv'; + } + field(20; CuryPOAmt; Decimal) + { + Caption = 'CuryPOAmt'; + AutoFormatType = 0; + } + field(21; CuryPOItemTotal; Decimal) + { + Caption = 'CuryPOItemTotal'; + AutoFormatType = 0; + } + field(22; CuryRate; Decimal) + { + Caption = 'CuryRate'; + AutoFormatType = 0; + } + field(23; CuryRateType; Text[6]) + { + Caption = 'CuryRateType'; + } + field(24; CuryRcptTotAmt; Decimal) + { + Caption = 'CuryRcptTotAmt'; + AutoFormatType = 0; + } + field(25; CuryTaxTot00; Decimal) + { + Caption = 'CuryTaxTot00'; + AutoFormatType = 0; + } + field(26; CuryTaxTot01; Decimal) + { + Caption = 'CuryTaxTot01'; + AutoFormatType = 0; + } + field(27; CuryTaxTot02; Decimal) + { + Caption = 'CuryTaxTot02'; + AutoFormatType = 0; + } + field(28; CuryTaxTot03; Decimal) + { + Caption = 'CuryTaxTot03'; + AutoFormatType = 0; + } + field(29; CuryTxblTot00; Decimal) + { + Caption = 'CuryTxblTot00'; + AutoFormatType = 0; + } + field(30; CuryTxblTot01; Decimal) + { + Caption = 'CuryTxblTot01'; + AutoFormatType = 0; + } + field(31; CuryTxblTot02; Decimal) + { + Caption = 'CuryTxblTot02'; + AutoFormatType = 0; + } + field(32; CuryTxblTot03; Decimal) + { + Caption = 'CuryTxblTot03'; + AutoFormatType = 0; + } + field(33; EDI; Integer) + { + Caption = 'EDI'; + } + field(34; FOB; Text[15]) + { + Caption = 'FOB'; + } + field(35; Freight; Decimal) + { + Caption = 'Freight'; + AutoFormatType = 0; + } + field(36; LastRcptDate; Date) + { + Caption = 'LastRcptDate'; + } + field(37; LineCntr; Integer) + { + Caption = 'LineCntr'; + } + field(38; LUpd_DateTime; DateTime) + { + Caption = 'LUpd_DateTime'; + } + field(39; LUpd_Prog; Text[8]) + { + Caption = 'LUpd_Prog'; + } + field(40; LUpd_User; Text[10]) + { + Caption = 'LUpd_User'; + } + field(41; NoteID; Integer) + { + Caption = 'NoteID'; + } + field(42; OpenPO; Integer) + { + Caption = 'OpenPO'; + } + field(43; PC_Status; Text[1]) + { + Caption = 'PC_Status'; + } + field(44; PerClosed; Text[6]) + { + Caption = 'PerClosed'; + } + field(45; PerEnt; Text[6]) + { + Caption = 'PerEnt'; + } + field(46; POAmt; Decimal) + { + Caption = 'POAmt'; + AutoFormatType = 0; + } + field(47; PODate; Date) + { + Caption = 'PODate'; + } + field(48; POItemTotal; Decimal) + { + Caption = 'POItemTotal'; + AutoFormatType = 0; + } + field(49; PONbr; Text[10]) + { + Caption = 'PONbr'; + } + field(50; POType; Text[2]) + { + Caption = 'POType'; + } + field(51; ProjectID; Text[16]) + { + Caption = 'ProjectID'; + } + field(52; PrtBatNbr; Text[10]) + { + Caption = 'PrtBatNbr'; + } + field(53; PrtFlg; Integer) + { + Caption = 'PrtFlg'; + } + field(54; RcptStage; Text[1]) + { + Caption = 'RcptStage'; + } + field(55; RcptTotAmt; Decimal) + { + Caption = 'RcptTotAmt'; + AutoFormatType = 0; + } + field(56; ReqNbr; Text[10]) + { + Caption = 'ReqNbr'; + } + field(57; S4Future01; Text[30]) + { + Caption = 'S4Future01'; + } + field(58; S4Future02; Text[30]) + { + Caption = 'S4Future02'; + } + field(59; S4Future03; Decimal) + { + Caption = 'S4Future03'; + AutoFormatType = 0; + } + field(60; S4Future04; Decimal) + { + Caption = 'S4Future04'; + AutoFormatType = 0; + } + field(61; S4Future05; Decimal) + { + Caption = 'S4Future05'; + AutoFormatType = 0; + } + field(62; S4Future06; Decimal) + { + Caption = 'S4Future06'; + AutoFormatType = 0; + } + field(63; S4Future07; Date) + { + Caption = 'S4Future07'; + } + field(64; S4Future08; Date) + { + Caption = 'S4Future08'; + } + field(65; S4Future09; Integer) + { + Caption = 'S4Future09'; + } + field(66; S4Future10; Integer) + { + Caption = 'S4Future10'; + } + field(67; S4Future11; Text[10]) + { + Caption = 'S4Future11'; + } + field(68; S4Future12; Text[10]) + { + Caption = 'S4Future12'; + } + field(69; ServiceCallID; Text[10]) + { + Caption = 'ServiceCallID'; + } + field(70; ShipAddr1; Text[60]) + { + Caption = 'ShipAddr1'; + } + field(71; ShipAddr2; Text[60]) + { + Caption = 'ShipAddr2'; + } + field(72; ShipAddrID; Text[10]) + { + Caption = 'ShipAddrID'; + } + field(73; ShipAttn; Text[30]) + { + Caption = 'ShipAttn'; + } + field(74; ShipCity; Text[30]) + { + Caption = 'ShipCity'; + } + field(75; ShipCountry; Text[3]) + { + Caption = 'ShipCountry'; + } + field(76; ShipCustID; Text[15]) + { + Caption = 'ShipCustID'; + } + field(77; ShipEmail; Text[80]) + { + Caption = 'ShipEmail'; + } + field(78; ShipFax; Text[30]) + { + Caption = 'ShipFax'; + } + field(79; ShipName; Text[60]) + { + Caption = 'ShipName'; + } + field(80; ShipPhone; Text[30]) + { + Caption = 'ShipPhone'; + } + field(81; ShipSiteID; Text[10]) + { + Caption = 'ShipSiteID'; + } + field(82; ShipState; Text[3]) + { + Caption = 'ShipState'; + } + field(83; ShiptoID; Text[10]) + { + Caption = 'ShiptoID'; + } + field(84; ShiptoType; Text[1]) + { + Caption = 'ShiptoType'; + } + field(85; ShipVendAddrID; Text[10]) + { + Caption = 'ShipVendAddrID'; + } + field(86; ShipVendID; Text[15]) + { + Caption = 'ShipVendID'; + } + field(87; ShipVia; Text[15]) + { + Caption = 'ShipVia'; + } + field(88; ShipZip; Text[10]) + { + Caption = 'ShipZip'; + } + field(89; Status; Text[1]) + { + Caption = 'Status'; + } + field(90; TaxCntr00; Integer) + { + Caption = 'TaxCntr00'; + } + field(91; TaxCntr01; Integer) + { + Caption = 'TaxCntr01'; + } + field(92; TaxCntr02; Integer) + { + Caption = 'TaxCntr02'; + } + field(93; TaxCntr03; Integer) + { + Caption = 'TaxCntr03'; + } + field(94; TaxID00; Text[10]) + { + Caption = 'TaxID00'; + } + field(95; TaxID01; Text[10]) + { + Caption = 'TaxID01'; + } + field(96; TaxID02; Text[10]) + { + Caption = 'TaxID02'; + } + field(97; TaxID03; Text[10]) + { + Caption = 'TaxID03'; + } + field(98; TaxTot00; Decimal) + { + Caption = 'TaxTot00'; + AutoFormatType = 0; + } + field(99; TaxTot01; Decimal) + { + Caption = 'TaxTot01'; + AutoFormatType = 0; + } + field(100; TaxTot02; Decimal) + { + Caption = 'TaxTot02'; + AutoFormatType = 0; + } + field(101; TaxTot03; Decimal) + { + Caption = 'TaxTot03'; + AutoFormatType = 0; + } + field(102; Terms; Text[2]) + { + Caption = 'Terms'; + } + field(103; TxblTot00; Decimal) + { + Caption = 'TxblTot00'; + AutoFormatType = 0; + } + field(104; TxblTot01; Decimal) + { + Caption = 'TxblTot01'; + AutoFormatType = 0; + } + field(105; TxblTot02; Decimal) + { + Caption = 'TxblTot02'; + AutoFormatType = 0; + } + field(106; TxblTot03; Decimal) + { + Caption = 'TxblTot03'; + AutoFormatType = 0; + } + field(107; User1; Text[30]) + { + Caption = 'User1'; + } + field(108; User2; Text[30]) + { + Caption = 'User2'; + } + field(109; User3; Decimal) + { + Caption = 'User3'; + AutoFormatType = 0; + } + field(110; User4; Decimal) + { + Caption = 'User4'; + AutoFormatType = 0; + } + field(111; User5; Text[10]) + { + Caption = 'User5'; + } + field(112; User6; Text[10]) + { + Caption = 'User6'; + } + field(113; User7; Date) + { + Caption = 'User7'; + } + field(114; User8; Date) + { + Caption = 'User8'; + } + field(115; VendAddr1; Text[60]) + { + Caption = 'VendAddr1'; + } + field(116; VendAddr2; Text[60]) + { + Caption = 'VendAddr2'; + } + field(117; VendAddrID; Text[10]) + { + Caption = 'VendAddrID'; + } + field(118; VendAttn; Text[30]) + { + Caption = 'VendAttn'; + } + field(119; VendCity; Text[30]) + { + Caption = 'VendCity'; + } + field(120; VendCountry; Text[3]) + { + Caption = 'VendCountry'; + } + field(121; VendEmail; Text[80]) + { + Caption = 'VendEmail'; + } + field(122; VendFax; Text[30]) + { + Caption = 'VendFax'; + } + field(123; VendID; Text[15]) + { + Caption = 'VendID'; + } + field(124; VendName; Text[60]) + { + Caption = 'VendName'; + } + field(125; VendPhone; Text[30]) + { + Caption = 'VendPhone'; + } + field(126; VendState; Text[3]) + { + Caption = 'VendState'; + } + field(127; VendZip; Text[10]) + { + Caption = 'VendZip'; + } + field(128; VouchStage; Text[1]) + { + Caption = 'VouchStage'; + } + field(129; WSID; Integer) + { + Caption = 'VouchStage'; + } + } + + keys + { + key(Key1; PONbr) + { + Clustered = true; + } + } +} diff --git a/Apps/W1/HybridSL/app/src/Migration/SalesOrders/SLSOHeaderBuffer.Table.al b/Apps/W1/HybridSL/app/src/Migration/SalesOrders/SLSOHeaderBuffer.Table.al new file mode 100644 index 0000000000..27e716d747 --- /dev/null +++ b/Apps/W1/HybridSL/app/src/Migration/SalesOrders/SLSOHeaderBuffer.Table.al @@ -0,0 +1,839 @@ +// ------------------------------------------------------------------------------------------------ +// 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 47099 "SL SOHeader Buffer" +{ + Access = Internal; + DataClassification = CustomerContent; + ReplicateData = false; + + fields + { + field(1; AddressType; Text[1]) + { + Caption = 'AddressType'; + } + field(2; AdminHold; Integer) + { + Caption = 'AdminHold'; + } + field(3; AppliedToDocRef; Text[15]) + { + Caption = 'AppliedToDocRef'; + } + field(4; ApprDetails; Integer) + { + Caption = 'ApprDetails'; + } + field(5; ApprRMA; Integer) + { + Caption = 'ApprRMA'; + } + field(6; ApprTech; Integer) + { + Caption = 'ApprTech'; + } + field(7; ARAcct; Text[10]) + { + Caption = 'ARAcct'; + } + field(8; ARSub; Text[24]) + { + Caption = 'ARSub'; + } + field(9; ASID; Integer) + { + Caption = 'ASID'; + } + field(10; ASID01; Integer) + { + Caption = 'ASID01'; + } + field(11; AuthNbr; Text[20]) + { + Caption = 'AuthNbr'; + } + field(12; AutoPO; Integer) + { + Caption = 'AutoPO'; + } + field(13; AutoPOVendID; Text[15]) + { + Caption = 'AutoPOVendID'; + } + field(14; AwardProbability; Integer) + { + Caption = 'AwardProbability'; + } + field(15; BalDue; Decimal) + { + Caption = 'BalDue'; + AutoFormatType = 0; + } + field(16; BIInvoice; Text[1]) + { + Caption = 'BIInvoice'; + } + field(17; BillAddr1; Text[60]) + { + Caption = 'BillAddr1'; + } + field(18; BillAddr2; Text[60]) + { + Caption = 'BillAddr2'; + } + field(19; BillAddrSpecial; Integer) + { + Caption = 'BillAddrSpecial'; + } + field(20; BillAttn; Text[30]) + { + Caption = 'BillAttn'; + } + field(21; BillCity; Text[30]) + { + Caption = 'BillCity'; + } + field(22; BillCountry; Text[3]) + { + Caption = 'BillCountry'; + } + field(23; BillName; Text[60]) + { + Caption = 'BillName'; + } + field(24; BillPhone; Text[30]) + { + Caption = 'BillPhone'; + } + field(25; BillState; Text[3]) + { + Caption = 'BillState'; + } + field(26; BillThruProject; Integer) + { + Caption = 'BillThruProject'; + } + field(27; BillZip; Text[10]) + { + Caption = 'BillZip'; + } + field(28; BlktOrdNbr; Text[15]) + { + Caption = 'BlktOrdNbr'; + } + field(29; BookCntr; Integer) + { + Caption = 'BookCntr'; + } + field(30; BookCntrMisc; Integer) + { + Caption = 'BookCntrMisc'; + } + field(31; BuildAssyTime; Integer) + { + Caption = 'BuildAssyTime'; + } + field(32; BuildAvailDate; Date) + { + Caption = 'BuildAvailDate'; + } + field(33; BuildInvtID; Text[30]) + { + Caption = 'BuildInvtID'; + } + field(34; BuildQty; Decimal) + { + Caption = 'BuildQty'; + AutoFormatType = 0; + } + field(35; BuildQtyUpdated; Decimal) + { + Caption = 'BuildQtyUpdated'; + AutoFormatType = 0; + } + field(36; BuildSiteID; Text[10]) + { + Caption = 'BuildSiteID'; + } + field(37; BuyerID; Text[10]) + { + Caption = 'BuyerID'; + } + field(38; BuyerName; Text[60]) + { + Caption = 'BuyerName'; + } + field(39; CancelDate; Date) + { + Caption = 'CancelDate'; + } + field(40; Cancelled; Integer) + { + Caption = 'Cancelled'; + } + field(41; CancelShippers; Integer) + { + Caption = 'CancelShippers'; + } + field(42; CertID; Text[2]) + { + Caption = 'CertID'; + } + field(43; CertNoteID; Integer) + { + Caption = 'CertNoteID'; + } + field(44; ChainDisc; Text[15]) + { + Caption = 'ChainDisc'; + } + field(45; CmmnPct; Decimal) + { + Caption = 'CmmnPct'; + AutoFormatType = 0; + } + field(46; ConsolInv; Integer) + { + Caption = 'ConsolInv'; + } + field(47; ContractNbr; Text[30]) + { + Caption = 'ContractNbr'; + } + field(48; CpnyID; Text[10]) + { + Caption = 'CpnyID'; + } + field(49; CreditApprDays; Integer) + { + Caption = 'CreditApprDays'; + } + field(50; CreditApprLimit; Decimal) + { + Caption = 'CreditApprLimit'; + AutoFormatType = 0; + } + field(51; CreditChk; Integer) + { + Caption = 'CreditChk'; + } + field(52; CreditHold; Integer) + { + Caption = 'CreditHold'; + } + field(53; CreditHoldDate; Date) + { + Caption = 'CreditHoldDate'; + } + field(54; Crtd_DateTime; DateTime) + { + Caption = 'Crtd_DateTime'; + } + field(55; Crtd_Prog; Text[8]) + { + Caption = 'Crtd_Prog'; + } + field(56; Crtd_User; Text[10]) + { + Caption = 'Crtd_User'; + } + field(57; CuryBalDue; Decimal) + { + Caption = 'CuryBalDue'; + AutoFormatType = 0; + } + field(58; CuryEffDate; Date) + { + Caption = 'CuryEffDate'; + } + field(59; CuryID; Text[4]) + { + Caption = 'CuryID'; + } + field(60; CuryMultDiv; Text[1]) + { + Caption = 'CuryMultDiv'; + } + field(61; CuryPremFrtAmtAppld; Decimal) + { + Caption = 'CuryPremFrtAmtAppld'; + AutoFormatType = 0; + } + field(62; CuryRate; Decimal) + { + Caption = 'CuryRate'; + AutoFormatType = 0; + } + field(63; CuryRateType; Text[6]) + { + Caption = 'CuryRateType'; + } + field(64; CuryTotFrt; Decimal) + { + Caption = 'CuryTotFrt'; + AutoFormatType = 0; + } + field(65; CuryTotLineDisc; Decimal) + { + Caption = 'CuryTotLineDisc'; + AutoFormatType = 0; + } + field(66; CuryTotMerch; Decimal) + { + Caption = 'CuryTotMerch'; + AutoFormatType = 0; + } + field(67; CuryTotMisc; Decimal) + { + Caption = 'CuryTotMisc'; + AutoFormatType = 0; + } + field(68; CuryTotOrd; Decimal) + { + Caption = 'CuryTotOrd'; + AutoFormatType = 0; + } + field(69; CuryTotPmt; Decimal) + { + Caption = 'CuryTotPmt'; + AutoFormatType = 0; + } + field(70; CuryTotPremFrt; Decimal) + { + Caption = 'CuryTotPremFrt'; + AutoFormatType = 0; + } + field(71; CuryTotTax; Decimal) + { + Caption = 'CuryTotTax'; + AutoFormatType = 0; + } + field(72; CuryTotTxbl; Decimal) + { + Caption = 'CuryTotTxbl'; + AutoFormatType = 0; + } + field(73; CuryUnshippedBalance; Decimal) + { + Caption = 'CuryUnshippedBalance'; + AutoFormatType = 0; + } + field(74; CuryWholeOrdDisc; Decimal) + { + Caption = 'CuryWholeOrdDisc'; + AutoFormatType = 0; + } + field(75; CustGLClassID; Text[4]) + { + Caption = 'CustGLClassID'; + } + field(76; CustID; Text[15]) + { + Caption = 'CustID'; + } + field(77; CustOrdNbr; Text[25]) + { + Caption = 'CustOrdNbr'; + } + field(78; DateCancelled; Date) + { + Caption = 'DateCancelled'; + } + field(79; Dept; Text[30]) + { + Caption = 'Dept'; + } + field(80; DiscAcct; Text[10]) + { + Caption = 'DiscAcct'; + } + field(81; DiscPct; Decimal) + { + Caption = 'DiscPct'; + AutoFormatType = 0; + } + field(82; DiscSub; Text[24]) + { + Caption = 'DiscSub'; + } + field(83; "Div"; Text[30]) + { + Caption = 'Div'; + } + field(84; DropShip; Integer) + { + Caption = 'DropShip'; + } + field(85; EDI810; Integer) + { + Caption = 'EDI810'; + } + field(86; EDI856; Integer) + { + Caption = 'EDI856'; + } + field(87; EDIPOID; Text[10]) + { + Caption = 'EDIPOID'; + } + field(88; EventCntr; Integer) + { + Caption = 'EventCntr'; + } + field(89; FOBID; Text[15]) + { + Caption = 'FOBID'; + } + field(90; FrtAcct; Text[10]) + { + Caption = 'FrtAcct'; + } + field(91; FrtCollect; Integer) + { + Caption = 'FrtCollect'; + } + field(92; FrtSub; Text[24]) + { + Caption = 'FrtSub'; + } + field(93; FrtTermsID; Text[10]) + { + Caption = 'FrtTermsID'; + } + field(94; GeoCode; Text[10]) + { + Caption = 'GeoCode'; + } + field(95; InvcDate; Date) + { + Caption = 'InvcDate'; + } + field(96; InvcNbr; Text[15]) + { + Caption = 'InvcNbr'; + } + field(97; IRDemand; Integer) + { + Caption = 'IRDemand'; + } + field(98; LanguageID; Text[4]) + { + Caption = 'LanguageID'; + } + field(99; LineCntr; Integer) + { + Caption = 'LineCntr'; + } + field(100; LostSaleID; Text[2]) + { + Caption = 'LostSaleID'; + } + field(101; LUpd_DateTime; DateTime) + { + Caption = 'LUpd_DateTime'; + } + field(102; LUpd_Prog; Text[8]) + { + Caption = 'LUpd_Prog'; + } + field(103; LUpd_User; Text[10]) + { + Caption = 'LUpd_User'; + } + field(104; MarkFor; Integer) + { + Caption = 'MarkFor'; + } + field(105; MiscChrgCntr; Integer) + { + Caption = 'MiscChrgCntr'; + } + field(106; NextFunctionClass; Text[4]) + { + Caption = 'NextFunctionClass'; + } + field(107; NextFunctionID; Text[8]) + { + Caption = 'NextFunctionID'; + } + field(108; NoteId; Integer) + { + Caption = 'NoteId'; + } + field(109; OrdDate; Date) + { + Caption = 'OrdDate'; + } + field(110; OrdNbr; Text[15]) + { + Caption = 'OrdNbr'; + } + field(111; OrigOrdNbr; Text[15]) + { + Caption = 'OrigOrdNbr'; + } + field(112; PC_Status; Text[1]) + { + Caption = 'PC_Status'; + } + field(113; PerPost; Text[6]) + { + Caption = 'PerPost'; + } + field(114; PmtCntr; Integer) + { + Caption = 'PmtCntr'; + } + field(115; PremFrtAmtApplied; Decimal) + { + Caption = 'PremFrtAmtApplied'; + AutoFormatType = 0; + } + field(116; Priority; Integer) + { + Caption = 'Priority'; + } + field(117; ProjectID; Text[16]) + { + Caption = 'ProjectID'; + } + field(118; QuoteDate; Date) + { + Caption = 'QuoteDate'; + } + field(119; Released; Integer) + { + Caption = 'Released'; + } + field(120; ReleaseValue; Decimal) + { + Caption = 'ReleaseValue'; + AutoFormatType = 0; + } + field(121; RequireStepAssy; Integer) + { + Caption = 'RequireStepAssy'; + } + field(122; RequireStepInsp; Integer) + { + Caption = 'RequireStepInsp'; + } + field(123; RlseForInvc; Integer) + { + Caption = 'RlseForInvc'; + } + field(124; S4Future01; Text[30]) + { + Caption = 'S4Future01'; + } + field(125; S4Future02; Text[30]) + { + Caption = 'S4Future02'; + } + field(126; S4Future03; Decimal) + { + Caption = 'S4Future03'; + AutoFormatType = 0; + } + field(127; S4Future04; Decimal) + { + Caption = 'S4Future04'; + AutoFormatType = 0; + } + field(128; S4Future05; Decimal) + { + Caption = 'S4Future05'; + AutoFormatType = 0; + } + field(129; S4Future06; Decimal) + { + Caption = 'S4Future06'; + AutoFormatType = 0; + } + field(130; S4Future07; Date) + { + Caption = 'S4Future07'; + } + field(131; S4Future08; Date) + { + Caption = 'S4Future08'; + } + field(132; S4Future09; Integer) + { + Caption = 'S4Future09'; + } + field(133; S4Future10; Integer) + { + Caption = 'S4Future10'; + } + field(134; S4Future11; Text[10]) + { + Caption = 'S4Future11'; + } + field(135; S4Future12; Text[10]) + { + Caption = 'S4Future12'; + } + field(136; SellingSiteID; Text[10]) + { + Caption = 'SellingSiteID'; + } + field(137; SFOOrdNbr; Text[15]) + { + Caption = 'SFOOrdNbr'; + } + field(138; ShipAddr1; Text[60]) + { + Caption = 'ShipAddr1'; + } + field(139; ShipAddr2; Text[60]) + { + Caption = 'ShipAddr2'; + } + field(140; ShipAddrID; Text[10]) + { + Caption = 'ShipAddrID'; + } + field(141; ShipAddrSpecial; Integer) + { + Caption = 'ShipAddrSpecial'; + } + field(142; ShipAttn; Text[30]) + { + Caption = 'ShipAttn'; + } + field(143; ShipCity; Text[30]) + { + Caption = 'ShipCity'; + } + field(144; ShipCmplt; Integer) + { + Caption = 'ShipCmplt'; + } + field(145; ShipCountry; Text[3]) + { + Caption = 'ShipCountry'; + } + field(146; ShipCustID; Text[15]) + { + Caption = 'ShipCustID'; + } + field(147; ShipGeoCode; Text[10]) + { + Caption = 'ShipGeoCode'; + } + field(148; ShipName; Text[60]) + { + Caption = 'ShipName'; + } + field(149; ShipPhone; Text[30]) + { + Caption = 'ShipPhone'; + } + field(150; ShipSiteID; Text[10]) + { + Caption = 'ShipSiteID'; + } + field(151; ShipState; Text[3]) + { + Caption = 'ShipState'; + } + field(152; ShiptoID; Text[10]) + { + Caption = 'ShiptoID'; + } + field(153; ShiptoType; Text[1]) + { + Caption = 'ShiptoType'; + } + field(154; ShipVendID; Text[15]) + { + Caption = 'ShipVendID'; + } + field(155; ShipViaID; Text[15]) + { + Caption = 'ShipViaID'; + } + field(156; ShipZip; Text[10]) + { + Caption = 'ShipZip'; + } + field(157; SlsperID; Text[10]) + { + Caption = 'SlsperID'; + } + field(158; SOTypeID; Text[4]) + { + Caption = 'SOTypeID'; + } + field(159; Status; Text[1]) + { + Caption = 'Status'; + } + field(160; TaxID00; Text[10]) + { + Caption = 'TaxID00'; + } + field(161; TaxID01; Text[10]) + { + Caption = 'TaxID01'; + } + field(162; TaxID02; Text[10]) + { + Caption = 'TaxID02'; + } + field(163; TaxID03; Text[10]) + { + Caption = 'TaxID03'; + } + field(164; TermsID; Text[2]) + { + Caption = 'TermsID'; + } + field(165; TotCommCost; Decimal) + { + Caption = 'TotCommCost'; + AutoFormatType = 0; + } + field(166; TotCost; Decimal) + { + Caption = 'TotCost'; + AutoFormatType = 0; + } + field(167; TotFrt; Decimal) + { + Caption = 'TotFrt'; + AutoFormatType = 0; + } + field(168; TotLineDisc; Decimal) + { + Caption = 'TotLineDisc'; + AutoFormatType = 0; + } + field(169; TotMerch; Decimal) + { + Caption = 'TotMerch'; + AutoFormatType = 0; + } + field(170; TotMisc; Decimal) + { + Caption = 'TotMisc'; + AutoFormatType = 0; + } + field(171; TotOrd; Decimal) + { + Caption = 'TotOrd'; + AutoFormatType = 0; + } + field(172; TotPmt; Decimal) + { + Caption = 'TotPmt'; + AutoFormatType = 0; + } + field(173; TotPremFrt; Decimal) + { + Caption = 'TotPremFrt'; + AutoFormatType = 0; + } + field(174; TotShipWght; Decimal) + { + Caption = 'TotShipWght'; + AutoFormatType = 0; + } + field(175; TotTax; Decimal) + { + Caption = 'TotTax'; + AutoFormatType = 0; + } + field(176; TotTxbl; Decimal) + { + Caption = 'TotTxbl'; + AutoFormatType = 0; + } + field(177; UnshippedBalance; Decimal) + { + Caption = 'UnshippedBalance'; + AutoFormatType = 0; + } + field(178; User1; Text[30]) + { + Caption = 'User1'; + } + field(179; User10; Date) + { + Caption = 'User10'; + } + field(180; User2; Text[30]) + { + Caption = 'User2'; + } + field(181; User3; Text[30]) + { + Caption = 'User3'; + } + field(182; User4; Text[30]) + { + Caption = 'User4'; + } + field(183; User5; Decimal) + { + Caption = 'User5'; + AutoFormatType = 0; + } + field(184; User6; Decimal) + { + Caption = 'User6'; + AutoFormatType = 0; + } + field(185; User7; Text[10]) + { + Caption = 'User7'; + } + field(186; User8; Text[10]) + { + Caption = 'User8'; + } + field(187; User9; Date) + { + Caption = 'User9'; + } + field(188; VendAddrID; Text[10]) + { + Caption = 'VendAddrID'; + } + field(189; WeekendDelivery; Integer) + { + Caption = 'WeekendDelivery'; + } + field(190; WholeOrdDisc; Decimal) + { + Caption = 'WholeOrdDisc'; + AutoFormatType = 0; + } + field(191; WorkflowID; Integer) + { + Caption = 'WorkflowID'; + } + field(192; WorkflowStatus; Text[1]) + { + Caption = 'WorkflowStatus'; + } + field(193; WSID; Integer) + { + Caption = 'WSID'; + } + } + + keys + { + key(Key1; CpnyID, OrdNbr) + { + Clustered = true; + } + } +} diff --git a/Apps/W1/HybridSL/app/src/Migration/SalesOrders/SLSOLineBuffer.Table.al b/Apps/W1/HybridSL/app/src/Migration/SalesOrders/SLSOLineBuffer.Table.al new file mode 100644 index 0000000000..eb167d55e9 --- /dev/null +++ b/Apps/W1/HybridSL/app/src/Migration/SalesOrders/SLSOLineBuffer.Table.al @@ -0,0 +1,598 @@ +// ------------------------------------------------------------------------------------------------ +// 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 47100 "SL SOLine Buffer" +{ + Access = Internal; + DataClassification = CustomerContent; + ReplicateData = false; + + fields + { + field(1; AlternateID; Text[30]) + { + Caption = 'AlternateID'; + } + field(2; AltIDType; Text[1]) + { + Caption = 'AltIDType'; + } + field(3; AutoPO; Integer) + { + Caption = 'AutoPO'; + } + field(4; AutoPOVendID; Text[15]) + { + Caption = 'AutoPOVendID'; + } + field(5; BlktOrdLineRef; Text[5]) + { + Caption = 'BlktOrdLineRef'; + } + field(6; BlktOrdQty; Decimal) + { + Caption = 'BlktOrdQty'; + AutoFormatType = 0; + } + field(7; BMICost; Decimal) + { + Caption = 'BMICost'; + AutoFormatType = 0; + } + field(8; BMICuryID; Text[4]) + { + Caption = 'BMICuryID'; + } + field(9; BMIEffDate; Date) + { + Caption = 'BMIEffDate'; + } + field(10; BMIExtPriceInvc; Decimal) + { + Caption = 'BMIExtPriceInvc'; + AutoFormatType = 0; + } + field(11; BMIMultDiv; Text[1]) + { + Caption = 'BMIMultDiv'; + } + field(12; BMIRate; Decimal) + { + Caption = 'BMIRate'; + AutoFormatType = 0; + } + field(13; BMIRtTp; Text[6]) + { + Caption = 'BMIRtTp'; + } + field(14; BMISlsPrice; Decimal) + { + Caption = 'BMISlsPrice'; + AutoFormatType = 0; + } + field(15; BoundToWO; Integer) + { + Caption = 'BoundToWO'; + } + field(16; CancelDate; Date) + { + Caption = 'CancelDate'; + } + field(17; ChainDisc; Text[15]) + { + Caption = 'ChainDisc'; + } + field(18; CmmnPct; Decimal) + { + Caption = 'CmmnPct'; + AutoFormatType = 0; + } + field(19; CnvFact; Decimal) + { + Caption = 'CnvFact'; + AutoFormatType = 0; + } + field(20; COGSAcct; Text[10]) + { + Caption = 'COGSAcct'; + } + field(21; COGSSub; Text[24]) + { + Caption = 'COGSSub'; + } + field(22; CommCost; Decimal) + { + Caption = 'CommCost'; + AutoFormatType = 0; + } + field(23; Cost; Decimal) + { + Caption = 'Cost'; + AutoFormatType = 0; + } + field(24; CpnyID; Text[10]) + { + Caption = 'CpnyID'; + } + field(25; Crtd_DateTime; DateTime) + { + Caption = 'Crtd_DateTime'; + } + field(26; Crtd_Prog; Text[8]) + { + Caption = 'Crtd_Prog'; + } + field(27; Crtd_User; Text[10]) + { + Caption = 'Crtd_User'; + } + field(28; CuryCommCost; Decimal) + { + Caption = 'CuryCommCost'; + AutoFormatType = 0; + } + field(29; CuryCost; Decimal) + { + Caption = 'CuryCost'; + AutoFormatType = 0; + } + field(30; CuryListPrice; Decimal) + { + Caption = 'CuryListPrice'; + AutoFormatType = 0; + } + field(31; CurySlsPrice; Decimal) + { + Caption = 'CurySlsPrice'; + AutoFormatType = 0; + } + field(32; CurySlsPriceOrig; Decimal) + { + Caption = 'CurySlsPriceOrig'; + AutoFormatType = 0; + } + field(33; CuryTotCommCost; Decimal) + { + Caption = 'CuryTotCommCost'; + AutoFormatType = 0; + } + field(34; CuryTotCost; Decimal) + { + Caption = 'CuryTotCost'; + AutoFormatType = 0; + } + field(35; CuryTotOrd; Decimal) + { + Caption = 'CuryTotOrd'; + AutoFormatType = 0; + } + field(36; Descr; Text[60]) + { + Caption = 'Descr'; + } + field(37; DescrLang; Text[30]) + { + Caption = 'DescrLang'; + } + field(38; DiscAcct; Text[10]) + { + Caption = 'DiscAcct'; + } + field(39; DiscPct; Decimal) + { + Caption = 'DiscPct'; + AutoFormatType = 0; + } + field(40; DiscPrcType; Text[1]) + { + Caption = 'DiscPrcType'; + } + field(41; DiscSub; Text[24]) + { + Caption = 'DiscSub'; + } + field(42; Disp; Text[3]) + { + Caption = 'Disp'; + } + field(43; DropShip; Integer) + { + Caption = 'DropShip'; + } + field(44; InclForecastUsageClc; Integer) + { + Caption = 'InclForecastUsageClc'; + } + field(45; InspID; Text[2]) + { + Caption = 'InspID'; + } + field(46; InspNoteID; Integer) + { + Caption = 'InspNoteID'; + } + field(47; InvAcct; Text[10]) + { + Caption = 'InvAcct'; + } + field(48; InvSub; Text[24]) + { + Caption = 'InvSub'; + } + field(50; InvtID; Text[30]) + { + Caption = 'InvtID'; + } + field(51; IRDemand; Integer) + { + Caption = 'IRDemand'; + } + field(52; IRInvtID; Text[30]) + { + Caption = 'IRInvtID'; + } + field(53; IRProcessed; Integer) + { + Caption = 'IRProcessed'; + } + field(54; IRSiteID; Text[10]) + { + Caption = 'IRSiteID'; + } + field(55; ItemGLClassID; Text[4]) + { + Caption = 'ItemGLClassID'; + } + field(56; KitComponent; Integer) + { + Caption = 'KitComponent'; + } + field(57; LineNbr; Integer) + { + Caption = 'LineNbr'; + } + field(58; LineRef; Text[5]) + { + Caption = 'LineRef'; + } + field(59; ListPrice; Decimal) + { + Caption = 'ListPrice'; + AutoFormatType = 0; + } + field(60; LotSerialReq; Integer) + { + Caption = 'LotSerialReq'; + } + field(61; LUpd_DateTime; DateTime) + { + Caption = 'LUpd_DateTime'; + } + field(62; LUpd_Prog; Text[8]) + { + Caption = 'LUpd_Prog'; + } + field(63; LUpd_User; Text[10]) + { + Caption = 'LUpd_User'; + } + field(64; ManualCost; Integer) + { + Caption = 'ManualCost'; + } + field(65; ManualPrice; Integer) + { + Caption = 'ManualPrice'; + } + field(66; NoteId; Integer) + { + Caption = 'NoteId'; + } + field(67; OrdNbr; Text[15]) + { + Caption = 'OrdNbr'; + } + field(68; OrigINBatNbr; Text[10]) + { + Caption = 'OrigINBatNbr'; + } + field(69; OrigInvcNbr; Text[15]) + { + Caption = 'OrigInvcNbr'; + } + field(70; OrigInvtID; Text[30]) + { + Caption = 'OrigInvtID'; + } + field(71; OrigShipperCnvFact; Decimal) + { + Caption = 'OrigShipperCnvFact'; + AutoFormatType = 0; + } + field(72; OrigShipperID; Text[15]) + { + Caption = 'OrigShipperID'; + } + field(73; OrigShipperLineQty; Decimal) + { + Caption = 'OrigShipperLineQty'; + AutoFormatType = 0; + } + field(74; OrigShipperLineRef; Text[5]) + { + Caption = 'OrigShipperLineRef'; + } + field(75; OrigShipperUnitDesc; Text[6]) + { + Caption = 'OrigShipperUnitDesc'; + } + field(76; OrigShipperMultDiv; Text[1]) + { + Caption = 'OrigShipperMultDiv'; + } + field(77; PC_Status; Text[1]) + { + Caption = 'PC_Status'; + } + field(78; ProjectID; Text[16]) + { + Caption = 'ProjectID'; + } + field(79; PromDate; Date) + { + Caption = 'PromDate'; + } + field(80; QtyBO; Decimal) + { + Caption = 'QtyBO'; + AutoFormatType = 0; + } + field(81; QtyCloseShip; Decimal) + { + Caption = 'QtyCloseShip'; + AutoFormatType = 0; + } + field(82; QtyFuture; Decimal) + { + Caption = 'QtyFuture'; + AutoFormatType = 0; + } + field(83; QtyOpenShip; Decimal) + { + Caption = 'QtyOpenShip'; + AutoFormatType = 0; + } + field(84; QtyOrd; Decimal) + { + Caption = 'QtyOrd'; + AutoFormatType = 0; + } + field(85; QtyShip; Decimal) + { + Caption = 'QtyShip'; + AutoFormatType = 0; + } + field(86; QtyToInvc; Decimal) + { + Caption = 'QtyToInvc'; + AutoFormatType = 0; + } + field(87; ReasonCd; Text[6]) + { + Caption = 'ReasonCd'; + } + field(88; RebateID; Text[10]) + { + Caption = 'RebateID'; + } + field(89; ReqDate; Date) + { + Caption = 'ReqDate'; + } + field(90; S4Future01; Text[30]) + { + Caption = 'S4Future01'; + } + field(91; S4Future02; Text[30]) + { + Caption = 'S4Future02'; + } + field(92; S4Future03; Decimal) + { + Caption = 'S4Future03'; + AutoFormatType = 0; + } + field(93; S4Future04; Decimal) + { + Caption = 'S4Future04'; + AutoFormatType = 0; + } + field(94; S4Future05; Decimal) + { + Caption = 'S4Future05'; + AutoFormatType = 0; + } + field(95; S4Future06; Decimal) + { + Caption = 'S4Future06'; + AutoFormatType = 0; + } + field(96; S4Future07; Date) + { + Caption = 'S4Future07'; + } + field(97; S4Future08; Date) + { + Caption = 'S4Future08'; + } + field(98; S4Future09; Integer) + { + Caption = 'S4Future09'; + } + field(99; S4Future10; Integer) + { + Caption = 'S4Future10'; + } + field(100; S4Future11; Text[10]) + { + Caption = 'S4Future11'; + } + field(101; S4Future12; Text[10]) + { + Caption = 'S4Future12'; + } + field(102; SalesPriceID; Text[15]) + { + Caption = 'SalesPriceID'; + } + field(103; Sample; Integer) + { + Caption = 'Sample'; + } + field(104; SchedCntr; Integer) + { + Caption = 'SchedCntr'; + } + field(105; Service; Integer) + { + Caption = 'Service'; + } + field(106; ShipWght; Decimal) + { + Caption = 'ShipWght'; + AutoFormatType = 0; + } + field(107; SiteID; Text[10]) + { + Caption = 'SiteID'; + } + field(108; SlsAcct; Text[10]) + { + Caption = 'SlsAcct'; + } + field(109; SlsperID; Text[10]) + { + Caption = 'SlsperID'; + } + field(110; SlsPrice; Decimal) + { + Caption = 'SlsPrice'; + AutoFormatType = 0; + } + field(111; SlsPriceID; Text[15]) + { + Caption = 'SlsPriceID'; + } + field(112; SlsPriceOrig; Decimal) + { + Caption = 'SlsPriceOrig'; + AutoFormatType = 0; + } + field(113; SlsSub; Text[24]) + { + Caption = 'SlsSub'; + } + field(114; SplitLots; Integer) + { + Caption = 'SplitLots'; + } + field(115; Status; Text[1]) + { + Caption = 'Status'; + } + field(116; TaskID; Text[32]) + { + Caption = 'TaskID'; + } + field(117; Taxable; Integer) + { + Caption = 'Taxable'; + } + field(118; TaxCat; Text[10]) + { + Caption = 'TaxCat'; + } + field(119; TotCommCost; Decimal) + { + Caption = 'TotCommCost'; + AutoFormatType = 0; + } + field(120; TotCost; Decimal) + { + Caption = 'TotCost'; + AutoFormatType = 0; + } + field(121; TotOrd; Decimal) + { + Caption = 'TotOrd'; + AutoFormatType = 0; + } + field(122; TotShipWght; Decimal) + { + Caption = 'TotShipWght'; + AutoFormatType = 0; + } + field(123; UnitDesc; Text[6]) + { + Caption = 'UnitDesc'; + } + field(124; UnitMultDiv; Text[1]) + { + Caption = 'UnitMultDiv'; + } + field(125; User1; Text[30]) + { + Caption = 'User1'; + } + field(126; User10; Date) + { + Caption = 'User10'; + } + field(127; User2; Text[30]) + { + Caption = 'User2'; + } + field(128; User3; Text[30]) + { + Caption = 'User3'; + } + field(129; User4; Text[30]) + { + Caption = 'User4'; + } + field(130; User5; Decimal) + { + Caption = 'User5'; + AutoFormatType = 0; + } + field(131; User6; Decimal) + { + Caption = 'User6'; + AutoFormatType = 0; + } + field(132; User7; Text[10]) + { + Caption = 'User7'; + } + field(133; User8; Text[10]) + { + Caption = 'User8'; + } + field(134; User9; Date) + { + Caption = 'User9'; + } + } + + keys + { + key(Key1; CpnyID, OrdNbr, LineRef) + { + Clustered = true; + } + } +} diff --git a/Apps/W1/HybridSL/app/src/Migration/SalesOrders/SLSOMigrator.Codeunit.al b/Apps/W1/HybridSL/app/src/Migration/SalesOrders/SLSOMigrator.Codeunit.al new file mode 100644 index 0000000000..abbe6918d3 --- /dev/null +++ b/Apps/W1/HybridSL/app/src/Migration/SalesOrders/SLSOMigrator.Codeunit.al @@ -0,0 +1,262 @@ +// ------------------------------------------------------------------------------------------------ +// 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.Foundation.NoSeries; +using Microsoft.Foundation.Shipping; +using Microsoft.Inventory.Item; +using Microsoft.Inventory.Location; +using Microsoft.Sales.Customer; +using Microsoft.Sales.Document; +using Microsoft.Sales.Setup; +using System.Integration; + +codeunit 47007 "SL SO Migrator" +{ + var + SLHelperFunctions: Codeunit "SL Helper Functions"; + CustomerNotMigratedWarningTxt: Label 'Sales Order was skipped because Customer (%1) has not been migrated.', Locked = true; + ItemWarningTxt: Label 'Sales Order Line was skipped because the Item is invalid. Item: %1', Locked = true; + ItemUnitOfMeasureWarningTxt: Label 'Sales Order Line was skipped because the Item Unit of Measure is invalid. Item: %1, Unit of Measure: %2', Locked = true; + MessageCodeNoDataTxt: Label 'No Data', Locked = true; + MessageCodeOrderTypeTxt: Label 'Order Type', Locked = true; + MessageTextNoLinesTxt: Label 'No lines to migrate for Sales Order %1.', Locked = true; + MessageTextNoLocationCodeTxt: Label 'Location Code for Sales Order Line could not be determined. Location: %1, Item: %2', Locked = true; + MessageTextNoOrdersTxt: Label 'No open Sales Orders to migrate.', Locked = true; + MessageTextBehaviorNotSupportedTxt: Label 'Sales Order (%1) skipped because its Order Type behavior is not supported.', Locked = true; + MigratedFromSLDescriptionTxt: Label 'Migrated from SL', Locked = true; + MigrationAreaSalesOrderLineTxt: Label 'Sales Order Line', Locked = true; + MigrationSOTxt: Label 'SO', Locked = true; + OpenStatusTxt: Label 'O', Locked = true; + PostMigrationTypeSOTxt: Label 'SALES ORDERS', Locked = true; + SLSOHeaderTxt: Label 'SL SOHeader', Locked = true; + SLSOLineTxt: Label 'SL SOLine', Locked = true; + + procedure MigrateOpenSalesOrders() + var + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + begin + SLCompanyAdditionalSettings.Get(CompanyName); + if not SLCompanyAdditionalSettings.GetGLModuleEnabled() then + exit; + if not SLCompanyAdditionalSettings.GetReceivablesModuleEnabled() then + exit; + if not SLCompanyAdditionalSettings.GetMigrateOpenSOs() then + exit; + + MigrateOpenSalesOrderData(); + end; + + local procedure MigrateOpenSalesOrderData() + var + Customer: Record Customer; + SalesHeader: Record "Sales Header"; + SalesReceivablesSetup: Record "Sales & Receivables Setup"; + SLMigrationWarnings: Record "SL Migration Warnings"; + SLSOHeader: Record "SL SOHeader Buffer"; + DataMigrationErrorLogging: Codeunit "Data Migration Error Logging"; + DataMigrationFacadeHelper: Codeunit "Data Migration Facade Helper"; + SalesDocumentStatus: Enum "Sales Document Status"; + SalesDocumentType: Enum "Sales Document Type"; + SalesHeaderShippingAdvice: Enum "Sales Header Shipping Advice"; + ShipViaID: Code[10]; + SalesHeaderDimSetID: Integer; + begin + SLSOHeader.SetFilter(CpnyID, '= %1', CopyStr(CompanyName, 1, MaxStrLen(SLSOHeader.CpnyID))); + SLSOHeader.SetFilter(Status, '= %1', OpenStatusTxt); + if not SLSOHeader.FindSet() then begin + SLHelperFunctions.LogPostMigrationDataMessage(PostMigrationTypeSOTxt, SLSOHeaderTxt, MessageCodeNoDataTxt, MessageTextNoOrdersTxt); + exit; + end; + UpdateSalesOrderNumberSeries(); + + repeat + if not CheckIfSalesOrderBehavior(SLSOHeader.SOTypeID) then begin + SLHelperFunctions.LogPostMigrationDataMessage(PostMigrationTypeSOTxt, SLSOHeaderTxt, MessageCodeOrderTypeTxt, StrSubstNo(MessageTextBehaviorNotSupportedTxt, SLSOHeader.OrdNbr.TrimEnd())); + continue; + end; + + if Customer.Get(SLSOHeader.CustID) then begin + DataMigrationErrorLogging.SetLastRecordUnderProcessing(Format(SLSOHeader.RecordId)); + Clear(SalesHeader); + + SalesHeader.Validate("Document Type", SalesDocumentType::Order); + SalesHeader.Validate("No.", SLSOHeader.OrdNbr); + SalesHeader.Status := SalesDocumentStatus::Open; + SalesHeader.Insert(true); + + SalesHeader.Validate("Sell-to Customer No.", SLSOHeader.CustID); + SalesHeader.Validate("Bill-to Customer No.", SLSOHeader.CustID); + SalesHeader.Validate("Order Date", SLSOHeader.OrdDate); + SalesHeader.Validate("Posting Date", SLSOHeader.OrdDate); + SalesHeader.Validate("Document Date", SLSOHeader.OrdDate); + SalesHeader.Validate("Posting Description", MigratedFromSLDescriptionTxt); + + if SLSOHeader.ShipViaID <> '' then begin + ShipViaID := CopyStr(SLSOHeader.ShipViaID, 1, MaxStrLen(SalesHeader."Shipment Method Code")); + DataMigrationFacadeHelper.CreateShipmentMethodIfNeeded(ShipViaID, ShipViaID + '-' + MigratedFromSLDescriptionTxt); + SalesHeader.Validate("Shipment Method Code", ShipViaID); + end; + + if SLSOHeader.ShipCmplt = 1 then + SalesHeader.Validate("Shipping Advice", SalesHeaderShippingAdvice::Complete) + else + SalesHeader.Validate("Shipping Advice", SalesHeaderShippingAdvice::Partial); + + UpdateShipToAddressOnSalesOrder(SLSOHeader, SalesHeader); + SalesHeaderDimSetID := GetSalesOrderDimSetID(SLSOHeader); + if SalesHeaderDimSetID <> 0 then + SalesHeader.Validate("Dimension Set ID", SalesHeaderDimSetID); + + if SalesReceivablesSetup.FindFirst() then begin + SalesHeader.Validate("Posting No. Series", SalesReceivablesSetup."Posted Invoice Nos."); + SalesHeader.Validate("Shipping No. Series", SalesReceivablesSetup."Posted Shipment Nos."); + end; + + SalesHeader.Modify(true); + CreateLines(SalesHeader); + + end else + SLMigrationWarnings.InsertWarning(MigrationSOTxt, SLSOHeader.OrdNbr, StrSubstNo(CustomerNotMigratedWarningTxt, SLSOHeader.CustID)); + until SLSOHeader.Next() = 0; + end; + + procedure CheckIfSalesOrderBehavior(SOTypeID: Text[4]): Boolean; + var + SLSOType: Record "SL SOType Buffer"; + SOBehaviorTxt: Label 'SO', Locked = true; + begin + SLSOType.SetFilter(CpnyID, '= %1', CompanyName); + SLSOType.SetFilter(SOTypeID, '= %1', SOTypeID); + SLSOType.SetFilter(Behavior, '= %1', SOBehaviorTxt); + if not SLSOType.IsEmpty then + exit(true); + exit(false); + end; + + procedure CreateLines(SalesHeader: Record "Sales Header") + var + Item: Record Item; + SalesLine: Record "Sales Line"; + SLMigrationWarnings: Record "SL Migration Warnings"; + SLSOLine: Record "SL SOLine Buffer"; + InventoryID: Code[20]; + LocationCode: Code[10]; + SalesUnitOfMeasure: Text[6]; + begin + SLSOLine.SetFilter(CpnyID, '= %1', CompanyName); + SLSOLine.SetRange(OrdNbr, SalesHeader."No."); + SLSOLine.SetFilter(QtyBO, '> %1', 0); + if not SLSOLine.FindSet() then begin + SLHelperFunctions.LogPostMigrationDataMessage(PostMigrationTypeSOTxt, SLSOLineTxt, MessageCodeNoDataTxt, StrSubstNo(MessageTextNoLinesTxt, SalesHeader."No.")); + exit; + end; + + repeat + SalesLine."Document Type" := SalesLine."Document Type"::Order; + SalesLine."Sell-to Customer No." := SalesHeader."Sell-to Customer No."; + SalesLine."Document No." := SalesHeader."No."; + Evaluate(SalesLine."Line No.", SLSOLine.LineRef); + + InventoryID := CopyStr(SLSOLine.InvtID.TrimEnd(), 1, MaxStrLen(Item."No.")); + SalesUnitOfMeasure := CopyStr(SLSOLine.UnitDesc.TrimEnd(), 1, MaxStrLen(SLSOLine.UnitDesc)); + LocationCode := CopyStr(SLSOLine.SiteID.TrimEnd(), 1, MaxStrLen(SLSOLine.SiteID)); + if not ValidateSOLineItem(InventoryID) then begin + // Log warning and skip line + SLMigrationWarnings.InsertWarning(MigrationAreaSalesOrderLineTxt, SalesHeader."No.", StrSubstNo(ItemWarningTxt, InventoryID)); + continue; + end; + if not ValidateSOLineItemUOM(InventoryID, SalesUnitOfMeasure) then begin + SLMigrationWarnings.InsertWarning(MigrationAreaSalesOrderLineTxt, SalesHeader."No.", StrSubstNo(ItemUnitOfMeasureWarningTxt, InventoryID, SalesUnitOfMeasure)); + continue; + end; + if not ValidateSOLineLocationCode(SLSOLine.SiteID) then begin + SLHelperFunctions.LogPostMigrationDataMessage(PostMigrationTypeSOTxt, SLSOLineTxt, MessageCodeOrderTypeTxt, StrSubstNo(MessageTextNoLocationCodeTxt, SLSOLine.SiteID, InventoryID)); + LocationCode := ''; + continue; + end; + if Item.Get(InventoryID) then begin + SalesLine.Validate(Type, SalesLine.Type::Item); + SalesLine.Validate("No.", InventoryID); + if LocationCode <> '' then + SalesLine.Validate("Location Code", LocationCode); + SalesLine.Validate("Unit of Measure", SalesUnitOfMeasure); + SalesLine.Validate(Quantity, SLSOLine.QtyBO); + SalesLine.Validate("Unit Price", SLSOLine.SlsPrice); + // SalesLine.Validate(Amount, SLSOLine.TotOrd); + SalesLine.Insert(true); + end; + until SLSOLine.Next() = 0; + end; + + local procedure GetSalesOrderDimSetID(SLSOHeader: Record "SL SOHeader Buffer"): Integer + var + SLCustomer: Record "SL Customer"; + SLARSalesSubaccount: Text[24]; + SalesOrderDimSetID: Integer; + begin + // Use the A/R Sales Subaccount from the SL Customer record + SLCustomer.Get(SLSOHeader.CustID); + if SLCustomer.SlsSub.TrimEnd() <> '' then + SLARSalesSubaccount := SLCustomer.SlsSub; + + SalesOrderDimSetID := SLHelperFunctions.GetDimSetIDByFullSubaccount(SLARSalesSubaccount); + exit(SalesOrderDimSetID); + end; + + procedure UpdateSalesOrderNumberSeries() + var + NoSeries: Record "No. Series"; + SalesReceivablesSetup: Record "Sales & Receivables Setup"; + begin + if SalesReceivablesSetup.FindFirst() then begin + NoSeries.Get(SalesReceivablesSetup."Order Nos."); + NoSeries."Manual Nos." := true; + NoSeries.Modify(); + end; + end; + + local procedure UpdateShipToAddressOnSalesOrder(SLSOHeader: Record "SL SOHeader Buffer"; var SalesHeader: Record "Sales Header") + begin + if SLSOHeader.ShipName.TrimEnd() <> '' then + SalesHeader."Ship-to Name" := CopyStr(SLSOHeader.ShipName.TrimEnd(), 1, MaxStrLen(SalesHeader."Ship-to Name")); + if SLSOHeader.ShipAttn.TrimEnd() <> '' then + SalesHeader."Ship-to Contact" := CopyStr(SLSOHeader.ShipAttn.TrimEnd(), 1, MaxStrLen(SalesHeader."Ship-to Contact")); + if SLSOHeader.ShipAddr1.TrimEnd() <> '' then + SalesHeader."Ship-to Address" := CopyStr(SLSOHeader.ShipAddr1.TrimEnd(), 1, MaxStrLen(SalesHeader."Ship-to Address")); + if SLSOHeader.ShipAddr2.TrimEnd() <> '' then + SalesHeader."Ship-to Address 2" := CopyStr(SLSOHeader.ShipAddr2.TrimEnd(), 1, MaxStrLen(SalesHeader."Ship-to Address 2")); + if SLSOHeader.ShipCity.TrimEnd() <> '' then + SalesHeader."Ship-to City" := CopyStr(SLSOHeader.ShipCity.TrimEnd(), 1, MaxStrLen(SalesHeader."Ship-to City")); + if SLSOHeader.ShipState.TrimEnd() <> '' then + SalesHeader."Ship-to County" := CopyStr(SLSOHeader.ShipState.TrimEnd(), 1, MaxStrLen(SalesHeader."Ship-to County")); + if SLSOHeader.ShipCountry.TrimEnd() <> '' then + SalesHeader."Ship-to Country/Region Code" := CopyStr(SLSOHeader.ShipCountry.TrimEnd(), 1, MaxStrLen(SalesHeader."Ship-to Country/Region Code")); + if SLSOHeader.ShipZip.TrimEnd() <> '' then + SalesHeader."Ship-to Post Code" := CopyStr(SLSOHeader.ShipZip.TrimEnd(), 1, MaxStrLen(SalesHeader."Ship-to Post Code")); + end; + + local procedure ValidateSOLineItem(ItemNo: Code[20]): Boolean + var + Item: Record Item; + begin + exit(Item.Get(ItemNo)); + end; + + local procedure ValidateSOLineItemUOM(ItemNo: Code[20]; UnitOfMeasureCode: Code[10]): Boolean + var + ItemUnitOfMeasure: Record "Item Unit of Measure"; + begin + exit(ItemUnitOfMeasure.Get(ItemNo, UnitOfMeasureCode)); + end; + + local procedure ValidateSOLineLocationCode(LocationCode: Code[10]): Boolean + var + Location: Record Location; + begin + exit(Location.Get(LocationCode)); + end; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/app/src/Migration/SalesOrders/SLSOTypeBuffer.Table.al b/Apps/W1/HybridSL/app/src/Migration/SalesOrders/SLSOTypeBuffer.Table.al new file mode 100644 index 0000000000..acf53156e6 --- /dev/null +++ b/Apps/W1/HybridSL/app/src/Migration/SalesOrders/SLSOTypeBuffer.Table.al @@ -0,0 +1,331 @@ +// ------------------------------------------------------------------------------------------------ +// 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 47101 "SL SOType Buffer" +{ + Access = Internal; + DataClassification = CustomerContent; + ReplicateData = false; + + fields + { + field(76; Active; Integer) + { + Caption = 'Active'; + } + field(1; ARAcct; Text[10]) + { + Caption = 'ARAcct'; + } + field(2; ARSub; Text[31]) + { + Caption = 'ARSub'; + } + field(3; AssemblyOnSat; Integer) + { + Caption = 'AssemblyOnSat'; + } + field(4; AssemblyOnSun; Integer) + { + Caption = 'AssemblyOnSun'; + } + field(5; AutoReleaseReturns; Integer) + { + Caption = 'AutoReleaseReturns'; + } + field(6; Behavior; Text[4]) + { + Caption = 'Behavior'; + } + field(7; CancelDays; Integer) + { + Caption = 'CancelDays'; + } + field(8; COGSAcct; Text[10]) + { + Caption = 'COGSAcct'; + } + field(9; COGSSub; Text[31]) + { + Caption = 'COGSSub'; + } + field(10; CpnyID; Text[10]) + { + Caption = 'CpnyID'; + } + field(11; Crtd_DateTime; DateTime) + { + Caption = 'Crtd_DateTime'; + } + field(12; Crtd_Prog; Text[8]) + { + Caption = 'Crtd_Prog'; + } + field(13; Crtd_User; Text[10]) + { + Caption = 'Crtd_User'; + } + field(14; Descr; Text[30]) + { + Caption = 'Descr'; + } + field(15; DiscAcct; Text[10]) + { + Caption = 'DiscAcct'; + } + field(16; DiscSub; Text[31]) + { + Caption = 'DiscSub'; + } + field(17; Disp; Text[3]) + { + Caption = 'Disp'; + } + field(18; EnterLotSer; Integer) + { + Caption = 'EnterLotSer'; + } + field(19; FrtAcct; Text[10]) + { + Caption = 'FrtAcct'; + } + field(20; FrtSub; Text[31]) + { + Caption = 'FrtSub'; + } + field(21; InvAcct; Text[10]) + { + Caption = 'InvAcct'; + } + field(22; InvcNbrAR; Integer) + { + Caption = 'InvcNbrAR'; + } + field(23; InvcNbrPrefix; Text[15]) + { + Caption = 'InvcNbrPrefix'; + } + field(24; InvcNbrType; Text[4]) + { + Caption = 'InvcNbrType'; + } + field(25; InvSub; Text[31]) + { + Caption = 'InvSub'; + } + field(26; LastInvcNbr; Text[10]) + { + Caption = 'LastInvcNbr'; + } + field(27; LastOrdNbr; Text[10]) + { + Caption = 'LastOrdNbr'; + } + field(28; LastShipperNbr; Text[10]) + { + Caption = 'LastShipperNbr'; + } + field(29; LUpd_DateTime; DateTime) + { + Caption = 'LUpd_DateTime'; + } + field(30; LUpd_Prog; Text[8]) + { + Caption = 'LUpd_Prog'; + } + field(31; LUpd_User; Text[10]) + { + Caption = 'LUpd_User'; + } + field(32; MiscAcct; Text[10]) + { + Caption = 'MiscAcct'; + } + field(33; MiscSub; Text[31]) + { + Caption = 'MiscSub'; + } + field(34; NoAutoCreateShippers; Integer) + { + Caption = 'NoAutoCreateShippers'; + } + field(35; NoteID; Integer) + { + Caption = 'NoteID'; + } + field(36; OrdNbrPrefix; Text[15]) + { + Caption = 'OrdNbrPrefix'; + } + field(37; OrdNbrType; Text[4]) + { + Caption = 'OrdNbrType'; + } + field(38; ProjectStatus; Text[1]) + { + Caption = 'ProjectStatus'; + } + field(39; RequireDetailAppr; Integer) + { + Caption = 'RequireDetailAppr'; + } + field(40; RequireManRelease; Integer) + { + Caption = 'RequireManRelease'; + } + field(41; RequireTechAppr; Integer) + { + Caption = 'RequireTechAppr'; + } + field(42; ReturnOrderTypeID; Text[4]) + { + Caption = 'ReturnOrderTypeID'; + } + field(43; S4Future01; Text[30]) + { + Caption = 'S4Future01'; + } + field(44; S4Future02; Text[30]) + { + Caption = 'S4Future02'; + } + field(45; S4Future03; Decimal) + { + Caption = 'S4Future03'; + AutoFormatType = 0; + } + field(46; S4Future04; Decimal) + { + Caption = 'S4Future04'; + AutoFormatType = 0; + } + field(47; S4Future05; Decimal) + { + Caption = 'S4Future05'; + AutoFormatType = 0; + } + field(48; S4Future06; Decimal) + { + Caption = 'S4Future06'; + AutoFormatType = 0; + } + field(49; S4Future07; Date) + { + Caption = 'S4Future07'; + } + field(50; S4Future08; Date) + { + Caption = 'S4Future08'; + } + field(51; S4Future09; Integer) + { + Caption = 'S4Future09'; + } + field(52; S4Future10; Integer) + { + Caption = 'S4Future10'; + } + field(53; S4Future11; Text[10]) + { + Caption = 'S4Future11'; + } + field(54; S4Future12; Text[10]) + { + Caption = 'S4Future12'; + } + field(55; ShipperPrefix; Text[15]) + { + Caption = 'ShipperPrefix'; + } + field(56; ShipperType; Text[4]) + { + Caption = 'ShipperType'; + } + field(57; ShiptoType; Text[1]) + { + Caption = 'ShiptoType'; + } + field(58; SlsAcct; Text[10]) + { + Caption = 'SlsAcct'; + } + field(59; SlsSub; Text[31]) + { + Caption = 'SlsSub'; + } + field(60; SOTypeID; Text[4]) + { + Caption = 'SOTypeID'; + } + field(61; StdOrdType; Integer) + { + Caption = 'StdOrdType'; + } + field(62; TemplateProject; Text[16]) + { + Caption = 'TemplateProject'; + } + field(63; User1; Text[30]) + { + Caption = 'User1'; + } + field(64; User10; Date) + { + Caption = 'User10'; + } + field(65; User2; Text[30]) + { + Caption = 'User2'; + } + field(66; User3; Text[30]) + { + Caption = 'User3'; + } + field(67; User4; Text[30]) + { + Caption = 'User4'; + } + field(68; User5; Decimal) + { + Caption = 'User5'; + AutoFormatType = 0; + } + field(69; User6; Decimal) + { + Caption = 'User6'; + AutoFormatType = 0; + } + field(70; User7; Text[10]) + { + Caption = 'User7'; + } + field(71; User8; Text[10]) + { + Caption = 'User8'; + } + field(72; User9; Date) + { + Caption = 'User9'; + } + field(73; WholeOrdDiscAcct; Text[10]) + { + Caption = 'WholeOrdDiscAcct'; + } + field(74; WholeOrdDiscSub; Text[31]) + { + Caption = 'WholeOrdDiscSub'; + } + } + + keys + { + key(Key1; CpnyID, SOTypeID) + { + Clustered = true; + } + } +} diff --git a/Apps/W1/HybridSL/app/src/Migration/Support/CashManager/SLAddress.Table.al b/Apps/W1/HybridSL/app/src/Migration/Support/CashManager/SLAddress.Table.al new file mode 100644 index 0000000000..8edf42251a --- /dev/null +++ b/Apps/W1/HybridSL/app/src/Migration/Support/CashManager/SLAddress.Table.al @@ -0,0 +1,214 @@ +// ------------------------------------------------------------------------------------------------ +// 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 47095 "SL Address" +{ + Caption = 'SL Address'; + DataClassification = CustomerContent; + + fields + { + field(1; Addr1; Text[60]) + { + Caption = 'Addr1'; + } + field(2; Addr2; Text[60]) + { + Caption = 'Addr2'; + } + field(3; AddrId; Text[10]) + { + Caption = 'AddrId'; + } + field(4; Attn; Text[30]) + { + Caption = 'Attn'; + } + field(5; City; Text[30]) + { + Caption = 'City'; + } + field(6; Country; Text[3]) + { + Caption = 'Country'; + } + field(7; Crtd_DateTime; DateTime) + { + Caption = 'Crtd_DateTime'; + } + field(8; Crtd_Prog; Text[8]) + { + Caption = 'Crtd_Prog'; + } + field(9; Crtd_User; Text[10]) + { + Caption = 'Crtd_User'; + } + field(10; Fax; Text[30]) + { + Caption = 'Fax'; + } + field(11; LUpd_DateTime; DateTime) + { + Caption = 'LUpd_DateTime'; + } + field(12; LUpd_Prog; Text[8]) + { + Caption = 'LUpd_Prog'; + } + field(13; LUpd_User; Text[10]) + { + Caption = 'LUpd_User'; + } + field(14; Name; Text[60]) + { + Caption = 'Name'; + } + field(15; Phone; Text[30]) + { + Caption = 'Phone'; + } + field(16; S4Future01; Text[30]) + { + Caption = 'S4Future01'; + } + field(17; S4Future02; Text[30]) + { + Caption = 'S4Future02'; + } + field(18; S4Future03; Decimal) + { + Caption = 'S4Future03'; + AutoFormatType = 0; + } + field(19; S4Future04; Decimal) + { + Caption = 'S4Future04'; + AutoFormatType = 0; + } + field(20; S4Future05; Decimal) + { + Caption = 'S4Future05'; + AutoFormatType = 0; + } + field(21; S4Future06; Decimal) + { + Caption = 'S4Future06'; + AutoFormatType = 0; + } + field(22; S4Future07; Date) + { + Caption = 'S4Future07'; + } + field(23; S4Future08; Date) + { + Caption = 'S4Future08'; + } + field(24; S4Future09; Integer) + { + Caption = 'S4Future09'; + } + field(25; S4Future10; Integer) + { + Caption = 'S4Future10'; + } + field(26; S4Future11; Text[10]) + { + Caption = 'S4Future11'; + } + field(27; S4Future12; Text[10]) + { + Caption = 'S4Future12'; + } + field(28; Salut; Text[30]) + { + Caption = 'Salut'; + } + field(29; State; Text[3]) + { + Caption = 'State'; + } + field(30; TaxId00; Text[10]) + { + Caption = 'TaxId00'; + } + field(31; TaxId01; Text[10]) + { + Caption = 'TaxId01'; + } + field(32; TaxId02; Text[10]) + { + Caption = 'TaxId02'; + } + field(33; TaxId03; Text[10]) + { + Caption = 'TaxId03'; + } + field(34; TaxLocId; Text[15]) + { + Caption = 'TaxLocId'; + } + field(35; TaxRegNbr; Text[15]) + { + Caption = 'TaxRegNbr'; + } + field(36; User1; Text[30]) + { + Caption = 'User1'; + } + field(37; User2; Text[30]) + { + Caption = 'User2'; + } + field(38; User3; Decimal) + { + Caption = 'User3'; + AutoFormatType = 0; + } + field(39; User4; Decimal) + { + Caption = 'User4'; + AutoFormatType = 0; + } + field(40; User5; Text[10]) + { + Caption = 'User5'; + } + field(41; User6; Text[10]) + { + Caption = 'User6'; + } + field(42; User7; Date) + { + Caption = 'User7'; + } + field(43; User8; Date) + { + Caption = 'User8'; + } + field(44; User9; Text[45]) + { + Caption = 'User9'; + } + field(45; User10; Text[30]) + { + Caption = 'User10'; + } + field(46; Zip; Text[10]) + { + Caption = 'Zip'; + } + } + + keys + { + key(PK; AddrId) + { + Clustered = true; + } + } +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/app/src/Migration/Support/CashManager/SLCASetup.Table.al b/Apps/W1/HybridSL/app/src/Migration/Support/CashManager/SLCASetup.Table.al new file mode 100644 index 0000000000..aa6719f2f0 --- /dev/null +++ b/Apps/W1/HybridSL/app/src/Migration/Support/CashManager/SLCASetup.Table.al @@ -0,0 +1,233 @@ +// ------------------------------------------------------------------------------------------------ +// 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 47090 "SL CASetup" +{ + Caption = 'SL CASetup'; + DataClassification = CustomerContent; + + fields + { + field(1; AcceptTransDate; Date) + { + Caption = 'Accept Trans Date'; + } + field(2; ARHoldingAcct; Text[10]) + { + Caption = 'AR Holding Account'; + } + field(3; ARHoldingSub; Text[24]) + { + Caption = 'AR Holding Sub'; + } + field(4; AutoBatRpt; Integer) + { + Caption = 'Auto Bat Rpt'; + } + field(5; BnkChgType; Text[2]) + { + Caption = 'Bank Charge Type'; + } + field(6; ClearAcct; Text[10]) + { + Caption = 'Clear Account'; + } + field(7; ClearSub; Text[24]) + { + Caption = 'Clear Sub'; + } + field(8; Crtd_DateTime; DateTime) + { + Caption = 'Created Date Time'; + } + field(9; Crtd_Prog; Text[8]) + { + Caption = 'Created Program'; + } + field(10; Crtd_User; Text[10]) + { + Caption = 'Created User'; + } + field(11; CurrPerNbr; Text[6]) + { + Caption = 'Current Period Number'; + } + field(12; DfltRateType; Text[6]) + { + Caption = 'Default Rate Type'; + } + field(13; DfltRcnclAmt; Integer) + { + Caption = 'Default Reconcile Amount'; + } + field(14; GlPostOpt; Text[1]) + { + Caption = 'GL Post Option'; + } + field(15; Init; Integer) + { + Caption = 'Init'; + } + field(16; lastbatnbr; Text[10]) + { + Caption = 'Last Batch Number'; + } + field(17; LUpd_DateTime; DateTime) + { + Caption = 'Last Updated Date Time'; + } + field(18; LUpd_Prog; Text[8]) + { + Caption = 'Last Updated Program'; + } + field(19; LUpd_User; Text[10]) + { + Caption = 'Last Updated User'; + } + field(20; MCuryBatRpt; Integer) + { + Caption = 'M Cury Bat Rpt'; + } + field(21; NbrAvgDay; Integer) + { + Caption = 'Number Average Day'; + } + field(22; NoteID; Integer) + { + Caption = 'Note ID'; + } + field(23; paststartdate; Date) + { + Caption = 'Past Start Date'; + } + field(24; PerNbr; Text[6]) + { + Caption = 'Period Number'; + } + field(25; PerretBal; Integer) + { + Caption = 'Per Ret Bal'; + } + field(26; PerRetTran; Integer) + { + Caption = 'Per Ret Tran'; + } + field(27; PostGLDetail; Integer) + { + Caption = 'Post GL Detail'; + } + field(28; PrtEmpName; Integer) + { + Caption = 'Print Emp Name'; + } + field(29; S4Future01; Text[30]) + { + Caption = 'S4 Future 01'; + } + field(30; S4Future02; Text[30]) + { + Caption = 'S4 Future 02'; + } + field(31; S4Future03; Decimal) + { + Caption = 'S4 Future 03'; + AutoFormatType = 0; + } + field(32; S4Future04; Decimal) + { + Caption = 'S4 Future 04'; + AutoFormatType = 0; + } + field(33; S4Future05; Decimal) + { + Caption = 'S4 Future 05'; + AutoFormatType = 0; + } + field(34; S4Future06; Decimal) + { + Caption = 'S4 Future 06'; + AutoFormatType = 0; + } + field(35; S4Future07; Date) + { + Caption = 'S4 Future 07'; + } + field(36; S4Future08; Date) + { + Caption = 'S4 Future 08'; + } + field(37; S4Future09; Integer) + { + Caption = 'S4 Future 09'; + } + field(38; S4Future10; Integer) + { + Caption = 'S4 Future 10'; + } + field(39; S4Future11; Text[10]) + { + Caption = 'S4 Future 11'; + } + field(40; S4Future12; Text[10]) + { + Caption = 'S4 Future 12'; + } + field(41; SetUpId; Text[2]) + { + Caption = 'Setup ID'; + } + field(42; ShowGLInfo; Integer) + { + Caption = 'Show GL Info'; + } + field(43; ShowLastBankRecs; Integer) + { + Caption = 'Show Last Bank Recs'; + } + field(44; User1; Text[30]) + { + Caption = 'User 1'; + } + field(45; User2; Text[30]) + { + Caption = 'User 2'; + } + field(46; User3; Decimal) + { + Caption = 'User 3'; + AutoFormatType = 0; + } + field(47; User4; Decimal) + { + Caption = 'User 4'; + AutoFormatType = 0; + } + field(48; User5; Text[10]) + { + Caption = 'User 5'; + } + field(49; User6; Text[10]) + { + Caption = 'User 6'; + } + field(50; User7; Date) + { + Caption = 'User 7'; + } + field(51; User8; Date) + { + Caption = 'User 8'; + } + } + + keys + { + key(PK; SetUpId) + { + Clustered = false; + } + } +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/app/src/Migration/Support/CashManager/SLCashAcct.Table.al b/Apps/W1/HybridSL/app/src/Migration/Support/CashManager/SLCashAcct.Table.al new file mode 100644 index 0000000000..ad7e9bebcc --- /dev/null +++ b/Apps/W1/HybridSL/app/src/Migration/Support/CashManager/SLCashAcct.Table.al @@ -0,0 +1,252 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DataMigration.SL; + +table 47094 "SL CashAcct" +{ + Caption = 'SL CashAcct'; + DataClassification = CustomerContent; + + fields + { + field(1; AcceptGLUpdates; Integer) + { + Caption = 'AcceptGLUpdates'; + } + field(2; AcctNbr; Text[30]) + { + Caption = 'AcctNbr'; + } + field(3; AcctType; Text[1]) + { + Caption = 'AcctType'; + } + field(4; Active; Integer) + { + Caption = 'Active'; + } + field(5; Addr1; Text[30]) + { + Caption = 'Addr1'; + } + field(6; Addr2; Text[30]) + { + Caption = 'Addr2'; + } + field(7; AddrID; Text[10]) + { + Caption = 'AddrID'; + } + field(8; Attn; Text[30]) + { + Caption = 'Attn'; + } + field(9; BankAcct; Text[10]) + { + Caption = 'BankAcct'; + } + field(10; BankID; Text[10]) + { + Caption = 'BankID'; + } + field(11; BankSub; Text[24]) + { + Caption = 'BankSub'; + } + field(12; CashAcctName; Text[30]) + { + Caption = 'CashAcctName'; + } + field(13; City; Text[30]) + { + Caption = 'City'; + } + field(14; Country; Text[3]) + { + Caption = 'Country'; + } + field(15; CpnyID; Text[30]) + { + Caption = 'CpnyID'; + } + field(16; Crtd_DateTime; DateTime) + { + Caption = 'Crtd_DateTime'; + } + field(17; Crtd_Prog; Text[8]) + { + Caption = 'Crtd_Prog'; + } + field(18; Crtd_User; Text[10]) + { + Caption = 'Crtd_User'; + } + field(19; CurrentBal; Decimal) + { + Caption = 'CurrentBal'; + AutoFormatType = 0; + } + field(20; curycurrentbal; Decimal) + { + Caption = 'curycurrentbal'; + AutoFormatType = 0; + } + field(21; CuryID; Text[4]) + { + Caption = 'CuryID'; + } + field(22; CustID; Text[15]) + { + Caption = 'CustID'; + } + field(23; Fax; Text[15]) + { + Caption = 'Fax'; + } + field(24; LastAutoCheckNbr; Text[10]) + { + Caption = 'LastAutoCheckNbr'; + } + field(25; LastManualCheckNbr; Text[10]) + { + Caption = 'LastManualCheckNbr'; + } + field(26; LUpd_DateTime; DateTime) + { + Caption = 'LUpd_DateTime'; + } + field(27; LUpd_Prog; Text[8]) + { + Caption = 'LUpd_Prog'; + } + field(28; LUpd_User; Text[10]) + { + Caption = 'LUpd_User'; + } + field(29; Name; Text[30]) + { + Caption = 'Name'; + } + field(30; NoteID; Integer) + { + Caption = 'NoteID'; + } + field(31; Phone; Text[15]) + { + Caption = 'Phone'; + } + field(32; S4Future01; Text[30]) + { + Caption = 'S4Future01'; + } + field(33; S4Future02; Text[30]) + { + Caption = 'S4Future02'; + } + field(34; S4Future03; Decimal) + { + Caption = 'S4Future03'; + AutoFormatType = 0; + } + field(35; S4Future04; Decimal) + { + Caption = 'S4Future04'; + AutoFormatType = 0; + } + field(36; S4Future05; Decimal) + { + Caption = 'S4Future05'; + AutoFormatType = 0; + } + field(37; S4Future06; Decimal) + { + Caption = 'S4Future06'; + AutoFormatType = 0; + } + field(38; S4Future07; Date) + { + Caption = 'S4Future07'; + } + field(39; S4Future08; Date) + { + Caption = 'S4Future08'; + } + field(40; S4Future09; Integer) + { + Caption = 'S4Future09'; + } + field(41; S4Future10; Integer) + { + Caption = 'S4Future10'; + } + field(42; S4Future11; Text[10]) + { + Caption = 'S4Future11'; + } + field(43; S4Future12; Text[10]) + { + Caption = 'S4Future12'; + } + field(44; Salut; Text[30]) + { + Caption = 'Salut'; + } + field(45; State; Text[3]) + { + Caption = 'State'; + } + field(46; transitnbr; Text[9]) + { + Caption = 'transitnbr'; + } + field(47; User1; Text[30]) + { + Caption = 'User1'; + } + field(48; User2; Text[30]) + { + Caption = 'User2'; + } + field(49; User3; Decimal) + { + Caption = 'User3'; + AutoFormatType = 0; + } + field(50; User4; Decimal) + { + Caption = 'User4'; + AutoFormatType = 0; + } + field(51; User5; Text[10]) + { + Caption = 'User5'; + } + field(52; User6; Text[10]) + { + Caption = 'User6'; + } + field(53; User7; Date) + { + Caption = 'User7'; + } + field(54; User8; Date) + { + Caption = 'User8'; + } + field(55; Zip; Text[10]) + { + Caption = 'Zip'; + } + } + + keys + { + key(PK; CpnyID, BankAcct, BankSub) + { + Clustered = true; + } + } +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/app/src/Migration/Support/CashManager/SLCashManagerMigrator.Codeunit.al b/Apps/W1/HybridSL/app/src/Migration/Support/CashManager/SLCashManagerMigrator.Codeunit.al new file mode 100644 index 0000000000..d08fbbfe01 --- /dev/null +++ b/Apps/W1/HybridSL/app/src/Migration/Support/CashManager/SLCashManagerMigrator.Codeunit.al @@ -0,0 +1,263 @@ +// ------------------------------------------------------------------------------------------------ +// 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.Bank.BankAccount; +using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Finance.GeneralLedger.Journal; +using System.Integration; + +codeunit 47010 "SL Cash Manager Migrator" +{ + var + BankWarningTxt: Label 'Unable to get %1 posting account.', Comment = '%1 = Posting Group', Locked = true; + BatchNameTxt: Label 'SLCASH', locked = true; + BatchDescriptionTxt: Label 'SL Cash Manager Migration Batch', Locked = true; + DescriptionTxt: Label 'Migrated SL Cash Account Current Balance Amount', Locked = true; + GeneralLbl: Label 'GENERAL', Locked = true; + + procedure MigrateCashManagerModule() + var + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + begin + SLCompanyAdditionalSettings.Get(CompanyName); + if not SLCompanyAdditionalSettings.GetGLModuleEnabled() then + exit; + if not SLCompanyAdditionalSettings.GetCashManagerModuleEnabled() then + exit; + + MigrateCashAccounts(); + end; + + procedure MigrateCashAccounts() + var + SLCashAcct: Record "SL CashAcct"; + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + DataMigrationErrorLogging: Codeunit "Data Migration Error Logging"; + begin + SLCashAcct.SetRange(CpnyID, CompanyName); + SLCashAcct.SetRange(Active, 1); + if not SLCashAcct.FindSet() then + exit; + repeat + DataMigrationErrorLogging.SetLastRecordUnderProcessing(SLCashAcct.CpnyID.TrimEnd() + '|' + SLCashAcct.BankAcct.TrimEnd() + '|' + SLCashAcct.BankSub.TrimEnd()); + CreateBankAccount(SLCashAcct); + if not SLCompanyAdditionalSettings.GetMigrateOnlyCashAcctMaster() then + CreateBankTransactions(SLCashAcct); + until SLCashAcct.Next() = 0; + end; + + procedure CreateBankAccount(SLCashAcct: Record "SL CashAcct") + var + BankAccount: Record "Bank Account"; + SLAddress: Record "SL Address"; + SLHelperFunctions: Codeunit "SL Helper Functions"; + begin + if SLCashAcct.BankAcct = '' then begin + SLHelperFunctions.LogPostMigrationDataMessage('CASH MANAGER', 'SL CashAcct', '', 'BankAcct is blank for Cash Account ' + SLCashAcct.CashAcctName.TrimEnd() + '.'); + exit + end; + if BankAccount.Get(SLCashAcct.AcctNbr.TrimEnd()) then + exit; + + BankAccount.Validate("No.", SLCashAcct.BankAcct.TrimEnd()); + BankAccount.Validate(Name, SLCashAcct.CashAcctName.TrimEnd()); + BankAccount.Validate("Bank Account No.", SLCashAcct.AcctNbr.TrimEnd()); + BankAccount."Bank Acc. Posting Group" := GetOrCreateBankAccPostingGroup(SLCashAcct.BankAcct); + BankAccount."Transit No." := CopyStr(SLCashAcct.transitnbr, 1, MaxStrLen(BankAccount."Transit No.")); + if SLCashAcct.AddrID <> '' then + if SLAddress.Get(SLCashAcct.AddrID) then begin + BankAccount.Address := CopyStr(SLAddress.Addr1.TrimEnd(), 1, MaxStrLen(BankAccount.Address)); + BankAccount."Address 2" := CopyStr(SLAddress.Addr2.TrimEnd(), 1, MaxStrLen(BankAccount."Address 2")); + BankAccount.Validate(City, SLAddress.City.TrimEnd()); + BankAccount.Contact := CopyStr(SLAddress.Attn.TrimEnd(), 1, MaxStrLen(BankAccount.Contact)); + BankAccount."Phone No." := CopyStr(SLAddress.Phone.TrimEnd(), 1, MaxStrLen(BankAccount."Phone No.")); + BankAccount.Validate("Country/Region Code", SLAddress.Country.TrimEnd()); + BankAccount."Fax No." := CopyStr(SLAddress.Fax.TrimEnd(), 1, MaxStrLen(BankAccount."Fax No.")); + BankAccount.Validate("Post Code", SLAddress.Zip.TrimEnd()); + BankAccount.County := CopyStr(SLAddress.State.TrimEnd(), 1, MaxStrLen(BankAccount.County)); + end; + BankAccount.Insert(true); + + SLHelperFunctions.LogPostMigrationDataMessage('CASH MANAGER', 'SL CashAcct', 'Data Missing', 'Bank Account ' + SLCashAcct.BankAcct.TrimEnd() + ' created successfully in D365BC.'); + end; + + procedure CreateBankTransactions(SLCashAcct: Record "SL CashAcct") + var + BankAccount: Record "Bank Account"; + GenJournalLine: Record "Gen. Journal Line"; + SLCASetup: Record "SL CASetup"; + SLCashSumD: Record "SL CashSumD"; + SLHelperFunctions: Codeunit "SL Helper Functions"; + SLPopulateFiscalPeriods: Codeunit "SL Populate Fiscal Periods"; + PostingAccountNumber: Code[20]; + PeriodEndDate: Date; + CurrentCashBalance: Decimal; + TotalDisbursements: Decimal; + TotalReceipts: Decimal; + DimSetID: Integer; + SLCASetupIDTxt: Label 'CA', Locked = true; + begin + if SLCashAcct.BankAcct = '' then begin + SLHelperFunctions.LogPostMigrationDataMessage('CASH MANAGER', 'SL CashAcct', 'Data Missing', 'BankAcct is blank for Cash Account ' + SLCashAcct.CashAcctName.TrimEnd() + '.'); + exit; + end; + if SLCashAcct.BankSub = '' then begin + SLHelperFunctions.LogPostMigrationDataMessage('CASH MANAGER', 'SL CashAcct', 'Data Missing', 'BankSub is blank for Cash Account ' + SLCashAcct.CashAcctName.TrimEnd() + '.'); + exit; + end; + if not BankAccount.Get(SLCashAcct.BankAcct.TrimEnd()) then begin + SLHelperFunctions.LogPostMigrationDataMessage('CASH MANAGER', 'Bank Account', 'Data Missing', 'Bank Account ' + SLCashAcct.BankAcct.TrimEnd() + ' not found in D365BC.'); + exit; + end; + if not GetBankAccPostingAccountNumber(PostingAccountNumber, BankAccount."Bank Acc. Posting Group") then begin + SLHelperFunctions.LogPostMigrationDataMessage('CASH MANAGER', 'Bank Account Posting Group', 'Data Missing', 'Unable to get posting account for Bank Account Posting Group ' + BankAccount."Bank Acc. Posting Group" + '.'); + exit; + end; + if not SLCASetup.Get(SLCASetupIDTxt) then begin + SLHelperFunctions.LogPostMigrationDataMessage('CASH MANAGER', 'SL CASetup', 'Data Missing', 'SL CASetup record not found.'); + exit; + end; + + SLCashSumD.SetRange(CpnyID, CompanyName()); + SLCashSumD.SetRange(BankAcct, SLCashAcct.BankAcct.TrimEnd()); + SLCashSumD.SetRange(BankSub, SLCashAcct.BankSub.TrimEnd()); + SLCashSumD.SetFilter(TranDate, '>%1', SLCASetup.paststartdate); + if not SLCashSumD.FindSet() then begin + SLHelperFunctions.LogPostMigrationDataMessage('CASH MANAGER', 'SL CashSumD', 'Data Missing', 'No SL CashSumD records found for Cash Account ' + SLCashAcct.BankAcct.TrimEnd() + ' and Bank Sub ' + SLCashAcct.BankSub.TrimEnd() + '.'); + exit; + end; + + SLCashSumD.CalcSums(Disbursements); + TotalDisbursements := SLCashSumD.Disbursements; + SLCashSumD.CalcSums(Receipts); + TotalReceipts := SLCashSumD.Receipts; + CurrentCashBalance := TotalReceipts - TotalDisbursements; + + if CurrentCashBalance <> 0 then begin + PeriodEndDate := SLPopulateFiscalPeriods.GetCalendarEndDateOfGLPeriod(SLCASetup.PerNbr); + CreateBankJournalLine( + GenJournalLine, + 'SLCASHBALANCE', + DescriptionTxt, + '', + PeriodEndDate, + PostingAccountNumber, + CurrentCashBalance, + BankAccount."No."); + + DimSetID := SLHelperFunctions.GetDimSetIDByFullSubaccount(SLCashAcct.BankSub); + GenJournalLine.Validate("Dimension Set ID", DimSetID); + GenJournalLine.Modify(true); + end; + end; + + procedure GetOrCreateBankAccPostingGroup(BankAcct: Text[10]): Code[20] + var + BankAccountPostingGroup: Record "Bank Account Posting Group"; + GLAccount: Record "G/L Account"; + begin + if not GLAccount.Get(BankAcct) then + exit; + + // If a posting group already exists for this GL account use it. + BankAccountPostingGroup.SetRange("G/L Account No.", BankAcct.TrimEnd()); + if BankAccountPostingGroup.FindFirst() then + exit(BankAccountPostingGroup.Code); + + BankAccountPostingGroup.Code := 'SL' + Format(GetNextPostingGroupNumber()); + BankAccountPostingGroup."G/L Account No." := CopyStr(BankAcct.TrimEnd(), 1, MaxStrLen(BankAccountPostingGroup."G/L Account No.")); + BankAccountPostingGroup.Insert(true); + exit(BankAccountPostingGroup.Code); + end; + + procedure GetNextPostingGroupNumber(): Integer + var + BankAccountPostingGroup: Record "Bank Account Posting Group"; + begin + BankAccountPostingGroup.SetFilter(Code, 'SL' + '*'); + if BankAccountPostingGroup.IsEmpty then + exit(1); + + exit(BankAccountPostingGroup.Count + 1); + end; + + procedure GetBankAccPostingAccountNumber(var GLAccountNumber: Code[20]; BankAccPostingGroup: Code[20]): Boolean + var + BankAccountPostingGroup: Record "Bank Account Posting Group"; + SLHelperFunctions: Codeunit "SL Helper Functions"; + begin + if not BankAccountPostingGroup.Get(BankAccPostingGroup) then begin + SLHelperFunctions.LogPostMigrationDataMessage('CASH MANAGER', 'Bank Account Posting Group', 'Data Missing', 'Bank Account Posting Group ' + BankAccPostingGroup + ' not found.'); + Session.LogMessage('0000HRD', StrSubstNo(BankWarningTxt, BankAccPostingGroup), Verbosity::Normal, DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, 'Category', SLHelperFunctions.GetTelemetryCategory()); + exit(false); + end; + + GLAccountNumber := BankAccountPostingGroup."G/L Account No."; + exit(true); + end; + + procedure CreateBankJournalLine(var GenJournalLine: Record "Gen. Journal Line"; DocumentNo: Code[20]; Description: Text[100]; ExternalDocumentNo: Code[35]; PostingDate: Date; OffsetAccount: Code[20]; TranAmount: Decimal; BankAccount: Code[20]) + var + GenJournalLineCurrent: Record "Gen. Journal Line"; + GenJournalTemplate: Record "Gen. Journal Template"; + JournalTemplateName: Code[10]; + LineNumber: Integer; + begin + JournalTemplateName := GeneralLbl; + CreateGeneralJournalBatchIfNeeded(JournalTemplateName); + + GenJournalLineCurrent.SetRange("Journal Template Name", JournalTemplateName); + GenJournalLineCurrent.SetRange("Journal Batch Name", BatchNameTxt); + if GenJournalLineCurrent.FindLast() then + LineNumber := GenJournalLineCurrent."Line No." + 10 + else + LineNumber := 10; + + GenJournalTemplate.Get(JournalTemplateName); + Clear(GenJournalLine); + GenJournalLine.SetHideValidation(true); + GenJournalLine.Validate("Source Code", GenJournalTemplate."Source Code"); + GenJournalLine.Validate("Journal Template Name", JournalTemplateName); + GenJournalLine.Validate("Journal Batch Name", BatchNameTxt); + GenJournalLine.Validate("Line No.", LineNumber); + GenJournalLine.Validate("Document Type", GenJournalLine."Document Type"::" "); + GenJournalLine.Validate("Document No.", DocumentNo); + GenJournalLine.Validate("External Document No.", ExternalDocumentNo); + GenJournalLine.Validate("Account Type", GenJournalLine."Account Type"::"Bank Account"); + GenJournalLine.Validate("Account No.", BankAccount); + GenJournalLine.Validate("Description", Description); + GenJournalLine.Validate("Document Date", PostingDate); + GenJournalLine.Validate("Posting Date", PostingDate); + GenJournalLine.Validate("Amount", TranAmount); + GenJournalLine.Validate("Bal. Account Type", GenJournalLine."Bal. Account Type"::"G/L Account"); + GenJournalLine.Validate("Bal. Account No.", OffsetAccount); + 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.Insert(true); + end; + + local procedure CreateGeneralJournalBatchIfNeeded(JournalTemplateName: Code[10]) + var + GenJournalBatch: Record "Gen. Journal Batch"; + begin + GenJournalBatch.SetRange(Name, BatchNameTxt); + GenJournalBatch.SetRange("Journal Template Name", JournalTemplateName); + + if GenJournalBatch.FindFirst() then + exit; + + Clear(GenJournalBatch); + GenJournalBatch.Validate(Name, BatchNameTxt); + GenJournalBatch.Validate(Description, BatchDescriptionTxt); + GenJournalBatch.Validate("Journal Template Name", JournalTemplateName); + GenJournalBatch.SetupNewBatch(); + GenJournalBatch.Insert(true); + end; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/app/src/Migration/Support/CashManager/SLCashSumD.Table.al b/Apps/W1/HybridSL/app/src/Migration/Support/CashManager/SLCashSumD.Table.al new file mode 100644 index 0000000000..dcde576711 --- /dev/null +++ b/Apps/W1/HybridSL/app/src/Migration/Support/CashManager/SLCashSumD.Table.al @@ -0,0 +1,203 @@ +// ------------------------------------------------------------------------------------------------ +// 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 47093 "SL CashSumD" +{ + Caption = 'SL CashSumD'; + DataClassification = CustomerContent; + + fields + { + field(1; BankAcct; Text[10]) + { + Caption = 'Bank Account'; + } + field(2; BankSub; Text[24]) + { + Caption = 'Bank Sub'; + } + field(3; ConCuryDisbursements; Decimal) + { + Caption = 'Con Cury Disbursements'; + AutoFormatType = 0; + } + field(4; ConCuryReceipts; Decimal) + { + Caption = 'Con Cury Receipts'; + AutoFormatType = 0; + } + field(5; Condisbursements; Decimal) + { + Caption = 'Con Disbursements'; + AutoFormatType = 0; + } + field(6; ConReceipts; Decimal) + { + Caption = 'Con Receipts'; + AutoFormatType = 0; + } + field(7; CpnyID; Text[30]) + { + Caption = 'Company ID'; + } + field(8; Crtd_DateTime; DateTime) + { + Caption = 'Created Date Time'; + } + field(9; Crtd_Prog; Text[8]) + { + Caption = 'Created Program'; + } + field(10; Crtd_User; Text[10]) + { + Caption = 'Created User'; + } + field(11; CuryDisbursements; Decimal) + { + Caption = 'Cury Disbursements'; + AutoFormatType = 0; + } + field(12; CuryID; Text[4]) + { + Caption = 'Currency ID'; + AutoFormatType = 0; + } + field(13; CuryReceipts; Decimal) + { + Caption = 'Cury Receipts'; + AutoFormatType = 0; + } + field(14; Disbursements; Decimal) + { + Caption = 'Disbursements'; + AutoFormatType = 0; + } + field(15; LUpd_DateTime; DateTime) + { + Caption = 'Last Updated Date Time'; + } + field(16; LUpd_Prog; Text[8]) + { + Caption = 'Last Updated Program'; + } + field(17; LUpd_User; Text[10]) + { + Caption = 'Last Updated User'; + } + field(18; NoteID; Integer) + { + Caption = 'Note ID'; + } + field(19; PerNbr; Text[6]) + { + Caption = 'Period Number'; + } + field(20; Receipts; Decimal) + { + Caption = 'Receipts'; + AutoFormatType = 0; + } + field(21; S4Future01; Text[30]) + { + Caption = 'S4 Future 01'; + } + field(22; S4Future02; Text[30]) + { + Caption = 'S4 Future 02'; + } + field(23; S4Future03; Decimal) + { + Caption = 'S4 Future 03'; + AutoFormatType = 0; + } + field(24; S4Future04; Decimal) + { + Caption = 'S4 Future 04'; + AutoFormatType = 0; + } + field(25; S4Future05; Decimal) + { + Caption = 'S4 Future 05'; + AutoFormatType = 0; + } + field(26; S4Future06; Decimal) + { + Caption = 'S4 Future 06'; + AutoFormatType = 0; + } + field(27; S4Future07; Date) + { + Caption = 'S4 Future 07'; + } + field(28; S4Future08; Date) + { + Caption = 'S4 Future 08'; + } + field(29; S4Future09; Integer) + { + Caption = 'S4 Future 09'; + } + field(30; S4Future10; Integer) + { + Caption = 'S4 Future 10'; + } + field(31; S4Future11; Text[10]) + { + Caption = 'S4 Future 11'; + } + field(32; S4Future12; Text[10]) + { + Caption = 'S4 Future 12'; + } + field(33; TranDate; Date) + { + Caption = 'Transaction Date'; + } + field(34; User1; Text[30]) + { + Caption = 'User 1'; + } + field(35; User2; Text[30]) + { + Caption = 'User 2'; + } + field(36; User3; Decimal) + { + Caption = 'User 3'; + AutoFormatType = 0; + } + field(37; User4; Decimal) + { + Caption = 'User 4'; + AutoFormatType = 0; + } + field(38; User5; Text[10]) + { + Caption = 'User 5'; + } + field(39; User6; Text[10]) + { + Caption = 'User 6'; + } + field(40; User7; Date) + { + Caption = 'User 7'; + } + field(41; User8; Date) + { + Caption = 'User 8'; + } + } + + keys + { + key(PK; CpnyID, BankAcct, BankSub, PerNbr, TranDate) + { + Clustered = true; + } + } +} 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 74903c0f74..578c731844 100644 --- a/Apps/W1/HybridSL/app/src/Migration/Support/SLHelperFunctions.Codeunit.al +++ b/Apps/W1/HybridSL/app/src/Migration/Support/SLHelperFunctions.Codeunit.al @@ -13,6 +13,7 @@ using Microsoft.Finance.GeneralLedger.Ledger; using Microsoft.Finance.GeneralLedger.Posting; using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Foundation.PaymentTerms; +using Microsoft.Foundation.UOM; using Microsoft.Inventory.Costing; using Microsoft.Inventory.Item; using Microsoft.Inventory.Journal; @@ -113,6 +114,35 @@ codeunit 47023 "SL Helper Functions" end; end; + procedure GetDimSetIDByFullSubaccount(Subaccount: Text[24]): Integer + var + SLAccountMigrator: Codeunit "SL Account Migrator"; + SLPopulateAccountHistory: Codeunit "SL Populate Account History"; + 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]; + DimSetID: Integer; + NbrOfSegments: Integer; + begin + NbrOfSegments := SLPopulateAccountHistory.GetNumberOfSegments(); + SubSegment_1 := SLAccountMigrator.GetSegmentValueFromSubaccount(Subaccount, 1, NbrOfSegments); + SubSegment_2 := SLAccountMigrator.GetSegmentValueFromSubaccount(Subaccount, 2, NbrOfSegments); + SubSegment_3 := SLAccountMigrator.GetSegmentValueFromSubaccount(Subaccount, 3, NbrOfSegments); + SubSegment_4 := SLAccountMigrator.GetSegmentValueFromSubaccount(Subaccount, 4, NbrOfSegments); + SubSegment_5 := SLAccountMigrator.GetSegmentValueFromSubaccount(Subaccount, 5, NbrOfSegments); + SubSegment_6 := SLAccountMigrator.GetSegmentValueFromSubaccount(Subaccount, 6, NbrOfSegments); + SubSegment_7 := SLAccountMigrator.GetSegmentValueFromSubaccount(Subaccount, 7, NbrOfSegments); + SubSegment_8 := SLAccountMigrator.GetSegmentValueFromSubaccount(Subaccount, 8, NbrOfSegments); + + DimSetID := SLAccountMigrator.CreateDimSetFromSubSegments(SubSegment_1, SubSegment_2, SubSegment_3, SubSegment_4, SubSegment_5, SubSegment_6, SubSegment_7, SubSegment_8); + exit(DimSetID); + end; + procedure GetMigrationTypeTxt(): Text[250] begin exit(CopyStr(MigrationTypeTxt, 1, MaxStrLen(MigrationTypeTxt))); @@ -966,14 +996,16 @@ codeunit 47023 "SL Helper Functions" if SLSite.FindSet() then repeat Location.Init(); - Location.Code := Text.CopyStr(SLSite.SiteId, 1, 10); + Location.Code := CopyStr(SLSite.SiteId, 1, 10); Location.Name := SLSite.Name; Location.Address := SLSite.Addr1; - Location."Address 2" := Text.CopyStr(SLSite.Addr2, 1, 50); - Location.City := Text.CopyStr(SLSite.City, 1, 30); + Location."Address 2" := CopyStr(SLSite.Addr2, 1, 50); + Location.City := CopyStr(SLSite.City, 1, 30); Location."Phone No." := SLSite.Phone; Location."Fax No." := SLSite.Fax; Location."Post Code" := SLSite.Zip; + Location.County := SLSite.State; + Location."Country/Region Code" := SLSite.Country; Location.Insert(true); until SLSite.Next() = 0; Session.LogMessage('0000BK6', 'Created Locations', Verbosity::Normal, DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, 'Category', GetTelemetryCategory()); @@ -987,6 +1019,33 @@ codeunit 47023 "SL Helper Functions" SLConfiguration.Modify(); end; + internal procedure CreateBankAccounts() + var + SLCashManagerMigrator: Codeunit "SL Cash Manager Migrator"; + begin + SLCashManagerMigrator.MigrateCashManagerModule(); + Session.LogMessage('0000BAC', 'Created Bank Accounts', Verbosity::Normal, DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, 'Category', GetTelemetryCategory()); + SetBankAccountsCreated(); + end; + + internal procedure CreateOpenPurchaseOrders() + var + SLPOMigrator: Codeunit "SL PO Migrator"; + begin + SLPOMigrator.MigrateOpenPurchaseOrders(); + Session.LogMessage('0000OPO', 'Created Open Purchase Orders', Verbosity::Normal, DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, 'Category', GetTelemetryCategory()); + SetOpenPOsCreated(); + end; + + internal procedure CreateOpenSalesOrders() + var + SLSOMigrator: Codeunit "SL SO Migrator"; + begin + SLSOMigrator.MigrateOpenSalesOrders(); + Session.LogMessage('0000OSO', 'Created Open Sales Orders', Verbosity::Normal, DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, 'Category', GetTelemetryCategory()); + SetOpenSOsCreated(); + end; + internal procedure CreateProjectData() var SLProjectMigrator: Codeunit "SL Project Migrator"; @@ -996,6 +1055,18 @@ codeunit 47023 "SL Helper Functions" SetProjectDataCreated(); end; + internal procedure CreateUnitOfMeasureIfNeeded(CodeToSet: Code[10]; DescriptionToSet: Text[50]) + var + UnitOfMeasure: Record "Unit of Measure"; + begin + if not UnitOfMeasure.Get(CodeToSet) then begin + UnitOfMeasure.Init(); + UnitOfMeasure.Code := CodeToSet; + UnitOfMeasure.Description := DescriptionToSet; + UnitOfMeasure.Insert(true); + end; + end; + internal procedure DeleteExistingCustomerPostingGroups() var CustomerPostingGroup: Record "Customer Posting Group"; @@ -1139,9 +1210,32 @@ codeunit 47023 "SL Helper Functions" if not ProjectDataCreated() then CreateProjectData(); + if SLCompanyAdditionalSettings.GetCashManagerModuleEnabled() then + if not CashManagerDataCreated() then + CreateBankAccounts(); + + if SLCompanyAdditionalSettings.GetMigrateOpenPOs() then + if not OpenPODataCreated() then + CreateOpenPurchaseOrders(); + + if SLCompanyAdditionalSettings.GetMigrateOpenSOs() then + if not OpenSODataCreated() then + CreateOpenSalesOrders(); + exit(SLConfiguration.IsAllPostMigationDataCreated()); end; + procedure LogPostMigrationDataMessage(PostMigrationType: Code[30]; TableRef: Text[30]; MessageCode: Text[100]; MessageText: Text[250]) + var + SLPostMigrationDataLog: Record "SL Post Migration Data Log"; + begin + SLPostMigrationDataLog."Post Migration Type" := PostMigrationType; + SLPostMigrationDataLog."Table Reference" := TableRef; + SLPostMigrationDataLog."Message Code" := MessageCode; + SLPostMigrationDataLog."Message Text" := MessageText; + SLPostMigrationDataLog.Insert(); + end; + internal procedure CheckMigrationStatus() begin SLConfiguration.GetSingleInstance(); @@ -1189,12 +1283,51 @@ codeunit 47023 "SL Helper Functions" exit(SLConfiguration."Locations Created"); end; + internal procedure CashManagerDataCreated(): Boolean + begin + SLConfiguration.GetSingleInstance(); + exit(SLConfiguration."Cash Manager Data Created"); + end; + + internal procedure OpenPODataCreated(): Boolean + begin + SLConfiguration.GetSingleInstance(); + exit(SLConfiguration."Open PO Data Created"); + end; + + internal procedure OpenSODataCreated(): Boolean + begin + SLConfiguration.GetSingleInstance(); + exit(SLConfiguration."Open SO Data Created"); + end; + internal procedure ProjectDataCreated(): Boolean begin SLConfiguration.GetSingleInstance(); exit(SLConfiguration."Project Data Created"); end; + internal procedure SetBankAccountsCreated() + begin + SLConfiguration.GetSingleInstance(); + SLConfiguration."Cash Manager Data Created" := true; + SLConfiguration.Modify(); + end; + + internal procedure SetOpenPOsCreated() + begin + SLConfiguration.GetSingleInstance(); + SLConfiguration."Open PO Data Created" := true; + SLConfiguration.Modify(); + end; + + internal procedure SetOpenSOsCreated() + begin + SLConfiguration.GetSingleInstance(); + SLConfiguration."Open SO Data Created" := true; + SLConfiguration.Modify(); + end; + internal procedure SetProjectDataCreated() begin SLConfiguration.GetSingleInstance(); diff --git a/Apps/W1/HybridSL/app/src/Migration/Support/SLMigrationConfig.Table.al b/Apps/W1/HybridSL/app/src/Migration/Support/SLMigrationConfig.Table.al index e399cd4bc3..820121429b 100644 --- a/Apps/W1/HybridSL/app/src/Migration/Support/SLMigrationConfig.Table.al +++ b/Apps/W1/HybridSL/app/src/Migration/Support/SLMigrationConfig.Table.al @@ -88,6 +88,18 @@ table 47017 "SL Migration Config" { InitValue = false; } + field(23; "Cash Manager Data Created"; Boolean) + { + InitValue = false; + } + field(24; "Open PO Data Created"; Boolean) + { + InitValue = false; + } + field(25; "Open SO Data Created"; Boolean) + { + InitValue = false; + } } keys diff --git a/Apps/W1/HybridSL/app/src/Permissions/SLD365BASICISVMSL.PermissionSetExt.al b/Apps/W1/HybridSL/app/src/Permissions/SLD365BASICISVMSL.PermissionSetExt.al index 6eef3ef69d..1910575ace 100644 --- a/Apps/W1/HybridSL/app/src/Permissions/SLD365BASICISVMSL.PermissionSetExt.al +++ b/Apps/W1/HybridSL/app/src/Permissions/SLD365BASICISVMSL.PermissionSetExt.al @@ -14,33 +14,21 @@ permissionsetextension 47002 "SLD365 BASIC ISV - MSL" extends "D365 BASIC ISV" tabledata "SL Account Staging" = RIMD, tabledata "SL Account Staging Setup" = RIMD, tabledata "SL AcctHist" = RIMD, + tabledata "SL Address" = RIMD, tabledata "SL APAdjust" = RIMD, tabledata "SL APDoc Buffer" = RIMD, tabledata "SL APSetup" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL APDoc" = RIMD, - tabledata "SL APTran" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL APTran Buffer" = RIMD, tabledata "SL AP_Balances" = RIMD, tabledata "SL ARAdjust" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL ARDoc" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL ARDoc Buffer" = RIMD, tabledata "SL ARSetup" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL ARTran" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL ARTran Buffer" = RIMD, tabledata "SL AR_Balances" = RIMD, tabledata "SL Batch" = RIMD, + tabledata "SL CASetup" = RIMD, + tabledata "SL CashAcct" = RIMD, + tabledata "SL CashSumD" = RIMD, tabledata "SL Codes" = RIMD, tabledata "SL Company Additional Settings" = RIMD, tabledata "SL Company Migration Settings" = RIMD, @@ -49,15 +37,11 @@ permissionsetextension 47002 "SLD365 BASIC ISV - MSL" extends "D365 BASIC ISV" tabledata "SL Fiscal Periods" = RIMD, tabledata "SL FlexDef" = RIMD, tabledata "SL GLSetup" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL GLTran" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL GLTran Buffer" = RIMD, tabledata "SL Hist. Source Error" = RIMD, tabledata "SL Hist. Source Progress" = RIMD, tabledata "SL INSetup" = RIMD, + tabledata "SL INUnit" = RIMD, tabledata "SL INTran Buffer" = RIMD, tabledata "SL Inventory Buffer" = RIMD, tabledata "SL InventoryADG" = RIMD, @@ -65,16 +49,6 @@ permissionsetextension 47002 "SLD365 BASIC ISV - MSL" extends "D365 BASIC ISV" tabledata "SL ItemSite Buffer" = RIMD, tabledata "SL LotSerMst Buffer" = RIMD, tabledata "SL LotSerT Buffer" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL INTran" = RIMD, - tabledata "SL Inventory" = RIMD, - tabledata "SL ItemCost" = RIMD, - tabledata "SL ItemSite" = RIMD, - tabledata "SL LotSerMst" = RIMD, - tabledata "SL LotSerT" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL Migration Config" = RIMD, tabledata "SL Migration Error Overview" = RIMD, tabledata "SL Migration Errors" = RIMD, @@ -88,40 +62,57 @@ permissionsetextension 47002 "SLD365 BASIC ISV - MSL" extends "D365 BASIC ISV" tabledata "SL PJEquip Buffer" = RIMD, tabledata "SL PJPent Buffer" = RIMD, tabledata "SL PJProj Buffer" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL PJEmploy" = RIMD, - tabledata "SL PJEmpPjt" = RIMD, - tabledata "SL PJEQRate" = RIMD, - tabledata "SL PJEquip" = RIMD, - tabledata "SL PJPent" = RIMD, - tabledata "SL PJProj" = RIMD, -#pragma warning restore AL0432 -#endif + tabledata "SL Post Migration Data Log" = RIMD, tabledata "SL POAddress" = RIMD, tabledata "SL POReceipt" = RIMD, tabledata "SL POSetup" = RIMD, tabledata "SL POTran" = RIMD, tabledata "SL ProductClass" = RIMD, - tabledata "SL PurchOrd" = RIMD, - tabledata "SL PurOrdDet" = RIMD, + tabledata "SL PurchOrd Buffer" = RIMD, + tabledata "SL PurOrdDet Buffer" = RIMD, tabledata "SL SalesTax" = RIMD, tabledata "SL SegDef" = RIMD, tabledata "SL Segments" = RIMD, tabledata "SL Segment Name" = RIMD, tabledata "SL Site" = RIMD, tabledata "SL SOAddress" = RIMD, - tabledata "SL SOHeader" = RIMD, - tabledata "SL SOLine" = RIMD, + tabledata "SL SOHeader Buffer" = RIMD, + tabledata "SL SOLine Buffer" = RIMD, tabledata "SL SOSetup" = RIMD, tabledata "SL SOShipHeader" = RIMD, tabledata "SL SOShipLine" = RIMD, tabledata "SL SOShipLot" = RIMD, - tabledata "SL SOType" = RIMD, + tabledata "SL SOType Buffer" = RIMD, tabledata "SL Terms" = RIMD, tabledata "SL Upgrade Settings" = RIMD, tabledata "SL VendClass" = RIMD, tabledata "SL Vendor" = RIMD, +#if not CLEAN28 +#pragma warning disable AL0432 + tabledata "SL APDoc" = RIMD, + tabledata "SL APTran" = RIMD, + tabledata "SL ARDoc" = RIMD, + tabledata "SL ARTran" = RIMD, + tabledata "SL GLTran" = RIMD, + tabledata "SL INTran" = RIMD, + tabledata "SL Inventory" = RIMD, + tabledata "SL ItemCost" = RIMD, + tabledata "SL ItemSite" = RIMD, + tabledata "SL LotSerMst" = RIMD, + tabledata "SL LotSerT" = RIMD, + tabledata "SL PJEmploy" = RIMD, + tabledata "SL PJEmpPjt" = RIMD, + tabledata "SL PJEQRate" = RIMD, + tabledata "SL PJEquip" = RIMD, + tabledata "SL PJPent" = RIMD, + tabledata "SL PJProj" = RIMD, + tabledata "SL PurchOrd" = RIMD, + tabledata "SL PurOrdDet" = RIMD, + tabledata "SL SOHeader" = RIMD, + tabledata "SL SOLine" = RIMD, + tabledata "SL SOType" = RIMD, +#pragma warning restore AL0432 +#endif tabledata SLGLAcctBalByPeriod = RIMD, tabledata "SL Period List Work Table" = RIMD; } \ No newline at end of file diff --git a/Apps/W1/HybridSL/app/src/Permissions/SLD365BASICMSL.PermissionSetExt.al b/Apps/W1/HybridSL/app/src/Permissions/SLD365BASICMSL.PermissionSetExt.al index 8a769faba5..c525dcb211 100644 --- a/Apps/W1/HybridSL/app/src/Permissions/SLD365BASICMSL.PermissionSetExt.al +++ b/Apps/W1/HybridSL/app/src/Permissions/SLD365BASICMSL.PermissionSetExt.al @@ -14,33 +14,21 @@ permissionsetextension 47001 "SLD365 BASIC - MSL" extends "D365 BASIC" tabledata "SL Account Staging" = RIMD, tabledata "SL Account Staging Setup" = RIMD, tabledata "SL AcctHist" = RIMD, + tabledata "SL Address" = RIMD, tabledata "SL APAdjust" = RIMD, tabledata "SL APDoc Buffer" = RIMD, tabledata "SL APSetup" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL APDoc" = RIMD, - tabledata "SL APTran" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL APTran Buffer" = RIMD, tabledata "SL AP_Balances" = RIMD, tabledata "SL ARAdjust" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL ARDoc" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL ARDoc Buffer" = RIMD, tabledata "SL ARSetup" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL ARTran" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL ARTran Buffer" = RIMD, tabledata "SL AR_Balances" = RIMD, tabledata "SL Batch" = RIMD, + tabledata "SL CASetup" = RIMD, + tabledata "SL CashAcct" = RIMD, + tabledata "SL CashSumD" = RIMD, tabledata "SL Codes" = RIMD, tabledata "SL Company Additional Settings" = RIMD, tabledata "SL Company Migration Settings" = RIMD, @@ -49,15 +37,11 @@ permissionsetextension 47001 "SLD365 BASIC - MSL" extends "D365 BASIC" tabledata "SL Fiscal Periods" = RIMD, tabledata "SL FlexDef" = RIMD, tabledata "SL GLSetup" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL GLTran" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL GLTran Buffer" = RIMD, tabledata "SL Hist. Source Error" = RIMD, tabledata "SL Hist. Source Progress" = RIMD, tabledata "SL INSetup" = RIMD, + tabledata "SL INUnit" = RIMD, tabledata "SL INTran Buffer" = RIMD, tabledata "SL Inventory Buffer" = RIMD, tabledata "SL InventoryADG" = RIMD, @@ -65,16 +49,6 @@ permissionsetextension 47001 "SLD365 BASIC - MSL" extends "D365 BASIC" tabledata "SL ItemSite Buffer" = RIMD, tabledata "SL LotSerMst Buffer" = RIMD, tabledata "SL LotSerT Buffer" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL INTran" = RIMD, - tabledata "SL Inventory" = RIMD, - tabledata "SL ItemCost" = RIMD, - tabledata "SL ItemSite" = RIMD, - tabledata "SL LotSerMst" = RIMD, - tabledata "SL LotSerT" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL Migration Config" = RIMD, tabledata "SL Migration Error Overview" = RIMD, tabledata "SL Migration Errors" = RIMD, @@ -88,40 +62,57 @@ permissionsetextension 47001 "SLD365 BASIC - MSL" extends "D365 BASIC" tabledata "SL PJEquip Buffer" = RIMD, tabledata "SL PJPent Buffer" = RIMD, tabledata "SL PJProj Buffer" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL PJEmploy" = RIMD, - tabledata "SL PJEmpPjt" = RIMD, - tabledata "SL PJEQRate" = RIMD, - tabledata "SL PJEquip" = RIMD, - tabledata "SL PJPent" = RIMD, - tabledata "SL PJProj" = RIMD, -#pragma warning restore AL0432 -#endif + tabledata "SL Post Migration Data Log" = RIMD, tabledata "SL POAddress" = RIMD, tabledata "SL POReceipt" = RIMD, tabledata "SL POSetup" = RIMD, tabledata "SL POTran" = RIMD, tabledata "SL ProductClass" = RIMD, - tabledata "SL PurchOrd" = RIMD, - tabledata "SL PurOrdDet" = RIMD, + tabledata "SL PurchOrd Buffer" = RIMD, + tabledata "SL PurOrdDet Buffer" = RIMD, tabledata "SL SalesTax" = RIMD, tabledata "SL SegDef" = RIMD, tabledata "SL Segments" = RIMD, tabledata "SL Segment Name" = RIMD, tabledata "SL Site" = RIMD, tabledata "SL SOAddress" = RIMD, - tabledata "SL SOHeader" = RIMD, - tabledata "SL SOLine" = RIMD, + tabledata "SL SOHeader Buffer" = RIMD, + tabledata "SL SOLine Buffer" = RIMD, tabledata "SL SOSetup" = RIMD, tabledata "SL SOShipHeader" = RIMD, tabledata "SL SOShipLine" = RIMD, tabledata "SL SOShipLot" = RIMD, - tabledata "SL SOType" = RIMD, + tabledata "SL SOType Buffer" = RIMD, tabledata "SL Terms" = RIMD, tabledata "SL Upgrade Settings" = RIMD, tabledata "SL VendClass" = RIMD, tabledata "SL Vendor" = RIMD, +#if not CLEAN28 +#pragma warning disable AL0432 + tabledata "SL APDoc" = RIMD, + tabledata "SL APTran" = RIMD, + tabledata "SL ARDoc" = RIMD, + tabledata "SL ARTran" = RIMD, + tabledata "SL GLTran" = RIMD, + tabledata "SL INTran" = RIMD, + tabledata "SL Inventory" = RIMD, + tabledata "SL ItemCost" = RIMD, + tabledata "SL ItemSite" = RIMD, + tabledata "SL LotSerMst" = RIMD, + tabledata "SL LotSerT" = RIMD, + tabledata "SL PJEmploy" = RIMD, + tabledata "SL PJEmpPjt" = RIMD, + tabledata "SL PJEQRate" = RIMD, + tabledata "SL PJEquip" = RIMD, + tabledata "SL PJPent" = RIMD, + tabledata "SL PJProj" = RIMD, + tabledata "SL PurchOrd" = RIMD, + tabledata "SL PurOrdDet" = RIMD, + tabledata "SL SOHeader" = RIMD, + tabledata "SL SOLine" = RIMD, + tabledata "SL SOType" = RIMD, +#pragma warning restore AL0432 +#endif tabledata SLGLAcctBalByPeriod = RIMD, tabledata "SL Period List Work Table" = RIMD; } \ No newline at end of file diff --git a/Apps/W1/HybridSL/app/src/Permissions/SLD365TEAMMEMBERMSL.PermissionSetExt.al b/Apps/W1/HybridSL/app/src/Permissions/SLD365TEAMMEMBERMSL.PermissionSetExt.al index d0b3e5ba0b..167842fe27 100644 --- a/Apps/W1/HybridSL/app/src/Permissions/SLD365TEAMMEMBERMSL.PermissionSetExt.al +++ b/Apps/W1/HybridSL/app/src/Permissions/SLD365TEAMMEMBERMSL.PermissionSetExt.al @@ -14,33 +14,21 @@ permissionsetextension 47003 "SLD365 TEAM MEMBER - MSL" extends "D365 TEAM MEMBE tabledata "SL Account Staging" = RIMD, tabledata "SL Account Staging Setup" = RIMD, tabledata "SL AcctHist" = RIMD, + tabledata "SL Address" = RIMD, tabledata "SL APAdjust" = RIMD, tabledata "SL APDoc Buffer" = RIMD, tabledata "SL APSetup" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL APDoc" = RIMD, - tabledata "SL APTran" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL APTran Buffer" = RIMD, tabledata "SL AP_Balances" = RIMD, tabledata "SL ARAdjust" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL ARDoc" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL ARDoc Buffer" = RIMD, tabledata "SL ARSetup" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL ARTran" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL ARTran Buffer" = RIMD, tabledata "SL AR_Balances" = RIMD, tabledata "SL Batch" = RIMD, + tabledata "SL CASetup" = RIMD, + tabledata "SL CashAcct" = RIMD, + tabledata "SL CashSumD" = RIMD, tabledata "SL Codes" = RIMD, tabledata "SL Company Additional Settings" = RIMD, tabledata "SL Company Migration Settings" = RIMD, @@ -49,15 +37,11 @@ permissionsetextension 47003 "SLD365 TEAM MEMBER - MSL" extends "D365 TEAM MEMBE tabledata "SL Fiscal Periods" = RIMD, tabledata "SL FlexDef" = RIMD, tabledata "SL GLSetup" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL GLTran" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL GLTran Buffer" = RIMD, tabledata "SL Hist. Source Error" = RIMD, tabledata "SL Hist. Source Progress" = RIMD, tabledata "SL INSetup" = RIMD, + tabledata "SL INUnit" = RIMD, tabledata "SL INTran Buffer" = RIMD, tabledata "SL Inventory Buffer" = RIMD, tabledata "SL InventoryADG" = RIMD, @@ -65,16 +49,6 @@ permissionsetextension 47003 "SLD365 TEAM MEMBER - MSL" extends "D365 TEAM MEMBE tabledata "SL ItemSite Buffer" = RIMD, tabledata "SL LotSerMst Buffer" = RIMD, tabledata "SL LotSerT Buffer" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL INTran" = RIMD, - tabledata "SL Inventory" = RIMD, - tabledata "SL ItemCost" = RIMD, - tabledata "SL ItemSite" = RIMD, - tabledata "SL LotSerMst" = RIMD, - tabledata "SL LotSerT" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL Migration Config" = RIMD, tabledata "SL Migration Error Overview" = RIMD, tabledata "SL Migration Errors" = RIMD, @@ -88,40 +62,57 @@ permissionsetextension 47003 "SLD365 TEAM MEMBER - MSL" extends "D365 TEAM MEMBE tabledata "SL PJEquip Buffer" = RIMD, tabledata "SL PJPent Buffer" = RIMD, tabledata "SL PJProj Buffer" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL PJEquip" = RIMD, - tabledata "SL PJEmpPjt" = RIMD, - tabledata "SL PJEQRate" = RIMD, - tabledata "SL PJEmploy" = RIMD, - tabledata "SL PJPent" = RIMD, - tabledata "SL PJProj" = RIMD, -#pragma warning restore AL0432 -#endif + tabledata "SL Post Migration Data Log" = RIMD, tabledata "SL POAddress" = RIMD, tabledata "SL POReceipt" = RIMD, tabledata "SL POSetup" = RIMD, tabledata "SL POTran" = RIMD, tabledata "SL ProductClass" = RIMD, - tabledata "SL PurchOrd" = RIMD, - tabledata "SL PurOrdDet" = RIMD, + tabledata "SL PurchOrd Buffer" = RIMD, + tabledata "SL PurOrdDet Buffer" = RIMD, tabledata "SL SalesTax" = RIMD, tabledata "SL SegDef" = RIMD, tabledata "SL Segments" = RIMD, tabledata "SL Segment Name" = RIMD, tabledata "SL Site" = RIMD, tabledata "SL SOAddress" = RIMD, - tabledata "SL SOHeader" = RIMD, - tabledata "SL SOLine" = RIMD, + tabledata "SL SOHeader Buffer" = RIMD, + tabledata "SL SOLine Buffer" = RIMD, tabledata "SL SOSetup" = RIMD, tabledata "SL SOShipHeader" = RIMD, tabledata "SL SOShipLine" = RIMD, tabledata "SL SOShipLot" = RIMD, - tabledata "SL SOType" = RIMD, + tabledata "SL SOType Buffer" = RIMD, tabledata "SL Terms" = RIMD, tabledata "SL Upgrade Settings" = RIMD, tabledata "SL VendClass" = RIMD, tabledata "SL Vendor" = RIMD, +#if not CLEAN28 +#pragma warning disable AL0432 + tabledata "SL APDoc" = RIMD, + tabledata "SL APTran" = RIMD, + tabledata "SL ARDoc" = RIMD, + tabledata "SL ARTran" = RIMD, + tabledata "SL GLTran" = RIMD, + tabledata "SL INTran" = RIMD, + tabledata "SL Inventory" = RIMD, + tabledata "SL ItemCost" = RIMD, + tabledata "SL ItemSite" = RIMD, + tabledata "SL LotSerMst" = RIMD, + tabledata "SL LotSerT" = RIMD, + tabledata "SL PJEquip" = RIMD, + tabledata "SL PJEmpPjt" = RIMD, + tabledata "SL PJEQRate" = RIMD, + tabledata "SL PJEmploy" = RIMD, + tabledata "SL PJPent" = RIMD, + tabledata "SL PJProj" = RIMD, + tabledata "SL PurchOrd" = RIMD, + tabledata "SL PurOrdDet" = RIMD, + tabledata "SL SOHeader" = RIMD, + tabledata "SL SOLine" = RIMD, + tabledata "SL SOType" = RIMD, +#pragma warning restore AL0432 +#endif tabledata SLGLAcctBalByPeriod = RIMD, tabledata "SL Period List Work Table" = RIMD; } \ No newline at end of file diff --git a/Apps/W1/HybridSL/app/src/Permissions/SLINTELLIGENTCLOUDMSL.PermissionSetExt.al b/Apps/W1/HybridSL/app/src/Permissions/SLINTELLIGENTCLOUDMSL.PermissionSetExt.al index ef17f50848..a7369d72a4 100644 --- a/Apps/W1/HybridSL/app/src/Permissions/SLINTELLIGENTCLOUDMSL.PermissionSetExt.al +++ b/Apps/W1/HybridSL/app/src/Permissions/SLINTELLIGENTCLOUDMSL.PermissionSetExt.al @@ -14,33 +14,21 @@ permissionsetextension 47000 "SLINTELLIGENT CLOUD - MSL" extends "INTELLIGENT CL tabledata "SL Account Staging" = RIMD, tabledata "SL Account Staging Setup" = RIMD, tabledata "SL AcctHist" = RIMD, + tabledata "SL Address" = RIMD, tabledata "SL APAdjust" = RIMD, tabledata "SL APDoc Buffer" = RIMD, tabledata "SL APSetup" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL APDoc" = RIMD, - tabledata "SL APTran" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL APTran Buffer" = RIMD, tabledata "SL AP_Balances" = RIMD, tabledata "SL ARAdjust" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL ARDoc" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL ARDoc Buffer" = RIMD, tabledata "SL ARSetup" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL ARTran" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL ARTran Buffer" = RIMD, tabledata "SL AR_Balances" = RIMD, tabledata "SL Batch" = RIMD, + tabledata "SL CASetup" = RIMD, + tabledata "SL CashAcct" = RIMD, + tabledata "SL CashSumD" = RIMD, tabledata "SL Codes" = RIMD, tabledata "SL Company Additional Settings" = RIMD, tabledata "SL Company Migration Settings" = RIMD, @@ -49,15 +37,11 @@ permissionsetextension 47000 "SLINTELLIGENT CLOUD - MSL" extends "INTELLIGENT CL tabledata "SL Fiscal Periods" = RIMD, tabledata "SL FlexDef" = RIMD, tabledata "SL GLSetup" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL GLTran" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL GLTran Buffer" = RIMD, tabledata "SL Hist. Source Error" = RIMD, tabledata "SL Hist. Source Progress" = RIMD, tabledata "SL INSetup" = RIMD, + tabledata "SL INUnit" = RIMD, tabledata "SL INTran Buffer" = RIMD, tabledata "SL Inventory Buffer" = RIMD, tabledata "SL InventoryADG" = RIMD, @@ -65,16 +49,6 @@ permissionsetextension 47000 "SLINTELLIGENT CLOUD - MSL" extends "INTELLIGENT CL tabledata "SL ItemSite Buffer" = RIMD, tabledata "SL LotSerMst Buffer" = RIMD, tabledata "SL LotSerT Buffer" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL INTran" = RIMD, - tabledata "SL Inventory" = RIMD, - tabledata "SL ItemCost" = RIMD, - tabledata "SL ItemSite" = RIMD, - tabledata "SL LotSerMst" = RIMD, - tabledata "SL LotSerT" = RIMD, -#pragma warning restore AL0432 -#endif tabledata "SL Migration Config" = RIMD, tabledata "SL Migration Error Overview" = RIMD, tabledata "SL Migration Errors" = RIMD, @@ -88,40 +62,57 @@ permissionsetextension 47000 "SLINTELLIGENT CLOUD - MSL" extends "INTELLIGENT CL tabledata "SL PJEquip Buffer" = RIMD, tabledata "SL PJPent Buffer" = RIMD, tabledata "SL PJProj Buffer" = RIMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL PJEmploy" = RIMD, - tabledata "SL PJEmpPjt" = RIMD, - tabledata "SL PJEQRate" = RIMD, - tabledata "SL PJEquip" = RIMD, - tabledata "SL PJPent" = RIMD, - tabledata "SL PJProj" = RIMD, -#pragma warning restore AL0432 -#endif + tabledata "SL Post Migration Data Log" = RIMD, tabledata "SL POAddress" = RIMD, tabledata "SL POReceipt" = RIMD, tabledata "SL POSetup" = RIMD, tabledata "SL POTran" = RIMD, tabledata "SL ProductClass" = RIMD, - tabledata "SL PurchOrd" = RIMD, - tabledata "SL PurOrdDet" = RIMD, + tabledata "SL PurchOrd Buffer" = RIMD, + tabledata "SL PurOrdDet Buffer" = RIMD, tabledata "SL SalesTax" = RIMD, tabledata "SL SegDef" = RIMD, tabledata "SL Segments" = RIMD, tabledata "SL Segment Name" = RIMD, tabledata "SL Site" = RIMD, tabledata "SL SOAddress" = RIMD, - tabledata "SL SOHeader" = RIMD, - tabledata "SL SOLine" = RIMD, + tabledata "SL SOHeader Buffer" = RIMD, + tabledata "SL SOLine Buffer" = RIMD, tabledata "SL SOSetup" = RIMD, tabledata "SL SOShipHeader" = RIMD, tabledata "SL SOShipLine" = RIMD, tabledata "SL SOShipLot" = RIMD, - tabledata "SL SOType" = RIMD, + tabledata "SL SOType Buffer" = RIMD, tabledata "SL Terms" = RIMD, tabledata "SL Upgrade Settings" = RIMD, tabledata "SL VendClass" = RIMD, tabledata "SL Vendor" = RIMD, +#if not CLEAN28 +#pragma warning disable AL0432 + tabledata "SL APDoc" = RIMD, + tabledata "SL APTran" = RIMD, + tabledata "SL ARDoc" = RIMD, + tabledata "SL ARTran" = RIMD, + tabledata "SL GLTran" = RIMD, + tabledata "SL INTran" = RIMD, + tabledata "SL Inventory" = RIMD, + tabledata "SL ItemCost" = RIMD, + tabledata "SL ItemSite" = RIMD, + tabledata "SL LotSerMst" = RIMD, + tabledata "SL LotSerT" = RIMD, + tabledata "SL PJEmploy" = RIMD, + tabledata "SL PJEmpPjt" = RIMD, + tabledata "SL PJEQRate" = RIMD, + tabledata "SL PJEquip" = RIMD, + tabledata "SL PJPent" = RIMD, + tabledata "SL PJProj" = RIMD, + tabledata "SL PurchOrd" = RIMD, + tabledata "SL PurOrdDet" = RIMD, + tabledata "SL SOHeader" = RIMD, + tabledata "SL SOLine" = RIMD, + tabledata "SL SOType" = RIMD, +#pragma warning restore AL0432 +#endif tabledata SLGLAcctBalByPeriod = RIMD, tabledata "SL Period List Work Table" = RIMD; } \ No newline at end of file diff --git a/Apps/W1/HybridSL/app/src/Permissions/SLMigrationEdit.PermissionSet.al b/Apps/W1/HybridSL/app/src/Permissions/SLMigrationEdit.PermissionSet.al index c99eeb6d94..f563a29fb9 100644 --- a/Apps/W1/HybridSL/app/src/Permissions/SLMigrationEdit.PermissionSet.al +++ b/Apps/W1/HybridSL/app/src/Permissions/SLMigrationEdit.PermissionSet.al @@ -16,33 +16,21 @@ permissionset 47004 "SL Migration - Edit" tabledata "SL Account Staging" = IMD, tabledata "SL Account Staging Setup" = IMD, tabledata "SL AcctHist" = IMD, + tabledata "SL Address" = IMD, tabledata "SL APAdjust" = IMD, tabledata "SL APDoc Buffer" = IMD, tabledata "SL APSetup" = IMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL APDoc" = IMD, - tabledata "SL APTran" = IMD, -#pragma warning restore AL0432 -#endif tabledata "SL APTran Buffer" = IMD, tabledata "SL AP_Balances" = IMD, tabledata "SL ARAdjust" = IMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL ARDoc" = IMD, -#pragma warning restore AL0432 -#endif tabledata "SL ARDoc Buffer" = IMD, tabledata "SL ARSetup" = IMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL ARTran" = IMD, -#pragma warning restore AL0432 -#endif - tabledata "SL ARTran Buffer" = RIMD, + tabledata "SL ARTran Buffer" = IMD, tabledata "SL AR_Balances" = IMD, tabledata "SL Batch" = IMD, + tabledata "SL CASetup" = IMD, + tabledata "SL CashAcct" = IMD, + tabledata "SL CashSumD" = IMD, tabledata "SL Codes" = IMD, tabledata "SL Company Additional Settings" = IMD, tabledata "SL Company Migration Settings" = IMD, @@ -51,14 +39,10 @@ permissionset 47004 "SL Migration - Edit" tabledata "SL Fiscal Periods" = IMD, tabledata "SL FlexDef" = IMD, tabledata "SL GLSetup" = IMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL GLTran" = IMD, -#pragma warning restore AL0432 -#endif tabledata "SL Hist. Source Error" = IMD, tabledata "SL Hist. Source Progress" = IMD, tabledata "SL INSetup" = IMD, + tabledata "SL INUnit" = IMD, tabledata "SL INTran Buffer" = IMD, tabledata "SL Inventory Buffer" = IMD, tabledata "SL InventoryADG" = IMD, @@ -66,16 +50,6 @@ permissionset 47004 "SL Migration - Edit" tabledata "SL ItemSite Buffer" = IMD, tabledata "SL LotSerMst Buffer" = IMD, tabledata "SL LotSerT Buffer" = IMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL INTran" = IMD, - tabledata "SL Inventory" = IMD, - tabledata "SL ItemCost" = IMD, - tabledata "SL ItemSite" = IMD, - tabledata "SL LotSerMst" = IMD, - tabledata "SL LotSerT" = IMD, -#pragma warning restore AL0432 -#endif tabledata "SL Migration Config" = IMD, tabledata "SL Migration Error Overview" = IMD, tabledata "SL Migration Errors" = IMD, @@ -90,39 +64,56 @@ permissionset 47004 "SL Migration - Edit" tabledata "SL PJEquip Buffer" = IMD, tabledata "SL PJPent Buffer" = IMD, tabledata "SL PJProj Buffer" = IMD, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL PJEmploy" = IMD, - tabledata "SL PJEmpPjt" = IMD, - tabledata "SL PJEQRate" = IMD, - tabledata "SL PJEquip" = IMD, - tabledata "SL PJPent" = IMD, - tabledata "SL PJProj" = IMD, -#pragma warning restore AL0432 -#endif + tabledata "SL Post Migration Data Log" = IMD, tabledata "SL POAddress" = IMD, tabledata "SL POReceipt" = IMD, tabledata "SL POSetup" = IMD, tabledata "SL POTran" = IMD, tabledata "SL ProductClass" = IMD, - tabledata "SL PurchOrd" = IMD, - tabledata "SL PurOrdDet" = IMD, + tabledata "SL PurchOrd Buffer" = IMD, + tabledata "SL PurOrdDet Buffer" = IMD, tabledata "SL SalesTax" = IMD, tabledata "SL SegDef" = IMD, tabledata "SL Segments" = IMD, tabledata "SL Segment Name" = IMD, tabledata "SL Site" = IMD, tabledata "SL SOAddress" = IMD, - tabledata "SL SOHeader" = IMD, - tabledata "SL SOLine" = IMD, + tabledata "SL SOHeader Buffer" = IMD, + tabledata "SL SOLine Buffer" = IMD, tabledata "SL SOSetup" = IMD, tabledata "SL SOShipHeader" = IMD, tabledata "SL SOShipLine" = IMD, tabledata "SL SOShipLot" = IMD, - tabledata "SL SOType" = IMD, + tabledata "SL SOType Buffer" = IMD, tabledata "SL Terms" = IMD, tabledata "SL Upgrade Settings" = IMD, tabledata "SL VendClass" = IMD, tabledata "SL Vendor" = IMD, +#if not CLEAN28 +#pragma warning disable AL0432 + tabledata "SL APDoc" = IMD, + tabledata "SL APTran" = IMD, + tabledata "SL ARDoc" = IMD, + tabledata "SL ARTran" = IMD, + tabledata "SL GLTran" = IMD, + tabledata "SL INTran" = IMD, + tabledata "SL Inventory" = IMD, + tabledata "SL ItemCost" = IMD, + tabledata "SL ItemSite" = IMD, + tabledata "SL LotSerMst" = IMD, + tabledata "SL LotSerT" = IMD, + tabledata "SL PJEmploy" = IMD, + tabledata "SL PJEmpPjt" = IMD, + tabledata "SL PJEQRate" = IMD, + tabledata "SL PJEquip" = IMD, + tabledata "SL PJPent" = IMD, + tabledata "SL PJProj" = IMD, + tabledata "SL PurchOrd" = IMD, + tabledata "SL PurOrdDet" = IMD, + tabledata "SL SOHeader" = IMD, + tabledata "SL SOLine" = IMD, + tabledata "SL SOType" = IMD, +#pragma warning restore AL0432 +#endif tabledata SLGLAcctBalByPeriod = IMD; } \ No newline at end of file diff --git a/Apps/W1/HybridSL/app/src/Permissions/SLMigrationObjects.PermissionSet.al b/Apps/W1/HybridSL/app/src/Permissions/SLMigrationObjects.PermissionSet.al index b47323c952..f74e104719 100644 --- a/Apps/W1/HybridSL/app/src/Permissions/SLMigrationObjects.PermissionSet.al +++ b/Apps/W1/HybridSL/app/src/Permissions/SLMigrationObjects.PermissionSet.al @@ -16,33 +16,21 @@ permissionset 47005 "SL Migration-Objects" table "SL Account Staging Setup" = X, table "SL AccountTransactions" = X, table "SL AcctHist" = X, + table "SL Address" = X, table "SL APAdjust" = X, table "SL APDoc Buffer" = X, -#if not CLEAN28 -#pragma warning disable AL0432 - table "SL APDoc" = X, - table "SL APTran" = X, -#pragma warning restore AL0432 -#endif table "SL APTran Buffer" = X, table "SL APSetup" = X, table "SL AP_Balances" = X, table "SL ARAdjust" = X, -#if not CLEAN28 -#pragma warning disable AL0432 - table "SL ARDoc" = X, -#pragma warning restore AL0432 -#endif table "SL ARDoc Buffer" = X, -#if not CLEAN28 -#pragma warning disable AL0432 - table "SL ARTran" = X, -#pragma warning restore AL0432 -#endif table "SL ARTran Buffer" = X, table "SL ARSetup" = X, table "SL AR_Balances" = X, table "SL Batch" = X, + table "SL CASetup" = X, + table "SL CashAcct" = X, + table "SL CashSumD" = X, table "SL Codes" = X, table "SL Company Additional Settings" = X, table "SL Company Migration Settings" = X, @@ -51,15 +39,11 @@ permissionset 47005 "SL Migration-Objects" table "SL Fiscal Periods" = X, table "SL FlexDef" = X, table "SL GLSetup" = X, -#if not CLEAN28 -#pragma warning disable AL0432 - table "SL GLTran" = X, -#pragma warning restore AL0432 -#endif table "SL GLTran Buffer" = X, table "SL Hist. Source Error" = X, table "SL Hist. Source Progress" = X, table "SL INSetup" = X, + table "SL INUnit" = X, table "SL ItemCost Buffer" = X, table "SL INTran Buffer" = X, table "SL Inventory Buffer" = X, @@ -67,16 +51,6 @@ permissionset 47005 "SL Migration-Objects" table "SL ItemSite Buffer" = X, table "SL LotSerMst Buffer" = X, table "SL LotSerT Buffer" = X, -#if not CLEAN28 -#pragma warning disable AL0432 - table "SL INTran" = X, - table "SL Inventory" = X, - table "SL ItemCost" = X, - table "SL ItemSite" = X, - table "SL LotSerMst" = X, - table "SL LotSerT" = X, -#pragma warning restore AL0432 -#endif table "SL Migration Config" = X, table "SL Migration Error Overview" = X, table "SL Migration Errors" = X, @@ -91,41 +65,58 @@ permissionset 47005 "SL Migration-Objects" table "SL PJEquip Buffer" = X, table "SL PJPent Buffer" = X, table "SL PJProj Buffer" = X, -#if not CLEAN28 -#pragma warning disable AL0432 - table "SL PJEmploy" = X, - table "SL PJEmpPjt" = X, - table "SL PJEQRate" = X, - table "SL PJEquip" = X, - table "SL PJPent" = X, - table "SL PJProj" = X, -#pragma warning restore AL0432 -#endif + table "SL Post Migration Data Log" = X, table "SL POAddress" = X, table "SL POReceipt" = X, table "SL POSetup" = X, table "SL POTran" = X, table "SL ProductClass" = X, - table "SL PurchOrd" = X, - table "SL PurOrdDet" = X, + table "SL PurchOrd Buffer" = X, + table "SL PurOrdDet Buffer" = X, table "SL SalesTax" = X, table "SL SegDef" = X, table "SL Segment Name" = X, table "SL Segments" = X, table "SL Site" = X, table "SL SOAddress" = X, - table "SL SOHeader" = X, - table "SL SOLine" = X, + table "SL SOHeader Buffer" = X, + table "SL SOLine Buffer" = X, table "SL SOSetup" = X, table "SL SOShipHeader" = X, table "SL SOShipLine" = X, table "SL SOShipLot" = X, - table "SL SOType" = X, + table "SL SOType Buffer" = X, table "SL Terms" = X, table "SL Upgrade Settings" = X, table "SL VendClass" = X, table "SL Vendor" = X, table SLGLAcctBalByPeriod = X, +#if not CLEAN28 +#pragma warning disable AL0432 + table "SL APDoc" = X, + table "SL APTran" = X, + table "SL ARDoc" = X, + table "SL ARTran" = X, + table "SL GLTran" = X, + table "SL INTran" = X, + table "SL Inventory" = X, + table "SL ItemCost" = X, + table "SL ItemSite" = X, + table "SL LotSerMst" = X, + table "SL LotSerT" = X, + table "SL PJEmploy" = X, + table "SL PJEmpPjt" = X, + table "SL PJEQRate" = X, + table "SL PJEquip" = X, + table "SL PJPent" = X, + table "SL PJProj" = X, + table "SL PurchOrd" = X, + table "SL PurOrdDet" = X, + table "SL SOHeader" = X, + table "SL SOLine" = X, + table "SL SOType" = X, +#pragma warning restore AL0432 +#endif codeunit "SL Account Migrator" = X, codeunit "SL Cloud Migration" = X, codeunit "SL Customer Migrator" = X, diff --git a/Apps/W1/HybridSL/app/src/Permissions/SLMigrationRead.PermissionSet.al b/Apps/W1/HybridSL/app/src/Permissions/SLMigrationRead.PermissionSet.al index b868c04296..af1728c513 100644 --- a/Apps/W1/HybridSL/app/src/Permissions/SLMigrationRead.PermissionSet.al +++ b/Apps/W1/HybridSL/app/src/Permissions/SLMigrationRead.PermissionSet.al @@ -16,30 +16,21 @@ permissionset 47006 "SL Migration - Read" tabledata "SL Account Staging" = R, tabledata "SL Account Staging Setup" = R, tabledata "SL AcctHist" = R, + tabledata "SL Address" = R, tabledata "SL APAdjust" = R, tabledata "SL APDoc Buffer" = R, tabledata "SL APSetup" = R, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL APDoc" = R, - tabledata "SL APTran" = R, -#pragma warning restore AL0432 -#endif tabledata "SL APTran Buffer" = R, tabledata "SL AP_Balances" = R, tabledata "SL ARAdjust" = R, - tabledata "SL ARDoc Buffer" = R, tabledata "SL ARSetup" = R, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL ARDoc" = R, - tabledata "SL ARTran" = R, -#pragma warning restore AL0432 -#endif tabledata "SL ARTran Buffer" = R, tabledata "SL AR_Balances" = R, tabledata "SL Batch" = R, + tabledata "SL CASetup" = R, + tabledata "SL CashAcct" = R, + tabledata "SL CashSumD" = R, tabledata "SL Codes" = R, tabledata "SL Company Additional Settings" = R, tabledata "SL Company Migration Settings" = R, @@ -48,15 +39,11 @@ permissionset 47006 "SL Migration - Read" tabledata "SL Fiscal Periods" = R, tabledata "SL FlexDef" = R, tabledata "SL GLSetup" = R, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL GLTran" = R, -#pragma warning restore AL0432 -#endif tabledata "SL GLTran Buffer" = R, tabledata "SL Hist. Source Error" = R, tabledata "SL Hist. Source Progress" = R, tabledata "SL INSetup" = R, + tabledata "SL INUnit" = R, tabledata "SL INTran Buffer" = R, tabledata "SL Inventory Buffer" = R, tabledata "SL InventoryADG" = R, @@ -64,16 +51,6 @@ permissionset 47006 "SL Migration - Read" tabledata "SL ItemSite Buffer" = R, tabledata "SL LotSerMst Buffer" = R, tabledata "SL LotSerT Buffer" = R, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL INTran" = R, - tabledata "SL Inventory" = R, - tabledata "SL ItemCost" = R, - tabledata "SL ItemSite" = R, - tabledata "SL LotSerMst" = R, - tabledata "SL LotSerT" = R, -#pragma warning restore AL0432 -#endif tabledata "SL Migration Config" = R, tabledata "SL Migration Error Overview" = R, tabledata "SL Migration Errors" = R, @@ -88,39 +65,56 @@ permissionset 47006 "SL Migration - Read" tabledata "SL PJEquip Buffer" = R, tabledata "SL PJPent Buffer" = R, tabledata "SL PJProj Buffer" = R, -#if not CLEAN28 -#pragma warning disable AL0432 - tabledata "SL PJEmploy" = R, - tabledata "SL PJEmpPjt" = R, - tabledata "SL PJEQRate" = R, - tabledata "SL PJEquip" = R, - tabledata "SL PJPent" = R, - tabledata "SL PJProj" = R, -#pragma warning restore AL0432 -#endif + tabledata "SL Post Migration Data Log" = R, tabledata "SL POAddress" = R, tabledata "SL POReceipt" = R, tabledata "SL POSetup" = R, tabledata "SL POTran" = R, tabledata "SL ProductClass" = R, - tabledata "SL PurchOrd" = R, - tabledata "SL PurOrdDet" = R, + tabledata "SL PurchOrd Buffer" = R, + tabledata "SL PurOrdDet Buffer" = R, tabledata "SL SalesTax" = R, tabledata "SL SegDef" = R, tabledata "SL Segments" = R, tabledata "SL Segment Name" = R, tabledata "SL Site" = R, tabledata "SL SOAddress" = R, - tabledata "SL SOHeader" = R, - tabledata "SL SOLine" = R, + tabledata "SL SOHeader Buffer" = R, + tabledata "SL SOLine Buffer" = R, tabledata "SL SOSetup" = R, tabledata "SL SOShipHeader" = R, tabledata "SL SOShipLine" = R, tabledata "SL SOShipLot" = R, - tabledata "SL SOType" = R, + tabledata "SL SOType Buffer" = R, tabledata "SL Terms" = R, tabledata "SL Upgrade Settings" = R, tabledata "SL VendClass" = R, tabledata "SL Vendor" = R, +#if not CLEAN28 +#pragma warning disable AL0432 + tabledata "SL APDoc" = R, + tabledata "SL APTran" = R, + tabledata "SL ARDoc" = R, + tabledata "SL ARTran" = R, + tabledata "SL GLTran" = R, + tabledata "SL INTran" = R, + tabledata "SL Inventory" = R, + tabledata "SL ItemCost" = R, + tabledata "SL ItemSite" = R, + tabledata "SL LotSerMst" = R, + tabledata "SL LotSerT" = R, + tabledata "SL PJEmploy" = R, + tabledata "SL PJEmpPjt" = R, + tabledata "SL PJEQRate" = R, + tabledata "SL PJEquip" = R, + tabledata "SL PJPent" = R, + tabledata "SL PJProj" = R, + tabledata "SL PurchOrd" = R, + tabledata "SL PurOrdDet" = R, + tabledata "SL SOHeader" = R, + tabledata "SL SOLine" = R, + tabledata "SL SOType" = R, +#pragma warning restore AL0432 +#endif tabledata SLGLAcctBalByPeriod = R; } \ No newline at end of file diff --git a/Apps/W1/HybridSL/app/src/codeunits/SLHybridWizard.Codeunit.al b/Apps/W1/HybridSL/app/src/codeunits/SLHybridWizard.Codeunit.al index 0bea7a71cc..ba49332680 100644 --- a/Apps/W1/HybridSL/app/src/codeunits/SLHybridWizard.Codeunit.al +++ b/Apps/W1/HybridSL/app/src/codeunits/SLHybridWizard.Codeunit.al @@ -241,8 +241,8 @@ codeunit 47012 "SL Hybrid Wizard" UpdateOrInsertRecord(Database::"SL POReceipt", 'POReceipt'); UpdateOrInsertRecord(Database::"SL POSetup", 'POSetup'); UpdateOrInsertRecord(Database::"SL POTran", 'POTran'); - UpdateOrInsertRecord(Database::"SL PurchOrd", 'PurchOrd'); - UpdateOrInsertRecord(Database::"SL PurOrdDet", 'PurOrdDet'); + UpdateOrInsertRecord(Database::"SL PurchOrd Buffer", 'PurchOrd'); + UpdateOrInsertRecord(Database::"SL PurOrdDet Buffer", 'PurOrdDet'); UpdateOrInsertRecord(Database::"SL VendClass", 'VendClass'); UpdateOrInsertRecord(Database::"SL Vendor", 'Vendor'); // Receivables @@ -254,16 +254,17 @@ codeunit 47012 "SL Hybrid Wizard" UpdateOrInsertRecord(Database::"SL CustClass", 'CustClass'); UpdateOrInsertRecord(Database::"SL Customer", 'Customer'); UpdateOrInsertRecord(Database::"SL SOAddress", 'SOAddress'); - UpdateOrInsertRecord(Database::"SL SOHeader", 'SOHeader'); - UpdateOrInsertRecord(Database::"SL SOLine", 'SOLine'); + UpdateOrInsertRecord(Database::"SL SOHeader Buffer", 'SOHeader'); + UpdateOrInsertRecord(Database::"SL SOLine Buffer", 'SOLine'); UpdateOrInsertRecord(Database::"SL SOSetup", 'SOSetup'); UpdateOrInsertRecord(Database::"SL SOShipHeader", 'SOShipHeader'); UpdateOrInsertRecord(Database::"SL SOShipLine", 'SOShipLine'); UpdateOrInsertRecord(Database::"SL SOShipLot", 'SOShipLot'); - UpdateOrInsertRecord(Database::"SL SOType", 'SOType'); + UpdateOrInsertRecord(Database::"SL SOType Buffer", 'SOType'); // Items UpdateOrInsertRecord(Database::"SL INSetup", 'INSetup'); UpdateOrInsertRecord(Database::"SL INTran Buffer", 'INTran'); + UpdateOrInsertRecord(Database::"SL INUnit", 'INUnit'); UpdateOrInsertRecord(Database::"SL Inventory Buffer", 'Inventory'); UpdateOrInsertRecord(Database::"SL InventoryADG", 'InventoryADG'); UpdateOrInsertRecord(Database::"SL ItemCost Buffer", 'ItemCost'); @@ -286,6 +287,11 @@ codeunit 47012 "SL Hybrid Wizard" UpdateOrInsertRecord(Database::"SL PJEQRate Buffer", 'PJEQRate'); UpdateOrInsertRecord(Database::"SL PJPent Buffer", 'PJPent'); UpdateOrInsertRecord(Database::"SL PJProj Buffer", 'PJProj'); + // Cash Manager + UpdateOrInsertRecord(Database::"SL Address", 'Address'); + UpdateOrInsertRecord(Database::"SL CASetup", 'CASetup'); + UpdateOrInsertRecord(Database::"SL CashAcct", 'CashAcct'); + UpdateOrInsertRecord(Database::"SL CashSumD", 'CashSumD'); end; internal procedure UpdateOrInsertRecord(TableID: Integer; SourceTableName: Text[128]) diff --git a/Apps/W1/HybridSL/app/src/pages/SLCompanyAddSettingsList.Page.al b/Apps/W1/HybridSL/app/src/pages/SLCompanyAddSettingsList.Page.al index f9cd6ff58f..5b59d13452 100644 --- a/Apps/W1/HybridSL/app/src/pages/SLCompanyAddSettingsList.Page.al +++ b/Apps/W1/HybridSL/app/src/pages/SLCompanyAddSettingsList.Page.al @@ -46,12 +46,13 @@ page 47017 "SL Company Add. Settings List" } field("Migrate Open POs"; Rec."Migrate Open POs") { - Enabled = false; - Visible = false; } field("Migrate Receivables Module"; Rec."Migrate Receivables Module") { } + field("Migrate Open Sales Orders"; Rec."Migrate Open SOs") + { + } field("Migrate Inventory Module"; Rec."Migrate Inventory Module") { } @@ -68,6 +69,9 @@ page 47017 "SL Company Add. Settings List" end; end; } + field("Migrate Cash Manager Module"; Rec."Migrate Cash Manager Module") + { + } field("Migrate Only GL Master"; Rec."Migrate Only GL Master") { } @@ -80,6 +84,9 @@ page 47017 "SL Company Add. Settings List" field("Migrate Only Inventory Master"; Rec."Migrate Only Inventory Master") { } + field("Migrate Only CashAcct Master"; Rec."Migrate Only CashAcct Master") + { + } field("Resource Master Only"; Rec."Resource Master Only") { trigger OnValidate() @@ -195,7 +202,7 @@ page 47017 "SL Company Add. Settings List" } } - 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/pages/SLHybridFailedCompanies.Page.al b/Apps/W1/HybridSL/app/src/pages/SLHybridFailedCompanies.Page.al index 18c6082663..207a83e476 100644 --- a/Apps/W1/HybridSL/app/src/pages/SLHybridFailedCompanies.Page.al +++ b/Apps/W1/HybridSL/app/src/pages/SLHybridFailedCompanies.Page.al @@ -17,6 +17,7 @@ page 47024 "SL Hybrid Failed Companies" ModifyAllowed = false; PageType = List; SourceTable = "Hybrid Company Status"; + UsageCategory = Administration; layout { diff --git a/Apps/W1/HybridSL/app/src/pages/SLMigrationConfiguration.Page.al b/Apps/W1/HybridSL/app/src/pages/SLMigrationConfiguration.Page.al index 73421d7651..69223158c8 100644 --- a/Apps/W1/HybridSL/app/src/pages/SLMigrationConfiguration.Page.al +++ b/Apps/W1/HybridSL/app/src/pages/SLMigrationConfiguration.Page.al @@ -17,6 +17,7 @@ page 47018 "SL Migration Configuration" PageType = Card; SourceTable = "SL Company Additional Settings"; SourceTableView = where(Name = filter(= '')); + UsageCategory = Administration; layout { @@ -84,9 +85,7 @@ page 47018 "SL Migration Configuration" field("Migrate Open POs"; Rec."Migrate Open POs") { Caption = 'Open Purchase Orders'; - Enabled = false; ToolTip = 'Specifies whether to migrate the open Purchase Orders.'; - Visible = false; trigger OnValidate() begin @@ -111,7 +110,20 @@ page 47018 "SL Migration Configuration" until SLCompanyAdditionalSettings.Next() = 0; end; } + field("Migrate Open SOs"; Rec."Migrate Open SOs") + { + Caption = 'Open Sales Orders'; + ToolTip = 'Specifies whether to migrate open Sales Orders.'; + trigger OnValidate() + begin + if PrepSettingsForFieldUpdate() then + repeat + SLCompanyAdditionalSettings.Validate("Migrate Open SOs", Rec."Migrate Open SOs"); + SLCompanyAdditionalSettings.Modify(); + until SLCompanyAdditionalSettings.Next() = 0; + end; + } field("Migrate Inventory Module"; Rec."Migrate Inventory Module") { Caption = 'Inventory'; @@ -152,6 +164,20 @@ page 47018 "SL Migration Configuration" until SLCompanyAdditionalSettings.Next() = 0; end; } + field("Migrate Cash Manager Module"; Rec."Migrate Cash Manager Module") + { + Caption = 'Cash Manager'; + ToolTip = 'Specifies whether to migrate the Cash Manager module.'; + + trigger OnValidate() + begin + if PrepSettingsForFieldUpdate() then + repeat + SLCompanyAdditionalSettings.Validate("Migrate Cash Manager Module", Rec."Migrate Cash Manager Module"); + SLCompanyAdditionalSettings.Modify(); + until SLCompanyAdditionalSettings.Next() = 0; + end; + } } group(MasterOnly) @@ -215,6 +241,20 @@ page 47018 "SL Migration Configuration" until SLCompanyAdditionalSettings.Next() = 0; end; } + field("Migrate Only CashAcct Master"; Rec."Migrate Only CashAcct Master") + { + Caption = 'Cash Accounts'; + ToolTip = 'Specifies whether to migrate Cash Account master data only.'; + + trigger OnValidate() + begin + if PrepSettingsForFieldUpdate() then + repeat + SLCompanyAdditionalSettings.Validate("Migrate Only CashAcct Master", Rec."Migrate Only CashAcct Master"); + SLCompanyAdditionalSettings.Modify(); + until SLCompanyAdditionalSettings.Next() = 0; + end; + } } group(ProjectOptions) @@ -728,13 +768,16 @@ page 47018 "SL Migration Configuration" SLCompanyAdditionalSettingsEachCompany.Validate("Migrate Payables Module", Rec."Migrate Payables Module"); SLCompanyAdditionalSettingsEachCompany.Validate("Migrate Receivables Module", Rec."Migrate Receivables Module"); SLCompanyAdditionalSettingsEachCompany.Validate("Migrate Open POs", Rec."Migrate Open POs"); + SLCompanyAdditionalSettingsEachCompany.Validate("Migrate Open SOs", Rec."Migrate Open SOs"); SLCompanyAdditionalSettingsEachCompany.Validate("Migrate Inventory Module", Rec."Migrate Inventory Module"); SLCompanyAdditionalSettingsEachCompany.Validate("Include Project Module", Rec."Include Project Module"); + SLCompanyAdditionalSettingsEachCompany.Validate("Migrate Cash Manager Module", Rec."Migrate Cash Manager Module"); SLCompanyAdditionalSettingsEachCompany.Validate("Oldest GL Year to Migrate", Rec."Oldest GL Year to Migrate"); SLCompanyAdditionalSettingsEachCompany.Validate("Migrate Only GL Master", Rec."Migrate Only GL Master"); SLCompanyAdditionalSettingsEachCompany.Validate("Migrate Only Payables Master", Rec."Migrate Only Payables Master"); SLCompanyAdditionalSettingsEachCompany.Validate("Migrate Only Rec. Master", Rec."Migrate Only Rec. Master"); SLCompanyAdditionalSettingsEachCompany.Validate("Migrate Only Inventory Master", Rec."Migrate Only Inventory Master"); + SLCompanyAdditionalSettingsEachCompany.Validate("Migrate Only CashAcct Master", Rec."Migrate Only CashAcct Master"); SLCompanyAdditionalSettingsEachCompany.Validate("Resource Master Only", Rec."Resource Master Only"); SLCompanyAdditionalSettingsEachCompany.Validate("Project Master Only", Rec."Project Master Only"); SLCompanyAdditionalSettingsEachCompany.Validate("Task Master Only", Rec."Task Master Only"); @@ -792,12 +835,15 @@ page 47018 "SL Migration Configuration" Rec.Validate("Migrate Payables Module", SLCompanyAdditionalSettingsInit."Migrate Payables Module"); Rec.Validate("Migrate Receivables Module", SLCompanyAdditionalSettingsInit."Migrate Receivables Module"); Rec.Validate("Migrate Open POs", SLCompanyAdditionalSettingsInit."Migrate Open POs"); + Rec.Validate("Migrate Open SOs", SLCompanyAdditionalSettingsInit."Migrate Open SOs"); Rec.Validate("Migrate Inventory Module", SLCompanyAdditionalSettingsInit."Migrate Inventory Module"); Rec.Validate("Include Project Module", SLCompanyAdditionalSettingsInit."Include Project Module"); + Rec.Validate("Migrate Cash Manager Module", SLCompanyAdditionalSettingsInit."Migrate Cash Manager Module"); Rec.Validate("Migrate Only GL Master", SLCompanyAdditionalSettingsInit."Migrate Only GL Master"); Rec.Validate("Migrate Only Payables Master", SLCompanyAdditionalSettingsInit."Migrate Only Payables Master"); Rec.Validate("Migrate Only Rec. Master", SLCompanyAdditionalSettingsInit."Migrate Only Rec. Master"); Rec.Validate("Migrate Only Inventory Master", SLCompanyAdditionalSettingsInit."Migrate Only Inventory Master"); + Rec.Validate("Migrate Only CashAcct Master", SLCompanyAdditionalSettingsInit."Migrate Only CashAcct Master"); Rec.Validate("Resource Master Only", SLCompanyAdditionalSettingsInit."Resource Master Only"); Rec.Validate("Project Master Only", SLCompanyAdditionalSettingsInit."Project Master Only"); Rec.Validate("Task Master Only", SLCompanyAdditionalSettingsInit."Task Master Only"); diff --git a/Apps/W1/HybridSL/app/src/pages/SLMigrationErrorOverview.Page.al b/Apps/W1/HybridSL/app/src/pages/SLMigrationErrorOverview.Page.al index 6781995e91..77ccefc234 100644 --- a/Apps/W1/HybridSL/app/src/pages/SLMigrationErrorOverview.Page.al +++ b/Apps/W1/HybridSL/app/src/pages/SLMigrationErrorOverview.Page.al @@ -16,6 +16,7 @@ page 47020 "SL Migration Error Overview" InsertAllowed = false; PageType = List; SourceTable = "SL Migration Error Overview"; + UsageCategory = Administration; layout { diff --git a/Apps/W1/HybridSL/app/src/pages/SLMigrationWarnings.Page.al b/Apps/W1/HybridSL/app/src/pages/SLMigrationWarnings.Page.al index 53bb565e5e..489b9af48a 100644 --- a/Apps/W1/HybridSL/app/src/pages/SLMigrationWarnings.Page.al +++ b/Apps/W1/HybridSL/app/src/pages/SLMigrationWarnings.Page.al @@ -14,6 +14,7 @@ page 47021 "SL Migration Warnings" InsertAllowed = false; PageType = List; SourceTable = "SL Migration Warnings"; + UsageCategory = Administration; layout { diff --git a/Apps/W1/HybridSL/app/src/tables/SLCompanyAdditionalSettings.Table.al b/Apps/W1/HybridSL/app/src/tables/SLCompanyAdditionalSettings.Table.al index feea1c22a9..bbc061373a 100644 --- a/Apps/W1/HybridSL/app/src/tables/SLCompanyAdditionalSettings.Table.al +++ b/Apps/W1/HybridSL/app/src/tables/SLCompanyAdditionalSettings.Table.al @@ -152,6 +152,7 @@ table 47061 "SL Company Additional Settings" begin if not Rec."Migrate Receivables Module" then begin Rec.Validate("Migrate Inactive Customers", false); + Rec.Validate("Migrate Open SOs", false); Rec.Validate("Migrate Customer Classes", false); Rec.Validate("Migrate Only Rec. Master", false); Rec.Validate("Migrate Hist. AR Trx.", false); @@ -169,6 +170,7 @@ table 47061 "SL Company Additional Settings" if not Rec."Migrate Inventory Module" then begin Rec.Validate("Migrate Item Classes", false); Rec.Validate("Migrate Open POs", false); + Rec.Validate("Migrate Open SOs", false); Rec.Validate("Migrate Only Inventory Master", false); Rec.Validate("Migrate Inactive Items", false); Rec.Validate("Migrate Discontinued Items", false); @@ -476,6 +478,52 @@ table 47061 "SL Company Additional Settings" InitValue = false; ToolTip = 'Specify whether to include Resources with a Status of Hold.'; } + field(39; "Migrate Cash Manager Module"; Boolean) + { + Caption = 'Cash Manager Module'; + InitValue = false; + ToolTip = 'Specify whether to migrate the Cash Manager module.'; + + trigger OnValidate() + begin + if not Rec."Migrate Cash Manager Module" then + Rec.Validate("Migrate Only CashAcct Master", false); + end; + } + field(40; "Migrate Only CashAcct Master"; Boolean) + { + Caption = 'Cash Account Only'; + InitValue = false; + ToolTip = 'Specify whether to migrate Cash Account master data only. Cash Account balances will not be migrated'; + + trigger OnValidate() + begin + if Rec."Migrate Only CashAcct Master" then begin + if not Rec."Migrate Cash Manager Module" then + Rec.Validate("Migrate Cash Manager Module", true) + end else + if not Rec."Migrate GL Module" then + if Rec."Migrate Receivables Module" then + Rec.Validate("Migrate GL Module", true); + end; + } + field(41; "Migrate Open SOs"; Boolean) + { + Caption = 'Open Sales Orders'; + InitValue = false; + ToolTip = 'Specify whether to migrate open Sales Orders.'; + + trigger OnValidate() + begin + if Rec."Migrate Open SOs" then begin + Rec.Validate("Migrate Inventory Module", true); + Rec.Validate("Migrate Receivables Module", true); + + if not Rec."Migrate GL Module" then + Rec.Validate("Migrate GL Module", true); + end; + end; + } } keys @@ -532,6 +580,12 @@ table 47061 "SL Company Additional Settings" exit(Rec."Include Project Module"); end; + internal procedure GetCashManagerModuleEnabled(): Boolean + begin + GetSingleInstance(); + exit(Rec."Migrate Cash Manager Module"); + end; + // Inactives internal procedure GetMigrateInactiveCustomers(): Boolean begin @@ -631,6 +685,12 @@ table 47061 "SL Company Additional Settings" exit(Rec."Include Hold Status Resources"); end; + internal procedure GetMigrateOnlyCashAcctMaster(): Boolean + begin + GetSingleInstance(); + exit(Rec."Migrate Only CashAcct Master"); + end; + // Posting internal procedure GetSkipAllPosting(): Boolean begin @@ -672,6 +732,12 @@ table 47061 "SL Company Additional Settings" exit(Rec."Migrate Open POs"); end; + internal procedure GetMigrateOpenSOs(): Boolean + begin + GetSingleInstance(); + exit(Rec."Migrate Open SOs"); + end; + internal procedure GetInitialYear(): Integer begin GetSingleInstance(); @@ -743,7 +809,8 @@ table 47061 "SL Company Additional Settings" and not Rec."Migrate Inventory Module" and not Rec."Migrate Payables Module" and not Rec."Migrate Receivables Module" - and not Rec."Include Project Module"); + and not Rec."Include Project Module" + and not Rec."Migrate Cash Manager Module"); end; var diff --git a/Apps/W1/HybridSL/app/src/tables/SLPostMigrationDataLog.Table.al b/Apps/W1/HybridSL/app/src/tables/SLPostMigrationDataLog.Table.al new file mode 100644 index 0000000000..3900d66d13 --- /dev/null +++ b/Apps/W1/HybridSL/app/src/tables/SLPostMigrationDataLog.Table.al @@ -0,0 +1,77 @@ +// ------------------------------------------------------------------------------------------------ +// 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 47091 "SL Post Migration Data Log" +{ + Caption = 'SL Post Migration Data Log'; + DataClassification = CustomerContent; + + fields + { + field(1; "Primary Key"; Integer) + { + Caption = 'Primary Key'; + AutoIncrement = true; + } + field(2; "Post Migration Type"; Code[30]) + { + Caption = 'Post Migration Type'; + DataClassification = CustomerContent; + } + field(3; "Table Reference"; Text[30]) + { + Caption = 'Table Reference'; + } + field(4; "Error Code"; Text[100]) + { + Caption = 'Error Code'; + } + field(5; "Error Message"; Blob) + { + Caption = 'Error Message'; + } + field(6; "Message Code"; Text[100]) + { + Caption = 'Message Code'; + } + field(7; "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/W1/HybridSL/test/.resources/datasets/input/SLBCCustomerForOpenOrders.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCCustomerForOpenOrders.csv new file mode 100644 index 0000000000..4441a512b4 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCCustomerForOpenOrders.csv @@ -0,0 +1,4 @@ +No.,Name,Search Name,Name 2,Address,Address 2,City,Contact,Phone No.,Territory Code,Credit Limit ($),Customer Posting Group,Payment Terms Code,Salesperson Code,Shipment Method Code,Country/Region Code,Blocked,Fax No.,Gen. Bus. Posting Group,ZIP Code,State,Tax Area Code,Tax Liable +C315,The Phone Company,THE PHONE COMPANY,The Phone Company,4864 Landview Dr ,,Dublin ,,5555550129 ,,30000,COMM,,BW,,US,,5555550130 ,SL,43016-8378,OH ,,false +C389,Alpine Ski House,ALPINE SKI HOUSE,Alpine Ski House,Main Street ,,Pittsburgh ,,5555550131 ,,0,COMM,,BW,,US,,,SL,33222,PA ,,false +C421,City Power & Light,CITY POWER & LIGHT,City Power & Light,7237 E Gage Ave ,,Commerce ,,,,0,GOVERN,,BW,,US,,,SL,90040-3812,CA ,,false \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCDimension.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCDimension.csv index e8822f3a38..0a19b48ec2 100644 --- a/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCDimension.csv +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCDimension.csv @@ -2,7 +2,6 @@ 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 +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/SLBCGenBusinessPostingGroup.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCGenBusinessPostingGroup.csv new file mode 100644 index 0000000000..5a07f3e3cd --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCGenBusinessPostingGroup.csv @@ -0,0 +1,5 @@ +Code,Description +DOMESTIC,Domestic customers and vendors +EU,Customers and vendors in EU +EXPORT,Other customers and vendors (not EU) +SL,Migrated from SL diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCGenProductPostingGroup.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCGenProductPostingGroup.csv new file mode 100644 index 0000000000..41e4319393 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCGenProductPostingGroup.csv @@ -0,0 +1,3 @@ +Code,Description +SL,Migrated from SL +SLITEMIMPORT,SL Item Import (No impact to GL) diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCInventoryPostingGroup.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCInventoryPostingGroup.csv new file mode 100644 index 0000000000..7693949495 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCInventoryPostingGroup.csv @@ -0,0 +1,6 @@ +Code,Description +CPUHWD,Computer Hardware +FILCAB,File Cabinet +FILFLD,File Folder +LABOR,For LABOR Item Only +MMGWO,WO Items diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCItemForOpenOrders.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCItemForOpenOrders.csv new file mode 100644 index 0000000000..093c59f1d1 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCItemForOpenOrders.csv @@ -0,0 +1,11 @@ +No.,Description,Search Description,Base Unit of Measure,Type,Inventory Posting Group,Unit Price,Costing Method,Unit Cost,Standard Cost,Net Weight,Blocked,Block Reason,Gen. Prod. Posting Group,Sales Unit of Measure,Purch. Unit of Measure,Item Tracking Code,Expiration Calculation +0RBOLT,Carriage Bolts ,CARRIAGE BOLTS,EA,Inventory,MMGWO,0,LIFO,0.3,0.299999999999999989,0,false,,SL,EA,EA,, +0RHANDLBAR,Bicycle Handlebar ,BICYCLE HANDLEBAR,EA,Inventory,MMGWO,0,LIFO,7.5,7.5,0,false,,SL,EA,EA,, +0RSEAT-PERF-ASSY,Performance Seat Assembly ,PERFORMANCE SEAT ASSEMBLY,EA,Inventory,MMGWO,15,Average,0,0,0,false,,SL,EA,EA,, +HON-672L-L,600 Series Wide Lateral Two Drawer File Cabinet ,600 SERIES WIDE LATERAL TWO DRAWER FILE CABINET,EA,Inventory,FILCAB,380,Standard,300,300,0,false,,SL,EA,EA,, +HON-672L-P,600 Series Wide Lateral Two Drawer File Cabinet ,600 SERIES WIDE LATERAL TWO DRAWER FILE CABINET,EA,Inventory,FILCAB,380,Standard,300,300,0,false,,SL,EA,EA,, +HON-672L-Q,600 Series Wide Lateral Two Drawer File Cabinet ,600 SERIES WIDE LATERAL TWO DRAWER FILE CABINET,EA,Inventory,FILCAB,380,Standard,300,300,0,false,,SL,EA,EA,, +OID-47573,Lateral Two Drawer File Cabinet ,LATERAL TWO DRAWER FILE CABINET,EA,Inventory,FILCAB,442,Average,0,0,0,false,,SL,EA,EA,, +UNV-14113,Hanging File Folder -- Letter Size w/ 3 tabs ,HANGING FILE FOLDER -- LETTER SIZE W/ 3 TABS,CARTON,Inventory,FILFLD,14.6999999999999993,Standard,9,9,0,false,,SL,CARTON,CARTON,, +UNV-14115,Hanging File Folder -- Letter Size w/ 5 tabs ,HANGING FILE FOLDER -- LETTER SIZE W/ 5 TABS,CARTON,Inventory,FILFLD,14.1999999999999993,Standard,9,9,0,false,,SL,CARTON,CARTON,, +UNV-14116,Hanging File Folder -- Letter Size w/ 5 tabs ,HANGING FILE FOLDER -- LETTER SIZE W/ 5 TABS,CARTON,Inventory,FILFLD,15.9499999999999993,Standard,9,9,0,false,,SL,CARTON,CARTON,, \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCItemUOMForOpenOrders.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCItemUOMForOpenOrders.csv new file mode 100644 index 0000000000..87f1aa0485 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCItemUOMForOpenOrders.csv @@ -0,0 +1,12 @@ +Item No.,Code,Qty. per Unit of Measure +0RBOLT,EA,1 +0RHANDLBAR,EA,1 +0RSEAT-PERF-ASSY,EA,1 +HON-672L-L,EA,1 +HON-672L-P,EA,1 +HON-672L-Q,EA,1 +OID-47573,EA,1 +UNV-14113,BOX,5 +UNV-14113,CARTON,1 +UNV-14115,CARTON,1 +UNV-14116,CARTON,1 diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCLocations.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCLocations.csv new file mode 100644 index 0000000000..59b12a9d2e --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCLocations.csv @@ -0,0 +1,8 @@ +Code,Name,Address,Address 2,City,Phone No.,Fax No.,ZIP Code,State,Country/Region Code +200,Building 200 ,,,,,,,, +400,Building 400 ,,,,,,,, +CH,Chicago ,12345 Main ,,Chicago ,3125550100 ,3125550101 ,019010,, +LA,Los Angeles ,1 World Way ,,Los Angeles ,5555550150 ,5555550151 ,90045-5803,, +NY,New York ,123 Avenue St ,,New York ,5555550168 ,5555550169 ,45860,, +OH-DUB,Ohio - Dublin ,,,Dublin ,,,,, +SF,San Francisco ,324 Fifth Street ,,San Francisco ,5555550199 ,5555550198 ,01009,, diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCUnitOfMeasureForOpenOrders.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCUnitOfMeasureForOpenOrders.csv new file mode 100644 index 0000000000..c3b8c3d601 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCUnitOfMeasureForOpenOrders.csv @@ -0,0 +1,4 @@ +Code,Description,International Standard Code,Symbol +BOX,Box,BX, +CARTON,CARTON,, +EA,EA ,, diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCVendorForOpenPOs.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCVendorForOpenPOs.csv new file mode 100644 index 0000000000..256d927a43 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLBCVendorForOpenPOs.csv @@ -0,0 +1,20 @@ +No.,Name,Search Name,Address,Address 2,City,Contact,Phone No.,Vendor Posting Group,Shipment Method Code,Country/Region Code,Blocked,Tax Registration No.,Gen. Bus. Posting Group,ZIP Code,State,Email,Tax Area Code,Tax Liable +V00152,Adventure Works,ADVENTURE WORKS,70 Apple Street,,Cleveland,John Rodman,5555550100,TRADE,,US,,,SL,53636,OH ,,,FALSE +V00205,Engineers,ENGINEERS,,,Findlay,,,TRADE,,US,,,SL,01234,OH ,,,FALSE +V00206,Graphic Design Institute,GRAPHIC DESIGN INSTITUTE,,,Findlay,,,TRADE,,US,,,SL,01234,OH ,,,FALSE +V00207,"Litware, Inc.","LITWARE, INC.",,,Findlay,,,TRADE,,US,,,SL,01234,OH ,,,FALSE +V00208,"Proseware, Inc.","PROSEWARE, INC.",,,Findlay,,,TRADE,,US,,,SL,01234,OH ,,,FALSE +V00209,Northwind Traders,NORTHWIND TRADERS,,,Findlay,,,TRADE,,US,,,SL,01234,OH ,,,FALSE +V00213,"Fabrikam, Inc.","FABRIKAM, INC.",,,Findlay,,,TRADE,,US,,,SL,01234,OH ,,,FALSE +V00214,Carpenters,CARPENTERS,,,Findlay,,,TRADE,,US,,,SL,01234,OH ,,,FALSE +V00215,Roofers,ROOFERS,,,Findlay,,,TRADE,,US,,,SL,01234,OH ,,,FALSE +V00216,Building Contractors,BUILDING CONTRACTORS,,,Findlay,,,TRADE,,US,,,SL,01234,OH ,,,FALSE +V00217,Coho Vineyard,COHO VINEYARD,,,Findlay,,,TRADE,,US,,,SL,01234,OH ,,,FALSE +VT0100,International,INTERNATIONAL,400 West Madison St.,Suite 400,Chicago,,5555550190,TRADE,,US,,25-5254254,SL,222222,IL ,someone@example.com,COOK-G,TRUE +VT0110,America,AMERICA,100 N. State St.,Suite 1200,Madison,,5555550196,TRADE,,US,,25-3636254,SL,45454,WI ,,,FALSE +VT0120,Circle,CIRCLE,258 N. Johnson Ave.,,Sioux City,,5555550105,TRADE,,US,,,SL,09000,IA ,,,FALSE +VT0121,Square,SQUARE,10 S. Ricker Ave.,,Sioux City,,5555550107,TRADE,,US,,,SL,08777,IA ,,,FALSE +VT0122,Alphabet,ALPHABET,125 N. Main Ave.,,Sioux City,,5555550109,TRADE,,US,,,SL,10100,IA ,,,FALSE +VT0123,Consolidated Messenger,CONSOLIDATED MESSENGER,139 N. Akron Ave.,,Sioux City,,5555550111,TRADE,,US,,,SL,22111,IA ,,,FALSE +VT0124,Fourth Coffee,FOURTH COFFEE,420 S. State St.,,Sioux City,,5555550112,TRADE,,US,,,SL,01000,IA ,,,FALSE +VT0125,Trey Research,TREY RESEARCH,520 N. Laurence Ave.,,Sioux City,,5555550113,TRADE,,US,,,SL,01000,IA ,,,FALSE \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLCompanyAdditonalSettingsOldestGLYear2016.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLCompanyAdditonalSettingsOldestGLYear2016.csv new file mode 100644 index 0000000000..de4c16f4f5 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLCompanyAdditonalSettingsOldestGLYear2016.csv @@ -0,0 +1,2 @@ +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 +0060,false,false,false,false,false,2016,true,true,true,Location,Group,false,false,false,false,false,false,false,0,false,false,false,false,false,false,false,false,true,false,false,false,false,false,false,false diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLCompanyMigrationSettings.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLCompanyMigrationSettings.csv new file mode 100644 index 0000000000..381d28e1c1 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLCompanyMigrationSettings.csv @@ -0,0 +1,2 @@ +Name,Global Dimension 1,Global Dimension 2,Migrate Inactive Customers,Migrate Inactive Vendors,ProcessesAreRunning +0060,Location,Group,false,false,false diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLAcctHistWithBeginningBalances.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLAcctHistWithBeginningBalances.csv index ddc2552cf1..ce32d513ea 100644 --- a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLAcctHistWithBeginningBalances.csv +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLAcctHistWithBeginningBalances.csv @@ -1,650 +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 +"CRONUS USA",000000 ,000000000000 ,0000000000,2017,0,0,0,0,0,-13.3800000000000008,0,0,0,-7003.69999999999982,-8,-16,0,0 +"CRONUS USA",000000 ,01100AA00001 ,0000000000,2017,0,0,-25,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",000000 ,000000000000 ,0000000000,2018,-7041.07999999999993,0,0,0,-6.75,-13.5,0,0,0,0,0,0,0,0 +"CRONUS USA",000000 ,01100AA00001 ,0000000000,2018,-25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1000 ,000000000000 ,0000000000,2016,0,-10000,-11000,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1000 ,000000000000 ,0000000000,2017,-21000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1000 ,000000000000 ,0000000000,2018,-21000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1030 ,000000000000 ,0000000000,2014,12345678.9000000004,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1030 ,01100AA00001 ,0000000000,2014,-1859858.43999999994,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1030 ,03440AA00510 ,0000000000,2015,6000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1030 ,000000000000 ,0000000000,2016,12345678.9000000004,0,0,0,0,0,0,0,0,0,0,-100,-100,0 +"CRONUS USA",1030 ,01100AA00001 ,0000000000,2016,-1859858.43999999994,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1030 ,03440AA00510 ,0000000000,2016,6000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1030 ,000000000000 ,0000000000,2017,12345478.9000000004,-100,-100,-100,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",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",1030 ,03440AA00510 ,0000000000,2017,6000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1030 ,000000000000 ,0000000000,2018,12345178.9000000004,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1030 ,01100AA00001 ,0000000000,2018,-1742920.95999999996,0,0,0,0,-915,-8460,0,0,0,0,0,0,0 +"CRONUS USA",1030 ,03440AA00510 ,0000000000,2018,6000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1031 ,01100AA00001 ,0000000000,2014,3250000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1031 ,03440AA00510 ,0000000000,2014,17097550,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1031 ,01100AA00001 ,0000000000,2015,3250000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1031 ,03440AA00510 ,0000000000,2015,17097550,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1031 ,01100AA00001 ,0000000000,2016,3250000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1031 ,03440AA00510 ,0000000000,2016,17097550,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1031 ,01100AA00001 ,0000000000,2017,3250000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1031 ,03440AA00510 ,0000000000,2017,17097550,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1031 ,999999999999 ,0000000000,2017,0,0,0,0,0,0,0,0,0,0,108,216,0,0 +"CRONUS USA",1031 ,01100AA00001 ,0000000000,2018,3250000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1031 ,03440AA00510 ,0000000000,2018,17097550,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1031 ,999999999999 ,0000000000,2018,324,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1037 ,000000000000 ,0000000000,2014,625321.939999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1037 ,01100AA00001 ,0000000000,2014,-25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1037 ,03440AA00510 ,0000000000,2014,11054064.2100000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1037 ,000000000000 ,0000000000,2015,625321.939999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1037 ,01100AA00001 ,0000000000,2015,-25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1037 ,03440AA00510 ,0000000000,2015,11054064.2100000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1037 ,000000000000 ,0000000000,2016,625321.939999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1037 ,01100AA00001 ,0000000000,2016,-25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1037 ,03440AA00510 ,0000000000,2016,11054064.2100000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1037 ,000000000000 ,0000000000,2017,625321.939999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1037 ,01100AA00001 ,0000000000,2017,-25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1037 ,03440AA00510 ,0000000000,2017,11054064.2100000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1037 ,000000000000 ,0000000000,2018,625321.939999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1037 ,01100AA00001 ,0000000000,2018,-25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1037 ,03440AA00510 ,0000000000,2018,11054064.2100000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1039 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,200,200,100,0 +"CRONUS USA",1039 ,000000000000 ,0000000000,2017,500,100,100,100,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1039 ,000000000000 ,0000000000,2018,800,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1040 ,000000000000 ,0000000000,2014,658425.390000000014,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1040 ,000000000000 ,0000000000,2015,658425.390000000014,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1040 ,000000000000 ,0000000000,2016,658425.390000000014,0,0,0,0,0,0,0,0,0,0,10970.5300000000007,0,0 +"CRONUS USA",1040 ,000000000000 ,0000000000,2017,669395.920000000042,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1040 ,000000000000 ,0000000000,2018,669395.920000000042,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1041 ,01100AA00001 ,0000000000,2014,11562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1041 ,01100AA00001 ,0000000000,2015,11562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1041 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-100,-100,0,0 +"CRONUS USA",1041 ,01100AA00001 ,0000000000,2016,11562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1041 ,000000000000 ,0000000000,2017,-200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1041 ,01100AA00001 ,0000000000,2017,11562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1041 ,000000000000 ,0000000000,2018,-200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1041 ,01100AA00001 ,0000000000,2018,11562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1070 ,000000000000 ,0000000000,2014,-781063.189999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1070 ,000000000000 ,0000000000,2015,-781063.189999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1070 ,000000000000 ,0000000000,2016,-781063.189999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1070 ,000000000000 ,0000000000,2017,-781063.189999999944,-50,-100,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1070 ,000000000000 ,0000000000,2018,-781213.189999999944,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1110 ,01100AA00001 ,0000000000,2014,777.990000000000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1110 ,03430AA00001 ,0000000000,2014,227778.279999999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1110 ,01100AA00001 ,0000000000,2015,777.990000000000009,654.25,0,0,0,0,0,0,0,0,0,0,2842.5,0 +"CRONUS USA",1110 ,03000AA00001 ,0000000000,2015,0,106.75,373.629999999999995,0,0,0,0,0,0,0,0,0,222.039999999999992,0 +"CRONUS USA",1110 ,03430AA00001 ,0000000000,2015,227778.279999999999,0,1441.13000000000011,0,0,0,0,0,0,0,7600,0,0,0 +"CRONUS USA",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",1110 ,03000AA00001 ,0000000000,2016,702.419999999999959,1111.65000000000009,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1110 ,03430AA00001 ,0000000000,2016,236819.410000000003,5485.06999999999971,0,0,0,0,0,0,0,0,0,380.949999999999989,0,0 +"CRONUS USA",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",1110 ,03000AA00001 ,0000000000,2017,1814.06999999999994,6.75,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",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",1110 ,01100AA00001 ,0000000000,2018,254401.640000000014,0,0,0,106.75,213.5,1514.25,0,0,0,0,0,0,0 +"CRONUS USA",1110 ,03000AA00001 ,0000000000,2018,1820.81999999999994,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1110 ,03430AA00001 ,0000000000,2018,29940.7999999999993,0,0,380,480,2830,4204,0,0,0,0,0,0,0 +"CRONUS USA",1115 ,SC0000000000 ,0000000000,2016,0,40,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1115 ,SC0000000000 ,0000000000,2017,40,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1115 ,SC0000000000 ,0000000000,2018,40,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1150 ,000000000000 ,0000000000,2014,-113667.529999999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1150 ,000000000000 ,0000000000,2015,-113667.529999999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1150 ,000000000000 ,0000000000,2016,-113667.529999999999,0,0,0,0,0,0,0,0,0,-75,0,0,0 +"CRONUS USA",1150 ,000000000000 ,0000000000,2017,-113742.529999999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1150 ,000000000000 ,0000000000,2018,-113742.529999999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1151 ,000000000000 ,0000000000,2014,-326519.869999999995,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1151 ,000000000000 ,0000000000,2015,-326519.869999999995,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1151 ,000000000000 ,0000000000,2016,-326519.869999999995,0,0,0,0,0,0,0,0,0,-75,0,0,0 +"CRONUS USA",1151 ,000000000000 ,0000000000,2017,-326594.869999999995,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1151 ,000000000000 ,0000000000,2018,-326594.869999999995,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1156 ,000000000000 ,0000000000,2014,66644.679999999993,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1156 ,000000000000 ,0000000000,2015,66644.679999999993,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1156 ,000000000000 ,0000000000,2016,66644.679999999993,2150,0,0,0,0,0,0,0,0,-50,0,0,0 +"CRONUS USA",1156 ,000000000000 ,0000000000,2017,68744.679999999993,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1156 ,000000000000 ,0000000000,2018,68744.679999999993,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1157 ,000000000000 ,0000000000,2014,-124358.190000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1157 ,000000000000 ,0000000000,2015,-124358.190000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1157 ,000000000000 ,0000000000,2016,-124358.190000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1157 ,000000000000 ,0000000000,2017,-124358.190000000002,0,-50,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1157 ,000000000000 ,0000000000,2018,-124408.190000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1160 ,000000000000 ,0000000000,2014,-145157,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1160 ,000000000000 ,0000000000,2015,-145157,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1160 ,000000000000 ,0000000000,2016,-145157,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1160 ,000000000000 ,0000000000,2017,-145157,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1160 ,000000000000 ,0000000000,2018,-145157,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1170 ,01100AA00001 ,0000000000,2014,13790.2800000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1170 ,01100AA00001 ,0000000000,2015,13790.2800000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1170 ,01100AA00001 ,0000000000,2016,13790.2800000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1170 ,01100AA00001 ,0000000000,2017,13790.2800000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1170 ,01100AA00001 ,0000000000,2018,13790.2800000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1190 ,000000000000 ,0000000000,2014,1000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1190 ,000000000000 ,0000000000,2015,1000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1190 ,CO0000000000 ,0000000000,2015,0,0,-1250,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1190 ,EN0000000000 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,0,0,-208,0 +"CRONUS USA",1190 ,000000000000 ,0000000000,2016,1000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1190 ,CO0000000000 ,0000000000,2016,-1250,-6875,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1190 ,EN0000000000 ,0000000000,2016,-208,-104,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1190 ,000000000000 ,0000000000,2017,1000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1190 ,CO0000000000 ,0000000000,2017,-8125,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1190 ,EN0000000000 ,0000000000,2017,-312,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1190 ,000000000000 ,0000000000,2018,1000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1190 ,CO0000000000 ,0000000000,2018,-8125,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1190 ,EN0000000000 ,0000000000,2018,-312,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1191 ,01100AA00001 ,0000000000,2014,15136.8400000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1191 ,01100AA00001 ,0000000000,2015,15136.8400000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1191 ,01100AA00001 ,0000000000,2016,15136.8400000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1191 ,01100AA00001 ,0000000000,2017,15136.8400000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1191 ,01100AA00001 ,0000000000,2018,15136.8400000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1192 ,CO0000000000 ,0000000000,2015,0,0,-100,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1192 ,EN0000000000 ,0000000000,2015,0,-100,-350,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1192 ,010000000000 ,0000000000,2016,0,-150,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1192 ,CO0000000000 ,0000000000,2016,-100,-100,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1192 ,EN0000000000 ,0000000000,2016,-450,-950,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1192 ,010000000000 ,0000000000,2017,-150,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1192 ,AT0000000000 ,0000000000,2017,0,-1600,0,0,-100,-630,0,0,0,0,0,0,0,0 +"CRONUS USA",1192 ,CO0000000000 ,0000000000,2017,-200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1192 ,EN0000000000 ,0000000000,2017,-1400,0,0,0,0,-200,0,0,0,0,0,0,0,0 +"CRONUS USA",1192 ,010000000000 ,0000000000,2018,-150,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1192 ,AT0000000000 ,0000000000,2018,-2330,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1192 ,CO0000000000 ,0000000000,2018,-200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1192 ,EN0000000000 ,0000000000,2018,-1600,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1210 ,000000000000 ,0000000000,2014,421518,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1210 ,000000000000 ,0000000000,2015,421518,600,0,0,0,0,0,0,0,0,-6000,0,10000,0 +"CRONUS USA",1210 ,000000000000 ,0000000000,2016,426118,27600,-300,-100,-1050,-650,0,0,7950,0,3900,-600,0,0 +"CRONUS USA",1210 ,000000000000 ,0000000000,2017,462868,-600,330,-5700,10000,0,1600,5100,140,-2700,-150,-100,0,0 +"CRONUS USA",1210 ,000000000000 ,0000000000,2018,470788,0,0,-300,-350,310,-3320,0,0,0,0,0,0,0 +"CRONUS USA",1226 ,AT0000000000 ,0000000000,2017,0,0,0,0,0,600,0,0,0,0,0,0,0,0 +"CRONUS USA",1226 ,AT0000000000 ,0000000000,2018,600,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1230 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,528.259999999999991,0,0,0 +"CRONUS USA",1230 ,000000000000 ,0000000000,2017,528.259999999999991,0,0,0,0,0,10,0,20,0,0,0,0,0 +"CRONUS USA",1230 ,000000000000 ,0000000000,2018,558.259999999999991,3000,0,0,-30,-180,-330,0,0,0,0,0,0,0 +"CRONUS USA",1240 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,907.019999999999982,0,0,0 +"CRONUS USA",1240 ,000000000000 ,0000000000,2017,907.019999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1240 ,000000000000 ,0000000000,2018,907.019999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1310 ,01100AA00001 ,0000000000,2017,0,0,100,60066.6600000000035,-59916.6600000000035,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1310 ,01100AA00001 ,0000000000,2018,250,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1565 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,-4209,0,0 +"CRONUS USA",1565 ,000000000000 ,0000000000,2017,-4209,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1565 ,000000000000 ,0000000000,2018,-4209,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1620 ,000000000000 ,0000000000,2014,2500658.93999999994,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1620 ,000000000000 ,0000000000,2015,2500658.93999999994,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1620 ,000000000000 ,0000000000,2016,2500658.93999999994,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1620 ,000000000000 ,0000000000,2017,2500658.93999999994,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1620 ,000000000000 ,0000000000,2018,2500658.93999999994,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1621 ,000000000000 ,0000000000,2014,-15004.3999999999996,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1621 ,000000000000 ,0000000000,2015,-15004.3999999999996,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1621 ,000000000000 ,0000000000,2016,-15004.3999999999996,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1621 ,000000000000 ,0000000000,2017,-15004.3999999999996,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1621 ,000000000000 ,0000000000,2018,-15004.3999999999996,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1630 ,000000000000 ,0000000000,2014,650000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1630 ,000000000000 ,0000000000,2015,650000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1630 ,000000000000 ,0000000000,2016,650000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1630 ,000000000000 ,0000000000,2017,650000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1630 ,000000000000 ,0000000000,2018,650000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1631 ,000000000000 ,0000000000,2014,-15476.2000000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1631 ,000000000000 ,0000000000,2015,-15476.2000000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1631 ,000000000000 ,0000000000,2016,-15476.2000000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1631 ,000000000000 ,0000000000,2017,-15476.2000000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1631 ,000000000000 ,0000000000,2018,-15476.2000000000007,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1640 ,000000000000 ,0000000000,2014,1850954.56000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1640 ,000000000000 ,0000000000,2015,1850954.56000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1640 ,000000000000 ,0000000000,2016,1850954.56000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1640 ,000000000000 ,0000000000,2017,1850954.56000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1640 ,000000000000 ,0000000000,2018,1850954.56000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1641 ,000000000000 ,0000000000,2014,-61448.4800000000032,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1641 ,000000000000 ,0000000000,2015,-61448.4800000000032,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1641 ,000000000000 ,0000000000,2016,-61448.4800000000032,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1641 ,000000000000 ,0000000000,2017,-61448.4800000000032,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1641 ,000000000000 ,0000000000,2018,-61448.4800000000032,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1650 ,000000000000 ,0000000000,2014,100000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1650 ,000000000000 ,0000000000,2015,100000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1650 ,000000000000 ,0000000000,2016,100000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1650 ,000000000000 ,0000000000,2017,100000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1650 ,000000000000 ,0000000000,2018,100000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1651 ,000000000000 ,0000000000,2014,-3750,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1651 ,000000000000 ,0000000000,2015,-3750,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1651 ,000000000000 ,0000000000,2016,-3750,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1651 ,000000000000 ,0000000000,2017,-3750,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1651 ,000000000000 ,0000000000,2018,-3750,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1660 ,000000000000 ,0000000000,2014,95600,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1660 ,000000000000 ,0000000000,2015,95600,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1660 ,000000000000 ,0000000000,2016,95600,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1660 ,000000000000 ,0000000000,2017,95600,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1660 ,000000000000 ,0000000000,2018,95600,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1661 ,000000000000 ,0000000000,2014,-3733.34000000000015,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1661 ,000000000000 ,0000000000,2015,-3733.34000000000015,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1661 ,000000000000 ,0000000000,2016,-3733.34000000000015,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1661 ,000000000000 ,0000000000,2017,-3733.34000000000015,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1661 ,000000000000 ,0000000000,2018,-3733.34000000000015,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1670 ,000000000000 ,0000000000,2014,1985756.22999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1670 ,000000000000 ,0000000000,2015,1985756.22999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1670 ,000000000000 ,0000000000,2016,1985756.22999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1670 ,000000000000 ,0000000000,2017,1985756.22999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1670 ,000000000000 ,0000000000,2018,1985756.22999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1671 ,000000000000 ,0000000000,2014,-110319.800000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1671 ,000000000000 ,0000000000,2015,-110319.800000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1671 ,000000000000 ,0000000000,2016,-110319.800000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1671 ,000000000000 ,0000000000,2017,-110319.800000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1671 ,000000000000 ,0000000000,2018,-110319.800000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1820 ,01100AA00001 ,0000000000,2014,25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1820 ,01100AA00001 ,0000000000,2015,25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1820 ,01100AA00001 ,0000000000,2016,25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1820 ,01100AA00001 ,0000000000,2017,25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1820 ,01100AA00001 ,0000000000,2018,25341.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1850 ,000000000000 ,0000000000,2014,-50000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1850 ,01100AA00001 ,0000000000,2014,-31562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1850 ,000000000000 ,0000000000,2015,-50000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1850 ,01100AA00001 ,0000000000,2015,-31562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1850 ,000000000000 ,0000000000,2016,-50000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1850 ,01100AA00001 ,0000000000,2016,-31562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1850 ,000000000000 ,0000000000,2017,-50000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1850 ,01100AA00001 ,0000000000,2017,-31562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1850 ,000000000000 ,0000000000,2018,-50000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1850 ,01100AA00001 ,0000000000,2018,-31562,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1860 ,000000000000 ,0000000000,2014,5250,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1860 ,000000000000 ,0000000000,2015,5250,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1860 ,000000000000 ,0000000000,2016,5250,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1860 ,000000000000 ,0000000000,2017,5250,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1860 ,000000000000 ,0000000000,2018,5250,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1910 ,000000000000 ,0000000000,2014,153257.559999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1910 ,01100AA00001 ,0000000000,2014,25.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1910 ,03440AA00510 ,0000000000,2014,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1910 ,000000000000 ,0000000000,2015,153257.559999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1910 ,01100AA00001 ,0000000000,2015,25.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1910 ,03440AA00510 ,0000000000,2015,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1910 ,000000000000 ,0000000000,2016,153257.559999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1910 ,01100AA00001 ,0000000000,2016,25.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1910 ,03440AA00510 ,0000000000,2016,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1910 ,000000000000 ,0000000000,2017,153257.559999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1910 ,01100AA00001 ,0000000000,2017,25.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1910 ,03440AA00510 ,0000000000,2017,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1910 ,000000000000 ,0000000000,2018,153257.559999999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1910 ,01100AA00001 ,0000000000,2018,25.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1910 ,03440AA00510 ,0000000000,2018,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1911 ,000000000000 ,0000000000,2014,12536700.5099999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1911 ,000000000000 ,0000000000,2015,12536700.5099999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1911 ,000000000000 ,0000000000,2016,12536700.5099999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1911 ,000000000000 ,0000000000,2017,12536700.5099999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1911 ,000000000000 ,0000000000,2018,12536700.5099999998,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1990 ,000000000000 ,0000000000,2016,0,-3349.51000000000022,40750,0,0,0,-2900,0,0,0,0,0,0,0 +"CRONUS USA",1990 ,000000000000 ,0000000000,2017,34500.4800000000032,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1990 ,000000000000 ,0000000000,2018,34500.4800000000032,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1999 ,000000000000 ,0000000000,2016,0,2676.40000000000009,-6350.72000000000025,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1999 ,000000000000 ,0000000000,2017,-3674.32000000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",1999 ,000000000000 ,0000000000,2018,-3674.32000000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2000 ,000000000000 ,0000000000,2016,0,2501.26999999999998,1122.03999999999996,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2000 ,010000000000 ,0000000000,2016,0,251.52000000000001,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2000 ,000000000000 ,0000000000,2017,3623.30999999999995,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2000 ,010000000000 ,0000000000,2017,251.52000000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2000 ,000000000000 ,0000000000,2018,3623.30999999999995,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2000 ,010000000000 ,0000000000,2018,251.52000000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2002 ,01100UK00001 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,100,0,0,0 +"CRONUS USA",2002 ,01100UK00001 ,0000000000,2017,100,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2002 ,01100UK00001 ,0000000000,2018,100,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2007 ,01100AA00001 ,0000000000,2014,-360074.840000000026,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2007 ,01100AA00001 ,0000000000,2015,-360074.840000000026,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2007 ,01100AA00001 ,0000000000,2016,-360074.840000000026,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2007 ,01100AA00001 ,0000000000,2017,-360074.840000000026,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2007 ,01100AA00001 ,0000000000,2018,-360074.840000000026,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2008 ,01100AA00001 ,0000000000,2014,-110.5,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2008 ,01100AA00001 ,0000000000,2015,-110.5,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2008 ,01100AA00001 ,0000000000,2016,-110.5,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2008 ,01100AA00001 ,0000000000,2017,-110.5,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2008 ,01100AA00001 ,0000000000,2018,-110.5,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2020 ,000000000000 ,0000000000,2014,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2020 ,03440AA00510 ,0000000000,2014,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2020 ,000000000000 ,0000000000,2015,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2020 ,03440AA00510 ,0000000000,2015,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2020 ,000000000000 ,0000000000,2016,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2020 ,03440AA00510 ,0000000000,2016,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2020 ,000000000000 ,0000000000,2017,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2020 ,03440AA00510 ,0000000000,2017,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2020 ,000000000000 ,0000000000,2018,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2020 ,03440AA00510 ,0000000000,2018,-563.25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2025 ,000000000000 ,0000000000,2014,19535654.1799999997,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2025 ,000000000000 ,0000000000,2015,19535654.1799999997,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2025 ,000000000000 ,0000000000,2016,19535654.1799999997,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2025 ,000000000000 ,0000000000,2017,19535654.1799999997,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2025 ,000000000000 ,0000000000,2018,19535654.1799999997,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2030 ,000000000000 ,0000000000,2014,988337.010000000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2030 ,000000000000 ,0000000000,2015,988337.010000000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2030 ,000000000000 ,0000000000,2016,988337.010000000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2030 ,000000000000 ,0000000000,2017,988337.010000000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2030 ,000000000000 ,0000000000,2018,988337.010000000009,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2050 ,01100AA00001 ,0000000000,2014,5583455.4299999997,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2050 ,000000000000 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2050 ,01000AA00001 ,0000000000,2015,0,700,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2050 ,01100AA00001 ,0000000000,2015,5583455.4299999997,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2050 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,4200,0,0,0,0,0 +"CRONUS USA",2050 ,01000AA00001 ,0000000000,2016,700,0,500,0,0,0,0,0,0,0,740,0,0,0 +"CRONUS USA",2050 ,01100AA00001 ,0000000000,2016,5583455.4299999997,0,0,0,0,0,0,0,0,0,9354.69000000000051,0,0,0 +"CRONUS USA",2050 ,03430AA00001 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,3000,0,0,0 +"CRONUS USA",2050 ,000000000000 ,0000000000,2017,4200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2050 ,01000AA00001 ,0000000000,2017,1940,0,4800,250,1000,500,0,0,120,0,0,0,0,0 +"CRONUS USA",2050 ,01100AA00001 ,0000000000,2017,5592810.12000000011,0,0,-50114.2099999999991,-60038.9000000000015,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2050 ,03430AA00001 ,0000000000,2017,3000,0,100,0,0,1260,0,700,100,0,0,0,0,0 +"CRONUS USA",2050 ,000000000000 ,0000000000,2018,4200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2050 ,01000AA00001 ,0000000000,2018,8610,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2050 ,01100AA00001 ,0000000000,2018,5482657.00999999978,0,0,0,0,844.120000000000005,-1000,0,0,0,0,0,0,0 +"CRONUS USA",2050 ,03430AA00001 ,0000000000,2018,5160,3000,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2060 ,01100AA00001 ,0000000000,2014,-275000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2060 ,01100AA00001 ,0000000000,2015,-275000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2060 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2060 ,01100AA00001 ,0000000000,2016,-275000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2060 ,EN2300000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,270,0,0,0 +"CRONUS USA",2060 ,01100AA00001 ,0000000000,2017,-275000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2060 ,EN2300000000 ,0000000000,2017,270,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2060 ,01100AA00001 ,0000000000,2018,-275000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2060 ,EN2300000000 ,0000000000,2018,270,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2065 ,000000000000 ,0000000000,2014,2140.80000000000018,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2065 ,000000000000 ,0000000000,2015,2140.80000000000018,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2065 ,000000000000 ,0000000000,2016,2140.80000000000018,0,0,0,0,0,0,0,0,0,-25,0,0,0 +"CRONUS USA",2065 ,040000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2065 ,000000000000 ,0000000000,2017,2115.80000000000018,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2065 ,000000000000 ,0000000000,2018,2115.80000000000018,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2072 ,01100AA00001 ,0000000000,2017,0,0,100,100,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2072 ,01100AA00001 ,0000000000,2018,200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2080 ,SC260AA99999 ,0000000000,2018,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2110 ,000000000000 ,0000000000,2014,331794.219999999972,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2110 ,000000000000 ,0000000000,2015,331794.219999999972,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2110 ,000000000000 ,0000000000,2016,331794.219999999972,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2110 ,000000000000 ,0000000000,2017,331794.219999999972,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2110 ,000000000000 ,0000000000,2018,331794.219999999972,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2120 ,000000000000 ,0000000000,2014,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2120 ,000000000000 ,0000000000,2015,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2120 ,000000000000 ,0000000000,2016,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2120 ,000000000000 ,0000000000,2017,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2120 ,000000000000 ,0000000000,2018,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2121 ,000000000000 ,0000000000,2014,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2121 ,000000000000 ,0000000000,2015,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2121 ,000000000000 ,0000000000,2016,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2121 ,000000000000 ,0000000000,2017,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2121 ,000000000000 ,0000000000,2018,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2130 ,000000000000 ,0000000000,2014,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2130 ,000000000000 ,0000000000,2015,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2130 ,000000000000 ,0000000000,2016,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2130 ,000000000000 ,0000000000,2017,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2130 ,000000000000 ,0000000000,2018,54886.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2131 ,000000000000 ,0000000000,2014,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2131 ,000000000000 ,0000000000,2015,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2131 ,000000000000 ,0000000000,2016,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2131 ,000000000000 ,0000000000,2017,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2131 ,000000000000 ,0000000000,2018,18493.4900000000016,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2140 ,000000000000 ,0000000000,2014,77245.0500000000029,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2140 ,000000000000 ,0000000000,2015,77245.0500000000029,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2140 ,000000000000 ,0000000000,2016,77245.0500000000029,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2140 ,000000000000 ,0000000000,2017,77245.0500000000029,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2140 ,000000000000 ,0000000000,2018,77245.0500000000029,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2160 ,000000000000 ,0000000000,2014,5275.35999999999967,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2160 ,000000000000 ,0000000000,2015,5275.35999999999967,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2160 ,000000000000 ,0000000000,2016,5275.35999999999967,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2160 ,000000000000 ,0000000000,2017,5275.35999999999967,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2160 ,000000000000 ,0000000000,2018,5275.35999999999967,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2190 ,000000000000 ,0000000000,2014,11913.4400000000005,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2190 ,000000000000 ,0000000000,2015,11913.4400000000005,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2190 ,000000000000 ,0000000000,2016,11913.4400000000005,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2190 ,000000000000 ,0000000000,2017,11913.4400000000005,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2190 ,000000000000 ,0000000000,2018,11913.4400000000005,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2241 ,01100AA00001 ,0000000000,2014,7985.10000000000036,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2241 ,01100AA00001 ,0000000000,2015,7985.10000000000036,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2241 ,01100AA00001 ,0000000000,2016,7985.10000000000036,0,0,0,0,0,0,0,0,0,0,0.949999999999999956,0,0 +"CRONUS USA",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",2241 ,01100AA00001 ,0000000000,2018,7987.47000000000025,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2242 ,01100AA00001 ,0000000000,2014,726.009999999999991,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2242 ,01100AA00001 ,0000000000,2015,726.009999999999991,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2242 ,01100AA00001 ,0000000000,2016,726.009999999999991,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2242 ,01100AA00001 ,0000000000,2017,726.009999999999991,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2242 ,01100AA00001 ,0000000000,2018,726.009999999999991,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2243 ,01100AA00001 ,0000000000,2014,29038.5900000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2243 ,01100AA00001 ,0000000000,2015,29038.5900000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2243 ,01100AA00001 ,0000000000,2016,29038.5900000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2243 ,01100AA00001 ,0000000000,2017,29038.5900000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2243 ,01100AA00001 ,0000000000,2018,29038.5900000000001,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2245 ,000000000000 ,0000000000,2015,0,61,114.760000000000005,0,0,0,0,0,0,0,0,0,156.539999999999992,0 +"CRONUS USA",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",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",2245 ,000000000000 ,0000000000,2018,5112.09000000000015,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2360 ,01000GM00001 ,0000000000,2014,5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2360 ,01000GM00001 ,0000000000,2015,5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2360 ,01000GM00001 ,0000000000,2016,5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2360 ,01000GM00001 ,0000000000,2017,5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2360 ,01000GM00001 ,0000000000,2018,5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2370 ,01000IT00001 ,0000000000,2014,3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2370 ,01000IT00001 ,0000000000,2015,3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2370 ,01000IT00001 ,0000000000,2016,3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2370 ,01000IT00001 ,0000000000,2017,3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2370 ,01000IT00001 ,0000000000,2018,3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2520 ,01100AA00001 ,0000000000,2014,1460202.81000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2520 ,01100AA00001 ,0000000000,2015,1460202.81000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2520 ,01100AA00001 ,0000000000,2016,1460202.81000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2520 ,01100AA00001 ,0000000000,2017,1460202.81000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2520 ,01100AA00001 ,0000000000,2018,1460202.81000000006,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2550 ,01100AA00001 ,0000000000,2014,1000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2550 ,01100AA00001 ,0000000000,2015,1000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2550 ,01100AA00001 ,0000000000,2016,1000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2550 ,01100AA00001 ,0000000000,2017,1000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2550 ,01100AA00001 ,0000000000,2018,1000000,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,000000000000 ,0000000000,2014,-1133712.40999999992,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01000CD00001 ,0000000000,2014,-5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01000FR00001 ,0000000000,2014,-3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01100AA00001 ,0000000000,2014,-7574323.15000000037,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,02230AA00001 ,0000000000,2014,-59999.9400000000023,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03000AA00001 ,0000000000,2014,45446.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03430AA00001 ,0000000000,2014,-29559.5999999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03440AA00031 ,0000000000,2014,12971000.8399999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03440AA00510 ,0000000000,2014,34813805.5099999979,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,CO0000000000 ,0000000000,2014,448094.690000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,000000000000 ,0000000000,2015,-1133712.40999999992,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01000CD00001 ,0000000000,2015,-5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01000FR00001 ,0000000000,2015,-3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01100AA00001 ,0000000000,2015,-7574323.15000000037,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,02230AA00001 ,0000000000,2015,-59999.9400000000023,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03000AA00001 ,0000000000,2015,45446.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03430AA00001 ,0000000000,2015,-29559.5999999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03440AA00031 ,0000000000,2015,12971000.8399999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03440AA00510 ,0000000000,2015,34813805.5099999979,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,CO0000000000 ,0000000000,2015,448094.690000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,000000000000 ,0000000000,2016,-1123712.40999999992,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01000AA00001 ,0000000000,2016,-100,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01000CD00001 ,0000000000,2016,-5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01000FR00001 ,0000000000,2016,-3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01100AA00001 ,0000000000,2016,-7571023.15000000037,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,02230AA00001 ,0000000000,2016,-59999.9400000000023,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03000AA00001 ,0000000000,2016,45446.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03430AA00001 ,0000000000,2016,-29559.5999999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03440AA00031 ,0000000000,2016,12971000.8399999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03440AA00510 ,0000000000,2016,34813805.5099999979,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,999999999999 ,0000000000,2016,1600,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,CO0000000000 ,0000000000,2016,448094.690000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,EN0000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,000000000000 ,0000000000,2017,-1091490.12000000011,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,010000000000 ,0000000000,2017,-50.1499999999999986,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01000AA00001 ,0000000000,2017,-350,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01000CD00001 ,0000000000,2017,-5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01000FR00001 ,0000000000,2017,-3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01100AA00001 ,0000000000,2017,-7532655.33999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,020000000000 ,0000000000,2017,-50.6199999999999974,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,02230AA00001 ,0000000000,2017,-59999.9400000000023,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,030000000000 ,0000000000,2017,75,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03000AA00001 ,0000000000,2017,45446.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03430AA00001 ,0000000000,2017,-29559.5999999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03440AA00031 ,0000000000,2017,12971000.8399999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03440AA00510 ,0000000000,2017,34813805.5099999979,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,101005000000 ,0000000000,2017,2533.19000000000005,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,105005000000 ,0000000000,2017,20,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,999999999999 ,0000000000,2017,3749,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,CO0000000000 ,0000000000,2017,448094.690000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,EN0000000000 ,0000000000,2017,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,EN2300000000 ,0000000000,2017,-270,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,SC0000000000 ,0000000000,2017,200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,000000000000 ,0000000000,2018,-1074910.12000000011,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,010000000000 ,0000000000,2018,-50.1499999999999986,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01000AA00001 ,0000000000,2018,-8800,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01000CD00001 ,0000000000,2018,-5964.86999999999989,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01000FR00001 ,0000000000,2018,-3589.44999999999982,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,01100AA00001 ,0000000000,2018,-7515204.04999999981,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,020000000000 ,0000000000,2018,-50.6199999999999974,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,02230AA00001 ,0000000000,2018,-59999.9400000000023,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,030000000000 ,0000000000,2018,75,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03000AA00001 ,0000000000,2018,45446.9300000000003,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03430AA00001 ,0000000000,2018,-26664.8499999999985,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03430AA00008 ,0000000000,2018,100,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03440AA00031 ,0000000000,2018,12971000.8399999999,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,03440AA00510 ,0000000000,2018,34813805.5099999979,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,101005000000 ,0000000000,2018,2533.19000000000005,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,105005000000 ,0000000000,2018,20,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,999999999999 ,0000000000,2018,180358,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,AT0000000000 ,0000000000,2018,-660,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,CO0000000000 ,0000000000,2018,448094.690000000002,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,EN0000000000 ,0000000000,2018,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,EN2300000000 ,0000000000,2018,-270,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2740 ,SC0000000000 ,0000000000,2018,200,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,000000000000 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,0,0,10000,0 +"CRONUS USA",2750 ,01000AA00001 ,0000000000,2015,0,-100,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,01100AA00001 ,0000000000,2015,0,600,0,0,0,0,0,0,0,0,0,0,2700,0 +"CRONUS USA",2750 ,999999999999 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,1600,0,0,0 +"CRONUS USA",2750 ,CO0000000000 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,EN0000000000 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,000000000000 ,0000000000,2016,0,16699.8600000000006,22027.2400000000016,0,0,0,-2900,0,3750,0,-7367.22000000000025,12.4100000000000001,0,0 +"CRONUS USA",2750 ,010000000000 ,0000000000,2016,0,-50.1499999999999986,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,01000AA00001 ,0000000000,2016,0,0,-250,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,01100AA00001 ,0000000000,2016,0,310,2160,0,0,0,0,0,1000,0,32797.8099999999977,2100,0,0 +"CRONUS USA",2750 ,020000000000 ,0000000000,2016,0,-50.6199999999999974,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,030000000000 ,0000000000,2016,0,-25,0,0,0,0,0,0,0,0,100,0,0,0 +"CRONUS USA",2750 ,101005000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,2533.19000000000005,0,0 +"CRONUS USA",2750 ,105005000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,20,0,0 +"CRONUS USA",2750 ,999999999999 ,0000000000,2016,0,374,415,100,435,695,0,0,0,0,170,160,-200,0 +"CRONUS USA",2750 ,CO0000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,EN0000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,EN2300000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-270,0,0,0 +"CRONUS USA",2750 ,SC0000000000 ,0000000000,2016,0,200,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,000000000000 ,0000000000,2017,0,-50,230,0,10000,0,1710,4400,290,0,0,0,0,0 +"CRONUS USA",2750 ,01000AA00001 ,0000000000,2017,0,0,-4900,-1450,-1000,-1000,0,0,-100,0,0,0,0,0 +"CRONUS USA",2750 ,01100AA00001 ,0000000000,2017,0,100,12701.2900000000009,-150,4800,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,03430AA00001 ,0000000000,2017,0,175,1300,319.75,200,200,800,0,-100,0,0,0,0,0 +"CRONUS USA",2750 ,03430AA00008 ,0000000000,2017,0,0,0,0,0,100,0,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,999999999999 ,0000000000,2017,0,160,0,1520,0,0,0,0,225,174454,150,100,0,0 +"CRONUS USA",2750 ,AT0000000000 ,0000000000,2017,0,0,0,0,0,-660,0,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,EN0000000000 ,0000000000,2017,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,000000000000 ,0000000000,2018,0,0,0,0,0,2100,74.25,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,01100AA00001 ,0000000000,2018,0,0,0,0,0,-1624.11999999999989,-3110,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,03430AA00001 ,0000000000,2018,0,0,0,0,0,-50,0,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,999999999999 ,0000000000,2018,0,0,0,80,200,975,1994,0,0,0,0,0,0,0 +"CRONUS USA",2750 ,SC260AA99999 ,0000000000,2018,0,0,0,0,0,0,-4350,0,0,0,0,0,0,0 +"CRONUS USA",2760 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-25,0,0,0 +"CRONUS USA",2760 ,000000000000 ,0000000000,2017,-25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2760 ,000000000000 ,0000000000,2018,-25,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2800 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2810 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2900 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,4195.93000000000029,0,0 +"CRONUS USA",2900 ,000000000000 ,0000000000,2017,4195.93000000000029,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",2900 ,000000000000 ,0000000000,2018,4195.93000000000029,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3030 ,01100AA00001 ,0000000000,2015,0,600,0,0,0,0,0,0,0,0,0,0,2700,0 +"CRONUS USA",3030 ,999999999999 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,7600,0,0,0 +"CRONUS USA",3030 ,CO0000000000 ,0000000000,2015,0,0,1250,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3030 ,EN0000000000 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,0,0,208,0 +"CRONUS USA",3030 ,01100AA00001 ,0000000000,2016,0,310,2160,0,0,0,0,0,1000,0,32840,2100,0,0 +"CRONUS USA",3030 ,030000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,100,0,0,0 +"CRONUS USA",3030 ,999999999999 ,0000000000,2016,0,2660,600,200,1440,1300,0,0,0,0,480,760,-200,0 +"CRONUS USA",3030 ,CO0000000000 ,0000000000,2016,0,6875,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3030 ,EN0000000000 ,0000000000,2016,0,104,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3030 ,SC0000000000 ,0000000000,2016,0,200,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3030 ,01100AA00001 ,0000000000,2017,0,100,0,0,4800,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3030 ,03430AA00001 ,0000000000,2017,0,175,1400,200,200,200,800,0,0,0,0,0,0,0 +"CRONUS USA",3030 ,03430AA00008 ,0000000000,2017,0,0,0,0,0,100,0,0,0,0,0,0,0,0 +"CRONUS USA",3030 ,999999999999 ,0000000000,2017,0,760,0,7220,0,0,0,0,300,174884,300,200,0,0 +"CRONUS USA",3030 ,03430AA00001 ,0000000000,2018,0,0,0,0,0,-50,0,0,0,0,0,0,0,0 +"CRONUS USA",3030 ,999999999999 ,0000000000,2018,0,0,0,380,580,3080,5320,0,0,0,0,0,0,0 +"CRONUS USA",3031 ,000000000000 ,0000000000,2017,0,0,0,0,0,0,100,0,0,0,0,0,0,0 +"CRONUS USA",3031 ,03430AA00001 ,0000000000,2017,0,0,0,100,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3032 ,CO0000000000 ,0000000000,2015,0,0,-1250,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3032 ,EN0000000000 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,0,0,-208,0 +"CRONUS USA",3032 ,CO0000000000 ,0000000000,2016,0,-6875,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3032 ,EN0000000000 ,0000000000,2016,0,-104,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3032 ,03430AA00001 ,0000000000,2017,0,0,0,12.5,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3033 ,03430AA00001 ,0000000000,2017,0,0,0,7.25,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3034 ,CO0000000000 ,0000000000,2015,0,0,100,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3034 ,EN0000000000 ,0000000000,2015,0,100,350,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3034 ,010000000000 ,0000000000,2016,0,150,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3034 ,CO0000000000 ,0000000000,2016,0,100,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3034 ,EN0000000000 ,0000000000,2016,0,950,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3034 ,AT0000000000 ,0000000000,2017,0,1600,0,0,100,300,0,0,0,0,0,0,0,0 +"CRONUS USA",3034 ,EN0000000000 ,0000000000,2017,0,0,0,0,0,200,0,0,0,0,0,0,0,0 +"CRONUS USA",3036 ,CO0000000000 ,0000000000,2015,0,0,-100,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3036 ,EN0000000000 ,0000000000,2015,0,-100,-350,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3036 ,010000000000 ,0000000000,2016,0,-150,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3036 ,CO0000000000 ,0000000000,2016,0,-100,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3036 ,EN0000000000 ,0000000000,2016,0,-950,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3036 ,AT0000000000 ,0000000000,2017,0,-1600,0,0,-100,-630,0,0,0,0,0,0,0,0 +"CRONUS USA",3036 ,EN0000000000 ,0000000000,2017,0,0,0,0,0,-200,0,0,0,0,0,0,0,0 +"CRONUS USA",3044 ,AT0000000000 ,0000000000,2017,0,0,0,0,0,330,0,0,0,0,0,0,0,0 +"CRONUS USA",3050 ,999999999999 ,0000000000,2016,0,-76,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3050 ,999999999999 ,0000000000,2018,0,0,0,0,0,0,-76,0,0,0,0,0,0,0 +"CRONUS USA",3070 ,999999999999 ,0000000000,2016,0,25,30,0,15,10,0,0,0,0,15,0,0,0 +"CRONUS USA",3070 ,999999999999 ,0000000000,2017,0,0,0,0,0,0,0,0,75,2270,0,0,0,0 +"CRONUS USA",3080 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,-3750,0,0,0,0,0 +"CRONUS USA",3080 ,999999999999 ,0000000000,2016,0,165,85,0,30,35,0,0,0,0,25,0,0,0 +"CRONUS USA",3080 ,000000000000 ,0000000000,2017,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",3080 ,999999999999 ,0000000000,2018,0,0,0,0,0,0,400,0,0,0,0,0,0,0 +"CRONUS USA",3090 ,01100AA00001 ,0000000000,2017,0,0,12708.2900000000009,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",4030 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,15,0,0,0 +"CRONUS USA",4030 ,01100AA00001 ,0000000000,2017,0,0,0,150,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",4030 ,01100AA00001 ,0000000000,2018,0,0,0,0,0,615,3110,0,0,0,0,0,0,0 +"CRONUS USA",4040 ,01100AA00001 ,0000000000,2017,0,0,2,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",4090 ,01000AA00001 ,0000000000,2015,0,100,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",4090 ,01000AA00001 ,0000000000,2017,0,0,100,0,1000,1000,0,0,100,0,0,0,0,0 +"CRONUS USA",4090 ,03430AA00001 ,0000000000,2017,0,0,100,0,0,0,0,0,100,0,0,0,0,0 +"CRONUS USA",4090 ,AT0000000000 ,0000000000,2017,0,0,0,0,0,330,0,0,0,0,0,0,0,0 +"CRONUS USA",4090 ,SC260AA99999 ,0000000000,2018,0,0,0,0,0,0,4350,0,0,0,0,0,0,0 +"CRONUS USA",4150 ,999999999999 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,6000,0,0,0 +"CRONUS USA",4150 ,999999999999 ,0000000000,2016,0,2400,300,100,1050,650,0,0,0,0,350,600,0,0 +"CRONUS USA",4150 ,999999999999 ,0000000000,2017,0,600,0,5700,0,0,0,0,150,2700,150,100,0,0 +"CRONUS USA",4150 ,999999999999 ,0000000000,2018,0,0,0,300,380,2105,3650,0,0,0,0,0,0,0 +"CRONUS USA",4200 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,-12.4100000000000001,0,0 +"CRONUS USA",4220 ,000000000000 ,0000000000,2018,0,0,0,0,0,0,-74.25,0,0,0,0,0,0,0 +"CRONUS USA",4230 ,000000000000 ,0000000000,2015,0,0,0,0,0,0,0,0,0,0,0,0,-10000,0 +"CRONUS USA",4230 ,000000000000 ,0000000000,2016,0,-30000,0,0,0,0,0,0,-7500,0,-1271.78999999999996,0,0,0 +"CRONUS USA",4230 ,000000000000 ,0000000000,2017,0,0,-200,0,-10000,0,-1610,-4400,-290,0,0,0,0,0 +"CRONUS USA",4230 ,000000000000 ,0000000000,2018,0,0,0,0,0,-2100,0,0,0,0,0,0,0,0 +"CRONUS USA",4240 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-26.5599999999999987,0,0,0 +"CRONUS USA",4300 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,8662.5,0,0,0 +"CRONUS USA",4410 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",4500 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-50,0,0,0 +"CRONUS USA",4530 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-64.25,0,0,0 +"CRONUS USA",4530 ,000000000000 ,0000000000,2017,0,0,-130,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",5110 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-67.0999999999999943,0,0,0 +"CRONUS USA",5120 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-5.58000000000000007,0,0,0 +"CRONUS USA",5400 ,101005000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,-2301.23999999999978,0,0 +"CRONUS USA",5450 ,101005000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,-131.949999999999989,0,0 +"CRONUS USA",6040 ,000000000000 ,0000000000,2017,0,50,100,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",6061 ,01100AA00001 ,0000000000,2017,0,0,5,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",6080 ,01100AA00001 ,0000000000,2018,0,0,0,0,0,1000,0,0,0,0,0,0,0,0 +"CRONUS USA",7000 ,000000000000 ,0000000000,2016,0,4700.89999999999964,32972.760000000002,0,0,0,2900,0,0,0,0,0,0,0 +"CRONUS USA",7000 ,010000000000 ,0000000000,2016,0,50.1499999999999986,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",7000 ,01000AA00001 ,0000000000,2016,0,0,250,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",7000 ,020000000000 ,0000000000,2016,0,50.6199999999999974,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",7000 ,030000000000 ,0000000000,2016,0,25,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",7000 ,EN2300000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,50,0,0,0 +"CRONUS USA",7005 ,EN2300000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,220,0,0,0 +"CRONUS USA",7010 ,01000AA00001 ,0000000000,2017,0,0,0,250,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",7055 ,01000AA00001 ,0000000000,2017,0,0,4800,1200,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",7150 ,101005000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,-100,0,0 +"CRONUS USA",7170 ,AT0000000000 ,0000000000,2017,0,0,0,0,0,330,0,0,0,0,0,0,0,0 +"CRONUS USA",7270 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,25,0,0,0 +"CRONUS USA",7411 ,01100AA00001 ,0000000000,2018,0,0,0,0,0,3.37999999999999989,0,0,0,0,0,0,0,0 +"CRONUS USA",7412 ,01100AA00001 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,1.56000000000000005,0,0,0 +"CRONUS USA",7412 ,01100AA00001 ,0000000000,2018,0,0,0,0,0,2.70000000000000018,0,0,0,0,0,0,0,0 +"CRONUS USA",7413 ,01100AA00001 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,40.6300000000000026,0,0,0 +"CRONUS USA",7413 ,01100AA00001 ,0000000000,2018,0,0,0,0,0,3.04000000000000004,0,0,0,0,0,0,0,0 +"CRONUS USA",8000 ,000000000000 ,0000000000,2016,0,12501.2700000000004,11100,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",8001 ,000000000000 ,0000000000,2016,0,0,281.120000000000005,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",8001 ,010000000000 ,0000000000,2016,0,100.290000000000006,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",8001 ,01000AA00001 ,0000000000,2016,0,0,500,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",8002 ,000000000000 ,0000000000,2016,0,0,101.230000000000004,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",8002 ,020000000000 ,0000000000,2016,0,101.230000000000004,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",8003 ,000000000000 ,0000000000,2016,0,0,639.690000000000055,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",8003 ,030000000000 ,0000000000,2016,0,50,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",8010 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-100,0,0,0 +"CRONUS USA",8070 ,000000000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,-50,0,0,0 +"CRONUS USA",8300 ,105005000000 ,0000000000,2016,0,0,0,0,0,0,0,0,0,0,0,20,0,0 +"CRONUS USA",8999 ,000000000000 ,0000000000,2016,0,3902.03999999999996,67122.0399999999936,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",8999 ,010000000000 ,0000000000,2016,0,100.290000000000006,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",8999 ,01000AA00001 ,0000000000,2016,0,0,500,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",8999 ,020000000000 ,0000000000,2016,0,101.230000000000004,0,0,0,0,0,0,0,0,0,0,0,0 +"CRONUS USA",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/SLAddress.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLAddress.csv new file mode 100644 index 0000000000..c6cbd693b1 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLAddress.csv @@ -0,0 +1,3 @@ +AddrId,Addr1,Addr2,Attn,City,Country,Fax,Name,Phone,State,TaxRegNbr,Zip +GENBANK ,Park Place ,,Uncle Pennybags ,New York ,US ,8888888888 ,General US Bank ,555555555 ,NY ,,01234 +WWB01 ,123 World Wide Ave ,Suite 900 ,,Columbus ,US ,5555551188 ,World Wide Bank ,5555551177 ,OH ,123456789 ,43022 diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLCASetup.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLCASetup.csv new file mode 100644 index 0000000000..859a743c60 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLCASetup.csv @@ -0,0 +1,2 @@ +Setup ID,Accept Trans Date,AR Holding Account,AR Holding Sub,Current Period Number,Past Start Date,Period Number +CA,1997-01-01,1190 ,000000000000 ,201806,1991-07-01,201806 diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLCashAcct.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLCashAcct.csv new file mode 100644 index 0000000000..9c88da5768 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLCashAcct.csv @@ -0,0 +1,4 @@ +CpnyID,BankAcct,BankSub,AcceptGLUpdates,AcctNbr,Active,AddrID,CashAcctName,transitnbr +"CRONUS USA, Inc.",1030 ,01100AA00001 ,-1,0000000000 ,1,WWB01 ,Corporate Account ,37914070 +"CRONUS USA, Inc.",1041 ,01100AA00010 ,0,07041973 ,1,GENBANK ,General US Cash Account ,23 +"CRONUS USA, Inc.",1070 ,000000000000 ,-1,0000000001 ,1,,Payroll Checking , \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLCashSumD.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLCashSumD.csv new file mode 100644 index 0000000000..3c441bce7f --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLCashSumD.csv @@ -0,0 +1,44 @@ +Company ID,Bank Account,Bank Sub,Period Number,Transaction Date,Disbursements,Receipts +"CRONUS USA, Inc.",1030 ,01100AA00001 ,199910,1999-03-18,0,80329.1699999999983 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,199910,1999-07-07,0,1500000 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,199910,1999-08-07,0,2920405.62000000011 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,199910,1999-09-01,0,1433845.97999999998 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,199910,1999-10-31,3298568.79999999981,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,199911,1900-01-01,26150.5,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,199911,1999-07-15,65,1000 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,199911,1999-11-01,0,229507.600000000006 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,199911,1999-11-11,1000,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,199911,1999-11-30,2863572.66000000015,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,199912,1900-01-01,250.5,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,199912,1999-12-01,154094.720000000001,515757.679999999993 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,199912,2000-03-22,0,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201701,2017-08-28,0,226136.799999999988 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201702,2017-04-07,0,98 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201702,2017-05-15,0,100 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201702,2017-05-16,0,100 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201702,2017-05-19,0,100 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201702,2017-05-22,200,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201703,2017-03-20,46414.2099999999991,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201703,2017-06-02,0,1000 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201703,2017-06-05,0,100 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201703,2017-06-08,1200,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201703,2017-06-09,23000,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201703,2017-06-12,40916.6600000000035,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201703,2017-08-29,0,170.169999999999987 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201704,2017-08-28,0,50 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201704,2017-08-31,122.239999999999995,1135.11999999999989 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201704,2017-09-14,0,100.25 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201705,2017-09-18,500,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201705,2017-09-20,0,100.25 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201705,2017-10-04,0,25 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201705,2017-10-25,0,75 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201805,2018-05-21,915,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201806,2018-06-15,610,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201806,2018-06-27,2500,0 +"CRONUS USA, Inc.",1030 ,01100AA00001 ,201806,2018-06-30,5350,0 +"CRONUS USA, Inc.",1041 ,01100AA00010 ,201806,2018-06-01,0,10000 +"CRONUS USA, Inc.",1070 ,000000000000 ,199910,1999-10-31,387691.739999999991,0 +"CRONUS USA, Inc.",1070 ,000000000000 ,199911,1999-11-30,393371.450000000012,0 +"CRONUS USA, Inc.",1070 ,000000000000 ,199912,1999-09-15,0,843000 +"CRONUS USA, Inc.",1070 ,000000000000 ,201701,2017-04-05,50,0 +"CRONUS USA, Inc.",1070 ,000000000000 ,201702,2017-04-05,100,0 diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLCustomerForOpenOrderTest.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLCustomerForOpenOrderTest.csv new file mode 100644 index 0000000000..36d1ccd678 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLCustomerForOpenOrderTest.csv @@ -0,0 +1,4 @@ +CustId,Addr1,Addr2,Attn,BillName,City,ClassId,Country,CrLmt,DfltShipToId,Fax,Name,Phone,SlsperId,State,Status,TaxID00,Terms,Territory,Zip +C315 ,4864 Landview Dr ,,,The Phone Company ,Dublin ,COMM ,US ,30000,DEFAULT ,5555550130 ,Phone Company~The ,5555550129 ,BW ,OH ,A,AVATAX ,01,,43016-8378 +C389 ,Main Street ,,,Alpine Ski House ,Pittsburgh ,COMM ,US ,0,DEFAULT ,,Alpine Ski House ,5555550131 ,BW ,PA ,A,,01,,33222 +C421 ,7237 E Gage Ave ,,,City Power & Light ,Commerce ,GOVERN,US ,0,DEFAULT ,,City Power & Light ,,BW ,CA ,A,,05,,90040-3812 \ No newline at end of file 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 1e955fe60a..defa9feb6b 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,LedgerID,NbrPer,PerNbr -GL,1,0060 ,"Contoso, Ltd:Demo ",0131,0228,0331,0430,0531,0630,0731,0831,0930,1031,1130,1231,,0000000000,12,201805 +GL,1,CRONUS USA,"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 fcd5fdd911..3d8a0461ce 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,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 +GL,1,CRONUS USA,"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/SLINUnit.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLINUnit.csv new file mode 100644 index 0000000000..12956d9e1e --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLINUnit.csv @@ -0,0 +1,15 @@ +UnitType,ClassID,InvtId,FromUnit,ToUnit,CnvFact,MultDiv +1,* ,* ,BAG ,BAG ,1,M +1,* ,* ,BIGBOX,BIGBOX,1,M +1,* ,* ,BIGBOX,CARTON,15,M +1,* ,* ,BOX ,BOX ,1,M +1,* ,* ,CARTON,CARTON,1,M +1,* ,* ,DOZEN ,EA ,12,M +1,* ,* ,EA ,DOZEN ,12,D +1,* ,* ,EA ,EA ,1,M +1,* ,* ,FT ,FT ,1,M +1,* ,* ,HR ,HR ,1,M +1,* ,* ,LABOR ,LABOR ,1,M +1,* ,* ,LB ,LB ,1,M +2,FILFLD,* ,CASE ,EA ,24,M +3,* ,UNV-14113 ,BOX ,CARTON,5,M diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLInventoryForItemJournalTest.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLInventoryForItemJournalTest.csv new file mode 100644 index 0000000000..3609b46cae --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLInventoryForItemJournalTest.csv @@ -0,0 +1,11 @@ +InvtID,ClassID,Descr,DfltPOUnit,LastCost,LotSerIssMthd,LotSerTrack,SerAssign,StdCost,StkBasePrc,StkItem,StkUnit,TranStatusCode,ValMthd +0RCHAINGUARD ,MMGWO ,Bicycle Chainguard ,EA ,1.80000000000000004,,NN,,1.97999999999999998,0,1,EA ,AC,A +0RFRONTWHEEL24 ,MMGWO ,24" Front Wheel Assembly ,EA ,45,,NN,,45.4279999999999973,0,1,EA ,AC,A +0RSEAT-PERF ,MMGWO ,Performance Bicycle Seat ,EA ,5,,NN,,0,10,1,EA ,AC,A +0RREARWHEEL24 ,MMGWO ,24" Rear Wheel Assembly ,EA ,52.9969999999999999,,NN,,52.9969999999999999,0,1,EA ,AC,T +HON-672L-L ,FILCAB,"600 Series Wide Lateral, Two Drawer File Cabinet",EA ,300,,NN,,300,380,1,EA ,AC,T +HON-672L-P ,FILCAB,600 Series Wide Lateral Two Drawer File Cabinet ,EA ,300,,NN,,300,380,1,EA ,AC,T +HON-672L-Q ,FILCAB,600 Series Wide Lateral Two Drawer File Cabinet ,EA ,300,,NN,,300,380,1,EA ,AC,T +UNV-14113 ,FILFLD,Hanging File Folder -- Letter Size w/ 3 tabs ,CARTON,9,,NN,,9,14.6999999999999993,1,CARTON,AC,T +UNV-14115 ,FILFLD,Hanging File Folder -- Letter Size w/ 5 tabs ,CARTON,9,,NN,,9,14.1999999999999993,1,CARTON,AC,T +VIDLED50 ,CPUHWD,Video Monitor LED 50" ,EA ,500,,NN,,0,789,1,EA ,AC,A \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLItemSiteForItemJournalTest.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLItemSiteForItemJournalTest.csv new file mode 100644 index 0000000000..a1536a85de --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLItemSiteForItemJournalTest.csv @@ -0,0 +1,21 @@ +InvtID,SiteID,AvgCost,CpnyID,QtyOnHand,StdCost +0RCHAINGUARD,200,1.8,CRONUS USA,3,1.98 +0RFRONTWHEEL24,200,45,CRONUS USA,5,45.428 +0RREARWHEEL24,200,52.997,CRONUS USA,3,52.997 +0RSEAT-PERF,200,5,CRONUS USA,10,0 +0RSEAT-PERF,LA,0,CRONUS USA,0,0 +HON-672L-L,200,300,CRONUS USA,10,300 +HON-672L-L,LA,300,CRONUS USA,126,300 +HON-672L-P,200,0,CRONUS USA,0,300 +HON-672L-P,LA,300,CRONUS USA,94,300 +HON-672L-P,NY,300,CRONUS USA,24,300 +HON-672L-Q,200,0,CRONUS USA,0,300 +HON-672L-Q,LA,300,CRONUS USA,1077,300 +UNV-14113,200,0,CRONUS USA,0,9 +UNV-14113,LA,9,CRONUS USA,555,9 +UNV-14115,200,9,CRONUS USA,15,9 +UNV-14115,CH,0,CRONUS USA,0,9 +UNV-14115,LA,9,CRONUS USA,42,9 +UNV-14115,NY,0,CRONUS USA,0,9 +UNV-14115,SF,0,CRONUS USA,0,9 +VIDLED50,LA,500,CRONUS USA,20,0 diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLPurOrdDetBuffer.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLPurOrdDetBuffer.csv new file mode 100644 index 0000000000..c8aed66f1f --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLPurOrdDetBuffer.csv @@ -0,0 +1,53 @@ +PONbr,LineRef,CnvFact,CostReceived,CpnyID,ExtCost,InvtID,LineID,OpenLine,PromDate,PurAcct,PurchaseType,PurchUnit,PurSub,QtyOrd,QtyRcvd,TranDesc,UnitCost +000003 ,1 ,1,8662.5,CRONUS USA,8662.5,HON-673L-L ,1,0,1999-03-19,1210 ,GI,EA ,000000000000 ,25,25,HON 600 Series Wide Lateral Three Drawer File Cabinet ,346.5 +000004 ,1 ,1,0,CRONUS USA,900,UNV-14115 ,1,1,1999-03-19,1210 ,GI,CARTON,000000000000 ,100,0,Hanging File Folder -- Letter Size w/ 5 tabs ,9 +000005 ,00003,1,0,CRONUS USA,3000,HON-672L-P ,3,1,2001-01-29,1210 ,GI,EA ,000000000000 ,10,0,HON 600 Series Wide Lateral Two Drawer File Cabinet ,300 +000006 ,00001,1,0,CRONUS USA,9600,HON-672L-P ,1,1,2001-01-29,1210 ,GI,EA ,000000000000 ,32,0,HON 600 Series Wide Lateral Two Drawer File Cabinet ,300 +000006 ,00003,1,0,CRONUS USA,15000,HON-672L-P ,3,1,2001-02-13,1110 ,GP,EA ,CO0000000000 ,50,0,HON 600 Series Wide Lateral Two Drawer File Cabinet ,300 +000007 ,00002,1,0,CRONUS USA,2400,HON-672L-P ,2,1,2001-03-01,1210 ,GI,EA ,000000000000 ,8,0,HON 600 Series Wide Lateral Two Drawer File Cabinet ,300 +000008 ,00001,1,0,CRONUS USA,3000,HON-672L-P ,1,1,2001-01-29,1210 ,GI,EA ,000000000000 ,10,0,HON 600 Series Wide Lateral Two Drawer File Cabinet ,300 +000008 ,00003,1,0,CRONUS USA,4500,HON-672L-P ,3,1,2001-03-22,1210 ,GI,EA ,000000000000 ,15,0,HON 600 Series Wide Lateral Two Drawer File Cabinet ,300 +000009 ,00001,1,0,CRONUS USA,50,JMNONSTOCK ,1,1,2001-01-29,1210 ,SE,EA ,000000000000 ,10,0,Test Non Stock Item ,5 +000010 ,00001,1,300,CRONUS USA,300,HON-672L-L ,1,0,2015-12-01,1210 ,GI,EA ,000000000000 ,1,1,600 Series Wide Lateral Two Drawer File Cabinet ,300 +000010 ,00002,1,300,CRONUS USA,300,HON-672L-P ,2,0,2015-12-01,1210 ,GI,EA ,000000000000 ,1,1,600 Series Wide Lateral Two Drawer File Cabinet ,300 +000011 ,00001,1,0,CRONUS USA,1000,UNV-14116 ,1,1,2016-09-27,1210 ,GI,CARTON,000000000000 ,1,0,Hanging File Folder -- Letter Size w/ 5 tabs ,1000 +000012 ,00001,1,1500,CRONUS USA,3000,HON-672L-L ,1,1,2016-10-25,1210 ,GI,EA ,000000000000 ,10,5,600 Series Wide Lateral Two Drawer File Cabinet ,300 +000012 ,00002,1,1500,CRONUS USA,3000,HON-672L-P ,2,1,2016-10-25,1210 ,GI,EA ,000000000000 ,10,5,600 Series Wide Lateral Two Drawer File Cabinet ,300 +000012 ,00003,1,300,CRONUS USA,3000,HON-672L-Q ,3,1,2016-10-25,1210 ,GI,EA ,000000000000 ,10,1,600 Series Wide Lateral Two Drawer File Cabinet ,300 +000013 ,00001,1,300,CRONUS USA,3000,HON-672L-L ,1,1,2016-10-25,1210 ,GI,EA ,000000000000 ,10,1,600 Series Wide Lateral Two Drawer File Cabinet ,300 +000013 ,00002,1,300,CRONUS USA,3000,HON-672L-P ,2,1,2016-10-25,1210 ,GI,EA ,000000000000 ,10,1,600 Series Wide Lateral Two Drawer File Cabinet ,300 +000013 ,00003,1,300,CRONUS USA,3000,HON-672L-Q ,3,1,2016-10-25,1210 ,GI,EA ,000000000000 ,10,1,600 Series Wide Lateral Two Drawer File Cabinet ,300 +000014 ,00001,1,300,CRONUS USA,300,HON-672L-L ,1,0,2016-11-14,1210 ,GI,EA ,000000000000 ,1,1,600 Series Wide Lateral Two Drawer File Cabinet ,300 +000015 ,00001,1,300,CRONUS USA,300,HON-672L-L ,1,0,2016-11-14,1210 ,GI,EA ,000000000000 ,1,1,600 Series Wide Lateral Two Drawer File Cabinet ,300 +000018 ,00001,1,300,CRONUS USA,300,HON-672L-L ,1,0,2016-11-15,1210 ,GI,EA ,000000000000 ,1,1,600 Series Wide Lateral Two Drawer File Cabinet ,300 +000018 ,00002,1,0,CRONUS USA,0,,2,0,1900-01-01,,DL,,,0,0,Test Description Line ,0 +000018 ,00003,0,25,CRONUS USA,25,,3,0,1900-01-01,7270 ,FR,,000000000000 ,0,0,Freight Charges ,0 +000018 ,00004,0,10,CRONUS USA,10,,4,0,1900-01-01,4030 ,MI,,000000000000 ,0,0,Misc Charges ,0 +000018 ,00005,1,5,CRONUS USA,5,SETUP CHARGES ,5,0,2016-11-15,4030 ,GN,EA ,000000000000 ,1,1,Test Non-Inventory Goods ,5 +000019 ,00001,1,300,CRONUS USA,300,HON-672L-P ,1,0,2016-11-15,1210 ,GI,EA ,000000000000 ,1,1,600 Series Wide Lateral Two Drawer File Cabinet ,300 +000020 ,00001,1,3000,CRONUS USA,3000,HON-672L-L ,1,0,2016-12-22,1210 ,GI,EA ,000000000000 ,10,10,600 Series Wide Lateral Two Drawer File Cabinet ,300 +000021 ,00001,1,700,CRONUS USA,700,XFIFOLOT01 ,1,0,2018-05-17,1210 ,GI,EA ,000000000000 ,10,10,"FIFO, Lot-Tracked Test Item 01 ",70 +000022 ,00001,1,20,CRONUS USA,20,0RTIREVALVE LOTR ,1,0,2018-12-05,1230 ,GI,EA ,000000000000 ,100,100,Tire Valve - Lot Assigned on Receipt ,0.200000000000000011 +000023 ,00001,1,3000,CRONUS USA,3000,0RBOLT ,1,0,2018-04-06,1230 ,GI,EA ,000000000000 ,10000,10000,Carriage Bolts ,0.299999999999999989 +000024 ,00001,1,0,CRONUS USA,50,NON-INVENTORY GOOD ,1,1,2022-06-03,4030 ,GN,EA ,000000000000 ,5,0,Clorox Wipes ,10 +000024 ,00002,0,0,CRONUS USA,5,,2,1,1900-01-01,7270 ,FR,,000000000000 ,0,0,Freight Charges ,0 +000024 ,00003,0,0,CRONUS USA,2.5,,3,1,1900-01-01,4030 ,MI,,000000000000 ,0,0,Misc Charges ,0 +000024 ,00004,1,0,CRONUS USA,30,ABC ,4,1,2022-06-03,4030 ,GN,BOXES ,000000000000 ,3,0,Purell ,10 +000024 ,00005,1,0,CRONUS USA,0,,5,1,1900-01-01,,DL,,,0,0,My Description Line ,0 +000024 ,00006,0,0,CRONUS USA,7.5,,6,1,1900-01-01,7271 ,FR,,EN100AA00000 ,0,0,Freight Charges ,0 +000024 ,00007,1,0,CRONUS USA,300,HON-672L-L ,7,1,2022-06-06,1210 ,GI,EA ,000000000000 ,1,0,600 Series Wide Lateral Two Drawer File Cabinet ,300 +000024 ,00008,1,0,CRONUS USA,0,,8,1,1900-01-01,,DL,,,0,0,My Description Line 2 ,0 +000025 ,00001,1,0,CRONUS USA,1500,HON-672L-L ,1,1,2022-07-07,4150 ,GP,EA ,HH0000000000 ,5,0,600 Series Wide Lateral Two Drawer File Cabinet ,300 +000025 ,00002,1,0,CRONUS USA,0,,2,1,1900-01-01,,DL,,,0,0,Description line test ,0 +000025 ,00003,0,0,CRONUS USA,30,,3,1,1900-01-01,7271 ,FR,,HH0000000000 ,0,0,Freight Charges ,0 +000025 ,00004,1,0,CRONUS USA,300,HON-672L-P ,4,1,2022-07-08,1210 ,GI,EA ,000000000000 ,1,0,600 Series Wide Lateral Two Drawer File Cabinet ,300 +000025 ,00006,1,0,CRONUS USA,300,HON-672L-L ,6,1,2022-07-08,1210 ,GS,EA ,000000000000 ,1,0,600 Series Wide Lateral Two Drawer File Cabinet ,300 +000025 ,00008,0,0,CRONUS USA,25,,8,1,1900-01-01,4030 ,MI,,HH0000000000 ,0,0,Misc Charges ,0 +000025 ,00009,1,0,CRONUS USA,60,AABBCC ,9,1,2022-07-08,4030 ,GN,AA ,HH0000000000 ,3,0,Non-Inventory Good ,20 +000025 ,00010,1,0,CRONUS USA,7.5,0RBOLT ,10,1,2022-07-08,1230 ,GI,EA ,000000000000 ,25,0,Carriage Bolts ,0.299999999999999989 +000025 ,00011,1,0,CRONUS USA,3,0RBOLT ,11,1,2022-07-08,1230 ,PI,EA ,000000000000 ,10,0,Carriage Bolts ,0.299999999999999989 +000025 ,00012,1,0,CRONUS USA,15,0RBOLT ,12,1,2022-07-08,1230 ,PS,EA ,000000000000 ,50,0,Carriage Bolts ,0.299999999999999989 +000025 ,00013,1,0,CRONUS USA,10,,13,1,2022-07-08,6020 ,SE,,000000000000 ,1,0,Answering Services ,10 +000025 ,00014,1,0,CRONUS USA,15,,14,1,2022-07-08,6010 ,SP,,HH0000000000 ,1,0,Advertsing Services ,15 +000026 ,00001,5,0,CRONUS USA,45,UNV-14113 ,1,1,2022-07-13,1210 ,GI,BOX ,000000000000 ,1,0,Hanging File Folder -- Letter Size w/ 3 tabs ,45 +000027 ,00001,15,135,CRONUS USA,135,UNV-14115 ,1,0,2022-07-21,1210 ,GI,BIGBOX,000000000000 ,1,1,Hanging File Folder -- Letter Size w/ 5 tabs ,135 diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLPurchOrdBuffer.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLPurchOrdBuffer.csv new file mode 100644 index 0000000000..d8233994f4 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLPurchOrdBuffer.csv @@ -0,0 +1,24 @@ +PONbr,CpnyID,POAmt,PODate,POType,RcptTotAmt,ShipAddr1,ShipAddr2,ShipAttn,ShipCity,ShipCountry,ShipName,ShipState,ShipVia,ShipZip,Status,VendID +000003 ,CRONUS USA,8662.5,1999-03-19,OR,8662.5,100 Main St. ,Suite 100 ,,Chicago ,US ,Accounts Payable ,IL ,,60606 ,M,VT0120 +000004 ,CRONUS USA,900,1999-03-19,OR,0,100 Main St. ,Suite 100 ,,Chicago ,US ,Accounts Payable ,IL ,,60606 ,P,VT0123 +000005 ,CRONUS USA,4500,2001-01-29,OR,0,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,P,E01181 +000006 ,CRONUS USA,24600,2001-01-29,OR,0,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,P,E01181 +000007 ,CRONUS USA,2400,2001-01-29,OR,0,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,P,E01181 +000008 ,CRONUS USA,6600,2001-01-29,OR,0,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,P,E01181 +000009 ,CRONUS USA,50,2001-01-29,OR,0,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,O,E01181 +000010 ,CRONUS USA,600,2015-12-01,OR,600,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,M,V00209 +000011 ,CRONUS USA,1000,2016-09-27,OR,0,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,P,VT0122 +000012 ,CRONUS USA,9000,2016-10-25,OR,3300,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,O,V00152 +000013 ,CRONUS USA,9000,2016-10-25,OR,900,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,O,V00152 +000014 ,CRONUS USA,300,2016-11-14,OR,300,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,M,VT0100 +000015 ,CRONUS USA,300,2016-11-14,OR,300,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,M,VT0100 +000018 ,CRONUS USA,340,2016-11-15,OR,340,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,M,V00209 +000019 ,CRONUS USA,300,2016-11-15,OR,300,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,M,V00209 +000020 ,CRONUS USA,3000,2016-12-22,OR,3000,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,M,V00152 +000021 ,CRONUS USA,700,2018-05-01,OR,700,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,M,V00152 +000022 ,CRONUS USA,20,2018-11-30,OR,20,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,M,V00209 +000023 ,CRONUS USA,3000,2018-04-01,OR,3000,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,M,V00152 +000024 ,CRONUS USA,395,2022-06-03,OR,0,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,P,V00205 +000025 ,CRONUS USA,2265.5,2022-07-07,OR,0,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,P,V00205 +000026 ,CRONUS USA,45,2022-07-13,OR,0,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,P,V00209 +000027 ,CRONUS USA,135,2022-07-21,OR,135,100 Main St. ,Door 100-B ,,Chicago ,US ,Receiving Dock ,IL ,,60606 ,M,VT0110 diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLSOHeaderBuffer.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLSOHeaderBuffer.csv new file mode 100644 index 0000000000..98255b9abe --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLSOHeaderBuffer.csv @@ -0,0 +1,4 @@ +CpnyID,OrdNbr,CustID,OrdDate,ShipAddr1,ShipAddr2,ShipAttn,ShipCity,ShipCmplt,ShipCountry,ShipName,ShipState,ShipViaID,ShipZip,SOTypeID,Status +CRONUS USA,O1005215 ,C315 ,2026-02-19,123 Maple Street ,,,Dublin ,1,US ,Sarah Mitchell ,OH ,UPS ,43016 ,SO ,O +CRONUS USA,O1005216 ,C421 ,2026-03-02,7237 E Gage Ave ,,,Commerce ,1,US ,Britta Simon ,CA ,FEDEX ,90040-3812,AO ,O +CRONUS USA,O1005217 ,C389 ,2026-03-02,Main Street ,,Tom ,Pittsburgh ,3,US ,Tom Youtsey ,PA ,FIXEDFRT ,33222 ,S01 ,O diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLSOLineBuffer.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLSOLineBuffer.csv new file mode 100644 index 0000000000..6dc024f4f4 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLSOLineBuffer.csv @@ -0,0 +1,6 @@ +CpnyID,OrdNbr,LineRef,InvtID,QtyBO,SiteID,SlsPrice,UnitDesc +CRONUS USA,O1005215 ,00001,0RSEAT-PERF-ASSY ,3,LA ,25,EA +CRONUS USA,O1005215 ,00005,0RHANDLBAR ,2,LA ,33,EA +CRONUS USA,O1005216 ,00001,MRV-FC0230-B ,0,NY ,346,EA +CRONUS USA,O1005216 ,00002,OID-47573 ,2,NY ,442,EA +CRONUS USA,O1005217 ,00001,UNV-14116 ,5,SF ,15.9499999999999993,CARTON diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLSOTypeBuffer.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLSOTypeBuffer.csv new file mode 100644 index 0000000000..0a82ff0ba6 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLSOTypeBuffer.csv @@ -0,0 +1,27 @@ +CpnyID,SOTypeID,Behavior +CRONUS USA,ALL ,SO +CRONUS USA,AO ,SO +CRONUS USA,ASM ,SO +CRONUS USA,BL ,BL +CRONUS USA,CM ,CM +CRONUS USA,CS ,CS +CRONUS USA,DM ,DM +CRONUS USA,INV2,INVC +CRONUS USA,INVC,INVC +CRONUS USA,KA ,WO +CRONUS USA,MO ,MO +CRONUS USA,OU ,SO +CRONUS USA,Q ,Q +CRONUS USA,Q1 ,Q +CRONUS USA,REP ,RMA +CRONUS USA,RFC ,RMA +CRONUS USA,RMSH,RMSH +CRONUS USA,RPL ,RMA +CRONUS USA,S01 ,SO +CRONUS USA,SHIP,SHIP +CRONUS USA,SO ,SO +CRONUS USA,SO2 ,SO +CRONUS USA,SO3 ,SO +CRONUS USA,SOAT,SO +CRONUS USA,TR ,TR +CRONUS USA,WC ,WC \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLSite.csv b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLSite.csv new file mode 100644 index 0000000000..e2e40bf671 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/input/SLTables/SLSite.csv @@ -0,0 +1,7 @@ +SiteId,Addr1,Addr2,City,CpnyID,Fax,Name,Phone,Zip +200 ,,,,CRONUS USA,,Building 200 ,, +400 ,,,,CRONUS USA,,Building 400 ,, +CH ,12345 Main ,,Chicago ,CRONUS USA,3125550101 ,Chicago ,3125550100 ,019010 +LA ,1 World Way ,,Los Angeles ,CRONUS USA,5555550151 ,Los Angeles ,5555550150 ,90045-5803 +NY ,123 Avenue St ,,New York ,CRONUS USA,5555550169 ,New York ,5555550168 ,45860 +SF ,324 Fifth Street ,,San Francisco ,CRONUS USA,5555550198 ,San Francisco ,5555550199 ,01009 diff --git a/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCBankAccount.csv b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCBankAccount.csv new file mode 100644 index 0000000000..50e2139acd --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCBankAccount.csv @@ -0,0 +1,4 @@ +No.,Name,Search Name,Name 2,Address,Address 2,City,Contact,Phone No.,Bank Account No.,Transit No.,Bank Acc. Posting Group,Country/Region Code,Amount,Blocked,Fax No.,ZIP Code,State +1030,Corporate Account,CORPORATE ACCOUNT,,123 World Wide Ave,Suite 900,Columbus,,5555551177,0000000000,37914070 ,SL1,US,0,false,5555551188,43022,OH +1041,General US Cash Account,GENERAL US CASH ACCOUNT,,Park Place,,New York ,Uncle Pennybags,555555555,07041973,23 ,SL2,US,0,false,8888888888,01234,NY +1070,Payroll Checking,PAYROLL CHECKING,,,,,,,0000000001,,SL3,,0,false,,, diff --git a/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCGenJournalLineSLCASH.csv b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCGenJournalLineSLCASH.csv new file mode 100644 index 0000000000..fdc824b3e4 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCGenJournalLineSLCASH.csv @@ -0,0 +1,4 @@ +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,SLCASH,10,Bank Account,1030,2017-06-30,,SLCASHBALANCE,Migrated SL Cash Account Current Balance Amount,1030,471107.35,471107.35,0,,AA,00,2017-06-30,,0,0,,,G/L Account,2017-06-30,,,false,6 +GENERAL,SLCASH,20,Bank Account,1041,2017-06-30,,SLCASHBALANCE,Migrated SL Cash Account Current Balance Amount,1041,10000,10000,0,,AA,00,2017-06-30,,0,0,,,G/L Account,2017-06-30,,,false,24 +GENERAL,SLCASH,30,Bank Account,1070,2017-06-30,,SLCASHBALANCE,Migrated SL Cash Account Current Balance Amount,1070,61786.81,61786.81,0,,00,00,2017-06-30,,0,0,,,G/L Account,2017-06-30,,,false,11 \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCInactiveGLAccountTest.csv b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCInactiveGLAccountTest.csv new file mode 100644 index 0000000000..b1c7831fc1 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCInactiveGLAccountTest.csv @@ -0,0 +1,2 @@ +No.,Name,Search Name,Account Type,Account Category,Income/Balance,Debit/Credit,Direct Posting +1195,Miscellaneous Receivables Othr,MISCELLANEOUS RECEIVABLES OTHR,Posting,Assets,Balance Sheet,Both,true \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCPurchaseHeader.csv b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCPurchaseHeader.csv new file mode 100644 index 0000000000..a24cc85d0c --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCPurchaseHeader.csv @@ -0,0 +1,8 @@ +Document Type,No.,Buy-from Vendor No.,Vendor No.,Ship-to Name,Ship-to Address,Ship-to Address 2,Ship-to City,Ship-to Contact,Order Date,Posting Date,Posting Description,Shipment Method Code,Prices Including Tax,Ship-to ZIP Code,Ship-to State,Ship-to Country/Region Code,Order Address Code,Document Date,Posting No. Series,Receiving No. Series,Status +Order,000004,VT0123,VT0123,Accounts Payable,100 Main St.,Suite 100,Chicago,,1999-03-19,1999-03-19,Migrated from SL,,false,60606,IL,US,,1999-03-19,P-INV+,P-RCPT,Open +Order,000011,VT0122,VT0122,Receiving Dock,100 Main St.,Door 100-B,Chicago,,2016-09-27,2016-09-27,Migrated from SL,,false,60606,IL,US,,2016-09-27,P-INV+,P-RCPT,Open +Order,000012,V00152,V00152,Receiving Dock,100 Main St.,Door 100-B,Chicago,,2016-10-25,2016-10-25,Migrated from SL,,false,60606,IL,US,,2016-10-25,P-INV+,P-RCPT,Open +Order,000013,V00152,V00152,Receiving Dock,100 Main St.,Door 100-B,Chicago,,2016-10-25,2016-10-25,Migrated from SL,,false,60606,IL,US,,2016-10-25,P-INV+,P-RCPT,Open +Order,000024,V00205,V00205,Receiving Dock,100 Main St.,Door 100-B,Chicago,,2022-06-03,2022-06-03,Migrated from SL,,false,60606,IL,US,,2022-06-03,P-INV+,P-RCPT,Open +Order,000025,V00205,V00205,Receiving Dock,100 Main St.,Door 100-B,Chicago,,2022-07-07,2022-07-07,Migrated from SL,,false,60606,IL,US,,2022-07-07,P-INV+,P-RCPT,Open +Order,000026,V00209,V00209,Receiving Dock,100 Main St.,Door 100-B,Chicago,,2022-07-13,2022-07-13,Migrated from SL,,false,60606,IL,US,,2022-07-13,P-INV+,P-RCPT,Open diff --git a/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCPurchaseLine.csv b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCPurchaseLine.csv new file mode 100644 index 0000000000..b768290ecc --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCPurchaseLine.csv @@ -0,0 +1,30 @@ +Document Type,Document No.,Line No.,Buy-from Vendor No.,Type,No.,Location Code,Description,Quantity,Direct Unit Cost,Dimension Set ID,Unit of Measure Code,Promised Receipt Date +Order,000004,1,VT0123,Item,UNV-14115,LA,Hanging File Folder -- Letter Size w/ 5 tabs ,100,9,11,CARTON,1999-03-19 +Order,000011,1,VT0122,Item,UNV-14116,LA,Hanging File Folder -- Letter Size w/ 5 tabs ,1,1000,11,CARTON,2016-09-27 +Order,000012,1,V00152,Item,HON-672L-L,LA,600 Series Wide Lateral Two Drawer File Cabinet ,5,300,11,EA,2016-10-25 +Order,000012,2,V00152,Item,HON-672L-P,LA,600 Series Wide Lateral Two Drawer File Cabinet ,5,300,11,EA,2016-10-25 +Order,000012,3,V00152,Item,HON-672L-Q,LA,600 Series Wide Lateral Two Drawer File Cabinet ,9,300,11,EA,2016-10-25 +Order,000013,1,V00152,Item,HON-672L-L,LA,600 Series Wide Lateral Two Drawer File Cabinet ,9,300,11,EA,2016-10-25 +Order,000013,2,V00152,Item,HON-672L-P,LA,600 Series Wide Lateral Two Drawer File Cabinet ,9,300,11,EA,2016-10-25 +Order,000013,3,V00152,Item,HON-672L-Q,LA,600 Series Wide Lateral Two Drawer File Cabinet ,9,300,11,EA,2016-10-25 +Order,000024,1,V00205,G/L Account,4030,,Clorox Wipes,5,10,11,,2022-06-03 +Order,000024,2,V00205,G/L Account,7270,,Freight Charges,1,5,11,, +Order,000024,3,V00205,G/L Account,4030,,Misc Charges,1,2.5,11,, +Order,000024,4,V00205,G/L Account,4030,,Purell,3,10,11,,2022-06-03 +Order,000024,5,,,,,My Description Line,0,0,,, +Order,000024,6,V00205,G/L Account,7271,,Freight Charges,1,7.5,107,, +Order,000024,7,V00205,Item,HON-672L-L,200,600 Series Wide Lateral Two Drawer File Cabinet ,1,300,11,EA,2022-06-06 +Order,000024,8,,,,,My Description Line 2,0,0,,, +Order,000025,1,V00205,Item,HON-672L-L,200,600 Series Wide Lateral Two Drawer File Cabinet ,5,300,109,EA,2022-07-07 +Order,000025,2,,,,,Description line test,0,0,,, +Order,000025,3,V00205,G/L Account,7271,,Freight Charges,1,30,109,, +Order,000025,4,V00205,Item,HON-672L-P,200,600 Series Wide Lateral Two Drawer File Cabinet ,1,300,11,EA,2022-07-08 +Order,000025,6,V00205,Item,HON-672L-L,LA,600 Series Wide Lateral Two Drawer File Cabinet ,1,300,11,EA,2022-07-08 +Order,000025,8,V00205,G/L Account,4030,,Misc Charges,1,25,109,, +Order,000025,9,V00205,G/L Account,4030,,Non-Inventory Good,3,20,109,,2022-07-08 +Order,000025,10,V00205,Item,0RBOLT,200,Carriage Bolts ,25,0.299999999999999989,11,EA,2022-07-08 +Order,000025,11,V00205,Item,0RBOLT,200,Carriage Bolts ,10,0.299999999999999989,11,EA,2022-07-08 +Order,000025,12,V00205,Item,0RBOLT,200,Carriage Bolts ,50,0.299999999999999989,11,EA,2022-07-08 +Order,000025,13,V00205,G/L Account,6020,,Answering Services,1,10,11,,2022-07-08 +Order,000025,14,V00205,G/L Account,6010,,Advertsing Services,1,15,109,,2022-07-08 +Order,000026,1,V00209,Item,UNV-14113,200,Hanging File Folder -- Letter Size w/ 3 tabs ,1,45,11,BOX,2022-07-13 diff --git a/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCSalesHeader.csv b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCSalesHeader.csv new file mode 100644 index 0000000000..95d5d756be --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCSalesHeader.csv @@ -0,0 +1,4 @@ +Document Type,No.,Sell-to Customer No.,Bill-to Customer No.,Ship-to Name,Ship-to Address,Ship-to Address 2,Ship-to City,Ship-to Contact,Order Date,Posting Date,Posting Description,Shipment Method Code,Ship-to ZIP Code,Ship-to State,Ship-to Country/Region Code,Document Date,Posting No. Series,Shipping No. Series,Status,Shipping Advice +Order,O1005215,C315,C315,Sarah Mitchell,123 Maple Street,,Dublin,,2026-02-19,2026-02-19,Migrated from SL,UPS,43016,OH,US,2026-02-19,S-INV+,S-SHPT,Open,Complete +Order,O1005216,C421,C421,Britta Simon,7237 E Gage Ave,,Commerce,,2026-03-02,2026-03-02,Migrated from SL,FEDEX,90040-3812,CA,US,2026-03-02,S-INV+,S-SHPT,Open,Complete +Order,O1005217,C389,C389,Tom Youtsey,Main Street,,Pittsburgh,Tom,2026-03-02,2026-03-02,Migrated from SL,FIXEDFRT,33222,PA,US,2026-03-02,S-INV+,S-SHPT,Open,Partial diff --git a/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCSalesLine.csv b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCSalesLine.csv new file mode 100644 index 0000000000..fa5bcd3660 --- /dev/null +++ b/Apps/W1/HybridSL/test/.resources/datasets/results/SLBCSalesLine.csv @@ -0,0 +1,5 @@ +Document Type,Document No.,Line No.,Sell-to Customer No.,Type,No.,Location Code,Unit of Measure,Quantity,Unit Price +Order,O1005215,1,C315,Item,0RSEAT-PERF-ASSY,LA,EA,3,25 +Order,O1005215,5,C315,Item,0RHANDLBAR,LA,EA,2,33 +Order,O1005216,2,C421,Item,OID-47573,NY,EA,2,442 +Order,O1005217,1,C389,Item,UNV-14116,SF,CARTON,5,15.9499999999999993 diff --git a/Apps/W1/HybridSL/test/src/SLAcctHistData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLAcctHistData.XmlPort.al index b90eebcd08..0b42edb3ef 100644 --- a/Apps/W1/HybridSL/test/src/SLAcctHistData.XmlPort.al +++ b/Apps/W1/HybridSL/test/src/SLAcctHistData.XmlPort.al @@ -36,6 +36,9 @@ xmlport 147608 "SL AcctHist Data" textelement(FiscYr) { } + textelement(BegBal) + { + } textelement(PtdBal00) { } @@ -98,6 +101,7 @@ xmlport 147608 "SL AcctHist Data" SLAcctHist.Sub := Sub; SLAcctHist.LedgerID := LedgerID; SLAcctHist.FiscYr := FiscYr; + Evaluate(SLAcctHist.BegBal, BegBal); Evaluate(SLAcctHist.PtdBal00, PtdBal00); Evaluate(SLAcctHist.PtdBal01, PtdBal01); Evaluate(SLAcctHist.PtdBal02, PtdBal02); diff --git a/Apps/W1/HybridSL/test/src/SLAddressData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLAddressData.XmlPort.al new file mode 100644 index 0000000000..be3a286c5a --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLAddressData.XmlPort.al @@ -0,0 +1,105 @@ +// ------------------------------------------------------------------------------------------------ +// 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 147634 "SL Address Data" +{ + Caption = 'SL Address data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL Address"; "SL Address") + { + AutoSave = false; + XmlName = 'SLAddress'; + + textelement(AddrId) + { + } + textelement(Addr1) + { + } + textelement(Addr2) + { + } + textelement(Attn) + { + } + textelement(City) + { + } + textelement(Country) + { + } + textelement(Fax) + { + } + textelement(Name) + { + } + textelement(Phone) + { + } + textelement(State) + { + } + textelement(TaxRegNbr) + { + } + textelement(Zip) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLAddress: Record "SL Address"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLAddress.AddrId := AddrId; + SLAddress.Addr1 := Addr1; + SLAddress.Addr2 := Addr2; + SLAddress.Attn := Attn; + SLAddress.City := City; + SLAddress.Country := Country; + SLAddress.Fax := Fax; + SLAddress.Name := Name; + SLAddress.Phone := Phone; + SLAddress.State := State; + SLAddress.TaxRegNbr := TaxRegNbr; + SLAddress.Zip := Zip; + SLAddress.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLAddress.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLAddress: Record "SL Address"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLBCBankAccountData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCBankAccountData.XmlPort.al new file mode 100644 index 0000000000..75a555f5c2 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLBCBankAccountData.XmlPort.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.Bank.BankAccount; + +xmlport 147636 "SL BC Bank Account Data" +{ + Caption = 'Bank Account data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("Bank Account"; "Bank Account") + { + AutoSave = false; + XmlName = 'BankAccount'; + UseTemporary = true; + + textelement("No.") + { + } + textelement("Name") + { + } + textelement("SearchName") + { + } + textelement("Name2") + { + } + textelement("Address") + { + } + textelement("Address2") + { + } + textelement("City") + { + } + textelement("Contact") + { + } + textelement("PhoneNo.") + { + } + textelement("BankAccountNo.") + { + } + textelement("TransitNo.") + { + } + textelement("BankAccPostingGroup") + { + } + textelement("CountryRegionCode") + { + } + textelement("Amount") + { + } + textelement("Blocked") + { + } + textelement("FaxNo.") + { + } + textelement("ZIPCode") + { + } + textelement("State") + { + } + + 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; + + TempBankAccount."No." := "No."; + TempBankAccount.Name := "Name"; + TempBankAccount."Search Name" := "SearchName"; + TempBankAccount."Name 2" := "Name2"; + TempBankAccount.Address := "Address"; + TempBankAccount."Address 2" := "Address2"; + TempBankAccount.City := "City"; + TempBankAccount.Contact := "Contact"; + TempBankAccount."Phone No." := "PhoneNo."; + TempBankAccount."Bank Account No." := "BankAccountNo."; + TempBankAccount."Transit No." := "TransitNo."; + TempBankAccount."Bank Acc. Posting Group" := "BankAccPostingGroup"; + TempBankAccount."Country/Region Code" := "CountryRegionCode"; + Evaluate(TempBankAccount.Amount, "Amount"); + Evaluate(TempBankAccount.Blocked, "Blocked"); + TempBankAccount."Fax No." := "FaxNo."; + TempBankAccount."Post Code" := "ZIPCode"; + TempBankAccount.County := "State"; + TempBankAccount.Insert(false); + end; + } + } + } + + trigger OnPreXmlPort() + begin + CaptionRow := true; + end; + + procedure GetExpectedBankAccounts(var NewTempBankAccount: Record "Bank Account" temporary) + begin + if TempBankAccount.FindSet() then begin + repeat + NewTempBankAccount.Copy(TempBankAccount); + NewTempBankAccount.Insert(); + until TempBankAccount.Next() = 0; + end; + end; + + var + CaptionRow: Boolean; + TempBankAccount: Record "Bank Account" temporary; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLBCCustomerOpenOrderData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCCustomerOpenOrderData.XmlPort.al new file mode 100644 index 0000000000..a91d945cff --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLBCCustomerOpenOrderData.XmlPort.al @@ -0,0 +1,154 @@ +// ------------------------------------------------------------------------------------------------ +// 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.Sales.Customer; + +xmlport 147652 "SL BC Customer Open Order Data" +{ + Caption = 'SL BC Customer for Open Order data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("BCCustomer"; Customer) + { + AutoSave = false; + XmlName = 'Customer'; + + textelement("No.") + { + } + textelement("Name") + { + } + textelement("SearchName") + { + } + textelement("Name2") + { + } + textelement("Address") + { + } + textelement("Address2") + { + } + textelement("City") + { + } + textelement("Contact") + { + } + textelement("PhoneNo.") + { + } + textelement("TerritoryCode") + { + } + textelement("CreditLimit") + { + } + textelement("CustomerPostingGroup") + { + } + textelement("PaymentTermsCode") + { + } + textelement("SalespersonCode") + { + } + textelement("ShipmentMethodCode") + { + } + textelement("CountryRegionCode") + { + } + textelement("Blocked") + { + } + textelement("FaxNo.") + { + } + textelement("GenBusPostingGroup") + { + } + textelement("ZIPCode") + { + } + textelement("State") + { + } + textelement("TaxAreaCode") + { + } + textelement("TaxLiable") + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + Customer: Record Customer; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + Customer."No." := "No."; + Customer.Name := "Name"; + Customer."Search Name" := "SearchName"; + Customer."Name 2" := "Name2"; + Customer.Address := "Address"; + Customer."Address 2" := "Address2"; + Customer.City := "City"; + Customer.Contact := "Contact"; + Customer."Phone No." := "PhoneNo."; + Customer."Territory Code" := "TerritoryCode"; + if CreditLimit <> '' then + Evaluate(Customer."Credit Limit (LCY)", "CreditLimit", 9); + Customer."Customer Posting Group" := "CustomerPostingGroup"; + // Customer."Payment Terms Code" := "PaymentTermsCode"; + Customer."Salesperson Code" := "SalespersonCode"; + Customer."Shipment Method Code" := "ShipmentMethodCode"; + Customer."Country/Region Code" := "CountryRegionCode"; + if Blocked <> '' then + Evaluate(Customer.Blocked, Blocked, 9); + Customer."Fax No." := "FaxNo."; + Customer."Gen. Bus. Posting Group" := "GenBusPostingGroup"; + Customer."Post Code" := "ZIPCode"; + Customer.County := State; + Customer."Tax Area Code" := "TaxAreaCode"; + if TaxLiable <> '' then + Evaluate(Customer."Tax Liable", "TaxLiable", 9); + Customer.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + Customer.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + Customer: Record Customer; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLBCGenProductPostingGroupData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCGenProductPostingGroupData.XmlPort.al new file mode 100644 index 0000000000..14920dbae3 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLBCGenProductPostingGroupData.XmlPort.al @@ -0,0 +1,67 @@ +// ------------------------------------------------------------------------------------------------ +// 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.Setup; + +xmlport 147660 "SL Gen Prod Posting Group Data" +{ + Caption = 'SL BC General Product Posting Group data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("BCGenProductPostingGroup"; "Gen. Product Posting Group") + { + AutoSave = false; + XmlName = 'GenProductPostingGroup'; + + textelement(Code) + { + } + textelement(Description) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + GenProductPostingGroup: Record "Gen. Product Posting Group"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + GenProductPostingGroup.Code := Code; + GenProductPostingGroup.Description := Description; + GenProductPostingGroup.Insert(true); + end; + } + } + } + + trigger OnPreXmlPort() + begin + GenProductPostingGroup.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + GenProductPostingGroup: Record "Gen. Product Posting Group"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLBCInvtPostingGroupData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCInvtPostingGroupData.XmlPort.al new file mode 100644 index 0000000000..d87638848c --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLBCInvtPostingGroupData.XmlPort.al @@ -0,0 +1,67 @@ +// ------------------------------------------------------------------------------------------------ +// 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.Inventory.Item; + +xmlport 147658 "SL BC Invt Posting Group Data" +{ + Caption = 'SL BC Inventory Posting Group data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("BCInventoryPostingGroup"; "Inventory Posting Group") + { + AutoSave = false; + XmlName = 'InventoryPostingGroup'; + + textelement(Code) + { + } + textelement(Description) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + InventoryPostingGroup: Record "Inventory Posting Group"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + InventoryPostingGroup.Code := Code; + InventoryPostingGroup.Description := Description; + InventoryPostingGroup.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + InventoryPostingGroup.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + InventoryPostingGroup: Record "Inventory Posting Group"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLBCItemData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCItemData.XmlPort.al index 5f2d04737a..7df23f0b73 100644 --- a/Apps/W1/HybridSL/test/src/SLBCItemData.XmlPort.al +++ b/Apps/W1/HybridSL/test/src/SLBCItemData.XmlPort.al @@ -5,7 +5,7 @@ namespace Microsoft.DataMigration.SL; using Microsoft.Inventory.Item; -xmlport 147620 "SL BC Item Data" +xmlport 147620 "SL BC Item Data Expected" { Caption = 'BC Item data for import/export'; Direction = Both; diff --git a/Apps/W1/HybridSL/test/src/SLBCItemForOpenOrderData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCItemForOpenOrderData.XmlPort.al new file mode 100644 index 0000000000..c66a05d97a --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLBCItemForOpenOrderData.XmlPort.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.Inventory.Item; + +xmlport 147646 "SL BC Item for Open Order Data" +{ + Caption = 'SL BC Item for Open Order data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("BCItem"; Item) + { + AutoSave = false; + XmlName = 'Item'; + + textelement("No.") + { + } + textelement("Description") + { + } + textelement("SearchDescription") + { + } + textelement("BaseUnitOfMeasure") + { + } + textelement("Type") + { + } + textelement("InventoryPostingGroup") + { + } + textelement("UnitPrice") + { + } + textelement("CostingMethod") + { + } + textelement("UnitCost") + { + } + textelement("StandardCost") + { + } + textelement("NetWeight") + { + } + textelement("Blocked") + { + } + textelement("BlockReason") + { + } + textelement("GenProdPostingGroup") + { + } + textelement("SalesUnitOfMeasure") + { + } + textelement("PurchUnitOfMeasure") + { + } + textelement("ItemTrackingCode") + { + } + textelement("ExpirationCalculation") + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + Item: Record Item; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + Item."No." := "No."; + Item.Description := "Description"; + Item."Search Description" := "SearchDescription"; + Item."Base Unit of Measure" := "BaseUnitOfMeasure"; + if Type <> '' then + Evaluate(Item.Type, "Type"); + Item."Inventory Posting Group" := "InventoryPostingGroup"; + if UnitPrice <> '' then + Evaluate(Item."Unit Price", "UnitPrice"); + if CostingMethod <> '' then + Evaluate(Item."Costing Method", "CostingMethod"); + if UnitCost <> '' then + Evaluate(Item."Unit Cost", "UnitCost"); + if StandardCost <> '' then + Evaluate(Item."Standard Cost", "StandardCost"); + if NetWeight <> '' then + Evaluate(Item."Net Weight", "NetWeight"); + if Blocked <> '' then + Evaluate(Item.Blocked, "Blocked"); + Item."Block Reason" := "BlockReason"; + Item."Gen. Prod. Posting Group" := "GenProdPostingGroup"; + Item."Sales Unit of Measure" := "SalesUnitOfMeasure"; + Item."Purch. Unit of Measure" := "PurchUnitOfMeasure"; + Item."Item Tracking Code" := "ItemTrackingCode"; + if ItemTrackingCode <> '' then + Evaluate(Item."Expiration Calculation", "ExpirationCalculation"); + Item.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + Item.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + Item: Record Item; +} diff --git a/Apps/W1/HybridSL/test/src/SLBCItemUOMForOpenOrdersData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCItemUOMForOpenOrdersData.XmlPort.al new file mode 100644 index 0000000000..73cb703189 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLBCItemUOMForOpenOrdersData.XmlPort.al @@ -0,0 +1,71 @@ +// ------------------------------------------------------------------------------------------------ +// 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.Inventory.Item; + +xmlport 147649 "SL BC Item UOM Open Orders" +{ + Caption = 'SL BC Item UOM for Open Orders data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("BCItemUnitofMeasure"; "Item Unit of Measure") + { + AutoSave = false; + XmlName = 'ItemUnitOfMeasure'; + + textelement(ItemNo) + { + } + textelement(Code) + { + } + textelement(QtyPerUnitOfMeasure) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + ItemUnitOfMeasure: Record "Item Unit of Measure"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + ItemUnitOfMeasure."Item No." := ItemNo; + ItemUnitOfMeasure.Code := Code; + Evaluate(ItemUnitOfMeasure."Qty. per Unit of Measure", QtyPerUnitOfMeasure); + ItemUnitOfMeasure.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + ItemUnitOfMeasure.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + ItemUnitOfMeasure: Record "Item Unit of Measure"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLBCLocationsData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCLocationsData.XmlPort.al new file mode 100644 index 0000000000..9d5d5937d9 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLBCLocationsData.XmlPort.al @@ -0,0 +1,99 @@ +// ------------------------------------------------------------------------------------------------ +// 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.Inventory.Location; + +xmlport 147650 "SL BC Locations Open Orders" +{ + Caption = 'SL BC Locations data for open orders import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("BCLocation"; Location) + { + AutoSave = false; + XmlName = 'Location'; + + textelement(Code) + { + } + textelement(Name) + { + } + textelement(Address) + { + } + textelement(Address2) + { + } + textelement(City) + { + } + textelement(PhoneNo) + { + } + textelement(FaxNo) + { + } + textelement(ZipCode) + { + } + textelement(State) + { + } + textelement(CountryRegionCode) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + Location: Record Location; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + Location.Code := Code; + Location.Name := Name; + Location.Address := Address; + Location."Address 2" := Address2; + Location.City := City; + Location."Phone No." := PhoneNo; + Location."Fax No." := FaxNo; + Location."Post Code" := ZipCode; + Location.County := State; + Location."Country/Region Code" := CountryRegionCode; + Location.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + Location.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + Location: Record Location; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLBCPurchaseHeaderData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCPurchaseHeaderData.XmlPort.al new file mode 100644 index 0000000000..c2a84b57f5 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLBCPurchaseHeaderData.XmlPort.al @@ -0,0 +1,156 @@ +// ------------------------------------------------------------------------------------------------ +// 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.Document; + +xmlport 147643 "SL BC Purch. Header Data Temp" +{ + Caption = 'BC Purchase Header data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("Purchase Header"; "Purchase Header") + { + AutoSave = false; + XmlName = 'PurchaseHeader'; + UseTemporary = true; + + textelement(DocumentType) + { + } + textelement("No.") + { + } + textelement(BuyFromVendorNo) + { + } + textelement(VendorNo) + { + } + textelement(ShipToName) + { + } + textelement(ShipToAddress) + { + } + textelement(ShipToAddress2) + { + } + textelement(ShipToCity) + { + } + textelement(ShipToContact) + { + } + textelement(OrderDate) + { + } + textelement(PostingDate) + { + } + textelement(PostingDescription) + { + } + textelement(ShipmentMethodCode) + { + } + textelement(PricesIncludingTax) + { + } + textelement(ShipToZIPCode) + { + } + textelement(ShipToState) + { + } + textelement(ShipToCountryRegionCode) + { + } + textelement(OrderAddressCode) + { + } + textelement(DocumentDate) + { + } + textelement(PostingNoSeries) + { + } + textelement(ReceivingNoSeries) + { + } + textelement(Status) + { + } + + 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(TempPurchaseHeader."Document Type", DocumentType); + TempPurchaseHeader."No." := "No."; + TempPurchaseHeader."Buy-from Vendor No." := BuyFromVendorNo; + TempPurchaseHeader."Pay-to Vendor No." := VendorNo; + TempPurchaseHeader."Ship-to Name" := ShipToName; + TempPurchaseHeader."Ship-to Address" := ShipToAddress; + TempPurchaseHeader."Ship-to Address 2" := ShipToAddress2; + TempPurchaseHeader."Ship-to City" := ShipToCity; + TempPurchaseHeader."Ship-to Contact" := ShipToContact; + Evaluate(TempPurchaseHeader."Order Date", OrderDate); + Evaluate(TempPurchaseHeader."Posting Date", PostingDate); + TempPurchaseHeader."Posting Description" := PostingDescription; + TempPurchaseHeader."Shipment Method Code" := ShipmentMethodCode; + Evaluate(TempPurchaseHeader."Prices Including VAT", PricesIncludingTax); + TempPurchaseHeader."Ship-to Post Code" := ShipToZIPCode; + TempPurchaseHeader."Ship-to County" := ShipToState; + TempPurchaseHeader."Ship-to Country/Region Code" := ShipToCountryRegionCode; + TempPurchaseHeader."Order Address Code" := OrderAddressCode; + Evaluate(TempPurchaseHeader."Document Date", DocumentDate); + TempPurchaseHeader."Posting No. Series" := PostingNoSeries; + TempPurchaseHeader."Receiving No. Series" := ReceivingNoSeries; + if Status <> '' then + Evaluate(TempPurchaseHeader.Status, Status); + TempPurchaseHeader.Insert(false); + end; + } + } + } + + trigger OnPreXmlPort() + begin + CaptionRow := true; + end; + + procedure GetExpectedPurchaseHeaders(var NewTempPurchaseHeader: Record "Purchase Header" temporary) + begin + if TempPurchaseHeader.FindSet() then begin + repeat + NewTempPurchaseHeader.Copy(TempPurchaseHeader); + NewTempPurchaseHeader.Insert(); + until TempPurchaseHeader.Next() = 0; + end; + end; + + var + CaptionRow: Boolean; + TempPurchaseHeader: Record "Purchase Header" temporary; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLBCPurchaseLineData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCPurchaseLineData.XmlPort.al new file mode 100644 index 0000000000..c15729cce2 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLBCPurchaseLineData.XmlPort.al @@ -0,0 +1,122 @@ +// ------------------------------------------------------------------------------------------------ +// 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.Document; + +xmlport 147644 "SL BC Purchase Line Data" +{ + Caption = 'BC Purchase Line data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("Purchase Line"; "Purchase Line") + { + AutoSave = false; + XmlName = 'PurchaseLine'; + UseTemporary = true; + + textelement(DocumentType) + { + } + textelement(DocumentNo) + { + } + textelement(LineNo) + { + } + textelement(BuyFromVendorNo) + { + } + textelement(Type) + { + } + textelement("No.") + { + } + textelement(LocationCode) + { + } + textelement(Description) + { + } + textelement(Quantity) + { + } + textelement(DirectUnitCost) + { + } + textelement(DimensionSetID) + { + } + textelement(UnitofMeasureCode) + { + } + textelement(PromisedReceiptDate) + { + } + + 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(TempPurchaseLine."Document Type", DocumentType); + TempPurchaseLine."Document No." := DocumentNo; + Evaluate(TempPurchaseLine."Line No.", LineNo); + TempPurchaseLine."Buy-from Vendor No." := BuyFromVendorNo; + if Type <> '' then + Evaluate(TempPurchaseLine.Type, Type); + TempPurchaseLine."No." := "No."; + TempPurchaseLine."Location Code" := LocationCode; + TempPurchaseLine.Description := Description; + Evaluate(TempPurchaseLine.Quantity, Quantity); + Evaluate(TempPurchaseLine."Direct Unit Cost", DirectUnitCost); + if DimensionSetID <> '' then + Evaluate(TempPurchaseLine."Dimension Set ID", DimensionSetID); + TempPurchaseLine."Unit of Measure Code" := UnitofMeasureCode; + if PromisedReceiptDate <> '' then + Evaluate(TempPurchaseLine."Promised Receipt Date", PromisedReceiptDate); + TempPurchaseLine.Insert(false); + end; + } + } + } + + trigger OnPreXmlPort() + begin + CaptionRow := true; + end; + + procedure GetExpectedPurchaseLines(var NewTempPurchaseLine: Record "Purchase Line" temporary) + begin + if TempPurchaseLine.FindSet() then begin + repeat + NewTempPurchaseLine.Copy(TempPurchaseLine); + NewTempPurchaseLine.Insert(); + until TempPurchaseLine.Next() = 0; + end; + end; + + var + CaptionRow: Boolean; + TempPurchaseLine: Record "Purchase Line" temporary; +} diff --git a/Apps/W1/HybridSL/test/src/SLBCSalesHeaderData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCSalesHeaderData.XmlPort.al new file mode 100644 index 0000000000..186d02fff5 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLBCSalesHeaderData.XmlPort.al @@ -0,0 +1,153 @@ +// ------------------------------------------------------------------------------------------------ +// 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.Sales.Document; + +xmlport 147655 "SL BC Sales Header Data Temp" +{ + Caption = 'BC Sales Header data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("Sales Header"; "Sales Header") + { + AutoSave = false; + XmlName = 'SalesHeader'; + UseTemporary = true; + + textelement(DocumentType) + { + } + textelement("No.") + { + } + textelement(SellToCustomerNo) + { + } + textelement(BillToCustomerNo) + { + } + textelement(ShipToName) + { + } + textelement(ShipToAddress) + { + } + textelement(ShipToAddress2) + { + } + textelement(ShipToCity) + { + } + textelement(ShipToContact) + { + } + textelement(OrderDate) + { + } + textelement(PostingDate) + { + } + textelement(PostingDescription) + { + } + textelement(ShipmentMethodCode) + { + } + textelement(ShipToZIPCode) + { + } + textelement(ShipToState) + { + } + textelement(ShipToCountryRegionCode) + { + } + textelement(DocumentDate) + { + } + textelement(PostingNoSeries) + { + } + textelement(ShippingNoSeries) + { + } + textelement(Status) + { + } + textelement(ShippingAdvice) + { + } + + 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(TempSalesHeader."Document Type", DocumentType); + TempSalesHeader."No." := "No."; + TempSalesHeader."Sell-to Customer No." := SellToCustomerNo; + TempSalesHeader."Bill-to Customer No." := BillToCustomerNo; + TempSalesHeader."Ship-to Name" := ShipToName; + TempSalesHeader."Ship-to Address" := ShipToAddress; + TempSalesHeader."Ship-to Address 2" := ShipToAddress2; + TempSalesHeader."Ship-to City" := ShipToCity; + TempSalesHeader."Ship-to Contact" := ShipToContact; + Evaluate(TempSalesHeader."Order Date", OrderDate); + Evaluate(TempSalesHeader."Posting Date", PostingDate); + TempSalesHeader."Posting Description" := PostingDescription; + TempSalesHeader."Shipment Method Code" := ShipmentMethodCode; + TempSalesHeader."Ship-to Post Code" := ShipToZIPCode; + TempSalesHeader."Ship-to County" := ShipToState; + TempSalesHeader."Ship-to Country/Region Code" := ShipToCountryRegionCode; + Evaluate(TempSalesHeader."Document Date", DocumentDate); + TempSalesHeader."Posting No. Series" := PostingNoSeries; + TempSalesHeader."Shipping No. Series" := ShippingNoSeries; + if Status <> '' then + Evaluate(TempSalesHeader.Status, Status); + if ShippingAdvice <> '' then + Evaluate(TempSalesHeader."Shipping Advice", ShippingAdvice); + TempSalesHeader.Insert(false); + end; + } + } + } + + trigger OnPreXmlPort() + begin + CaptionRow := true; + end; + + procedure GetExpectedSalesHeaders(var NewTempSalesHeader: Record "Sales Header" temporary) + begin + if TempSalesHeader.FindSet() then begin + repeat + NewTempSalesHeader.Copy(TempSalesHeader); + NewTempSalesHeader.Insert(); + until TempSalesHeader.Next() = 0; + end; + end; + + var + CaptionRow: Boolean; + TempSalesHeader: Record "Sales Header" temporary; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLBCSalesLineData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCSalesLineData.XmlPort.al new file mode 100644 index 0000000000..92d5ecdf2c --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLBCSalesLineData.XmlPort.al @@ -0,0 +1,108 @@ +// ------------------------------------------------------------------------------------------------ +// 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.Sales.Document; + +xmlport 147656 "SL BC Sales Line Data Temp" +{ + Caption = 'BC Sales Line data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("Sales Line"; "Sales Line") + { + AutoSave = false; + XmlName = 'SalesLine'; + UseTemporary = true; + + textelement(DocumentType) + { + } + textelement(DocumentNo) + { + } + textelement(LineNo) + { + } + textelement(SellToCustomerNo) + { + } + textelement(Type) + { + } + textelement("No.") + { + } + textelement(LocationCode) + { + } + textelement(UnitOfMeasure) + { + } + textelement(Quantity) + { + } + textelement(UnitPrice) + { + } + + 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(TempSalesLine."Document Type", DocumentType); + TempSalesLine."Document No." := DocumentNo; + Evaluate(TempSalesLine."Line No.", LineNo); + TempSalesLine."Sell-to Customer No." := SellToCustomerNo; + if Type <> '' then + Evaluate(TempSalesLine.Type, Type); + TempSalesLine."No." := "No."; + TempSalesLine."Location Code" := LocationCode; + TempSalesLine."Unit of Measure Code" := UnitOfMeasure; + Evaluate(TempSalesLine.Quantity, Quantity); + Evaluate(TempSalesLine."Unit Price", UnitPrice); + TempSalesLine.Insert(false); + end; + } + } + } + + trigger OnPreXmlPort() + begin + CaptionRow := true; + end; + + procedure GetExpectedSalesLines(var NewTempSalesLine: Record "Sales Line" temporary) + begin + if TempSalesLine.FindSet() then begin + repeat + NewTempSalesLine.Copy(TempSalesLine); + NewTempSalesLine.Insert(); + until TempSalesLine.Next() = 0; + end; + end; + + var + CaptionRow: Boolean; + TempSalesLine: Record "Sales Line" temporary; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLBCUnitOfMeasureForOpenOrdersData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCUnitOfMeasureForOpenOrdersData.XmlPort.al new file mode 100644 index 0000000000..1850a21a94 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLBCUnitOfMeasureForOpenOrdersData.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.Foundation.UOM; + +xmlport 147648 "SL BC UOM Open Orders" +{ + Caption = 'SL BC Unit of Measure for Open Orders data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("BCUnitofMeasure"; "Unit of Measure") + { + AutoSave = false; + XmlName = 'UnitOfMeasure'; + + textelement(Code) + { + } + textelement(Description) + { + } + textelement(InternationalStandardCode) + { + } + textelement(Symbol) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + UnitOfMeasure: Record "Unit of Measure"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + UnitOfMeasure.Code := Code; + UnitOfMeasure.Description := Description; + UnitOfMeasure."International Standard Code" := InternationalStandardCode; + UnitOfMeasure.Symbol := Symbol; + UnitOfMeasure.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + UnitOfMeasure.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + UnitOfMeasure: Record "Unit of Measure"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLBCVendorData.XmlPost.al b/Apps/W1/HybridSL/test/src/SLBCVendorDataTemporary.XmlPost.al similarity index 98% rename from Apps/W1/HybridSL/test/src/SLBCVendorData.XmlPost.al rename to Apps/W1/HybridSL/test/src/SLBCVendorDataTemporary.XmlPost.al index a40f8877fc..21dfabafa3 100644 --- a/Apps/W1/HybridSL/test/src/SLBCVendorData.XmlPost.al +++ b/Apps/W1/HybridSL/test/src/SLBCVendorDataTemporary.XmlPost.al @@ -6,7 +6,7 @@ namespace Microsoft.DataMigration.SL; using Microsoft.Purchases.Vendor; -xmlport 147616 "SL BC Vendor Data" +xmlport 147616 "SL BC Vendor Data Expected" { Caption = 'Vendor data for import/export'; Direction = Both; @@ -18,7 +18,7 @@ xmlport 147616 "SL BC Vendor Data" { textelement(root) { - tableelement("Vendor"; Vendor) + tableelement("VendorTemp"; Vendor) { AutoSave = false; XmlName = 'Vendor'; diff --git a/Apps/W1/HybridSL/test/src/SLBCVendorForOpenPOsData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLBCVendorForOpenPOsData.XmlPort.al new file mode 100644 index 0000000000..f9482a0236 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLBCVendorForOpenPOsData.XmlPort.al @@ -0,0 +1,137 @@ +// ------------------------------------------------------------------------------------------------ +// 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 147645 "SL BC Vendor for Open POs Data" +{ + Caption = 'SL BC Vendor for Open POs data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("BCVendor"; Vendor) + { + AutoSave = false; + XmlName = 'Vendor'; + + textelement("No.") + { + } + textelement("Name") + { + } + textelement("SearchName") + { + } + textelement("Address") + { + } + textelement("Address2") + { + } + textelement("City") + { + } + textelement("Contact") + { + } + textelement("PhoneNo.") + { + } + textelement("VendorPostingGroup") + { + } + textelement("ShipmentMethodCode") + { + } + textelement("CountryRegionCode") + { + } + textelement("Blocked") + { + } + textelement("TaxRegistrationNo") + { + } + 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 + Vendor: Record Vendor; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + Vendor."No." := "No."; + Vendor.Name := "Name"; + Vendor."Search Name" := "SearchName"; + Vendor.Address := "Address"; + Vendor."Address 2" := "Address2"; + Vendor.City := "City"; + Vendor.Contact := "Contact"; + Vendor."Phone No." := "PhoneNo."; + Vendor."Vendor Posting Group" := "VendorPostingGroup"; + Vendor."Shipment Method Code" := "ShipmentMethodCode"; + Vendor."Country/Region Code" := "CountryRegionCode"; + if Blocked <> '' then + Evaluate(Vendor.Blocked, "Blocked"); + Vendor."VAT Registration No." := "TaxRegistrationNo"; + Vendor."Gen. Bus. Posting Group" := "GenBusPostingGroup"; + Vendor."Post Code" := "ZipCode"; + Vendor.County := "State"; + Vendor."E-Mail" := "EMail"; + Vendor."Tax Area Code" := "TaxAreaCode"; + if TaxLiable <> '' then + Evaluate(Vendor."Tax Liable", "TaxLiable", 9); + Vendor.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + Vendor.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + Vendor: Record Vendor; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLCASetupData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLCASetupData.XmlPort.al new file mode 100644 index 0000000000..56f1b38771 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLCASetupData.XmlPort.al @@ -0,0 +1,85 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +xmlport 147637 "SL CASetup Data" +{ + Caption = 'SL CASetup data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL CASetup"; "SL CASetup") + { + AutoSave = false; + XmlName = 'SLCASetup'; + + textelement(SetupID) + { + } + textelement(AcceptTransDate) + { + } + textelement(ARHoldingAcct) + { + } + textelement(ARHoldingSub) + { + } + textelement(CurrPerNbr) + { + } + textelement(PastStartDate) + { + } + textelement(PerNbr) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLCASetup: Record "SL CASetup"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLCASetup.SetupId := SetupID; + Evaluate(SLCASetup.AcceptTransDate, AcceptTransDate); + SLCASetup.ARHoldingAcct := ARHoldingAcct; + SLCASetup.ARHoldingSub := ARHoldingSub; + SLCASetup.CurrPerNbr := CurrPerNbr; + Evaluate(SLCASetup.PastStartDate, PastStartDate); + SLCASetup.PerNbr := PerNbr; + SLCASetup.Insert(true); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLCASetup.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLCASetup: Record "SL CASetup"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLCashAcctData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLCashAcctData.XmlPort.al new file mode 100644 index 0000000000..a13bdbf51e --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLCashAcctData.XmlPort.al @@ -0,0 +1,93 @@ +// ------------------------------------------------------------------------------------------------ +// 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 147635 "SL CashAcct Data" +{ + Caption = 'SL CashAcct data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL CashAcct"; "SL CashAcct") + { + AutoSave = false; + XmlName = 'SLCashAcct'; + + textelement(CpnyID) + { + } + textelement(BankAcct) + { + } + textelement(BankSub) + { + } + textelement(AcceptGLUpdates) + { + } + textelement(AcctNbr) + { + } + textelement(Active) + { + } + textelement(AddrID) + { + } + textelement(CashAcctName) + { + } + textelement(transitnbr) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLCashAcct: Record "SL CashAcct"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLCashAcct.CpnyID := CpnyID; + SLCashAcct.BankAcct := BankAcct; + SLCashAcct.BankSub := BankSub; + Evaluate(SLCashAcct.AcceptGLUpdates, AcceptGLUpdates); + SLCashAcct.AcctNbr := AcctNbr; + Evaluate(SLCashAcct.Active, Active); + SLCashAcct.AddrID := AddrID; + SLCashAcct.CashAcctName := CashAcctName; + SLCashAcct.transitnbr := transitnbr; + SLCashAcct.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLCashAcct.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLCashAcct: Record "SL CashAcct"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLCashManagerMigratorTests.CodeUnit.al b/Apps/W1/HybridSL/test/src/SLCashManagerMigratorTests.CodeUnit.al new file mode 100644 index 0000000000..1d9e0436d6 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLCashManagerMigratorTests.CodeUnit.al @@ -0,0 +1,196 @@ +// ------------------------------------------------------------------------------------------------ +// 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.Bank.BankAccount; +using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Finance.GeneralLedger.Journal; +using System.TestLibraries.Utilities; + +codeunit 147604 "SL Cash Manager Migrator Tests" +{ + EventSubscriberInstance = Manual; + Subtype = Test; + TestPermissions = Disabled; + + var + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + Assert: Codeunit "Library Assert"; + SLTestHelperFunctions: Codeunit "SL Test Helper Functions"; + IsInitialized: Boolean; + + [Test] + procedure TestSLCreateBankAccount() + var + SLCashAcct: Record "SL CashAcct"; + SLCashManagerMigrator: Codeunit "SL Cash Manager Migrator"; + BankAccountInstream: InStream; + ExpectedBankAccountData: XmlPort "SL BC Bank Account Data"; + TempBankAccount: Record "Bank Account" temporary; + begin + // [Scenario] Cash Account to Bank Account migration + Initialize(); + SLTestHelperFunctions.CreateConfigurationSettings(); + + // Enable Cash Management Module settings + SLCompanyAdditionalSettings.GetSingleInstance(); + SLCompanyAdditionalSettings.Validate("Migrate Cash Manager Module", true); + SLCompanyAdditionalSettings.Modify(); + Commit(); + + // [Given] SL data + SLTestHelperFunctions.ImportSLAddressData(); + SLTestHelperFunctions.ImportSLCashAcctData(); + + // [When] Cash Account exist, create Bank Account + SLCashAcct.SetRange(CpnyID, CompanyName()); + SLCashAcct.SetRange(Active, 1); + SLCashAcct.FindSet(); + repeat + // Run Create Bank Account procedure + SLCashManagerMigrator.CreateBankAccount(SLCashAcct); + until SLCashAcct.Next() = 0; + + // [Then] Verify Bank Account master data + SLTestHelperFunctions.GetInputStreamFromResource('datasets/results/SLBCBankAccount.csv', BankAccountInstream); + ExpectedBankAccountData.SetSource(BankAccountInstream); + ExpectedBankAccountData.Import(); + ExpectedBankAccountData.GetExpectedBankAccounts(TempBankAccount); + ValidateBankAccountData(TempBankAccount); + end; + + [Test] + procedure TestSLCreateBankTransactions() + var + SLCashAcct: Record "SL CashAcct"; + SLCashManagerMigrator: Codeunit "SL Cash Manager Migrator"; + SLFiscalPeriods: Codeunit "SL Fiscal Periods"; + SLPopulateFiscalPeriods: Codeunit "SL Populate Fiscal Periods"; + BankTransactionInstream: InStream; + SLExpectedBCGenJournalLineData: XmlPort "SL BC Gen. Journal Line Data"; + TempBankAccount: Record "Bank Account" temporary; + TempGenJournalLine: Record "Gen. Journal Line" temporary; + begin + // [Scenario] Cash Account to Bank Account migration + Initialize(); + SLTestHelperFunctions.ClearAccountTableData(); + SLTestHelperFunctions.CreateConfigurationSettings(); + + // Import supporting test data + SLTestHelperFunctions.ImportSLFlexDefData(); + SLTestHelperFunctions.ImportSLSegmentsData(); + SLTestHelperFunctions.ImportDimensionData(); + SLTestHelperFunctions.ImportDimensionValueData(); + SLTestHelperFunctions.ImportSLAccountStagingData(); + SLTestHelperFunctions.ImportGLAccountData(); + SLTestHelperFunctions.ImportSLGLSetupData12Periods(); + SLPopulateFiscalPeriods.CreateSLFiscalPeriodsFromGLSetup(); + Commit(); + SLFiscalPeriods.MoveStagingData(); + + // Enable Cash Management Module settings + SLCompanyAdditionalSettings.GetSingleInstance(); + SLCompanyAdditionalSettings.Validate("Migrate Cash Manager Module", true); + SLCompanyAdditionalSettings.Validate("Migrate Only CashAcct Master", false); + SLCompanyAdditionalSettings.Validate("Skip Posting Account Batches", true); + SLCompanyAdditionalSettings.Modify(); + Commit(); + + // [Given] SL data + SLTestHelperFunctions.ImportSLAddressData(); + SLTestHelperFunctions.ImportSLCashAcctData(); + SLTestHelperFunctions.ImportSLCASetupData(); + SLTestHelperFunctions.ImportSLCashSumDData(); + + // [When] Cash Account exist, create Bank Account + SLCashAcct.SetRange(CpnyID, CompanyName()); + SLCashAcct.SetRange(Active, 1); + SLCashAcct.FindSet(); + repeat + // Run Create Bank Account procedure + SLCashManagerMigrator.CreateBankAccount(SLCashAcct); + if not SLCompanyAdditionalSettings.GetMigrateOnlyCashAcctMaster() then + // Run Create Bank Transactions procedure + SLCashManagerMigrator.CreateBankTransactions(SLCashAcct); + until SLCashAcct.Next() = 0; + + // [Then] Verify Bank Account General Journal Line data + SLTestHelperFunctions.GetInputStreamFromResource('datasets/results/SLBCGenJournalLineSLCASH.csv', BankTransactionInstream); + SLExpectedBCGenJournalLineData.SetSource(BankTransactionInstream); + SLExpectedBCGenJournalLineData.Import(); + SLExpectedBCGenJournalLineData.GetExpectedGenJournalLines(TempGenJournalLine); + ValidateBankGenJournalLineData(TempGenJournalLine); + end; + + procedure ValidateBankAccountData(var TempBankAccount: Record "Bank Account" temporary) + var + BankAccount: Record "Bank Account"; + begin + TempBankAccount.Reset(); + TempBankAccount.FindSet(); + repeat + Assert.IsTrue(BankAccount.Get(TempBankAccount."No."), 'Bank Account does not exist in BC' + ' (Bank Account: ' + TempBankAccount."No." + ')'); + Assert.AreEqual(TempBankAccount.Name, BankAccount.Name, 'Bank Account Name does not match for Bank Account: ' + TempBankAccount."No."); + Assert.AreEqual(TempBankAccount."Bank Account No.", BankAccount."Bank Account No.", 'Bank Account No. does not match for Bank Account: ' + TempBankAccount."No."); + Assert.AreEqual(TempBankAccount."Bank Acc. Posting Group", BankAccount."Bank Acc. Posting Group", 'Bank Acc. Posting Group does not match for Bank Account: ' + TempBankAccount."No."); + Assert.AreEqual(TempBankAccount."Transit No.", BankAccount."Transit No.", 'Transit No. does not match for Bank Account: ' + TempBankAccount."No."); + Assert.AreEqual(TempBankAccount.Address, BankAccount.Address, 'Address does not match for Bank Account: ' + TempBankAccount."No."); + Assert.AreEqual(TempBankAccount."Address 2", BankAccount."Address 2", 'Address 2 does not match for Bank Account: ' + TempBankAccount."No."); + Assert.AreEqual(TempBankAccount."City", BankAccount."City", 'City does not match for Bank Account: ' + TempBankAccount."No."); + Assert.AreEqual(TempBankAccount.Contact, BankAccount.Contact, 'Contact does not match for Bank Account: ' + TempBankAccount."No."); + Assert.AreEqual(TempBankAccount."Phone No.", BankAccount."Phone No.", 'Phone No. does not match for Bank Account: ' + TempBankAccount."No."); + Assert.AreEqual(TempBankAccount."Country/Region Code", BankAccount."Country/Region Code", 'Country/Region Code does not match for Bank Account: ' + TempBankAccount."No."); + Assert.AreEqual(TempBankAccount."Fax No.", BankAccount."Fax No.", 'Fax No. does not match for Bank Account: ' + TempBankAccount."No."); + Assert.AreEqual(TempBankAccount."Post Code", BankAccount."Post Code", 'Post Code does not match for Bank Account: ' + TempBankAccount."No."); + Assert.AreEqual(TempBankAccount.County, BankAccount.County, 'County (State) does not match for Bank Account: ' + TempBankAccount."No."); + until TempBankAccount.Next() = 0; + end; + + procedure ValidateBankGenJournalLineData(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", 'SLCASH'); + TempGenJournalLine.FindSet(); + repeat + Assert.IsTrue(GenJournalLine.Get(TempGenJournalLine."Journal Template Name", TempGenJournalLine."Journal Batch Name", TempGenJournalLine."Line No."), 'Bank Account 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 Bank Account Journal Line (' + Format(TempGenJournalLine."Line No.") + ')'); + Assert.AreEqual(GenJournalLine.Amount, TempGenJournalLine.Amount, 'Amount does not match for Bank Account Journal Line (' + Format(TempGenJournalLine."Line No.") + ')'); + Assert.AreEqual(GenJournalLine."Debit Amount", TempGenJournalLine."Debit Amount", 'Debit Amount does not match for Bank Account Journal Line (' + Format(TempGenJournalLine."Line No.") + ')'); + Assert.AreEqual(GenJournalLine."Credit Amount", TempGenJournalLine."Credit Amount", 'Credit Amount does not match for Bank Account Journal Line (' + Format(TempGenJournalLine."Line No.") + ')'); + until TempGenJournalLine.Next() = 0; + end; + + local procedure Initialize() + var + BankAccount: Record "Bank Account"; + GLAccount: Record "G/L Account"; + SLAddress: Record "SL Address"; + SLCASetup: Record "SL CASetup"; + SLCashAcct: Record "SL CashAcct"; + SLCashSumD: Record "SL CashSumD"; + SLPeriodListWorkTable: Record "SL Period List Work Table"; + begin + // Delete/empty buffer tables + SLCashAcct.DeleteAll(); + SLAddress.DeleteAll(); + BankAccount.DeleteAll(); + SLCASetup.DeleteAll(); + SLCashSumD.DeleteAll(); + + if IsInitialized then + exit; + + // Empty BC tables + GLAccount.DeleteAll(); + + // Import supporting BC data + SLTestHelperFunctions.ImportGLAccountData(); + Commit(); + IsInitialized := true; + end; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLCashSumDData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLCashSumDData.XmlPort.al new file mode 100644 index 0000000000..6ba2c49b3c --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLCashSumDData.XmlPort.al @@ -0,0 +1,85 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +xmlport 147638 "SL CashSumD Data" +{ + Caption = 'SL CashSumD data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL CashSumD"; "SL CashSumD") + { + AutoSave = false; + XmlName = 'SLCashSumD'; + + textelement(CpnyID) + { + } + textelement(BankAcct) + { + } + textelement(BankSub) + { + } + textelement(PerNbr) + { + } + textelement(TranDate) + { + } + textelement(Disbursements) + { + } + textelement(Receipts) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLCashSumD: Record "SL CashSumD"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLCashSumD.CpnyID := CpnyID; + SLCashSumD.BankAcct := BankAcct; + SLCashSumD.BankSub := BankSub; + SLCashSumD.PerNbr := PerNbr; + Evaluate(SLCashSumD.TranDate, TranDate); + Evaluate(SLCashSumD.Disbursements, Disbursements); + Evaluate(SLCashSumD.Receipts, Receipts); + SLCashSumD.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLCashSumD.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLCashSumD: Record "SL CashSumD"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLCompanyAdditionalSettings.XmlPort.al b/Apps/W1/HybridSL/test/src/SLCompanyAdditionalSettings.XmlPort.al index 3fda37c1a3..a91c361daa 100644 --- a/Apps/W1/HybridSL/test/src/SLCompanyAdditionalSettings.XmlPort.al +++ b/Apps/W1/HybridSL/test/src/SLCompanyAdditionalSettings.XmlPort.al @@ -131,7 +131,6 @@ xmlport 147612 "SL Company Additional Settings" } textelement(IncludePlanStatusProjects) { - MinOccurs = Once; } textelement(IncludeHoldStatusResources) { diff --git a/Apps/W1/HybridSL/test/src/SLCompanyMigrationSettings.Xmlport.al b/Apps/W1/HybridSL/test/src/SLCompanyMigrationSettings.Xmlport.al new file mode 100644 index 0000000000..1e0730bd73 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLCompanyMigrationSettings.Xmlport.al @@ -0,0 +1,91 @@ +// ------------------------------------------------------------------------------------------------ +// 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 147624 "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; + + // procedure GetExpectedCompanyMigrationSettings(var NewTempCompanyMigrationSettings: Record "SL Company Migration Settings" temporary) + // begin + // if TempCompanyMigrationSettings.FindSet() then begin + // repeat + // NewTempCompanyMigrationSettings.Copy(TempCompanyMigrationSettings); + // NewTempCompanyMigrationSettings.Insert(); + // until TempCompanyMigrationSettings.Next() = 0; + // end; + // end; + + var + CaptionRow: Boolean; + SLCompanyMigrationSettings: Record "SL Company Migration Settings"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLINUnitData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLINUnitData.XmlPort.al new file mode 100644 index 0000000000..acbb63384e --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLINUnitData.XmlPort.al @@ -0,0 +1,85 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DataMigration.SL; + +xmlport 147647 "SL INUnit Data" +{ + Caption = 'SL INUnit data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL INUnit"; "SL INUnit") + { + AutoSave = false; + XmlName = 'SLINUnit'; + + textelement(UnitType) + { + } + textelement(ClassID) + { + } + textelement(InvtID) + { + } + textelement(FromUnit) + { + } + textelement(ToUnit) + { + } + textelement(CnvFact) + { + } + textelement(MultDiv) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLINUnit: Record "SL INUnit"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + Evaluate(SLINUnit.UnitType, UnitType); + SLINUnit.ClassID := ClassID; + SLINUnit.InvtID := InvtID; + SLINUnit.FromUnit := FromUnit; + SLINUnit.ToUnit := ToUnit; + Evaluate(SLINUnit.CnvFact, CnvFact); + SLINUnit.MultDiv := MultDiv; + SLINUnit.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLINUnit.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLINUnit: Record "SL INUnit"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLInventoryData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLInventoryData.XmlPort.al index 5b99547fb0..d56fe45546 100644 --- a/Apps/W1/HybridSL/test/src/SLInventoryData.XmlPort.al +++ b/Apps/W1/HybridSL/test/src/SLInventoryData.XmlPort.al @@ -16,7 +16,7 @@ xmlport 147619 "SL Inventory Data" { textelement(root) { - tableelement("SL Inventory"; "SL Inventory") + tableelement("SL Inventory"; "SL Inventory Buffer") { AutoSave = false; XmlName = 'SLInventory'; @@ -74,7 +74,7 @@ xmlport 147619 "SL Inventory Data" trigger OnBeforeInsertRecord() var - SLInventory: Record "SL Inventory"; + SLInventory: Record "SL Inventory Buffer"; begin if CaptionRow then begin CaptionRow := false; @@ -109,5 +109,5 @@ xmlport 147619 "SL Inventory Data" var CaptionRow: Boolean; - SLInventory: Record "SL Inventory"; + SLInventory: Record "SL Inventory Buffer"; } \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLItemMigratorTests.CodeUnit.al b/Apps/W1/HybridSL/test/src/SLItemMigratorTests.CodeUnit.al index e00be9625d..02ec93cc5f 100644 --- a/Apps/W1/HybridSL/test/src/SLItemMigratorTests.CodeUnit.al +++ b/Apps/W1/HybridSL/test/src/SLItemMigratorTests.CodeUnit.al @@ -5,13 +5,20 @@ namespace Microsoft.DataMigration.SL; using Microsoft.Inventory.Item; +using Microsoft.Inventory.Journal; +using Microsoft.Inventory.Ledger; +using Microsoft.Inventory.Location; using System.Integration; using System.TestLibraries.Utilities; codeunit 147610 "SL Item Migrator Tests" { + // [FEATURE] [SL Data Migration] + EventSubscriberInstance = Manual; Subtype = Test; + TestType = IntegrationTest; + Permissions = tabledata "Item Ledger Entry" = rimd; TestPermissions = Disabled; var @@ -23,11 +30,11 @@ codeunit 147610 "SL Item Migrator Tests" [Test] procedure TestSLItemImportClassMigrationOn() var - SLInventory: Record "SL Inventory"; + SLInventory: Record "SL Inventory Buffer"; TempItem: Record Item temporary; ItemDataMigrationFacade: Codeunit "Item Data Migration Facade"; SLItemMigrator: Codeunit "SL Item Migrator"; - SLExpectedBCItemData: XmlPort "SL BC Item Data"; + SLExpectedBCItemData: XmlPort "SL BC Item Data Expected"; SLInventoryInstream: InStream; BCItemInstream: InStream; begin @@ -35,9 +42,6 @@ codeunit 147610 "SL Item Migrator Tests" // [Given] SL data Initialize(); - SLTestHelperFunctions.ClearBCItemTableData(); - SLTestHelperFunctions.DeleteAllSettings(); - SLTestHelperFunctions.CreateConfigurationSettings(); // Enable Inventory Module and Product Class settings SLCompanyAdditionalSettings.GetSingleInstance(); @@ -68,11 +72,11 @@ codeunit 147610 "SL Item Migrator Tests" [Test] procedure TestSLItemImportClassMigrationOff() var - SLInventory: Record "SL Inventory"; + SLInventory: Record "SL Inventory Buffer"; TempItem: Record Item temporary; ItemDataMigrationFacade: Codeunit "Item Data Migration Facade"; SLItemMigrator: Codeunit "SL Item Migrator"; - SLExpectedBCItemData: XmlPort "SL BC Item Data"; + SLExpectedBCItemData: XmlPort "SL BC Item Data Expected"; SLInventoryInstream: InStream; BCItemInstream: InStream; begin @@ -80,9 +84,6 @@ codeunit 147610 "SL Item Migrator Tests" // [Given] SL data Initialize(); - SLTestHelperFunctions.ClearBCItemTableData(); - SLTestHelperFunctions.DeleteAllSettings(); - SLTestHelperFunctions.CreateConfigurationSettings(); // Enable Inventory Module and Product Class settings SLCompanyAdditionalSettings.GetSingleInstance(); @@ -99,7 +100,6 @@ codeunit 147610 "SL Item Migrator Tests" SLInventory.FindSet(); repeat SLItemMigrator.MigrateItem(ItemDataMigrationFacade, SLInventory.RecordId); - SLItemMigrator.MigrateItemPostingGroups(ItemDataMigrationFacade, SLInventory.RecordId, true); until SLInventory.Next() = 0; // [Then] Verify Item master data @@ -110,6 +110,72 @@ codeunit 147610 "SL Item Migrator Tests" ValidateItemData(TempItem); end; + [Test] + procedure TestSLItemJournalLines() + var + ItemLedgerEntry: Record "Item Ledger Entry"; + SLInventory: Record "SL Inventory Buffer"; + SLItemSiteBuffer: Record "SL ItemSite Buffer"; + SLMigrationWarning: Record "SL Migration Warnings"; + TempItemJournalLine: Record "Item Journal Line" temporary; + ItemDataMigrationFacade: Codeunit "Item Data Migration Facade"; + SLHelperFunctions: Codeunit "SL Helper Functions"; + SLItemMigrator: Codeunit "SL Item Migrator"; + SLInventoryInstream: InStream; + ItemJournalLineInstream: InStream; + begin + // [Scenario] SL Inventory Quantity and Cost migration to Item Journal Lines + + // [Given] SL data + Initialize(); + + // Enable Inventory Module and Product Class settings + SLCompanyAdditionalSettings.GetSingleInstance(); + SLCompanyAdditionalSettings.Validate("Migrate Inventory Module", true); + SLCompanyAdditionalSettings.Validate("Migrate Only Inventory Master", false); + SLCompanyAdditionalSettings.Validate("Migrate Item Classes", true); + SLCompanyAdditionalSettings.Validate("Skip Posting Item Batches", false); + SLCompanyAdditionalSettings.Modify(); + Commit(); + + // [When] Inventory data is imported + SLTestHelperFunctions.GetInputStreamFromResource('datasets/input/SLTables/SLInventoryForItemJournalTest.csv', SLInventoryInstream); + PopulateInventoryBufferTable(SLInventoryInstream); + SLTestHelperFunctions.ImportSLItemSiteBufferData(); + + // Run Inventory related migration procedures + SLInventory.FindSet(); + repeat + SLItemMigrator.MigrateItem(ItemDataMigrationFacade, SLInventory.RecordId); + SLItemMigrator.MigrateItemPostingGroups(ItemDataMigrationFacade, SLInventory.RecordId, true); + SLItemMigrator.MigrateInventoryTransactions(ItemDataMigrationFacade, SLInventory.RecordId, true); + until SLInventory.Next() = 0; + + SLHelperFunctions.PostGLTransactions(); + Assert.RecordCount(SLMigrationWarning, 0); + + // [THEN] Item Ledger Entries exist + Assert.IsTrue(ItemLedgerEntry.Count() > 0, 'No Item Ledger Entries were created'); + + // Verify Item Ledger Quantity matches SL ItemSite on hand quantity + SLInventory.FindSet(); + repeat + SLItemSiteBuffer.Reset(); + SLItemSiteBuffer.SetFilter(InvtID, CopyStr(SLInventory.InvtID, 1, MaxStrLen(SLItemSiteBuffer.InvtID))); + SLItemSiteBuffer.SetFilter(QtyOnHand, '<> 0'); + SLItemSiteBuffer.FindSet(); + repeat + ItemLedgerEntry.Reset(); + ItemLedgerEntry.SetFilter("Item No.", CopyStr(SLItemSiteBuffer.InvtID, 1, MaxStrLen(ItemLedgerEntry."Item No."))); + ItemLedgerEntry.SetFilter("Location Code", SLItemSiteBuffer.SiteId); + ItemLedgerEntry.FindSet(); + + Assert.AreEqual(SLItemSiteBuffer.QtyOnHand, ItemLedgerEntry.Quantity, 'Quantity does not match for Item (' + ItemLedgerEntry."Item No." + ')' + ' at Location (' + ItemLedgerEntry."Location Code" + ')'); + + until SLItemSiteBuffer.Next() = 0; + until SLInventory.Next() = 0; + end; + local procedure PopulateInventoryBufferTable(var Instream: InStream) begin // Populate Inventory buffer table @@ -142,13 +208,18 @@ codeunit 147610 "SL Item Migrator Tests" local procedure Initialize() var - SLInventory: Record "SL Inventory"; + SLInventory: Record "SL Inventory Buffer"; SLProductClass: Record "SL ProductClass"; begin // Delete/empty buffer tables SLInventory.DeleteAll(); SLProductClass.DeleteAll(); + SLTestHelperFunctions.ClearBCItemTableData(); + SLTestHelperFunctions.DeleteAllSettings(); + SLTestHelperFunctions.CreateConfigurationSettings(); + SLTestHelperFunctions.ImportSLProductClassData(); + if IsInitialized then exit; @@ -158,10 +229,32 @@ codeunit 147610 "SL Item Migrator Tests" SLTestHelperFunctions.ImportGenBusinessPostingGroupData(); SLTestHelperFunctions.ImportGenProductPostingGroupData(); SLTestHelperFunctions.ImportSLINSetupData(); - SLTestHelperFunctions.ImportSLProductClassData(); SLTestHelperFunctions.ImportItemTrackingCodeData(); + SLTestHelperFunctions.ImportSLSiteData(); + CreateLocations(); Commit(); IsInitialized := true; end; -} + local procedure CreateLocations() + var + SLSite: Record "SL Site"; + Location: Record Location; + begin + if SLSite.FindSet() then + repeat + if not Location.Get(SLSite.SiteId) then begin + Clear(Location); + Location.Validate("Code", SLSite.SiteId); + Location.Name := SLSite.Name; + Location.Address := SLSite.Addr1; + Location."Address 2" := CopyStr(SLSite.Addr2, 1, 50); + Location.Validate(City, SLSite.City); + Location."Phone No." := SLSite.Phone; + Location."Fax No." := SLSite.Fax; + Location.Validate("Post Code", SLSite.Zip); + Location.Insert(true); + end; + until SLSite.Next() = 0; + end; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLItemSiteBufferData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLItemSiteBufferData.XmlPort.al new file mode 100644 index 0000000000..e450e46826 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLItemSiteBufferData.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 147639 "SL ItemSite Buffer Data" +{ + Caption = 'SL ItemSite Buffer data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL ItemSite Buffer"; "SL ItemSite Buffer") + { + AutoSave = false; + XmlName = 'SLItemSiteBuffer'; + + textelement(InvtID) + { + } + textelement(SiteID) + { + } + textelement(AvgCost) + { + } + textelement(CpnyID) + { + } + textelement(QtyOnHand) + { + } + textelement(StdCost) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLItemSite: Record "SL ItemSite Buffer"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLItemSite.InvtID := InvtID; + SLItemSite.SiteID := SiteID; + Evaluate(SLItemSite.AvgCost, AvgCost); + SLItemSite.CpnyID := CopyStr(CpnyID, 1, MaxStrLen(SLItemSite.CpnyID)); + Evaluate(SLItemSite.QtyOnHand, QtyOnHand); + Evaluate(SLItemSite.StdCost, StdCost); + SLItemSite.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLItemSite.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLItemSite: Record "SL ItemSite Buffer"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLPOMigratorTests.CodeUnit.al b/Apps/W1/HybridSL/test/src/SLPOMigratorTests.CodeUnit.al new file mode 100644 index 0000000000..34946690d9 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLPOMigratorTests.CodeUnit.al @@ -0,0 +1,171 @@ +// ------------------------------------------------------------------------------------------------ +// 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.Inventory.Item; +using Microsoft.Purchases.Document; +using System.TestLibraries.Utilities; + +codeunit 147605 "SL PO Migrator Tests" +{ + EventSubscriberInstance = Manual; + Subtype = Test; + TestPermissions = Disabled; + + var + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + Assert: Codeunit "Library Assert"; + SLTestHelperFunctions: Codeunit "SL Test Helper Functions"; + IsInitialized: Boolean; + + [Test] + procedure TestSLCreateOpenPurchaseOrders() + var + TempExpectedPurchaseHeader: Record "Purchase Header" temporary; + TempExpectedPurchaseLine: Record "Purchase Line" temporary; + SLPurchOrdBuffer: Record "SL PurchOrd Buffer"; + SLPOMigrator: Codeunit "SL PO Migrator"; + ExpectedPurchaseHeaderData: XmlPort "SL BC Purch. Header Data Temp"; + ExpectedPurchaseLineData: XmlPort "SL BC Purchase Line Data"; + PurchaseHeaderInstream: InStream; + PurchaseLineInstream: InStream; + begin + // [Scenario] Open purchase order migration from SL to BC + Initialize(); + + // Enable Open Purchase Order Migration + SLCompanyAdditionalSettings.GetSingleInstance(); + SLCompanyAdditionalSettings.Validate("Migrate Payables Module", true); + SLCompanyAdditionalSettings.Validate("Migrate Vendor Classes", true); + SLCompanyAdditionalSettings.Validate("Migrate Inventory Module", true); + SLCompanyAdditionalSettings.Validate("Migrate Open POs", true); + SLCompanyAdditionalSettings.Modify(); + Commit(); + + // [Given] Open SL purchase order header and detail data + SLTestHelperFunctions.ImportSLPurchOrdBufferData(); + SLTestHelperFunctions.ImportSLPurOrdDetBufferData(); + + // [When] SL PurchOrd record exist, create Purchase Header record + SLPurchOrdBuffer.SetRange(CpnyID, CopyStr(CompanyName(), 1, MaxStrLen(SLPurchOrdBuffer.CpnyID))); + SLPurchOrdBuffer.SetRange(POType, 'OR'); // Regular Order + SLPurchOrdBuffer.SetFilter(Status, 'O|P'); // Open Order | Purchase Order + SLPurchOrdBuffer.SetFilter(VendID, '<>%1', ''); + if not SLPurchOrdBuffer.IsEmpty() then + SLPOMigrator.MigrateOpenPurchaseOrderData(); + + // [Then] Verify Purchase Header and Purchase Line records are created in BC + SLTestHelperFunctions.GetInputStreamFromResource('datasets/results/SLBCPurchaseHeader.csv', PurchaseHeaderInstream); + ExpectedPurchaseHeaderData.SetSource(PurchaseHeaderInstream); + ExpectedPurchaseHeaderData.Import(); + ExpectedPurchaseHeaderData.GetExpectedPurchaseHeaders(TempExpectedPurchaseHeader); + ValidatePurchaseHeaderData(TempExpectedPurchaseHeader); + + SLTestHelperFunctions.GetInputStreamFromResource('datasets/results/SLBCPurchaseLine.csv', PurchaseLineInstream); + ExpectedPurchaseLineData.SetSource(PurchaseLineInstream); + ExpectedPurchaseLineData.Import(); + ExpectedPurchaseLineData.GetExpectedPurchaseLines(TempExpectedPurchaseLine); + ValidatePurchaseLineData(TempExpectedPurchaseLine); + end; + + local procedure ValidatePurchaseHeaderData(var TempExpectedPurchaseHeader: Record "Purchase Header" temporary) + var + PurchaseHeader: Record "Purchase Header"; + begin + TempExpectedPurchaseHeader.Reset(); + TempExpectedPurchaseHeader.FindSet(); + repeat + Assert.IsTrue(PurchaseHeader.Get(TempExpectedPurchaseHeader."Document Type", TempExpectedPurchaseHeader."No."), + 'Purchase Header does not exist in BC (Document Type: ' + Format(TempExpectedPurchaseHeader."Document Type") + ', No.: ' + TempExpectedPurchaseHeader."No." + ')'); + + Assert.AreEqual(TempExpectedPurchaseHeader."Buy-from Vendor No.", PurchaseHeader."Buy-from Vendor No.", 'Buy-from Vendor No. does not match for Purchase Header (' + TempExpectedPurchaseHeader."No." + ')'); + Assert.AreEqual(TempExpectedPurchaseHeader."Pay-to Vendor No.", PurchaseHeader."Pay-to Vendor No.", 'Pay-to Vendor No. does not match for Purchase Header (' + TempExpectedPurchaseHeader."No." + ')'); + Assert.AreEqual(TempExpectedPurchaseHeader."Ship-to Name", PurchaseHeader."Ship-to Name", 'Ship-to Name does not match for Purchase Header (' + TempExpectedPurchaseHeader."No." + ')'); + Assert.AreEqual(TempExpectedPurchaseHeader."Ship-to Address", PurchaseHeader."Ship-to Address", 'Ship-to Address does not match for Purchase Header (' + TempExpectedPurchaseHeader."No." + ')'); + Assert.AreEqual(TempExpectedPurchaseHeader."Ship-to Address 2", PurchaseHeader."Ship-to Address 2", 'Ship-to Address 2 does not match for Purchase Header (' + TempExpectedPurchaseHeader."No." + ')'); + Assert.AreEqual(TempExpectedPurchaseHeader."Ship-to City", PurchaseHeader."Ship-to City", 'Ship-to City does not match for Purchase Header (' + TempExpectedPurchaseHeader."No." + ')'); + Assert.AreEqual(TempExpectedPurchaseHeader."Order Date", PurchaseHeader."Order Date", 'Order Date does not match for Purchase Header (' + TempExpectedPurchaseHeader."No." + ')'); + Assert.AreEqual(TempExpectedPurchaseHeader."Posting Date", PurchaseHeader."Posting Date", 'Posting Date does not match for Purchase Header (' + TempExpectedPurchaseHeader."No." + ')'); + Assert.AreEqual(TempExpectedPurchaseHeader."Posting Description", PurchaseHeader."Posting Description", 'Posting Description does not match for Purchase Header (' + TempExpectedPurchaseHeader."No." + ')'); + Assert.AreEqual(TempExpectedPurchaseHeader."Prices Including VAT", PurchaseHeader."Prices Including VAT", 'Prices Including VAT does not match for Purchase Header (' + TempExpectedPurchaseHeader."No." + ')'); + Assert.AreEqual(TempExpectedPurchaseHeader."Ship-to Post Code", PurchaseHeader."Ship-to Post Code", 'Ship-to Post Code does not match for Purchase Header (' + TempExpectedPurchaseHeader."No." + ')'); + Assert.AreEqual(TempExpectedPurchaseHeader."Ship-to County", PurchaseHeader."Ship-to County", 'Ship-to State/County does not match for Purchase Header (' + TempExpectedPurchaseHeader."No." + ')'); + Assert.AreEqual(TempExpectedPurchaseHeader."Ship-to Country/Region Code", PurchaseHeader."Ship-to Country/Region Code", 'Ship-to Country/Region Code does not match for Purchase Header (' + TempExpectedPurchaseHeader."No." + ')'); + Assert.AreEqual(TempExpectedPurchaseHeader."Document Date", PurchaseHeader."Document Date", 'Document Date does not match for Purchase Header (' + TempExpectedPurchaseHeader."No." + ')'); + Assert.AreEqual(TempExpectedPurchaseHeader."Posting No. Series", PurchaseHeader."Posting No. Series", 'Posting No. Series does not match for Purchase Header (' + TempExpectedPurchaseHeader."No." + ')'); + Assert.AreEqual(TempExpectedPurchaseHeader."Receiving No. Series", PurchaseHeader."Receiving No. Series", 'Receiving No. Series does not match for Purchase Header (' + TempExpectedPurchaseHeader."No." + ')'); + Assert.AreEqual(TempExpectedPurchaseHeader.Status, PurchaseHeader.Status, 'Status does not match for Purchase Header (' + TempExpectedPurchaseHeader."No." + ')'); + until TempExpectedPurchaseHeader.Next() = 0; + end; + + local procedure ValidatePurchaseLineData(var TempExpectedPurchaseLine: Record "Purchase Line" temporary) + var + PurchaseLine: Record "Purchase Line"; + begin + TempExpectedPurchaseLine.Reset(); + TempExpectedPurchaseLine.FindSet(); + repeat + Assert.IsTrue(PurchaseLine.Get( + TempExpectedPurchaseLine."Document Type", + TempExpectedPurchaseLine."Document No.", + TempExpectedPurchaseLine."Line No."), + 'Purchase Line does not exist in BC (Document Type: ' + + Format(TempExpectedPurchaseLine."Document Type") + + ', Document No.: ' + TempExpectedPurchaseLine."Document No." + + ', Line No.: ' + Format(TempExpectedPurchaseLine."Line No.") + ')'); + + Assert.AreEqual(TempExpectedPurchaseLine."Buy-from Vendor No.", PurchaseLine."Buy-from Vendor No.", 'Buy-from Vendor No. does not match for Purchase Line (' + TempExpectedPurchaseLine."Document No." + '/' + Format(TempExpectedPurchaseLine."Line No.") + ')'); + Assert.AreEqual(TempExpectedPurchaseLine."No.", PurchaseLine."No.", 'No. does not match for Purchase Line (' + TempExpectedPurchaseLine."Document No." + '/' + Format(TempExpectedPurchaseLine."Line No.") + ')'); + Assert.AreEqual(TempExpectedPurchaseLine.Description, PurchaseLine.Description, 'Description does not match for Purchase Line (' + TempExpectedPurchaseLine."Document No." + '/' + Format(TempExpectedPurchaseLine."Line No.") + ')'); + Assert.AreEqual(TempExpectedPurchaseLine.Quantity, PurchaseLine.Quantity, 'Quantity does not match for Purchase Line (' + TempExpectedPurchaseLine."Document No." + '/' + Format(TempExpectedPurchaseLine."Line No.") + ')'); + Assert.AreEqual(TempExpectedPurchaseLine."Direct Unit Cost", PurchaseLine."Direct Unit Cost", 'Direct Unit Cost does not match for Purchase Line (' + TempExpectedPurchaseLine."Document No." + '/' + Format(TempExpectedPurchaseLine."Line No.") + ')'); + Assert.AreEqual(TempExpectedPurchaseLine."Unit of Measure Code", PurchaseLine."Unit of Measure Code", 'Unit of Measure Code does not match for Purchase Line (' + TempExpectedPurchaseLine."Document No." + '/' + Format(TempExpectedPurchaseLine."Line No.") + ')'); + until TempExpectedPurchaseLine.Next() = 0; + end; + + local procedure Initialize() + var + GLAccount: Record "G/L Account"; + Item: Record Item; + PurchaseHeader: Record "Purchase Header"; + PurchaseLine: Record "Purchase Line"; + SLPurchOrder: Record "SL PurchOrd Buffer"; + SLPurOrdDet: Record "SL PurOrdDet Buffer"; + SLVendor: Record "SL Vendor"; + SLVendClass: Record "SL VendClass"; + begin + // Delete/empty SL tables + SLPurchOrder.DeleteAll(); + SLPurOrdDet.DeleteAll(); + + // Delete/empty BC tables + PurchaseLine.DeleteAll(); + PurchaseHeader.DeleteAll(); + + if IsInitialized then + exit; + + SLTestHelperFunctions.ClearAccountTableData(); + SLTestHelperFunctions.ClearBCVendorTableData(); + SLTestHelperFunctions.ClearBCItemTableData(); + SLTestHelperFunctions.ClearBCInventoryPostingGroupTableData(); + SLTestHelperFunctions.ClearBCGeneralBusinessPostingGroupTableData(); + SLTestHelperFunctions.ClearBCGenProductPostingGroupTableData(); + SLTestHelperFunctions.DeleteAllSettings(); + SLTestHelperFunctions.CreateConfigurationSettings(); + SLTestHelperFunctions.ImportGLAccountData(); + SLTestHelperFunctions.ImportBCVendorForOpenPOsData(); + SLTestHelperFunctions.ImportBCLocationsForOpenOrdersData(); + SLTestHelperFunctions.ImportBCUnitOfMeasureForOpenOrdersData(); + SLTestHelperFunctions.ImportBCItemForOpenOrderData(); + SLTestHelperFunctions.ImportBCItemUOMForOpenOrdersData(); + SLTestHelperFunctions.ImportBCInventoryPostingGroupData(); + SLTestHelperFunctions.ImportBCGenBusinessPostingGroupData(); + SLTestHelperFunctions.ImportBCGenProductPostingGroupData(); + Commit(); + IsInitialized := true; + end; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLPurOrdDetBufferData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLPurOrdDetBufferData.XmlPort.al new file mode 100644 index 0000000000..490f5a087a --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLPurOrdDetBufferData.XmlPort.al @@ -0,0 +1,130 @@ +// ------------------------------------------------------------------------------------------------ +// 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 147642 "SL PurOrdDet Buffer Data" +{ + Caption = 'SL PurOrdDet Buffer data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL PurOrdDet Buffer"; "SL PurOrdDet Buffer") + { + AutoSave = false; + XmlName = 'SLPurOrdDetBuffer'; + + textelement(PONbr) + { + } + textelement(LineRef) + { + } + textelement(CnvFact) + { + } + textelement(CostReceived) + { + } + textelement(CpnyID) + { + } + textelement(ExtCost) + { + } + textelement(InvtID) + { + } + textelement(LineID) + { + } + textelement(OpenLine) + { + } + textelement(PromDate) + { + } + textelement(PurAcct) + { + } + textelement(PurchaseType) + { + } + textelement(PurchUnit) + { + } + textelement(PurSub) + { + } + textelement(QtyOrd) + { + } + textelement(QtyRcvd) + { + } + textelement(TranDesc) + { + } + textelement(UnitCost) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLPurOrdDetBuffer: Record "SL PurOrdDet Buffer"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLPurOrdDetBuffer.PONbr := PONbr; + SLPurOrdDetBuffer.LineRef := LineRef; + Evaluate(SLPurOrdDetBuffer.CnvFact, CnvFact); + Evaluate(SLPurOrdDetBuffer.CostReceived, CostReceived); + SLPurOrdDetBuffer.CpnyID := CopyStr(CpnyID, 1, MaxStrLen(SLPurOrdDetBuffer.CpnyID)); + Evaluate(SLPurOrdDetBuffer.ExtCost, ExtCost); + SLPurOrdDetBuffer.InvtID := InvtID; + Evaluate(SLPurOrdDetBuffer.LineID, LineID); + Evaluate(SLPurOrdDetBuffer.OpenLine, OpenLine); + if PromDate <> '' then + Evaluate(SLPurOrdDetBuffer.PromDate, PromDate); + SLPurOrdDetBuffer.PurAcct := PurAcct; + SLPurOrdDetBuffer.PurchaseType := PurchaseType; + SLPurOrdDetBuffer.PurchUnit := PurchUnit; + SLPurOrdDetBuffer.PurSub := PurSub; + Evaluate(SLPurOrdDetBuffer.QtyOrd, QtyOrd); + Evaluate(SLPurOrdDetBuffer.QtyRcvd, QtyRcvd); + SLPurOrdDetBuffer.TranDesc := TranDesc; + Evaluate(SLPurOrdDetBuffer.UnitCost, UnitCost); + SLPurOrdDetBuffer.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLPurOrdDetBuffer.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLPurOrdDetBuffer: Record "SL PurOrdDet Buffer"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLPurchOrdBufferData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLPurchOrdBufferData.XmlPort.al new file mode 100644 index 0000000000..13ca3038fb --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLPurchOrdBufferData.XmlPort.al @@ -0,0 +1,125 @@ +// ------------------------------------------------------------------------------------------------ +// 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 147641 "SL PurchOrd Buffer Data" +{ + Caption = 'SL PurchOrd Buffer data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL PurchOrd Buffer"; "SL PurchOrd Buffer") + { + AutoSave = false; + XmlName = 'SLPurchOrdBuffer'; + + textelement(PONbr) + { + } + textelement(CpnyID) + { + } + textelement(POAmt) + { + } + textelement(PODate) + { + } + textelement(POType) + { + } + textelement(RcptTotAmt) + { + } + textelement(ShipAddr1) + { + } + textelement(ShipAddr2) + { + } + textelement(ShipAttn) + { + } + textelement(ShipCity) + { + } + textelement(ShipCountry) + { + } + textelement(ShipName) + { + } + textelement(ShipState) + { + } + textelement(ShipVia) + { + } + textelement(ShipZip) + { + } + textelement(Status) + { + } + textelement(VendID) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLPurchOrdBuffer: Record "SL PurchOrd Buffer"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLPurchOrdBuffer.PONbr := PONbr; + SLPurchOrdBuffer.CpnyID := CopyStr(CpnyID, 1, MaxStrLen(SLPurchOrdBuffer.CpnyID)); + Evaluate(SLPurchOrdBuffer.POAmt, POAmt); + Evaluate(SLPurchOrdBuffer.PODate, PODate); + SLPurchOrdBuffer.POType := POType; + Evaluate(SLPurchOrdBuffer.RcptTotAmt, RcptTotAmt); + SLPurchOrdBuffer.ShipAddr1 := ShipAddr1; + SLPurchOrdBuffer.ShipAddr2 := ShipAddr2; + SLPurchOrdBuffer.ShipAttn := ShipAttn; + SLPurchOrdBuffer.ShipCity := ShipCity; + SLPurchOrdBuffer.ShipCountry := ShipCountry; + SLPurchOrdBuffer.ShipName := ShipName; + SLPurchOrdBuffer.ShipState := ShipState; + SLPurchOrdBuffer.ShipVia := ShipVia; + SLPurchOrdBuffer.ShipZip := ShipZip; + SLPurchOrdBuffer.Status := Status; + SLPurchOrdBuffer.VendID := VendID; + SLPurchOrdBuffer.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLPurchOrdBuffer.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLPurchOrdBuffer: Record "SL PurchOrd Buffer"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLSOHeaderBufferData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLSOHeaderBufferData.XmlPort.al new file mode 100644 index 0000000000..c645ebb7a6 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLSOHeaderBufferData.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 147653 "SL SOHeader Buffer Data" +{ + Caption = 'SL SOHeader Buffer data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL SOHeader Buffer"; "SL SOHeader Buffer") + { + AutoSave = false; + XmlName = 'SLSOHeaderBuffer'; + + textelement(CpnyID) + { + } + textelement(OrdNbr) + { + } + textelement(CustID) + { + } + textelement(OrdDate) + { + } + textelement(ShipAddr1) + { + } + textelement(ShipAddr2) + { + } + textelement(ShipAttn) + { + } + textelement(ShipCity) + { + } + textelement(ShipCmplt) + { + } + textelement(ShipCountry) + { + } + textelement(ShipName) + { + } + textelement(ShipState) + { + } + textelement(ShipViaID) + { + } + textelement(ShipZip) + { + } + textelement(SOTypeID) + { + } + textelement(Status) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLSOHeaderBuffer: Record "SL SOHeader Buffer"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLSOHeaderBuffer.CpnyID := CopyStr(CpnyID, 1, MaxStrLen(SLSOHeaderBuffer.CpnyID)); + SLSOHeaderBuffer.OrdNbr := OrdNbr; + SLSOHeaderBuffer.CustID := CustID; + Evaluate(SLSOHeaderBuffer.OrdDate, OrdDate); + SLSOHeaderBuffer.ShipAddr1 := ShipAddr1; + SLSOHeaderBuffer.ShipAddr2 := ShipAddr2; + SLSOHeaderBuffer.ShipAttn := ShipAttn; + SLSOHeaderBuffer.ShipCity := ShipCity; + Evaluate(SLSOHeaderBuffer.ShipCmplt, ShipCmplt); + SLSOHeaderBuffer.ShipCountry := ShipCountry; + SLSOHeaderBuffer.ShipName := ShipName; + SLSOHeaderBuffer.ShipState := ShipState; + SLSOHeaderBuffer.ShipViaID := ShipViaID; + SLSOHeaderBuffer.ShipZip := ShipZip; + SLSOHeaderBuffer.SOTypeID := SOTypeID; + SLSOHeaderBuffer.Status := Status; + SLSOHeaderBuffer.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLSOHeaderBuffer.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLSOHeaderBuffer: Record "SL SOHeader Buffer"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLSOLineBufferData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLSOLineBufferData.XmlPort.al new file mode 100644 index 0000000000..b5475c3161 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLSOLineBufferData.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 147654 "SL SOLine Buffer Data" +{ + Caption = 'SL SOLine Buffer data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL SOLine Buffer"; "SL SOLine Buffer") + { + AutoSave = false; + XmlName = 'SLSOLineBuffer'; + + textelement(CpnyID) + { + } + textelement(OrdNbr) + { + } + textelement(LineRef) + { + } + textelement(InvtID) + { + } + textelement(QtyBO) + { + } + textelement(SiteID) + { + } + textelement(SlsPrice) + { + } + textelement(UnitDesc) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLSOLineBuffer: Record "SL SOLine Buffer"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLSOLineBuffer.CpnyID := CopyStr(CpnyID, 1, MaxStrLen(SLSOLineBuffer.CpnyID)); + SLSOLineBuffer.OrdNbr := OrdNbr; + SLSOLineBuffer.LineRef := LineRef; + SLSOLineBuffer.InvtID := InvtID; + Evaluate(SLSOLineBuffer.QtyBO, QtyBO); + SLSOLineBuffer.SiteID := SiteID; + Evaluate(SLSOLineBuffer.SlsPrice, SlsPrice); + SLSOLineBuffer.UnitDesc := UnitDesc; + SLSOLineBuffer.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLSOLineBuffer.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLSOLineBuffer: Record "SL SOLine Buffer"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLSOMigratorTests.CodeUnit.al b/Apps/W1/HybridSL/test/src/SLSOMigratorTests.CodeUnit.al new file mode 100644 index 0000000000..6071c722a8 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLSOMigratorTests.CodeUnit.al @@ -0,0 +1,175 @@ +// ------------------------------------------------------------------------------------------------ +// 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.Inventory.Item; +using Microsoft.Sales.Document; +using System.TestLibraries.Utilities; + +codeunit 147651 "SL SO Migrator Tests" +{ + EventSubscriberInstance = Manual; + Subtype = Test; + TestPermissions = Disabled; + + var + SLCompanyAdditionalSettings: Record "SL Company Additional Settings"; + Assert: Codeunit "Library Assert"; + SLTestHelperFunctions: Codeunit "SL Test Helper Functions"; + IsInitialized: Boolean; + + [Test] + procedure TestSLCreateOpenSalesOrders() + var + SLSOHeaderBuffer: Record "SL SOHeader Buffer"; + TempExpectedSalesHeader: Record "Sales Header" temporary; + TempExpectedSalesLine: Record "Sales Line" temporary; + SLSOMigrator: Codeunit "SL SO Migrator"; + ExpectedSalesHeaderData: XmlPort "SL BC Sales Header Data Temp"; + ExpectedSalesLineData: XmlPort "SL BC Sales Line Data Temp"; + SalesHeaderInstream: InStream; + SalesLineInstream: InStream; + begin + // [Scenario] Open sales order migration from SL to BC + Initialize(); + + // Enable Open Sales Order Migration + SLCompanyAdditionalSettings.GetSingleInstance(); + SLCompanyAdditionalSettings.Validate("Migrate Receivables Module", true); + SLCompanyAdditionalSettings.Validate("Migrate Customer Classes", true); + SLCompanyAdditionalSettings.Validate("Migrate Inventory Module", true); + SLCompanyAdditionalSettings.Validate("Migrate Open SOs", true); + SLCompanyAdditionalSettings.Modify(); + Commit(); + + // [Given] Open SL sales order source data + SLTestHelperFunctions.ImportSLSOHeaderBufferData(); + SLTestHelperFunctions.ImportSLSOLineBufferData(); + + // [When] SL SOHeader Buffer records exist, create Sales Header and Sales Line records + SLSOHeaderBuffer.SetRange(CpnyID, CopyStr(CompanyName(), 1, MaxStrLen(SLSOHeaderBuffer.CpnyID))); + SLSOHeaderBuffer.SetFilter(Status, 'O'); + if not SLSOHeaderBuffer.IsEmpty() then + SLSOMigrator.MigrateOpenSalesOrders(); + + // [Then] Verify Sales Header and Sales Line records are created in BC + SLTestHelperFunctions.GetInputStreamFromResource('datasets/results/SLBCSalesHeader.csv', SalesHeaderInstream); + ExpectedSalesHeaderData.SetSource(SalesHeaderInstream); + ExpectedSalesHeaderData.Import(); + ExpectedSalesHeaderData.GetExpectedSalesHeaders(TempExpectedSalesHeader); + ValidateSalesHeaderData(TempExpectedSalesHeader); + + SLTestHelperFunctions.GetInputStreamFromResource('datasets/results/SLBCSalesLine.csv', SalesLineInstream); + ExpectedSalesLineData.SetSource(SalesLineInstream); + ExpectedSalesLineData.Import(); + ExpectedSalesLineData.GetExpectedSalesLines(TempExpectedSalesLine); + ValidateSalesLineData(TempExpectedSalesLine); + end; + + local procedure ValidateSalesHeaderData(var TempExpectedSalesHeader: Record "Sales Header" temporary) + var + SalesHeader: Record "Sales Header"; + begin + TempExpectedSalesHeader.Reset(); + TempExpectedSalesHeader.FindSet(); + repeat + Assert.IsTrue(SalesHeader.Get(TempExpectedSalesHeader."Document Type", TempExpectedSalesHeader."No."), + 'Sales Header does not exist in BC (Document Type: ' + Format(TempExpectedSalesHeader."Document Type") + ', No.: ' + TempExpectedSalesHeader."No." + ')'); + + Assert.AreEqual(TempExpectedSalesHeader."Sell-to Customer No.", SalesHeader."Sell-to Customer No.", 'Sell-to Customer No. does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader."Bill-to Customer No.", SalesHeader."Bill-to Customer No.", 'Bill-to Customer No. does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader."Ship-to Name", SalesHeader."Ship-to Name", 'Ship-to Name does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader."Ship-to Address", SalesHeader."Ship-to Address", 'Ship-to Address does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader."Ship-to Address 2", SalesHeader."Ship-to Address 2", 'Ship-to Address 2 does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader."Ship-to City", SalesHeader."Ship-to City", 'Ship-to City does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader."Ship-to Contact", SalesHeader."Ship-to Contact", 'Ship-to Contact does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader."Order Date", SalesHeader."Order Date", 'Order Date does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader."Posting Date", SalesHeader."Posting Date", 'Posting Date does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader."Posting Description", SalesHeader."Posting Description", 'Posting Description does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader."Shipment Method Code", SalesHeader."Shipment Method Code", 'Shipment Method Code does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader."Ship-to Post Code", SalesHeader."Ship-to Post Code", 'Ship-to Post Code does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader."Ship-to County", SalesHeader."Ship-to County", 'Ship-to State/County does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader."Ship-to Country/Region Code", SalesHeader."Ship-to Country/Region Code", 'Ship-to Country/Region Code does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader."Document Date", SalesHeader."Document Date", 'Document Date does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader."Posting No. Series", SalesHeader."Posting No. Series", 'Posting No. Series does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader."Shipping No. Series", SalesHeader."Shipping No. Series", 'Shipping No. Series does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader.Status, SalesHeader.Status, 'Status does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + Assert.AreEqual(TempExpectedSalesHeader."Shipping Advice", SalesHeader."Shipping Advice", 'Shipping Advice does not match for Sales Header (' + TempExpectedSalesHeader."No." + ')'); + until TempExpectedSalesHeader.Next() = 0; + end; + + local procedure ValidateSalesLineData(var TempExpectedSalesLine: Record "Sales Line" temporary) + var + SalesLine: Record "Sales Line"; + begin + TempExpectedSalesLine.Reset(); + TempExpectedSalesLine.FindSet(); + repeat + Assert.IsTrue(SalesLine.Get( + TempExpectedSalesLine."Document Type", + TempExpectedSalesLine."Document No.", + TempExpectedSalesLine."Line No."), + 'Sales Line does not exist in BC (Document Type: ' + + Format(TempExpectedSalesLine."Document Type") + + ', Document No.: ' + TempExpectedSalesLine."Document No." + + ', Line No.: ' + Format(TempExpectedSalesLine."Line No.") + ')'); + + Assert.AreEqual(TempExpectedSalesLine."Sell-to Customer No.", SalesLine."Sell-to Customer No.", 'Sell-to Customer No. does not match for Sales Line (' + TempExpectedSalesLine."Document No." + '/' + Format(TempExpectedSalesLine."Line No.") + ')'); + Assert.AreEqual(TempExpectedSalesLine.Type, SalesLine.Type, 'Type does not match for Sales Line (' + TempExpectedSalesLine."Document No." + '/' + Format(TempExpectedSalesLine."Line No.") + ')'); + Assert.AreEqual(TempExpectedSalesLine."No.", SalesLine."No.", 'No. does not match for Sales Line (' + TempExpectedSalesLine."Document No." + '/' + Format(TempExpectedSalesLine."Line No.") + ')'); + Assert.AreEqual(TempExpectedSalesLine."Location Code", SalesLine."Location Code", 'Location Code does not match for Sales Line (' + TempExpectedSalesLine."Document No." + '/' + Format(TempExpectedSalesLine."Line No.") + ')'); + Assert.AreEqual(TempExpectedSalesLine."Unit of Measure Code", SalesLine."Unit of Measure Code", 'Unit of Measure Code does not match for Sales Line (' + TempExpectedSalesLine."Document No." + '/' + Format(TempExpectedSalesLine."Line No.") + ')'); + Assert.AreEqual(TempExpectedSalesLine.Quantity, SalesLine.Quantity, 'Quantity does not match for Sales Line (' + TempExpectedSalesLine."Document No." + '/' + Format(TempExpectedSalesLine."Line No.") + ')'); + Assert.AreEqual(TempExpectedSalesLine."Unit Price", SalesLine."Unit Price", 'Unit Price does not match for Sales Line (' + TempExpectedSalesLine."Document No." + '/' + Format(TempExpectedSalesLine."Line No.") + ')'); + until TempExpectedSalesLine.Next() = 0; + end; + + local procedure Initialize() + var + Item: Record Item; + SalesHeader: Record "Sales Header"; + SalesLine: Record "Sales Line"; + SLSOHeader: Record "SL SOHeader Buffer"; + SLSOLine: Record "SL SOLine Buffer"; + SLSOTypeBuffer: Record "SL SOType Buffer"; + + begin + // Delete/empty SL tables + SLSOHeader.DeleteAll(); + SLSOLine.DeleteAll(); + SLSOTypeBuffer.DeleteAll(); + + // Delete/empty BC tables + SalesLine.DeleteAll(); + SalesHeader.DeleteAll(); + + if IsInitialized then + exit; + + SLTestHelperFunctions.ClearAccountTableData(); + SLTestHelperFunctions.ClearSLCustomerTableData(); + SLTestHelperFunctions.ClearSLSOTypeBufferTableData(); + SLTestHelperFunctions.ClearBCCustomerTableData(); + SLTestHelperFunctions.ClearBCItemTableData(); + SLTestHelperFunctions.ClearBCInventoryPostingGroupTableData(); + SLTestHelperFunctions.ClearBCGeneralBusinessPostingGroupTableData(); + SLTestHelperFunctions.ClearBCGenProductPostingGroupTableData(); + SLTestHelperFunctions.DeleteAllSettings(); + SLTestHelperFunctions.CreateConfigurationSettings(); + SLTestHelperFunctions.ImportGLAccountData(); + SLTestHelperFunctions.ImportBCCustomerForOpenOrdersData(); + SLTestHelperFunctions.ImportBCLocationsForOpenOrdersData(); + SLTestHelperFunctions.ImportBCUnitOfMeasureForOpenOrdersData(); + SLTestHelperFunctions.ImportBCItemForOpenOrderData(); + SLTestHelperFunctions.ImportBCItemUOMForOpenOrdersData(); + SLTestHelperFunctions.ImportBCInventoryPostingGroupData(); + SLTestHelperFunctions.ImportBCGenBusinessPostingGroupData(); + SLTestHelperFunctions.ImportBCGenProductPostingGroupData(); + SLTestHelperFunctions.ImportSLSOTypeBufferData(); + SLTestHelperFunctions.ImportSLCustomerDataForOpenOrderTest(); + Commit(); + IsInitialized := true; + end; +} diff --git a/Apps/W1/HybridSL/test/src/SLSOTypeBufferData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLSOTypeBufferData.XmlPort.al new file mode 100644 index 0000000000..2c3bf1d3d3 --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLSOTypeBufferData.XmlPort.al @@ -0,0 +1,69 @@ +// ------------------------------------------------------------------------------------------------ +// 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 147657 "SL SOType Buffer Data" +{ + Caption = 'SL SOType Buffer data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL SOType Buffer"; "SL SOType Buffer") + { + AutoSave = false; + XmlName = 'SLSOTypeBuffer'; + + textelement(CpnyID) + { + } + textelement(SOTypeID) + { + } + textelement(Behavior) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLSOTypeBuffer: Record "SL SOType Buffer"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLSOTypeBuffer.CpnyID := CopyStr(CpnyID, 1, MaxStrLen(SLSOTypeBuffer.CpnyID)); + SLSOTypeBuffer.SOTypeID := SOTypeID; + SLSOTypeBuffer.Behavior := Behavior; + SLSOTypeBuffer.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLSOTypeBuffer.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLSOTypeBuffer: Record "SL SOType Buffer"; +} \ No newline at end of file diff --git a/Apps/W1/HybridSL/test/src/SLSiteData.XmlPort.al b/Apps/W1/HybridSL/test/src/SLSiteData.XmlPort.al new file mode 100644 index 0000000000..353632a13c --- /dev/null +++ b/Apps/W1/HybridSL/test/src/SLSiteData.XmlPort.al @@ -0,0 +1,93 @@ +// ------------------------------------------------------------------------------------------------ +// 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 147640 "SL Site Data" +{ + Caption = 'SL Site data for import/export'; + Direction = Both; + FieldSeparator = ','; + RecordSeparator = ''; + Format = VariableText; + + schema + { + textelement(root) + { + tableelement("SL Site"; "SL Site") + { + AutoSave = false; + XmlName = 'SLSite'; + + textelement(SiteId) + { + } + textelement(Addr1) + { + } + textelement(Addr2) + { + } + textelement(City) + { + } + textelement(CpnyID) + { + } + textelement(Fax) + { + } + textelement(Name) + { + } + textelement(Phone) + { + } + textelement(Zip) + { + } + + trigger OnPreXmlItem() + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + end; + + trigger OnBeforeInsertRecord() + var + SLSite: Record "SL Site"; + begin + if CaptionRow then begin + CaptionRow := false; + currXMLport.Skip(); + end; + + SLSite.SiteId := SiteId; + SLSite.Addr1 := Addr1; + SLSite.Addr2 := Addr2; + SLSite.City := City; + SLSite.CpnyID := CpnyID; + SLSite.Fax := Fax; + SLSite.Name := Name; + SLSite.Phone := Phone; + SLSite.Zip := Zip; + SLSite.Insert(); + end; + } + } + } + + trigger OnPreXmlPort() + begin + SLSite.DeleteAll(); + CaptionRow := true; + end; + + var + CaptionRow: Boolean; + SLSite: Record "SL Site"; +} \ 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 7ba767294b..eeb24d8f01 100644 --- a/Apps/W1/HybridSL/test/src/SLTestHelperFunctions.CodeUnit.al +++ b/Apps/W1/HybridSL/test/src/SLTestHelperFunctions.CodeUnit.al @@ -5,6 +5,7 @@ namespace Microsoft.DataMigration.SL; using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Inventory.Item; using Microsoft.Purchases.Vendor; using Microsoft.Sales.Customer; @@ -25,6 +26,27 @@ codeunit 147601 "SL Test Helper Functions" Customer.DeleteAll(); end; + procedure ClearBCGeneralBusinessPostingGroupTableData() + var + GenBusinessPostingGroup: Record "Gen. Business Posting Group"; + begin + GenBusinessPostingGroup.DeleteAll(); + end; + + procedure ClearBCGenProductPostingGroupTableData(); + var + GenProductPostingGroup: Record "Gen. Product Posting Group"; + begin + GenProductPostingGroup.DeleteAll(); + end; + + procedure ClearBCInventoryPostingGroupTableData() + var + InventoryPostingGroup: Record "Inventory Posting Group"; + begin + InventoryPostingGroup.DeleteAll(); + end; + procedure ClearBCItemTableData() var Item: Record Item; @@ -39,6 +61,20 @@ codeunit 147601 "SL Test Helper Functions" Vendor.DeleteAll(); end; + procedure ClearSLCustomerTableData() + var + SLCustomer: Record Customer; + begin + SLCustomer.DeleteAll(); + end; + + procedure ClearSLSOTypeBufferTableData() + var + SLSOTypeBuffer: Record "SL SOType Buffer"; + begin + SLSOTypeBuffer.DeleteAll(); + end; + procedure CreateConfigurationSettings() var SLCompanyMigrationSettings: Record "SL Company Migration Settings"; @@ -144,6 +180,14 @@ codeunit 147601 "SL Test Helper Functions" PopulateSLAcctHistTable(SLAcctHistInstream); end; + procedure ImportSLAddressData() + var + SLAddressInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLAddress.csv', SLAddressInstream); + PopulateSLAddressTable(SLAddressInstream); + end; + procedure ImportSLAPDocBufferData() var SLAPDocBufferInstream: InStream; @@ -184,6 +228,38 @@ codeunit 147601 "SL Test Helper Functions" PopulateSLBatchTable(SLBatchInstream); end; + procedure ImportSLCASetupData() + var + SLCASetupInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLCASetup.csv', SLCASetupInstream); + PopulateSLCASetupTable(SLCASetupInstream); + end; + + procedure ImportSLCashAcctData() + var + SLCashAcctInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLCashAcct.csv', SLCashAcctInstream); + PopulateSLCashAcctTable(SLCashAcctInstream); + end; + + procedure ImportSLCashSumDData() + var + SLCashSumDInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLCashSumD.csv', SLCashSumDInstream); + PopulateSLCashSumDTable(SLCashSumDInstream); + end; + + procedure ImportSLCompanyMigrationSettingsData() + var + SLCompanyMigrationSettingsInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLCompanyMigrationSettings.csv', SLCompanyMigrationSettingsInstream); + PopulateSLCompanyMigrationSettingsTable(SLCompanyMigrationSettingsInstream); + end; + procedure ImportSLCustClassData() var SLCustClassInstream: InStream; @@ -200,6 +276,14 @@ codeunit 147601 "SL Test Helper Functions" PopulateSLCustomerTable(SLCustomerInstream); end; + procedure ImportSLCustomerDataForOpenOrderTest() + var + SLCustomerInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLCustomerForOpenOrderTest.csv', SLCustomerInstream); + PopulateSLCustomerTable(SLCustomerInstream); + end; + procedure ImportSLFlexDefData() var SLFlexDefInstream: InStream; @@ -232,6 +316,30 @@ codeunit 147601 "SL Test Helper Functions" PopulateSLINSetupTable(SLINSetupInstream); end; + procedure ImportSLItemSiteBufferData() + var + SLItemSiteInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLItemSiteForItemJournalTest.csv', SLItemSiteInstream); + PopulateSLItemSiteBufferTable(SLItemSiteInstream); + end; + + procedure ImportSLPurchOrdBufferData() + var + SLPurchOrdBufferInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLPurchOrdBuffer.csv', SLPurchOrdBufferInstream); + PopulateSLPurchOrdBufferTable(SLPurchOrdBufferInstream); + end; + + procedure ImportSLPurOrdDetBufferData() + var + SLPurOrdDetBufferInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLPurOrdDetBuffer.csv', SLPurOrdDetBufferInstream); + PopulateSLPurOrdDetBufferTable(SLPurOrdDetBufferInstream); + end; + procedure ImportSLProductClassData() var SLProductClassInstream: InStream; @@ -256,6 +364,14 @@ codeunit 147601 "SL Test Helper Functions" PopulateSLSegmentsTable(SLSegmentsInstream); end; + procedure ImportSLSiteData() + var + SLSiteInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLSite.csv', SLSiteInstream); + PopulateSLSiteTable(SLSiteInstream); + end; + procedure ImportSLSOAddressData() var SLSOAddressInstream: InStream; @@ -264,6 +380,30 @@ codeunit 147601 "SL Test Helper Functions" PopulateSLSOAddressTable(SLSOAddressInstream); end; + procedure ImportSLSOHeaderBufferData() + var + SLSOHeaderBufferInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLSOHeaderBuffer.csv', SLSOHeaderBufferInstream); + PopulateSLSOHeaderBufferTable(SLSOHeaderBufferInstream); + end; + + procedure ImportSLSOLineBufferData() + var + SLSOLineBufferInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLSOLineBuffer.csv', SLSOLineBufferInstream); + PopulateSLSOLineBufferTable(SLSOLineBufferInstream); + end; + + procedure ImportSLSOTypeBufferData() + var + SLSOTypeBufferInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLTables/SLSOTypeBuffer.csv', SLSOTypeBufferInstream); + PopulateSLSOTypeBufferTable(SLSOTypeBufferInstream); + end; + procedure ImportSLVendClassData() var SLVendClassInstream: InStream; @@ -280,6 +420,62 @@ codeunit 147601 "SL Test Helper Functions" PopulateSLVendorTable(SLVendorInstream); end; + procedure ImportBCVendorForOpenPOsData() + var + SLBCVendorForOpenPOsInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLBCVendorForOpenPOs.csv', SLBCVendorForOpenPOsInstream); + PopulateSLBCVendorForOpenPOsTable(SLBCVendorForOpenPOsInstream); + end; + + procedure ImportBCItemForOpenOrderData() + var + SLBCItemForOpenOrderInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLBCItemForOpenOrders.csv', SLBCItemForOpenOrderInstream); + PopulateSLBCItemForOpenOrderTable(SLBCItemForOpenOrderInstream); + end; + + procedure ImportBCUnitOfMeasureForOpenOrdersData() + var + SLBCUnitOfMeasureForOpenOrdersInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLBCUnitOfMeasureForOpenOrders.csv', SLBCUnitOfMeasureForOpenOrdersInstream); + PopulateSLBCUnitOfMeasureForOpenOrdersTable(SLBCUnitOfMeasureForOpenOrdersInstream); + end; + + procedure ImportBCInventoryPostingGroupData() + var + SLBCInventoryPostingGroupInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLBCInventoryPostingGroup.csv', SLBCInventoryPostingGroupInstream); + PopulateSLBCInventoryPostingGroupTable(SLBCInventoryPostingGroupInstream); + end; + + procedure ImportBCItemUOMForOpenOrdersData() + var + SLBCItemUOMForOpenOrdersInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLBCItemUOMForOpenOrders.csv', SLBCItemUOMForOpenOrdersInstream); + PopulateSLBCItemUOMForOpenOrdersTable(SLBCItemUOMForOpenOrdersInstream); + end; + + procedure ImportBCLocationsForOpenOrdersData() + var + SLBCLocationsInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLBCLocations.csv', SLBCLocationsInstream); + PopulateSLBCLocationsForOpenOrdersTable(SLBCLocationsInstream); + end; + + procedure ImportBCCustomerForOpenOrdersData() + var + SLBCCustomerForOpenOrdersInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLBCCustomerForOpenOrders.csv', SLBCCustomerForOpenOrdersInstream); + PopulateSLBCCustomerForOpenOrdersTable(SLBCCustomerForOpenOrdersInstream); + end; + procedure PopulateSLCustomerTable(var Instream: InStream) begin // Populate Customer buffer table @@ -340,6 +536,12 @@ codeunit 147601 "SL Test Helper Functions" Xmlport.Import(Xmlport::"SL AcctHist Data", Instream); end; + procedure PopulateSLAddressTable(var Instream: InStream) + begin + // Populate SL Address table + Xmlport.Import(Xmlport::"SL Address Data", Instream); + end; + procedure PopulateSLAPDocBufferTable(var Instream: InStream) begin // Populate SL APDoc Buffer table @@ -370,6 +572,36 @@ codeunit 147601 "SL Test Helper Functions" Xmlport.Import(Xmlport::"SL Batch Data", Instream); end; + procedure PopulateSLCASetupTable(var Instream: InStream) + begin + // Populate SL CASetup table + Xmlport.Import(Xmlport::"SL CASetup Data", Instream); + end; + + procedure PopulateSLCashAcctTable(var Instream: InStream) + begin + // Populate SL CashAcct table + Xmlport.Import(Xmlport::"SL CashAcct Data", Instream); + end; + + procedure PopulateSLCashSumDTable(var Instream: InStream) + begin + // Populate SL CashSumD table + Xmlport.Import(Xmlport::"SL CashSumD 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 PopulateSLCustClassTable(var Instream: InStream) begin // Populate SL CustClass table @@ -394,6 +626,24 @@ codeunit 147601 "SL Test Helper Functions" Xmlport.Import(Xmlport::"SL INSetup Data", Instream); end; + procedure PopulateSLItemSiteBufferTable(var Instream: InStream) + begin + // Populate SL ItemSite Buffer table + Xmlport.Import(Xmlport::"SL ItemSite Buffer Data", Instream); + end; + + procedure PopulateSLPurchOrdBufferTable(var Instream: InStream) + begin + // Populate SL PurchOrd Buffer table + Xmlport.Import(Xmlport::"SL PurchOrd Buffer Data", Instream); + end; + + procedure PopulateSLPurOrdDetBufferTable(var Instream: InStream) + begin + // Populate SL PurOrdDet Buffer table + Xmlport.Import(Xmlport::"SL PurOrdDet Buffer Data", Instream); + end; + procedure PopulateSLProductClassTable(var Instream: InStream) begin // Populate SL ProductClass table @@ -412,12 +662,36 @@ codeunit 147601 "SL Test Helper Functions" Xmlport.Import(Xmlport::"SL Segments", Instream); end; + procedure PopulateSLSiteTable(var Instream: InStream) + begin + // Populate SL Site table + Xmlport.Import(Xmlport::"SL Site Data", Instream); + end; + procedure PopulateSLSOAddressTable(var Instream: InStream) begin // Populate SL SOAddress table Xmlport.Import(Xmlport::"SL SOAddress Data", Instream); end; + procedure PopulateSLSOHeaderBufferTable(var Instream: InStream) + begin + // Populate SL SOHeader Buffer table + Xmlport.Import(Xmlport::"SL SOHeader Buffer Data", Instream); + end; + + procedure PopulateSLSOLineBufferTable(var Instream: InStream) + begin + // Populate SL SOLine Buffer table + Xmlport.Import(Xmlport::"SL SOLine Buffer Data", Instream); + end; + + procedure PopulateSLSOTypeBufferTable(var Instream: InStream) + begin + // Populate SL SOType Buffer table + Xmlport.Import(Xmlport::"SL SOType Buffer Data", Instream); + end; + procedure PopulateSLVendClassTable(var Instream: InStream) begin // Populate SL VendClass table @@ -426,7 +700,71 @@ codeunit 147601 "SL Test Helper Functions" procedure PopulateSLVendorTable(var Instream: InStream) begin - // Populate Vendor buffer table + // Populate SL Vendor table Xmlport.Import(Xmlport::"SL Vendor Data", Instream); end; + + procedure PopulateSLBCVendorForOpenPOsTable(var Instream: InStream) + begin + // Populate BC Vendor table for open PO tests + Xmlport.Import(Xmlport::"SL BC Vendor for Open POs Data", Instream); + end; + + procedure PopulateSLBCInventoryPostingGroupTable(var Instream: InStream) + begin + // Populate BC Inventory Posting Group table for open order tests + Xmlport.Import(Xmlport::"SL BC Invt Posting Group Data", Instream); + end; + + procedure PopulateSLBCItemForOpenOrderTable(var Instream: InStream) + begin + // Populate BC Item table for open order tests + Xmlport.Import(Xmlport::"SL BC Item for Open Order Data", Instream); + end; + + procedure PopulateSLBCUnitOfMeasureForOpenOrdersTable(var Instream: InStream) + begin + // Populate BC Unit of Measure table for open order tests + Xmlport.Import(Xmlport::"SL BC UOM Open Orders", Instream); + end; + + procedure PopulateSLBCItemUOMForOpenOrdersTable(var Instream: InStream) + begin + // Populate BC Item Unit of Measure table for open order tests + Xmlport.Import(Xmlport::"SL BC Item UOM Open Orders", Instream); + end; + + procedure PopulateSLBCLocationsForOpenOrdersTable(var Instream: InStream) + begin + // Populate BC Location table for open order tests + Xmlport.Import(Xmlport::"SL BC Locations Open Orders", Instream); + end; + + procedure PopulateSLBCCustomerForOpenOrdersTable(var Instream: InStream) + begin + // Populate BC Customer table for open sales order tests + Xmlport.Import(Xmlport::"SL BC Customer Open Order Data", Instream); + end; + + procedure ImportBCGenBusinessPostingGroupData() + var + SLBCGenBusinessPostingGroupInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLBCGenBusinessPostingGroup.csv', SLBCGenBusinessPostingGroupInstream); + PopulateGenBusinessPostingGroupTable(SLBCGenBusinessPostingGroupInstream); + end; + + procedure ImportBCGenProductPostingGroupData() + var + SLBCGenProductPostingGroupInstream: InStream; + begin + GetInputStreamFromResource('datasets/input/SLBCGenProductPostingGroup.csv', SLBCGenProductPostingGroupInstream); + PopulateSLBCGenProductPostingGroupTable(SLBCGenProductPostingGroupInstream); + end; + + procedure PopulateSLBCGenProductPostingGroupTable(var Instream: InStream) + begin + // Populate BC Gen. Product Posting Group table for open order tests + Xmlport.Import(Xmlport::"SL Gen Prod Posting Group Data", Instream); + end; } diff --git a/Apps/W1/HybridSL/test/src/SLVendorMigratorTests.CodeUnit.al b/Apps/W1/HybridSL/test/src/SLVendorMigratorTests.CodeUnit.al index 1ff915062c..2f892873fc 100644 --- a/Apps/W1/HybridSL/test/src/SLVendorMigratorTests.CodeUnit.al +++ b/Apps/W1/HybridSL/test/src/SLVendorMigratorTests.CodeUnit.al @@ -29,7 +29,7 @@ codeunit 147603 "SL Vendor Migrator Tests" TempVendor: Record Vendor temporary; VendorDataMigrationFacade: Codeunit "Vendor Data Migration Facade"; SLVendorMigrator: Codeunit "SL Vendor Migrator"; - SLExpectedBCVendorData: XmlPort "SL BC Vendor Data"; + SLExpectedBCVendorData: XmlPort "SL BC Vendor Data Expected"; SLVendorInstream: InStream; BCVendorInstream: InStream; begin @@ -76,7 +76,7 @@ codeunit 147603 "SL Vendor Migrator Tests" TempVendor: Record Vendor temporary; VendorDataMigrationFacade: Codeunit "Vendor Data Migration Facade"; SLVendorMigrator: Codeunit "SL Vendor Migrator"; - SLExpectedBCVendorData: XmlPort "SL BC Vendor Data"; + SLExpectedBCVendorData: XmlPort "SL BC Vendor Data Expected"; SLVendorInstream: InStream; BCVendorInstream: InStream; begin @@ -119,7 +119,7 @@ codeunit 147603 "SL Vendor Migrator Tests" TempVendor: Record Vendor temporary; VendorDataMigrationFacade: Codeunit "Vendor Data Migration Facade"; SLVendorMigrator: Codeunit "SL Vendor Migrator"; - SLExpectedBCVendorData: XmlPort "SL BC Vendor Data"; + SLExpectedBCVendorData: XmlPort "SL BC Vendor Data Expected"; SLVendorInstream: InStream; BCVendorInstream: InStream; begin @@ -163,7 +163,7 @@ codeunit 147603 "SL Vendor Migrator Tests" TempVendor: Record Vendor temporary; VendorDataMigrationFacade: Codeunit "Vendor Data Migration Facade"; SLVendorMigrator: Codeunit "SL Vendor Migrator"; - SLExpectedBCVendorData: XmlPort "SL BC Vendor Data"; + SLExpectedBCVendorData: XmlPort "SL BC Vendor Data Expected"; SLVendorInstream: InStream; BCVendorInstream: InStream; begin