Create Fixed Asset Journal using X++
In this blog article, we will see how we can create Fixed Asset Journal using X++.
Write below code to create Journal Header in LedgerJournalTable Table and Lines record in LedgerJournalTrans and LedgerJournalTrans_Asset Tables.
public void createFixedAssetJournal()
{
LedgerJournalTable ledgerJournalTable;
LedgerJournalTrans ledgerJournalTrans;
LedgerJournalTrans_Asset ledgerJournalTrans_Asset;
Assettable assetTable;
ledgerJournalTable.initValue();
ledgerJournalTable.JournalNum = JournalTableData::newTable(ledgerJournalTable).nextJournalId();
ledgerJournalTable.Posted = NoYes::No;
ledgerJournalTable.JournalName = 'ACQUI';
ledgerJournalTable.JournalType = LedgerJournalType::Assets;
ledgerJournalTable.initFromLedgerJournalName(ledgerJournalTable.JournalName);
ledgerJournalTable.insert();
ledgerjournalTrans.initValue();
ledgerJournalTrans.CurrencyCode = Ledger::accountingCurrency(CompanyInfo::find().RecId);
ledgerJournalTrans.AccountType = LedgerJournalACType::FixedAssets;
ledgerJournalTrans.TransactionType = LedgerTransType::FixedAssets;
ledgerJournalTrans.Approved = NoYes::Yes;
ledgerJournalTrans.Approver = HcmWorker::userId2Worker(curuserid());
ledgerJournalTrans.LineNum = LedgerJournalTrans::lastLineNum(ledgerJournalTrans.JournalNum) + 1;
ledgerJournalTrans.TransDate = DateTimeUtil::getSystemDate(DateTimeUtil::getUserPreferredTimeZone());
ledgerJournalTrans.LedgerDimension = LedgerDynamicAccountHelper::getDynamicAccountFromAccountNumber(AssetTable.AssetId,LedgerJournalACType::FixedAssets);
ledgerJournalTrans.accountName();
ledgerJournalTrans.AmountCurDebit = '45';
ledgerJournalTrans.OffsetAccountType = LedgerJournalACType::Ledger;
ledgerJournalTrans.OffsetLedgerDimension = ledgerJournalTrans.getOffsetLedgerDimensionForLedgerType(AssetLedgerAccounts::assetOffsetLedgerDimension(AssetTable.AssetId, AssetTable.assetBookCurrent().BookId, AssetTransType::Acquisition),curExt());
ledgerJournalTrans.insert();
ledgerJournalTrans_Asset.initValue();
ledgerJournalTrans_Asset.RefRecId = ledgerJournalTrans.RecId;
ledgerJournalTrans_Asset.AssetId = assetTable.assetId;
ledgerJournalTrans_Asset.TransType = AssetTransTypeJournal::Acquisition;
ledgerJournalTrans_Asset.BookId = AssetTable.assetBookCurrent().BookId;
ledgerJournalTrans_asset.insert();
ttsbegin;
LedgerJournalTable.selectForUpdate(true);
LedgerJournalTable.numOfLines = LedgerJournalTable.numOfLines();
LedgerJournalTable.update();
ttscommit;
}
