Exemplo n.º 1
0
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        DateTime createDate = DateTime.Now;
        ERequestLeaveApplicationCancel c = new ERequestLeaveApplicationCancel();
        EEmpRequest EmpRequest           = new EEmpRequest();


        Binding leaveCancelBinding = new Binding(dbConn, ERequestLeaveApplicationCancel.db);

        leaveCancelBinding.add(EmpID);
        leaveCancelBinding.add(LeaveAppID);
        leaveCancelBinding.add(RequestLeaveAppCancelReason);

        Hashtable values = new Hashtable();

        leaveCancelBinding.toValues(values);

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

        errors.clear();


        ERequestLeaveApplicationCancel.db.validate(errors, values);

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


        ERequestLeaveApplicationCancel.db.parse(values, c);

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



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

        if (!errors.isEmpty())
        {
            return;
        }
        HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "~/ESS_EmpRequestStatus.aspx");
    }
    protected string generateToolTipMessage(EEmpRequest empRequest)
    {
        string message = "Employee No:\t%EMP_NO%\r\n" +
                         "Employee:\t%EMP_NAME%\r\n" +
                         "Leave Date:\t%LEAVEAPP_PERIOD%\r\n" +
                         "Leave Type:\t%LEAVE_CODE%\r\n" +
                         "Taken     :\t%LEAVEAPP_DAYS% %LEAVEAPP_UNIT%\r\n" +
                         "Hours Claims:\t%LEAVEAPP_HOURSCLAIM%\r\n" +
                         "Reason:\t%LEAVEAPPCANCEL_REMARK%\r\n";

        ESSAuthorizationProcess process = new ESSAuthorizationProcess(dbConn);

        EEmpPersonalInfo ApplicantEmpInfo = process.GetEmpInfo(empRequest.EmpID);

        Hashtable mailContentParameterTable = new Hashtable();

        mailContentParameterTable = process.GenerateEmpInfoHashTable(ApplicantEmpInfo, mailContentParameterTable);

        if (empRequest.EmpRequestType == EEmpRequest.TYPE_EELEAVEAPP)
        {
            DBFilter RequestEmpFilter = new DBFilter();
            RequestEmpFilter.add(new Match("RequestLeaveAppID", empRequest.EmpRequestRecordID));
            ArrayList empRequestList = ERequestLeaveApplication.db.select(dbConn, RequestEmpFilter);
            if (empRequestList.Count > 0)
            {
                ERequestLeaveApplication empLeaveRequest = (ERequestLeaveApplication)empRequestList[0];

                mailContentParameterTable = process.GenerateRequestLeaveApplicationHashTable(empLeaveRequest, mailContentParameterTable);
            }
        }
        else if (empRequest.EmpRequestType == EEmpRequest.TYPE_EELEAVECANCEL)
        {
            DBFilter RequestEmpFilter = new DBFilter();
            RequestEmpFilter.add(new Match("RequestLeaveAppCancelID", empRequest.EmpRequestRecordID));
            ArrayList empRequestList = ERequestLeaveApplicationCancel.db.select(dbConn, RequestEmpFilter);
            if (empRequestList.Count > 0)
            {
                ERequestLeaveApplicationCancel requestLeaveAppCancel = (ERequestLeaveApplicationCancel)empRequestList[0];
                mailContentParameterTable.Add("%LEAVEAPPCANCEL_REMARK%", requestLeaveAppCancel.RequestLeaveAppCancelReason);
                ELeaveApplication leaveApp = new ELeaveApplication();
                leaveApp.LeaveAppID = requestLeaveAppCancel.LeaveAppID;
                if (ELeaveApplication.db.select(dbConn, leaveApp))
                {
                    ERequestLeaveApplication dummyRequestLeave = ERequestLeaveApplication.CreateDummyRequestLeaveAppliction(leaveApp);
                    mailContentParameterTable = process.GenerateRequestLeaveApplicationHashTable(dummyRequestLeave, mailContentParameterTable);
                }
            }
        }
        string MessageBodyTemplate = message;

        foreach (string key in mailContentParameterTable.Keys)
        {
            MessageBodyTemplate = MessageBodyTemplate.Replace(key, mailContentParameterTable[key].ToString());
        }
        string[] messageBodyLineArray = MessageBodyTemplate.Split(new string[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
        string   newMessageBody       = string.Empty;

        foreach (string messageLine in messageBodyLineArray)
        {
            if (string.IsNullOrEmpty(messageLine) || messageLine.IndexOf("%") == messageLine.LastIndexOf("%"))
            {
                if (string.IsNullOrEmpty(newMessageBody))
                {
                    newMessageBody = messageLine;
                }
                else
                {
                    newMessageBody += "\r\n" + messageLine;
                }
            }
        }
        return(newMessageBody);
    }
    protected bool loadObject()
    {
        DBFilter filterStatus = new DBFilter();

        filterStatus.add(new Match("EmpRequestRecordID", CurRequestID));
        filterStatus.add(new Match("EmpRequestType", EEmpRequest.TYPE_EELEAVECANCEL));
        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;
                    RejectReasonRow.Visible = false;
                }
                else
                {
                    btnCancel.Visible = false;
                    if (!string.IsNullOrEmpty(empRequest.EmpRequestRejectReason))
                    {
                        RejectReasonRow.Visible = true;
                        lblRejectReason.Text    = empRequest.EmpRequestRejectReason;
                    }
                    else
                    {
                        RejectReasonRow.Visible = false;
                    }
                }
            }
            else
            {
                btnCancel.Visible       = false;
                RejectReasonRow.Visible = false;
            }
            obj = new ERequestLeaveApplicationCancel();
            obj.RequestLeaveAppCancelID = CurRequestID;
            if (!db.select(dbConn, obj))
            {
                return(false);
            }

            Hashtable leaveCancelValues = new Hashtable();
            db.populate(obj, leaveCancelValues);
            cancelBinding.toControl(leaveCancelValues);

            ELeaveApplication leaveApp = new ELeaveApplication();
            leaveApp.LeaveAppID = obj.LeaveAppID;
            if (!ELeaveApplication.db.select(dbConn, leaveApp))
            {
                return(false);
            }

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

            if (leaveApp.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 = leaveApp.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;
                }

                //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.LeaveAppDateFrom <= 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);
        }
    }