diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/ContosoCZLocalization.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/ContosoCZLocalization.Codeunit.al index 1b86fcedec..12201a0a3c 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/ContosoCZLocalization.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/ContosoCZLocalization.Codeunit.al @@ -248,6 +248,7 @@ codeunit 31215 "Contoso CZ Localization" Codeunit.Run(Codeunit::"Create FA Posting Group CZ"); Codeunit.Run(Codeunit::"Create FA Setup CZ"); CreateDepreciationBookCZ.DeleteDepreciationBooks(); + CreateDepreciationBookCZ.CreateFAJournalSetups(); end; Enum::"Contoso Demo Data Level"::"Master Data": begin diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/CreateCZGLAccounts.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/CreateCZGLAccounts.Codeunit.al index cc2281e526..a0bc1e9e59 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/CreateCZGLAccounts.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/CreateCZGLAccounts.Codeunit.al @@ -6,13 +6,17 @@ namespace Microsoft.DemoData.Localization; using Microsoft.DemoData.Common; +using Microsoft.DemoData.Finance; using Microsoft.DemoData.FixedAsset; using Microsoft.DemoData.HumanResources; using Microsoft.DemoData.Jobs; +using Microsoft.FixedAssets.Journal; +using Microsoft.FixedAssets.Posting; using Microsoft.DemoData.Manufacturing; using Microsoft.DemoData.Service; using Microsoft.DemoTool.Helpers; using Microsoft.Finance.GeneralLedger.Account; +using Microsoft.Finance.GeneralLedger.Journal; codeunit 31212 "Create CZ GL Accounts" { @@ -130,4 +134,19 @@ codeunit 31212 "Create CZ GL Accounts" begin Category := Enum::"G/L Account Category"::" "; end; + + [EventSubscriber(ObjectType::Table, Database::"Gen. Journal Line", OnBeforeInsertEvent, '', false, false)] + local procedure OnBeforeInsertGenJournalLineCZ(var Rec: Record "Gen. Journal Line") + var + CreateFAJnlTemplate: Codeunit "Create FA Jnl. Template"; + CreateGLAccountCZ: Codeunit "Create G/L Account CZ"; + begin + if (Rec."Journal Template Name" = CreateFAJnlTemplate.Assets()) + and (Rec."Journal Batch Name" = CreateFAJnlTemplate.Default()) + and (Rec."Account Type" = Enum::"Gen. Journal Account Type"::"Fixed Asset") + and (Rec."Bal. Account Type" = Enum::"Gen. Journal Account Type"::"G/L Account") + and (Rec."FA Posting Type" = Enum::"Gen. Journal Line FA Posting Type"::"Acquisition Cost") + then + Rec.Validate("Bal. Account No.", CreateGLAccountCZ.Cashtransfer()); + end; } diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/FixedAsset/1. Setup Data/CreateDepreciationBookCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/FixedAsset/1. Setup Data/CreateDepreciationBookCZ.Codeunit.al index a929212202..3f499c2469 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/FixedAsset/1. Setup Data/CreateDepreciationBookCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/FixedAsset/1. Setup Data/CreateDepreciationBookCZ.Codeunit.al @@ -45,6 +45,16 @@ codeunit 31183 "Create Depreciation Book CZ" ContosoFixedAsset.InsertDepreciationBook(CreateFADepreciationBook.Company(), '', false, false, false, false, false, false, false, false, false, 0); end; + internal procedure CreateFAJournalSetups() + var + ContosoFixedAsset: Codeunit "Contoso Fixed Asset"; + CreateFAJnlTemplate: Codeunit "Create FA Jnl. Template"; + CreateFAInsTemplate: Codeunit "Create FA Ins Jnl. Template"; + begin + ContosoFixedAsset.InsertFAJournalSetup('', FirstAccount(), CreateFAJnlTemplate.Assets(), CreateFAInsTemplate.Default(), CreateFAJnlTemplate.Assets(), CreateFAInsTemplate.Default(), CreateFAInsTemplate.Insurance(), CreateFAJnlTemplate.Default()); + ContosoFixedAsset.InsertFAJournalSetup('', SecondTax(), CreateFAJnlTemplate.Assets(), CreateFAInsTemplate.Default(), CreateFAJnlTemplate.Assets(), CreateFAInsTemplate.Default(), CreateFAInsTemplate.Insurance(), CreateFAJnlTemplate.Default()); + end; + var FirstAccountLbl: Label '1-ACCOUNT', MaxLength = 10; SecondTaxLbl: Label '2-TAX', MaxLength = 10; diff --git a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/FixedAsset/1. Setup Data/CreateFASetupCZ.Codeunit.al b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/FixedAsset/1. Setup Data/CreateFASetupCZ.Codeunit.al index 5498db0d99..b014cfbb74 100644 --- a/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/FixedAsset/1. Setup Data/CreateFASetupCZ.Codeunit.al +++ b/Apps/CZ/ContosoCoffeeDemoDatasetCZ/app/DemoData/FixedAsset/1. Setup Data/CreateFASetupCZ.Codeunit.al @@ -5,6 +5,7 @@ namespace Microsoft.DemoData.FixedAsset; +using Microsoft.DemoData.Finance; using Microsoft.FixedAssets.Setup; codeunit 11715 "Create FA Setup CZ" diff --git a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/FixedAsset/1. SetupData/CreateFADepreciationBookDK.Codeunit.al b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/FixedAsset/1. SetupData/CreateFADepreciationBookDK.Codeunit.al index 1859797f48..597f02e60f 100644 --- a/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/FixedAsset/1. SetupData/CreateFADepreciationBookDK.Codeunit.al +++ b/Apps/DK/ContosoCoffeeDemoDatasetDK/app/DemoData/FixedAsset/1. SetupData/CreateFADepreciationBookDK.Codeunit.al @@ -5,7 +5,10 @@ namespace Microsoft.DemoData.FixedAsset; +using Microsoft.DemoData.Finance; +using Microsoft.Finance.GeneralLedger.Journal; using Microsoft.FixedAssets.Depreciation; +using Microsoft.FixedAssets.Journal; codeunit 13742 "Create FA Depreciation Book DK" { @@ -29,4 +32,19 @@ codeunit 13742 "Create FA Depreciation Book DK" begin DepreciationBook.Validate("Default Final Rounding Amount", DefaultFinalRoundingAmount); end; + + [EventSubscriber(ObjectType::Table, Database::"Gen. Journal Line", OnBeforeInsertEvent, '', false, false)] + local procedure OnBeforeInsertGenJournalLineDK(var Rec: Record "Gen. Journal Line") + var + CreateFAJnlTemplate: Codeunit "Create FA Jnl. Template"; + CreateGLAccDK: Codeunit "Create GL Acc. DK"; + begin + if (Rec."Journal Template Name" = CreateFAJnlTemplate.Assets()) + and (Rec."Journal Batch Name" = CreateFAJnlTemplate.Default()) + and (Rec."Account Type" = Enum::"Gen. Journal Account Type"::"Fixed Asset") + and (Rec."Bal. Account Type" = Enum::"Gen. Journal Account Type"::"G/L Account") + and (Rec."FA Posting Type" = Enum::"Gen. Journal Line FA Posting Type"::"Acquisition Cost") + then + Rec.Validate("Bal. Account No.", CreateGLAccDK.Bank()); + end; } diff --git a/Apps/NL/ContosoCoffeeDemoDatasetNL/app/DemoData/FixedAsset/1.Setup Data/CreateFADepreciationBookNL.Codeunit.al b/Apps/NL/ContosoCoffeeDemoDatasetNL/app/DemoData/FixedAsset/1.Setup Data/CreateFADepreciationBookNL.Codeunit.al index 607cc0c1bc..b363be1f15 100644 --- a/Apps/NL/ContosoCoffeeDemoDatasetNL/app/DemoData/FixedAsset/1.Setup Data/CreateFADepreciationBookNL.Codeunit.al +++ b/Apps/NL/ContosoCoffeeDemoDatasetNL/app/DemoData/FixedAsset/1.Setup Data/CreateFADepreciationBookNL.Codeunit.al @@ -5,7 +5,10 @@ namespace Microsoft.DemoData.FixedAsset; +using Microsoft.DemoData.Localization; +using Microsoft.Finance.GeneralLedger.Journal; using Microsoft.FixedAssets.Depreciation; +using Microsoft.FixedAssets.Journal; codeunit 11505 "Create FA Depreciation Book NL" { @@ -29,4 +32,19 @@ codeunit 11505 "Create FA Depreciation Book NL" begin DepreciationBook.Validate("Default Final Rounding Amount", DefaultFinalRoundingAmount); end; + + [EventSubscriber(ObjectType::Table, Database::"Gen. Journal Line", OnBeforeInsertEvent, '', false, false)] + local procedure OnBeforeInsertGenJournalLineNL(var Rec: Record "Gen. Journal Line") + var + CreateFAJnlTemplate: Codeunit "Create FA Jnl. Template"; + CreateNLGLAccounts: Codeunit "Create NL GL Accounts"; + begin + if (Rec."Journal Template Name" = CreateFAJnlTemplate.Assets()) + and (Rec."Journal Batch Name" = CreateFAJnlTemplate.Default()) + and (Rec."Account Type" = Enum::"Gen. Journal Account Type"::"Fixed Asset") + and (Rec."Bal. Account Type" = Enum::"Gen. Journal Account Type"::"G/L Account") + and (Rec."FA Posting Type" = Enum::"Gen. Journal Line FA Posting Type"::"Acquisition Cost") + then + Rec.Validate("Bal. Account No.", CreateNLGLAccounts.PettyCash()); + end; } diff --git a/Apps/W1/ContosoCoffeeDemoDataset/app/DemoData/FixedAsset/2.Master Data/CreateFADimensionValue.Codeunit.al b/Apps/W1/ContosoCoffeeDemoDataset/app/DemoData/FixedAsset/2.Master Data/CreateFADimensionValue.Codeunit.al new file mode 100644 index 0000000000..29607fd7fd --- /dev/null +++ b/Apps/W1/ContosoCoffeeDemoDataset/app/DemoData/FixedAsset/2.Master Data/CreateFADimensionValue.Codeunit.al @@ -0,0 +1,35 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DemoData.FixedAsset; + +using Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.Dimension; +using Microsoft.FixedAssets.FixedAsset; + +codeunit 5614 "Create FA Dimension Value" +{ + InherentEntitlements = X; + InherentPermissions = X; + + trigger OnRun() + var + ContosoDimension: Codeunit "Contoso Dimension"; + CreateDimension: Codeunit "Create Dimension"; + CreateDimensionValue: Codeunit "Create Dimension Value"; + CreateFixedAsset: Codeunit "Create Fixed Asset"; + begin + ContosoDimension.InsertDefaultDimensionValue(Database::"Fixed Asset", CreateFixedAsset.FA000010(), CreateDimension.DepartmentDimension(), CreateDimensionValue.AdministrationDepartment(), Enum::"Default Dimension Value Posting Type"::" "); + ContosoDimension.InsertDefaultDimensionValue(Database::"Fixed Asset", CreateFixedAsset.FA000020(), CreateDimension.DepartmentDimension(), CreateDimensionValue.AdministrationDepartment(), Enum::"Default Dimension Value Posting Type"::" "); + ContosoDimension.InsertDefaultDimensionValue(Database::"Fixed Asset", CreateFixedAsset.FA000030(), CreateDimension.DepartmentDimension(), CreateDimensionValue.ProductionDepartment(), Enum::"Default Dimension Value Posting Type"::" "); + ContosoDimension.InsertDefaultDimensionValue(Database::"Fixed Asset", CreateFixedAsset.FA000040(), CreateDimension.DepartmentDimension(), CreateDimensionValue.ProductionDepartment(), Enum::"Default Dimension Value Posting Type"::" "); + ContosoDimension.InsertDefaultDimensionValue(Database::"Fixed Asset", CreateFixedAsset.FA000050(), CreateDimension.DepartmentDimension(), CreateDimensionValue.ProductionDepartment(), Enum::"Default Dimension Value Posting Type"::" "); + ContosoDimension.InsertDefaultDimensionValue(Database::"Fixed Asset", CreateFixedAsset.FA000060(), CreateDimension.DepartmentDimension(), CreateDimensionValue.ProductionDepartment(), Enum::"Default Dimension Value Posting Type"::" "); + ContosoDimension.InsertDefaultDimensionValue(Database::"Fixed Asset", CreateFixedAsset.FA000070(), CreateDimension.DepartmentDimension(), CreateDimensionValue.ProductionDepartment(), Enum::"Default Dimension Value Posting Type"::" "); + ContosoDimension.InsertDefaultDimensionValue(Database::"Fixed Asset", CreateFixedAsset.FA000080(), CreateDimension.DepartmentDimension(), CreateDimensionValue.ProductionDepartment(), Enum::"Default Dimension Value Posting Type"::" "); + ContosoDimension.InsertDefaultDimensionValue(Database::"Fixed Asset", CreateFixedAsset.FA000090(), CreateDimension.DepartmentDimension(), CreateDimensionValue.AdministrationDepartment(), Enum::"Default Dimension Value Posting Type"::" "); + end; +} diff --git a/Apps/W1/ContosoCoffeeDemoDataset/app/DemoData/FixedAsset/2.Master Data/CreateFixedAsset.Codeunit.al b/Apps/W1/ContosoCoffeeDemoDataset/app/DemoData/FixedAsset/2.Master Data/CreateFixedAsset.Codeunit.al index 6ebbaa2d27..d0c599e3a9 100644 --- a/Apps/W1/ContosoCoffeeDemoDataset/app/DemoData/FixedAsset/2.Master Data/CreateFixedAsset.Codeunit.al +++ b/Apps/W1/ContosoCoffeeDemoDataset/app/DemoData/FixedAsset/2.Master Data/CreateFixedAsset.Codeunit.al @@ -26,24 +26,25 @@ codeunit 5118 "Create Fixed Asset" FAClass: Codeunit "Create FA Class"; ContosoFixedAsset: Codeunit "Contoso Fixed Asset"; FALocation: Codeunit "Create FA Location"; + FAPostingGroup: Codeunit "Create FA Posting Group"; CommonCustomerVendor: Codeunit "Create Common Customer/Vendor"; ContosoUtilities: Codeunit "Contoso Utilities"; DomesticVendor1, DomesticVendor2, DomesticVendor3 : Code[20]; begin DomesticVendor1 := CommonCustomerVendor.DomesticVendor1(); - ContosoFixedAsset.InsertFixedAsset(FA000010(), Vehicle1Lbl, FAClass.TangibleClass(), FAClass.VehiclesSubClass(), FALocation.Administration(), Enum::"FA Component Type"::" ", SerialNoEA12394QLbl, ContosoUtilities.AdjustDate(19030412D), DomesticVendor1, DomesticVendor1); - ContosoFixedAsset.InsertFixedAsset(FA000020(), Vehicle2Lbl, FAClass.TangibleClass(), FAClass.VehiclesSubClass(), FALocation.Sales(), Enum::"FA Component Type"::" ", SerialNoEA12395QLbl, ContosoUtilities.AdjustDate(19030718D), DomesticVendor1, DomesticVendor1); - ContosoFixedAsset.InsertFixedAsset(FA000030(), Truck1Lbl, FAClass.TangibleClass(), FAClass.VehiclesSubClass(), FALocation.Production(), Enum::"FA Component Type"::" ", SerialNoEA15397QLbl, ContosoUtilities.AdjustDate(19030821D), DomesticVendor1, DomesticVendor1); + ContosoFixedAsset.InsertFixedAsset(FA000010(), Vehicle1Lbl, FAClass.TangibleClass(), FAClass.VehiclesSubClass(), FALocation.Administration(), Enum::"FA Component Type"::" ", SerialNoEA12394QLbl, ContosoUtilities.AdjustDate(19030412D), DomesticVendor1, DomesticVendor1, FAPostingGroup.Vehicles()); + ContosoFixedAsset.InsertFixedAsset(FA000020(), Vehicle2Lbl, FAClass.TangibleClass(), FAClass.VehiclesSubClass(), FALocation.Sales(), Enum::"FA Component Type"::" ", SerialNoEA12395QLbl, ContosoUtilities.AdjustDate(19030718D), DomesticVendor1, DomesticVendor1, FAPostingGroup.Vehicles()); + ContosoFixedAsset.InsertFixedAsset(FA000030(), Truck1Lbl, FAClass.TangibleClass(), FAClass.VehiclesSubClass(), FALocation.Production(), Enum::"FA Component Type"::" ", SerialNoEA15397QLbl, ContosoUtilities.AdjustDate(19030821D), DomesticVendor1, DomesticVendor1, FAPostingGroup.Vehicles()); DomesticVendor2 := CommonCustomerVendor.DomesticVendor2(); - ContosoFixedAsset.InsertFixedAsset(FA000040(), ConveyorMainAssetLbl, FAClass.TangibleClass(), FAClass.EquipmentSubClass(), FALocation.Production(), Enum::"FA Component Type"::"Main Asset", SerialNoX23111SW0Lbl, ContosoUtilities.AdjustDate(19030815D), DomesticVendor2, DomesticVendor2); - ContosoFixedAsset.InsertFixedAsset(FA000050(), ConveyorBeltLbl, FAClass.TangibleClass(), FAClass.EquipmentSubClass(), FALocation.Production(), Enum::"FA Component Type"::Component, SerialNoX23111SW1Lbl, ContosoUtilities.AdjustDate(19030815D), DomesticVendor2, DomesticVendor2); - ContosoFixedAsset.InsertFixedAsset(FA000060(), ConveyorComputerLbl, FAClass.TangibleClass(), FAClass.EquipmentSubClass(), FALocation.Production(), Enum::"FA Component Type"::Component, SerialNoX23111SW3Lbl, ContosoUtilities.AdjustDate(19030815D), DomesticVendor2, DomesticVendor2); + ContosoFixedAsset.InsertFixedAsset(FA000040(), ConveyorMainAssetLbl, FAClass.TangibleClass(), FAClass.EquipmentSubClass(), FALocation.Production(), Enum::"FA Component Type"::"Main Asset", SerialNoX23111SW0Lbl, ContosoUtilities.AdjustDate(19030815D), DomesticVendor2, DomesticVendor2, FAPostingGroup.Equipment()); + ContosoFixedAsset.InsertFixedAsset(FA000050(), ConveyorBeltLbl, FAClass.TangibleClass(), FAClass.EquipmentSubClass(), FALocation.Production(), Enum::"FA Component Type"::Component, SerialNoX23111SW1Lbl, ContosoUtilities.AdjustDate(19030815D), DomesticVendor2, DomesticVendor2, FAPostingGroup.Equipment()); + ContosoFixedAsset.InsertFixedAsset(FA000060(), ConveyorComputerLbl, FAClass.TangibleClass(), FAClass.EquipmentSubClass(), FALocation.Production(), Enum::"FA Component Type"::Component, SerialNoX23111SW3Lbl, ContosoUtilities.AdjustDate(19030815D), DomesticVendor2, DomesticVendor2, FAPostingGroup.Equipment()); DomesticVendor3 := CommonCustomerVendor.DomesticVendor3(); - ContosoFixedAsset.InsertFixedAsset(FA000070(), ConveyorLiftLbl, FAClass.TangibleClass(), FAClass.EquipmentSubClass(), FALocation.Production(), Enum::"FA Component Type"::Component, SerialNoX23111SW2Lbl, ContosoUtilities.AdjustDate(19030815D), DomesticVendor3, DomesticVendor3); - ContosoFixedAsset.InsertFixedAsset(FA000080(), CargoLiftLbl, FAClass.TangibleClass(), FAClass.EquipmentSubClass(), FALocation.Production(), Enum::"FA Component Type"::" ", SerialNoAKW2476111Lbl, ContosoUtilities.AdjustDate(19030421D), DomesticVendor3, DomesticVendor3); - ContosoFixedAsset.InsertFixedAsset(FA000090(), SwitchboardLbl, FAClass.TangibleClass(), FAClass.EquipmentSubClass(), FALocation.Administration(), Enum::"FA Component Type"::" ", SerialNoTELE4476ZLbl, ContosoUtilities.AdjustDate(19031212D), DomesticVendor3, DomesticVendor3); + ContosoFixedAsset.InsertFixedAsset(FA000070(), ConveyorLiftLbl, FAClass.TangibleClass(), FAClass.EquipmentSubClass(), FALocation.Production(), Enum::"FA Component Type"::Component, SerialNoX23111SW2Lbl, ContosoUtilities.AdjustDate(19030815D), DomesticVendor3, DomesticVendor3, FAPostingGroup.Equipment()); + ContosoFixedAsset.InsertFixedAsset(FA000080(), CargoLiftLbl, FAClass.TangibleClass(), FAClass.EquipmentSubClass(), FALocation.Production(), Enum::"FA Component Type"::" ", SerialNoAKW2476111Lbl, ContosoUtilities.AdjustDate(19030421D), DomesticVendor3, DomesticVendor3, FAPostingGroup.Equipment()); + ContosoFixedAsset.InsertFixedAsset(FA000090(), SwitchboardLbl, FAClass.TangibleClass(), FAClass.EquipmentSubClass(), FALocation.Administration(), Enum::"FA Component Type"::" ", SerialNoTELE4476ZLbl, ContosoUtilities.AdjustDate(19031212D), DomesticVendor3, DomesticVendor3, FAPostingGroup.Equipment()); end; local procedure CreateMainAssetComponents() @@ -58,18 +59,19 @@ codeunit 5118 "Create Fixed Asset" local procedure CreateFADepreciationBookForAssets() var ContosoFixedAsset: Codeunit "Contoso Fixed Asset"; - CreateFADepreciationBook: Codeunit "Create FA Depreciation Book"; ContosoUtilities: Codeunit "Contoso Utilities"; + CreateFADepreciationBook: Codeunit "Create FA Depreciation Book"; + CreateFAPostingGroup: Codeunit "Create FA Posting Group"; begin - ContosoFixedAsset.InsertFADepreciationBook(FA000010(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19020101D), 5); - ContosoFixedAsset.InsertFADepreciationBook(FA000020(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19020501D), 5); - ContosoFixedAsset.InsertFADepreciationBook(FA000030(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19020601D), 5); - ContosoFixedAsset.InsertFADepreciationBook(FA000040(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19020101D), 0); - ContosoFixedAsset.InsertFADepreciationBook(FA000050(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19020101D), 10); - ContosoFixedAsset.InsertFADepreciationBook(FA000060(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19020201D), 8); - ContosoFixedAsset.InsertFADepreciationBook(FA000070(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19020301D), 4); - ContosoFixedAsset.InsertFADepreciationBook(FA000080(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19020401D), 8); - ContosoFixedAsset.InsertFADepreciationBook(FA000090(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19020201D), 7); + ContosoFixedAsset.InsertFADepreciationBook(FA000010(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19010101D), 5, CreateFAPostingGroup.Vehicles()); + ContosoFixedAsset.InsertFADepreciationBook(FA000020(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19010501D), 5, CreateFAPostingGroup.Vehicles()); + ContosoFixedAsset.InsertFADepreciationBook(FA000030(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19010601D), 5, CreateFAPostingGroup.Vehicles()); + ContosoFixedAsset.InsertFADepreciationBook(FA000040(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19010101D), 0, CreateFAPostingGroup.Equipment()); + ContosoFixedAsset.InsertFADepreciationBook(FA000050(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19010101D), 10, CreateFAPostingGroup.Equipment()); + ContosoFixedAsset.InsertFADepreciationBook(FA000060(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19010201D), 8, CreateFAPostingGroup.Equipment()); + ContosoFixedAsset.InsertFADepreciationBook(FA000070(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19010301D), 4, CreateFAPostingGroup.Equipment()); + ContosoFixedAsset.InsertFADepreciationBook(FA000080(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19010401D), 8, CreateFAPostingGroup.Equipment()); + ContosoFixedAsset.InsertFADepreciationBook(FA000090(), CreateFADepreciationBook.Company(), ContosoUtilities.AdjustDate(19010201D), 7, CreateFAPostingGroup.Equipment()); end; procedure FA000010(): Text[20] @@ -118,22 +120,22 @@ codeunit 5118 "Create Fixed Asset" end; var - Vehicle1Lbl: Label 'Vehicle 1', MaxLength = 100; - Vehicle2Lbl: Label 'Vehicle 2', MaxLength = 100; - Truck1Lbl: Label 'Truck 1', MaxLength = 100; - ConveyorMainAssetLbl: Label 'Conveyor, Main Asset', MaxLength = 100; + CargoLiftLbl: Label 'Cargo Lift', MaxLength = 100; ConveyorBeltLbl: Label 'Conveyor Belt', MaxLength = 100; ConveyorComputerLbl: Label 'Conveyor Computer', MaxLength = 100; - CargoLiftLbl: Label 'Cargo Lift', MaxLength = 100; ConveyorLiftLbl: Label 'Conveyor Lift', MaxLength = 100; - SwitchboardLbl: Label 'Switchboard', MaxLength = 100; + ConveyorMainAssetLbl: Label 'Conveyor, Main Asset', MaxLength = 100; + SerialNoAKW2476111Lbl: Label 'AKW2476111', Locked = true; SerialNoEA12394QLbl: Label 'EA 12 394 Q', Locked = true; SerialNoEA12395QLbl: Label 'EA 12 395 Q', Locked = true; SerialNoEA15397QLbl: Label 'EA 15 397 Q', Locked = true; + SerialNoTELE4476ZLbl: Label 'TELE 4476 Z', Locked = true; SerialNoX23111SW0Lbl: Label '23 111 SW0', Locked = true; SerialNoX23111SW1Lbl: Label '23 111 SW1', Locked = true; SerialNoX23111SW2Lbl: Label '23 111 SW2', Locked = true; SerialNoX23111SW3Lbl: Label '23 111 SW3', Locked = true; - SerialNoAKW2476111Lbl: Label 'AKW2476111', Locked = true; - SerialNoTELE4476ZLbl: Label 'TELE 4476 Z', Locked = true; + SwitchboardLbl: Label 'Switchboard', MaxLength = 100; + Truck1Lbl: Label 'Truck 1', MaxLength = 100; + Vehicle1Lbl: Label 'Vehicle 1', MaxLength = 100; + Vehicle2Lbl: Label 'Vehicle 2', MaxLength = 100; } diff --git a/Apps/W1/ContosoCoffeeDemoDataset/app/DemoData/FixedAsset/4.Historical/CreateFAJnlLines.Codeunit.al b/Apps/W1/ContosoCoffeeDemoDataset/app/DemoData/FixedAsset/4.Historical/CreateFAJnlLines.Codeunit.al new file mode 100644 index 0000000000..96ae5ae307 --- /dev/null +++ b/Apps/W1/ContosoCoffeeDemoDataset/app/DemoData/FixedAsset/4.Historical/CreateFAJnlLines.Codeunit.al @@ -0,0 +1,79 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DemoData.FixedAsset; + +using Microsoft.DemoData.Finance; +using Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Journal; +using Microsoft.FixedAssets.Depreciation; +using Microsoft.FixedAssets.Journal; +using Microsoft.FixedAssets.Setup; + +codeunit 5609 "Create FA Jnl. Lines" +{ + InherentEntitlements = X; + InherentPermissions = X; + EventSubscriberInstance = Manual; + Permissions = tabledata "FA Setup" = r; + + trigger OnRun() + var + ContosoFixedAsset: Codeunit "Contoso Fixed Asset"; + ContosoUtilities: Codeunit "Contoso Utilities"; + CreateGLAccount: Codeunit "Create G/L Account"; + CreateFGLAccount: Codeunit "Create FA GL Account"; + CreateFAJnlTemplate: Codeunit "Create FA Jnl. Template"; + CreateFANoSeries: Codeunit "Create FA No Series"; + CreateFixedAsset: Codeunit "Create Fixed Asset"; + FAJournalBatchName: Code[10]; + FAJournalTemplateName: Code[10]; + BalanceAccountNo: Code[20]; + begin + FASetup.Get(); + FASetup.TestField("Default Depr. Book"); + FAJournalTemplateName := CreateFAJnlTemplate.Assets(); + FAJournalBatchName := CreateFAJnlTemplate.Default(); + BalanceAccountNo := CreateGLAccount.Cash(); + + ContosoFixedAsset.InsertFAGenJournalLine(FAJournalTemplateName, FAJournalBatchName, 10000, CreateFixedAsset.FA000010(), ContosoUtilities.AdjustDate(19010101D), Enum::"Gen. Journal Line FA Posting Type"::"Acquisition Cost", AssetAcquisitionLbl, AcquisitionLbl, Enum::"Gen. Journal Account Type"::"G/L Account", BalanceAccountNo, 65000); + ContosoFixedAsset.InsertFAGenJournalLine(FAJournalTemplateName, FAJournalBatchName, 20000, CreateFixedAsset.FA000020(), ContosoUtilities.AdjustDate(19010101D), Enum::"Gen. Journal Line FA Posting Type"::"Acquisition Cost", AssetAcquisitionLbl, AcquisitionLbl, Enum::"Gen. Journal Account Type"::"G/L Account", BalanceAccountNo, 70000); + ContosoFixedAsset.InsertFAGenJournalLine(FAJournalTemplateName, FAJournalBatchName, 30000, CreateFixedAsset.FA000030(), ContosoUtilities.AdjustDate(19010101D), Enum::"Gen. Journal Line FA Posting Type"::"Acquisition Cost", AssetAcquisitionLbl, AcquisitionLbl, Enum::"Gen. Journal Account Type"::"G/L Account", BalanceAccountNo, 95000); + ContosoFixedAsset.InsertFAGenJournalLine(FAJournalTemplateName, FAJournalBatchName, 40000, CreateFixedAsset.FA000050(), ContosoUtilities.AdjustDate(19010101D), Enum::"Gen. Journal Line FA Posting Type"::"Acquisition Cost", AssetAcquisitionLbl, AcquisitionLbl, Enum::"Gen. Journal Account Type"::"G/L Account", BalanceAccountNo, 15000); + ContosoFixedAsset.InsertFAGenJournalLine(FAJournalTemplateName, FAJournalBatchName, 50000, CreateFixedAsset.FA000060(), ContosoUtilities.AdjustDate(19010101D), Enum::"Gen. Journal Line FA Posting Type"::"Acquisition Cost", AssetAcquisitionLbl, AcquisitionLbl, Enum::"Gen. Journal Account Type"::"G/L Account", BalanceAccountNo, 60000); + ContosoFixedAsset.InsertFAGenJournalLine(FAJournalTemplateName, FAJournalBatchName, 60000, CreateFixedAsset.FA000070(), ContosoUtilities.AdjustDate(19010101D), Enum::"Gen. Journal Line FA Posting Type"::"Acquisition Cost", AssetAcquisitionLbl, AcquisitionLbl, Enum::"Gen. Journal Account Type"::"G/L Account", BalanceAccountNo, 1500); + ContosoFixedAsset.InsertFAGenJournalLine(FAJournalTemplateName, FAJournalBatchName, 70000, CreateFixedAsset.FA000080(), ContosoUtilities.AdjustDate(19010101D), Enum::"Gen. Journal Line FA Posting Type"::"Acquisition Cost", AssetAcquisitionLbl, AcquisitionLbl, Enum::"Gen. Journal Account Type"::"G/L Account", BalanceAccountNo, 11000); + ContosoFixedAsset.InsertFAGenJournalLine(FAJournalTemplateName, FAJournalBatchName, 80000, CreateFixedAsset.FA000090(), ContosoUtilities.AdjustDate(19010101D), Enum::"Gen. Journal Line FA Posting Type"::"Acquisition Cost", AssetAcquisitionLbl, AcquisitionLbl, Enum::"Gen. Journal Account Type"::"G/L Account", BalanceAccountNo, 4000); + Codeunit.Run(Codeunit::"Post FA Jnl. Lines"); + + CalculateDepreciationLines(ContosoUtilities.AdjustDate(19011231D), 1); + CalculateDepreciationLines(ContosoUtilities.AdjustDate(19021231D), 2); + Codeunit.Run(Codeunit::"Post FA Jnl. Lines"); + end; + + local procedure CalculateDepreciationLines(PostingDate: Date; BatchCount: Integer) + var + CalculateDepreciation: Report "Calculate Depreciation"; + begin + CalculateDepreciation.InitializeRequest(FASetup."Default Depr. Book", PostingDate, false, 0, PostingDate, StrSubstNo('%1%2', AssetDepreciationLbl, BatchCount), DepreciationLbl, true); + CalculateDepreciation.UseRequestPage(false); + BindSubscription(this); + CalculateDepreciation.Run(); + UnbindSubscription(this); + end; + + [EventSubscriber(ObjectType::Report, Report::"Calculate Depreciation", OnPostReportOnBeforeConfirmShowGenJournalLines, '', true, true)] + local procedure ConfirmShowGenJournalLines(DeprBook: Record "Depreciation Book"; GenJnlLine: Record "Gen. Journal Line"; GenJnlLineCreatedCount: Integer; var IsHandled: Boolean) + begin + IsHandled := true; + end; + + var + FASetup: Record "FA Setup"; + AcquisitionLbl: Label 'Acquisition', MaxLength = 100; + AssetAcquisitionLbl: Label 'ASSET-ACQ', MaxLength = 20; + AssetDepreciationLbl: Label 'ASSET-DEPR', MaxLength = 20; + DepreciationLbl: Label 'Depreciation', MaxLength = 100; +} \ No newline at end of file diff --git a/Apps/W1/ContosoCoffeeDemoDataset/app/DemoData/FixedAsset/4.Historical/PostFAJnlLines.Codeunit.al b/Apps/W1/ContosoCoffeeDemoDataset/app/DemoData/FixedAsset/4.Historical/PostFAJnlLines.Codeunit.al new file mode 100644 index 0000000000..e55f27611d --- /dev/null +++ b/Apps/W1/ContosoCoffeeDemoDataset/app/DemoData/FixedAsset/4.Historical/PostFAJnlLines.Codeunit.al @@ -0,0 +1,41 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +namespace Microsoft.DemoData.FixedAsset; + +using Microsoft.Finance.GeneralLedger.Journal; +using Microsoft.Finance.GeneralLedger.Posting; + +codeunit 5608 "Post FA Jnl. Lines" +{ + InherentEntitlements = X; + InherentPermissions = X; + EventSubscriberInstance = Manual; + + trigger OnRun() + var + GenJournalLine: Record "Gen. Journal Line"; + CreateFAJnlTemplate: Codeunit "Create FA Jnl. Template"; + FAJournalBatchName: Code[10]; + FAJournalTemplateName: Code[10]; + begin + FAJournalTemplateName := CreateFAJnlTemplate.Assets(); + FAJournalBatchName := CreateFAJnlTemplate.Default(); + + GenJournalLine.SetRange("Journal Template Name", FAJournalTemplateName); + GenJournalLine.SetRange("Journal Batch Name", FAJournalBatchName); + if GenJournalLine.FindFirst() then begin + BindSubscription(this); + Codeunit.Run(Codeunit::"Gen. Jnl.-Post", GenJournalLine); + UnbindSubscription(this); + end; + end; + + [EventSubscriber(ObjectType::Codeunit, Codeunit::"Gen. Jnl.-Post", OnCodeOnBeforeConfirmPostJournalLinesResponse, '', true, true)] + local procedure ConfirmPostJournalLinesResponse(var GenJournalLine: Record "Gen. Journal Line"; var IsHandled: Boolean; var ShouldExit: Boolean) + begin + IsHandled := true; + end; +} \ No newline at end of file diff --git a/Apps/W1/ContosoCoffeeDemoDataset/app/DemoData/FixedAsset/FAModule.Codeunit.al b/Apps/W1/ContosoCoffeeDemoDataset/app/DemoData/FixedAsset/FAModule.Codeunit.al index 0f8edc805c..97949549fc 100644 --- a/Apps/W1/ContosoCoffeeDemoDataset/app/DemoData/FixedAsset/FAModule.Codeunit.al +++ b/Apps/W1/ContosoCoffeeDemoDataset/app/DemoData/FixedAsset/FAModule.Codeunit.al @@ -45,11 +45,13 @@ codeunit 4774 "FA Module" implements "Contoso Demo Data Module" Codeunit.Run(Codeunit::"Create Fixed Asset"); Codeunit.Run(Codeunit::"Create FA Insurance Type"); Codeunit.Run(Codeunit::"Create FA Insurance"); + Codeunit.Run(codeunit::"Create FA Dimension Value"); end; procedure CreateTransactionalData() begin Codeunit.Run(Codeunit::"Create FA Maint. Registration"); + Codeunit.Run(Codeunit::"Create FA Jnl. Lines"); end; procedure CreateHistoricalData() diff --git a/Apps/W1/ContosoCoffeeDemoDataset/app/DemoTool/Contoso Helpers/ContosoFixedAsset.Codeunit.al b/Apps/W1/ContosoCoffeeDemoDataset/app/DemoTool/Contoso Helpers/ContosoFixedAsset.Codeunit.al index 7e81d64906..db578661a2 100644 --- a/Apps/W1/ContosoCoffeeDemoDataset/app/DemoTool/Contoso Helpers/ContosoFixedAsset.Codeunit.al +++ b/Apps/W1/ContosoCoffeeDemoDataset/app/DemoTool/Contoso Helpers/ContosoFixedAsset.Codeunit.al @@ -4,6 +4,7 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.DemoTool.Helpers; +using Microsoft.Finance.GeneralLedger.Journal; using Microsoft.FixedAssets.Depreciation; using Microsoft.FixedAssets.FixedAsset; using Microsoft.FixedAssets.Insurance; @@ -224,10 +225,19 @@ codeunit 4776 "Contoso Fixed Asset" FAPostingGroup.Insert(true); end; + procedure InsertFixedAsset(FANo: Code[20]; Description: Text[100]; FAClassCode: Code[10]; FASubclassCode: Code[20]; FALocationCode: Code[10]; MainAssetComponent: Enum "FA Component Type"; SerialNo: Text[30]; + NextServiceDate: Date; + VendorNo: Code[20]; + MaintenanceVendorNo: Code[20]) + begin + InsertFixedAsset(FANo, Description, FAClassCode, FASubclassCode, FALocationCode, MainAssetComponent, SerialNo, NextServiceDate, VendorNo, MaintenanceVendorNo, ''); + end; + procedure InsertFixedAsset(FANo: Code[20]; Description: Text[100]; FAClassCode: Code[10]; FASubclassCode: Code[20]; FALocationCode: Code[10]; MainAssetComponent: Enum "FA Component Type"; SerialNo: Text[30]; NextServiceDate: Date; VendorNo: Code[20]; - MaintenanceVendorNo: Code[20]) + MaintenanceVendorNo: Code[20]; + FAPostingGroupCode: Code[20]) var FixedAsset: Record "Fixed Asset"; Exists: Boolean; @@ -250,6 +260,7 @@ codeunit 4776 "Contoso Fixed Asset" FixedAsset.Validate("Next Service Date", NextServiceDate); FixedAsset.Validate("Vendor No.", VendorNo); FixedAsset.Validate("Maintenance Vendor No.", MaintenanceVendorNo); + FixedAsset.Validate("FA Posting Group", FAPostingGroupCode); if Exists then FixedAsset.Modify(true) @@ -259,8 +270,8 @@ codeunit 4776 "Contoso Fixed Asset" procedure InsertMainAssetComponent(MainAssetNo: Code[20]; FANo: Code[20]) var - MainAssetComponent: Record "Main Asset Component"; FixedAsset: Record "Fixed Asset"; + MainAssetComponent: Record "Main Asset Component"; Exists: Boolean; begin if MainAssetComponent.Get(MainAssetNo, FANo) then begin @@ -397,6 +408,25 @@ codeunit 4776 "Contoso Fixed Asset" FAJournalBatch.Insert(true); end; + procedure InsertFAGenJournalLine(JournalTemplateName: Code[10]; JournalBatchName: Code[10]; LineNo: Integer; AccountNo: Code[20]; PostingDate: Date; FAPostingType: Enum "Gen. Journal Line FA Posting Type"; DocumentNo: Code[20]; Description: Text[100]; BalAccountType: Enum "Gen. Journal Account Type"; BalAccountNo: Code[20]; Amount: Decimal) + var + GenJournalLine: Record "Gen. Journal Line"; + begin + GenJournalLine.Validate("Journal Template Name", JournalTemplateName); + GenJournalLine.Validate("Journal Batch Name", JournalBatchName); + GenJournalLine.Validate("Line No.", LineNo); + GenJournalLine.Validate("Account Type", Enum::"Gen. Journal Account Type"::"Fixed Asset"); + GenJournalLine.Validate("Account No.", AccountNo); + GenJournalLine.Validate("Posting Date", PostingDate); + GenJournalLine.Validate("FA Posting Type", FAPostingType); + GenJournalLine.Validate("Document No.", DocumentNo); + GenJournalLine.Validate(Description, Description); + GenJournalLine.Validate("Bal. Account Type", BalAccountType); + GenJournalLine.Validate("Bal. Account No.", BalAccountNo); + GenJournalLine.Validate(Amount, Amount); + GenJournalLine.Insert(true); + end; + procedure InsertInsuranceJournalTemplate(Name: Code[10]; Description: Text[80]; NoSeriesCode: Code[20]) var InsuranceJournalTemplate: Record "Insurance Journal Template";