Esempio n. 1
0
 public CompensationLeaveBalanceProcess(DatabaseConnection dbConn, int EmpID)
     : base(dbConn, EmpID, 0)
 {
     EntitlePeriodUnit = "Y";
     m_LeaveTypeID     = ELeaveType.COMPENSATION_LEAVE_TYPE(dbConn).LeaveTypeID;
     m_BalanceUnit     = ELeaveBalance.LeaveBalanceUnit.Hour;
 }
Esempio n. 2
0
    protected bool loadObject()
    {
        obj = new ELeaveType();
        bool isNew = WebFormWorkers.loadKeys(db, obj, DecryptedRequest);

        if (!db.select(dbConn, obj))
        {
            return(false);
        }

        Hashtable values = new Hashtable();

        db.populate(obj, values);
        binding.toControl(values);

        if (obj.LeaveType == ELeaveType.LEAVETYPECODE_COMPENSATION)
        {
            LeaveUnit.Text = " Hour(s)";
        }
        else
        {
            LeaveUnit.Text = " Day(s)";
        }


        return(true);
    }
 public PublicHolidayBalanceProcess(DatabaseConnection dbConn, int EmpID)
     : base(dbConn, EmpID, 0)
 {
     EntitlePeriodUnit = "Y";
     m_LeaveTypeID     = ELeaveType.PUBLICHOLIDAY_LEAVE_TYPE(dbConn).LeaveTypeID;
     m_BalanceUnit     = ELeaveBalance.LeaveBalanceUnit.Day;
 }
 public RestDayBalanceProcess(DatabaseConnection dbConn, int EmpID)
     : base(dbConn, EmpID, 0)
 {
     EntitlePeriodUnit = "M";
     m_LeaveTypeID     = ELeaveType.RESTDAY_LEAVE_TYPE(dbConn).LeaveTypeID;
     m_BalanceUnit     = ELeaveBalance.LeaveBalanceUnit.Day;
 }
 public BirthdayLeaveBalanceProcess(DatabaseConnection dbConn, int EmpID)
     : base(dbConn, EmpID, 0)
 {
     EntitlePeriodUnit = "Y";
     m_LeaveTypeID     = ELeaveType.BITYHDAY_LEAVE_TYPE(dbConn).LeaveTypeID;
     m_BalanceUnit     = ELeaveBalance.LeaveBalanceUnit.Day;
 }
        private bool GenerateLeaveBalanceData(int PaySlipID, int EmpID, DateTime AsOfDate)
        {
            bool             hasLeaveBalance = false;
            LeaveBalanceCalc calc            = new LeaveBalanceCalc(dbConn, EmpID, AsOfDate);
            ArrayList        balanceItems    = calc.getCurrentBalanceList();

            foreach (ELeaveBalance b in balanceItems)
            {
                if (b.LeaveTypeID.Equals(ELeaveType.ANNUAL_LEAVE_TYPE(dbConn).LeaveTypeID))
                {
                    hasLeaveBalance = true;
                    DataSet.Payroll_PaySlip.LeaveBalanceRow rr = dataSet.LeaveBalance.NewLeaveBalanceRow();
                    rr.LeaveBalanceID            = b.LeaveBalanceID;
                    rr.EmpID                     = PaySlipID;
                    rr.LeaveBalanceEffectiveDate = b.LeaveBalanceEffectiveDate;
                    rr.LeaveBalanceBF            = b.LeaveBalanceBF;
                    rr.LeaveBalanceEntitled      = b.LeaveBalanceEntitled;
                    rr.LeaveBalanceForfeiture    = b.LeaveBalanceForfeiture + b.ExpiryForfeit;
                    rr.Taken                     = b.Taken;
                    rr.Adjust                    = b.Adjust;
                    rr.Reserved                  = b.Reserved;
                    rr.Balance                   = b.getBalance();
                    rr.Name         = b.Name;
                    rr.Description  = b.Description;
                    rr.StringFormat = b.StringFormat;


                    dataSet.LeaveBalance.Rows.Add(rr);
                }
            }
            return(hasLeaveBalance);
        }
Esempio n. 7
0
    protected bool loadObject()
    {
        obj            = new ELeaveApplication();
        obj.LeaveAppID = CurLeaveAppID;
        if (!ELeaveApplication.db.select(dbConn, obj))
        {
            return(false);
        }

        if (obj.EmpID != UserID)
        {
            return(false);
        }
        Hashtable values = new Hashtable();

        ELeaveApplication.db.populate(obj, values);
        leaveApplicationBinding.toControl(values);
        //EEmpPersonalInfo EmpInfo = new EEmpPersonalInfo();
        //EmpInfo.EmpID = obj.EmpID;
        //if (EEmpPersonalInfo.db.select(dbConn, EmpInfo))
        //    EmpName.Text = EmpInfo.EmpNo + " - " + EmpInfo.EmpEngFullNameWithAlias;

        if (obj.LeaveAppUnit.Equals("D"))
        {
            TimeRow.Visible = false;
            LeaveAppDateToPlaceHolder.Visible = true;
        }
        else
        {
            TimeRow.Visible = true;
            LeaveAppDateToPlaceHolder.Visible = false;
        }

        string     leaveAuthorizedMessage = CONFIRM_MESSAGE;
        ELeaveCode leaveCode = new ELeaveCode();

        leaveCode.LeaveCodeID = obj.LeaveCodeID;
        if (ELeaveCode.db.select(dbConn, leaveCode))
        {
            LeaveCodeIsShowMedicalCertOptionPanel.Visible = leaveCode.LeaveCodeIsShowMedicalCertOption;

            if (leaveCode.LeaveTypeID.Equals(ELeaveType.COMPENSATION_LEAVE_TYPE(dbConn).LeaveTypeID))
            {
                HoursClaimPanel.Visible = true;
            }
            else
            {
                HoursClaimPanel.Visible = false;
            }
        }
        else
        {
            HoursClaimPanel.Visible = false;
        }



        return(true);
    }
    protected ELeaveType GetLeaveTypeFromLeaveCode(int LeaveCodeID)
    {
        ELeaveCode m_leaveCode = ELeaveCode.GetObject(dbConn, LeaveCodeID);

        ELeaveType m_leaveType = ELeaveType.GetObject(dbConn, m_leaveCode.LeaveTypeID);

        return(m_leaveType);
    }
Esempio n. 9
0
    protected void Page_PreRender(object sender, EventArgs e)
    {
        ELeaveType leaveType = new ELeaveType();

        leaveType.LeaveTypeID = CurLeaveTypeID;
        if (ELeaveType.db.select(dbConn, leaveType))
        {
            LeaveTypeID.Text = leaveType.LeaveTypeDesc;
        }
    }
Esempio n. 10
0
    protected void Delete_Click(object sender, EventArgs e)
    {
        PageErrors errors = PageErrors.getErrors(db, Page.Master);

        errors.clear();

        ELeaveType obj = new ELeaveType();

        obj.LeaveTypeID = CurID;
        db.select(dbConn, obj);

        DBFilter leaveCodeFilter = new DBFilter();

        leaveCodeFilter.add(new Match("LeaveTypeID", obj.LeaveTypeID));

        DBFilter leaveApplicationFilter = new DBFilter();

        leaveApplicationFilter.add(new IN("LeaveCodeID", "Select LeaveCodeID from " + ELeaveCode.db.dbclass.tableName, leaveCodeFilter));
        leaveApplicationFilter.add("empid", true);
        ArrayList leaveApplicationList = ELeaveApplication.db.select(dbConn, leaveApplicationFilter);

        if (leaveApplicationList.Count > 0)
        {
            int curEmpID = 0;
            errors.addError(string.Format(HROne.Translation.PageErrorMessage.ERROR_CODE_USED_BY_EMPLOYEE, new string[] { HROne.Common.WebUtility.GetLocalizedString("Leave Type"), obj.LeaveType }));
            foreach (ELeaveApplication leaveApplication in leaveApplicationList)
            {
                EEmpPersonalInfo empInfo = new EEmpPersonalInfo();
                empInfo.EmpID = leaveApplication.EmpID;
                if (EEmpPersonalInfo.db.select(dbConn, empInfo))
                {
                    if (curEmpID != leaveApplication.EmpID)
                    {
                        errors.addError("- " + empInfo.EmpNo + ", " + empInfo.EmpEngFullName);
                        curEmpID = leaveApplication.EmpID;
                    }
                }
                else
                {
                    ELeaveApplication.db.delete(dbConn, leaveApplication);
                }
            }
            errors.addError(HROne.Translation.PageErrorMessage.ERROR_ACTION_ABORT);
            return;
        }
        else
        {
            WebUtils.StartFunction(Session, FUNCTION_CODE);
            ELeaveCode.db.delete(dbConn, leaveCodeFilter);
            ELeavePlanEntitle.db.delete(dbConn, leaveCodeFilter);
            db.delete(dbConn, obj);
            WebUtils.EndFunction(dbConn);
        }
        HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "LeaveType_List.aspx");
    }
Esempio n. 11
0
    protected void RefreshLeaveCodeID()
    {
        HoursClaimPanel.Visible = false;
        if (!string.IsNullOrEmpty(LeaveCodeID.SelectedValue))
        {
            int tmpLeaveCodeID = 0;
            if (int.TryParse(LeaveCodeID.SelectedValue, out tmpLeaveCodeID))
            {
                ELeaveCode leaveCode = new ELeaveCode();
                leaveCode.LeaveCodeID = tmpLeaveCodeID;
                if (ELeaveCode.db.select(dbConn, leaveCode))
                {
                    PayrollProcessPanel.Visible = !leaveCode.LeaveCodeIsSkipPayrollProcess;
                    LeaveCodeIsShowMedicalCertOptionPanel.Visible = leaveCode.LeaveCodeIsShowMedicalCertOption;
                    if (!leaveCode.LeaveCodeIsSkipPayrollProcess)
                    {
                        ELeaveApplication leaveApp = new ELeaveApplication();
                        leaveApp.LeaveAppID = CurID;
                        if (ELeaveApplication.db.select(dbConn, leaveApp))
                        {
                            ELeaveCode prevLeaveCode = new ELeaveCode();
                            prevLeaveCode.LeaveCodeID = leaveApp.LeaveCodeID;
                            if (ELeaveCode.db.select(dbConn, prevLeaveCode))
                            {
                                if (prevLeaveCode.LeaveCodeIsSkipPayrollProcess)
                                {
                                    LeaveAppNoPayProcess.Checked = false;
                                }
                            }
                        }
                    }

                    if (leaveCode.LeaveTypeID.Equals(ELeaveType.COMPENSATION_LEAVE_TYPE(dbConn).LeaveTypeID))
                    {
                        HoursClaimPanel.Visible = true;
                    }
                    else
                    {
                        HoursClaimPanel.Visible = false;
                    }
                }
            }
        }
        if (HoursClaimPanel.Visible)
        {
            LeaveAppDays.AutoPostBack = true;
            LeaveAppDays.TextChanged += new EventHandler(LeaveAppDays_TextChanged);
        }
        else
        {
            LeaveAppDays.AutoPostBack = false;
            LeaveAppDays.TextChanged -= new EventHandler(LeaveAppDays_TextChanged);
        }
    }
    protected void Page_PreRender(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            if (CurID > 0)
            {
                loadObject();
            }
            //if (RequestLeaveAppUnit.SelectedValue.Equals("A") || RequestLeaveAppUnit.SelectedValue.Equals("P"))
            //    btnEstimateTotalLeaveDay.Visible = false;
            //else
            //    btnEstimateTotalLeaveDay.Visible = true;

            //RefreshLeaveAppUnit();
        }

        TimeRow.Visible = (RequestLeaveAppUnit.SelectedValue != "D");
        LeaveAppDateToPlaceHolder.Visible = (RequestLeaveAppUnit.SelectedValue == "D");

        // Start 0000201, Ricky So, 2015-05-28
        RequestLeaveAppDateFromAM.Visible = (RequestLeaveAppUnit.SelectedValue == "D");
        RequestLeaveAppDateToAM.Visible   = (RequestLeaveAppUnit.SelectedValue == "D");
        // End 0000201, Ricky So, 2015-05-28

        int m_leaveCodeID;

        if (int.TryParse(RequestLeaveCodeID.SelectedValue, out m_leaveCodeID))
        {
            ELeaveType m_leaveType = GetLeaveTypeFromLeaveCode(m_leaveCodeID);

            if (m_leaveType != null)
            {
                btnEstimateTotalLeaveDay.Visible = (RequestLeaveAppUnit.SelectedValue == "D" ||
                                                    RequestLeaveAppUnit.SelectedValue == "H" ||
                                                    m_leaveType.LeaveType == ELeaveType.LEAVETYPECODE_COMPENSATION);
                HoursClaimPanel.Visible = (m_leaveType.LeaveType == ELeaveType.LEAVETYPECODE_COMPENSATION);
            }
        }


        if (HoursClaimPanel.Visible)
        {
            RequestLeaveDays.AutoPostBack = true;
            RequestLeaveDays.TextChanged += new EventHandler(LeaveAppDays_TextChanged);
        }
        else
        {
            RequestLeaveDays.AutoPostBack = false;
            RequestLeaveDays.TextChanged -= new EventHandler(LeaveAppDays_TextChanged);
        }
        btnEstimateTotalLeaveDay_Click(sender, e);
    }
Esempio n. 13
0
        //public void RecalculateAfter(DateTime DateAfter)
        //{
        //    foreach (LeaveBalanceProcess balanceProcess in leaveBalanceProcessList)
        //    {
        //        balanceProcess.RecalculateAfter(DateAfter);
        //    }
        //}
        //public void RecalculateAfter(DateTime DateAfter, int LeaveTypeID)
        //{
        //    foreach (LeaveBalanceProcess balanceProcess in leaveBalanceProcessList)
        //    {
        //        if (balanceProcess.LeaveTypeID.Equals(LeaveTypeID))
        //            balanceProcess.RecalculateAfter(DateAfter);
        //    }
        //}

        private void LoadLeaveTypeAndRounding(ELeaveBalance b)
        {
            if (b != null)
            {
                ELeaveType type = new ELeaveType();
                type.LeaveTypeID = b.LeaveTypeID;
                if (ELeaveType.db.select(dbConn, type))
                {
                    b.Name         = type.LeaveType;
                    b.Description  = type.LeaveTypeDesc;
                    b.StringFormat = "0." + string.Empty.PadRight(type.LeaveDecimalPlace, '0');
                }
            }
        }
Esempio n. 14
0
    protected void Save_Click(object sender, EventArgs e)
    {
        ELeaveType c = new ELeaveType();

        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, "LeaveType"))
        {
            return;
        }

        WebUtils.StartFunction(Session, FUNCTION_CODE);
        if (CurID < 0)
        {
//            Utils.MarkCreate(Session, c);

            db.insert(dbConn, c);
            CurID = c.LeaveTypeID;
//            url = Utils.BuildURL(-1, CurID);
        }
        else
        {
//            Utils.Mark(Session, c);
            db.update(dbConn, c);
        }
        WebUtils.EndFunction(dbConn);


        HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "LeaveType_View.aspx?LeaveTypeID=" + CurID);
    }
        //private SickLeaveCat2BalanceProcess CAT2Process = null;
        public SickLeaveBalanceProcess(DatabaseConnection dbConn, int EmpID)
            : base(dbConn, EmpID, 0)
        {
            EntitlePeriodUnit   = "M";
            allowEntitleProrata = false;
            m_LeaveTypeID       = ELeaveType.SLCAT1_LEAVE_TYPE(dbConn).LeaveTypeID;

            ELeaveType Cat2LeaveType = ELeaveType.SLCAT2_LEAVE_TYPE(dbConn);

            if (Cat2LeaveType != null)
            {
                leaveTypeIDSLCat2       = Cat2LeaveType.LeaveTypeID;
                leaveTypeDisabledSLCat2 = Cat2LeaveType.LeaveTypeIsDisabled;


                // Start 2013-12-02, Ricky So, pretend CAT2 always enabled to retain Jimmy's calculation.
                leaveTypeDisabledSLCat2 = false;
                // End 2013-12-02, Ricky So, pretend CAT2 always enabled to retain Jimmy's calculation.
            }
        }
Esempio n. 16
0
    protected bool loadObject()
    {
        DBFilter filterStatus = new DBFilter();

        filterStatus.add(new Match("EmpRequestRecordID", CurRequestID));
        filterStatus.add(new Match("EmpRequestType", EEmpRequest.TYPE_EELEAVEAPP));
        ArrayList empRequestList = EEmpRequest.db.select(dbConn, filterStatus);

        if (empRequestList.Count > 0)
        {
            EEmpRequest empRequest = (EEmpRequest)empRequestList[0];
            if (empRequest.EmpID == UserID)
            {
                string submitStatus = empRequest.EmpRequestStatus;
                if ((submitStatus.Equals(EEmpRequest.STATUS_SUBMITTED) || submitStatus.Equals(EEmpRequest.STATUS_ACCEPTED)) && !submitStatus.Equals(EEmpRequest.STATUS_APPROVED))
                {
                    btnCancel.Visible = true;
                    // Start 0000063, KuangWei, 2014-08-25
                    if (!string.IsNullOrEmpty(empRequest.EmpRequestRejectReason))
                    {
                        RejectReasonRow.Visible = true;
                        lblReject.Visible       = false;
                        lblAuthorize.Visible    = true;
                        lblRejectReason.Text    = empRequest.EmpRequestRejectReason;
                    }
                    else
                    {
                        RejectReasonRow.Visible = false;
                    }
                    // End 0000063, KuangWei, 2014-08-25
                }
                else
                {
                    btnCancel.Visible = false;
                    if (!string.IsNullOrEmpty(empRequest.EmpRequestRejectReason))
                    {
                        RejectReasonRow.Visible = true;
                        // Start 0000063, KuangWei, 2014-08-25
                        lblReject.Visible    = true;
                        lblAuthorize.Visible = false;
                        // End 0000063, KuangWei, 2014-08-25
                        lblRejectReason.Text = empRequest.EmpRequestRejectReason;
                    }
                    else
                    {
                        RejectReasonRow.Visible = false;
                    }
                }
            }
            else
            {
                btnCancel.Visible       = false;
                RejectReasonRow.Visible = false;
            }
            obj = new ERequestLeaveApplication();
            obj.RequestLeaveAppID = CurRequestID;
            if (!db.select(dbConn, obj))
            {
                return(false);
            }
            Emp_LeaveBalance_List1.EmpID    = obj.EmpID;
            Emp_LeaveBalance_List1.AsOfDate = obj.RequestLeaveAppDateFrom;

            Hashtable values = new Hashtable();
            db.populate(obj, values);
            binding.toControl(values);
            //EEmpPersonalInfo EmpInfo = new EEmpPersonalInfo();
            //EmpInfo.EmpID = obj.EmpID;
            //if (EEmpPersonalInfo.db.select(dbConn, EmpInfo))
            //    EmpName.Text = EmpInfo.EmpNo + " - " + EmpInfo.EmpEngFullNameWithAlias;

            if (obj.RequestLeaveAppUnit.Equals("D"))
            {
                TimeRow.Visible = false;
                LeaveAppDateToPlaceHolder.Visible = true;
            }
            else
            {
                TimeRow.Visible = true;
                LeaveAppDateToPlaceHolder.Visible = false;
            }

            string     leaveAuthorizedMessage = CONFIRM_MESSAGE;
            ELeaveCode leaveCode = new ELeaveCode();
            leaveCode.LeaveCodeID = obj.RequestLeaveCodeID;
            if (ELeaveCode.db.select(dbConn, leaveCode))
            {
                LeaveCodeIsShowMedicalCertOptionPanel.Visible = leaveCode.LeaveCodeIsShowMedicalCertOption;

                if (leaveCode.LeaveTypeID.Equals(ELeaveType.COMPENSATION_LEAVE_TYPE(dbConn).LeaveTypeID))
                {
                    HoursClaimPanel.Visible = true;
                }
                else
                {
                    HoursClaimPanel.Visible = false;
                }

                if (leaveCode.LeaveTypeID.Equals(ELeaveType.ANNUAL_LEAVE_TYPE(dbConn).LeaveTypeID))
                {
                    EEmpPersonalInfo empInfo = new EEmpPersonalInfo();
                    empInfo.EmpID = obj.EmpID;
                    if (EEmpPersonalInfo.db.select(dbConn, empInfo))
                    {
                        if (AppUtils.ServerDateTime().Date <= empInfo.EmpProbaLastDate || obj.RequestLeaveAppDateFrom <= empInfo.EmpProbaLastDate)
                        {
                            leaveAuthorizedMessage = AL_AUTHORIZED_BEFORE_PROBATION_MESSAGE;
                        }
                    }
                }
            }
            else
            {
                HoursClaimPanel.Visible = false;
            }

            Authorize.Attributes.Add("onclick", "return confirm(\"" + HROne.Common.WebUtility.GetLocalizedString(leaveAuthorizedMessage) + "\");");
            Reject.Attributes.Add("onclick", "return confirm(\"" + HROne.Common.WebUtility.GetLocalizedString(CONFIRM_MESSAGE) + "\");");


            return(true);
        }
        else
        {
            return(false);
        }
    }
        public override ReportDocument GenerateReport()
        {
            string HierarchyLevel1 = string.Empty;
            string HierarchyLevel2 = string.Empty;
            string HierarchyLevel3 = string.Empty;

            ArrayList HierarchyLevelList = EHierarchyLevel.db.select(dbConn, new DBFilter());

            foreach (EHierarchyLevel hLevel in HierarchyLevelList)
            {
                if (hLevel.HLevelSeqNo.Equals(1))
                {
                    HierarchyLevel1 = hLevel.HLevelDesc;
                }
                else if (hLevel.HLevelSeqNo.Equals(2))
                {
                    HierarchyLevel2 = hLevel.HLevelDesc;
                }
                else if (hLevel.HLevelSeqNo.Equals(3))
                {
                    HierarchyLevel3 = hLevel.HLevelDesc;
                }
            }

            if (EmpList.Count > 0)
            {
                DataSet.EmployeeDetail ds = new DataSet.EmployeeDetail();


                foreach (int EmpID in EmpList)
                {
                    EmployeeDetailProcess.ImportEmployeeDetailRow(dbConn, ds.employeedetail, EmpID, AppUtils.ServerDateTime().Date);

                    DBFilter filter = new DBFilter();
                    //filter.add(new Match("LeaveAppDateFrom", ">=", startDate));
                    //filter.add(new Match("LeaveAppDateFrom", "<=", AsOfDate));
                    filter.add(new Match("EmpID", EmpID));
                    if (!DateFrom.Ticks.Equals(0))
                    {
                        filter.add(new Match("LeaveAppDateFrom", "<=", DateTo));
                    }
                    if (!DateTo.Ticks.Equals(0))
                    {
                        filter.add(new Match("LeaveAppDateTo", ">=", DateFrom));
                    }
                    ArrayList leaveApplicationList = ELeaveApplication.db.select(dbConn, filter);
                    DataSet.EmployeeDetail.LeaveApplicationDataTable leaveApplicationTable = ds.LeaveApplication;
                    foreach (ELeaveApplication leaveApplication in leaveApplicationList)
                    {
                        DataSet.EmployeeDetail.LeaveApplicationRow row = leaveApplicationTable.NewLeaveApplicationRow();
                        row.EmpID            = leaveApplication.EmpID;
                        row.EmpPaymentID     = leaveApplication.EmpPaymentID;
                        row.LeaveAppDateFrom = leaveApplication.LeaveAppDateFrom;
                        row.LeaveAppDateTo   = leaveApplication.LeaveAppDateTo;
                        if (leaveApplication.LeaveAppUnit == "H")
                        {
                            row.LeaveAppDays = leaveApplication.LeaveAppHours;
                        }
                        else
                        {
                            row.LeaveAppDays = leaveApplication.LeaveAppDays;
                        }
                        row.LeaveAppID     = leaveApplication.LeaveAppID;
                        row.LeaveAppRemark = leaveApplication.LeaveAppRemark;
                        if (!leaveApplication.LeaveAppTimeFrom.Ticks.Equals(0))
                        {
                            row.LeaveAppTimeFrom = leaveApplication.LeaveAppTimeFrom;
                        }
                        if (!leaveApplication.LeaveAppTimeTo.Ticks.Equals(0))
                        {
                            row.LeaveAppTimeTo = leaveApplication.LeaveAppTimeTo;
                        }
                        row.LeaveAppUnit = leaveApplication.LeaveAppUnit;
                        row.LeaveCodeID  = leaveApplication.LeaveCodeID;
                        row.LeaveAppHasMedicalCertificate = leaveApplication.LeaveAppHasMedicalCertificate;
                        row.LeaveAppNoPayProcess          = leaveApplication.LeaveAppNoPayProcess;
                        ELeaveCode leaveCode = new ELeaveCode();
                        leaveCode.LeaveCodeID = leaveApplication.LeaveCodeID;
                        if (ELeaveCode.db.select(dbConn, leaveCode))
                        {
                            ELeaveType leaveType = new ELeaveType();
                            leaveType.LeaveTypeID = leaveCode.LeaveTypeID;
                            if (ELeaveType.db.select(dbConn, leaveType))
                            {
                                row.LeaveType     = leaveType.LeaveType;
                                row.LeaveTypeDesc = leaveType.LeaveTypeDesc;
                            }
                        }


                        leaveApplicationTable.AddLeaveApplicationRow(row);
                    }
                }
                if (reportDocument == null)
                {
                    reportDocument = new ReportTemplate.Report_Employee_LeaveApplicationList();
                }
                else
                {
                }

                reportDocument.SetDataSource(ds);
                for (int i = 0; i < reportDocument.ParameterFields.Count; i++)
                {
                    if (reportDocument.ParameterFields[i].Name == "HierarchyLevel1")
                    {
                        reportDocument.SetParameterValue("HierarchyLevel1", HierarchyLevel1);
                    }

                    if (reportDocument.ParameterFields[i].Name == "HierarchyLevel2")
                    {
                        reportDocument.SetParameterValue("HierarchyLevel2", HierarchyLevel2);
                    }
                }
                return(reportDocument);
            }
            else
            {
                return(null);
            }
        }
Esempio n. 18
0
        public ArrayList getCurrentBalanceList(bool forESSOnly)
        {
            ArrayList balanceList = new ArrayList();


            foreach (LeaveBalanceProcess balanceProcess in leaveBalanceProcessList.Values)
            {
                ELeaveBalance leaveBalance = balanceProcess.getLatestLeaveBalance();
                if (leaveBalance != null)
                {
                    //bool addToList = true;
                    if (forESSOnly)
                    {
                        ELeaveType leaveType = new ELeaveType();
                        leaveType.LeaveTypeID = leaveBalance.LeaveTypeID;
                        if (!ELeaveType.db.select(dbConn, leaveType))
                        {
                            continue;
                        }
                        if (leaveType.LeaveTypeIsESSHideLeaveBalance)
                        {
                            continue;
                        }
                        DBFilter countESSLeaveCodeFilter = new DBFilter();
                        countESSLeaveCodeFilter.add(new Match("LeaveTypeID", leaveBalance.LeaveTypeID));
                        countESSLeaveCodeFilter.add(new Match("LeaveCodeHideInESS", false));
                        if (ELeaveCode.db.count(dbConn, countESSLeaveCodeFilter) <= 0)
                        {
                            continue;
                        }
                        //addToList = false;
                    }

                    //if (addToList)
                    {
                        LoadLeaveTypeAndRounding(leaveBalance);
                        if (leaveBalance.LeaveBalanceEntitled != 0 || leaveBalance.getBalance() != 0 || leaveBalance.Taken != 0 || leaveBalance.Reserved != 0)
                        {
                            balanceList.Add(leaveBalance);
                        }
                    }
                }

                // Start 2013-12-02, Ricky So, Avoid showing CAT2 Sick Leave entry
                if ((ELeaveType.SLCAT2_LEAVE_TYPE(dbConn)).LeaveTypeIsDisabled == false)
                {
                    if (balanceProcess is SickLeaveBalanceProcess)
                    {
                        leaveBalance = ((SickLeaveBalanceProcess)balanceProcess).getLatestCAT2LeaveBalance();
                        if (leaveBalance != null)
                        {
                            bool addToList = true;
                            if (forESSOnly)
                            {
                                DBFilter countESSLeaveCodeFilter = new DBFilter();
                                countESSLeaveCodeFilter.add(new Match("LeaveTypeID", leaveBalance.LeaveTypeID));
                                countESSLeaveCodeFilter.add(new Match("LeaveCodeHideInESS", false));
                                if (ELeaveCode.db.count(dbConn, countESSLeaveCodeFilter) <= 0)
                                {
                                    addToList = false;
                                }
                            }

                            if (addToList)
                            {
                                LoadLeaveTypeAndRounding(leaveBalance);
                                if (leaveBalance.LeaveBalanceEntitled != 0 || leaveBalance.getBalance() != 0 || leaveBalance.Taken != 0 || leaveBalance.Reserved != 0)
                                {
                                    balanceList.Add(leaveBalance);
                                }
                            }
                        }
                    }
                }
                //if (balanceProcess is SickLeaveBalanceProcess)
                //{
                //    leaveBalance = ((SickLeaveBalanceProcess)balanceProcess).getLatestCAT2LeaveBalance();
                //    if (leaveBalance != null)
                //    {
                //        bool addToList = true;
                //        if (forESSOnly)
                //        {
                //            DBFilter countESSLeaveCodeFilter = new DBFilter();
                //            countESSLeaveCodeFilter.add(new Match("LeaveTypeID", leaveBalance.LeaveTypeID));
                //            countESSLeaveCodeFilter.add(new Match("LeaveCodeHideInESS", false));
                //            if (ELeaveCode.db.count(dbConn, countESSLeaveCodeFilter) <= 0)
                //                addToList = false;
                //        }

                //        if (addToList)
                //        {
                //            LoadLeaveTypeAndRounding(leaveBalance);
                //            if (leaveBalance.LeaveBalanceEntitled != 0 || leaveBalance.getBalance() != 0 || leaveBalance.Taken != 0 || leaveBalance.Reserved != 0)
                //                balanceList.Add(leaveBalance);
                //        }
                //    }
                //}


                // End 2013-12-02, Ricky So, Avoid showing CAT2 Sick Leave entry
            }

            return(balanceList);
        }
Esempio n. 19
0
    protected void btnGenerate_Click(object sender, EventArgs e)
    {
        PageErrors errors = PageErrors.getErrors(db, Page.Master);

        errors.clear();

        DateTime currentDate = AppUtils.ServerDateTime().Date;
        DateTime asOfDate    = currentDate;

        if (!DateTime.TryParse(BalanceAsOfDate.Value, out asOfDate))
        {
            asOfDate = currentDate;
        }
        ESSAuthorizationProcess    authProcess = new ESSAuthorizationProcess(dbConn);
        List <EAuthorizationGroup> groupList   = authProcess.GetAuthorizerAuthorizationGroupList(CurID);
        ArrayList EmpIDList = new ArrayList();

        if (groupList.Count > 0)
        {
            DBFilter authWorkFlowDetailFilter = new DBFilter();
            string   authGroupIDList          = string.Empty;
            foreach (EAuthorizationGroup group in groupList)
            {
                if (string.IsNullOrEmpty(authGroupIDList))
                {
                    authGroupIDList = group.AuthorizationGroupID.ToString();
                }
                else
                {
                    authGroupIDList += ", " + group.AuthorizationGroupID.ToString();
                }
            }
            authWorkFlowDetailFilter.add(new IN("AuthorizationGroupID", authGroupIDList, null));

            DBFilter empPosFilter = EEmpPositionInfo.CreateDateRangeDBFilter("epi", currentDate, currentDate);
            empPosFilter.add(new IN("epi.AuthorizationWorkFlowIDLeaveApp", "SELECT DISTINCT awfd.AuthorizationWorkFlowID FROM " + EAuthorizationWorkFlowDetail.db.dbclass.tableName + " awfd", authWorkFlowDetailFilter));

            DBFilter empInfoFilter = new DBFilter();
            empInfoFilter.add(new IN("EmpID", "SELECT DISTINCT epi.EmpID FROM " + EEmpPositionInfo.db.dbclass.tableName + " epi", empPosFilter));

            DBFilter empTermFilter = new DBFilter();
            empTermFilter.add(new Match("EmpTermLastDate", "<", currentDate < asOfDate?currentDate:asOfDate));
            empInfoFilter.add(new IN("NOT EMPID", "SELECT et.EmpID FROM " + EEmpTermination.db.dbclass.tableName + " et", empTermFilter));

            ArrayList EmpList = EEmpPersonalInfo.db.select(dbConn, empInfoFilter);
            foreach (EEmpPersonalInfo empInfo in EmpList)
            {
                EmpIDList.Add(empInfo.EmpID);
            }
        }

        // Start Ricky So, 0000119, 2014/10/28
        EmpIDList.Add(WebUtils.GetCurUser(Session).EmpID);
        // End Ricky So, 0000119, 2014/10/28

        if (EmpIDList.Count > 0)
        {
            ArrayList leaveTypeList = new ArrayList();
            leaveTypeList.Add(ELeaveType.ANNUAL_LEAVE_TYPE(dbConn));
            // Start 0000057, Ricky So, 2014/07/03


            DBFilter m_leaveTypeFilter = new DBFilter();
            DBFilter m_leaveCodeFilter = new DBFilter();

            OR m_orLeaveType = new OR();
            m_orLeaveType.add(new Match("LeaveType", "SLCAT1"));
            m_orLeaveType.add(new Match("LeaveType", "SLCAT2"));

            m_leaveTypeFilter.add(m_orLeaveType);

            m_leaveCodeFilter.add(new IN("LeaveTypeID", "SELECT LeaveTypeID FROM LeaveType", m_leaveTypeFilter));

            ArrayList m_leaveCodeList = ELeaveCode.db.select(dbConn, m_leaveCodeFilter);
            if (m_leaveCodeList.Count > 0)
            {
                leaveTypeList.Add(ELeaveType.SLCAT1_LEAVE_TYPE(dbConn));
                leaveTypeList.Add(ELeaveType.SLCAT2_LEAVE_TYPE(dbConn));
            }

            // End 0000057, Ricky So, 2014/07/03
            HROne.Reports.Employee.LeaveBalanceProcess rpt = new HROne.Reports.Employee.LeaveBalanceProcess(dbConn, EmpIDList, asOfDate, leaveTypeList);
            string reportFileName = WebUtils.GetLocalizedReportFile(Server.MapPath("~/Report_Employee_LeaveBalance.rpt"));
            WebUtils.ReportExport(Response, rpt, reportFileName, "PDF", "LeaveBalance");
        }
        else
        {
            errors.addError("No employee can be generated");
        }
    }
Esempio n. 20
0
        public override ReportDocument GenerateReport()
        {
            if (values.Count > 0)
            {
                DateTime startDate = new DateTime(AsOfDate.Year, 1, 1);

                //System.Data.DataSet ds = new System.Data.DataSet();

                //System.Data.DataTable sum = ds.Tables.Add("LeaveBalance");
                //sum.Columns.Add("LeaveBalanceID", typeof(int));
                //sum.Columns.Add("EmpID", typeof(int));
                //sum.Columns.Add("LeaveBalanceEffectiveDate", typeof(DateTime));
                //sum.Columns.Add("LeaveBalanceBF", typeof(double));
                //sum.Columns.Add("LeaveBalanceEntitled", typeof(double));
                //sum.Columns.Add("LeaveBalanceForfeiture", typeof(double));
                //sum.Columns.Add("Taken", typeof(double));
                //sum.Columns.Add("Balance", typeof(double));
                //sum.Columns.Add("Adjust", typeof(double));
                //sum.Columns.Add("Reserved", typeof(double));
                //sum.Columns.Add("Name", typeof(string));
                //sum.Columns.Add("Description", typeof(string));
                //sum.Columns.Add("StringFormat", typeof(string));

                DataSet.EmployeeDetail ds = new DataSet.EmployeeDetail();
                //string select;
                //string from;
                //DBFilter filter;

                foreach (int EmpID in values)
                {
                    //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";
                    //select = "P.*,EmpPos.*,Pos.*";
                    //filter = new DBFilter();
                    //filter.add(new Match("P.EmpID", EmpID));

                    //filter.loadData(ds, "employeedetail", null, select, from, null);

                    EmployeeDetailProcess.ImportEmployeeDetailRow(dbConn, ds.employeedetail, EmpID, AsOfDate);


                    //from = "from LeaveApplication P LEFT JOIN LeaveCode C ON P.LeaveCodeID=C.LeaveCodeID LEFT JOIN LeaveType T ON T.LeaveTypeID=C.LeaveTypeID";
                    //select = "P.*, T.LeaveType, T.LeaveTypeDesc";
                    //filter = new DBFilter();
                    //filter.add(new Match("LeaveAppDateFrom", ">=", startDate));
                    //filter.add(new Match("LeaveAppDateFrom", "<=", AsOfDate));
                    //filter.add(new Match("P.EmpID", EmpID));
                    //filter.loadData(ds, "LeaveApplication", null, select, from, null);
                    //try
                    //{
                    //    LeaveBalanceCalc calc = new LeaveBalanceCalc(EmpID, AsOfDate);
                    //    ArrayList balanceItems = calc.getCurrentBalanceList();
                    //    foreach (ELeaveBalance b in balanceItems)
                    //    {
                    //        System.Data.DataRow rr = sum.NewRow();
                    //        rr["LeaveBalanceID"] = b.LeaveBalanceID;
                    //        rr["EmpID"] = EmpID;
                    //        rr["LeaveBalanceEffectiveDate"] = b.LeaveBalanceEffectiveDate;
                    //        rr["LeaveBalanceBF"] = b.LeaveBalanceBF;
                    //        rr["LeaveBalanceEntitled"] = b.LeaveBalanceEntitled;
                    //        rr["LeaveBalanceForfeiture"] = b.LeaveBalanceForfeiture;
                    //        rr["Taken"] = b.Taken;
                    //        rr["Balance"] = b.Balance;
                    //        rr["Adjust"] = b.Adjust;
                    //        rr["Reserved"] = b.Reserved;
                    //        rr["Name"] = b.Name;
                    //        rr["Description"] = b.Description;
                    //        rr["StringFormat"] = b.StringFormat;


                    //        sum.Rows.Add(rr);


                    //    }
                    //}
                    //catch (Exception ex)
                    //{
                    //}

                    DBFilter filter = new DBFilter();
                    filter.add(new Match("LeaveAppDateFrom", ">=", startDate));
                    filter.add(new Match("LeaveAppDateFrom", "<=", AsOfDate));
                    filter.add(new Match("EmpID", EmpID));
                    ArrayList leaveApplicationList = ELeaveApplication.db.select(dbConn, filter);
                    DataSet.EmployeeDetail.LeaveApplicationDataTable leaveApplicationTable = ds.LeaveApplication;
                    foreach (ELeaveApplication leaveApplication in leaveApplicationList)
                    {
                        DataSet.EmployeeDetail.LeaveApplicationRow row = leaveApplicationTable.NewLeaveApplicationRow();
                        row.EmpID            = leaveApplication.EmpID;
                        row.EmpPaymentID     = leaveApplication.EmpPaymentID;
                        row.LeaveAppDateFrom = leaveApplication.LeaveAppDateFrom;
                        row.LeaveAppDateTo   = leaveApplication.LeaveAppDateTo;
                        row.LeaveAppDays     = leaveApplication.LeaveAppDays;
                        row.LeaveAppID       = leaveApplication.LeaveAppID;
                        row.LeaveAppRemark   = leaveApplication.LeaveAppRemark;
                        if (!leaveApplication.LeaveAppTimeFrom.Ticks.Equals(0))
                        {
                            row.LeaveAppTimeFrom = leaveApplication.LeaveAppTimeFrom;
                        }
                        if (!leaveApplication.LeaveAppTimeTo.Ticks.Equals(0))
                        {
                            row.LeaveAppTimeTo = leaveApplication.LeaveAppTimeTo;
                        }
                        row.LeaveAppUnit = leaveApplication.LeaveAppUnit;
                        row.LeaveCodeID  = leaveApplication.LeaveCodeID;

                        ELeaveCode leaveCode = new ELeaveCode();
                        leaveCode.LeaveCodeID = leaveApplication.LeaveCodeID;
                        if (ELeaveCode.db.select(dbConn, leaveCode))
                        {
                            ELeaveType leaveType = new ELeaveType();
                            leaveType.LeaveTypeID = leaveCode.LeaveTypeID;
                            if (ELeaveType.db.select(dbConn, leaveType))
                            {
                                row.LeaveType     = leaveType.LeaveType;
                                row.LeaveTypeDesc = leaveType.LeaveTypeDesc;
                            }
                        }
                        leaveApplicationTable.AddLeaveApplicationRow(row);
                    }

                    //try
                    //{
                    LeaveBalanceCalc calc         = new LeaveBalanceCalc(dbConn, EmpID, AsOfDate);
                    ArrayList        balanceItems = calc.getCurrentBalanceList();
                    foreach (ELeaveBalance b in balanceItems)
                    {
                        DataSet.EmployeeDetail.LeaveBalanceRow rr = ds.LeaveBalance.NewLeaveBalanceRow();
                        rr["LeaveBalanceID"]            = b.LeaveBalanceID;
                        rr["EmpID"]                     = EmpID;
                        rr["LeaveBalanceEffectiveDate"] = b.LeaveBalanceEffectiveDate;
                        rr["LeaveBalanceBF"]            = b.LeaveBalanceBF;
                        rr["LeaveBalanceEntitled"]      = b.LeaveBalanceEntitled;
                        rr["LeaveBalanceForfeiture"]    = b.LeaveBalanceForfeiture + b.ExpiryForfeit;
                        rr["Taken"]                     = b.Taken;
                        rr["Balance"]                   = b.getBalance();
                        rr["Adjust"]                    = b.Adjust;
                        rr["Reserved"]                  = b.Reserved;
                        rr["Name"]          = b.Name;
                        rr["Description"]   = b.Description;
                        rr["ExpiryForfeit"] = b.ExpiryForfeit;
                        if (!b.NextExpiryDate.Ticks.Equals(0))
                        {
                            rr["NextExpiryDate"] = b.NextExpiryDate;
                        }
                        rr["NextExpiryForfeit"] = b.NextExpiryForfeit;
                        rr["StringFormat"]      = b.StringFormat;


                        ds.LeaveBalance.Rows.Add(rr);
                    }
                    //}
                    //catch (Exception)
                    //{
                    //    //  fail to create leave balance record by some reason
                    //    //  no handling so far
                    //}
                }


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



                reportDocument.SetDataSource(ds);
                reportDocument.SetParameterValue("AsOfDate", AsOfDate);

                return(reportDocument);
            }
            else
            {
                return(null);
            }
        }
    // End 0000008, Ricky So, 2014-11-21

    protected void Save_Click(object sender, EventArgs e)
    {
        // speciailzed for TakYue only
        double m;

        try
        {
            m = Convert.ToDouble(RequestLeaveDays.Text);
        }
        catch
        {
            PageErrors invalideInputError = PageErrors.getErrors(db, Page);
            invalideInputError.clear();
            invalideInputError.addError("Invalid Days Taken value.");
            return;
        }

        if (!applicableDays.Value.Equals("") && !applicableDays.Value.Contains(m.ToString("0.00")))
        {
            PageErrors invalideInputError = PageErrors.getErrors(db, Page);
            invalideInputError.clear();
            invalideInputError.addError("Days Taken must be in this range : " + applicableDays.Value);
            return;
        }
        // end specializations

        ERequestLeaveApplication c = new ERequestLeaveApplication();

        if (!RequestLeaveAppUnit.SelectedValue.Equals("D"))
        {
            RequestLeaveAppDateTo.Value = RequestLeaveAppDateFrom.Value;
        }

        Hashtable values = new Hashtable();

        binding.toValues(values);

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

        errors.clear();


        db.validate(errors, values);

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


        db.parse(values, c);

        if (c.RequestLeaveAppUnit.Equals("D"))
        {
            // the following 2 fields are not bind to controls
            c.RequestLeaveAppDateFromAM = this.RequestLeaveAppDateFromAM.SelectedValue;
            c.RequestLeaveAppDateToAM   = this.RequestLeaveAppDateToAM.SelectedValue;
        }

        if (!c.RequestLeaveAppUnit.Equals("D"))
        {
            //c.RequestLeaveAppDateTo = c.RequestLeaveAppDateFrom;
            if (c.RequestLeaveAppTimeTo < c.RequestLeaveAppTimeFrom)
            {
                errors.addError("RequestLeaveAppTimeFrom", "Invald hours");
            }
        }
        else
        {
            if (c.RequestLeaveAppDateTo < c.RequestLeaveAppDateFrom)
            {
                errors.addError("RequestLeaveAppDateFrom", "Date To cannot be earlier than Date From");
            }
            // Start 0000201, Ricky So, 2015-05-29
            else if (c.RequestLeaveAppDateTo == c.RequestLeaveAppDateFrom)
            {
                if (c.RequestLeaveAppDateFromAM.CompareTo(c.RequestLeaveAppDateToAM) > 0)
                {
                    errors.addError("RequestLeaveAppDateFrom", "Date To cannot be earlier/equal than Date From");
                }
                else if (c.RequestLeaveAppDateFromAM.CompareTo(c.RequestLeaveAppDateToAM) == 0)
                {
                    // Convert to Half Day application if only AM/PM is applied
                    c.RequestLeaveAppUnit       = c.RequestLeaveAppDateFromAM.Substring(0, 1);
                    c.RequestLeaveAppDateFromAM = null;
                    c.RequestLeaveAppDateToAM   = null;
                    c.RequestLeaveDays          = 0.5;
                }
            }
            // End 0000201, Ricky So, 2015-05-29
            else
            {
                TimeSpan ts = c.RequestLeaveAppDateTo.Subtract(c.RequestLeaveAppDateFrom);
                if (c.RequestLeaveDays > ts.Days + 1)
                {
                    errors.addError("RequestLeaveDays", "Days taken is too large");
                }
            }
        }
        if (c.RequestLeaveAppDateFrom.Month != c.RequestLeaveAppDateTo.Month || c.RequestLeaveAppDateFrom.Year != c.RequestLeaveAppDateTo.Year)
        {
            errors.addError("Leave application must be within the same month");
        }

        if (HoursClaimPanel.Visible)
        {
            if (c.RequestLeaveAppHours <= 0)
            {
                errors.addError(string.Format(HROne.Translation.PageErrorMessage.ERROR_FIELD_REQUIRED, new string[] { lblLeaveAppHours.Text }));
            }
        }

        ELeaveCode curreintLeaveCode = new ELeaveCode();

        curreintLeaveCode.LeaveCodeID = c.RequestLeaveCodeID;
        if (ELeaveCode.db.select(dbConn, curreintLeaveCode))
        {
            ELeaveType leaveType = new ELeaveType();
            leaveType.LeaveTypeID = curreintLeaveCode.LeaveTypeID;
            if (ELeaveType.db.select(dbConn, leaveType))
            {
                // Start 0000008, Ricky So, 2014-11-21
                double m_hours = 0;
                double m_days  = 0;
                GetPendingLeaveBalance(c.EmpID, leaveType.LeaveTypeID, out m_hours, out m_days);
                // End 0000008, Ricky So, 2014-11-21

                if (leaveType.LeaveTypeIsESSIgnoreEntitlement)
                {
                    HROne.LeaveCalc.LeaveBalanceCalc    calc           = new HROne.LeaveCalc.LeaveBalanceCalc(dbConn, c.EmpID);
                    HROne.LeaveCalc.LeaveBalanceProcess balanceProcess = calc.getLeaveBalanceProcess(leaveType.LeaveTypeID);
                    // assume as at today (since entitlement is ignored, as-at-date doesn't make any difference
                    balanceProcess.LoadData(AppUtils.ServerDateTime().Date);
                    ELeaveBalance balance = balanceProcess.getLatestLeaveBalance();

                    // Start 0000008, Ricky So, 2014-11-21
                    //if (balance == null
                    //    || (balance.getBalance() - balance.LeaveBalanceEntitled < c.RequestLeaveDays && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Day)
                    //    || (balance.getBalance() - balance.LeaveBalanceEntitled < c.RequestLeaveAppHours && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Hour)
                    //    )
                    if (balance == null ||
                        (balance.getBalance() - m_days - balance.LeaveBalanceEntitled < c.RequestLeaveDays && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Day) ||
                        (balance.getBalance() - m_hours - balance.LeaveBalanceEntitled < c.RequestLeaveAppHours && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Hour)
                        )
                    // Start 0000008, Ricky So, 2014-11-21
                    {
                        errors.addError(ERROR_MESSAGE_BALANCE_NOT_ENOUGH);
                    }
                }
                else if (leaveType.LeaveTypeIsESSRestrictNegativeBalanceAsOfApplicationDateFrom ||
                         leaveType.LeaveTypeIsESSRestrictNegativeBalanceAsOfApplicationDateTo ||
                         leaveType.LeaveTypeIsESSRestrictNegativeBalanceAsOfEndOfLeaveYear ||
                         leaveType.LeaveTypeIsESSRestrictNegativeBalanceAsOfToday)
                {
                    HROne.LeaveCalc.LeaveBalanceCalc    calc           = new HROne.LeaveCalc.LeaveBalanceCalc(dbConn, c.EmpID);
                    HROne.LeaveCalc.LeaveBalanceProcess balanceProcess = calc.getLeaveBalanceProcess(leaveType.LeaveTypeID);

                    if (leaveType.LeaveTypeIsESSRestrictNegativeBalanceAsOfToday)
                    {
                        balanceProcess.LoadData(AppUtils.ServerDateTime().Date);
                        ELeaveBalance balance = balanceProcess.getLatestLeaveBalance();
                        // Start 0000093, Ricky So, 2014-09-06
                        if (balance == null)
                        {
                            errors.addError(ERROR_MESSAGE_BALANCE_NOT_ENOUGH);
                        }
                        // Start 0000008, Ricky So, 2014-11-21
                        //else if ((balance.getBalance() - c.RequestLeaveDays < -1 * leaveType.LeaveTypeIsESSAllowableAdvanceBalance && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Day) ||
                        //          (balance.getBalance() - c.RequestLeaveAppHours < -1 * leaveType.LeaveTypeIsESSAllowableAdvanceBalance && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Hour)
                        //         )
                        else if ((balance.getBalance() - m_days - c.RequestLeaveDays < -1 * leaveType.LeaveTypeIsESSAllowableAdvanceBalance && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Day) ||
                                 (balance.getBalance() - m_hours - c.RequestLeaveAppHours < -1 * leaveType.LeaveTypeIsESSAllowableAdvanceBalance && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Hour)
                                 )
                        // End 0000008, Ricky So, 2014-11-21
                        {
                            errors.addError(ERROR_MESSAGE_BALANCE_NOT_ENOUGH);
                        }

                        //if (balance == null
                        //    || (balance.getBalance() < c.RequestLeaveDays && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Day)
                        //    || (balance.getBalance() < c.RequestLeaveAppHours && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Hour)
                        //    )
                        //{
                        //    errors.addError(ERROR_MESSAGE_BALANCE_NOT_ENOUGH);
                        //}
                        // End 0000093, Ricky So, 2014-09-06
                    }
                    if (errors.isEmpty() && leaveType.LeaveTypeIsESSRestrictNegativeBalanceAsOfApplicationDateFrom)
                    {
                        balanceProcess.LoadData(c.RequestLeaveAppDateFrom);
                        ELeaveBalance balance = balanceProcess.getLatestLeaveBalance();
                        // Start 0000093, Ricky So, 2014-09-06
                        if (balance == null)
                        {
                            errors.addError(ERROR_MESSAGE_BALANCE_NOT_ENOUGH);
                        }
                        // Start 0000008, Ricky So, 2014-11-21
                        //else if ((balance.getBalance() - c.RequestLeaveDays < -1 * leaveType.LeaveTypeIsESSAllowableAdvanceBalance && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Day) ||
                        //          (balance.getBalance() - c.RequestLeaveAppHours < -1 * leaveType.LeaveTypeIsESSAllowableAdvanceBalance && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Hour)
                        //         )
                        else if ((balance.getBalance() - m_days - c.RequestLeaveDays < -1 * leaveType.LeaveTypeIsESSAllowableAdvanceBalance && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Day) ||
                                 (balance.getBalance() - m_hours - c.RequestLeaveAppHours < -1 * leaveType.LeaveTypeIsESSAllowableAdvanceBalance && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Hour)
                                 )
                        // End 0000008, Ricky So, 2014-11-21
                        {
                            errors.addError(ERROR_MESSAGE_BALANCE_NOT_ENOUGH);
                        }

                        //if (balance == null
                        //    || (balance.getBalance() < c.RequestLeaveDays && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Day)
                        //    || (balance.getBalance() < c.RequestLeaveAppHours && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Hour)
                        //    )
                        //{
                        //    errors.addError(ERROR_MESSAGE_BALANCE_NOT_ENOUGH);
                        //}
                        // End 0000093, Ricky So, 2014-09-06
                    }
                    if (errors.isEmpty() && leaveType.LeaveTypeIsESSRestrictNegativeBalanceAsOfApplicationDateTo)
                    {
                        balanceProcess.LoadData(c.RequestLeaveAppDateTo);
                        ELeaveBalance balance = balanceProcess.getLatestLeaveBalance();
                        // Start 0000093, Ricky So, 2014-09-06
                        if (balance == null)
                        {
                            errors.addError(ERROR_MESSAGE_BALANCE_NOT_ENOUGH);
                        }
                        // Start 0000008, Ricky So, 2014-11-21
                        //else if ((balance.getBalance() - c.RequestLeaveDays < -1 * leaveType.LeaveTypeIsESSAllowableAdvanceBalance && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Day) ||
                        //          (balance.getBalance() - c.RequestLeaveAppHours < -1 * leaveType.LeaveTypeIsESSAllowableAdvanceBalance && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Hour)
                        //         )
                        else if ((balance.getBalance() - m_days - c.RequestLeaveDays < -1 * leaveType.LeaveTypeIsESSAllowableAdvanceBalance && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Day) ||
                                 (balance.getBalance() - m_hours - c.RequestLeaveAppHours < -1 * leaveType.LeaveTypeIsESSAllowableAdvanceBalance && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Hour)
                                 )
                        // End 0000008, Ricky So, 2014-11-21
                        {
                            errors.addError(ERROR_MESSAGE_BALANCE_NOT_ENOUGH);
                        }
                        //if (balance == null
                        //    || (balance.getBalance() < c.RequestLeaveDays && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Day)
                        //    || (balance.getBalance() < c.RequestLeaveAppHours && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Hour)
                        //    )
                        //{
                        //    errors.addError(ERROR_MESSAGE_BALANCE_NOT_ENOUGH);
                        //}
                        // End 0000093, Ricky So, 2014-09-06
                    }
                    if (errors.isEmpty() && leaveType.LeaveTypeIsESSRestrictNegativeBalanceAsOfEndOfLeaveYear)
                    {
                        balanceProcess.LoadData(AppUtils.ServerDateTime().Date);
                        ELeaveBalance balance = balanceProcess.getLatestLeaveBalance();

                        if (!balance.LeaveBalanceEffectiveEndDate.Ticks.Equals(0))
                        {
                            balanceProcess.LoadData(balance.LeaveBalanceEffectiveEndDate);
                            balance = balanceProcess.getLatestLeaveBalance();
                        }
                        // Start 0000093, Ricky So, 2014-09-06
                        if (balance == null)
                        {
                            errors.addError(ERROR_MESSAGE_BALANCE_NOT_ENOUGH);
                        }
                        // Start 0000008, Ricky So, 2014-11-21
                        //else if ((balance.getBalance() - c.RequestLeaveDays < -1 * leaveType.LeaveTypeIsESSAllowableAdvanceBalance && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Day) ||
                        //          (balance.getBalance() - c.RequestLeaveAppHours < -1 * leaveType.LeaveTypeIsESSAllowableAdvanceBalance && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Hour)
                        //         )
                        else if ((balance.getBalance() - m_days - c.RequestLeaveDays < -1 * leaveType.LeaveTypeIsESSAllowableAdvanceBalance && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Day) ||
                                 (balance.getBalance() - m_hours - c.RequestLeaveAppHours < -1 * leaveType.LeaveTypeIsESSAllowableAdvanceBalance && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Hour)
                                 )
                        // End 0000008, Ricky So, 2014-11-21
                        {
                            errors.addError(ERROR_MESSAGE_BALANCE_NOT_ENOUGH);
                        }
                        //if (balance == null
                        //    || (balance.getBalance() < c.RequestLeaveDays  && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Day)
                        //    || (balance.getBalance() < c.RequestLeaveAppHours  && balanceProcess.BalanceUnit == ELeaveBalance.LeaveBalanceUnit.Hour)
                        //    )
                        //{
                        //    errors.addError(ERROR_MESSAGE_BALANCE_NOT_ENOUGH);
                        //}
                        // End 0000093, Ricky So, 2014-09-06
                    }
                }
            }
        }

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

        ArrayList overlapLeaveAppList = new ArrayList();

        if (c.IsOverlapLeaveApplication(dbConn, out overlapLeaveAppList))
        {
            string strDailyOverlapMessage  = string.Empty;
            string strHourlyOverlapMessage = string.Empty;

            foreach (BaseObject overlapLeaveApp in overlapLeaveAppList)
            {
                if (overlapLeaveApp is ELeaveApplication)
                {
                    ELeaveApplication previousLeaveApp = (ELeaveApplication)overlapLeaveApp;
                    if (previousLeaveApp.LeaveAppUnit.Equals("D") || c.RequestLeaveAppUnit.Equals("D"))
                    {
                        if (string.IsNullOrEmpty(strDailyOverlapMessage))
                        {
                            strDailyOverlapMessage = "Leave dates cannot overlap with previous leave applications";
                        }
                        ELeaveCode leaveCode = new ELeaveCode();
                        leaveCode.LeaveCodeID = previousLeaveApp.LeaveCodeID;
                        if (ELeaveCode.db.select(dbConn, leaveCode))
                        {
                            // Start 0000201, Ricky So, 2015-06-02
                            //strDailyOverlapMessage += "\r\n- " + previousLeaveApp.LeaveAppDateFrom.ToString("yyyy-MM-dd") + (previousLeaveApp.LeaveAppDateFrom.Equals(previousLeaveApp.LeaveAppDateTo) ? "" : " To " + previousLeaveApp.LeaveAppDateTo.ToString("yyyy-MM-dd")) + " " + leaveCode.LeaveCodeDesc;
                            strDailyOverlapMessage += "\r\n- " + previousLeaveApp.LeaveAppDateFrom.ToString("yyyy-MM-dd");

                            if (previousLeaveApp.LeaveAppUnit == "A")
                            {
                                strDailyOverlapMessage += "AM";
                            }
                            else if (previousLeaveApp.LeaveAppUnit == "P")
                            {
                                strDailyOverlapMessage += "PM";
                            }
                            else if (previousLeaveApp.LeaveAppUnit == "D" && !string.IsNullOrEmpty(previousLeaveApp.LeaveAppDateFromAM))
                            {
                                strDailyOverlapMessage += previousLeaveApp.LeaveAppDateFromAM;
                            }
                            else
                            if (previousLeaveApp.LeaveAppDateFrom.Equals(previousLeaveApp.LeaveAppDateTo))
                            {
                                strDailyOverlapMessage += " To " + previousLeaveApp.LeaveAppDateTo.ToString("yyyy-MM-dd");
                            }

                            if (previousLeaveApp.LeaveAppUnit == "D" && !string.IsNullOrEmpty(previousLeaveApp.LeaveAppDateToAM))
                            {
                                strDailyOverlapMessage += previousLeaveApp.LeaveAppDateToAM;
                            }
                            else
                            {
                                strDailyOverlapMessage += "   " + leaveCode.LeaveCodeDesc;
                            }
                            // End 0000201, Ricky So, 2015-06-02
                        }
                    }
                    else
                    {
                        if (string.IsNullOrEmpty(strHourlyOverlapMessage))
                        {
                            strHourlyOverlapMessage = "Leave time cannot overlap with previous leave applications";
                        }
                    }
                }
                else if (overlapLeaveApp is ERequestLeaveApplication)
                {
                    ERequestLeaveApplication previousRequestLeaveApp = (ERequestLeaveApplication)overlapLeaveApp;

                    if (previousRequestLeaveApp.RequestLeaveAppUnit.Equals("D") || c.RequestLeaveAppUnit.Equals("D"))
                    {
                        if (string.IsNullOrEmpty(strDailyOverlapMessage))
                        {
                            strDailyOverlapMessage = "Leave dates cannot overlap with previous leave applications";
                        }
                        ELeaveCode leaveCode = new ELeaveCode();
                        leaveCode.LeaveCodeID = previousRequestLeaveApp.RequestLeaveCodeID;
                        if (ELeaveCode.db.select(dbConn, leaveCode))
                        {
                            // Start 0000201, Ricky So, 2015-06-02
                            //strDailyOverlapMessage += "\r\n- " + previousRequestLeaveApp.RequestLeaveAppDateFrom.ToString("yyyy-MM-dd") + (previousRequestLeaveApp.RequestLeaveAppDateFrom.Equals(previousRequestLeaveApp.RequestLeaveAppDateTo) ? "" : " To " + previousRequestLeaveApp.RequestLeaveAppDateTo.ToString("yyyy-MM-dd")) + " " + leaveCode.LeaveCodeDesc;
                            strDailyOverlapMessage += "\r\n- " + previousRequestLeaveApp.RequestLeaveAppDateFrom.ToString("yyyy-MM-dd");

                            if (previousRequestLeaveApp.RequestLeaveAppUnit == "A")
                            {
                                strDailyOverlapMessage += "AM";
                            }
                            else if (previousRequestLeaveApp.RequestLeaveAppUnit == "P")
                            {
                                strDailyOverlapMessage += "PM";
                            }
                            else if (previousRequestLeaveApp.RequestLeaveAppUnit == "D" && !string.IsNullOrEmpty(previousRequestLeaveApp.RequestLeaveAppDateFromAM))
                            {
                                strDailyOverlapMessage += previousRequestLeaveApp.RequestLeaveAppDateFromAM;
                            }
                            else
                            if (previousRequestLeaveApp.RequestLeaveAppDateFrom.Equals(previousRequestLeaveApp.RequestLeaveAppDateTo))
                            {
                                strDailyOverlapMessage += " To " + previousRequestLeaveApp.RequestLeaveAppDateTo.ToString("yyyy-MM-dd");
                            }

                            if (previousRequestLeaveApp.RequestLeaveAppUnit == "D" && !string.IsNullOrEmpty(previousRequestLeaveApp.RequestLeaveAppDateToAM))
                            {
                                strDailyOverlapMessage += previousRequestLeaveApp.RequestLeaveAppDateToAM;
                            }
                            else
                            {
                                strDailyOverlapMessage += "   " + leaveCode.LeaveCodeDesc;
                            }
                            // End 0000201, Ricky So, 2015-06-02
                        }
                    }
                    else
                    {
                        if (string.IsNullOrEmpty(strHourlyOverlapMessage))
                        {
                            strHourlyOverlapMessage = "Leave time cannot overlap with previous leave applications";
                        }
                    }
                }
            }

            if (!string.IsNullOrEmpty(strDailyOverlapMessage))
            {
                errors.addError(strDailyOverlapMessage);
            }
            if (!string.IsNullOrEmpty(strHourlyOverlapMessage))
            {
                errors.addError(strHourlyOverlapMessage);
            }
        }

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

        try
        {
            ESSAuthorizationProcess authorization = new ESSAuthorizationProcess(dbConn);
            authorization.SubmitLeaveApplication(c);
        }
        catch (Exception ex)
        {
            errors.addError(ex.Message);
        }

        if (!errors.isEmpty())
        {
            return;
        }
        if (c.RequestLeaveAppHasMedicalCertificate)
        {
            string message = ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_LEAVE_MEDICIAL_CERT_ALERT);
            if (!string.IsNullOrEmpty(message))
            {
                message = message.Replace("\r", "\\r").Replace("\n", "\\n");
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "leaveAppAlert", "alert(\"" + message + "\"); window.location=\"./ESS_EmpRequestStatus.aspx\";", true);
                //ScriptManager.RegisterStartupScript(Page, Page.GetType(), "errorMessage", "popupDialog(\"testing\");", true);

                return;
            }
        }
        HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "~/ESS_EmpRequestStatus.aspx");
    }
        public static DataTable Export(DatabaseConnection dbConn, ArrayList empList, bool IsIncludeCurrentPositionInfo, bool IsShowDescription, bool IsIncludeSyncID, DateTime ReferenceDateTime)
        {
            DataTable tmpDataTable = new DataTable(TABLE_NAME);

            tmpDataTable.Columns.Add(FIELD_EMP_NO, typeof(string));

            if (IsIncludeCurrentPositionInfo)
            {
                ImportEmpPersonalInfoProcess.AddEmployeeInfoHeader(tmpDataTable);
                ImportEmpPositionInfoProcess.AddEmployeePositionInfoHeader(dbConn, tmpDataTable);
            }
            tmpDataTable.Columns.Add(FIELD_DATE_ADJUST, typeof(DateTime));
            tmpDataTable.Columns.Add(FIELD_LEAVE_TYPE, typeof(string));
            tmpDataTable.Columns.Add(FIELD_ADJUST_TYPE, typeof(string));
            tmpDataTable.Columns.Add(FIELD_ADJUST_VALUE, typeof(double));
            tmpDataTable.Columns.Add(FIELD_REMARK, typeof(string));

            if (IsIncludeSyncID)
            {
                tmpDataTable.Columns.Add(FIELD_SYNC_ID, typeof(string));
            }

            foreach (EEmpPersonalInfo empInfo in empList)
            {
                if (EEmpPersonalInfo.db.select(dbConn, empInfo))
                {
                    DBFilter filter = new DBFilter();
                    filter.add(new Match("EmpID", empInfo.EmpID));
                    filter.add(getCreateModifiedRecordsAfterDBTerm(ReferenceDateTime));
                    ArrayList list = ELeaveBalanceAdjustment.db.select(dbConn, filter);
                    foreach (ELeaveBalanceAdjustment leaveBalanceAdjustment in list)
                    {
                        DataRow row = tmpDataTable.NewRow();
                        row[FIELD_EMP_NO] = empInfo.EmpNo;

                        if (IsIncludeCurrentPositionInfo)
                        {
                            ImportEmpPersonalInfoProcess.AddEmployeeInfo(dbConn, row, empInfo.EmpID);
                            ImportEmpPositionInfoProcess.AddEmployeePositionInfo(dbConn, row, empInfo.EmpID);
                        }

                        row[FIELD_DATE_ADJUST] = leaveBalanceAdjustment.LeaveBalAdjDate;

                        ELeaveType leaveType = new ELeaveType();
                        leaveType.LeaveTypeID = leaveBalanceAdjustment.LeaveTypeID;
                        if (ELeaveType.db.select(dbConn, leaveType))
                        {
                            row[FIELD_LEAVE_TYPE] = IsShowDescription ? leaveType.LeaveTypeDesc : leaveType.LeaveType;
                        }

                        if (leaveBalanceAdjustment.LeaveBalAdjType.Equals(ELeaveBalanceAdjustment.ADJUST_TYPE_ADJUSTMENT))
                        {
                            row[FIELD_ADJUST_TYPE] = ELeaveBalanceAdjustment.ADJUST_TYPE_ADJUSTMENT_NAME;
                        }
                        else if (leaveBalanceAdjustment.LeaveBalAdjType.Equals(ELeaveBalanceAdjustment.ADJUST_TYPE_RESET_BALANCE))
                        {
                            row[FIELD_ADJUST_TYPE] = ELeaveBalanceAdjustment.ADJUST_TYPE_RESET_BALANCE_NAME;
                        }

                        row[FIELD_ADJUST_VALUE] = leaveBalanceAdjustment.LeaveBalAdjValue;

                        row[FIELD_REMARK] = leaveBalanceAdjustment.LeaveBalAdjRemark;


                        if (IsIncludeSyncID)
                        {
                            row[FIELD_SYNC_ID] = leaveBalanceAdjustment.SynID;
                        }

                        tmpDataTable.Rows.Add(row);
                    }
                }
            }
            if (IsIncludeCurrentPositionInfo)
            {
                ImportEmpPositionInfoProcess.RetriveHierarchyLevelHeader(dbConn, tmpDataTable);
            }
            return(tmpDataTable);
        }
Esempio n. 23
0
        public static string GetValueFromID(DatabaseConnection dbConn, string fieldName, string fieldValue)
        {
            try
            {
                string tmpfieldName = fieldName;
                if (tmpfieldName.Equals("PreviousEmpID", StringComparison.CurrentCultureIgnoreCase) || tmpfieldName.Equals("NewEmpID", StringComparison.CurrentCultureIgnoreCase))
                {
                    tmpfieldName = "EmpID";
                }
                if (tmpfieldName.EndsWith("PaymentCodeID", StringComparison.CurrentCultureIgnoreCase) || tmpfieldName.EndsWith("PayCodeID", StringComparison.CurrentCultureIgnoreCase))
                {
                    tmpfieldName = "PaymentCodeID";
                }
                if (tmpfieldName.Equals("DefaultMPFPlanID", StringComparison.CurrentCultureIgnoreCase))
                {
                    tmpfieldName = "MPFPlanID";
                }
                if (tmpfieldName.Equals("AttendanceFormulaPayFormID", StringComparison.CurrentCultureIgnoreCase) || tmpfieldName.Equals("ReferencePayFormID", StringComparison.CurrentCultureIgnoreCase))
                {
                    tmpfieldName = "PayFormID";
                }
                if (tmpfieldName.StartsWith("LeaveCode", StringComparison.CurrentCultureIgnoreCase) && tmpfieldName.EndsWith("Formula", StringComparison.CurrentCultureIgnoreCase))
                {
                    tmpfieldName = "PayFormID";
                }
                if (tmpfieldName.StartsWith("PayGroup", StringComparison.CurrentCultureIgnoreCase) && tmpfieldName.EndsWith("Formula", StringComparison.CurrentCultureIgnoreCase))
                {
                    tmpfieldName = "PayFormID";
                }
                if (tmpfieldName.Equals("CurrentPayPeriodID", StringComparison.CurrentCultureIgnoreCase))
                {
                    tmpfieldName = "PayPeriodID";
                }
                if (tmpfieldName.Equals("EmpPosDefaultRosterCodeID", StringComparison.CurrentCultureIgnoreCase))
                {
                    tmpfieldName = "RosterCodeID";
                }
                if (tmpfieldName.Equals("RosterClientMappingSiteCodeToHLevelID", StringComparison.CurrentCultureIgnoreCase))
                {
                    tmpfieldName = "HLevelID";
                }
                if (tmpfieldName.Equals("EmpFirstAuthorizationGp", StringComparison.CurrentCultureIgnoreCase) || tmpfieldName.Equals("EmpSecondAuthorizationGp", StringComparison.CurrentCultureIgnoreCase))
                {
                    tmpfieldName = "AuthorizationGroupID";
                }



                if (tmpfieldName.StartsWith("A", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (tmpfieldName.Equals("ALProrataRoundingRuleID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EALProrataRoundingRule obj = new EALProrataRoundingRule();
                        obj.ALProrataRoundingRuleID = int.Parse(fieldValue);
                        if (EALProrataRoundingRule.db.select(dbConn, obj))
                        {
                            return(obj.ALProrataRoundingRuleCode + " - " + obj.ALProrataRoundingRuleDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("AttendancePlanID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EAttendancePlan obj = new EAttendancePlan();
                        obj.AttendancePlanID = int.Parse(fieldValue);
                        if (EAttendancePlan.db.select(dbConn, obj))
                        {
                            return(obj.AttendancePlanCode + " - " + obj.AttendancePlanDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("AuthorizationGroupID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EAuthorizationGroup obj = new EAuthorizationGroup();
                        obj.AuthorizationGroupID = int.Parse(fieldValue);
                        if (EAuthorizationGroup.db.select(dbConn, obj))
                        {
                            return(obj.AuthorizationCode + " - " + obj.AuthorizationDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("AVCPlanID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EAVCPlan obj = new EAVCPlan();
                        obj.AVCPlanID = int.Parse(fieldValue);
                        if (EAVCPlan.db.select(dbConn, obj))
                        {
                            return(obj.AVCPlanCode + " - " + obj.AVCPlanDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                }
                else if (tmpfieldName.StartsWith("C", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (tmpfieldName.Equals("CessationReasonID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ECessationReason obj = new ECessationReason();
                        obj.CessationReasonID = int.Parse(fieldValue);
                        if (ECessationReason.db.select(dbConn, obj))
                        {
                            return(obj.CessationReasonCode + " - " + obj.CessationReasonDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("CompanyID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ECompany obj = new ECompany();
                        obj.CompanyID = int.Parse(fieldValue);
                        if (ECompany.db.select(dbConn, obj))
                        {
                            return(obj.CompanyCode + " - " + obj.CompanyName);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }


                    if (tmpfieldName.Equals("CostAllocationDetailID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ECostAllocationDetail obj = new ECostAllocationDetail();
                        obj.CostAllocationDetailID = int.Parse(fieldValue);
                        if (ECostAllocationDetail.db.select(dbConn, obj))
                        {
                            return(GetValueFromID(dbConn, "PayCodeID", obj.PaymentCodeID.ToString()) + ", " + GetValueFromID(dbConn, "CostCenterID", obj.CostCenterID.ToString()));
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("CostAllocationID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ECostAllocation obj = new ECostAllocation();
                        obj.CostAllocationID = int.Parse(fieldValue);
                        if (ECostAllocation.db.select(dbConn, obj))
                        {
                            return(GetValueFromID(dbConn, "EmpPayrollID", obj.EmpPayrollID.ToString()));
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("CostCenterID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ECostCenter obj = new ECostCenter();
                        obj.CostCenterID = int.Parse(fieldValue);
                        if (ECostCenter.db.select(dbConn, obj))
                        {
                            return(obj.CostCenterCode + " - " + obj.CostCenterDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                }
                else if (tmpfieldName.StartsWith("D", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (tmpfieldName.Equals("DocumentTypeID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EDocumentType obj = new EDocumentType();
                        obj.DocumentTypeID = int.Parse(fieldValue);
                        if (EDocumentType.db.select(dbConn, obj))
                        {
                            return(obj.DocumentTypeCode + " - " + obj.DocumentTypeDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                }
                else if (tmpfieldName.StartsWith("E", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (tmpfieldName.Equals("EmpAccID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EEmpBankAccount obj = new EEmpBankAccount();
                        obj.EmpBankAccountID = int.Parse(fieldValue);
                        if (EEmpBankAccount.db.select(dbConn, obj))
                        {
                            return(obj.EmpBankCode + "-" + obj.EmpBranchCode + "-" + obj.EmpAccountNo);
                        }
                        //return obj.EmpBankCode + "-" + obj.EmpBranchCode + "-" + string.Empty.PadRight(obj.EmpAccountNo.Length, 'X');
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("EmpCostCenterID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EEmpCostCenter obj = new EEmpCostCenter();
                        obj.EmpCostCenterID = int.Parse(fieldValue);
                        if (EEmpCostCenter.db.select(dbConn, obj))
                        {
                            return(GetValueFromID(dbConn, "EmpID", obj.EmpID.ToString()));
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("EmpExtraFieldID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EEmpExtraField obj = new EEmpExtraField();
                        obj.EmpExtraFieldID = int.Parse(fieldValue);
                        if (EEmpExtraField.db.select(dbConn, obj))
                        {
                            return(obj.EmpExtraFieldName);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("EmpID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EEmpPersonalInfo obj = new EEmpPersonalInfo();
                        obj.EmpID = int.Parse(fieldValue);
                        if (EEmpPersonalInfo.db.select(dbConn, obj))
                        {
                            return(obj.EmpNo + " - " + obj.EmpEngFullName);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("EmpPayrollID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EEmpPayroll obj = new EEmpPayroll();
                        obj.EmpPayrollID = int.Parse(fieldValue);
                        if (EEmpPayroll.db.select(dbConn, obj))
                        {
                            return(GetValueFromID(dbConn, "EmpID", obj.EmpID.ToString()) + " : " + GetValueFromID(dbConn, "PayPeriodID", obj.PayPeriodID.ToString()));
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("EmpPosID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EEmpPositionInfo obj = new EEmpPositionInfo();
                        obj.EmpPosID = int.Parse(fieldValue);
                        if (EEmpPositionInfo.db.select(dbConn, obj))
                        {
                            return(obj.EmpPosEffFr.ToString("yyyy-MM-dd") + " - " + (obj.EmpPosEffTo.Ticks.Equals(0) ? "Present" : obj.EmpPosEffTo.ToString("yyyy-MM-dd")));
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("EmploymentTypeID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EEmploymentType obj = new EEmploymentType();
                        obj.EmploymentTypeID = int.Parse(fieldValue);
                        if (EEmploymentType.db.select(dbConn, obj))
                        {
                            return(obj.EmploymentTypeCode + " - " + obj.EmploymentTypeDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                }
                else if (tmpfieldName.StartsWith("F", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (tmpfieldName.Equals("FunctionID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ESystemFunction obj = new ESystemFunction();
                        obj.FunctionID = int.Parse(fieldValue);
                        if (ESystemFunction.db.select(dbConn, obj))
                        {
                            return(obj.FunctionCode + " - " + obj.Description);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                }
                else if (tmpfieldName.StartsWith("H", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (tmpfieldName.Equals("HElementID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EHierarchyElement obj = new EHierarchyElement();
                        obj.HElementID = int.Parse(fieldValue);
                        if (EHierarchyElement.db.select(dbConn, obj))
                        {
                            return(obj.HElementCode + " - " + obj.HElementDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("HLevelID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EHierarchyLevel obj = new EHierarchyLevel();
                        obj.HLevelID = int.Parse(fieldValue);
                        if (EHierarchyLevel.db.select(dbConn, obj))
                        {
                            return(obj.HLevelCode + " - " + obj.HLevelDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                }
                else if (tmpfieldName.StartsWith("L", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (tmpfieldName.Equals("LeaveTypeID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ELeaveType obj = new ELeaveType();
                        obj.LeaveTypeID = int.Parse(fieldValue);
                        if (ELeaveType.db.select(dbConn, obj))
                        {
                            return(obj.LeaveType + " - " + obj.LeaveTypeDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("LeaveCodeID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ELeaveCode obj = new ELeaveCode();
                        obj.LeaveCodeID = int.Parse(fieldValue);
                        if (ELeaveCode.db.select(dbConn, obj))
                        {
                            return(obj.LeaveCode + " - " + obj.LeaveCodeDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("LeavePlanID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ELeavePlan obj = new ELeavePlan();
                        obj.LeavePlanID = int.Parse(fieldValue);
                        if (ELeavePlan.db.select(dbConn, obj))
                        {
                            return(obj.LeavePlanCode + " - " + obj.LeavePlanDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                }
                else if (tmpfieldName.StartsWith("M", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (tmpfieldName.Equals("MPFPlanID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EMPFPlan obj = new EMPFPlan();
                        obj.MPFPlanID = int.Parse(fieldValue);
                        if (EMPFPlan.db.select(dbConn, obj))
                        {
                            return(obj.MPFPlanCode + " - " + obj.MPFPlanDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }

                    if (tmpfieldName.Equals("MPFSchemeID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EMPFScheme obj = new EMPFScheme();
                        obj.MPFSchemeID = int.Parse(fieldValue);
                        if (EMPFScheme.db.select(dbConn, obj))
                        {
                            return(obj.MPFSchemeCode + " - " + obj.MPFSchemeDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("MPFSchemeCessationReasonID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EMPFSchemeCessationReason obj = new EMPFSchemeCessationReason();
                        obj.MPFSchemeCessationReasonID = int.Parse(fieldValue);
                        if (EMPFSchemeCessationReason.db.select(dbConn, obj))
                        {
                            return(obj.MPFSchemeCessationReasonCode + " - " + obj.MPFSchemeCessationReasonDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                }
                else if (tmpfieldName.StartsWith("O", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (tmpfieldName.Equals("ORSOPlanID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EORSOPlan obj = new EORSOPlan();
                        obj.ORSOPlanID = int.Parse(fieldValue);
                        if (EORSOPlan.db.select(dbConn, obj))
                        {
                            return(obj.ORSOPlanCode + " - " + obj.ORSOPlanDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                }
                else if (tmpfieldName.StartsWith("P", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (tmpfieldName.Equals("PayGroupID", StringComparison.CurrentCultureIgnoreCase) || tmpfieldName.Equals("PayrollGroupID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EPayrollGroup obj = new EPayrollGroup();
                        obj.PayGroupID = int.Parse(fieldValue);
                        if (EPayrollGroup.db.select(dbConn, obj))
                        {
                            return(obj.PayGroupCode + " - " + obj.PayGroupDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("PayFormID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EPayrollProrataFormula obj = new EPayrollProrataFormula();
                        obj.PayFormID = int.Parse(fieldValue);
                        if (EPayrollProrataFormula.db.select(dbConn, obj))
                        {
                            return(obj.PayFormCode + " - " + obj.PayFormDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("PaymentCodeID", StringComparison.CurrentCultureIgnoreCase) || tmpfieldName.Equals("PayCodeID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EPaymentCode obj = new EPaymentCode();
                        obj.PaymentCodeID = int.Parse(fieldValue);
                        if (EPaymentCode.db.select(dbConn, obj))
                        {
                            return(obj.PaymentCode + " - " + obj.PaymentCodeDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("PaymentTypeID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EPaymentType obj = new EPaymentType();
                        obj.PaymentTypeID = int.Parse(fieldValue);
                        if (EPaymentType.db.select(dbConn, obj))
                        {
                            return(obj.PaymentTypeCode + " - " + obj.PaymentTypeDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("PayPeriodID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EPayrollPeriod obj = new EPayrollPeriod();
                        obj.PayPeriodID = int.Parse(fieldValue);
                        if (EPayrollPeriod.db.select(dbConn, obj))
                        {
                            return(GetValueFromID(dbConn, "PayrollGroupID", obj.PayGroupID.ToString()) + ": " + obj.PayPeriodFr.ToString("yyyy-MM-dd") + " to " + obj.PayPeriodTo.ToString("yyyy-MM-dd"));
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("PermitTypeID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EPermitType obj = new EPermitType();
                        obj.PermitTypeID = int.Parse(fieldValue);
                        if (EPermitType.db.select(dbConn, obj))
                        {
                            return(obj.PermitTypeCode + " - " + obj.PermitTypeDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("PositionID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EPosition obj = new EPosition();
                        obj.PositionID = int.Parse(fieldValue);
                        if (EPosition.db.select(dbConn, obj))
                        {
                            return(obj.PositionCode + " - " + obj.PositionDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                }
                else if (tmpfieldName.StartsWith("Q", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (tmpfieldName.Equals("QualificationID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EQualification obj = new EQualification();
                        obj.QualificationID = int.Parse(fieldValue);
                        if (EQualification.db.select(dbConn, obj))
                        {
                            return(obj.QualificationCode + " - " + obj.QualificationDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                }
                else if (tmpfieldName.StartsWith("R", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (tmpfieldName.Equals("RankID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ERank obj = new ERank();
                        obj.RankID = int.Parse(fieldValue);
                        if (ERank.db.select(dbConn, obj))
                        {
                            return(obj.RankCode + " - " + obj.RankDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("ReminderTypeID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EReminderType obj = new EReminderType();
                        obj.ReminderTypeID = int.Parse(fieldValue);
                        if (EReminderType.db.select(dbConn, obj))
                        {
                            return(obj.ReminderTypeCode + " - " + obj.ReminderTypeDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("RosterClientID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ERosterClient obj = new ERosterClient();
                        obj.RosterClientID = int.Parse(fieldValue);
                        if (ERosterClient.db.select(dbConn, obj))
                        {
                            return(obj.RosterClientCode + " - " + obj.RosterClientName);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("RosterClientSiteID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ERosterClientSite obj = new ERosterClientSite();
                        obj.RosterClientSiteID = int.Parse(fieldValue);
                        if (ERosterClientSite.db.select(dbConn, obj))
                        {
                            return(obj.RosterClientSiteCode);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("RosterCodeID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ERosterCode obj = new ERosterCode();
                        obj.RosterCodeID = int.Parse(fieldValue);
                        if (ERosterCode.db.select(dbConn, obj))
                        {
                            return(obj.RosterCode + " - " + obj.RosterCodeDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                }
                else if (tmpfieldName.StartsWith("S", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (tmpfieldName.Equals("SkillID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ESkill obj = new ESkill();
                        obj.SkillID = int.Parse(fieldValue);
                        if (ESkill.db.select(dbConn, obj))
                        {
                            return(obj.SkillCode + " - " + obj.SkillDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("SkillLevelID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ESkillLevel obj = new ESkillLevel();
                        obj.SkillLevelID = int.Parse(fieldValue);
                        if (ESkillLevel.db.select(dbConn, obj))
                        {
                            return(obj.SkillLevelCode + " - " + obj.SkillLevelDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("StaffTypeID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EStaffType obj = new EStaffType();
                        obj.StaffTypeID = int.Parse(fieldValue);
                        if (EStaffType.db.select(dbConn, obj))
                        {
                            return(obj.StaffTypeCode + " - " + obj.StaffTypeDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                }
                else if (tmpfieldName.StartsWith("T", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (tmpfieldName.Equals("TaxCompID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ETaxCompany obj = new ETaxCompany();
                        obj.TaxCompID = int.Parse(fieldValue);
                        if (ETaxCompany.db.select(dbConn, obj))
                        {
                            return(obj.TaxCompEmployerName);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("TaxEmpID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ETaxEmp obj = new ETaxEmp();
                        obj.TaxEmpID = int.Parse(fieldValue);
                        if (ETaxEmp.db.select(dbConn, obj))
                        {
                            return(obj.TaxEmpSurname + ", " + obj.TaxEmpOtherName + ", " + GetValueFromID(dbConn, "TaxFormID", obj.TaxFormID.ToString()));
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("TaxFormID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ETaxForm obj = new ETaxForm();
                        obj.TaxFormID = int.Parse(fieldValue);
                        if (ETaxForm.db.select(dbConn, obj))
                        {
                            return("Tax Year :" + obj.TaxFormYear + ", Form: IR56" + obj.TaxFormType);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("TaxPayID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ETaxPayment obj = new ETaxPayment();
                        obj.TaxPayID = int.Parse(fieldValue);
                        if (ETaxPayment.db.select(dbConn, obj))
                        {
                            return(obj.TaxPayCode + " - " + obj.TaxPayDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("TrainingCourseID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ETrainingCourse obj = new ETrainingCourse();
                        obj.TrainingCourseID = int.Parse(fieldValue);
                        if (ETrainingCourse.db.select(dbConn, obj))
                        {
                            return(obj.TrainingCourseCode + " - " + obj.TrainingCourseName);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("TrainingSeminarID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        ETrainingSeminar obj = new ETrainingSeminar();
                        obj.TrainingSeminarID = int.Parse(fieldValue);
                        if (ETrainingSeminar.db.select(dbConn, obj))
                        {
                            return(GetValueFromID(dbConn, "TrainingCourseID", obj.TrainingCourseID.ToString()) + ": " + obj.TrainingSeminarDateFrom.ToString("yyyy-MM-dd") + " to " + obj.TrainingSeminarDateTo.ToString("yyyy-MM-dd"));
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                }
                else if (tmpfieldName.StartsWith("U", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (tmpfieldName.Equals("UserID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EUser obj = new EUser();
                        obj.UserID = int.Parse(fieldValue);
                        if (EUser.db.select(dbConn, obj))
                        {
                            return(obj.LoginID + " - " + obj.UserName);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                    if (tmpfieldName.Equals("UserGroupID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EUserGroup obj = new EUserGroup();
                        obj.UserGroupID = int.Parse(fieldValue);
                        if (EUserGroup.db.select(dbConn, obj))
                        {
                            return(obj.UserGroupName + " - " + obj.UserGroupDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                }
                else if (tmpfieldName.StartsWith("Y", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (tmpfieldName.Equals("YebPlanID", StringComparison.CurrentCultureIgnoreCase))
                    {
                        EYEBPlan obj = new EYEBPlan();
                        obj.YEBPlanID = int.Parse(fieldValue);
                        if (EYEBPlan.db.select(dbConn, obj))
                        {
                            return(obj.YEBPlanCode + " - " + obj.YEBPlanDesc);
                        }
                        else
                        {
                            return(string.Empty);
                        }
                    }
                }

                if (tmpfieldName.EndsWith("ID") && !tmpfieldName.EndsWith("HKID") && !tmpfieldName.EndsWith("LoginID") && !tmpfieldName.EndsWith("CurrencyID") && !tmpfieldName.EndsWith("LeaveAppID") && !tmpfieldName.EndsWith("EmpPaymentID") && !tmpfieldName.EndsWith("PayBatchID") && !tmpfieldName.EndsWith("PayRecID") && !tmpfieldName.EndsWith("RosterTableID") && !tmpfieldName.EndsWith("SynID") && !tmpfieldName.EndsWith("CNDImportBatchID"))
                {
                    if (ESystemParameter.getParameter(dbConn, "DebugMode").Equals("Y"))
                    {
                        throw new Exception("ID field not define:" + fieldName);
                    }
                }
                return(string.Empty);
            }
            catch (Exception ex)
            {
                if (ESystemParameter.getParameter(dbConn, "DebugMode").Equals("Y"))
                {
                    throw ex;
                }
                else
                {
                    return(string.Empty);
                }
            }
        }
Esempio n. 24
0
 public AnnualLeaveBalanceProcess(DatabaseConnection dbConn, int EmpID)
     : base(dbConn, EmpID, 0)
 {
     EntitlePeriodUnit = "Y";
     m_LeaveTypeID     = ELeaveType.ANNUAL_LEAVE_TYPE(dbConn).LeaveTypeID;
 }
    protected bool loadObject()
    {
        obj = new ELeaveApplication();
        bool isNew = WebFormWorkers.loadKeys(db, obj, DecryptedRequest);

        DBFilter filter = new DBFilter();

        filter.add(new Match("EmpID", CurEmpID));
        filter.add(WebUtils.AddRankFilter(Session, "EmpID", true));
        if (EEmpPersonalInfo.db.count(dbConn, filter) == 0)
        {
            if (CurEmpID <= 0)
            {
                return(false);
            }
            else
            {
                HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "~/AccessDeny.aspx");
            }
        }

        if (!db.select(dbConn, obj))
        {
            if (CurID <= 0)
            {
                return(false);
            }
            else
            {
                HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "~/AccessDeny.aspx");
            }
        }

        if (obj.EmpID != CurEmpID)
        {
            if (CurID <= 0)
            {
                return(false);
            }
            else
            {
                HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "~/AccessDeny.aspx");
            }
        }

        Hashtable values = new Hashtable();

        db.populate(obj, values);

        //int empPayrollID = int.Parse((string)values["EmpPayrollID"]);
        if (obj.EmpPayrollID > 0)
        {
            EEmpPayroll empPayroll = new EEmpPayroll();
            empPayroll.EmpPayrollID = obj.EmpPayrollID;
            if (EEmpPayroll.db.select(dbConn, empPayroll))
            {
                values.Add("PayPeriodID", empPayroll.PayPeriodID.ToString());
            }
        }

        binding.toControl(values);
        if (obj.LeaveAppUnit.Equals("D"))
        {
            TimeRow.Visible = false;
            LeaveAppDateToPlaceHolder.Visible = true;
        }
        else
        {
            TimeRow.Visible = true;
            LeaveAppDateToPlaceHolder.Visible = false;
        }
        if (obj.EmpPaymentID != 0 || obj.EmpPayrollID != 0)
        {
            toolBar.EditButton_Visible    = false;
            toolBar.DeleteButton_Visible  = false;
            toolBar.CustomButton1_Visible = true;
            toolBar.CustomButton2_Visible = true;
        }
        else
        {
            toolBar.EditButton_Visible    = true;
            toolBar.DeleteButton_Visible  = true;
            toolBar.CustomButton1_Visible = false;
            toolBar.CustomButton2_Visible = false;
        }

        if (obj.LeaveAppCancelID > 0)
        {
            toolBar.EditButton_Visible    = false;
            toolBar.DeleteButton_Visible  = false;
            toolBar.CustomButton1_Visible = false;
            toolBar.CustomButton2_Visible = false;
        }

        ELeaveCode leaveCode = new ELeaveCode();

        leaveCode.LeaveCodeID = obj.LeaveCodeID;
        if (ELeaveCode.db.select(dbConn, leaveCode))
        {
            PayrollProcessPanel.Visible = !leaveCode.LeaveCodeIsSkipPayrollProcess;
            LeaveCodeIsShowMedicalCertOptionPanel.Visible = leaveCode.LeaveCodeIsShowMedicalCertOption;
            //if (!leaveCode.LeaveCodeIsSkipPayrollProcess)
            //{
            //    ELeaveApplication leaveApp = new ELeaveApplication();
            //    leaveApp.LeaveAppID = CurID;
            //    if (ELeaveApplication.db.select(dbConn, leaveApp))
            //    {
            //        ELeaveCode prevLeaveCode = new ELeaveCode();
            //        prevLeaveCode.LeaveCodeID = leaveApp.LeaveCodeID;
            //        if (ELeaveCode.db.select(dbConn, prevLeaveCode))
            //            if (prevLeaveCode.LeaveCodeIsSkipPayrollProcess)
            //                LeaveAppNoPayProcess.Checked = false;
            //    }
            //}

            if (leaveCode.LeaveTypeID.Equals(ELeaveType.COMPENSATION_LEAVE_TYPE(dbConn).LeaveTypeID))
            {
                HoursClaimPanel.Visible = true;
            }
            else
            {
                HoursClaimPanel.Visible = false;
            }
        }
        else
        {
            HoursClaimPanel.Visible = false;
        }
        CurEmpID = obj.EmpID;
        return(true);
    }
Esempio n. 26
0
    // Start 000118, Ricky So, 2015-01-15
    protected void btnGenerate_Click(object sender, EventArgs e)
    {
        PageErrors errors = PageErrors.getErrors(db, Page.Master);

        errors.clear();

        DateTime m_asOfDate = AppUtils.ServerDateTime().Date;

        if (!DateTime.TryParse(AsOfDate.Value, out m_asOfDate))
        {
            m_asOfDate = AppUtils.ServerDateTime().Date;
        }

        ArrayList EmpIDList = new ArrayList();

        DBFilter m_empRosterTableGroupFilter = new DBFilter();
        OR       m_orEffTo = new OR();

        m_orEffTo.add(new Match("EmpRosterTableGroupEffTo", ">=", m_asOfDate));
        m_orEffTo.add(new NullTerm("EmpRosterTableGroupEffTo"));
        m_empRosterTableGroupFilter.add(new Match("EmpID", CurID));
        m_empRosterTableGroupFilter.add(new Match("EmpRosterTableGroupEffFr", "<", m_asOfDate));
        m_empRosterTableGroupFilter.add(m_orEffTo);
        m_empRosterTableGroupFilter.add("EmpRosterTableGroupID", true);

        foreach (EEmpRosterTableGroup m_empRosterTableGroup in EEmpRosterTableGroup.db.select(dbConn, m_empRosterTableGroupFilter))
        {
            if (m_empRosterTableGroup.EmpRosterTableGroupIsSupervisor == true)
            {
                DBFilter m_rosterGroupFilter = new DBFilter();
                m_rosterGroupFilter.add(new Match("RosterTableGroupID", m_empRosterTableGroup.RosterTableGroupID));
                m_rosterGroupFilter.add(new Match("EmpRosterTableGroupEffFr", "<", m_asOfDate));
                m_rosterGroupFilter.add(m_orEffTo);
                m_rosterGroupFilter.add("EmpID", true);

                foreach (EEmpRosterTableGroup m_groupMemberInfo in EEmpRosterTableGroup.db.select(dbConn, m_rosterGroupFilter))
                {
                    if (!EmpIDList.Contains(m_groupMemberInfo.EmpID))
                    {
                        EmpIDList.Add(m_groupMemberInfo.EmpID);
                    }
                }
            }
        }

        if (!EmpIDList.Contains(CurID))
        {
            EmpIDList.Add(CurID);
        }

        if (EmpIDList.Count > 0)
        {
            ArrayList leaveTypeList = new ArrayList();
            leaveTypeList.Add(ELeaveType.ANNUAL_LEAVE_TYPE(dbConn));

            MonthlyAttendanceReportProcess rpt = new MonthlyAttendanceReportProcess(dbConn, EmpIDList, m_asOfDate.Year, m_asOfDate.Month, Server.MapPath("~/ESS_MonthlyAttendanceReport.xsd"));
            string reportFileName = WebUtils.GetLocalizedReportFile(Server.MapPath("~/ESS_MonthlyAttendanceReport.rpt"));
            WebUtils.ReportExport(Response, rpt, reportFileName, "PDF", "AttendanceReport");
        }
        else
        {
            errors.addError("No employee can be generated");
        }
    }
Esempio n. 27
0
    protected void Save_Click(object sender, EventArgs e)
    {
        ELeaveBalanceAdjustment c = new ELeaveBalanceAdjustment();

        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);


        // validate if Compensation Leave selected, no Balance Reset is allowed
        if (c.LeaveTypeID > 0)
        {
            ELeaveType m_leaveType = ELeaveType.GetObject(dbConn, c.LeaveTypeID);
            if (m_leaveType != null)
            {
                if (m_leaveType.LeaveType == ELeaveType.LEAVETYPECODE_COMPENSATION &&
                    c.LeaveBalAdjType == ELeaveBalanceAdjustment.ADJUST_TYPE_RESET_BALANCE)
                {
                    errors.addError("Compensation Leave Adjustment does not support Balance Reset");
                }
            }

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

        DBFilter filter = new DBFilter();

        filter.add(new Match("EmpID", c.EmpID));
        filter.add(new Match("LeaveBalAdjID", "<>", c.LeaveBalAdjID));
        OR  or = new OR();
        AND and;

        and = new AND();
        and.add(new Match("LeaveBalAdjDate", "=", c.LeaveBalAdjDate));
        and.add(new Match("LeaveTypeID", "=", c.LeaveTypeID));
        or.add(and);

        filter.add(or);
        if (db.count(dbConn, filter) > 0)
        {
            errors.addError(HROne.Translation.PageErrorMessage.ERROR_LEAVE_ADJ_OVERLAP);
        }

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

        WebUtils.StartFunction(Session, FUNCTION_CODE, c.EmpID);
        //LeaveBalanceCalc leaaveBalCal = new LeaveBalanceCalc(dbConn, c.EmpID);

        if (CurID < 0)
        {
            db.insert(dbConn, c);
            CurID = c.LeaveBalAdjID;
            //leaaveBalCal.RecalculateAfter(c.LeaveBalAdjDate, c.LeaveTypeID);
        }
        else
        {
            //ELeaveBalanceAdjustment leaveBalAdjust = new ELeaveBalanceAdjustment();
            //leaveBalAdjust.LeaveBalAdjID = CurID;
            //db.select(dbConn, leaveBalAdjust);
            db.update(dbConn, c);
            //leaaveBalCal.RecalculateAfter(leaveBalAdjust.LeaveBalAdjDate < c.LeaveBalAdjDate ? leaveBalAdjust.LeaveBalAdjDate : c.LeaveBalAdjDate);
        }
        WebUtils.EndFunction(dbConn);


        HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "Emp_LeaveBalanceAdjustment_View.aspx?EmpID=" + c.EmpID + "&LeaveBalAdjID=" + CurID);
    }
    protected void Save_Click(object sender, EventArgs e)
    {
        ECompensationLeaveEntitle c = new ECompensationLeaveEntitle();

        if (string.IsNullOrEmpty(CompensationLeaveEntitleClaimPeriodTo.Value))
        {
            CompensationLeaveEntitleClaimPeriodTo.Value = CompensationLeaveEntitleClaimPeriodFrom.Value;
        }

        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 (!errors.isEmpty())
        {
            return;
        }

        ELeaveType compensationLeaveType = ELeaveType.COMPENSATION_LEAVE_TYPE(dbConn);

        WebUtils.StartFunction(Session, FUNCTION_CODE, c.EmpID);
        LeaveBalanceCalc leaaveBalCal = new LeaveBalanceCalc(dbConn, c.EmpID);

        if (CurID < 0)
        {
//            Utils.MarkCreate(Session, c);

            db.insert(dbConn, c);
            CurID = c.CompensationLeaveEntitleID;
            //if (compensationLeaveType != null)
            //    leaaveBalCal.RecalculateAfter(c.CompensationLeaveEntitleEffectiveDate, compensationLeaveType.LeaveTypeID);
            //else
            //    leaaveBalCal.RecalculateAfter(c.CompensationLeaveEntitleEffectiveDate);

//            url = Utils.BuildURL(-1, CurID);
        }
        else
        {
//            Utils.Mark(Session, c);
            //ECompensationLeaveEntitle leaveBalApp = new ECompensationLeaveEntitle();
            //leaveBalApp.CompensationLeaveEntitleID = CurID;
            //db.select(dbConn, leaveBalApp);
            db.update(dbConn, c);
            //if (compensationLeaveType != null)
            //    leaaveBalCal.RecalculateAfter(leaveBalApp.CompensationLeaveEntitleEffectiveDate < c.CompensationLeaveEntitleEffectiveDate ? leaveBalApp.CompensationLeaveEntitleEffectiveDate : c.CompensationLeaveEntitleEffectiveDate, compensationLeaveType.LeaveTypeID);
            //else
            //    leaaveBalCal.RecalculateAfter(leaveBalApp.CompensationLeaveEntitleEffectiveDate < c.CompensationLeaveEntitleEffectiveDate ? leaveBalApp.CompensationLeaveEntitleEffectiveDate : c.CompensationLeaveEntitleEffectiveDate);
        }
        WebUtils.EndFunction(dbConn);


        HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "Emp_CompensationLeaveEntitle_View.aspx?EmpID=" + c.EmpID + "&CompensationLeaveEntitleID=" + CurID);
    }