Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -189,4 +189,14 @@ codeunit 11154 "Create Currency Ex. Rate AT"
CurrencyExchangeRate.Validate("Relational Exch. Rate Amount", RelationalExchRateAmount);
CurrencyExchangeRate.Validate("Relational Adjmt Exch Rate Amt", RelationalAdjmtExchRateAmt);
end;

[EventSubscriber(ObjectType::Codeunit, Codeunit::"Create Add. Reporting Currency", OnBeforeGetResidualCurrencyAccounts, '', false, false)]
local procedure GetResidualCurrencyAccountsAT(var FXGainsAccount: Code[20]; var FXLossesAccount: Code[20]; var IsHandled: Boolean)
var
CreateATGLAccount: Codeunit "Create AT GL Account";
begin
FXGainsAccount := CreateATGLAccount.FCYRealizedExchangeGains();
FXLossesAccount := CreateATGLAccount.FCYRealizedExchangeLosses();
IsHandled := true;
end;
}
Original file line number Diff line number Diff line change
Expand Up @@ -199,4 +199,14 @@ codeunit 11367 "Create Currency Ex. Rate BE"
CurrencyExchangeRate.Validate("Relational Exch. Rate Amount", RelationalExchRateAmount);
CurrencyExchangeRate.Validate("Relational Adjmt Exch Rate Amt", RelationalAdjmtExchRateAmt);
end;

[EventSubscriber(ObjectType::Codeunit, Codeunit::"Create Add. Reporting Currency", OnBeforeGetResidualCurrencyAccounts, '', false, false)]
local procedure GetResidualCurrencyAccountsBE(var FXGainsAccount: Code[20]; var FXLossesAccount: Code[20]; var IsHandled: Boolean)
var
CreateBEGLAccount: Codeunit "Create GL Account BE";
begin
FXGainsAccount := CreateBEGLAccount.RealizedExchRateDiffIncome();
FXLossesAccount := CreateBEGLAccount.RealizedExchRateDiffExpense();
IsHandled := true;
end;
}
Original file line number Diff line number Diff line change
Expand Up @@ -203,4 +203,14 @@ codeunit 11630 "Create CH Currency Ex. Rate"
CurrencyExchangeRate.Validate("Relational Exch. Rate Amount", RelationalExchRateAmount);
CurrencyExchangeRate.Validate("Relational Adjmt Exch Rate Amt", RelationalAdjmtExchRateAmt);
end;

[EventSubscriber(ObjectType::Codeunit, Codeunit::"Create Add. Reporting Currency", OnBeforeGetResidualCurrencyAccounts, '', false, false)]
local procedure GetResidualCurrencyAccountsCH(var FXGainsAccount: Code[20]; var FXLossesAccount: Code[20]; var IsHandled: Boolean)
var
CreateCHGLAccounts: Codeunit "Create CH GL Accounts";
begin
FXGainsAccount := CreateCHGLAccounts.UnrealizedExchRateAdjmts();
FXLossesAccount := CreateCHGLAccounts.UnrealizedExchRateAdjmts();
IsHandled := true;
end;
}
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,14 @@ codeunit 31337 "Create Currency Ex. Rate CZ"
begin
exit(0.026618);
end;

[EventSubscriber(ObjectType::Codeunit, Codeunit::"Create Add. Reporting Currency", OnBeforeGetResidualCurrencyAccounts, '', false, false)]
local procedure GetResidualCurrencyAccountsCZ(var FXGainsAccount: Code[20]; var FXLossesAccount: Code[20]; var IsHandled: Boolean)
var
CreateGLAccountCZ: Codeunit "Create G/L Account CZ";
begin
FXGainsAccount := CreateGLAccountCZ.ExchangeGainsRealized();
FXLossesAccount := CreateGLAccountCZ.ExchangeLossesRealized();
IsHandled := true;
end;
}
Original file line number Diff line number Diff line change
Expand Up @@ -195,4 +195,14 @@ codeunit 11376 "Create DE Currency Ex. Rate"
CurrencyExchangeRate.Validate("Relational Exch. Rate Amount", RelationalExchRateAmount);
CurrencyExchangeRate.Validate("Relational Adjmt Exch Rate Amt", RelationalAdjmtExchRateAmt);
end;

[EventSubscriber(ObjectType::Codeunit, Codeunit::"Create Add. Reporting Currency", OnBeforeGetResidualCurrencyAccounts, '', false, false)]
local procedure GetResidualCurrencyAccountsDe(var FXGainsAccount: Code[20]; var FXLossesAccount: Code[20]; var IsHandled: Boolean)
var
CreateDEGLAcc: Codeunit "Create DE GL Acc.";
begin
FXGainsAccount := CreateDEGLAcc.CurrencyGains();
FXLossesAccount := CreateDEGLAcc.CurrencyLosses();
IsHandled := true;
end;
}
Original file line number Diff line number Diff line change
Expand Up @@ -189,4 +189,14 @@ codeunit 10834 "Create ES Currency Exch"
CurrencyExchangeRate.Validate("Relational Exch. Rate Amount", RelationalExchRateAmount);
CurrencyExchangeRate.Validate("Relational Adjmt Exch Rate Amt", RelationalAdjmtExchRateAmt);
end;

[EventSubscriber(ObjectType::Codeunit, Codeunit::"Create Add. Reporting Currency", OnBeforeGetResidualCurrencyAccounts, '', false, false)]
local procedure GetResidualCurrencyAccountsES(var FXGainsAccount: Code[20]; var FXLossesAccount: Code[20]; var IsHandled: Boolean)
var
CreateESGLAccount: Codeunit "Create ES GL Accounts";
begin
FXGainsAccount := CreateESGLAccount.ExchangeGainPosting();
FXLossesAccount := CreateESGLAccount.RealizedLossesOnExchange();
IsHandled := true;
end;
}
Original file line number Diff line number Diff line change
Expand Up @@ -200,4 +200,14 @@ codeunit 13433 "Create Currency Ex. Rate FI"
CurrencyExchangeRate.Validate("Relational Exch. Rate Amount", RelationalExchRateAmount);
CurrencyExchangeRate.Validate("Relational Adjmt Exch Rate Amt", RelationalAdjmtExchRateAmt);
end;

[EventSubscriber(ObjectType::Codeunit, Codeunit::"Create Add. Reporting Currency", OnBeforeGetResidualCurrencyAccounts, '', false, false)]
local procedure GetResidualCurrencyAccountsFI(var FXGainsAccount: Code[20]; var FXLossesAccount: Code[20]; var IsHandled: Boolean)
var
CreateFIGLAccount: Codeunit "Create FI GL Accounts";
begin
FXGainsAccount := CreateFIGLAccount.Otherfinancialincome2();
FXLossesAccount := CreateFIGLAccount.Financialexpenses9();
IsHandled := true;
end;
}
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,14 @@ codeunit 11500 "Create GB Currency"
Currency.Validate("Realized Gains Acc.", RealizedGainsAcc);
Currency.Validate("Realized Losses Acc.", RealizedLossesAcc);
end;

[EventSubscriber(ObjectType::Codeunit, Codeunit::"Create Add. Reporting Currency", OnBeforeGetResidualCurrencyAccounts, '', false, false)]
local procedure GetResidualCurrencyAccountsGB(var FXGainsAccount: Code[20]; var FXLossesAccount: Code[20]; var IsHandled: Boolean)
var
CreateGLAccount: Codeunit "Create G/L Account";
begin
FXGainsAccount := CreateGLAccount.InterestIncome();
FXLossesAccount := CreateGLAccount.InterestIncome();
IsHandled := true;
end;
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
namespace Microsoft.DemoData.Finance;

using Microsoft.Finance.Currency;
using Microsoft.DemoData.Localization;

codeunit 11536 "Create Currency NL"
{
Expand Down Expand Up @@ -80,4 +81,14 @@ codeunit 11536 "Create Currency NL"
Currency.Validate("Realized Gains Acc.", '');
Currency.Validate("Realized Losses Acc.", '');
end;

[EventSubscriber(ObjectType::Codeunit, Codeunit::"Create Add. Reporting Currency", OnBeforeGetResidualCurrencyAccounts, '', false, false)]
local procedure GetResidualCurrencyAccountsNL(var FXGainsAccount: Code[20]; var FXLossesAccount: Code[20]; var IsHandled: Boolean)
var
CreateNLGLAccount: Codeunit "Create NL GL Accounts";
begin
FXGainsAccount := CreateNLGLAccount.CurrencyGains();
FXLossesAccount := CreateNLGLAccount.CurrencyLosses();
IsHandled := true;
end;
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,14 @@ codeunit 11486 "Create Currency US"
Currency.Validate("Realized Gains Acc.", RealizedGainsAcc);
Currency.Validate("Realized Losses Acc.", RealizedLossesAcc);
end;

[EventSubscriber(ObjectType::Codeunit, Codeunit::"Create Add. Reporting Currency", OnBeforeGetResidualCurrencyAccounts, '', false, false)]
local procedure GetResidualCurrencyAccountsUS(var FXGainsAccount: Code[20]; var FXLossesAccount: Code[20]; var IsHandled: Boolean)
var
CreateUSGLAccount: Codeunit "Create US GL Accounts";
begin
FXGainsAccount := CreateUSGLAccount.CurrencyGains();
FXLossesAccount := CreateUSGLAccount.CurrencyLosses();
IsHandled := true;
end;
}
Original file line number Diff line number Diff line change
@@ -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.DemoData.Finance;

using Microsoft.Finance.Currency;
using Microsoft.Finance.GeneralLedger.Setup;

codeunit 5627 "Create Add. Reporting Currency"
{
InherentEntitlements = X;
InherentPermissions = X;
Permissions =
tabledata "General Ledger Setup" = rm,
tabledata Currency = rm;

trigger OnRun()
begin
ConfigureAdditionalReportingCurrency();
UpdateCurrencyResidualAccounts();
end;

procedure ConfigureAdditionalReportingCurrency()
var
GeneralLedgerSetup: Record "General Ledger Setup";
CreateCurrency: Codeunit "Create Currency";
ACYCode: Code[10];
begin
GeneralLedgerSetup.Get();
ACYCode := GeneralLedgerSetup."LCY Code" = CreateCurrency.EUR() ? CreateCurrency.USD() : CreateCurrency.EUR();
GeneralLedgerSetup."Additional Reporting Currency" := ACYCode;
GeneralLedgerSetup.Modify(true);
end;

procedure UpdateCurrencyResidualAccounts()
var
Currency: Record "Currency";
CreateCurrency: Codeunit "Create Currency";
FXGainsAccount: Code[20];
FXLossesAccount: Code[20];
begin
GetResidualCurrencyAccounts(FXGainsAccount, FXLossesAccount);
Currency.SetFilter(Code, '%1|%2', CreateCurrency.EUR(), CreateCurrency.USD());
if Currency.FindSet(true) then
repeat
Currency.Validate("Residual Gains Account", FXGainsAccount);
Currency.Validate("Residual Losses Account", FXLossesAccount);
Currency.Modify(true);
until Currency.Next() = 0;
end;

local procedure GetResidualCurrencyAccounts(var FXGainsAccount: Code[20]; var FXLossesAccount: Code[20])
var
CreateGLAccount: Codeunit "Create G/L Account";
IsHandled: Boolean;
begin
OnBeforeGetResidualCurrencyAccounts(FXGainsAccount, FXLossesAccount, IsHandled);
if IsHandled then
exit;

FXGainsAccount := CreateGLAccount.RealizedFXGains();
FXLossesAccount := CreateGLAccount.RealizedFXLosses();
end;

[IntegrationEvent(false, false)]
local procedure OnBeforeGetResidualCurrencyAccounts(var FXGainsAccount: Code[20]; var FXLossesAccount: Code[20]; var IsHandled: Boolean)
begin
end;
}
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ codeunit 5415 "Finance Module" implements "Contoso Demo Data Module"
Codeunit.Run(Codeunit::"Create Currency Exchange Rate");
Codeunit.Run(Codeunit::"Create Resource");
Codeunit.Run(Codeunit::"Create Allocation Account");
Codeunit.Run(Codeunit::"Create Add. Reporting Currency");
end;

procedure CreateTransactionalData()
Expand Down