Savings Plan Component Interface Peoplecode

Local File &fileLog;
Local ApiObject &oSession, &oRuSavingsPlansCi;
Local ApiObject &oBenefitParticCollection, &oBenefitPartic;
Local ApiObject &oSavingsPlanCollection, &oSavingsPlan;
Local ApiObject &oSavingsBeneficCollection, &oSavingsBenefic;
Local ApiObject &oSavingsInvestCollection, &oSavingsInvest;
Local ApiObject &oDepBenefAsofCollection, &oDepBenefAsof;
Local Rowset &rsSavings, &rsSavingsInvest;
Local Record &recSavings, &recSavingsInvest;
Local number &numCount, &numTotCount, &numI, &numJ, &numEmplRcd, &numAmount;
Local string &strEmplid, &strPlanType, &strBenPlanPension, &strEligConfig3, &strBenefitPlan, &strInvestOpt;
Local date &dEffdt;


Function errorHandler()
Local ApiObject &oPSMessageCollection, &oPSMessage;
Local number &i;
Local string &sErrMsgSetNum, &sErrMsgNum, &sErrMsgText, &sErrType;
&oPSMessageCollection = &oSession.PSMessages;
For &i = 1 To &oPSMessageCollection.Count
&oPSMessage = &oPSMessageCollection.Item(&i);
&sErrMsgSetNum = &oPSMessage.MessageSetNumber;
&sErrMsgNum = &oPSMessage.MessageNumber;
&sErrMsgText = &oPSMessage.Text;
Local string &STR_Temp;
&STR_Temp = &sErrMsgSetNum | &sErrMsgNum;
Evaluate &STR_Temp
When "9146"
When "1511"
When "9150"
Break;
When-Other
If Substring(&sErrMsgText, 1, 7) = "Warning" Then
Else
&OBJ_LoadFile.WriteLine(" " | &sErrType | " (" | &sErrMsgSetNum | "," | &sErrMsgNum | ") - " | &sErrMsgText);
End-If;
End-Evaluate;
End-For;
&oPSMessageCollection.DeleteAll();
End-Function;

Function errorHandlerSuccess()
Local ApiObject &oPSMessageCollection, &oPSMessage;
Local number &i;
Local string &sErrMsgSetNum, &sErrMsgNum, &sErrMsgText, &sErrType;
&oPSMessageCollection = &oSession.PSMessages;

&oPSMessageCollection.DeleteAll();
End-Function;

&OBJ_LoadFile = GetFile("C:\PS\KZL_SVNG_CNV_LogFile.log", "W", %FilePath_Absolute);
&OBJ_LoadFile.writeline("*********** Error Details while converting Savings Plan Data **********");
&OBJ_LoadFile.writeline("");
&OBJ_LoadFile.writeline("");
&rsSavings = CreateRowset(Record.KZL_SAVING_STG);
&oSession = %Session;
&oSession.PSMessagesMode = 1;

&oRuSavingsPlansCi = &oSession.GetCompIntfc(CompIntfc.KZL_SAVINGS_PLAN_CI);
If &oRuSavingsPlansCi = Null Then
&OBJ_LoadFile.WriteLine("Cannot Get the CI Object ");
Exit (0);
End-If;

&oRuSavingsPlansCi.InteractiveMode = False;
&oRuSavingsPlansCi.GetHistoryItems = True;
&oRuSavingsPlansCi.EditHistoryItems = True;

&rsSavings = CreateRowset(Record.KZL_SAVING_STG);
&numTotCount = &rsSavings.Fill("ORDER BY EMPLID, DATE1 ");
For &numI = 1 To &numTotCount
&recSavings = &rsSavings(&numI).GetRecord(Record.KZL_SAVING_STG);
&OBJ_LoadFile.writeline("Processing Employee ID:- " | &recSavings.EMPLID.Value | " Date " | &recSavings.DATE1.Value);
SQLExec("SELECT B.BENEFIT_RCD_NBR FROM PS_PER_ORG_ASGN B WHERE B.EMPLID = :1 AND B.EMPL_RCD = (SELECT A.EMPL_RCD FROM PS_JOB A WHERE A.EMPLID = :1 AND A.JOB_INDICATOR = 'P' AND A.EFFDT = (SELECT MAX(A_ED.EFFDT) FROM PS_JOB A_ED WHERE A_ED.EMPLID = A.EMPLID AND A_ED.EMPL_RCD = A.EMPL_RCD AND A_ED.EFFDT <= :2) AND A.EFFSEQ = (SELECT MAX(A_EF.EFFSEQ) FROM PS_JOB A_EF WHERE A_EF.EMPLID = A.EMPLID AND A_EF.EMPL_RCD = A.EMPL_RCD AND A_EF.EFFDT = A.EFFDT))", &recSavings.EMPLID.Value, %Date, &numEmplRcd); &oRuSavingsPlansCi.EMPLID = &recSavings.EMPLID.Value; &oRuSavingsPlansCi.EMPL_RCD = &numEmplRcd; &dEffdt = &recSavings.DATE1.Value; If &oRuSavingsPlansCi.Get() Then &strPlanType = "4Z"; &oBenefitParticCollection = &oRuSavingsPlansCi.BENEFIT_PARTIC; &oBenefitPartic = &oBenefitParticCollection.ItemByKeys(&strPlanType); If &oBenefitPartic <> Null Then
Else
&oBenefitPartic = &oBenefitParticCollection.Item(1);
If All(&oBenefitPartic.PLAN_TYPE) Then
&oBenefitPartic = &oBenefitParticCollection.InsertItem(1);
End-If;
&oBenefitPartic.PLAN_TYPE = &strPlanType;
End-If;
&oSavingsPlanCollection = &oBenefitPartic.SAVINGS_PLAN;
&oSavingsPlan = &oSavingsPlanCollection.ItemByKeys(&dEffdt);
If &oSavingsPlan = Null Then
&oSavingsPlan = &oSavingsPlanCollection.Item(1);
If All(&oSavingsPlan.EFFDT_0) Then
&oSavingsPlan = &oSavingsPlanCollection.InsertItem(1);
End-If;
&oSavingsPlan.COVERAGE_BEGIN_DT = &dEffdt;
&oSavingsPlan.EFFDT = &dEffdt;
&oSavingsPlan.EFFDT_0 = &dEffdt;
&oSavingsPlan.COVERAGE_ELECT = &recSavings.COVERAGE_ELECT.Value;
If &recSavings.COVERAGE_ELECT.Value = "E" Then
&oSavingsPlan.COVERAGE_BEGIN_DT = &dEffdt;
&oSavingsPlan.EFFDT = &dEffdt;
&oSavingsPlan.EFFDT_0 = &dEffdt;
&oSavingsPlan.COVERAGE_ELECT = &recSavings.COVERAGE_ELECT.Value;
&oSavingsPlan.COVERAGE_ELECT_DT = &dEffdt;
&oSavingsPlan.BENEFIT_PLAN = &recSavings.BENEFIT_PLAN.Value;
If &recSavings.SAVINGS_COVRG.Value = "1" Then
&oSavingsPlan.SAVINGS_COVRG = "1";
&oSavingsPlan.FLAT_DED_AMT = &recSavings.FLAT_DED_AMT.Value;
&oSavingsPlan.PCT_GROSS = 0;
End-If;
If &recSavings.SAVINGS_COVRG.Value = "2" Then
&oSavingsPlan.SAVINGS_COVRG = "2";
&oSavingsPlan.PCT_GROSS = &recSavings.PCT_GROSS.Value;
&oSavingsPlan.FLAT_DED_AMT = 0;
End-If;
End-If;
If Not &oRuSavingsPlansCi.Save() Then
errorHandler();
&numErrorCount = &numErrorCount + 1;
Else
errorHandlerSuccess();
&numSuccessCount = &numSuccessCount + 1;
End-If;
Else
End-If;
Else
&OBJ_LoadFile.writeline(" Error:- CI Get failed");
errorHandler();
End-If;
CommitWork();
&oRuSavingsPlansCi.Cancel();
End-For;
SQLExec("SELECT COUNT(DISTINCT EMPLID) FROM PS_KZL_SAVING_STG", &nbrDistinctEmplid);
&OBJ_LoadFile.writeline(" ");
&OBJ_LoadFile.writeline(" ");
&OBJ_LoadFile.writeline(" ");
&OBJ_LoadFile.writeline(" Total Number of Employee Processed:- " | &nbrDistinctEmplid);
&OBJ_LoadFile.writeline(" Total Number of Rows Processed:- " | &numTotCount);
&OBJ_LoadFile.writeline(" Total Number of Rows In Error:- " | Round(&numErrorCount, 0));
&OBJ_LoadFile.writeline(" Total Number of Rows Successfully uploaded:- " | Round(&numSuccessCount, 0));



Share/Bookmark