Tuesday, October 1, 2013

checklist code

/**********************************************************************************************
Date :05/01/2010
Description : 1.To insert the SOH and checklist.
***********************************************************************************************/
Local ApiObject &oSession;
Local ApiObject &oZinJobCi;
Local ApiObject &oJobCollection;
Local ApiObject &oJob;
Local ApiObject &oPSMessageCollection;
Local ApiObject &oPSMessage;
Local File &LogFile;
Local Record &record;
Local number &i, &k, &j, &seq;
Local string &strErrMsgSetNum, &strErrMsgNum, &strErrMsgText, &strErrType;
Local array of string &MyArray, &myarray2;
Local array of number &myarray1;
Local string &array;

Function insertintochecklistcd(&Emplid As string, &action_dt As date)
  
   SQLExec("DELETE FROM PS_EMPL_CHECKLIST WHERE EMPLID=:1 AND CHECKLIST_CD LIKE '%EXIT%'", &Emplid);
  
   SQLExec("DELETE FROM PS_EMPL_CHKLST_ITM WHERE EMPLID=:1 AND CHECKLIST_CD LIKE '%EXIT%'", &Emplid);
  
   &MyArray = CreateArray("EXIT01", "EXIT02", "EXIT03", "EXIT04", "EXIT05");
   For &i = 1 To &MyArray.Len
      &record = CreateRecord(Record.EMPL_CHECKLIST);
      &record.EMPLID.Value = &Emplid;
      &record.EMPL_RCD.Value = "0";
      &record.CHECKLIST_DT.Value = %Date;
      &record.CHECKLIST_CD.Value = &MyArray [&i];
      &record.RESPONSIBLE_ID.Value = "";
      &record.COMMENTS.Value = Null;
      &record.Insert();
   End-For;
  
   For &i = 1 To &MyArray.Len
      Evaluate &MyArray [&i]
      When = "EXIT01"
         &myarray1 = CreateArray(100, 200, 300, 400, 500, 600, 700, 800, 900);
         &myarray2 = CreateArray("EXIT01", "EXIT02", "EXIT03", "EXIT04", "EXIT05", "EXIT06", "EXIT47", "EXIT48", "EXIT49");
         Break;
      When = "EXIT02"
         &myarray1 = CreateArray(100, 200, 300, 400, 500, 600);
         &myarray2 = CreateArray("EXIT50", "EXIT51", "EXIT52", "EXIT53", "EXIT54", "EXIT55");
         Break;
      When = "EXIT03"
         &myarray1 = CreateArray(100, 200, 300, 400, 500, 600, 700);
         &myarray2 = CreateArray("EXIT24", "EXIT25", "EXIT45", "EXIT46", "EXIT56", "EXIT57", "EXIT58");
         Break;
      When = "EXIT04"
         &myarray1 = CreateArray(100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100);
         &myarray2 = CreateArray("EXIT14", "EXIT15", "EXIT16", "EXIT17", "EXIT18", "EXIT19", "EXIT20", "EXIT21", "EXIT22", "EXIT23", "EXIT44");
         Break;
      When = "EXIT05"
         &myarray1 = CreateArray(100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300);
         &myarray2 = CreateArray("EXIT31", "EXIT32", "EXIT33", "EXIT34", "EXIT35", "EXIT36", "EXIT37", "EXIT38", "EXIT39", "EXIT40", "EXIT41", "EXIT42", "EXIT43");
        
         Break;
      When-Other;
      End-Evaluate;
      &k = 1;
      For &j = 1 To &myarray1.Len
         &grade_flag = "";
         &array = &myarray2 [&k];
        
         &record = CreateRecord(Record.EMPL_CHKLST_ITM);
         &record.EMPLID.Value = &Emplid;
         &record.EMPL_RCD.Value = "0";
         &record.CHECKLIST_DT.Value = %Date;
         &record.CHECKLIST_CD.Value = &MyArray [&i];
         &record.CHECKLIST_SEQ.Value = &myarray1 [&j];
         &record.CHKLST_ITEM_CD.Value = &array;
         &record.ZIN_FWD_ACC_DT.Value = &action_dt;
         /****Layeeque 11-Oct-2010****/
         Evaluate &MyArray [&i]
         When = "EXIT01"
            Evaluate &array
            When = "EXIT03"
            When = "EXIT04";
               &record.BRIEFING_STATUS.Value = "X";
               Break;
            When = "EXIT01"
            When = "EXIT02"
            When = "EXIT05"
            When = "EXIT06"
            When = "EXIT47"
               SQLExec("SELECT 'X' FROM PS_JOB JOB WHERE JOB.EMPLID=:1 AND JOB.EMPL_RCD='0' AND JOB.EFFDT=(SELECT MAX(JOB_ED.EFFDT) FROM PS_JOB JOB_ED WHERE JOB.EMPLID=JOB_ED.EMPLID AND JOB.EMPL_RCD=JOB_ED.EMPL_RCD AND JOB_ED.EFFDT<=GETDATE()) AND JOB.EFFSEQ=(SELECT MAX(JOB_EQ.EFFSEQ) FROM PS_JOB JOB_EQ WHERE JOB.EMPLID=JOB_EQ.EMPLID AND JOB.EMPL_RCD=JOB_EQ.EMPL_RCD AND JOB_EQ.EFFDT=JOB.EFFDT) AND JOB.GRADE IN ('102','104','105')", &Emplid, &grade_flag);
               If &grade_flag = "X" Then
                  &record.BRIEFING_STATUS.Value = "X";
                 
               Else
                  &record.BRIEFING_STATUS.Value = "I";
               End-If;
               Break;
            When = "EXIT48"
            When = "EXIT49"
               &grade_flag = "";
               SQLExec("SELECT 'X' FROM PS_JOB JOB WHERE JOB.EMPLID=:1 AND JOB.EMPL_RCD='0' AND JOB.EFFDT=(SELECT MAX(JOB_ED.EFFDT) FROM PS_JOB JOB_ED WHERE JOB.EMPLID=JOB_ED.EMPLID AND JOB.EMPL_RCD=JOB_ED.EMPL_RCD AND JOB_ED.EFFDT<=GETDATE()) AND JOB.EFFSEQ=(SELECT MAX(JOB_EQ.EFFSEQ) FROM PS_JOB JOB_EQ WHERE JOB.EMPLID=JOB_EQ.EMPLID AND JOB.EMPL_RCD=JOB_EQ.EMPL_RCD AND JOB_EQ.EFFDT=JOB.EFFDT) AND JOB.GRADE NOT IN ('601','602','701','702','703')", &Emplid, &grade_flag);
               If &grade_flag = "X" Then
                  &record.BRIEFING_STATUS.Value = "X";
               Else
                  &record.BRIEFING_STATUS.Value = "I";
               End-If;
               Break;
              
            When-Other;
               &record.BRIEFING_STATUS.Value = "I";
               Break;
            End-Evaluate;
         When = "EXIT02"
            Evaluate &array
            When = "EXIT52"
               &grade_flag = "";
               SQLExec("SELECT 'X' FROM PS_JOB JOB WHERE JOB.EMPLID=:1 AND JOB.EMPL_RCD='0' AND JOB.EFFDT=(SELECT MAX(JOB_ED.EFFDT) FROM PS_JOB JOB_ED WHERE JOB.EMPLID=JOB_ED.EMPLID AND JOB.EMPL_RCD=JOB_ED.EMPL_RCD AND JOB_ED.EFFDT<=GETDATE()) AND JOB.EFFSEQ=(SELECT MAX(JOB_EQ.EFFSEQ) FROM PS_JOB JOB_EQ WHERE JOB.EMPLID=JOB_EQ.EMPLID AND JOB.EMPL_RCD=JOB_EQ.EMPL_RCD AND JOB_EQ.EFFDT=JOB.EFFDT) AND JOB.GRADE IN ('101','102','103','104','105','106','107')", &Emplid, &grade_flag);
               If &grade_flag = "X" Then
                  &record.BRIEFING_STATUS.Value = "X";
               Else
                  &record.BRIEFING_STATUS.Value = "I";
               End-If;
               Break;
            When = "EXIT54"
               &grade_flag = "";
               SQLExec("SELECT 'X' FROM PS_JOB JOB WHERE JOB.EMPLID=:1 AND JOB.EMPL_RCD='0' AND JOB.EFFDT=(SELECT MAX(JOB_ED.EFFDT) FROM PS_JOB JOB_ED WHERE JOB.EMPLID=JOB_ED.EMPLID AND JOB.EMPL_RCD=JOB_ED.EMPL_RCD AND JOB_ED.EFFDT<=GETDATE()) AND JOB.EFFSEQ=(SELECT MAX(JOB_EQ.EFFSEQ) FROM PS_JOB JOB_EQ WHERE JOB.EMPLID=JOB_EQ.EMPLID AND JOB.EMPL_RCD=JOB_EQ.EMPL_RCD AND JOB_EQ.EFFDT=JOB.EFFDT) AND JOB.GRADE NOT IN ('601','602','701','702','703')", &Emplid, &grade_flag);
               If &grade_flag = "X" Then
                  &record.BRIEFING_STATUS.Value = "X";
               Else
                  &record.BRIEFING_STATUS.Value = "I";
               End-If;
               Break;
            When-Other;
               &record.BRIEFING_STATUS.Value = "I";
               Break;
            End-Evaluate;
            /****Layeeque 11-Oct-2010****/
            rem If &MyArray [&i] = "EXIT03" Then /*Layeeque*/;
         When = "EXIT03"
            SQLExec("SELECT JOB.DEPTID FROM PS_JOB JOB WHERE JOB.EMPLID=:1 AND JOB.EMPL_RCD='0' AND JOB.EFFDT=(SELECT MAX(JOB_ED.EFFDT) FROM PS_JOB JOB_ED WHERE JOB.EMPLID=JOB_ED.EMPLID AND JOB.EMPL_RCD=JOB_ED.EMPL_RCD AND JOB_ED.EFFDT<=GETDATE()) AND JOB.EFFSEQ=(SELECT MAX(JOB_EQ.EFFSEQ) FROM PS_JOB JOB_EQ WHERE JOB.EMPLID=JOB_EQ.EMPLID AND JOB.EMPL_RCD=JOB_EQ.EMPL_RCD AND JOB_EQ.EFFDT=JOB.EFFDT)", &Emplid, &DEPTID);
            SQLExec("SELECT DEP.DESCR FROM PS_DEPT_TBL DEP WHERE DEP.DEPTID=:1 AND DEP.EFF_STATUS='A' AND DEP.SETID='TALIC' AND DEP.EFFDT=(SELECT MAX(DEPT.EFFDT) FROM PS_DEPT_TBL DEPT WHERE DEPT.SETID=DEP.SETID AND DEPT.DEPTID=DEP.DEPTID AND DEPT.EFFDT<=GETDATE())", &DEPTID, &dept_descr);
            Evaluate &dept_descr
            When = "Unit Manager Model (L0-L4)"
            When = "Banca FSO -OSCB"
            When = "Banca FSO-UBI"
            When = "Broca FSO-Standard Composite I"
            When = "Wealth Management / DBS Chola"
            When = "Broca FSO Management Muthoot"
               &record.BRIEFING_STATUS.Value = "X";
               Break;
            When-Other
               &record.BRIEFING_STATUS.Value = "I";
               Break;
            End-Evaluate;
            &grade_flag = "";
            SQLExec("SELECT 'X' FROM PS_JOB JOB WHERE JOB.EMPLID=:1 AND JOB.EMPL_RCD='0' AND JOB.EFFDT=(SELECT MAX(JOB_ED.EFFDT) FROM PS_JOB JOB_ED WHERE JOB.EMPLID=JOB_ED.EMPLID AND JOB.EMPL_RCD=JOB_ED.EMPL_RCD AND JOB_ED.EFFDT<=GETDATE()) AND JOB.EFFSEQ=(SELECT MAX(JOB_EQ.EFFSEQ) FROM PS_JOB JOB_EQ WHERE JOB.EMPLID=JOB_EQ.EMPLID AND JOB.EMPL_RCD=JOB_EQ.EMPL_RCD AND JOB_EQ.EFFDT=JOB.EFFDT) AND JOB.GRADE IN ('101','102','103','104','105','106','107')", &Emplid, &grade_flag);
            If &grade_flag = "X" Then
               &record.BRIEFING_STATUS.Value = "X";
            Else
               &record.BRIEFING_STATUS.Value = "I";
            End-If;
            Break;
            <*Else
            &record.BRIEFING_STATUS.Value = "I";
         End-If;*>
         When = "EXIT04"
            Evaluate &array
            When = "EXIT14"
            When = "EXIT16"
            When = "EXIT17"
            When = "EXIT18"
            When = "EXIT19"
            When = "EXIT22"
            When = "EXIT23"
               &record.BRIEFING_STATUS.Value = "X";
               Break;
            When = "EXIT15"
               SQLExec("SELECT 'X' FROM PS_JOB A WHERE A.EFFDT = ( SELECT MAX(A_ED.EFFDT) FROM PS_JOB A_ED WHERE A.EMPLID = A_ED.EMPLID AND A.EMPL_RCD = A_ED.EMPL_RCD AND A_ED.EFFDT <= SUBSTRING(CONVERT(CHAR,GETDATE(),121), 1, 10)) AND A.EFFSEQ = ( SELECT MAX(A_ES.EFFSEQ) FROM PS_JOB A_ES WHERE A.EMPLID = A_ES.EMPLID AND A.EMPL_RCD = A_ES.EMPL_RCD AND A.EFFDT = A_ES.EFFDT) AND A.BUSINESS_UNIT='TALIC' AND A.EMPL_STATUS='A' AND A.EMPLID=:1 AND SUBSTRING(A.DEPTID,7,1)<>'H'", &Emplid, &grade_flag);
               If &grade_flag = "X" Then
                  &record.BRIEFING_STATUS.Value = "X";
               Else
                  &record.BRIEFING_STATUS.Value = "I";
               End-If;
               Break;
            When = "EXIT20"
            When = "EXIT21"
            When = "EXIT44"
               &grade_flag = "";
               SQLExec("SELECT 'X' FROM PS_JOB JOB WHERE JOB.EMPLID=:1 AND JOB.EMPL_RCD='0' AND JOB.EFFDT=(SELECT MAX(JOB_ED.EFFDT) FROM PS_JOB JOB_ED WHERE JOB.EMPLID=JOB_ED.EMPLID AND JOB.EMPL_RCD=JOB_ED.EMPL_RCD AND JOB_ED.EFFDT<=GETDATE()) AND JOB.EFFSEQ=(SELECT MAX(JOB_EQ.EFFSEQ) FROM PS_JOB JOB_EQ WHERE JOB.EMPLID=JOB_EQ.EMPLID AND JOB.EMPL_RCD=JOB_EQ.EMPL_RCD AND JOB_EQ.EFFDT=JOB.EFFDT) AND JOB.GRADE IN ('101','102','103','104','105','106','107')", &Emplid, &grade_flag);
               If &grade_flag = "X" Then
                  &record.BRIEFING_STATUS.Value = "X";
               Else
                  &record.BRIEFING_STATUS.Value = "I";
               End-If;
               Break;
              
            When-Other;
               &record.BRIEFING_STATUS.Value = "I";
            End-Evaluate;
         When-Other;
            &record.BRIEFING_STATUS.Value = "I";
         End-Evaluate;
         &record.STATUS_DT.Value = %Date;
         &record.Insert();
         &k = &k + 1;
         &grade_flag = "";
      End-For;
   End-For;
End-Function;

No comments: