Ensure the Consolidate Account field is automatically updated for all new voucher transactions based on the Consolidate MainAccount setup, to maintain consistency in financial consolidation and reporting.
[ExtensionOf(classStr(LedgerVoucherTransObject))]
internal final class LedgerVoucherTransObject_Extension
{
public void initFromLedgerPostingTransaction(
LedgerPostingTransactionTmp _ledgerPostingTransaction,
LedgerPostingTransactionProjectTmp _projectPostingTransaction)
{
next initFromLedgerPostingTransaction(_ledgerPostingTransaction, _projectPostingTransaction);
MainAccountConsolidateAccount consolidationAccount;
LedgerParameters ledgerParameters = ledgerParameters::find();
RecId mainAccount = MainAccount::findByLedgerDimension(generalJournalAccountEntry.ledgerDimension).RecId;
select firstonly consolidationAccount
where consolidationAccount.MainAccount == mainAccount
&& consolidationAccount.ConsolidateAccountGroup == ledgerParameters.ConsolidateAccountGroup;
generalJournalAccountEntry.ConsolidateAccountName = consolidationAccount.Name;
generalJournalAccountEntry.ConsolidationMainAccount = consolidationAccount.ConsolidationMainAccount;
}
}
====================================================================
Automating Consolidation Account Updates During Subledger Journal Transfer in D365 Finance
[ExtensionOf(classStr(SubledgerJournalTransferCommand))]
internal final class SubledgerJournalTransferCommand_Extension
{
public void executeTransfer(SubledgerJournalTransferRequest subledgerJournalTransferRequest)
{
GeneralJournalAccountEntry generalJournalAccountEntry;
GeneralJournalEntry generalJournalEntryLoc;
SubledgerJournalEntry subledgerJournalEntry;
MainAccountConsolidateAccount consolidateAccount;
LedgerParameters ledgerParameters;
next executeTransfer(subledgerJournalTransferRequest);
// Added by Gopi
while select generalJournalEntryLoc
join subledgerJournalEntry
where subledgerJournalEntry.TransferId == generalJournalEntryLoc.TransferId
&& subledgerJournalEntry.Status == SubledgerJournalEntryStatus::Transferred
&& subledgerJournalEntry.TransferId == transferidVal
{
changecompany(generalJournalEntryLoc.SubledgerVoucherDataAreaId)
{
select crosscompany ledgerParameters
where ledgerParameters.DataAreaId == generalJournalEntryLoc.SubledgerVoucherDataAreaId;
if (ledgerParameters.ConsolidateAccountGroup)
{
while select forupdate generalJournalAccountEntry
where generalJournalAccountEntry.GeneralJournalEntry == generalJournalEntryLoc.RecId
{
select firstonly consolidateAccount
where consolidateAccount.MainAccount == generalJournalAccountEntry.MainAccount
&& consolidateAccount.ConsolidateAccountGroup == ledgerParameters.ConsolidateAccountGroup;
ttsbegin;
generalJournalAccountEntry.ConsolidateAccountName = consolidateAccount.Name;
generalJournalAccountEntry.ConsolidationMainAccount = consolidateAccount.ConsolidationMainAccount;
generalJournalAccountEntry.doUpdate();
ttscommit;
}
}
}
}
}
}
No comments:
Post a Comment