post ledger
Thu Sep 12 2024 11:38:21 GMT+0000 (Coordinated Universal Time)
Saved by @MinaTimo
[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; } }
Comments