LedgerJournalTable ledgerJournalTable ;
LedgerJournalTrans ledgerJournalTrans;
ledgerJournalTable .JournalName = "WriteOff";
ledgerJournalTable .defaultRow();
if (ledgerJournalTable .validateWrite())
{
ledgerJournalTable .insert();
}
LedgerJournalEngine ledgerJournalEngine = LedgerJournalEngine_Daily::construct();
ledgerJournalEngine.ledgerJournalTable(ledgerJournalTable );
ledgerJournalEngine.newJournalActive(ledgerJournalTable );
ledgerJournalTrans.clear();
ledgerJournalEngine.preCreate(ledgerJournalTrans);
ledgerJournalTrans.initValue();
ledgerJournalEngine.initValue(ledgerJournalTrans);
ledgerJournalTrans.LineNum = 0;
ledgerJournalTrans.TransactionType = LedgerTransType::WriteOff;
ledgerJournalTrans.TransDate = DateTimeUtil::getSystemDate(DateTimeUtil::getUserPreferredTimeZone());
ledgerJournalTrans.AccountType = LedgerJournalACType::Ledger;
ledgerJournalTrans.LedgerDimension = 0;
ledgerJournalTrans.DefaultDimension = 0;
ledgerJournalEngine.accountModified(ledgerJournalTrans);
ledgerJournalTrans.CurrencyCode = 'USD';
ledgerJournalEngine.currencyModified(ledgerJournalTrans);
ledgerJournalTrans.amountCur2DebCred(200);
reasonTable = ReasonTable::find("Test");
ledgerJournalTrans.ReasonRefRecID = ReasonTableRef::createReasonTableRef(reasonTable.Reason, reasonTable.Description);
ledgerJournalTrans.Txt = "Test";
ledgerJournalTrans.SkipBlockedForManualEntryCheck = NoYes::Yes;
// Set the offset account type
ledgerJournalTrans.OffsetAccountType = LedgerJournalACType::Ledger;
ledgerJournalTrans.OffsetLedgerDimension = 0;
ledgerJournalTrans.OffsetDefaultDimension = ledgerJournalTrans.DefaultDimension;
ledgerJournalEngine.offsetAccountModified(ledgerJournalTrans);
ledgerJournalTrans.TaxGroup = '';
ledgerJournalTrans.TaxItemGroup = '';
ledgerJournalTrans.PaymMode = '';
ledgerJournalTrans.PaymSpec = '';
ledgerJournalTrans.Prepayment = 0;
ledgerJournalTrans.BankTransType = '';
ledgerJournalTrans.TransactionType = LedgerTransType::GeneralJournal;
ledgerJournalTrans.insert();
ledgerJournalEngine.voucherTotals(ledgerJournalTrans, true);
// post journal
LedgerJournalCheckPost ledgerJournalCheckPost = LedgerJournalCheckPost::newLedgerJournalTable(ledgerJournalTable, NoYes::Yes,NoYes::Yes );
ledgerJournalCheckPost.run();