web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :
Microsoft Dynamics AX (Archived)

Create Payment Journal with X++

(0) ShareShare
ReportReport
Posted on by 1,080

Hi,

Is there any sample code available that creates a payment journal in AX 2009?

Thanks a lot!

*This post is locked for comments

I have the same question (0)
  • Verified answer
    Ismael Utitiaj Profile Picture
    426 on at
    Re: Create Payment Journal with X++

    // para la version Ax version 5.0 usar la clase SpecTransManager en vez de Specification
    // by ismael

    static server boolean processCheckPayment(CAM_CheckModule    _checkModule)
    {
        LedgerJournalName       ledgerJournalName;
        LedgerJournalTable      ledgerJournalTable;
        LedgerJournalTrans      ledgerJournalTrans;
        LedgerJournalCheckPost  ledgerJournalCheckPost;
     
        Common                  common;
        NumberSeq               numberseq;
        CustTrans               custTrans;
        CustTransOpen           custTransOpen;
        Specification           specOffsetVoucher;
     
        CAM_Parameters          parameters  = CAM_Parameters::find();
        CustTable               custTable   = CustTable::find(_checkModule.CustAccount);
        boolean                 result      = false;
        InvoiceId               invoiceId;
        ;
     
        while select custTransOpen
          where custTransOpen.RefRecIdCheck == _checkModule.RecId  &&
                custTransOpen.UseRefRecId
        {
            custTrans = custTransOpen.custTrans();
            invoiceId = custTrans.Invoice;
     
            try
            {
                ttsbegin;
     
                select firstonly ledgerJournalName
                  where ledgerJournalName.JournalName == parameters.LedgerJournalNameId &&
                        ledgerJournalName.JournalType == LedgerJournalType::CustPayment;
     
                if(!ledgerJournalName.RecId)
                    throw error("@CAM184");
     
                if(ledgerJournalName)
                {
                    ledgerJournalTable.JournalName  = ledgerJournalName.JournalName;
                    ledgerJournalTable.Name         = ledgerJournalName.Name;
                    ledgerJournalTable.insert();
     
                    if(ledgerJournalTable)
                    {
                        numberseq                               = NumberSeq::NewGetVoucherFromCode(ledgerJournalName.VoucherSeries);
                        ledgerJournalTrans.JournalNum           = ledgerJournalTable.JournalNum;
                        ledgerJournalTrans.Voucher              = numberseq.voucher();
                        ledgerJournalTrans.TransDate            = today();
                        ledgerJournalTrans.AccountType          = LedgerJournalACType::Cust;
                        ledgerJournalTrans.Txt                  = CustTable::find(ledgerJournalTrans.AccountNum).Name;
                        ledgerJournalTrans.OffsetAccountType    = ledgerJournalName.OffsetAccountType;
                        ledgerJournalTrans.OffsetAccount        = ledgerJournalName.OffsetAccount;
                        ledgerJournalTrans.Dimension            = ledgerJournalName.Dimension;
                        ledgerJournalTrans.CurrencyCode         = ledgerJournalTable.CurrencyCode;
                        ledgerJournalTrans.ExchRate             = ExchRates::find(ledgerJournalTable.CurrencyCode, datenull(), NoYes::No, NoYes::No).ExchRate;
                        ledgerJournalTrans.TransactionType      = LedgerTransType::Payment;
                        ledgerJournalTrans.PaymMode             = parameters.PaymMode;
                        ledgerJournalTrans.SettleVoucher        = SettlementType::SelectedTransact;
                        ledgerJournalTrans.AccountNum           = custTable.AccountNum;
                        ledgerJournalTrans.AmountCurCredit      = custTransOpen.AmountCur;
                        ledgerJournalTrans.insert();
     
                        select custTransOpen
                          where custTransOpen.AccountNum == custTable.AccountNum &&
                                custTransOpen.RefRecId == CustTrans::findFromInvoice(invoiceId).RecId;
     
                        if(custTransOpen)
                        {
                            common = ledgerJournalTrans;
                            specOffsetVoucher = Specification_OffsetVoucher::newCommon(common, true);
                            if (!specOffsetVoucher.isMarked(custTransOpen.TableId, custTransOpen.RecId))
                                if (ledgerJournalTrans.RecId)
                                    specOffsetVoucher.create(custTransOpen.TableId, custTransOpen.RecId, custTransOpen.AmountCur, ledgerJournalTable.CurrencyCode);
                        }
     
                        ledgerJournalCheckPost = LedgerJournalCheckPost::newLedgerJournalTable(ledgerJournalTable, NoYes::Yes);
                        ledgerJournalCheckPost.run();
                        result = true;
                    }
                }
                ttscommit;
            }
            catch
            {
                ttsabort;
                result = false;
            }
        }
        return result;
    }

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Abhilash Warrier – Community Spotlight

We are honored to recognize Abhilash Warrier as our Community Spotlight honoree for…

Leaderboard > 🔒一 Microsoft Dynamics AX (Archived)

#1
Martin Tocauer Profile Picture

Martin Tocauer 4

#2
Community Member Profile Picture

Community Member 2

#2
Nayyar Siddiqi Profile Picture

Nayyar Siddiqi 2

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans