Skip to content

Instantly share code, notes, and snippets.

@davidalencar
Last active February 8, 2017 13:04
Show Gist options
  • Save davidalencar/c9e7a118fdd74d2a8287efc56c512763 to your computer and use it in GitHub Desktop.
Save davidalencar/c9e7a118fdd74d2a8287efc56c512763 to your computer and use it in GitHub Desktop.
private void postJournal(CustTransOpenMobilePaym_AX4B _mobilePaym)
{
CustVendOpenTransManager manager;
LedgerJournalCheckPost ledgerJournalCheckPost;
NumberSeq numberSeq;
ledgerJournalTrans ledgerJournalTrans;
ledgerJournalTable ledgerJournalTable;
AxLedgerJournalTrans axLedgerJournalTrans;
QueryRun qRun = new QueryRun(custTransQuery);
CustTrans custTrans;
CustTransOpen openTrans;
try
{
ttsBegin;
// Create Journal
ledgerJournalTable.initFromLedgerJournalName(_mobilePaym.LedgerJournalNameId);
ledgerJournalTable.insert();
// Create Line
numberSeq = NumberSeq::newGetVoucherFromCode(NumberSequenceTable::find(ledgerJournalTable.ledgerJournalName().NumberSequenceTable).NumberSequence);
axLedgerJournalTrans = new axLedgerJournalTrans();
axLedgerJournalTrans.parmJournalNum(ledgerJournalTable.JournalNum);
axLedgerJournalTrans.parmVoucher(numberSeq.voucher());
axLedgerJournalTrans.parmTransDate(today());
axLedgerJournalTrans.parmDue(today());
axLedgerJournalTrans.parmPaymMode(_mobilePaym.displayPaymMode_AX4B());
axLedgerJournalTrans.parmPayment(_mobilePaym.displayPaymTermId_AX4B());
axLedgerJournalTrans.parmAccountType(LedgerJournalACType::Cust);
axLedgerJournalTrans.parmLedgerDimension(DimensionStorage::getDynamicAccount(_mobilePaym.CustAccount, LedgerJournalACType::Cust));
axLedgerJournalTrans.parmAmountCurCredit(_mobilePaym.AmountCur);
axLedgerJournalTrans.parmTxt(CustParameters::find().MobilePaymTransTxt_AX4B);
axLedgerJournalTrans.parmOffsetAccountType(ledgerJournalTable.ledgerJournalName().OffsetAccountType);
axLedgerJournalTrans.parmOffsetLedgerDimension(ledgerJournalTable.ledgerJournalName().OffsetLedgerDimension);
axLedgerJournalTrans.parmAuthorizationNumber_AX4B(_mobilePaym.AuthorizationNumber);
axLedgerJournalTrans.parmTEFDoc_AX4B(_mobilePaym.TEFDoc);
axLedgerJournalTrans.parmApproved(NoYes::Yes);
axLedgerJournalTrans.parmApprover(HcmWorker::userId2Worker(curUserId()));
axLedgerJournalTrans.parmTransactionType(LedgerTransType::Payment);
axLedgerJournalTrans.save();
//Mark trans to pay
manager = CustVendOpenTransManager::construct(axLedgerJournalTrans.ledgerJournalTrans());
while(qRun.next())
{
openTrans = qRun.get(tableNum(CustTransOpen));
manager.updateTransMarked(openTrans,true);
manager.updateSettleAmount(openTrans, _mobilePaym.AmountCur);
}
//Update line
ledgerJournalTrans = axLedgerJournalTrans.ledgerJournalTrans();
ledgerJournalTrans.selectForUpdate(true);
ledgerJournalTrans.SettleVoucher = SettlementType::SelectedTransact;
ledgerJournalTrans.BankTransType = _mobilePaym.BankTransType;
ledgerJournalTrans.DefaultDimension = ledgerJournalTable.ledgerJournalName().DefaultDimension;
ledgerJournalTrans.OffsetDefaultDimension = ledgerJournalTable.ledgerJournalName().DefaultDimension;
ledgerJournalTrans.OffsetLedgerDimension = ledgerJournalTable.ledgerJournalName().OffsetLedgerDimension;
ledgerJournalTrans.update();
//Post journal
ledgerJournalCheckPost = LedgerJournalCheckPost::newLedgerJournalTable(ledgerJournalTable, NoYes::Yes);
ledgerJournalCheckPost.run();
ttsCommit;
info (ledgerJournalTable.JournalNum);
}
catch
{
ttsAbort;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment