Thursday, 19 May 2016

Create and Post General Journal through x++

static void GeneralJournalCreateandPost(Args _args)
{
    LedgerJournalTable          jourTable;
    LedgerJournalTrans          jourTrans;
    LedgerJournalTableData      jourTableData;
    LedgerJournalTransData      jourTransData;
    LedgerJournalStatic         jourStatic;
    DimensionDynamicAccount     ledgerDim;
    DimensionDynamicAccount     offsetLedgerDim;
    LedgerJournalCheckPost      jourPost;
    ttsBegin;
    ledgerDim = DimensionStorage::getDynamicAccount('000001',LedgerJournalACType::Vend);
    offsetLedgerDim = DimensionStorage::getDynamicAccount('USMF OPER',LedgerJournalACType::Bank);
    jourTableData = JournalTableData::newTable(jourTable);
    jourTable.JournalNum = jourTableData.nextJournalId();
    jourTable.JournalType = LedgerJournalType::Payment;
    jourTable.JournalName = 'IntJrn';
    jourTableData.initFromJournalName(
    LedgerJournalName::find(jourTable.JournalName));
    jourStatic = jourTableData.journalStatic();
    jourTransData = jourStatic.newJournalTransData(
    jourTrans,
    jourTableData);
    jourTransData.initFromJournalTable();
    jourTrans.CurrencyCode = 'USD';
    jourTrans.initValue();
    jourTrans.TransDate = systemDateGet();
    jourTrans.AccountType = LedgerJournalACType::Vend;
    jourTrans.LedgerDimension = ledgerDim;
    jourTrans.Txt = 'Vendor payment journal demo';
    jourTrans.OffsetAccountType = LedgerJournalACType::Bank;
    jourTrans.OffsetLedgerDimension = offsetLedgerDim;
    jourTrans.AmountCurDebit = 1000;
    jourTransData.create();
    jourTable.insert();
    ttsCommit;
   //Post
    jourPost = LedgerJournalCheckPost::newLedgerJournalTable(jourTable,NoYes::Yes);
    jourPost.run();
    info(strFmt("Journal '%1' has been created", jourTable.JournalNum));

}

No comments:

Post a Comment