[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;
}
}
Preview:
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