Olá Pessoal,
Tudo bem?
Essa semana me deparei em uma situação em que precisava gerar um diário de registro de depreciação para um ativo fixo através de X++. Achei interessante compartilhar com vocês caso se encontrem na mesma situação algum dia.
class AssetSplit_AssetDepBookJournalTable { AssetDepBookJournalTable assetDepBookJournalTable; } // Criar o cabeçalho do diário public assetDepBookJournalTable createAssetDepBookJournalTable(JournalNameId _journalNameId) { AssetJournalId journalId; assetDepBookJournalTable.initValue(); journalId = AssetDepBookJournalTableData::nextJournalId(); assetDepBookJournalTable.JournalId = journalId; assetDepBookJournalTable.JournalNameId = _journalNameId; assetDepBookJournalTable.JournalType = AssetDepBookJournalType::DepreciationBooks; assetDepBookJournalTable.insert(); return assetDepBookJournalTable; } // Criar a linha para o diário public void createAssetDepBookJournalTrans(JournalId _journalId, AssetTransTypeDepBookJournal _assetTransTypeDepBookJournal, TransDate _transDate, AssetDepreciationBookId _assetDepreciationBookId, LedgerJournalTransTxt _ledgerJournalTransTxt, AmountCur _paymentAmount, AssetId _assetId, CurrencyCode _currencyCode = CompanyInfo::standardCurrency()) { AssetDepBookJournalTrans assetDepBookJournalTrans; assetDepBookJournalTrans.clear(); assetDepBookJournalTrans.JournalId = _journalId; assetDepBookJournalTrans.TransDate = _transDate; assetDepBookJournalTrans.TransactionType = _assetTransTypeDepBookJournal; assetDepBookJournalTrans.DepreciationBookId = _assetDepreciationBookId; assetDepBookJournalTrans.Txt = _ledgerJournalTransTxt; if (_paymentAmount < 0) { assetDepBookJournalTrans.AmountCurDebit = Currency::amount(-_paymentAmount,_currencyCode); } else { assetDepBookJournalTrans.AmountCurCredit = Currency::amount(_paymentAmount,_currencyCode); } assetDepBookJournalTrans.AssetId = _assetId; assetDepBookJournalTrans.CurrencyCode = _currencyCode; assetDepBookJournalTrans.insert(); } // Lançar o diário de registro de depreciação public void postAssetDepBookJournalTrans(AssetDepBookJournalTable _assetDepBookJournalTable) { Args args = new Args(); args.record(_assetDepBookJournalTable); AssetDepBookJournalPost::main(args); } //validar diários antes de lançar public void checkAssetDepBookJournalTrans(AssetDepBookJournalTable _assetDepBookJournalTable) { Args args = new Args(); args.record(_assetDepBookJournalTable); AssetDepBookJournalCheck::main(args); } |
Leave a reply