Wednesday, May 7, 2025

Code to get the settled invoices for a payment journal in d365fo x++

 [ExtensionOf(classStr(LedgerJournalCheckPost))]

internal final class LedgerJournalCheckpost_Extension

{

    protected void runInternal()

    {

        PROZIPPaymentJournalStaging     ZIPPaymentJournalStaging;

        VendTrans                       vendTrans,vendTransloc;

        VendSettlement                  vendSettlement;

        LedgerJournalTrans              ledgerJournalTrans;

        LedgerJournalTable              ledgerJOurnalTableloc;

 

        next runInternal();

 

        if(ledgerJournalTable.Posted == NoYes::Yes && ledgerJournalTable.JournalType == LedgerJournalType::Payment)

        {

            while select ledgerJournalTrans

                where ledgerJournalTrans.JournalNum == ledgerJournalTable.JournalNum

            {

                select vendTrans

                    where vendTrans.RecId == ledgerJournalTrans.VendTransId;

 

                while select vendSettlement

                    where vendSettlement.TransCompany == vendTrans.DataAreaId

                    && vendSettlement.TransRecId == vendTrans.RecId

                    && vendSettlement.AccountNum == vendTrans.AccountNum

                {

                    select vendTransloc

                        where vendTransloc.RecId == vendSettlement.OffsetRecid;

 

                    select ledgerJOurnalTableloc 

                        where ledgerJOurnalTableloc.JournalNum == vendTransloc.JournalNum;

 

                        ZIPPaymentJournalStaging.PROProcessingStatus    = PROProcessingStatus::Unprocessed;

                        ZIPPaymentJournalStaging.InvoiceVoucher         = vendTransloc.Voucher;

                        ZIPPaymentJournalStaging.Invoice                = vendTransloc.Invoice;

                        ZIPPaymentJournalStaging.insert();

                    }

                }

            }

        }

    }

 

}

No comments:

Post a Comment