protected void btnEstimateTotalLeaveDay_Click(object sender, EventArgs e) { lblStatutoryHolidayList.Text = string.Empty; if (RequestLeaveAppUnit.SelectedValue.Equals("D")) { DateTime dtFrom, dtTo; if (DateTime.TryParse(RequestLeaveAppDateFrom.Value, out dtFrom) && DateTime.TryParse(RequestLeaveAppDateTo.Value, out dtTo)) { int intLeaveCodeID = 0; try { intLeaveCodeID = Convert.ToInt32(RequestLeaveCodeID.SelectedValue); } catch { } DateTime[] dateSkipArray = null; double totalDays = ELeaveApplication.GetEstimatedNumOfLeaveDays(dbConn, CurEmpID, dtFrom, dtTo, intLeaveCodeID, out dateSkipArray); // Start 0000201, Ricky So, 2015-05-28 if (RequestLeaveAppDateFromAM.Visible == true && RequestLeaveAppDateFromAM.SelectedValue == "PM") { totalDays -= 0.5; } if (RequestLeaveAppDateToAM.Visible == true && RequestLeaveAppDateToAM.SelectedValue == "AM") { totalDays -= 0.5; } if (totalDays < 0) { totalDays = 0; } // End 0000201, Ricky So, 2015-05-28 RequestLeaveDays.Text = totalDays.ToString(); if (dateSkipArray.GetLength(0) > 0) { lblStatutoryHolidayList.Text = HROne.Common.WebUtility.GetLocalizedString("Date excluded"); foreach (DateTime dateSkip in dateSkipArray) { lblStatutoryHolidayList.Text += "<br/>" + dateSkip.ToString("yyyy-MM-dd"); } } LeaveAppDays_TextChanged(sender, e); } } else if (RequestLeaveAppUnit.SelectedValue.Equals("H")) { LeaveAppTime_TextChanged(sender, e); } else if (RequestLeaveAppUnit.SelectedValue.Equals("A") || RequestLeaveAppUnit.SelectedValue.Equals("P")) { RequestLeaveDays.Text = "0.5"; LeaveAppDays_TextChanged(sender, e); } }
protected void btnEstimateTotalLeaveDay_Click(object sender, EventArgs e) { lblStatutoryHolidayList.Text = string.Empty; if (LeaveAppUnit.SelectedValue.Equals("D")) { DateTime dtFrom, dtTo; if (DateTime.TryParse(LeaveAppDateFrom.Value, out dtFrom) && DateTime.TryParse(LeaveAppDateTo.Value, out dtTo)) { int intLeaveCodeID = 0; try { intLeaveCodeID = Convert.ToInt32(LeaveCodeID.SelectedValue); } catch { } DateTime[] dateSkipArray = null; double totalDays = ELeaveApplication.GetEstimatedNumOfLeaveDays(dbConn, CurEmpID, dtFrom, dtTo, intLeaveCodeID, out dateSkipArray); LeaveAppDays.Text = totalDays.ToString(); if (dateSkipArray.GetLength(0) > 0) { lblStatutoryHolidayList.Text = HROne.Common.WebUtility.GetLocalizedString("Date excluded"); foreach (DateTime dateSkip in dateSkipArray) { lblStatutoryHolidayList.Text += "<br/>" + dateSkip.ToString("yyyy-MM-dd"); } } LeaveAppDays_TextChanged(sender, e); //double totalDays=Math.Abs(((TimeSpan)dtTo.Subtract(dtFrom)).TotalDays) + 1; //DBFilter statutoryHolidayFilter = new DBFilter(); //statutoryHolidayFilter.add(new Match("StatutoryHolidayDate", "<=", dtFrom < dtTo ? dtTo : dtFrom)); //statutoryHolidayFilter.add(new Match("StatutoryHolidayDate", ">=", dtFrom < dtTo ? dtFrom : dtTo)); //statutoryHolidayFilter.add("StatutoryHolidayDate", true); //ArrayList statutoryList = EStatutoryHoliday.db.select(dbConn, statutoryHolidayFilter); //if (statutoryList.Count > 0) //{ // lblStatutoryHolidayList.Text = HROne.Common.WebUtility.GetLocalizedString("Statutory Holiday"); // foreach (EStatutoryHoliday statHol in statutoryList) // { // lblStatutoryHolidayList.Text += "<br/>" + statHol.StatutoryHolidayDate.ToString("yyyy-MM-dd") + " " + statHol.StatutoryHolidayDesc; // totalDays--; // } //} //LeaveAppDays.Text = totalDays.ToString() ; } } else if (LeaveAppUnit.SelectedValue.Equals("H")) { LeaveAppTime_TextChanged(sender, e); } else if (LeaveAppUnit.SelectedValue.Equals("A") || LeaveAppUnit.SelectedValue.Equals("P")) { LeaveAppDays.Text = "0.5"; LeaveAppDays_TextChanged(sender, e); } }
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 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 Delete_Click(object sender, EventArgs e) { ELeaveApplication c = new ELeaveApplication(); c.LeaveAppID = CurID; db.select(dbConn, c); WebUtils.StartFunction(Session, FUNCTION_CODE, c.EmpID); db.delete(dbConn, c); WebUtils.EndFunction(dbConn); //HROne.LeaveCalc.LeaveBalanceCalc leaaveBalCal = new HROne.LeaveCalc.LeaveBalanceCalc(dbConn, c.EmpID); //leaaveBalCal.RecalculateAfter(c.LeaveAppDateFrom, ELeaveType.COMPENSATION_LEAVE_TYPE(dbConn).LeaveTypeID); HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "EmpTab_LeaveApplication_View.aspx?EmpID=" + EmpID.Value); }
protected void Repeater_ItemCommand(object source, RepeaterCommandEventArgs e) { PageErrors errors = PageErrors.getErrors(ELeaveApplication.db, Page.Master); int LeaveAppID = 0; if (int.TryParse(((Button)e.Item.FindControl("Cancel")).Attributes["LeaveAppID"], out LeaveAppID)) { ELeaveApplication obj = new ELeaveApplication(); obj.LeaveAppID = LeaveAppID; if (ELeaveApplication.db.select(dbConn, obj)) { //if (obj.EmpPayrollID > 0 || obj.EmpPaymentID > 0) //{ // // message prompt to user //} //else { ELeaveCode leaveCode = new ELeaveCode(); leaveCode.LeaveCodeID = obj.LeaveCodeID; if (ELeaveCode.db.select(dbConn, leaveCode)) { if (leaveCode.LeaveCodeHideInESS) { // message prompt to user } else { HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "ESS_EmpLeaveApplicationCancel.aspx?LeaveAppID=" + LeaveAppID); //AppUtils.StartFunction(dbConn, 0, "PER009", obj.EmpID, true); //ELeaveApplication.db.delete(dbConn, obj); //AppUtils.EndFunction(dbConn); //ESSAuthorizationProcess authorization = new ESSAuthorizationProcess(dbConn); //authorization.CancelLeaveApplicatoin(obj); //errors.addError(HROne.Common.WebUtility.GetLocalizedString("The leave application is cancelled")); } } else { // message prompt to user } } } } view = loadData(info, db, Repeater); }
public void ImportToDatabase(int UploadEmpID) { DBFilter sessionFilter = new DBFilter(); sessionFilter.add(new Match("SessionID", m_SessionID)); if (UploadEmpID > 0) { sessionFilter.add(new Match("UploadEmpID", UploadEmpID)); } ArrayList uploadLeaveAppList = tempDB.select(dbConn, sessionFilter); //Dictionary<int, DateTime> recalLeaveBalanceDateList = new Dictionary<int, DateTime>(); foreach (EUploadLeaveApplication obj in uploadLeaveAppList) { ELeaveApplication leaveApplication = new ELeaveApplication(); if (obj.ImportActionStatus != ImportDBObject.ImportActionEnum.INSERT) { leaveApplication.LeaveAppID = obj.LeaveAppID; uploadDB.select(dbConn, leaveApplication); } obj.ExportToObject(leaveApplication); if (obj.ImportActionStatus == ImportDBObject.ImportActionEnum.INSERT) { leaveApplication.EmpID = ParseTemp.GetEmpIDFromUploadEmpID(dbConn, obj.UploadEmpID); uploadDB.insert(dbConn, leaveApplication); } else if (obj.ImportActionStatus == ImportDBObject.ImportActionEnum.UPDATE) { uploadDB.update(dbConn, leaveApplication); } tempDB.delete(dbConn, obj); } //foreach (int EmpID in recalLeaveBalanceDateList.Keys) //{ // HROne.LeaveCalc.LeaveBalanceCalc leaaveBalCal = new HROne.LeaveCalc.LeaveBalanceCalc(dbConn, EmpID); // leaaveBalCal.RecalculateAfter(recalLeaveBalanceDateList[EmpID]); //} }
protected ELeaveBalance GetAvailableBalance(ELeaveApplication leaveApplicatoin, DateTime periodEndDate) { ELeaveBalance m_balance = new ELeaveBalance(); // ******** remove expired entitlement foreach (DataRow row in m_earned.Rows) { if (row["EXPIRY_DATE"] != null && System.Convert.ToDateTime(row["EXPIRY_DATE"]) < leaveApplicatoin.LeaveAppDateFrom) { //m_balance.LeaveBalanceEntitled += System.Convert.ToDouble(row["UNUSED_HOURS"]); m_balance.ExpiryForfeit += System.Convert.ToDouble(row["UNUSED_HOURS"]); row["UNUSED_HOURS"] = 0; //row.Delete(); } } // ******* calculate entitled from entitledList and processedList foreach (DataRow row in m_earned.Rows) { if (leaveApplicatoin != null && leaveApplicatoin.LeaveAppHours > 0) { if (leaveApplicatoin.LeaveAppHours >= System.Convert.ToDouble(row["UNUSED_HOURS"])) { leaveApplicatoin.LeaveAppHours -= System.Convert.ToDouble(row["UNUSED_HOURS"]); row["UNUSED_HOURS"] = 0; //row.Delete(); } else { row["UNUSED_HOURS"] = System.Convert.ToDouble(row["UNUSED_HOURS"]) - leaveApplicatoin.LeaveAppHours; leaveApplicatoin.LeaveAppHours = 0; } } else { break; } } m_earned.DefaultView.RowFilter = "UNUSED_HOURS > 0"; m_earned = m_earned.DefaultView.ToTable(); return(m_balance); }
private static DateTime getDAWAsOfDate(DatabaseConnection dbConn, int EmpID, int LeaveCodeID, DateTime LeaveDateFrom) { DBFilter leaveApplicationFilter = new DBFilter(); leaveApplicationFilter.add(new Match("EmpID", EmpID)); leaveApplicationFilter.add(new Match("LeaveCodeID", LeaveCodeID)); leaveApplicationFilter.add(new Match("LeaveAppDateFrom", "<=", LeaveDateFrom.AddDays(-1))); leaveApplicationFilter.add(new Match("LeaveAppDateTo", ">=", LeaveDateFrom.AddDays(-1))); leaveApplicationFilter.add("LeaveAppDateFrom", true); ArrayList leaveAppList = ELeaveApplication.db.select(dbConn, leaveApplicationFilter); if (leaveAppList.Count > 0) { ELeaveApplication leaveApp = (ELeaveApplication)leaveAppList[0]; return(getDAWAsOfDate(dbConn, EmpID, LeaveCodeID, leaveApp.LeaveAppDateFrom)); } return(LeaveDateFrom); }
protected void Repeater_ItemDataBound(object sender, RepeaterItemEventArgs e) { DataRowView row = (DataRowView)e.Item.DataItem; CheckBox cb = (CheckBox)e.Item.FindControl("ItemSelect"); WebFormUtils.LoadKeys(sdb, row, cb); ELeaveApplication obj = new ELeaveApplication(); sdb.toObject(row.Row, obj); if (obj.EmpPaymentID != 0 || obj.EmpPayrollID != 0) { cb.Visible = false; } else { cb.Visible = IsAllowEdit; } }
private string getCurrentLeaveCodeDesc(DateTime periodFromDate, int dayIdx, int empID) { DateTime currentDate = periodFromDate.AddDays(dayIdx); TimeSpan cutOffTimeSpan = getCurrentCutOffTimeSpan(periodFromDate, dayIdx, empID); // retrieve employee leave information of the day DBFilter leaveAppFilter = new DBFilter(); ELeaveApplication leaveAppData = new ELeaveApplication(); leaveAppFilter.add(new Match("EmpID", empID)); leaveAppFilter.add(new Match("LeaveAppDateFrom", "<=", currentDate.Add(cutOffTimeSpan))); leaveAppFilter.add(new Match("LeaveAppDateTo", ">=", currentDate.Add(cutOffTimeSpan))); ArrayList leaveAppDataList = ELeaveApplication.db.select(dbConn, leaveAppFilter); string s = ""; foreach (ELeaveApplication itemData in leaveAppDataList) { if (s != "") { s = s + "<br>"; } // get leave code master DBFilter leaveCodeMasterFilter = new DBFilter(); ELeaveCode leaveCodeMasterData = new ELeaveCode(); leaveCodeMasterFilter.add(new Match("leaveCodeID", itemData.LeaveCodeID)); ArrayList leaveCodeMasterDataList = ELeaveCode.db.select(dbConn, leaveCodeMasterFilter); if (leaveCodeMasterDataList != null) { s = s + ((ELeaveCode)leaveCodeMasterDataList[0]).LeaveCode + " - " + ((ELeaveCode)leaveCodeMasterDataList[0]).LeaveCodeDesc; } } if (s != "") { s.Replace("<br>", "\n"); } return(s); }
protected RosterTableEventList GenerateEventList(ICollection DBObjectList) { RosterTableEventList tmpEventList = new RosterTableEventList(); if (DBObjectList != null) { foreach (DBObject dbObject in DBObjectList) { if (dbObject is ERosterTable) { ERosterTable rosterTable = (ERosterTable)dbObject; ERosterCode rosterCode = new ERosterCode(); rosterCode.RosterCodeID = rosterTable.RosterCodeID; bool hasRecord = ERosterCode.db.select(dbConn, rosterCode); if (hasRecord || rosterCode.RosterCodeID == 0) { RosterTableEvent eventDetail = new RosterTableEvent(); eventDetail.Id = RosterTableEvent.ROSTER_TABLE_ID_PREFIX + "_" + rosterTable.RosterTableID; // Override Start/End time only when the roster code exists if (rosterTable.RosterTableOverrideInTime.Ticks.Equals(0) || !hasRecord) { eventDetail.StartTime = rosterTable.RosterTableDate.Add(rosterCode.RosterCodeInTime.TimeOfDay); } else { eventDetail.StartTime = rosterTable.RosterTableDate.Add(rosterTable.RosterTableOverrideInTime.TimeOfDay); } if (rosterTable.RosterTableOverrideOutTime.Ticks.Equals(0) || !hasRecord) { eventDetail.EndTime = rosterTable.RosterTableDate.Add(rosterCode.RosterCodeOutTime.TimeOfDay); } else { eventDetail.EndTime = rosterTable.RosterTableDate.Add(rosterTable.RosterTableOverrideOutTime.TimeOfDay); } if (eventDetail.StartTime >= eventDetail.EndTime) { eventDetail.EndTime = eventDetail.EndTime.AddDays(1); if (!DisplayOvernightToNextDay) { eventDetail.EndTime = eventDetail.EndTime.Date; } } EEmpPersonalInfo empInfo = new EEmpPersonalInfo(); empInfo.EmpID = rosterTable.EmpID; EEmpPersonalInfo.db.select(dbConn, empInfo); eventDetail.Subject = (hasRecord ? rosterCode.RosterCode : "(unspecified)") + " - " + empInfo.EmpEngDisplayName; eventDetail.ToolTip = eventDetail.Subject; eventDetail.Label = rosterCode.RosterClientSiteID; eventDetail.RecurrenceInfo = string.Empty; eventDetail.OwnerId = rosterCode.RosterClientSiteID; tmpEventList.Add(eventDetail); } } else if (dbObject is ELeaveApplication) { ELeaveApplication leaveApplication = (ELeaveApplication)dbObject; ELeaveCode leaveCode = new ELeaveCode(); leaveCode.LeaveCodeID = leaveApplication.LeaveCodeID; bool hasRecord = ELeaveCode.db.select(dbConn, leaveCode); if (hasRecord) { RosterTableEvent eventDetail = new RosterTableEvent(); eventDetail.Id = RosterTableEvent.LEAVEAPP_ID_PREFIX + "_" + leaveApplication.LeaveAppID; if (leaveApplication.LeaveAppUnit.Equals(ELeaveApplication.LEAVEUNIT_DAYS)) { eventDetail.StartTime = leaveApplication.LeaveAppDateFrom; eventDetail.EndTime = leaveApplication.LeaveAppDateTo.AddDays(1); } else { eventDetail.StartTime = leaveApplication.LeaveAppDateFrom; eventDetail.EndTime = leaveApplication.LeaveAppDateFrom; if (!leaveApplication.LeaveAppTimeFrom.Ticks.Equals(0)) { eventDetail.StartTime = eventDetail.StartTime.Add(leaveApplication.LeaveAppTimeFrom.TimeOfDay); } if (!leaveApplication.LeaveAppTimeTo.Ticks.Equals(0)) { eventDetail.EndTime = eventDetail.EndTime.Add(leaveApplication.LeaveAppTimeTo.TimeOfDay); } if (leaveApplication.LeaveAppUnit.Equals(ELeaveApplication.LEAVEUNIT_AM)) { if (eventDetail.StartTime.Equals(leaveApplication.LeaveAppDateFrom)) { eventDetail.StartTime = eventDetail.StartTime.Add(new TimeSpan(0, 0, 0)); } if (eventDetail.EndTime.Equals(leaveApplication.LeaveAppDateFrom)) { eventDetail.EndTime = eventDetail.EndTime.Add(new TimeSpan(13, 0, 0)); } } if (leaveApplication.LeaveAppUnit.Equals(ELeaveApplication.LEAVEUNIT_PM)) { if (eventDetail.StartTime.Equals(leaveApplication.LeaveAppDateFrom)) { eventDetail.StartTime = eventDetail.StartTime.Add(new TimeSpan(13, 0, 0)); } if (eventDetail.EndTime.Equals(leaveApplication.LeaveAppDateFrom)) { eventDetail.EndTime = eventDetail.EndTime.AddDays(1); } } else { if (eventDetail.StartTime.Equals(leaveApplication.LeaveAppDateFrom)) { eventDetail.StartTime = eventDetail.StartTime.Add(new TimeSpan(0, 0, 0)); } if (eventDetail.EndTime.Equals(leaveApplication.LeaveAppDateFrom)) { eventDetail.EndTime = eventDetail.EndTime.AddDays(1); } } } EEmpPersonalInfo empInfo = new EEmpPersonalInfo(); empInfo.EmpID = leaveApplication.EmpID; EEmpPersonalInfo.db.select(dbConn, empInfo); //eventDetail.Subject = (hasRecord ? leaveCode.LeaveCode : "(unspecified)") + " - " + empInfo.EmpEngDisplayName; if (leaveApplication.LeaveAppDays < 0 || leaveApplication.LeaveAppHours < 0) { eventDetail.IsCancel = true; } string LeaveUnitDetail = string.Empty; if (leaveApplication.LeaveAppUnit.Equals("D")) { LeaveUnitDetail = leaveApplication.LeaveAppDays + " " + "Day" + (leaveApplication.LeaveAppDays > 1 ? "s" : string.Empty); } else if (leaveApplication.LeaveAppUnit.Equals("H")) { if (leaveApplication.LeaveAppTimeFrom.Ticks.Equals(0) || leaveApplication.LeaveAppTimeTo.Ticks.Equals(0)) { LeaveUnitDetail = leaveApplication.LeaveAppHours + " " + "Hour" + (leaveApplication.LeaveAppHours > 1 ? "s" : string.Empty); } else { LeaveUnitDetail = leaveApplication.LeaveAppTimeFrom.ToString("HH:mm") + "-" + leaveApplication.LeaveAppTimeTo.ToString("HH:mm"); } } else if (leaveApplication.LeaveAppUnit.Equals("A")) { if (leaveApplication.LeaveAppDays > 0) { LeaveUnitDetail = "A.M."; } else { LeaveUnitDetail = "-A.M."; } } else if (leaveApplication.LeaveAppUnit.Equals("P")) { if (leaveApplication.LeaveAppDays > 0) { LeaveUnitDetail = "P.M."; } else { LeaveUnitDetail = "-P.M."; } } eventDetail.Subject = (hasRecord ? leaveCode.LeaveCode : "(unspecified)") + (string.IsNullOrEmpty(LeaveUnitDetail) ? string.Empty : ("(" + LeaveUnitDetail + ")")) + " - " + empInfo.EmpEngDisplayName; eventDetail.ToolTip = eventDetail.Subject; //eventDetail.Label = rosterCode.RosterClientSiteID; eventDetail.RecurrenceInfo = string.Empty; //eventDetail.OwnerId = rosterCode.RosterClientSiteID; tmpEventList.Add(eventDetail); } } else if (dbObject is EPublicHoliday) { EPublicHoliday holiday = (EPublicHoliday)dbObject; RosterTableEvent eventDetail = new RosterTableEvent(); eventDetail.Id = RosterTableEvent.PUBLICHOLIDAY_PREFIX + "_" + holiday.PublicHolidayID; eventDetail.StartTime = holiday.PublicHolidayDate; eventDetail.EndTime = holiday.PublicHolidayDate.AddDays(1); eventDetail.Subject = holiday.PublicHolidayDesc; eventDetail.ToolTip = eventDetail.Subject; //eventDetail.Label = rosterCode.RosterClientSiteID; eventDetail.RecurrenceInfo = string.Empty; //eventDetail.OwnerId = rosterCode.RosterClientSiteID; tmpEventList.Add(eventDetail); } else if (dbObject is EStatutoryHoliday) { EStatutoryHoliday holiday = (EStatutoryHoliday)dbObject; RosterTableEvent eventDetail = new RosterTableEvent(); eventDetail.Id = RosterTableEvent.STATUTORYHOLIDAY_PREFIX + "_" + holiday.StatutoryHolidayID; eventDetail.StartTime = holiday.StatutoryHolidayDate; eventDetail.EndTime = holiday.StatutoryHolidayDate.AddDays(1); eventDetail.Subject = holiday.StatutoryHolidayDesc; eventDetail.ToolTip = eventDetail.Subject; //eventDetail.Label = rosterCode.RosterClientSiteID; eventDetail.RecurrenceInfo = string.Empty; //eventDetail.OwnerId = rosterCode.RosterClientSiteID; tmpEventList.Add(eventDetail); } } } return(tmpEventList); }
public DataTable UploadToTempDatabase(DataTable rawDataTable, int UserID) { if (rawDataTable == null) { return(GetImportDataFromTempDatabase(null)); } int rowCount = 1; foreach (DataRow row in rawDataTable.Rows) { rowCount++; EUploadLeaveApplication uploadLeaveApp = new EUploadLeaveApplication(); //ELeaveApplication lastLeaveApp = null; string EmpNo = row[FIELD_EMP_NO].ToString().Trim(); uploadLeaveApp.EmpID = Parse.GetEmpID(dbConn, EmpNo, UserID); if (uploadLeaveApp.EmpID < 0) { errors.addError(ImportErrorMessage.ERROR_ACCESS_DENIED_EMP_NO, new string[] { EmpNo, rowCount.ToString() }); } uploadLeaveApp.UploadEmpID = ParseTemp.GetUploadEmpID(dbConn, EmpNo, m_SessionID); if (uploadLeaveApp.UploadEmpID == 0) { if (uploadLeaveApp.EmpID == 0) { errors.addError(ImportErrorMessage.ERROR_INVALID_EMP_NO, new string[] { EmpNo, rowCount.ToString() }); } else { uploadLeaveApp.UploadEmpID = ImportEmpPersonalInfoProcess.CreateDummyUploadEmployeeInfo(dbConn, uploadLeaveApp.EmpID, m_SessionID, UploadDateTime); } } try { uploadLeaveApp.LeaveAppDateFrom = Parse.toDateTimeObject(row[FIELD_FROM]); } catch { uploadLeaveApp.LeaveAppDateFrom = new DateTime(); //errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_FROM + "=" + row[FIELD_FROM].ToString(), EmpNo, rowCount.ToString() }); } if (uploadLeaveApp.LeaveAppDateFrom.Ticks.Equals(0)) { errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_FROM + "=" + row[FIELD_FROM].ToString(), EmpNo, rowCount.ToString() }); } try { uploadLeaveApp.LeaveAppDateTo = Parse.toDateTimeObject(row[FIELD_TO]); } catch { uploadLeaveApp.LeaveAppDateTo = new DateTime(); //errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_TO + "=" + row[FIELD_TO].ToString(), EmpNo, rowCount.ToString() }); } if (uploadLeaveApp.LeaveAppDateTo.Ticks.Equals(0)) { errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_TO + "=" + row[FIELD_TO].ToString(), EmpNo, rowCount.ToString() }); } if (uploadLeaveApp.LeaveAppDateFrom > uploadLeaveApp.LeaveAppDateFrom) { errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_TO + "=" + row[FIELD_TO].ToString(), EmpNo, rowCount.ToString() }); } uploadLeaveApp.LeaveCodeID = Parse.GetLeaveCodeID(dbConn, row[FIELD_LEAVE_CODE].ToString(), false, UserID); if (uploadLeaveApp.LeaveCodeID == 0) { errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_LEAVE_CODE + "=" + row[FIELD_LEAVE_CODE].ToString(), EmpNo, rowCount.ToString() }); } double leaveDays; if (double.TryParse(row[FIELD_DAY_TAKEN].ToString(), out leaveDays)) { uploadLeaveApp.LeaveAppDays = leaveDays; } else { errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_DAY_TAKEN + "=" + row[FIELD_DAY_TAKEN].ToString(), EmpNo, rowCount.ToString() }); } if (rawDataTable.Columns.Contains(FIELD_HOURS_CLAIM)) { if (row[FIELD_HOURS_CLAIM] != DBNull.Value) { double hoursClaim; if (double.TryParse(row[FIELD_HOURS_CLAIM].ToString(), out hoursClaim)) { uploadLeaveApp.LeaveAppHours = hoursClaim; } else { if (!string.IsNullOrEmpty(row[FIELD_HOURS_CLAIM].ToString().Trim())) { errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_HOURS_CLAIM + "=" + row[FIELD_HOURS_CLAIM].ToString(), EmpNo, rowCount.ToString() }); } } } else { uploadLeaveApp.LeaveAppHours = 0; } } string tempString; if (rawDataTable.Columns.Contains(FIELD_TYPE)) { tempString = row[FIELD_TYPE].ToString().Replace(" ", ""); if (tempString.Equals("Days", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals("Day", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals("D", StringComparison.CurrentCultureIgnoreCase)) { uploadLeaveApp.LeaveAppUnit = "D"; } else if (tempString.Equals("Hours", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals("Hour", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals("H", StringComparison.CurrentCultureIgnoreCase)) { uploadLeaveApp.LeaveAppUnit = "H"; } else if (tempString.Equals("AM", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals("A", StringComparison.CurrentCultureIgnoreCase)) { uploadLeaveApp.LeaveAppUnit = "A"; } else if (tempString.Equals("PM", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals("P", StringComparison.CurrentCultureIgnoreCase)) { uploadLeaveApp.LeaveAppUnit = "P"; } else if (tempString.Equals(string.Empty)) { uploadLeaveApp.LeaveAppUnit = string.Empty; } else { errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_TYPE + "=" + row[FIELD_TYPE].ToString(), EmpNo, rowCount.ToString() }); } } else if (rawDataTable.Columns.Contains(FIELD_UNIT)) { // Obsolate, replaced by Type tempString = row[FIELD_UNIT].ToString().Replace(" ", ""); if (tempString.Equals("Days", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals("Day", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals("D", StringComparison.CurrentCultureIgnoreCase)) { uploadLeaveApp.LeaveAppUnit = "D"; } else if (tempString.Equals("Hours", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals("Hour", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals("H", StringComparison.CurrentCultureIgnoreCase)) { uploadLeaveApp.LeaveAppUnit = "H"; } else if (tempString.Equals("AM", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals("A", StringComparison.CurrentCultureIgnoreCase)) { uploadLeaveApp.LeaveAppUnit = "A"; } else if (tempString.Equals("PM", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals("P", StringComparison.CurrentCultureIgnoreCase)) { uploadLeaveApp.LeaveAppUnit = "P"; } else if (tempString.Equals(string.Empty)) { uploadLeaveApp.LeaveAppUnit = string.Empty; } else { errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_UNIT + "=" + row[FIELD_UNIT].ToString(), EmpNo, rowCount.ToString() }); } } uploadLeaveApp.LeaveAppRemark = row[FIELD_REMARK].ToString(); tempString = row[FIELD_NOPAYROLLPROCESS].ToString().Replace(" ", ""); if (tempString.Equals("Yes", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals("Y", StringComparison.CurrentCultureIgnoreCase)) { uploadLeaveApp.LeaveAppNoPayProcess = true; } else if (tempString.Equals("No", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals("N", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals(string.Empty)) { uploadLeaveApp.LeaveAppNoPayProcess = false; } else if (tempString.Equals(string.Empty)) { uploadLeaveApp.LeaveAppNoPayProcess = false; } else { errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_NOPAYROLLPROCESS + "=" + row[FIELD_NOPAYROLLPROCESS].ToString(), EmpNo, rowCount.ToString() }); } // Enforce No Payroll Process flag to true if leave code is skip payroll process ELeaveCode leaveCode = new ELeaveCode(); leaveCode.LeaveCodeID = uploadLeaveApp.LeaveCodeID; if (ELeaveCode.db.select(dbConn, leaveCode)) { if (leaveCode.LeaveCodeIsSkipPayrollProcess) { uploadLeaveApp.LeaveAppNoPayProcess = true; } } if (rawDataTable.Columns.Contains(FIELD_MEDICIAL_CERTIFICATE)) { tempString = row[FIELD_MEDICIAL_CERTIFICATE].ToString().Replace(" ", ""); if (tempString.Equals("Yes", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals("Y", StringComparison.CurrentCultureIgnoreCase)) { uploadLeaveApp.LeaveAppHasMedicalCertificate = true; } else if (tempString.Equals("No", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals("N", StringComparison.CurrentCultureIgnoreCase) || tempString.Equals(string.Empty)) { uploadLeaveApp.LeaveAppHasMedicalCertificate = false; } else if (tempString.Equals(string.Empty)) { uploadLeaveApp.LeaveAppHasMedicalCertificate = false; } else { errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_NOPAYROLLPROCESS + "=" + row[FIELD_NOPAYROLLPROCESS].ToString(), EmpNo, rowCount.ToString() }); } } uploadLeaveApp.SessionID = m_SessionID; uploadLeaveApp.TransactionDate = UploadDateTime; if (errors.List.Count <= 0 && uploadLeaveApp.EmpID != 0) { //if (rawDataTable.Columns.Contains(FIELD_INTERNAL_ID)) //{ // try // { // if (!row.IsNull(FIELD_INTERNAL_ID)) // { // int tmpID = FromHexDecWithCheckDigit((string)row[FIELD_INTERNAL_ID]); // ELeaveApplication tmpObj = new ELeaveApplication(); // tmpObj.LeaveAppID = tmpID; // if (ELeaveApplication.db.select(dbConn, tmpObj)) // uploadLeaveApp.LeaveAppID = tmpID; // else // { // errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_INTERNAL_ID + "=" + row[FIELD_INTERNAL_ID].ToString(), EmpNo, rowCount.ToString() }); // continue; // } // } // } // catch (Exception ex) // { // errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_INTERNAL_ID + "=" + row[FIELD_INTERNAL_ID].ToString(), EmpNo, rowCount.ToString() }); // continue; // } //} if (rawDataTable.Columns.Contains(FIELD_SYNC_ID)) { if (!row.IsNull(FIELD_SYNC_ID)) { string strSynID = row[FIELD_SYNC_ID].ToString(); uploadLeaveApp.SynID = strSynID; if (!string.IsNullOrEmpty(strSynID)) { DBFilter synIDFilter = new DBFilter(); synIDFilter.add(new Match("SynID", strSynID)); ArrayList objSameSynIDList = ELeaveApplication.db.select(dbConn, synIDFilter); if (objSameSynIDList.Count > 0) { uploadLeaveApp.LeaveAppID = ((ELeaveApplication)objSameSynIDList[0]).LeaveAppID; } } } } if (uploadLeaveApp.LeaveAppID == 0) { AND lastObjAndTerms = new AND(); lastObjAndTerms.add(new Match("LeaveAppDateTo", ">=", uploadLeaveApp.LeaveAppDateFrom)); lastObjAndTerms.add(new Match("LeaveAppDateFrom", "<=", uploadLeaveApp.LeaveAppDateTo)); if (!uploadLeaveApp.LeaveAppUnit.Equals("D")) { lastObjAndTerms.add(new Match("LeaveAppUnit", "D")); } ELeaveApplication lastObj = (ELeaveApplication)AppUtils.GetLastObj(dbConn, uploadDB, "LeaveAppDateFrom", uploadLeaveApp.EmpID, lastObjAndTerms); if (lastObj != null) { errors.addError(ImportErrorMessage.ERROR_DATE_FROM_OVERLAP, new string[] { uploadLeaveApp.LeaveAppDateFrom.ToString("yyyy-MM-dd"), rowCount.ToString() }); continue; } //lastLeaveApp = (ELeaveApplication)AppUtils.GetLastObj(dbConn, uploadDB, "LeaveAppDateFrom", uploadLeaveApp.EmpID, new Match("LeaveAppDateFrom", "<=", uploadLeaveApp.LeaveAppDateFrom)); //if (lastLeaveApp != null) //{ // //if (uploadLeaveApp.LeaveCodeID == lastLeaveApp.LeaveCodeID // // && uploadLeaveApp.LeaveAppRemark == lastLeaveApp.LeaveAppRemark // // ) // //{ // // continue; // //} // //else // { // //// add postion terms with new ID // //if (lastLeaveApp.LeaveAppDateFrom.Equals(uploadLeaveApp.LeaveAppDateFrom) && lastLeaveApp.LeaveAppUnit.Equals(uploadLeaveApp.LeaveAppUnit) && uploadLeaveApp.LeaveAppUnit.Equals("D")) // //{ // // if (lastLeaveApp.EmpPayrollID > 0) // // { // // errors.addError(ImportErrorMessage.ERROR_LEAVE_DATE_PROCESSED, new string[] { uploadLeaveApp.LeaveAppDateFrom.ToString("yyyy-MM-dd"), rowCount.ToString() }); // // continue; // // } // // uploadLeaveApp.LeaveAppID = lastLeaveApp.LeaveAppID; // //} // //else // { // AND lastObjAndTerms = new AND(); // lastObjAndTerms.add(new Match("LeaveAppDateTo", ">=", uploadLeaveApp.LeaveAppDateFrom)); // lastObjAndTerms.add(new Match("LeaveAppDateFrom", "<=", uploadLeaveApp.LeaveAppDateTo)); // if (!uploadLeaveApp.LeaveAppUnit.Equals("D")) // lastObjAndTerms.add(new Match("LeaveAppUnit", "D")); // ELeaveApplication lastObj = (ELeaveApplication)AppUtils.GetLastObj(dbConn, uploadDB, "LeaveAppDateFrom", uploadLeaveApp.EmpID, lastObjAndTerms); // if (lastObj != null) // { // errors.addError(ImportErrorMessage.ERROR_DATE_FROM_OVERLAP, new string[] { uploadLeaveApp.LeaveAppDateFrom.ToString("yyyy-MM-dd"), rowCount.ToString() }); // continue; // } // } // } //} } } if (uploadLeaveApp.LeaveAppID <= 0) { uploadLeaveApp.ImportActionStatus = ImportDBObject.ImportActionEnum.INSERT; } else { uploadLeaveApp.ImportActionStatus = ImportDBObject.ImportActionEnum.UPDATE; } Hashtable values = new Hashtable(); tempDB.populate(uploadLeaveApp, values); PageErrors pageErrors = new PageErrors(EUploadEmpPersonalInfo.db); tempDB.validate(pageErrors, values); if (pageErrors.errors.Count == 0) { tempDB.insert(dbConn, uploadLeaveApp); } else { pageErrors.addError(rawDataTable.TableName); throw new HRImportException(pageErrors.getPrompt() + "(line " + rowCount.ToString() + ")"); } } if (errors.List.Count > 0) { ClearTempTable(); throw (new HRImportException(rawDataTable.TableName + "\r\n" + errors.Message())); } return(GetImportDataFromTempDatabase(null)); }
protected void Repeater_ItemDataBound(object sender, RepeaterItemEventArgs e) { DataRowView row = (DataRowView)e.Item.DataItem; ELeaveApplication obj = new ELeaveApplication(); ELeaveApplication.db.toObject(row.Row, obj); Button cancelButton = (Button)e.Item.FindControl("Cancel"); DBFilter requestLeaveAppCancelFilter = new DBFilter(); requestLeaveAppCancelFilter.add(new Match("EmpID", CurID)); requestLeaveAppCancelFilter.add(new Match("LeaveAppID", obj.LeaveAppID)); DBFilter empRequestFilter = new DBFilter(); empRequestFilter.add(new Match("EmpID", CurID)); empRequestFilter.add(new Match("EmpRequestType", EEmpRequest.TYPE_EELEAVECANCEL)); empRequestFilter.add(new IN("EmpRequestRecordID", "SELECT RequestLeaveAppCancelID FROM " + ERequestLeaveApplicationCancel.db.dbclass.tableName, requestLeaveAppCancelFilter)); empRequestFilter.add(EEmpRequest.EndStatusDBTerms("EmpRequestStatus", true)); if (obj.LeaveAppCancelID > 0 || EEmpRequest.db.count(dbConn, empRequestFilter) > 0) { cancelButton.Visible = false; } else { ELeaveCode leaveCode = new ELeaveCode(); leaveCode.LeaveCodeID = obj.LeaveCodeID; if (ELeaveCode.db.select(dbConn, leaveCode)) { if (leaveCode.LeaveCodeHideInESS) { cancelButton.Visible = false; } else { // Temporary set to invisible to add more constraint before launch cancelButton.Visible = isAllowLeaveCancel; cancelButton.Attributes["LeaveAppID"] = obj.LeaveAppID.ToString(); } } else { cancelButton.Visible = false; } } // Start 0000094, Ricky So, 2014-09-09 Label RequestQty = (Label)e.Item.FindControl("LeaveAppDays"); string m_unit = ((DataRowView)e.Item.DataItem)["LeaveAppUnit"].ToString(); double m_appHours; double m_appDays; Double.TryParse(((DataRowView)e.Item.DataItem)["LeaveAppHours"].ToString(), out m_appHours); Double.TryParse(((DataRowView)e.Item.DataItem)["LeaveAppDays"].ToString(), out m_appDays); switch (m_unit) { case "H": RequestQty.Text = m_appHours.ToString("0.000"); break; default: RequestQty.Text = m_appDays.ToString("0.000"); break; } // End 0000094, Ricky So, 2014-09-09 HROne.Common.WebUtility.WebControlsLocalization(Session, e.Item.Controls); }
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); } }
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); }
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); binding.toControl(values); // Check if the record is payroll process if (obj.EmpPaymentID != 0 || obj.EmpPayrollID != 0) { toolBar.DeleteButton_Visible = false; //toolBar.SaveButton_Visible = false; // toolBar.SaveButton_ClientClick = HROne.Translation.PromptMessage.LEAVEAPP_FORCE_EDIT_JAVASCRIPT; toolBar.SaveButton_ClientClick = HROne.Translation.PromptMessage.CreateConfirmDialogJavascript(HROne.Common.WebUtility.GetLocalizedStringByCode("LEAVEAPP_FORCE_EDIT_JAVASCRIPT", "The leave application is payroll processed.\r\nYou need to adjust the payroll record manually.\r\nAre you sure to save?"), toolBar.FindControl("SaveButton")); } if (obj.LeaveAppCancelID > 0) { toolBar.DeleteButton_Visible = false; toolBar.SaveButton_Visible = false; } CurEmpID = obj.EmpID; return(true); }
protected void SubmitButton_Click(object sender, EventArgs e) { ERosterTable rosterTable = new ERosterTable(); Binding ebinding = new Binding(dbConn, ERosterTable.db); ebinding.add(RosterTableID); ebinding.add(RosterTableDate); ebinding.add(EmpID); ebinding.add(new DropDownVLBinder(ERosterTable.db, RosterCodeID, ERosterCode.VLRosterCode)); ebinding.add(RosterTableOverrideInTime); ebinding.add(RosterTableOverrideOutTime); Hashtable values = new Hashtable(); ebinding.toValues(values); ERosterTable.db.parse(values, rosterTable); ERosterCode rosterCode = new ERosterCode(); rosterCode.RosterCodeID = rosterTable.RosterCodeID; if (ERosterCode.db.select(dbConn, rosterCode)) { if (rosterCode.RosterCodeInTime.TimeOfDay.Equals(rosterTable.RosterTableOverrideInTime.TimeOfDay)) { rosterTable.RosterTableOverrideInTime = new DateTime(0); } if (rosterCode.RosterCodeOutTime.TimeOfDay.Equals(rosterTable.RosterTableOverrideOutTime.TimeOfDay)) { rosterTable.RosterTableOverrideOutTime = new DateTime(0); } if (rosterCode.RosterCodeType.Equals(ERosterCode.ROSTERTYPE_CODE_LEAVE) && rosterCode.LeaveCodeID > 0) { ELeaveCode leaveCode = new ELeaveCode(); leaveCode.LeaveCodeID = rosterCode.LeaveCodeID; if (ELeaveCode.db.select(dbConn, leaveCode)) { ELeaveApplication leaveApp = new ELeaveApplication(); leaveApp.LeaveAppDateFrom = rosterTable.RosterTableDate; leaveApp.LeaveAppDateTo = rosterTable.RosterTableDate; leaveApp.LeaveAppDays = 1; leaveApp.LeaveAppUnit = "D"; leaveApp.LeaveCodeID = leaveCode.LeaveCodeID; leaveApp.EmpID = rosterTable.EmpID; ELeaveApplication.db.insert(dbConn, leaveApp); rosterTable.LeaveAppID = leaveApp.LeaveAppID; //HROne.LeaveCalc.LeaveBalanceCalc leaaveBalCal = new HROne.LeaveCalc.LeaveBalanceCalc(dbConn, rosterTable.EmpID); //leaaveBalCal.RecalculateAfter(rosterTable.RosterTableDate); } else { rosterTable.LeaveAppID = 0; } } } ERosterTable oldRosterTable = new ERosterTable(); oldRosterTable.RosterTableID = rosterTable.RosterTableID; if (ERosterTable.db.select(dbConn, oldRosterTable)) { if (oldRosterTable.LeaveAppID > 0) { ELeaveApplication leaveApp = new ELeaveApplication(); leaveApp.LeaveAppID = oldRosterTable.LeaveAppID; if (ELeaveApplication.db.select(dbConn, leaveApp)) { if (leaveApp.EmpPayrollID <= 0) { ELeaveApplication.db.delete(dbConn, leaveApp); //HROne.LeaveCalc.LeaveBalanceCalc leaaveBalCal = new HROne.LeaveCalc.LeaveBalanceCalc(dbConn, oldRosterTable.EmpID); //leaaveBalCal.RecalculateAfter(oldRosterTable.RosterTableDate); } } } } ERosterTable.db.update(dbConn, rosterTable); //// Create resource based on the selected user ////Resource user = new Resource("User", int.Parse(UserDropDown.SelectedValue), UserDropDown.SelectedItem.Text); //DateTime start = RadScheduler1.DisplayToUtc(StartTime.SelectedDate.Value); //DateTime end = RadScheduler1.DisplayToUtc(EndTime.SelectedDate.Value); //if (EditedAppointmentID == null) //{ // // Insert // Appointment appointment = new Appointment(null, start, end, DescriptionText.Text); // //appointment.Resources.Add(user); // RadScheduler1.InsertAppointment(appointment); //} //else //{ // Appointment appointment = RadScheduler1.Appointments.FindByID(EditedAppointmentID); // Appointment appointmentToUpdate = RadScheduler1.PrepareToEdit(appointment, RadScheduler1.EditingRecurringSeries); // appointmentToUpdate.Subject = DescriptionText.Text; // appointmentToUpdate.Start = start; // appointmentToUpdate.End = end; // // Remove the existing user resource, if any // Resource existingUser = appointmentToUpdate.Resources.GetResourceByType("User"); // if (existingUser != null) // { // appointmentToUpdate.Resources.Remove(existingUser); // } // //appointmentToUpdate.Resources.Add(user); // RadScheduler1.UpdateAppointment(appointmentToUpdate); //} }
protected void Save_Click(object sender, EventArgs e) { ELeaveApplication c = new ELeaveApplication(); if (!LeaveAppUnit.SelectedValue.Equals("D")) { LeaveAppDateTo.Value = LeaveAppDateFrom.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 (!c.LeaveAppUnit.Equals("D")) { //c.LeaveAppDateTo = c.LeaveAppDateFrom; if (c.LeaveAppTimeTo < c.LeaveAppTimeFrom) { errors.addError(HROne.Translation.PageErrorMessage.ERROR_INVALID_HOUR); } } else { EEmpPersonalInfo empInfo = new EEmpPersonalInfo(); empInfo.EmpID = c.EmpID; if (EEmpPersonalInfo.db.select(dbConn, empInfo)) { if (c.LeaveAppDateTo < c.LeaveAppDateFrom) { errors.addError(HROne.Translation.PageErrorMessage.ERROR_DATE_TO_TOO_EARLY); } else { if (c.LeaveAppDateFrom < empInfo.EmpDateOfJoin) { errors.addError(HROne.Translation.PageErrorMessage.ERROR_DATE_TOO_EARLY); } EEmpTermination empTerm = EEmpTermination.GetObjectByEmpID(dbConn, c.EmpID); if (empTerm != null) { if (c.LeaveAppDateTo > empTerm.EmpTermLastDate) { errors.addError(HROne.Translation.PageErrorMessage.ERROR_DATE_TOO_LATE); } } TimeSpan ts = c.LeaveAppDateTo.Subtract(c.LeaveAppDateFrom); if (c.LeaveAppDays > ts.Days + 1) { errors.addError(HROne.Translation.PageErrorMessage.ERROR_DAYS_TOO_LARGE); } } } } if (c.LeaveAppDateFrom.Month != c.LeaveAppDateTo.Month || c.LeaveAppDateFrom.Year != c.LeaveAppDateTo.Year) { errors.addError(HROne.Translation.PageErrorMessage.ERROR_LEAVE_APP_NOT_SAME_MTH); } if (HoursClaimPanel.Visible) { if (c.LeaveAppHours <= 0) { errors.addError(string.Format(HROne.Translation.PageErrorMessage.ERROR_FIELD_REQUIRED, new string[] { lblLeaveAppHours.Text })); } } //DBFilter overlapCheckingFilter = new DBFilter(); //overlapCheckingFilter.add(new Match("EmpID", c.EmpID)); //overlapCheckingFilter.add(new Match("LeaveAppID", "<>", c.LeaveAppID)); //overlapCheckingFilter.add(new Match("LeaveAppDateFrom", "<=", c.LeaveAppDateTo)); //overlapCheckingFilter.add(new Match("LeaveAppDateTo", ">=", c.LeaveAppDateFrom)); //if (c.LeaveAppUnit.Equals("H")) // overlapCheckingFilter.add(new Match("LeaveAppUnit", "D")); //if (overlapDailyLeaveAppList.Count > 0) //{ // errors.addError(HROne.Translation.PageErrorMessage.ERROR_LEAVE_APP_OVERLAP); // foreach (ELeaveApplication overlapDailyLeaveApp in overlapDailyLeaveAppList) // { // ELeaveCode leaveCode = new ELeaveCode(); // leaveCode.LeaveCodeID = overlapDailyLeaveApp.LeaveCodeID; // if (ELeaveCode.db.select(dbConn, leaveCode)) // { // errors.addError("- " + overlapDailyLeaveApp.LeaveAppDateFrom.ToString("yyyy-MM-dd") + (overlapDailyLeaveApp.LeaveAppDateFrom.Equals(overlapDailyLeaveApp.LeaveAppDateTo) ? "" : " To " + overlapDailyLeaveApp.LeaveAppDateTo.ToString("yyyy-MM-dd")) + " " + leaveCode.LeaveCodeDesc); // } // } //} //if (c.LeaveAppUnit.Equals("H")) //{ // DateTime newLeaveAppTimeFrom = c.LeaveAppDateFrom.Date.Add(new TimeSpan(c.LeaveAppTimeFrom.Hour, c.LeaveAppTimeFrom.Minute, c.LeaveAppTimeFrom.Second)); // DateTime newLeaveAppTimeTo = c.LeaveAppDateTo.Date.Add(new TimeSpan(c.LeaveAppTimeTo.Hour, c.LeaveAppTimeTo.Minute, c.LeaveAppTimeTo.Second)); // while (newLeaveAppTimeFrom > newLeaveAppTimeTo) // newLeaveAppTimeTo.AddDays(1); // overlapCheckingFilter = new DBFilter(); // overlapCheckingFilter.add(new Match("EmpID", c.EmpID)); // overlapCheckingFilter.add(new Match("LeaveAppID", "<>", c.LeaveAppID)); // overlapCheckingFilter.add(new Match("LeaveAppDateFrom", "<=", c.LeaveAppDateTo)); // overlapCheckingFilter.add(new Match("LeaveAppDateTo", ">=", c.LeaveAppDateFrom)); // overlapCheckingFilter.add(new Match("LeaveAppUnit", "H")); // ArrayList leaveAppList = ELeaveApplication.db.select(dbConn, overlapCheckingFilter); // foreach (ELeaveApplication oldLeaveApp in leaveAppList) // { // DateTime oldLeaveAppTimeFrom = oldLeaveApp.LeaveAppDateFrom.Date.Add(new TimeSpan(oldLeaveApp.LeaveAppTimeFrom.Hour, oldLeaveApp.LeaveAppTimeFrom.Minute, oldLeaveApp.LeaveAppTimeFrom.Second)); // DateTime oldLeaveAppTimeTo = oldLeaveApp.LeaveAppDateTo.Date.Add(new TimeSpan(oldLeaveApp.LeaveAppTimeTo.Hour, oldLeaveApp.LeaveAppTimeTo.Minute, oldLeaveApp.LeaveAppTimeTo.Second)); // while (oldLeaveAppTimeFrom > oldLeaveAppTimeTo) // oldLeaveAppTimeTo.AddDays(1); // if (!newLeaveAppTimeFrom.Equals(newLeaveAppTimeTo) && !oldLeaveAppTimeFrom.Equals(oldLeaveAppTimeTo)) // // Only check if the following case exists // // Time A From------- Time B From ---------- Time B To ------------Time A To // if (newLeaveAppTimeFrom <= oldLeaveAppTimeFrom && oldLeaveAppTimeTo <= newLeaveAppTimeTo || oldLeaveAppTimeFrom <= newLeaveAppTimeFrom && newLeaveAppTimeTo <= oldLeaveAppTimeTo) // errors.addError(HROne.Translation.PageErrorMessage.ERROR_LEAVE_APP_TIME_OVERLAP); // } //} ArrayList overlapLeaveAppList = new ArrayList(); if (c.IsOverlapLeaveApplication(dbConn, out overlapLeaveAppList)) { string strDailyOverlapMessage = string.Empty; string strHourlyOverlapMessage = string.Empty; foreach (ELeaveApplication overlapLeaveApp in overlapLeaveAppList) { if (overlapLeaveApp.LeaveAppUnit.Equals("D") || c.LeaveAppUnit.Equals("D")) { if (string.IsNullOrEmpty(strDailyOverlapMessage)) { strDailyOverlapMessage = HROne.Translation.PageErrorMessage.ERROR_LEAVE_APP_OVERLAP; } ELeaveCode errorLeaveCode = new ELeaveCode(); errorLeaveCode.LeaveCodeID = overlapLeaveApp.LeaveCodeID; if (ELeaveCode.db.select(dbConn, errorLeaveCode)) { // Start 0000201, Ricky So, 2015-06-02 //strDailyOverlapMessage += "\n- " + overlapLeaveApp.LeaveAppDateFrom.ToString("yyyy-MM-dd") + // (overlapLeaveApp.LeaveAppDateFrom.Equals(overlapLeaveApp.LeaveAppDateTo) ? "" : " To " + // overlapLeaveApp.LeaveAppDateTo.ToString("yyyy-MM-dd")) + " " + // errorLeaveCode.LeaveCodeDesc; strDailyOverlapMessage += "\n- " + overlapLeaveApp.LeaveAppDateFrom.ToString("yyyy-MM-dd"); if (overlapLeaveApp.LeaveAppUnit == "A") { strDailyOverlapMessage += "AM"; } else if (overlapLeaveApp.LeaveAppUnit == "P") { strDailyOverlapMessage += "PM"; } else if (overlapLeaveApp.LeaveAppUnit == "D" && !string.IsNullOrEmpty(overlapLeaveApp.LeaveAppDateFromAM)) { strDailyOverlapMessage += overlapLeaveApp.LeaveAppDateFromAM; } else if (overlapLeaveApp.LeaveAppDateFrom.Equals(overlapLeaveApp.LeaveAppDateTo)) { strDailyOverlapMessage += " To " + overlapLeaveApp.LeaveAppDateTo.ToString("yyyy-MM-dd"); } if (overlapLeaveApp.LeaveAppUnit == "D" && !string.IsNullOrEmpty(overlapLeaveApp.LeaveAppDateToAM)) { strDailyOverlapMessage += overlapLeaveApp.LeaveAppDateToAM; } else { strDailyOverlapMessage += " " + errorLeaveCode.LeaveCodeDesc; } // End 0000201, Ricky So, 2015-06-02 } } else { if (string.IsNullOrEmpty(strHourlyOverlapMessage)) { strHourlyOverlapMessage = HROne.Translation.PageErrorMessage.ERROR_LEAVE_APP_TIME_OVERLAP; } } } if (!string.IsNullOrEmpty(strDailyOverlapMessage)) { errors.addError(strDailyOverlapMessage); } if (!string.IsNullOrEmpty(strHourlyOverlapMessage)) { errors.addError(strHourlyOverlapMessage); } } ELeaveCode leaveCode = new ELeaveCode(); leaveCode.LeaveCodeID = c.LeaveCodeID; if (ELeaveCode.db.select(dbConn, leaveCode)) { if (leaveCode.LeaveCodeIsSkipPayrollProcess) { c.LeaveAppNoPayProcess = true; } } if (!errors.isEmpty()) { return; } 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.LeaveAppID; //leaaveBalCal.RecalculateAfter(c.LeaveAppDateFrom, leaveCode.LeaveTypeID); // url = Utils.BuildURL(-1, CurID); } else { // Utils.Mark(Session, c); //ELeaveApplication leaveBalApp = new ELeaveApplication(); //leaveBalApp.LeaveAppID = CurID; //db.select(dbConn, leaveBalApp); db.update(dbConn, c); //leaaveBalCal.RecalculateAfter(leaveBalApp.LeaveAppDateFrom < c.LeaveAppDateFrom ? leaveBalApp.LeaveAppDateFrom : c.LeaveAppDateFrom); } WebUtils.EndFunction(dbConn); HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "Emp_LeaveApplication_View.aspx?EmpID=" + c.EmpID + "&LeaveAppID=" + CurID); }
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); }
// 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"); }