Local Grid &grid;
Local Rowset &gridrs;
Local datetime &in_time;
&emplid = %EmployeeId;
ScrollFlush(Record.ZIN_ATTENDANCE);
If None(ZIN_ATND_SRCH.FROM_DT) Or
None(ZIN_ATND_SRCH.THRU_DT) Then
Error MsgGetText(20001, 395, "Message Not Found");
End-If;
<* Code Commented for future regularization requirement
If ZIN_ATND_SRCH.THRU_DT > %Date Then
Error MsgGetText(20001, 390, "Message Not Found");
End-If;
*>
If ZIN_ATND_SRCH.THRU_DT.Value < ZIN_ATND_SRCH.FROM_DT.Value Then
Error MsgGetText(20001, 385, "Message Not Found");
End-If;
&from_dt = ZIN_ATND_SRCH.FROM_DT;
&to_date = ZIN_ATND_SRCH.THRU_DT;
&diff_days = Abs(Days(ZIN_ATND_SRCH.FROM_DT) - Days(ZIN_ATND_SRCH.THRU_DT));
&curr_day = 0;
&grid = GetGrid(Page.ZIN_ATTEND_DETAILS, "ZIN_ATTENDANCE");
&gridrs = GetLevel0()(1).GetRowset(Scroll.ZIN_ATTENDANCE);
If &diff_days = 0 Then
&diff_days = 0;
End-If;
For &I = 0 To &diff_days
&run_day = AddToDate(&from_dt, 0, 0, &curr_day);
&String = DateTimeToLocalizedString(&run_day, "EEEEEEE");
&curr_day = &curr_day + 1;
&gridrs.InsertRow(&curr_day);
&gridrs(&curr_day).ZIN_DERIVED_LVE.BEGIN_DT.Value = &run_day;
&gridrs(&curr_day).DERIVED_HR.DAY_OF_WEEK.Value = &String;
/* ####### Hussain 09/06/2009 added 'SC" & 'DC' for issue CQPSP00039020 ##############*/
SQLExec("SELECT 'lve' FROM PS_ZIN_LVE_REQUEST WHERE ZIN_LVE_APPROVE_FG IN ('A','SA','SC','DC') AND EMPLID=:1 AND :2 BETWEEN BEGIN_DT AND RETURN_DT", &emplid, &run_day, &flag_lv);
SQLExec("SELECT (SELECT XLATLONGNAME FROM PSXLATITEM WHERE FIELDNAME='ZIN_REASON' AND FIELDVALUE=ZIN_REASON),ZIN_IN_TIME_DTTM FROM PS_ZIN_ATTENDANCE WHERE EMPLID=:1 AND SUBSTRING(CONVERT(CHAR,ZIN_IN_TIME_DTTM,121), 1, 10)=:2", &emplid, &run_day, &flag_at, &in_time);
/* ############# 09/06/2009 added the columns ZIN_REASON,ZIN_APRV_STATUS for cancel AMS enhancement ######################*/
SQLExec("SELECT 'reg',ZIN_REASON,ZIN_APRV_STATUS FROM PS_ZIN_ATND_REGCHK where EMPLID=:1 AND SUBSTRING(CONVERT(CHAR,DATE,121), 1, 10)=:2", &emplid, &run_day, &flag_rg, ®_reason, &approve_status);
SQLExec("SELECT DESCR FROM PS_ZIN_LVE_SCHEDUL S, PS_ZIN_HOLIDAY_DT H WHERE S.BEGIN_DT =(SELECT MAX(S_ED.BEGIN_DT) FROM PS_ZIN_LVE_SCHEDUL S_ED WHERE S_ED.EMPLID = S.EMPLID AND S_ED.EMPL_RCD = S.EMPL_RCD AND S_ED.BEGIN_DT <= :2) AND S.ZIN_HDAY_SCHD=H.ZIN_HDAY_SCHD AND S.EMPLID=:1 AND H.ZIN_HDAY_DT=:2", &emplid, &run_day, &descr);
SQLExec("SELECT ZIN_LVEW_SCHD_ID FROM PS_ZIN_LVE_SCHEDUL S WHERE S.BEGIN_DT =(SELECT MAX (S_ED.BEGIN_DT) FROM PS_ZIN_LVE_SCHEDUL S_ED WHERE S_ED.EMPLID = S.EMPLID AND S_ED.EMPL_RCD = S.EMPL_RCD AND S_ED.BEGIN_DT <= :1) AND EMPLID=:2", &run_day, &emplid, &work_tmpl);
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = "No Data Found";
If All(&flag_at) Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = &flag_at;
End-If;
If All(&descr) Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = &descr | " Holiday";
End-If;
/*########### 21/07/2009 - In time Enhancement ##############*/
If All(&in_time) Then
&intime = DateTimeToLocalizedString(&in_time, "hh:mm:ss aaa");
&gridrs(&curr_day).DERIVED_HR.DESCR.Value = &intime;
End-If;
/*########### 21/07/2009 - In time Enhancement ##############*/
/*########### 17/07/2009 - Reasons Enhancement ##############*/
If All(&flag_at) And
(&flag_at = "Present" Or
&flag_at = "Leave Without Pay" Or
&flag_at = "Training") Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = &flag_at;
Else
If All(&flag_at) And
(&flag_at <> "Present" Or
&flag_at <> "Leave Without Pay" Or
&flag_at <> "Training") Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = "Attendance Regularized";
End-If;
End-If;
/*########### 17/07/2009 - Reasons Enhancement ##############*/
/* ############# 09/06/2009 added the condition "C" for ams Enhancement ############### */
If All(&flag_rg) And
(None(®_reason) Or
&approve_status = "C") Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = "Absent";
End-If;
If All(&flag_rg) And
All(®_reason) And
&approve_status <> "C" Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = "Regularization Applied";
End-If;
If All(&flag_lv) Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = "Leave Application";
End-If;
If All(&flag_lv) And
&flag_at = "Leave Regularization" Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = &flag_at;
Else
If All(&flag_lv) And
All(&flag_at) Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = &flag_at | " / Leave * ";
End-If;
End-If;
If &work_tmpl = "NORMAL WRK" Then
If &String = "Sunday" Or
&String = "Saturday" Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = "Weekly Holiday";
End-If;
End-If;
If &work_tmpl = "FSO WORK" Then
If &String = "Sunday" Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = "Weekly Holiday";
End-If;
End-If;
End-For;
Local Rowset &gridrs;
Local datetime &in_time;
&emplid = %EmployeeId;
ScrollFlush(Record.ZIN_ATTENDANCE);
If None(ZIN_ATND_SRCH.FROM_DT) Or
None(ZIN_ATND_SRCH.THRU_DT) Then
Error MsgGetText(20001, 395, "Message Not Found");
End-If;
<* Code Commented for future regularization requirement
If ZIN_ATND_SRCH.THRU_DT > %Date Then
Error MsgGetText(20001, 390, "Message Not Found");
End-If;
*>
If ZIN_ATND_SRCH.THRU_DT.Value < ZIN_ATND_SRCH.FROM_DT.Value Then
Error MsgGetText(20001, 385, "Message Not Found");
End-If;
&from_dt = ZIN_ATND_SRCH.FROM_DT;
&to_date = ZIN_ATND_SRCH.THRU_DT;
&diff_days = Abs(Days(ZIN_ATND_SRCH.FROM_DT) - Days(ZIN_ATND_SRCH.THRU_DT));
&curr_day = 0;
&grid = GetGrid(Page.ZIN_ATTEND_DETAILS, "ZIN_ATTENDANCE");
&gridrs = GetLevel0()(1).GetRowset(Scroll.ZIN_ATTENDANCE);
If &diff_days = 0 Then
&diff_days = 0;
End-If;
For &I = 0 To &diff_days
&run_day = AddToDate(&from_dt, 0, 0, &curr_day);
&String = DateTimeToLocalizedString(&run_day, "EEEEEEE");
&curr_day = &curr_day + 1;
&gridrs.InsertRow(&curr_day);
&gridrs(&curr_day).ZIN_DERIVED_LVE.BEGIN_DT.Value = &run_day;
&gridrs(&curr_day).DERIVED_HR.DAY_OF_WEEK.Value = &String;
/* ####### Hussain 09/06/2009 added 'SC" & 'DC' for issue CQPSP00039020 ##############*/
SQLExec("SELECT 'lve' FROM PS_ZIN_LVE_REQUEST WHERE ZIN_LVE_APPROVE_FG IN ('A','SA','SC','DC') AND EMPLID=:1 AND :2 BETWEEN BEGIN_DT AND RETURN_DT", &emplid, &run_day, &flag_lv);
SQLExec("SELECT (SELECT XLATLONGNAME FROM PSXLATITEM WHERE FIELDNAME='ZIN_REASON' AND FIELDVALUE=ZIN_REASON),ZIN_IN_TIME_DTTM FROM PS_ZIN_ATTENDANCE WHERE EMPLID=:1 AND SUBSTRING(CONVERT(CHAR,ZIN_IN_TIME_DTTM,121), 1, 10)=:2", &emplid, &run_day, &flag_at, &in_time);
/* ############# 09/06/2009 added the columns ZIN_REASON,ZIN_APRV_STATUS for cancel AMS enhancement ######################*/
SQLExec("SELECT 'reg',ZIN_REASON,ZIN_APRV_STATUS FROM PS_ZIN_ATND_REGCHK where EMPLID=:1 AND SUBSTRING(CONVERT(CHAR,DATE,121), 1, 10)=:2", &emplid, &run_day, &flag_rg, ®_reason, &approve_status);
SQLExec("SELECT DESCR FROM PS_ZIN_LVE_SCHEDUL S, PS_ZIN_HOLIDAY_DT H WHERE S.BEGIN_DT =(SELECT MAX(S_ED.BEGIN_DT) FROM PS_ZIN_LVE_SCHEDUL S_ED WHERE S_ED.EMPLID = S.EMPLID AND S_ED.EMPL_RCD = S.EMPL_RCD AND S_ED.BEGIN_DT <= :2) AND S.ZIN_HDAY_SCHD=H.ZIN_HDAY_SCHD AND S.EMPLID=:1 AND H.ZIN_HDAY_DT=:2", &emplid, &run_day, &descr);
SQLExec("SELECT ZIN_LVEW_SCHD_ID FROM PS_ZIN_LVE_SCHEDUL S WHERE S.BEGIN_DT =(SELECT MAX (S_ED.BEGIN_DT) FROM PS_ZIN_LVE_SCHEDUL S_ED WHERE S_ED.EMPLID = S.EMPLID AND S_ED.EMPL_RCD = S.EMPL_RCD AND S_ED.BEGIN_DT <= :1) AND EMPLID=:2", &run_day, &emplid, &work_tmpl);
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = "No Data Found";
If All(&flag_at) Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = &flag_at;
End-If;
If All(&descr) Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = &descr | " Holiday";
End-If;
/*########### 21/07/2009 - In time Enhancement ##############*/
If All(&in_time) Then
&intime = DateTimeToLocalizedString(&in_time, "hh:mm:ss aaa");
&gridrs(&curr_day).DERIVED_HR.DESCR.Value = &intime;
End-If;
/*########### 21/07/2009 - In time Enhancement ##############*/
/*########### 17/07/2009 - Reasons Enhancement ##############*/
If All(&flag_at) And
(&flag_at = "Present" Or
&flag_at = "Leave Without Pay" Or
&flag_at = "Training") Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = &flag_at;
Else
If All(&flag_at) And
(&flag_at <> "Present" Or
&flag_at <> "Leave Without Pay" Or
&flag_at <> "Training") Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = "Attendance Regularized";
End-If;
End-If;
/*########### 17/07/2009 - Reasons Enhancement ##############*/
/* ############# 09/06/2009 added the condition "C" for ams Enhancement ############### */
If All(&flag_rg) And
(None(®_reason) Or
&approve_status = "C") Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = "Absent";
End-If;
If All(&flag_rg) And
All(®_reason) And
&approve_status <> "C" Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = "Regularization Applied";
End-If;
If All(&flag_lv) Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = "Leave Application";
End-If;
If All(&flag_lv) And
&flag_at = "Leave Regularization" Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = &flag_at;
Else
If All(&flag_lv) And
All(&flag_at) Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = &flag_at | " / Leave * ";
End-If;
End-If;
If &work_tmpl = "NORMAL WRK" Then
If &String = "Sunday" Or
&String = "Saturday" Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = "Weekly Holiday";
End-If;
End-If;
If &work_tmpl = "FSO WORK" Then
If &String = "Sunday" Then
&gridrs(&curr_day).DERIVED_HR.DESCR100.Value = "Weekly Holiday";
End-If;
End-If;
End-For;
No comments:
Post a Comment