Источник:
http://feedproxy.google.com/~r/daxbr/~3/d59f0fZ1oqI/
==============
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.
X++:
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);
}