protected bool loadObject() { obj = new ERequestLeaveApplication(); bool isNew = WebFormWorkers.loadKeys(db, obj, Request); if (!db.select(dbConn, obj)) { return(false); } Hashtable values = new Hashtable(); db.populate(obj, values); binding.toControl(values); RequestLeaveAppUnit.SelectedValue = obj.RequestLeaveAppUnit; //CurEmpID = obj.EmpID; return(true); }
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_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); } }
// 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 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 empRequestFilter = new DBFilter(); empRequestFilter.add(new Match("EmpID", EmpID)); //empRequestFilter.add(new Match("EmpRequestStatusCode", "<>", EEmpRequest.STATUS_APPROVED)); //empRequestFilter.add(new Match("EmpRequestStatusCode", "<>", EEmpRequest.STATUS_USRCANCEL)); //empRequestFilter.add(new Match("EmpRequestStatusCode", "<>", EEmpRequest.STATUS_FSTREJ)); //empRequestFilter.add(new Match("EmpRequestStatusCode", "<>", EEmpRequest.STATUS_SNDREJ)); empRequestFilter.add(new Match("EmpRequestStatus", "<>", EEmpRequest.STATUS_CANCELLED)); empRequestFilter.add(new Match("EmpRequestStatus", "<>", EEmpRequest.STATUS_REJECTED)); empRequestFilter.add(new Match("EmpRequestStatus", "<>", EEmpRequest.STATUS_APPROVED)); ArrayList empRequestList = EEmpRequest.db.select(dbConn, empRequestFilter); DataSet.EmployeeDetail.EmpRequestDataTable empRequestTable = ds.EmpRequest; foreach (EEmpRequest empRequest in empRequestList) { DataSet.EmployeeDetail.EmpRequestRow row = empRequestTable.NewEmpRequestRow(); row.EmpID = empRequest.EmpID; row.EmpRequestID = empRequest.EmpRequestID; row.EmpRequestCreateDate = empRequest.EmpRequestCreateDate; row.EmpRequestModifyDate = empRequest.EmpRequestModifyDate; row.EmpRequestRecordID = empRequest.EmpRequestRecordID; //row.EmpRequestStatusCode = HROne.Common.WebUtility.GetLocalizedString(empRequest.EmpRequestStatusCode); row.EmpRequestStatus = HROne.Common.WebUtility.GetLocalizedString(empRequest.EmpRequestStatus); row.EmpRequestLastAuthorizationWorkFlowIndex = empRequest.EmpRequestLastAuthorizationWorkFlowIndex; row.EmpRequestLastActionBy = empRequest.EmpRequestLastActionBy; row.EmpRequestType = HROne.Common.WebUtility.GetLocalizedString(empRequest.EmpRequestType); if (empRequest.EmpRequestType.Equals(EEmpRequest.TYPE_EELEAVEAPP)) { ERequestLeaveApplication requestLeaveApplication = new ERequestLeaveApplication(); requestLeaveApplication.RequestLeaveAppID = empRequest.EmpRequestRecordID; if (ERequestLeaveApplication.db.select(dbConn, requestLeaveApplication)) { ELeaveCode leaveCode = new ELeaveCode(); leaveCode.LeaveCodeID = requestLeaveApplication.RequestLeaveCodeID; if (ELeaveCode.db.select(dbConn, leaveCode)) { row.EmpRequestType = leaveCode.LeaveCodeDesc; } row.DateFrom = requestLeaveApplication.RequestLeaveAppDateFrom; row.DateFromAM = requestLeaveApplication.RequestLeaveAppDateFromAM; row.DateTo = requestLeaveApplication.RequestLeaveAppDateTo; row.DateToAM = requestLeaveApplication.RequestLeaveAppDateToAM; row.Unit = requestLeaveApplication.RequestLeaveDays; row.Remark = requestLeaveApplication.RequestLeaveAppRemark; } } empRequestTable.AddEmpRequestRow(row); } } if (reportDocument == null) { reportDocument = new ReportTemplate.Report_Employee_ESSRequest(); } else { } reportDocument.SetDataSource(ds); reportDocument.SetParameterValue("HierarchyLevel1", HierarchyLevel1); return(reportDocument); } else { return(null); } }