Ejemplo n.º 1
0
    protected void Delete_Click(object sender, EventArgs e)
    {
        ArrayList list = new ArrayList();

        foreach (DataListItem item in Repeater.Items)
        {
            CheckBox        c = (CheckBox)item.FindControl("DeleteItem");
            HtmlInputHidden h = (HtmlInputHidden)item.FindControl("PublicHolidayID");
            if (c.Checked)
            {
                EPublicHoliday obj = new EPublicHoliday();
                obj.PublicHolidayID = Int32.Parse(h.Value);
                list.Add(obj);
            }
        }
        foreach (EPublicHoliday obj in list)
        {
            if (EPublicHoliday.db.select(dbConn, obj))
            {
                //WebUtils.StartFunction(Session, FUNCTION_CODE);
                db.delete(dbConn, obj);
                //WebUtils.EndFunction(dbConn);
            }
        }
        view = loadData(info, db, Repeater);
        //Response.Redirect(Request.Url.LocalPath);
    }
Ejemplo n.º 2
0
    protected void Repeater_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        HROne.Common.WebUtility.WebControlsLocalization(Session, e.Item.Controls);

        e.Item.FindControl("DeleteItem").Visible = IsAllowEdit;
        if (e.Item.ItemIndex == Repeater.EditItemIndex)
        {
            ebinding = new Binding(dbConn, db);
            ebinding.add((HtmlInputHidden)e.Item.FindControl("PublicHolidayID"));
            ebinding.add(new TextBoxBinder(db, ((WebDatePicker)e.Item.FindControl("PublicHolidayDate")).TextBox, "PublicHolidayDate"));
            ebinding.add((TextBox)e.Item.FindControl("PublicHolidayDesc"));
            ebinding.init(Request, Session);


            EPublicHoliday obj = new EPublicHoliday();
            db.toObject(((DataRowView)e.Item.DataItem).Row, obj);
            Hashtable values = new Hashtable();
            db.populate(obj, values);
            ebinding.toControl(values);
        }
        else
        {
            e.Item.FindControl("Edit").Visible = IsAllowEdit;
            HtmlInputHidden h = (HtmlInputHidden)e.Item.FindControl("PublicHolidayID");
            h.Value = ((DataRowView)e.Item.DataItem)["PublicHolidayID"].ToString();
        }
    }
Ejemplo n.º 3
0
    protected void Add_Click(object sender, EventArgs e)
    {
        Repeater.EditItemIndex = -1;
        EPublicHoliday c = new EPublicHoliday();

        Hashtable values = new Hashtable();

        binding.toValues(values);

        PageErrors errors = PageErrors.getErrors(db, Page.Master);

        errors.clear();


        db.validate(errors, values);

        if (!errors.isEmpty())
        {
            return;
        }


        db.parse(values, c);
        if (!AppUtils.checkDuplicate(dbConn, db, c, errors, "PublicHolidayDate"))
        {
            return;
        }

        db.insert(dbConn, c);

        PublicHolidayDate.Value = string.Empty;
        PublicHolidayDesc.Text  = string.Empty;

        view = loadData(info, db, Repeater);
    }
Ejemplo n.º 4
0
    protected void RadScheduler1_TimeSlotCreated(object sender, TimeSlotCreatedEventArgs e)
    {
        string holidayDescription = string.Empty;

        if (DateTime.Compare(e.TimeSlot.Start.Date, DateTime.Now.Date) == 0)
        {
            e.TimeSlot.CssClass = "RadSchedulerToday";
        }
        else if (e.TimeSlot.Start.Date.DayOfWeek == DayOfWeek.Sunday)
        {
            e.TimeSlot.CssClass = "RadSchedulerHoliday";
        }
        else if (EPublicHoliday.IsHoliday(dbConn, e.TimeSlot.Start.Date))
        {
            e.TimeSlot.CssClass = "RadSchedulerHoliday";
            //Label holidayLabel = new Label();
            //holidayLabel.Text = holidayDescription;
            //holidayLabel.ForeColor = System.Drawing.Color.Red;
            ////holidayLabel.CssClass = "FloatRight";
            ////e.TimeSlot.Control.Controls.AddAt(1, holidayLabel);
            //e.TimeSlot.Control.Controls[0].Controls.AddAt(1, holidayLabel);
        }
        else if (EStatutoryHoliday.IsHoliday(dbConn, e.TimeSlot.Start.Date))
        {
            e.TimeSlot.CssClass = "RadSchedulerHoliday";
            //Label holidayLabel = new Label();
            //holidayLabel.Text = holidayDescription;
            //holidayLabel.ForeColor = System.Drawing.Color.Red;
            ////holidayLabel.CssClass = "FloatRight";
            ////e.TimeSlot.Control.Controls.AddAt(1, holidayLabel);
            //e.TimeSlot.Control.Controls[0].Controls.AddAt(1, holidayLabel);
        }
    }
Ejemplo n.º 5
0
    protected void Repeater_ItemCommand(object source, DataListCommandEventArgs e)
    {
        Button b = (Button)e.CommandSource;



        if (b.ID.Equals("Edit"))
        {
            Repeater.EditItemIndex = e.Item.ItemIndex;
            view = loadData(info, db, Repeater);
            WebUtils.SetEnabledControlSection(AddPanel, false);
        }
        else if (b.ID.Equals("Cancel"))
        {
            Repeater.EditItemIndex = -1;
            view = loadData(info, db, Repeater);
            WebUtils.SetEnabledControlSection(AddPanel, true);
        }
        else if (b.ID.Equals("Save"))
        {
            ebinding = new Binding(dbConn, db);
            ebinding.add((HtmlInputHidden)e.Item.FindControl("PublicHolidayID"));
            ebinding.add(new TextBoxBinder(db, ((WebDatePicker)e.Item.FindControl("PublicHolidayDate")).TextBox, "PublicHolidayDate"));
            ebinding.add((TextBox)e.Item.FindControl("PublicHolidayDesc"));
            ebinding.init(Request, Session);


            EPublicHoliday obj    = new EPublicHoliday();
            Hashtable      values = new Hashtable();

            PageErrors errors = PageErrors.getErrors(db, Page.Master);
            errors.clear();


            ebinding.toValues(values);
            db.validate(errors, values);

            if (!errors.isEmpty())
            {
                return;
            }

            db.parse(values, obj);
            if (!AppUtils.checkDuplicate(dbConn, db, obj, errors, "PublicHolidayDate"))
            {
                return;
            }

            //WebUtils.StartFunction(Session, FUNCTION_CODE);
            db.update(dbConn, obj);
            //WebUtils.EndFunction(dbConn);

            Repeater.EditItemIndex = -1;
            view = loadData(info, db, Repeater);
            WebUtils.SetEnabledControlSection(AddPanel, true);
        }
    }
Ejemplo n.º 6
0
 protected void RadScheduler1_TimeSlotCreated(object sender, TimeSlotCreatedEventArgs e)
 {
     if (DateTime.Compare(e.TimeSlot.Start.Date, DateTime.Now.Date) == 0)
     {
         e.TimeSlot.CssClass = "RadSchedulerToday";
     }
     else if (e.TimeSlot.Start.Date.DayOfWeek == DayOfWeek.Sunday)
     {
         e.TimeSlot.CssClass = "RadSchedulerHoliday";
     }
     else if (EPublicHoliday.IsHoliday(dbConn, e.TimeSlot.Start.Date))
     {
         e.TimeSlot.CssClass = "RadSchedulerHoliday";
     }
     else if (EStatutoryHoliday.IsHoliday(dbConn, e.TimeSlot.Start.Date))
     {
         e.TimeSlot.CssClass = "RadSchedulerHoliday";
     }
 }
Ejemplo n.º 7
0
    protected void btnUpdate_Click(object sender, EventArgs e)
    {
        PageErrors errors = PageErrors.getErrors(db, Page.Master);

        errors.clear();

        if (HolidayTableFile.HasFile)
        {
            string strTmpFolder = HROne.Common.Folder.GetOrCreateSessionTempFolder(Session.SessionID).FullName;;  //Environment.GetFolderPath(Environment.SpecialFolder.InternetCache);
            string strTmpFile   = System.IO.Path.Combine(strTmpFolder, AppUtils.ServerDateTime().ToString("~yyyyMMddHHmmss_") + HolidayTableFile.FileName);
            HolidayTableFile.SaveAs(strTmpFile);


            try
            {
                ArrayList pendingStatHolList = new ArrayList();
                DataTable rawDataTable       = HROne.Import.ExcelImport.parse(strTmpFile, string.Empty).Tables[TABLE_NAME];

                if (rawDataTable.Columns.Contains("Date") && rawDataTable.Columns.Contains("Description"))
                {
                    foreach (DataRow row in rawDataTable.Rows)
                    {
                        EPublicHoliday statHol = new EPublicHoliday();
                        statHol.PublicHolidayDate = WebUtils.toDateTimeObject(row["Date"]);

                        if (statHol.PublicHolidayDate.Year.ToString().Trim().Equals(YearSelect.SelectedValue.Trim()))
                        {
                            if (!row.IsNull("Description"))
                            {
                                statHol.PublicHolidayDesc = (string)row["Description"];
                            }
                            pendingStatHolList.Add(statHol);
                        }
                    }
                }
                else
                {
                    errors.addError("Invalid File");
                }

                if (pendingStatHolList.Count > 0)
                {
                    //WebUtils.StartFunction(Session, FUNCTION_CODE);
                    DBFilter filter = sbinding.createFilter();
                    //filter.add("PublicHolidayDate", true);
                    ArrayList holidayList = EPublicHoliday.db.select(dbConn, filter);
                    foreach (EPublicHoliday statHol in holidayList)
                    {
                        EPublicHoliday updatedHol = null;
                        foreach (EPublicHoliday pendingStatHol in pendingStatHolList)
                        {
                            if (pendingStatHol.PublicHolidayDate.Equals(statHol.PublicHolidayDate))
                            {
                                updatedHol = pendingStatHol;
                                if (!statHol.PublicHolidayDesc.Equals(pendingStatHol.PublicHolidayDesc))
                                {
                                    statHol.PublicHolidayDesc = pendingStatHol.PublicHolidayDesc;
                                    EPublicHoliday.db.update(dbConn, statHol);
                                }
                                break;
                            }
                        }
                        if (updatedHol != null)
                        {
                            pendingStatHolList.Remove(updatedHol);
                        }
                        else
                        {
                            EPublicHoliday.db.delete(dbConn, statHol);
                        }
                    }
                    foreach (EPublicHoliday insertStatHol in pendingStatHolList)
                    {
                        EPublicHoliday.db.insert(dbConn, insertStatHol);
                    }
                    //WebUtils.EndFunction(dbConn);
                }
                else
                {
                    errors.addError("No record is imported");
                }
            }
            catch (Exception)
            {
                errors.addError("Invalid file");
            }
            System.IO.File.Delete(strTmpFile);
        }
        else
        {
            errors.addError("Invalid file");
        }

        Repeater.EditItemIndex = -1;
        view = loadData(info, db, Repeater);
        if (errors.isEmpty())
        {
            errors.addError("Import successful");
        }
    }
Ejemplo n.º 8
0
        protected RosterTableEventList GenerateEventList(ICollection DBObjectList)
        {
            RosterTableEventList tmpEventList = new RosterTableEventList();

            if (DBObjectList != null)
            {
                foreach (DBObject dbObject in DBObjectList)
                {
                    if (dbObject is ERosterTable)
                    {
                        ERosterTable rosterTable = (ERosterTable)dbObject;
                        ERosterCode  rosterCode  = new ERosterCode();
                        rosterCode.RosterCodeID = rosterTable.RosterCodeID;
                        bool hasRecord = ERosterCode.db.select(dbConn, rosterCode);
                        if (hasRecord || rosterCode.RosterCodeID == 0)
                        {
                            RosterTableEvent eventDetail = new RosterTableEvent();
                            eventDetail.Id = RosterTableEvent.ROSTER_TABLE_ID_PREFIX + "_" + rosterTable.RosterTableID;

                            //  Override Start/End time only when the roster code exists
                            if (rosterTable.RosterTableOverrideInTime.Ticks.Equals(0) || !hasRecord)
                            {
                                eventDetail.StartTime = rosterTable.RosterTableDate.Add(rosterCode.RosterCodeInTime.TimeOfDay);
                            }
                            else
                            {
                                eventDetail.StartTime = rosterTable.RosterTableDate.Add(rosterTable.RosterTableOverrideInTime.TimeOfDay);
                            }

                            if (rosterTable.RosterTableOverrideOutTime.Ticks.Equals(0) || !hasRecord)
                            {
                                eventDetail.EndTime = rosterTable.RosterTableDate.Add(rosterCode.RosterCodeOutTime.TimeOfDay);
                            }
                            else
                            {
                                eventDetail.EndTime = rosterTable.RosterTableDate.Add(rosterTable.RosterTableOverrideOutTime.TimeOfDay);
                            }
                            if (eventDetail.StartTime >= eventDetail.EndTime)
                            {
                                eventDetail.EndTime = eventDetail.EndTime.AddDays(1);

                                if (!DisplayOvernightToNextDay)
                                {
                                    eventDetail.EndTime = eventDetail.EndTime.Date;
                                }
                            }

                            EEmpPersonalInfo empInfo = new EEmpPersonalInfo();
                            empInfo.EmpID = rosterTable.EmpID;
                            EEmpPersonalInfo.db.select(dbConn, empInfo);

                            eventDetail.Subject = (hasRecord ? rosterCode.RosterCode : "(unspecified)") + " - " + empInfo.EmpEngDisplayName;
                            eventDetail.ToolTip = eventDetail.Subject;
                            eventDetail.Label   = rosterCode.RosterClientSiteID;

                            eventDetail.RecurrenceInfo = string.Empty;
                            eventDetail.OwnerId        = rosterCode.RosterClientSiteID;

                            tmpEventList.Add(eventDetail);
                        }
                    }
                    else if (dbObject is ELeaveApplication)
                    {
                        ELeaveApplication leaveApplication = (ELeaveApplication)dbObject;
                        ELeaveCode        leaveCode        = new ELeaveCode();
                        leaveCode.LeaveCodeID = leaveApplication.LeaveCodeID;
                        bool hasRecord = ELeaveCode.db.select(dbConn, leaveCode);
                        if (hasRecord)
                        {
                            RosterTableEvent eventDetail = new RosterTableEvent();
                            eventDetail.Id = RosterTableEvent.LEAVEAPP_ID_PREFIX + "_" + leaveApplication.LeaveAppID;

                            if (leaveApplication.LeaveAppUnit.Equals(ELeaveApplication.LEAVEUNIT_DAYS))
                            {
                                eventDetail.StartTime = leaveApplication.LeaveAppDateFrom;
                                eventDetail.EndTime   = leaveApplication.LeaveAppDateTo.AddDays(1);
                            }
                            else
                            {
                                eventDetail.StartTime = leaveApplication.LeaveAppDateFrom;
                                eventDetail.EndTime   = leaveApplication.LeaveAppDateFrom;
                                if (!leaveApplication.LeaveAppTimeFrom.Ticks.Equals(0))
                                {
                                    eventDetail.StartTime = eventDetail.StartTime.Add(leaveApplication.LeaveAppTimeFrom.TimeOfDay);
                                }
                                if (!leaveApplication.LeaveAppTimeTo.Ticks.Equals(0))
                                {
                                    eventDetail.EndTime = eventDetail.EndTime.Add(leaveApplication.LeaveAppTimeTo.TimeOfDay);
                                }

                                if (leaveApplication.LeaveAppUnit.Equals(ELeaveApplication.LEAVEUNIT_AM))
                                {
                                    if (eventDetail.StartTime.Equals(leaveApplication.LeaveAppDateFrom))
                                    {
                                        eventDetail.StartTime = eventDetail.StartTime.Add(new TimeSpan(0, 0, 0));
                                    }
                                    if (eventDetail.EndTime.Equals(leaveApplication.LeaveAppDateFrom))
                                    {
                                        eventDetail.EndTime = eventDetail.EndTime.Add(new TimeSpan(13, 0, 0));
                                    }
                                }
                                if (leaveApplication.LeaveAppUnit.Equals(ELeaveApplication.LEAVEUNIT_PM))
                                {
                                    if (eventDetail.StartTime.Equals(leaveApplication.LeaveAppDateFrom))
                                    {
                                        eventDetail.StartTime = eventDetail.StartTime.Add(new TimeSpan(13, 0, 0));
                                    }
                                    if (eventDetail.EndTime.Equals(leaveApplication.LeaveAppDateFrom))
                                    {
                                        eventDetail.EndTime = eventDetail.EndTime.AddDays(1);
                                    }
                                }
                                else
                                {
                                    if (eventDetail.StartTime.Equals(leaveApplication.LeaveAppDateFrom))
                                    {
                                        eventDetail.StartTime = eventDetail.StartTime.Add(new TimeSpan(0, 0, 0));
                                    }
                                    if (eventDetail.EndTime.Equals(leaveApplication.LeaveAppDateFrom))
                                    {
                                        eventDetail.EndTime = eventDetail.EndTime.AddDays(1);
                                    }
                                }
                            }


                            EEmpPersonalInfo empInfo = new EEmpPersonalInfo();
                            empInfo.EmpID = leaveApplication.EmpID;
                            EEmpPersonalInfo.db.select(dbConn, empInfo);

                            //eventDetail.Subject = (hasRecord ? leaveCode.LeaveCode : "(unspecified)") + " - " + empInfo.EmpEngDisplayName;

                            if (leaveApplication.LeaveAppDays < 0 || leaveApplication.LeaveAppHours < 0)
                            {
                                eventDetail.IsCancel = true;
                            }

                            string LeaveUnitDetail = string.Empty;
                            if (leaveApplication.LeaveAppUnit.Equals("D"))
                            {
                                LeaveUnitDetail = leaveApplication.LeaveAppDays + " " + "Day" + (leaveApplication.LeaveAppDays > 1 ? "s" : string.Empty);
                            }
                            else if (leaveApplication.LeaveAppUnit.Equals("H"))
                            {
                                if (leaveApplication.LeaveAppTimeFrom.Ticks.Equals(0) || leaveApplication.LeaveAppTimeTo.Ticks.Equals(0))
                                {
                                    LeaveUnitDetail = leaveApplication.LeaveAppHours + " " + "Hour" + (leaveApplication.LeaveAppHours > 1 ? "s" : string.Empty);
                                }
                                else
                                {
                                    LeaveUnitDetail = leaveApplication.LeaveAppTimeFrom.ToString("HH:mm") + "-" + leaveApplication.LeaveAppTimeTo.ToString("HH:mm");
                                }
                            }
                            else if (leaveApplication.LeaveAppUnit.Equals("A"))
                            {
                                if (leaveApplication.LeaveAppDays > 0)
                                {
                                    LeaveUnitDetail = "A.M.";
                                }
                                else
                                {
                                    LeaveUnitDetail = "-A.M.";
                                }
                            }
                            else if (leaveApplication.LeaveAppUnit.Equals("P"))
                            {
                                if (leaveApplication.LeaveAppDays > 0)
                                {
                                    LeaveUnitDetail = "P.M.";
                                }
                                else
                                {
                                    LeaveUnitDetail = "-P.M.";
                                }
                            }

                            eventDetail.Subject = (hasRecord ? leaveCode.LeaveCode : "(unspecified)")
                                                  + (string.IsNullOrEmpty(LeaveUnitDetail) ? string.Empty : ("(" + LeaveUnitDetail + ")"))
                                                  + " - " + empInfo.EmpEngDisplayName;
                            eventDetail.ToolTip = eventDetail.Subject;
                            //eventDetail.Label = rosterCode.RosterClientSiteID;

                            eventDetail.RecurrenceInfo = string.Empty;
                            //eventDetail.OwnerId = rosterCode.RosterClientSiteID;

                            tmpEventList.Add(eventDetail);
                        }
                    }
                    else if (dbObject is EPublicHoliday)
                    {
                        EPublicHoliday   holiday     = (EPublicHoliday)dbObject;
                        RosterTableEvent eventDetail = new RosterTableEvent();
                        eventDetail.Id = RosterTableEvent.PUBLICHOLIDAY_PREFIX + "_" + holiday.PublicHolidayID;

                        eventDetail.StartTime = holiday.PublicHolidayDate;
                        eventDetail.EndTime   = holiday.PublicHolidayDate.AddDays(1);



                        eventDetail.Subject = holiday.PublicHolidayDesc;
                        eventDetail.ToolTip = eventDetail.Subject;
                        //eventDetail.Label = rosterCode.RosterClientSiteID;

                        eventDetail.RecurrenceInfo = string.Empty;
                        //eventDetail.OwnerId = rosterCode.RosterClientSiteID;

                        tmpEventList.Add(eventDetail);
                    }
                    else if (dbObject is EStatutoryHoliday)
                    {
                        EStatutoryHoliday holiday     = (EStatutoryHoliday)dbObject;
                        RosterTableEvent  eventDetail = new RosterTableEvent();
                        eventDetail.Id = RosterTableEvent.STATUTORYHOLIDAY_PREFIX + "_" + holiday.StatutoryHolidayID;

                        eventDetail.StartTime = holiday.StatutoryHolidayDate;
                        eventDetail.EndTime   = holiday.StatutoryHolidayDate.AddDays(1);



                        eventDetail.Subject = holiday.StatutoryHolidayDesc;
                        eventDetail.ToolTip = eventDetail.Subject;
                        //eventDetail.Label = rosterCode.RosterClientSiteID;

                        eventDetail.RecurrenceInfo = string.Empty;
                        //eventDetail.OwnerId = rosterCode.RosterClientSiteID;

                        tmpEventList.Add(eventDetail);
                    }
                }
            }
            return(tmpEventList);
        }
Ejemplo n.º 9
0
        public override CrystalDecisions.CrystalReports.Engine.ReportDocument GenerateReport()
        {
            if (EmpIDList.Count > 0)
            {
                DataSet ds = new DataSet();
                ds.ReadXmlSchema(schemaXSDPath);
                DataTable empInfoTable          = ds.Tables["EmpInfo"];
                DataTable attendanceRecordTable = ds.Tables["AttendanceRecord"];

                DateTime periodFrom = new DateTime(year, month, 1);
                DateTime periodTo   = new DateTime(year, month, DateTime.DaysInMonth(year, month));

                foreach (int EmpID in EmpIDList)
                {
                    EEmpPersonalInfo empInfo = new EEmpPersonalInfo();
                    empInfo.EmpID = EmpID;
                    if (EEmpPersonalInfo.db.select(dbConn, empInfo))
                    {
                        DataRow empRow = empInfoTable.NewRow();
                        empRow["EmpID"]      = EmpID;
                        empRow["EmpNo"]      = empInfo.EmpNo;
                        empRow["EmpName"]    = empInfo.EmpEngFullName;
                        empRow["PeriodFrom"] = periodFrom;
                        empRow["PeriodTo"]   = periodTo;

                        EEmpPositionInfo empPos = AppUtils.GetLastPositionInfo(dbConn, periodTo, EmpID);
                        if (empPos != null)
                        {
                            EAuthorizationWorkFlow workFlow = new EAuthorizationWorkFlow();
                            workFlow.AuthorizationWorkFlowID = empPos.AuthorizationWorkFlowIDLeaveApp;
                            if (EAuthorizationWorkFlow.db.select(dbConn, workFlow))
                            {
                                empRow["Section"] = workFlow.AuthorizationWorkFlowDescription;
                            }

                            EWorkHourPattern workHourPattern = new EWorkHourPattern();
                            workHourPattern.WorkHourPatternID = empPos.WorkHourPatternID;
                            if (EWorkHourPattern.db.select(dbConn, workHourPattern))
                            {
                                empRow["RosterGroup"] = workHourPattern.WorkHourPatternCode + " - " + workHourPattern.WorkHourPatternDesc;
                            }
                        }
                        empInfoTable.Rows.Add(empRow);
                    }

                    DBFilter attendanceRecordFilter = new DBFilter();
                    attendanceRecordFilter.add(new Match("EmpID", EmpID));
                    attendanceRecordFilter.add(new Match("AttendanceRecordDate", ">=", periodFrom));
                    attendanceRecordFilter.add(new Match("AttendanceRecordDate", "<=", periodTo));
                    attendanceRecordFilter.add("AttendanceRecordDate", true);
                    ArrayList attendanceRecordList = EAttendanceRecord.db.select(dbConn, attendanceRecordFilter);

                    foreach (EAttendanceRecord attendanceRecord in attendanceRecordList)
                    {
                        DataRow attendanceRecordRow = attendanceRecordTable.NewRow();


                        attendanceRecordRow["AttendanceRecordID"] = attendanceRecord.AttendanceRecordID;
                        attendanceRecordRow["EmpID"] = attendanceRecord.EmpID;
                        attendanceRecordRow["AttendanceRecordDate"] = attendanceRecord.AttendanceRecordDate;
                        if (attendanceRecord.AttendanceRecordWorkStart.Ticks > 0)
                        {
                            attendanceRecordRow["AttendanceRecordWorkStart"] = attendanceRecord.AttendanceRecordWorkStart;
                        }
                        if (attendanceRecord.AttendanceRecordWorkEnd.Ticks > 0)
                        {
                            attendanceRecordRow["AttendanceRecordWorkEnd"] = attendanceRecord.AttendanceRecordWorkEnd;
                        }
                        attendanceRecordRow["AttendanceRecordLateMins"]       = attendanceRecord.AttendanceRecordActualLateMins;
                        attendanceRecordRow["AttendanceRecordEarlyLeaveMins"] = attendanceRecord.AttendanceRecordActualEarlyLeaveMins;
                        if (attendanceRecord.AttendanceRecordIsAbsent && string.IsNullOrEmpty(attendanceRecord.AttendanceRecordRemark))
                        {
                            attendanceRecordRow["AttendanceRecordRemark"] = "Absent";
                        }
                        else
                        {
                            attendanceRecordRow["AttendanceRecordRemark"] = attendanceRecord.AttendanceRecordRemark;
                        }
                        attendanceRecordRow["IsPublicHoliday"] = EPublicHoliday.IsHoliday(dbConn, attendanceRecord.AttendanceRecordDate) || attendanceRecord.AttendanceRecordDate.DayOfWeek == DayOfWeek.Sunday;
                        // Start 0000058, KuangWei, 2014-07-10
                        attendanceRecordRow["AttendanceRecordOvertimeMins"] = attendanceRecord.AttendanceRecordActualOvertimeMins;
                        // End 0000058, KuangWei, 2014-07-10
                        attendanceRecordTable.Rows.Add(attendanceRecordRow);
                    }
                }

                //System.Data.DataTable table = null;
                //foreach (int EmpID in EmpList)
                //{
                //    string select = "P.*,EmpPos.*,Pos.*,Comp.* ";
                //    string from = "from EmpPersonalInfo P LEFT JOIN EmpPositionInfo EmpPos ON P.EmpID=EmpPos.EmpID AND EmpPos.EmpPosEffTo IS NULL LEFT JOIN Position Pos ON EmpPos.PositionID=Pos.PositionID LEFT JOIN Company Comp ON EmpPos.CompanyID=Comp.CompanyID";
                //    DBFilter filter = new DBFilter();
                //    OR or = new OR();
                //    filter.add(new Match("P.EmpID", EmpID));
                //    System.Data.DataTable resulttable = filter.loadData(null, select, from);
                //    if (table == null)
                //        table = resulttable;
                //    else
                //        table.Merge(resulttable);
                //}
                //DBAESEncryptStringFieldAttribute.decode(table, "EmpHKID", true);
                //DBAESEncryptStringFieldAttribute.decode(table, "EmpPassportNo", false);


                //if (reportDocument == null)
                //{
                //    reportDocument = new ReportTemplate.Report_Employee_List();
                //}
                //else
                //{

                //}
                reportDocument.SetDataSource(ds);

                return(reportDocument);
            }
            else
            {
                return(null);
            }
        }