Preview:
[ExtensionOf(classStr(LedgerJournalCheckPost))]
final  class LedgerJournalCheckPost_Payroll_Extension
{
    protected container postJournal()
    {
        // <NAP>
        PayrunTable             payrunTable;
        EmplPaymentGeneration   emplPaymentGeneration;
        LedgerJournalTable      ledgerJournalTransPayroll;
        BulkTable               BulkTable;
        EmplBulkPaymentGeneration EmplBulkPaymentGeneration;
        // </NAP>
        boolean allOK;
        container c = next postjournal();
        // <NAP>
        allOK=conPeek(c,1);
        if (allOK)
        {
            //select ledgerJournalTablePayroll where ledgerJournalTablePayroll.JournalNum == ledgerJournalTrans.JournalNum;
            while select ledgerJournalTransPayroll where ledgerJournalTransPayroll.JournalNum ==  LedgerJournalTable.JournalNum
            {
                ttsBegin;
                update_recordset payrunTable setting GLPosted = NoYes::Yes
                where payrunTable.ProjPeriodFrom == ledgerJournalTransPayroll.ProjPeriodFrom
                && payrunTable.ProjPeriodId == ledgerJournalTransPayroll.ProjPeriodId
                && payrunTable.ProjPeriodTo == ledgerJournalTransPayroll.ProjPeriodTo
                && payrunTable.PayrunNumber == ledgerJournalTransPayroll.PayrunNumber
                && ledgerJournalTransPayroll.GLPosting == NoYEs::Yes
                && payrunTable.GLPosted ==  NoYEs::No
                && payrunTable.PaymentGenerated == NoYes::No
                && ledgerJournalTransPayroll.PaymentPosting == NoYEs::No;
                ttsCommit;

                ttsBegin;
                update_recordset payrunTable setting PaymentGenerated = NoYes::Yes
                where payrunTable.ProjPeriodFrom == ledgerJournalTransPayroll.ProjPeriodFrom
                && payrunTable.ProjPeriodId == ledgerJournalTransPayroll.ProjPeriodId
                && payrunTable.ProjPeriodTo == ledgerJournalTransPayroll.ProjPeriodTo
                && payrunTable.PayrunNumber == ledgerJournalTransPayroll.PayrunNumber
                && ledgerJournalTransPayroll.GLPosting == NoYEs::No
                && ledgerJournalTransPayroll.PaymentPosting == NoYEs::Yes;
                ttsCommit;

                ttsBegin;
                update_recordset emplPaymentGeneration setting PaymentStatus = PaymentStatus::Posted
                where emplPaymentGeneration.ProjPeriodFrom == ledgerJournalTransPayroll.ProjPeriodFrom
                && emplPaymentGeneration.ProjPeriodId == ledgerJournalTransPayroll.ProjPeriodId
                && emplPaymentGeneration.ProjPeriodTo == ledgerJournalTransPayroll.ProjPeriodTo
                && payrunTable.PayrunNumber == ledgerJournalTransPayroll.PayrunNumber
                && emplPaymentGeneration.Include == NoYes::No
                && ledgerJournalTransPayroll.GLPosting == NoYEs::No
                && ledgerJournalTransPayroll.PaymentPosting == NoYEs::Yes;
                ttsCommit;



                //Bulk

                
                ttsBegin;
                update_recordset BulkTable setting GLPosted = NoYes::Yes
                where BulkTable.ProjPeriodFrom == ledgerJournalTransPayroll.ProjPeriodFrom
                && BulkTable.ProjPeriodId == ledgerJournalTransPayroll.ProjPeriodId
                && BulkTable.ProjPeriodTo == ledgerJournalTransPayroll.ProjPeriodTo
                && BulkTable.BulkNumber == ledgerJournalTransPayroll.BulkNumber
                && ledgerJournalTransPayroll.GLPosting == NoYEs::Yes
                && BulkTable.GLPosted ==  NoYEs::No
                && BulkTable.PaymentGenerated == NoYes::No
                && ledgerJournalTransPayroll.PaymentPosting == NoYEs::No;
                ttsCommit;

                ttsBegin;
                update_recordset BulkTable setting PaymentGenerated = NoYes::Yes
                where BulkTable.ProjPeriodFrom == ledgerJournalTransPayroll.ProjPeriodFrom
                && BulkTable.ProjPeriodId == ledgerJournalTransPayroll.ProjPeriodId
                && BulkTable.ProjPeriodTo == ledgerJournalTransPayroll.ProjPeriodTo
                && BulkTable.BulkNumber == ledgerJournalTransPayroll.BulkNumber
                && ledgerJournalTransPayroll.GLPosting == NoYEs::No
                && ledgerJournalTransPayroll.PaymentPosting == NoYEs::Yes;
                ttsCommit;

                ttsBegin;
                update_recordset EmplBulkPaymentGeneration setting PaymentStatus = PaymentStatus::Posted
                where EmplBulkPaymentGeneration.ProjPeriodFrom == ledgerJournalTransPayroll.ProjPeriodFrom
                && EmplBulkPaymentGeneration.ProjPeriodId == ledgerJournalTransPayroll.ProjPeriodId
                && EmplBulkPaymentGeneration.ProjPeriodTo == ledgerJournalTransPayroll.ProjPeriodTo
                && BulkTable.BulkNumber == ledgerJournalTransPayroll.BulkNumber
                && EmplBulkPaymentGeneration.Include == NoYes::No
                && ledgerJournalTransPayroll.GLPosting == NoYEs::No
                && ledgerJournalTransPayroll.PaymentPosting == NoYEs::Yes;
                ttsCommit;
            }

            //Update Worker status
            if(ledgerJournalTable.IsEOS && HRMParameters::find().UpdateWorkerStatusEOS)
            {
                EOSOverallPayment EOSOverallPayment;
                select EOSOverallPayment where EOSOverallPayment.JournalNum==LedgerJournalTable.JournalNum;
                HcmEmployment   HcmEmployment;
                HcmEmploymentDetail HcmEmploymentDetail;
                DimensionAttribute  DimensionAttribute;
                DimensionAttributeValue  DimensionAttributeValue;
                RecId               HcmEmploymentDetailRecid;

                ttsbegin;
                select forupdate HcmEmployment order by validfrom  asc where HcmEmployment.worker == EOSOverallPayment.HcmWorker;
                HcmEmployment.ValidTo=DateTimeUtil::newDateTime(EOSOverallPayment.DateTillSettleOn,0);
                HcmEmployment.ValidTimeStateUpdateMode(ValidTimeStateUpdate::Correction);
                HcmEmployment.update();
                ttscommit;

                HcmEmploymentDetailRecid = HcmEmploymentDetail::findByEmployment(HcmEmployment.RecId,DateTimeUtil::utcNow(),DateTimeUtil::maxValue()).RecId;

                if(HcmEmploymentDetailRecid)
                {

                    ttsbegin;
                    select forupdate HcmEmploymentDetail where HcmEmploymentDetail.RecId == HcmEmploymentDetailRecid;
                    HcmEmploymentDetail.TransitionDate       = DateTimeUtil::newDateTime(EOSOverallPayment.DateTillSettleOn,0);
                    HcmEmploymentDetail.ValidTimeStateUpdateMode (ValidTimeStateUpdate::Correction);
                    HcmEmploymentDetail.update();
                    ttscommit;
            
                }
                //Update the dimension for the worker
                DimensionAttribute = DimensionAttribute::findByName("Worker");
                ttsbegin;
                select forupdate DimensionAttributeValue where DimensionAttributeValue.DimensionAttribute == DimensionAttribute.RecId
                    && DimensionAttributeValue.DisplayValue==HcmWorker::find(EOSOverallPayment.HcmWorker).PersonnelNumber;
                DimensionAttributeValue.ActiveTo=EOSOverallPayment.DateTillSettleOn;
                DimensionAttributeValue.update();
                ttscommit;

            }

            //End Update Worker status


          
        }
        // </NAP>

        return c;
    }

}
downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter