protected bool loadObject() { obj = new ELeaveApplication(); obj.LeaveAppID = CurLeaveAppID; if (!ELeaveApplication.db.select(dbConn, obj)) { return(false); } if (obj.EmpID != UserID) { return(false); } Hashtable values = new Hashtable(); ELeaveApplication.db.populate(obj, values); leaveApplicationBinding.toControl(values); //EEmpPersonalInfo EmpInfo = new EEmpPersonalInfo(); //EmpInfo.EmpID = obj.EmpID; //if (EEmpPersonalInfo.db.select(dbConn, EmpInfo)) // EmpName.Text = EmpInfo.EmpNo + " - " + EmpInfo.EmpEngFullNameWithAlias; if (obj.LeaveAppUnit.Equals("D")) { TimeRow.Visible = false; LeaveAppDateToPlaceHolder.Visible = true; } else { TimeRow.Visible = true; LeaveAppDateToPlaceHolder.Visible = false; } string leaveAuthorizedMessage = CONFIRM_MESSAGE; ELeaveCode leaveCode = new ELeaveCode(); leaveCode.LeaveCodeID = obj.LeaveCodeID; if (ELeaveCode.db.select(dbConn, leaveCode)) { LeaveCodeIsShowMedicalCertOptionPanel.Visible = leaveCode.LeaveCodeIsShowMedicalCertOption; if (leaveCode.LeaveTypeID.Equals(ELeaveType.COMPENSATION_LEAVE_TYPE(dbConn).LeaveTypeID)) { HoursClaimPanel.Visible = true; } else { HoursClaimPanel.Visible = false; } } else { HoursClaimPanel.Visible = false; } return(true); }
protected ELeaveType GetLeaveTypeFromLeaveCode(int LeaveCodeID) { ELeaveCode m_leaveCode = ELeaveCode.GetObject(dbConn, LeaveCodeID); ELeaveType m_leaveType = ELeaveType.GetObject(dbConn, m_leaveCode.LeaveTypeID); return(m_leaveType); }
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) { PageErrors errors = PageErrors.getErrors(db, Page.Master); errors.clear(); ELeaveCode obj = new ELeaveCode(); obj.LeaveCodeID = CurID; db.select(dbConn, obj); DBFilter leaveApplicationFilter = new DBFilter(); leaveApplicationFilter.add(new Match("LeaveCodeID", obj.LeaveCodeID)); leaveApplicationFilter.add("empid", true); ArrayList leaveApplicationList = ELeaveApplication.db.select(dbConn, leaveApplicationFilter); if (leaveApplicationList.Count > 0) { int curEmpID = 0; errors.addError(string.Format(HROne.Translation.PageErrorMessage.ERROR_CODE_USED_BY_EMPLOYEE, new string[] { HROne.Common.WebUtility.GetLocalizedString("Leave Code"), obj.LeaveCode })); foreach (ELeaveApplication leaveApplication in leaveApplicationList) { EEmpPersonalInfo empInfo = new EEmpPersonalInfo(); empInfo.EmpID = leaveApplication.EmpID; if (EEmpPersonalInfo.db.select(dbConn, empInfo)) { if (curEmpID != leaveApplication.EmpID) { errors.addError("- " + empInfo.EmpNo + ", " + empInfo.EmpEngFullName); curEmpID = leaveApplication.EmpID; } } else { ELeaveApplication.db.delete(dbConn, leaveApplication); } } errors.addError(HROne.Translation.PageErrorMessage.ERROR_ACTION_ABORT); return; } else { WebUtils.StartFunction(Session, FUNCTION_CODE); db.delete(dbConn, obj); WebUtils.EndFunction(dbConn); } HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "LeaveCode_List.aspx"); }
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); }
protected bool loadObject() { obj = new ELeaveCode(); bool isNew = WebFormWorkers.loadKeys(db, obj, DecryptedRequest); if (!db.select(dbConn, obj)) { return(false); } Hashtable values = new Hashtable(); db.populate(obj, values); binding.toControl(values); return(true); }
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 void RequestLeaveCodeID_SelectedIndexChanged(object sender, EventArgs e) { if (!string.IsNullOrEmpty(RequestLeaveCodeID.SelectedValue)) { int tmpLeaveCodeID = 0; if (int.TryParse(RequestLeaveCodeID.SelectedValue, out tmpLeaveCodeID)) { //RequestLeaveAppUnit.Items.Clear(); ELeaveCode leaveCode = new ELeaveCode(); leaveCode.LeaveCodeID = tmpLeaveCodeID; if (ELeaveCode.db.select(dbConn, leaveCode)) { LeaveCodeIsShowMedicalCertOptionPanel.Visible = leaveCode.LeaveCodeIsShowMedicalCertOption; // Start 0000151, Ricky So, 2015-01-06 RequestLeaveAppHasMedicalCertificate.Checked = leaveCode.LeaveCodeIsShowMedicalCertOption; // RequestLeaveAppHasMedicalCertificate.Checked = true; // End 0000151, Ricky So, 2015-01-06 } } } }
protected void LeaveCodeOverrideRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { DataRowView row = (DataRowView)e.Item.DataItem; Label LeaveCodeID = (Label)e.Item.FindControl("LeaveCodeID"); Label PayrollGroupLeaveCodeSetupLeaveDeductFormula = (Label)e.Item.FindControl("PayrollGroupLeaveCodeSetupLeaveDeductFormula"); Label PayrollGroupLeaveCodeSetupLeaveDeductPaymentCodeID = (Label)e.Item.FindControl("PayrollGroupLeaveCodeSetupLeaveDeductPaymentCodeID"); Label PayrollGroupLeaveCodeSetupLeaveAllowFormula = (Label)e.Item.FindControl("PayrollGroupLeaveCodeSetupLeaveAllowFormula"); Label PayrollGroupLeaveCodeSetupLeaveAllowPaymentCodeID = (Label)e.Item.FindControl("PayrollGroupLeaveCodeSetupLeaveAllowPaymentCodeID"); WebFormUtils.LoadKeys(ELeaveCode.db, row, LeaveCodeID); Binding ebinding = new Binding(dbConn, EPayrollGroupLeaveCodeSetupOverride.db); ebinding.add(new LabelVLBinder(EPayrollGroupLeaveCodeSetupOverride.db, LeaveCodeID, ELeaveCode.VLLeaveCode)); ebinding.add(new BlankZeroLabelVLBinder(EPayrollGroupLeaveCodeSetupOverride.db, PayrollGroupLeaveCodeSetupLeaveDeductFormula, EPayrollProrataFormula.VLPayrollProrataFormula)); ebinding.add(new BlankZeroLabelVLBinder(EPayrollGroupLeaveCodeSetupOverride.db, PayrollGroupLeaveCodeSetupLeaveDeductPaymentCodeID, EPaymentCode.VLPaymentCode)); ebinding.add(new BlankZeroLabelVLBinder(EPayrollGroupLeaveCodeSetupOverride.db, PayrollGroupLeaveCodeSetupLeaveAllowFormula, EPayrollProrataFormula.VLPayrollProrataFormula)); ebinding.add(new BlankZeroLabelVLBinder(EPayrollGroupLeaveCodeSetupOverride.db, PayrollGroupLeaveCodeSetupLeaveAllowPaymentCodeID, EPaymentCode.VLPaymentCode)); ebinding.init(Request, Session); ELeaveCode leaveCode = new ELeaveCode(); ELeaveCode.db.toObject(row.Row, leaveCode); //LeaveCodeID.Text = string.Format("{0}-{1}", new string[] { leaveCode.LeaveCode, leaveCode.LeaveCodeDesc }); DBFilter payrollGroupLeaveCodeSetupOverrideFilter = new DBFilter(); payrollGroupLeaveCodeSetupOverrideFilter.add(new Match("PayGroupID", CurID)); payrollGroupLeaveCodeSetupOverrideFilter.add(new Match("LeaveCodeID", leaveCode.LeaveCodeID)); ArrayList overrideList = EPayrollGroupLeaveCodeSetupOverride.db.select(dbConn, payrollGroupLeaveCodeSetupOverrideFilter); if (overrideList.Count > 0) { EPayrollGroupLeaveCodeSetupOverride setupOverride = (EPayrollGroupLeaveCodeSetupOverride)overrideList[0]; Hashtable hashTable = new Hashtable(); EPayrollGroupLeaveCodeSetupOverride.db.populate(setupOverride, hashTable); ebinding.toControl(hashTable); } } }
protected void Save_Click(object sender, EventArgs e) { PageErrors errors = PageErrors.getErrors(db, Page.Master); errors.clear(); if (LeaveCodeIsSkipPayrollProcess.Checked) { DBFilter defaultPayrollProrataFormulaFilter = new DBFilter(); defaultPayrollProrataFormulaFilter.add(new Match("PayFormCode", EPayrollProrataFormula.DEFAULT_FOEMULA_CODE)); ArrayList defaultPayrollFormulaList = EPayrollProrataFormula.db.select(dbConn, defaultPayrollProrataFormulaFilter); if (defaultPayrollFormulaList.Count > 0) { int defaultPayrollFormulaID = ((EPayrollProrataFormula)defaultPayrollFormulaList[0]).PayFormID; LeaveCodeLeaveAllowFormula.SelectedValue = defaultPayrollFormulaID.ToString(); LeaveCodeLeaveDeductFormula.SelectedValue = defaultPayrollFormulaID.ToString(); LeaveCodePayRatio.Text = "1"; LeaveCodePayAdvance.Checked = false; } } Hashtable values = new Hashtable(); binding.toValues(values); db.validate(errors, values); if (!errors.isEmpty()) { return; } ELeaveCode c = new ELeaveCode(); db.parse(values, c); if (!c.LeaveCodeIsSkipPayrollProcess) { if (c.LeaveCodeLeaveAllowPaymentCodeID.Equals(0)) { errors.addError(lblLeaveAllowPaymentCode.Text, HROne.Common.WebUtility.GetLocalizedString("validate.required.prompt")); } if (c.LeaveCodeLeaveDeductPaymentCodeID.Equals(0)) { errors.addError(lblLeaveDeductPaymentCode.Text, HROne.Common.WebUtility.GetLocalizedString("validate.required.prompt")); } if (c.LeaveCodePayRatio.Equals(1)) { EPaymentCode allowancePaymentCode = new EPaymentCode(); allowancePaymentCode.PaymentCodeID = c.LeaveCodeLeaveAllowPaymentCodeID; if (EPaymentCode.db.select(dbConn, allowancePaymentCode)) { if (!allowancePaymentCode.PaymentCodeIsWages) { errors.addError(HROne.Translation.PageErrorMessage.ERROR_LEAVE_ALLOWANCE_SHOULD_BE_WAGES); } } else { if (!c.LeaveCodeLeaveAllowPaymentCodeID.Equals(c.LeaveCodeLeaveDeductPaymentCodeID)) { errors.addError(HROne.Translation.PageErrorMessage.ERROR_LEAVE_ALLOWANCE_SHOULD_BE_WAGES); } } } else if (!c.LeaveCodePayRatio.Equals(0)) { EPaymentCode allowancePaymentCode = new EPaymentCode(); allowancePaymentCode.PaymentCodeID = c.LeaveCodeLeaveAllowPaymentCodeID; if (EPaymentCode.db.select(dbConn, allowancePaymentCode)) { if (allowancePaymentCode.PaymentCodeIsWages) { errors.addError(HROne.Translation.PageErrorMessage.ERROR_LEAVE_ALLOWANCE_SHOULD_NOT_BE_WAGES); } } else { //if (!c.LeaveCodeLeaveAllowPaymentCodeID.Equals(c.LeaveCodeLeaveDeductPaymentCodeID)) errors.addError(HROne.Translation.PageErrorMessage.ERROR_LEAVE_ALLOWANCE_SHOULD_NOT_BE_WAGES); } } } if (!errors.isEmpty()) { return; } WebUtils.StartFunction(Session, FUNCTION_CODE); if (CurID < 0) { // Utils.MarkCreate(Session, c); db.insert(dbConn, c); CurID = c.LeaveCodeID; // url = Utils.BuildURL(-1, CurID); } else { // Utils.Mark(Session, c); db.update(dbConn, c); } WebUtils.EndFunction(dbConn); HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "LeaveCode_View.aspx?LeaveCodeID=" + CurID); }
public override ReportDocument GenerateReport() { string HierarchyLevel1 = string.Empty; string HierarchyLevel2 = string.Empty; string HierarchyLevel3 = string.Empty; ArrayList HierarchyLevelList = EHierarchyLevel.db.select(dbConn, new DBFilter()); foreach (EHierarchyLevel hLevel in HierarchyLevelList) { if (hLevel.HLevelSeqNo.Equals(1)) { HierarchyLevel1 = hLevel.HLevelDesc; } else if (hLevel.HLevelSeqNo.Equals(2)) { HierarchyLevel2 = hLevel.HLevelDesc; } else if (hLevel.HLevelSeqNo.Equals(3)) { HierarchyLevel3 = hLevel.HLevelDesc; } } if (EmpList.Count > 0) { DataSet.EmployeeDetail ds = new DataSet.EmployeeDetail(); foreach (int EmpID in EmpList) { EmployeeDetailProcess.ImportEmployeeDetailRow(dbConn, ds.employeedetail, EmpID, AppUtils.ServerDateTime().Date); DBFilter filter = new DBFilter(); //filter.add(new Match("LeaveAppDateFrom", ">=", startDate)); //filter.add(new Match("LeaveAppDateFrom", "<=", AsOfDate)); filter.add(new Match("EmpID", EmpID)); if (!DateFrom.Ticks.Equals(0)) { filter.add(new Match("LeaveAppDateFrom", "<=", DateTo)); } if (!DateTo.Ticks.Equals(0)) { filter.add(new Match("LeaveAppDateTo", ">=", DateFrom)); } ArrayList leaveApplicationList = ELeaveApplication.db.select(dbConn, filter); DataSet.EmployeeDetail.LeaveApplicationDataTable leaveApplicationTable = ds.LeaveApplication; foreach (ELeaveApplication leaveApplication in leaveApplicationList) { DataSet.EmployeeDetail.LeaveApplicationRow row = leaveApplicationTable.NewLeaveApplicationRow(); row.EmpID = leaveApplication.EmpID; row.EmpPaymentID = leaveApplication.EmpPaymentID; row.LeaveAppDateFrom = leaveApplication.LeaveAppDateFrom; row.LeaveAppDateTo = leaveApplication.LeaveAppDateTo; if (leaveApplication.LeaveAppUnit == "H") { row.LeaveAppDays = leaveApplication.LeaveAppHours; } else { row.LeaveAppDays = leaveApplication.LeaveAppDays; } row.LeaveAppID = leaveApplication.LeaveAppID; row.LeaveAppRemark = leaveApplication.LeaveAppRemark; if (!leaveApplication.LeaveAppTimeFrom.Ticks.Equals(0)) { row.LeaveAppTimeFrom = leaveApplication.LeaveAppTimeFrom; } if (!leaveApplication.LeaveAppTimeTo.Ticks.Equals(0)) { row.LeaveAppTimeTo = leaveApplication.LeaveAppTimeTo; } row.LeaveAppUnit = leaveApplication.LeaveAppUnit; row.LeaveCodeID = leaveApplication.LeaveCodeID; row.LeaveAppHasMedicalCertificate = leaveApplication.LeaveAppHasMedicalCertificate; row.LeaveAppNoPayProcess = leaveApplication.LeaveAppNoPayProcess; ELeaveCode leaveCode = new ELeaveCode(); leaveCode.LeaveCodeID = leaveApplication.LeaveCodeID; if (ELeaveCode.db.select(dbConn, leaveCode)) { ELeaveType leaveType = new ELeaveType(); leaveType.LeaveTypeID = leaveCode.LeaveTypeID; if (ELeaveType.db.select(dbConn, leaveType)) { row.LeaveType = leaveType.LeaveType; row.LeaveTypeDesc = leaveType.LeaveTypeDesc; } } leaveApplicationTable.AddLeaveApplicationRow(row); } } if (reportDocument == null) { reportDocument = new ReportTemplate.Report_Employee_LeaveApplicationList(); } else { } reportDocument.SetDataSource(ds); for (int i = 0; i < reportDocument.ParameterFields.Count; i++) { if (reportDocument.ParameterFields[i].Name == "HierarchyLevel1") { reportDocument.SetParameterValue("HierarchyLevel1", HierarchyLevel1); } if (reportDocument.ParameterFields[i].Name == "HierarchyLevel2") { reportDocument.SetParameterValue("HierarchyLevel2", HierarchyLevel2); } } return(reportDocument); } else { return(null); } }
public override ReportDocument GenerateReport() { if (values.Count > 0) { DateTime startDate = new DateTime(AsOfDate.Year, 1, 1); //System.Data.DataSet ds = new System.Data.DataSet(); //System.Data.DataTable sum = ds.Tables.Add("LeaveBalance"); //sum.Columns.Add("LeaveBalanceID", typeof(int)); //sum.Columns.Add("EmpID", typeof(int)); //sum.Columns.Add("LeaveBalanceEffectiveDate", typeof(DateTime)); //sum.Columns.Add("LeaveBalanceBF", typeof(double)); //sum.Columns.Add("LeaveBalanceEntitled", typeof(double)); //sum.Columns.Add("LeaveBalanceForfeiture", typeof(double)); //sum.Columns.Add("Taken", typeof(double)); //sum.Columns.Add("Balance", typeof(double)); //sum.Columns.Add("Adjust", typeof(double)); //sum.Columns.Add("Reserved", typeof(double)); //sum.Columns.Add("Name", typeof(string)); //sum.Columns.Add("Description", typeof(string)); //sum.Columns.Add("StringFormat", typeof(string)); DataSet.EmployeeDetail ds = new DataSet.EmployeeDetail(); //string select; //string from; //DBFilter filter; foreach (int EmpID in values) { //from = "from EmpPersonalInfo P LEFT JOIN EmpPositionInfo EmpPos ON P.EmpID=EmpPos.EmpID AND EmpPos.EmpPosEffTo IS NULL LEFT JOIN Position Pos ON EmpPos.PositionID=Pos.PositionID"; //select = "P.*,EmpPos.*,Pos.*"; //filter = new DBFilter(); //filter.add(new Match("P.EmpID", EmpID)); //filter.loadData(ds, "employeedetail", null, select, from, null); EmployeeDetailProcess.ImportEmployeeDetailRow(dbConn, ds.employeedetail, EmpID, AsOfDate); //from = "from LeaveApplication P LEFT JOIN LeaveCode C ON P.LeaveCodeID=C.LeaveCodeID LEFT JOIN LeaveType T ON T.LeaveTypeID=C.LeaveTypeID"; //select = "P.*, T.LeaveType, T.LeaveTypeDesc"; //filter = new DBFilter(); //filter.add(new Match("LeaveAppDateFrom", ">=", startDate)); //filter.add(new Match("LeaveAppDateFrom", "<=", AsOfDate)); //filter.add(new Match("P.EmpID", EmpID)); //filter.loadData(ds, "LeaveApplication", null, select, from, null); //try //{ // LeaveBalanceCalc calc = new LeaveBalanceCalc(EmpID, AsOfDate); // ArrayList balanceItems = calc.getCurrentBalanceList(); // foreach (ELeaveBalance b in balanceItems) // { // System.Data.DataRow rr = sum.NewRow(); // rr["LeaveBalanceID"] = b.LeaveBalanceID; // rr["EmpID"] = EmpID; // rr["LeaveBalanceEffectiveDate"] = b.LeaveBalanceEffectiveDate; // rr["LeaveBalanceBF"] = b.LeaveBalanceBF; // rr["LeaveBalanceEntitled"] = b.LeaveBalanceEntitled; // rr["LeaveBalanceForfeiture"] = b.LeaveBalanceForfeiture; // rr["Taken"] = b.Taken; // rr["Balance"] = b.Balance; // rr["Adjust"] = b.Adjust; // rr["Reserved"] = b.Reserved; // rr["Name"] = b.Name; // rr["Description"] = b.Description; // rr["StringFormat"] = b.StringFormat; // sum.Rows.Add(rr); // } //} //catch (Exception ex) //{ //} DBFilter filter = new DBFilter(); filter.add(new Match("LeaveAppDateFrom", ">=", startDate)); filter.add(new Match("LeaveAppDateFrom", "<=", AsOfDate)); filter.add(new Match("EmpID", EmpID)); ArrayList leaveApplicationList = ELeaveApplication.db.select(dbConn, filter); DataSet.EmployeeDetail.LeaveApplicationDataTable leaveApplicationTable = ds.LeaveApplication; foreach (ELeaveApplication leaveApplication in leaveApplicationList) { DataSet.EmployeeDetail.LeaveApplicationRow row = leaveApplicationTable.NewLeaveApplicationRow(); row.EmpID = leaveApplication.EmpID; row.EmpPaymentID = leaveApplication.EmpPaymentID; row.LeaveAppDateFrom = leaveApplication.LeaveAppDateFrom; row.LeaveAppDateTo = leaveApplication.LeaveAppDateTo; row.LeaveAppDays = leaveApplication.LeaveAppDays; row.LeaveAppID = leaveApplication.LeaveAppID; row.LeaveAppRemark = leaveApplication.LeaveAppRemark; if (!leaveApplication.LeaveAppTimeFrom.Ticks.Equals(0)) { row.LeaveAppTimeFrom = leaveApplication.LeaveAppTimeFrom; } if (!leaveApplication.LeaveAppTimeTo.Ticks.Equals(0)) { row.LeaveAppTimeTo = leaveApplication.LeaveAppTimeTo; } row.LeaveAppUnit = leaveApplication.LeaveAppUnit; row.LeaveCodeID = leaveApplication.LeaveCodeID; ELeaveCode leaveCode = new ELeaveCode(); leaveCode.LeaveCodeID = leaveApplication.LeaveCodeID; if (ELeaveCode.db.select(dbConn, leaveCode)) { ELeaveType leaveType = new ELeaveType(); leaveType.LeaveTypeID = leaveCode.LeaveTypeID; if (ELeaveType.db.select(dbConn, leaveType)) { row.LeaveType = leaveType.LeaveType; row.LeaveTypeDesc = leaveType.LeaveTypeDesc; } } leaveApplicationTable.AddLeaveApplicationRow(row); } //try //{ LeaveBalanceCalc calc = new LeaveBalanceCalc(dbConn, EmpID, AsOfDate); ArrayList balanceItems = calc.getCurrentBalanceList(); foreach (ELeaveBalance b in balanceItems) { DataSet.EmployeeDetail.LeaveBalanceRow rr = ds.LeaveBalance.NewLeaveBalanceRow(); rr["LeaveBalanceID"] = b.LeaveBalanceID; rr["EmpID"] = EmpID; rr["LeaveBalanceEffectiveDate"] = b.LeaveBalanceEffectiveDate; rr["LeaveBalanceBF"] = b.LeaveBalanceBF; rr["LeaveBalanceEntitled"] = b.LeaveBalanceEntitled; rr["LeaveBalanceForfeiture"] = b.LeaveBalanceForfeiture + b.ExpiryForfeit; rr["Taken"] = b.Taken; rr["Balance"] = b.getBalance(); rr["Adjust"] = b.Adjust; rr["Reserved"] = b.Reserved; rr["Name"] = b.Name; rr["Description"] = b.Description; rr["ExpiryForfeit"] = b.ExpiryForfeit; if (!b.NextExpiryDate.Ticks.Equals(0)) { rr["NextExpiryDate"] = b.NextExpiryDate; } rr["NextExpiryForfeit"] = b.NextExpiryForfeit; rr["StringFormat"] = b.StringFormat; ds.LeaveBalance.Rows.Add(rr); } //} //catch (Exception) //{ // // fail to create leave balance record by some reason // // no handling so far //} } if (reportDocument == null) { reportDocument = new ReportTemplate.Report_Employee_LeaveSummary(); } else { } reportDocument.SetDataSource(ds); reportDocument.SetParameterValue("AsOfDate", AsOfDate); return(reportDocument); } else { return(null); } }
public static DataTable Export(DatabaseConnection dbConn, ArrayList empList, bool IsIncludeCurrentPositionInfo, bool IsShowDescription, bool IsIncludeSyncID, DateTime ReferenceDateTime) { DataTable tmpDataTable = new DataTable(TABLE_NAME); //if (IsIncludeInternalID) // tmpDataTable.Columns.Add(FIELD_INTERNAL_ID, typeof(string)); tmpDataTable.Columns.Add(FIELD_EMP_NO, typeof(string)); if (IsIncludeCurrentPositionInfo) { ImportEmpPersonalInfoProcess.AddEmployeeInfoHeader(tmpDataTable); ImportEmpPositionInfoProcess.AddEmployeePositionInfoHeader(dbConn, tmpDataTable); } tmpDataTable.Columns.Add(FIELD_FROM, typeof(DateTime)); tmpDataTable.Columns.Add(FIELD_TO, typeof(DateTime)); tmpDataTable.Columns.Add(FIELD_LEAVE_CODE, typeof(string)); tmpDataTable.Columns.Add(FIELD_DAY_TAKEN, typeof(double)); tmpDataTable.Columns.Add(FIELD_HOURS_CLAIM, typeof(double)); tmpDataTable.Columns.Add(FIELD_TYPE, typeof(string)); tmpDataTable.Columns.Add(FIELD_REMARK, typeof(string)); tmpDataTable.Columns.Add(FIELD_NOPAYROLLPROCESS, typeof(string)); tmpDataTable.Columns.Add(FIELD_MEDICIAL_CERTIFICATE, typeof(string)); if (IsIncludeSyncID) { tmpDataTable.Columns.Add(FIELD_SYNC_ID, typeof(string)); } foreach (EEmpPersonalInfo empInfo in empList) { if (EEmpPersonalInfo.db.select(dbConn, empInfo)) { DBFilter filter = new DBFilter(); filter.add(new Match("EmpID", empInfo.EmpID)); filter.add(getCreateModifiedRecordsAfterDBTerm(ReferenceDateTime)); ArrayList list = ELeaveApplication.db.select(dbConn, filter); foreach (ELeaveApplication empLeaveApplication in list) { DataRow row = tmpDataTable.NewRow(); //if (IsIncludeInternalID) // row[FIELD_INTERNAL_ID] = ToHexDecWithCheckDigit(empLeaveApplication.LeaveAppID); row[FIELD_EMP_NO] = empInfo.EmpNo; if (IsIncludeCurrentPositionInfo) { ImportEmpPersonalInfoProcess.AddEmployeeInfo(dbConn, row, empInfo.EmpID); ImportEmpPositionInfoProcess.AddEmployeePositionInfo(dbConn, row, empInfo.EmpID); } row[FIELD_FROM] = empLeaveApplication.LeaveAppDateFrom; row[FIELD_TO] = empLeaveApplication.LeaveAppDateTo; ELeaveCode leaveCode = new ELeaveCode(); leaveCode.LeaveCodeID = empLeaveApplication.LeaveCodeID; if (ELeaveCode.db.select(dbConn, leaveCode)) { row[FIELD_LEAVE_CODE] = IsShowDescription ? leaveCode.LeaveCodeDesc : leaveCode.LeaveCode; } row[FIELD_DAY_TAKEN] = empLeaveApplication.LeaveAppDays; row[FIELD_HOURS_CLAIM] = empLeaveApplication.LeaveAppHours; if (empLeaveApplication.LeaveAppUnit.Equals("H")) { row[FIELD_TYPE] = "Hour"; } else if (empLeaveApplication.LeaveAppUnit.Equals("D")) { row[FIELD_TYPE] = "Day"; } else if (empLeaveApplication.LeaveAppUnit.Equals("A")) { row[FIELD_TYPE] = "AM"; } else if (empLeaveApplication.LeaveAppUnit.Equals("P")) { row[FIELD_TYPE] = "PM"; } row[FIELD_MEDICIAL_CERTIFICATE] = empLeaveApplication.LeaveAppHasMedicalCertificate ? "Yes" : "No"; row[FIELD_REMARK] = empLeaveApplication.LeaveAppRemark; row[FIELD_NOPAYROLLPROCESS] = empLeaveApplication.LeaveAppNoPayProcess?"Yes":"No"; if (IsIncludeSyncID) { row[FIELD_SYNC_ID] = empLeaveApplication.SynID; } tmpDataTable.Rows.Add(row); } } } if (IsIncludeCurrentPositionInfo) { ImportEmpPositionInfoProcess.RetriveHierarchyLevelHeader(dbConn, tmpDataTable); } return(tmpDataTable); }
protected bool loadObject() { DBFilter filterStatus = new DBFilter(); filterStatus.add(new Match("EmpRequestRecordID", CurRequestID)); filterStatus.add(new Match("EmpRequestType", EEmpRequest.TYPE_EELEAVEAPP)); ArrayList empRequestList = EEmpRequest.db.select(dbConn, filterStatus); if (empRequestList.Count > 0) { EEmpRequest empRequest = (EEmpRequest)empRequestList[0]; if (empRequest.EmpID == UserID) { string submitStatus = empRequest.EmpRequestStatus; if ((submitStatus.Equals(EEmpRequest.STATUS_SUBMITTED) || submitStatus.Equals(EEmpRequest.STATUS_ACCEPTED)) && !submitStatus.Equals(EEmpRequest.STATUS_APPROVED)) { btnCancel.Visible = true; // Start 0000063, KuangWei, 2014-08-25 if (!string.IsNullOrEmpty(empRequest.EmpRequestRejectReason)) { RejectReasonRow.Visible = true; lblReject.Visible = false; lblAuthorize.Visible = true; lblRejectReason.Text = empRequest.EmpRequestRejectReason; } else { RejectReasonRow.Visible = false; } // End 0000063, KuangWei, 2014-08-25 } else { btnCancel.Visible = false; if (!string.IsNullOrEmpty(empRequest.EmpRequestRejectReason)) { RejectReasonRow.Visible = true; // Start 0000063, KuangWei, 2014-08-25 lblReject.Visible = true; lblAuthorize.Visible = false; // End 0000063, KuangWei, 2014-08-25 lblRejectReason.Text = empRequest.EmpRequestRejectReason; } else { RejectReasonRow.Visible = false; } } } else { btnCancel.Visible = false; RejectReasonRow.Visible = false; } obj = new ERequestLeaveApplication(); obj.RequestLeaveAppID = CurRequestID; if (!db.select(dbConn, obj)) { return(false); } Emp_LeaveBalance_List1.EmpID = obj.EmpID; Emp_LeaveBalance_List1.AsOfDate = obj.RequestLeaveAppDateFrom; Hashtable values = new Hashtable(); db.populate(obj, values); binding.toControl(values); //EEmpPersonalInfo EmpInfo = new EEmpPersonalInfo(); //EmpInfo.EmpID = obj.EmpID; //if (EEmpPersonalInfo.db.select(dbConn, EmpInfo)) // EmpName.Text = EmpInfo.EmpNo + " - " + EmpInfo.EmpEngFullNameWithAlias; if (obj.RequestLeaveAppUnit.Equals("D")) { TimeRow.Visible = false; LeaveAppDateToPlaceHolder.Visible = true; } else { TimeRow.Visible = true; LeaveAppDateToPlaceHolder.Visible = false; } string leaveAuthorizedMessage = CONFIRM_MESSAGE; ELeaveCode leaveCode = new ELeaveCode(); leaveCode.LeaveCodeID = obj.RequestLeaveCodeID; if (ELeaveCode.db.select(dbConn, leaveCode)) { LeaveCodeIsShowMedicalCertOptionPanel.Visible = leaveCode.LeaveCodeIsShowMedicalCertOption; if (leaveCode.LeaveTypeID.Equals(ELeaveType.COMPENSATION_LEAVE_TYPE(dbConn).LeaveTypeID)) { HoursClaimPanel.Visible = true; } else { HoursClaimPanel.Visible = false; } if (leaveCode.LeaveTypeID.Equals(ELeaveType.ANNUAL_LEAVE_TYPE(dbConn).LeaveTypeID)) { EEmpPersonalInfo empInfo = new EEmpPersonalInfo(); empInfo.EmpID = obj.EmpID; if (EEmpPersonalInfo.db.select(dbConn, empInfo)) { if (AppUtils.ServerDateTime().Date <= empInfo.EmpProbaLastDate || obj.RequestLeaveAppDateFrom <= empInfo.EmpProbaLastDate) { leaveAuthorizedMessage = AL_AUTHORIZED_BEFORE_PROBATION_MESSAGE; } } } } else { HoursClaimPanel.Visible = false; } Authorize.Attributes.Add("onclick", "return confirm(\"" + HROne.Common.WebUtility.GetLocalizedString(leaveAuthorizedMessage) + "\");"); Reject.Attributes.Add("onclick", "return confirm(\"" + HROne.Common.WebUtility.GetLocalizedString(CONFIRM_MESSAGE) + "\");"); return(true); } else { return(false); } }
public override ReportDocument GenerateReport() { string HierarchyLevel1 = string.Empty; string HierarchyLevel2 = string.Empty; string HierarchyLevel3 = string.Empty; ArrayList HierarchyLevelList = EHierarchyLevel.db.select(dbConn, new DBFilter()); foreach (EHierarchyLevel hLevel in HierarchyLevelList) { if (hLevel.HLevelSeqNo.Equals(1)) { HierarchyLevel1 = hLevel.HLevelDesc; } else if (hLevel.HLevelSeqNo.Equals(2)) { HierarchyLevel2 = hLevel.HLevelDesc; } else if (hLevel.HLevelSeqNo.Equals(3)) { HierarchyLevel3 = hLevel.HLevelDesc; } } if (EmpList.Count > 0) { DataSet.EmployeeDetail ds = new DataSet.EmployeeDetail(); foreach (int EmpID in EmpList) { EmployeeDetailProcess.ImportEmployeeDetailRow(dbConn, ds.employeedetail, EmpID, AppUtils.ServerDateTime().Date); DBFilter 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); } }
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 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 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 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 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 void btnGenerate_Click(object sender, EventArgs e) { const string FIELD_COMPANY = "Company"; const string FIELD_POSITION = "Position"; const string FIELD_PAYROLLGROUP = "Payroll Group"; const string FIELD_EMPNO = "EmployeeID"; const string FIELD_EMPENGFULLNAME = "English Name"; const string FIELD_CHINESENAME = "¤¤¤å©m¦W"; const string FIELD_HKID = @"HKID/Passport"; const string FIELD_PERIODFROM = "From"; const string FIELD_PERIODTO = "To"; const string FIELD_WAGESWORK = "Wages Paid"; const string FIELD_WORKHOURTOTAL = "Total Working Hours"; const string FIELD_RESTDAYTOTAL = "No. of Rest Day"; const string FIELD_STATUTORYHOLIDAYTOTAL = "No. of SH"; const string FIELD_FULLPAIDLEAVETOTAL = "No. of Full Paid Leave"; const string FIELD_NONFULLPAIDLEAVETOTAL = "Non-Full Paid Leave"; ArrayList list = new ArrayList(); foreach (RepeaterItem i in Repeater.Items) { CheckBox cb = (CheckBox)i.FindControl("ItemSelect"); if (cb.Checked) { EEmpPersonalInfo o = (EEmpPersonalInfo)EEmpPersonalInfo.db.createObject(); WebFormUtils.GetKeys(EEmpPersonalInfo.db, o, cb); list.Add(o); } } ArrayList payPeriodList = Payroll_ConfirmedPeriod_List1.GetSelectedBaseObjectList(); if (list.Count > 0 && payPeriodList.Count > 0) { //const string PAYMENTCODE_PREFIX = "[StatutoryMinimumWageSummary] "; string exportFileName = System.IO.Path.GetTempFileName(); System.IO.File.Delete(exportFileName); exportFileName += ".xls"; //System.IO.File.Copy(Server.MapPath("~/template/HistoryList_Template.xls"), exportFileName, true); HROne.Export.ExcelExport export = new HROne.Export.ExcelExport(exportFileName); DataSet dataSet = new DataSet(); //export.GetDataSet(); DataTable dataTable = new DataTable("Payroll$"); dataSet.Tables.Add(dataTable); dataTable.Columns.Add(FIELD_COMPANY, typeof(string)); DBFilter hierarchyLevelFilter = new DBFilter(); Hashtable hierarchyLevelHashTable = new Hashtable(); hierarchyLevelFilter.add("HLevelSeqNo", true); ArrayList hierarchyLevelList = EHierarchyLevel.db.select(dbConn, hierarchyLevelFilter); foreach (EHierarchyLevel hlevel in hierarchyLevelList) { dataTable.Columns.Add(hlevel.HLevelDesc, typeof(string)); hierarchyLevelHashTable.Add(hlevel.HLevelID, hlevel); } dataTable.Columns.Add(FIELD_POSITION, typeof(string)); dataTable.Columns.Add(FIELD_PAYROLLGROUP, typeof(string)); dataTable.Columns.Add(FIELD_EMPNO, typeof(string)); dataTable.Columns.Add(FIELD_EMPENGFULLNAME, typeof(string)); dataTable.Columns.Add(FIELD_CHINESENAME, typeof(string)); dataTable.Columns.Add(FIELD_HKID, typeof(string)); dataTable.Columns.Add(FIELD_PERIODFROM, typeof(DateTime)); dataTable.Columns.Add(FIELD_PERIODTO, typeof(DateTime)); dataTable.Columns.Add(FIELD_WAGESWORK, typeof(double)); dataTable.Columns.Add(FIELD_WORKHOURTOTAL, typeof(double)); dataTable.Columns.Add(FIELD_RESTDAYTOTAL, typeof(double)); dataTable.Columns.Add(FIELD_STATUTORYHOLIDAYTOTAL, typeof(double)); dataTable.Columns.Add(FIELD_FULLPAIDLEAVETOTAL, typeof(double)); dataTable.Columns.Add(FIELD_NONFULLPAIDLEAVETOTAL, typeof(double)); int firstSummaryColumnPos = dataTable.Columns.Count; int firstDetailColumnPos = dataTable.Columns.Count; foreach (EPayrollPeriod payPeriod in payPeriodList) { if (EPayrollPeriod.db.select(dbConn, payPeriod)) { EPayrollGroup payrollGroup = new EPayrollGroup(); payrollGroup.PayGroupID = payPeriod.PayGroupID; EPayrollGroup.db.select(dbConn, payrollGroup); foreach (EEmpPersonalInfo empInfo in list) { EEmpPersonalInfo.db.select(dbConn, empInfo); EEmpTermination empTerm = EEmpTermination.GetObjectByEmpID(dbConn, empInfo.EmpID); DBFilter empPayrollFilter = new DBFilter(); empPayrollFilter.add(new Match("ep.EmpID", empInfo.EmpID)); empPayrollFilter.add(new Match("ep.PayPeriodID", payPeriod.PayPeriodID)); if (PayrollStatus.SelectedValue.Equals("T")) { empPayrollFilter.add(new Match("ep.EmpPayStatus", "=", "T")); } else { empPayrollFilter.add(new Match("ep.EmpPayStatus", "<>", "T")); } DataRow row = dataTable.NewRow(); row[FIELD_EMPNO] = empInfo.EmpNo; row[FIELD_EMPENGFULLNAME] = empInfo.EmpEngFullName; row[FIELD_CHINESENAME] = empInfo.EmpChiFullName; row[FIELD_HKID] = empInfo.EmpHKID; row[FIELD_PERIODFROM] = payPeriod.PayPeriodFr; row[FIELD_PERIODTO] = payPeriod.PayPeriodTo; DBFilter empPosFilter = new DBFilter(); EEmpPositionInfo empPos = AppUtils.GetLastPositionInfo(dbConn, payPeriod.PayPeriodTo, empInfo.EmpID); if (empPos != null) { ECompany company = new ECompany(); company.CompanyID = empPos.CompanyID; if (ECompany.db.select(dbConn, company)) { row[FIELD_COMPANY] = company.CompanyCode; } EPosition position = new EPosition(); position.PositionID = empPos.PositionID; if (EPosition.db.select(dbConn, position)) { row[FIELD_POSITION] = position.PositionDesc; } DBFilter empHierarchyFilter = new DBFilter(); empHierarchyFilter.add(new Match("EmpPosID", empPos.EmpPosID)); ArrayList empHierarchyList = EEmpHierarchy.db.select(dbConn, empHierarchyFilter); foreach (EEmpHierarchy empHierarchy in empHierarchyList) { EHierarchyLevel hierarchyLevel = (EHierarchyLevel)hierarchyLevelHashTable[empHierarchy.HLevelID]; if (hierarchyLevel != null) { EHierarchyElement hierarchyElement = new EHierarchyElement(); hierarchyElement.HElementID = empHierarchy.HElementID; if (EHierarchyElement.db.select(dbConn, hierarchyElement)) { row[hierarchyLevel.HLevelDesc] = hierarchyElement.HElementDesc; } } } EPayrollGroup curentPayGroup = new EPayrollGroup(); curentPayGroup.PayGroupID = empPos.PayGroupID; if (EPayrollGroup.db.select(dbConn, curentPayGroup)) { row[FIELD_PAYROLLGROUP] = curentPayGroup.PayGroupDesc; } } double netAmount = 0, releventIncome = 0, nonRelevantIncome = 0, taxableAmount = 0, nonTaxableAmount = 0; double mcER = 0, mcEE = 0; double vcER = 0, vcEE = 0; double pFundER = 0, pFundEE = 0; double wagesByWork = 0; double wagesByRest = 0; double fullPaidLeaveDays = 0; double nonFullPaidLeaveDays = 0; DBFilter paymentRecordFilter = new DBFilter(); paymentRecordFilter.add(new IN("EmpPayrollID", "Select EmpPayrollID from " + EEmpPayroll.db.dbclass.tableName + " ep ", empPayrollFilter)); paymentRecordFilter.add(new Match("PayRecStatus", "A")); ArrayList paymentRecords = EPaymentRecord.db.select(dbConn, paymentRecordFilter); foreach (EPaymentRecord paymentRecord in paymentRecords) { EPaymentCode payCode = new EPaymentCode(); payCode.PaymentCodeID = paymentRecord.PaymentCodeID; EPaymentCode.db.select(dbConn, payCode); // Always Use Payment Code Description for grouping payment code with same description //string fieldName = PAYMENTCODE_PREFIX + payCode.PaymentCodeDesc; //if (dataTable.Columns[fieldName] == null) // dataTable.Columns.Add(new DataColumn(fieldName, typeof(double))); //if (row[fieldName] == null || row[fieldName] == DBNull.Value) // row[fieldName] = 0; //row[fieldName] = (double)row[fieldName] + paymentRecord.PayRecActAmount; netAmount += paymentRecord.PayRecActAmount; if (payCode.PaymentCodeIsMPF) { releventIncome += paymentRecord.PayRecActAmount; } else { nonRelevantIncome += paymentRecord.PayRecActAmount; } DBFilter taxPaymentMapFilter = new DBFilter(); taxPaymentMapFilter.add(new Match("PaymentCodeID", paymentRecord.PaymentCodeID)); if (ETaxPaymentMap.db.count(dbConn, taxPaymentMapFilter) > 0) { taxableAmount += paymentRecord.PayRecActAmount; } else { nonTaxableAmount += paymentRecord.PayRecActAmount; } if (payCode.PaymentCodeIsWages) { if (paymentRecord.PayRecIsRestDayPayment) { wagesByRest += paymentRecord.PayRecActAmount; } else { wagesByWork += paymentRecord.PayRecActAmount; } } } DBFilter mpfRecordFilter = new DBFilter(); mpfRecordFilter.add(new IN("EmpPayrollID", "Select EmpPayrollID from " + EEmpPayroll.db.dbclass.tableName + " ep ", empPayrollFilter)); ArrayList mpfRecords = EMPFRecord.db.select(dbConn, mpfRecordFilter); foreach (EMPFRecord mpfRecord in mpfRecords) { vcER += mpfRecord.MPFRecActVCER; mcER += +mpfRecord.MPFRecActMCER; vcEE += mpfRecord.MPFRecActVCEE; mcEE += mpfRecord.MPFRecActMCEE; } ArrayList orsoRecords = EORSORecord.db.select(dbConn, mpfRecordFilter); foreach (EORSORecord orsoRecord in orsoRecords) { pFundER += orsoRecord.ORSORecActER; pFundEE += orsoRecord.ORSORecActEE; } row[FIELD_WAGESWORK] = wagesByWork; DBFilter workingSummaryFilter = new DBFilter(); workingSummaryFilter.add(new Match("EmpWorkingSummaryAsOfDate", ">=", payPeriod.PayPeriodFr < empInfo.EmpDateOfJoin ? empInfo.EmpDateOfJoin : payPeriod.PayPeriodFr)); if (empTerm != null) { workingSummaryFilter.add(new Match("EmpWorkingSummaryAsOfDate", "<=", payPeriod.PayPeriodTo > empTerm.EmpTermLastDate ? empTerm.EmpTermLastDate : payPeriod.PayPeriodTo)); } else { workingSummaryFilter.add(new Match("EmpWorkingSummaryAsOfDate", "<=", payPeriod.PayPeriodTo)); } workingSummaryFilter.add(new Match("EmpID", empInfo.EmpID)); ArrayList empWorkingSummaryList = EEmpWorkingSummary.db.select(dbConn, workingSummaryFilter); double workHourTotal = 0, restDayTotal = 0; foreach (EEmpWorkingSummary empWorkSummary in empWorkingSummaryList) { workHourTotal += empWorkSummary.EmpWorkingSummaryTotalWorkingHours; restDayTotal += empWorkSummary.EmpWorkingSummaryRestDayEntitled; } row[FIELD_WORKHOURTOTAL] = workHourTotal; row[FIELD_RESTDAYTOTAL] = restDayTotal; DBFilter statutoryHolidayFilter = new DBFilter(); statutoryHolidayFilter.add(new Match("StatutoryHolidayDate", ">=", payPeriod.PayPeriodFr < empInfo.EmpDateOfJoin ? empInfo.EmpDateOfJoin : payPeriod.PayPeriodFr)); if (empTerm != null) { statutoryHolidayFilter.add(new Match("StatutoryHolidayDate", "<=", payPeriod.PayPeriodTo > empTerm.EmpTermLastDate ? empTerm.EmpTermLastDate : payPeriod.PayPeriodTo)); } else { statutoryHolidayFilter.add(new Match("StatutoryHolidayDate", "<=", payPeriod.PayPeriodTo)); } ArrayList statutoryHolidayList = EStatutoryHoliday.db.select(dbConn, statutoryHolidayFilter); double restDayCount = 0; foreach (EStatutoryHoliday statutoryHoliday in statutoryHolidayList) { restDayCount++; } row[FIELD_STATUTORYHOLIDAYTOTAL] = restDayCount; DBFilter LeaveAppEmpPayrollFilter = new DBFilter(); LeaveAppEmpPayrollFilter.add(new IN("EmpPayrollID", "Select EmpPayrollID from " + EEmpPayroll.db.dbclass.tableName + " ep ", empPayrollFilter)); ArrayList LeaveAppEmpPayrollLists = ELeaveApplication.db.select(dbConn, LeaveAppEmpPayrollFilter); foreach (ELeaveApplication leaveApp in LeaveAppEmpPayrollLists) { ELeaveCode leaveCode = new ELeaveCode(); leaveCode.LeaveCodeID = leaveApp.LeaveCodeID; if (ELeaveCode.db.select(dbConn, leaveCode)) { if (leaveCode.LeaveCodePayRatio >= 1) { fullPaidLeaveDays += leaveApp.LeaveAppDays; } else { nonFullPaidLeaveDays += leaveApp.LeaveAppDays; } } } row[FIELD_FULLPAIDLEAVETOTAL] = fullPaidLeaveDays; row[FIELD_NONFULLPAIDLEAVETOTAL] = nonFullPaidLeaveDays; dataTable.Rows.Add(row); } } } //DBFilter paymentCodeFilter = new DBFilter(); //paymentCodeFilter.add("PaymentCodeDisplaySeqNo", false); //paymentCodeFilter.add("PaymentCode", false); //ArrayList paymentCodeList = EPaymentCode.db.select(dbConn, paymentCodeFilter); //foreach (EPaymentCode paymentCode in paymentCodeList) //{ // if (dataTable.Columns.Contains(PAYMENTCODE_PREFIX + paymentCode.PaymentCodeDesc)) // { // DataColumn paymentColumn = dataTable.Columns[PAYMENTCODE_PREFIX + paymentCode.PaymentCodeDesc]; // paymentColumn.SetOrdinal(firstDetailColumnPos); // if (!dataTable.Columns.Contains(paymentCode.PaymentCodeDesc)) // paymentColumn.ColumnName = paymentCode.PaymentCodeDesc; // else // { // Console.Write("System reserved payment column is used"); // } // } //} //for (int i = firstSummaryColumnPos; i < firstDetailColumnPos; i++) // dataTable.Columns[firstSummaryColumnPos].SetOrdinal(dataTable.Columns.Count - 1); export.Update(dataSet); System.IO.FileStream excelfileStream = new System.IO.FileStream(exportFileName, System.IO.FileMode.Open); NPOI.HSSF.UserModel.HSSFWorkbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(excelfileStream); NPOI.HSSF.UserModel.HSSFSheet workSheet = (NPOI.HSSF.UserModel.HSSFSheet)workbook.GetSheetAt(0); workSheet.ShiftRows(workSheet.FirstRowNum, workSheet.LastRowNum, 1); NPOI.HSSF.UserModel.HSSFRow excelRow = (NPOI.HSSF.UserModel.HSSFRow)workSheet.GetRow(0); if (excelRow == null) { excelRow = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow(0); } NPOI.HSSF.UserModel.HSSFCell excelCell = (NPOI.HSSF.UserModel.HSSFCell)excelRow.GetCell(0); if (excelCell == null) { excelCell = (NPOI.HSSF.UserModel.HSSFCell)excelRow.CreateCell(0); } excelCell.SetCellValue("Statutory Minimum Wage Summary Report"); excelfileStream = new System.IO.FileStream(exportFileName, System.IO.FileMode.Open); workbook.Write(excelfileStream); excelfileStream.Close(); WebUtils.TransmitFile(Response, exportFileName, "StatutoryMinimumWageSummary_" + AppUtils.ServerDateTime().ToString("yyyyMMddHHmmss") + ".xls", true); return; } else { PageErrors errors = PageErrors.getErrors(db, Page.Master); errors.addError("Employee not selected"); } }
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); }
protected void Save_Click(object sender, EventArgs e) { EPayrollGroup c = new EPayrollGroup(); 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 (CurID < 0) { c.PayGroupIsPublic = true; // new payroll group is default to public } if (!c.PayGroupIsSkipStatHol) { if (c.PayGroupStatHolAllowFormula <= 0) { errors.addError(lblPayGroupStatHolAllowFormula.Text, HROne.Common.WebUtility.GetLocalizedString("validate.required.prompt")); } if (c.PayGroupStatHolAllowPaymentCodeID <= 0) { errors.addError(lblPayGroupStatHolAllowPaymentCodeID.Text, HROne.Common.WebUtility.GetLocalizedString("validate.required.prompt")); } if (c.PayGroupStatHolDeductFormula <= 0) { errors.addError(lblPayGroupStatHolDeductFormula.Text, HROne.Common.WebUtility.GetLocalizedString("validate.required.prompt")); } if (c.PayGroupStatHolDeductPaymentCodeID <= 0) { errors.addError(lblPayGroupStatHolDeductPaymentCodeID.Text, HROne.Common.WebUtility.GetLocalizedString("validate.required.prompt")); } } c.PayGroupCode = c.PayGroupCode.ToUpper(); if (!AppUtils.checkDuplicate(dbConn, db, c, errors, "PayGroupCode")) { return; } if (c.PayGroupNextEndDate < c.PayGroupNextStartDate) { errors.addError(lblPayGroupNextEndDate.Text, HROne.Translation.PageErrorMessage.ERROR_DATE_TO_TOO_EARLY); } if (c.PayGroupDefaultStartDay > 31 || c.PayGroupDefaultStartDay < 1) { errors.addError(lblPayGroupDefaultStartDay.Text, HROne.Translation.PageErrorMessage.ERROR_INVALID_START_DATE); } if (c.PayGroupLeaveDefaultCutOffDay > 31 || c.PayGroupLeaveDefaultCutOffDay < 1) { errors.addError(lblPayGroupLeaveDefaultCutOffDay.Text, HROne.Translation.PageErrorMessage.ERROR_INVALID_END_DATE); } if (c.PayGroupFreq.Equals("S", StringComparison.CurrentCultureIgnoreCase)) { if (c.PayGroupDefaultNextStartDay > 31 || c.PayGroupDefaultNextStartDay < 1) { errors.addError(lblPayGroupDefaultNextStartDay.Text, HROne.Translation.PageErrorMessage.ERROR_INVALID_START_DATE); } if (c.PayGroupLeaveDefaultNextCutOffDay > 31 || c.PayGroupLeaveDefaultNextCutOffDay < 1) { errors.addError(lblPayGroupLeaveDefaultNextCutOffDay.Text, HROne.Translation.PageErrorMessage.ERROR_INVALID_END_DATE); } } if (c.PayGroupNextStartDate >= c.PayGroupNextEndDate) { errors.addError("PayGroupNextStartDate", HROne.Translation.PageErrorMessage.ERROR_INCORRECT_DATE_RANGE + ": " + lblPayGroupNextEndDate.Text); } else if (((TimeSpan)c.PayGroupNextEndDate.Subtract(c.PayGroupNextStartDate)).TotalDays > 31) { errors.addError("PayGroupNextStartDate", HROne.Translation.PageErrorMessage.ERROR_INCORRECT_DATE_RANGE + ": " + lblPayGroupNextEndDate.Text); } if (!errors.isEmpty()) { return; } // WebUtils.StartFunction(Session, Functions.FUNC_EMP_EDIT , 0); WebUtils.StartFunction(Session, FUNCTION_CODE); if (CurID < 0) { // Utils.MarkCreate(Session, c); db.insert(dbConn, c); CurID = c.PayGroupID; // url = Utils.BuildURL(-1, CurID); } else { // Utils.Mark(Session, c); db.update(dbConn, c); } // WebUtils.StartFunction(Session, Functions.FUNC_EMP_EDIT, 0); db.select(dbConn, c); if (c.CurrentPayPeriodID == 0) { HROne.Payroll.PayrollProcess payrollProcess = new HROne.Payroll.PayrollProcess(dbConn); payrollProcess.GenerateNextPayrollPeriod(c.PayGroupID); } foreach (RepeaterItem item in LeaveCodeOverrideRepeater.Items) { Label LeaveCodeID = (Label)item.FindControl("LeaveCodeID"); DropDownList PayrollGroupLeaveCodeSetupLeaveDeductFormula = (DropDownList)item.FindControl("PayrollGroupLeaveCodeSetupLeaveDeductFormula"); DropDownList PayrollGroupLeaveCodeSetupLeaveDeductPaymentCodeID = (DropDownList)item.FindControl("PayrollGroupLeaveCodeSetupLeaveDeductPaymentCodeID"); DropDownList PayrollGroupLeaveCodeSetupLeaveAllowFormula = (DropDownList)item.FindControl("PayrollGroupLeaveCodeSetupLeaveAllowFormula"); DropDownList PayrollGroupLeaveCodeSetupLeaveAllowPaymentCodeID = (DropDownList)item.FindControl("PayrollGroupLeaveCodeSetupLeaveAllowPaymentCodeID"); ELeaveCode o = new ELeaveCode(); WebFormUtils.GetKeys(ELeaveCode.db, o, LeaveCodeID); Binding ebinding = new Binding(dbConn, EPayrollGroupLeaveCodeSetupOverride.db); ebinding.add(new DropDownVLBinder(EPayrollGroupLeaveCodeSetupOverride.db, PayrollGroupLeaveCodeSetupLeaveDeductFormula, EPayrollProrataFormula.VLPayrollProrataFormula)); ebinding.add(new DropDownVLBinder(EPayrollGroupLeaveCodeSetupOverride.db, PayrollGroupLeaveCodeSetupLeaveDeductPaymentCodeID, EPaymentCode.VLPaymentCode)); ebinding.add(new DropDownVLBinder(EPayrollGroupLeaveCodeSetupOverride.db, PayrollGroupLeaveCodeSetupLeaveAllowFormula, EPayrollProrataFormula.VLPayrollProrataFormula)); ebinding.add(new DropDownVLBinder(EPayrollGroupLeaveCodeSetupOverride.db, PayrollGroupLeaveCodeSetupLeaveAllowPaymentCodeID, EPaymentCode.VLPaymentCode)); Hashtable hashTable = new Hashtable(); ebinding.toValues(hashTable); EPayrollGroupLeaveCodeSetupOverride setupOverride = new EPayrollGroupLeaveCodeSetupOverride(); EPayrollGroupLeaveCodeSetupOverride.db.parse(hashTable, setupOverride); setupOverride.PayGroupID = c.PayGroupID; setupOverride.LeaveCodeID = o.LeaveCodeID; if (setupOverride.PayrollGroupLeaveCodeSetupLeaveAllowFormula <= 0 && setupOverride.PayrollGroupLeaveCodeSetupLeaveAllowPaymentCodeID <= 0 && setupOverride.PayrollGroupLeaveCodeSetupLeaveDeductFormula <= 0 && setupOverride.PayrollGroupLeaveCodeSetupLeaveDeductPaymentCodeID <= 0) { DBFilter setupOverrideFilter = new DBFilter(); setupOverrideFilter.add(new Match("LeaveCodeID", setupOverride.LeaveCodeID)); setupOverrideFilter.add(new Match("PayGroupID", setupOverride.PayGroupID)); ArrayList setupOverrideList = EPayrollGroupLeaveCodeSetupOverride.db.select(dbConn, setupOverrideFilter); foreach (EPayrollGroupLeaveCodeSetupOverride deletedSetupOverride in setupOverrideList) { EPayrollGroupLeaveCodeSetupOverride.db.delete(dbConn, deletedSetupOverride); } } else { DBFilter setupOverrideFilter = new DBFilter(); setupOverrideFilter.add(new Match("LeaveCodeID", setupOverride.LeaveCodeID)); setupOverrideFilter.add(new Match("PayGroupID", setupOverride.PayGroupID)); ArrayList setupOverrideList = EPayrollGroupLeaveCodeSetupOverride.db.select(dbConn, setupOverrideFilter); if (setupOverrideList.Count > 0) { setupOverride.PayrollGroupLeaveCodeSetupOverrideID = ((EPayrollGroupLeaveCodeSetupOverride)setupOverrideList[0]).PayrollGroupLeaveCodeSetupOverrideID; EPayrollGroupLeaveCodeSetupOverride.db.update(dbConn, setupOverride); } else { EPayrollGroupLeaveCodeSetupOverride.db.insert(dbConn, setupOverride); } } } WebUtils.EndFunction(dbConn); // Response.Redirect(Request.Url.LocalPath + "?PayGroupID=" + CurID); HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "Payroll_Group_View.aspx?PayGroupID=" + CurID); }
public static string GetValueFromID(DatabaseConnection dbConn, string fieldName, string fieldValue) { try { string tmpfieldName = fieldName; if (tmpfieldName.Equals("PreviousEmpID", StringComparison.CurrentCultureIgnoreCase) || tmpfieldName.Equals("NewEmpID", StringComparison.CurrentCultureIgnoreCase)) { tmpfieldName = "EmpID"; } if (tmpfieldName.EndsWith("PaymentCodeID", StringComparison.CurrentCultureIgnoreCase) || tmpfieldName.EndsWith("PayCodeID", StringComparison.CurrentCultureIgnoreCase)) { tmpfieldName = "PaymentCodeID"; } if (tmpfieldName.Equals("DefaultMPFPlanID", StringComparison.CurrentCultureIgnoreCase)) { tmpfieldName = "MPFPlanID"; } if (tmpfieldName.Equals("AttendanceFormulaPayFormID", StringComparison.CurrentCultureIgnoreCase) || tmpfieldName.Equals("ReferencePayFormID", StringComparison.CurrentCultureIgnoreCase)) { tmpfieldName = "PayFormID"; } if (tmpfieldName.StartsWith("LeaveCode", StringComparison.CurrentCultureIgnoreCase) && tmpfieldName.EndsWith("Formula", StringComparison.CurrentCultureIgnoreCase)) { tmpfieldName = "PayFormID"; } if (tmpfieldName.StartsWith("PayGroup", StringComparison.CurrentCultureIgnoreCase) && tmpfieldName.EndsWith("Formula", StringComparison.CurrentCultureIgnoreCase)) { tmpfieldName = "PayFormID"; } if (tmpfieldName.Equals("CurrentPayPeriodID", StringComparison.CurrentCultureIgnoreCase)) { tmpfieldName = "PayPeriodID"; } if (tmpfieldName.Equals("EmpPosDefaultRosterCodeID", StringComparison.CurrentCultureIgnoreCase)) { tmpfieldName = "RosterCodeID"; } if (tmpfieldName.Equals("RosterClientMappingSiteCodeToHLevelID", StringComparison.CurrentCultureIgnoreCase)) { tmpfieldName = "HLevelID"; } if (tmpfieldName.Equals("EmpFirstAuthorizationGp", StringComparison.CurrentCultureIgnoreCase) || tmpfieldName.Equals("EmpSecondAuthorizationGp", StringComparison.CurrentCultureIgnoreCase)) { tmpfieldName = "AuthorizationGroupID"; } if (tmpfieldName.StartsWith("A", StringComparison.CurrentCultureIgnoreCase)) { if (tmpfieldName.Equals("ALProrataRoundingRuleID", StringComparison.CurrentCultureIgnoreCase)) { EALProrataRoundingRule obj = new EALProrataRoundingRule(); obj.ALProrataRoundingRuleID = int.Parse(fieldValue); if (EALProrataRoundingRule.db.select(dbConn, obj)) { return(obj.ALProrataRoundingRuleCode + " - " + obj.ALProrataRoundingRuleDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("AttendancePlanID", StringComparison.CurrentCultureIgnoreCase)) { EAttendancePlan obj = new EAttendancePlan(); obj.AttendancePlanID = int.Parse(fieldValue); if (EAttendancePlan.db.select(dbConn, obj)) { return(obj.AttendancePlanCode + " - " + obj.AttendancePlanDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("AuthorizationGroupID", StringComparison.CurrentCultureIgnoreCase)) { EAuthorizationGroup obj = new EAuthorizationGroup(); obj.AuthorizationGroupID = int.Parse(fieldValue); if (EAuthorizationGroup.db.select(dbConn, obj)) { return(obj.AuthorizationCode + " - " + obj.AuthorizationDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("AVCPlanID", StringComparison.CurrentCultureIgnoreCase)) { EAVCPlan obj = new EAVCPlan(); obj.AVCPlanID = int.Parse(fieldValue); if (EAVCPlan.db.select(dbConn, obj)) { return(obj.AVCPlanCode + " - " + obj.AVCPlanDesc); } else { return(string.Empty); } } } else if (tmpfieldName.StartsWith("C", StringComparison.CurrentCultureIgnoreCase)) { if (tmpfieldName.Equals("CessationReasonID", StringComparison.CurrentCultureIgnoreCase)) { ECessationReason obj = new ECessationReason(); obj.CessationReasonID = int.Parse(fieldValue); if (ECessationReason.db.select(dbConn, obj)) { return(obj.CessationReasonCode + " - " + obj.CessationReasonDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("CompanyID", StringComparison.CurrentCultureIgnoreCase)) { ECompany obj = new ECompany(); obj.CompanyID = int.Parse(fieldValue); if (ECompany.db.select(dbConn, obj)) { return(obj.CompanyCode + " - " + obj.CompanyName); } else { return(string.Empty); } } if (tmpfieldName.Equals("CostAllocationDetailID", StringComparison.CurrentCultureIgnoreCase)) { ECostAllocationDetail obj = new ECostAllocationDetail(); obj.CostAllocationDetailID = int.Parse(fieldValue); if (ECostAllocationDetail.db.select(dbConn, obj)) { return(GetValueFromID(dbConn, "PayCodeID", obj.PaymentCodeID.ToString()) + ", " + GetValueFromID(dbConn, "CostCenterID", obj.CostCenterID.ToString())); } else { return(string.Empty); } } if (tmpfieldName.Equals("CostAllocationID", StringComparison.CurrentCultureIgnoreCase)) { ECostAllocation obj = new ECostAllocation(); obj.CostAllocationID = int.Parse(fieldValue); if (ECostAllocation.db.select(dbConn, obj)) { return(GetValueFromID(dbConn, "EmpPayrollID", obj.EmpPayrollID.ToString())); } else { return(string.Empty); } } if (tmpfieldName.Equals("CostCenterID", StringComparison.CurrentCultureIgnoreCase)) { ECostCenter obj = new ECostCenter(); obj.CostCenterID = int.Parse(fieldValue); if (ECostCenter.db.select(dbConn, obj)) { return(obj.CostCenterCode + " - " + obj.CostCenterDesc); } else { return(string.Empty); } } } else if (tmpfieldName.StartsWith("D", StringComparison.CurrentCultureIgnoreCase)) { if (tmpfieldName.Equals("DocumentTypeID", StringComparison.CurrentCultureIgnoreCase)) { EDocumentType obj = new EDocumentType(); obj.DocumentTypeID = int.Parse(fieldValue); if (EDocumentType.db.select(dbConn, obj)) { return(obj.DocumentTypeCode + " - " + obj.DocumentTypeDesc); } else { return(string.Empty); } } } else if (tmpfieldName.StartsWith("E", StringComparison.CurrentCultureIgnoreCase)) { if (tmpfieldName.Equals("EmpAccID", StringComparison.CurrentCultureIgnoreCase)) { EEmpBankAccount obj = new EEmpBankAccount(); obj.EmpBankAccountID = int.Parse(fieldValue); if (EEmpBankAccount.db.select(dbConn, obj)) { return(obj.EmpBankCode + "-" + obj.EmpBranchCode + "-" + obj.EmpAccountNo); } //return obj.EmpBankCode + "-" + obj.EmpBranchCode + "-" + string.Empty.PadRight(obj.EmpAccountNo.Length, 'X'); else { return(string.Empty); } } if (tmpfieldName.Equals("EmpCostCenterID", StringComparison.CurrentCultureIgnoreCase)) { EEmpCostCenter obj = new EEmpCostCenter(); obj.EmpCostCenterID = int.Parse(fieldValue); if (EEmpCostCenter.db.select(dbConn, obj)) { return(GetValueFromID(dbConn, "EmpID", obj.EmpID.ToString())); } else { return(string.Empty); } } if (tmpfieldName.Equals("EmpExtraFieldID", StringComparison.CurrentCultureIgnoreCase)) { EEmpExtraField obj = new EEmpExtraField(); obj.EmpExtraFieldID = int.Parse(fieldValue); if (EEmpExtraField.db.select(dbConn, obj)) { return(obj.EmpExtraFieldName); } else { return(string.Empty); } } if (tmpfieldName.Equals("EmpID", StringComparison.CurrentCultureIgnoreCase)) { EEmpPersonalInfo obj = new EEmpPersonalInfo(); obj.EmpID = int.Parse(fieldValue); if (EEmpPersonalInfo.db.select(dbConn, obj)) { return(obj.EmpNo + " - " + obj.EmpEngFullName); } else { return(string.Empty); } } if (tmpfieldName.Equals("EmpPayrollID", StringComparison.CurrentCultureIgnoreCase)) { EEmpPayroll obj = new EEmpPayroll(); obj.EmpPayrollID = int.Parse(fieldValue); if (EEmpPayroll.db.select(dbConn, obj)) { return(GetValueFromID(dbConn, "EmpID", obj.EmpID.ToString()) + " : " + GetValueFromID(dbConn, "PayPeriodID", obj.PayPeriodID.ToString())); } else { return(string.Empty); } } if (tmpfieldName.Equals("EmpPosID", StringComparison.CurrentCultureIgnoreCase)) { EEmpPositionInfo obj = new EEmpPositionInfo(); obj.EmpPosID = int.Parse(fieldValue); if (EEmpPositionInfo.db.select(dbConn, obj)) { return(obj.EmpPosEffFr.ToString("yyyy-MM-dd") + " - " + (obj.EmpPosEffTo.Ticks.Equals(0) ? "Present" : obj.EmpPosEffTo.ToString("yyyy-MM-dd"))); } else { return(string.Empty); } } if (tmpfieldName.Equals("EmploymentTypeID", StringComparison.CurrentCultureIgnoreCase)) { EEmploymentType obj = new EEmploymentType(); obj.EmploymentTypeID = int.Parse(fieldValue); if (EEmploymentType.db.select(dbConn, obj)) { return(obj.EmploymentTypeCode + " - " + obj.EmploymentTypeDesc); } else { return(string.Empty); } } } else if (tmpfieldName.StartsWith("F", StringComparison.CurrentCultureIgnoreCase)) { if (tmpfieldName.Equals("FunctionID", StringComparison.CurrentCultureIgnoreCase)) { ESystemFunction obj = new ESystemFunction(); obj.FunctionID = int.Parse(fieldValue); if (ESystemFunction.db.select(dbConn, obj)) { return(obj.FunctionCode + " - " + obj.Description); } else { return(string.Empty); } } } else if (tmpfieldName.StartsWith("H", StringComparison.CurrentCultureIgnoreCase)) { if (tmpfieldName.Equals("HElementID", StringComparison.CurrentCultureIgnoreCase)) { EHierarchyElement obj = new EHierarchyElement(); obj.HElementID = int.Parse(fieldValue); if (EHierarchyElement.db.select(dbConn, obj)) { return(obj.HElementCode + " - " + obj.HElementDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("HLevelID", StringComparison.CurrentCultureIgnoreCase)) { EHierarchyLevel obj = new EHierarchyLevel(); obj.HLevelID = int.Parse(fieldValue); if (EHierarchyLevel.db.select(dbConn, obj)) { return(obj.HLevelCode + " - " + obj.HLevelDesc); } else { return(string.Empty); } } } else if (tmpfieldName.StartsWith("L", StringComparison.CurrentCultureIgnoreCase)) { if (tmpfieldName.Equals("LeaveTypeID", StringComparison.CurrentCultureIgnoreCase)) { ELeaveType obj = new ELeaveType(); obj.LeaveTypeID = int.Parse(fieldValue); if (ELeaveType.db.select(dbConn, obj)) { return(obj.LeaveType + " - " + obj.LeaveTypeDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("LeaveCodeID", StringComparison.CurrentCultureIgnoreCase)) { ELeaveCode obj = new ELeaveCode(); obj.LeaveCodeID = int.Parse(fieldValue); if (ELeaveCode.db.select(dbConn, obj)) { return(obj.LeaveCode + " - " + obj.LeaveCodeDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("LeavePlanID", StringComparison.CurrentCultureIgnoreCase)) { ELeavePlan obj = new ELeavePlan(); obj.LeavePlanID = int.Parse(fieldValue); if (ELeavePlan.db.select(dbConn, obj)) { return(obj.LeavePlanCode + " - " + obj.LeavePlanDesc); } else { return(string.Empty); } } } else if (tmpfieldName.StartsWith("M", StringComparison.CurrentCultureIgnoreCase)) { if (tmpfieldName.Equals("MPFPlanID", StringComparison.CurrentCultureIgnoreCase)) { EMPFPlan obj = new EMPFPlan(); obj.MPFPlanID = int.Parse(fieldValue); if (EMPFPlan.db.select(dbConn, obj)) { return(obj.MPFPlanCode + " - " + obj.MPFPlanDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("MPFSchemeID", StringComparison.CurrentCultureIgnoreCase)) { EMPFScheme obj = new EMPFScheme(); obj.MPFSchemeID = int.Parse(fieldValue); if (EMPFScheme.db.select(dbConn, obj)) { return(obj.MPFSchemeCode + " - " + obj.MPFSchemeDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("MPFSchemeCessationReasonID", StringComparison.CurrentCultureIgnoreCase)) { EMPFSchemeCessationReason obj = new EMPFSchemeCessationReason(); obj.MPFSchemeCessationReasonID = int.Parse(fieldValue); if (EMPFSchemeCessationReason.db.select(dbConn, obj)) { return(obj.MPFSchemeCessationReasonCode + " - " + obj.MPFSchemeCessationReasonDesc); } else { return(string.Empty); } } } else if (tmpfieldName.StartsWith("O", StringComparison.CurrentCultureIgnoreCase)) { if (tmpfieldName.Equals("ORSOPlanID", StringComparison.CurrentCultureIgnoreCase)) { EORSOPlan obj = new EORSOPlan(); obj.ORSOPlanID = int.Parse(fieldValue); if (EORSOPlan.db.select(dbConn, obj)) { return(obj.ORSOPlanCode + " - " + obj.ORSOPlanDesc); } else { return(string.Empty); } } } else if (tmpfieldName.StartsWith("P", StringComparison.CurrentCultureIgnoreCase)) { if (tmpfieldName.Equals("PayGroupID", StringComparison.CurrentCultureIgnoreCase) || tmpfieldName.Equals("PayrollGroupID", StringComparison.CurrentCultureIgnoreCase)) { EPayrollGroup obj = new EPayrollGroup(); obj.PayGroupID = int.Parse(fieldValue); if (EPayrollGroup.db.select(dbConn, obj)) { return(obj.PayGroupCode + " - " + obj.PayGroupDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("PayFormID", StringComparison.CurrentCultureIgnoreCase)) { EPayrollProrataFormula obj = new EPayrollProrataFormula(); obj.PayFormID = int.Parse(fieldValue); if (EPayrollProrataFormula.db.select(dbConn, obj)) { return(obj.PayFormCode + " - " + obj.PayFormDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("PaymentCodeID", StringComparison.CurrentCultureIgnoreCase) || tmpfieldName.Equals("PayCodeID", StringComparison.CurrentCultureIgnoreCase)) { EPaymentCode obj = new EPaymentCode(); obj.PaymentCodeID = int.Parse(fieldValue); if (EPaymentCode.db.select(dbConn, obj)) { return(obj.PaymentCode + " - " + obj.PaymentCodeDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("PaymentTypeID", StringComparison.CurrentCultureIgnoreCase)) { EPaymentType obj = new EPaymentType(); obj.PaymentTypeID = int.Parse(fieldValue); if (EPaymentType.db.select(dbConn, obj)) { return(obj.PaymentTypeCode + " - " + obj.PaymentTypeDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("PayPeriodID", StringComparison.CurrentCultureIgnoreCase)) { EPayrollPeriod obj = new EPayrollPeriod(); obj.PayPeriodID = int.Parse(fieldValue); if (EPayrollPeriod.db.select(dbConn, obj)) { return(GetValueFromID(dbConn, "PayrollGroupID", obj.PayGroupID.ToString()) + ": " + obj.PayPeriodFr.ToString("yyyy-MM-dd") + " to " + obj.PayPeriodTo.ToString("yyyy-MM-dd")); } else { return(string.Empty); } } if (tmpfieldName.Equals("PermitTypeID", StringComparison.CurrentCultureIgnoreCase)) { EPermitType obj = new EPermitType(); obj.PermitTypeID = int.Parse(fieldValue); if (EPermitType.db.select(dbConn, obj)) { return(obj.PermitTypeCode + " - " + obj.PermitTypeDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("PositionID", StringComparison.CurrentCultureIgnoreCase)) { EPosition obj = new EPosition(); obj.PositionID = int.Parse(fieldValue); if (EPosition.db.select(dbConn, obj)) { return(obj.PositionCode + " - " + obj.PositionDesc); } else { return(string.Empty); } } } else if (tmpfieldName.StartsWith("Q", StringComparison.CurrentCultureIgnoreCase)) { if (tmpfieldName.Equals("QualificationID", StringComparison.CurrentCultureIgnoreCase)) { EQualification obj = new EQualification(); obj.QualificationID = int.Parse(fieldValue); if (EQualification.db.select(dbConn, obj)) { return(obj.QualificationCode + " - " + obj.QualificationDesc); } else { return(string.Empty); } } } else if (tmpfieldName.StartsWith("R", StringComparison.CurrentCultureIgnoreCase)) { if (tmpfieldName.Equals("RankID", StringComparison.CurrentCultureIgnoreCase)) { ERank obj = new ERank(); obj.RankID = int.Parse(fieldValue); if (ERank.db.select(dbConn, obj)) { return(obj.RankCode + " - " + obj.RankDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("ReminderTypeID", StringComparison.CurrentCultureIgnoreCase)) { EReminderType obj = new EReminderType(); obj.ReminderTypeID = int.Parse(fieldValue); if (EReminderType.db.select(dbConn, obj)) { return(obj.ReminderTypeCode + " - " + obj.ReminderTypeDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("RosterClientID", StringComparison.CurrentCultureIgnoreCase)) { ERosterClient obj = new ERosterClient(); obj.RosterClientID = int.Parse(fieldValue); if (ERosterClient.db.select(dbConn, obj)) { return(obj.RosterClientCode + " - " + obj.RosterClientName); } else { return(string.Empty); } } if (tmpfieldName.Equals("RosterClientSiteID", StringComparison.CurrentCultureIgnoreCase)) { ERosterClientSite obj = new ERosterClientSite(); obj.RosterClientSiteID = int.Parse(fieldValue); if (ERosterClientSite.db.select(dbConn, obj)) { return(obj.RosterClientSiteCode); } else { return(string.Empty); } } if (tmpfieldName.Equals("RosterCodeID", StringComparison.CurrentCultureIgnoreCase)) { ERosterCode obj = new ERosterCode(); obj.RosterCodeID = int.Parse(fieldValue); if (ERosterCode.db.select(dbConn, obj)) { return(obj.RosterCode + " - " + obj.RosterCodeDesc); } else { return(string.Empty); } } } else if (tmpfieldName.StartsWith("S", StringComparison.CurrentCultureIgnoreCase)) { if (tmpfieldName.Equals("SkillID", StringComparison.CurrentCultureIgnoreCase)) { ESkill obj = new ESkill(); obj.SkillID = int.Parse(fieldValue); if (ESkill.db.select(dbConn, obj)) { return(obj.SkillCode + " - " + obj.SkillDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("SkillLevelID", StringComparison.CurrentCultureIgnoreCase)) { ESkillLevel obj = new ESkillLevel(); obj.SkillLevelID = int.Parse(fieldValue); if (ESkillLevel.db.select(dbConn, obj)) { return(obj.SkillLevelCode + " - " + obj.SkillLevelDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("StaffTypeID", StringComparison.CurrentCultureIgnoreCase)) { EStaffType obj = new EStaffType(); obj.StaffTypeID = int.Parse(fieldValue); if (EStaffType.db.select(dbConn, obj)) { return(obj.StaffTypeCode + " - " + obj.StaffTypeDesc); } else { return(string.Empty); } } } else if (tmpfieldName.StartsWith("T", StringComparison.CurrentCultureIgnoreCase)) { if (tmpfieldName.Equals("TaxCompID", StringComparison.CurrentCultureIgnoreCase)) { ETaxCompany obj = new ETaxCompany(); obj.TaxCompID = int.Parse(fieldValue); if (ETaxCompany.db.select(dbConn, obj)) { return(obj.TaxCompEmployerName); } else { return(string.Empty); } } if (tmpfieldName.Equals("TaxEmpID", StringComparison.CurrentCultureIgnoreCase)) { ETaxEmp obj = new ETaxEmp(); obj.TaxEmpID = int.Parse(fieldValue); if (ETaxEmp.db.select(dbConn, obj)) { return(obj.TaxEmpSurname + ", " + obj.TaxEmpOtherName + ", " + GetValueFromID(dbConn, "TaxFormID", obj.TaxFormID.ToString())); } else { return(string.Empty); } } if (tmpfieldName.Equals("TaxFormID", StringComparison.CurrentCultureIgnoreCase)) { ETaxForm obj = new ETaxForm(); obj.TaxFormID = int.Parse(fieldValue); if (ETaxForm.db.select(dbConn, obj)) { return("Tax Year :" + obj.TaxFormYear + ", Form: IR56" + obj.TaxFormType); } else { return(string.Empty); } } if (tmpfieldName.Equals("TaxPayID", StringComparison.CurrentCultureIgnoreCase)) { ETaxPayment obj = new ETaxPayment(); obj.TaxPayID = int.Parse(fieldValue); if (ETaxPayment.db.select(dbConn, obj)) { return(obj.TaxPayCode + " - " + obj.TaxPayDesc); } else { return(string.Empty); } } if (tmpfieldName.Equals("TrainingCourseID", StringComparison.CurrentCultureIgnoreCase)) { ETrainingCourse obj = new ETrainingCourse(); obj.TrainingCourseID = int.Parse(fieldValue); if (ETrainingCourse.db.select(dbConn, obj)) { return(obj.TrainingCourseCode + " - " + obj.TrainingCourseName); } else { return(string.Empty); } } if (tmpfieldName.Equals("TrainingSeminarID", StringComparison.CurrentCultureIgnoreCase)) { ETrainingSeminar obj = new ETrainingSeminar(); obj.TrainingSeminarID = int.Parse(fieldValue); if (ETrainingSeminar.db.select(dbConn, obj)) { return(GetValueFromID(dbConn, "TrainingCourseID", obj.TrainingCourseID.ToString()) + ": " + obj.TrainingSeminarDateFrom.ToString("yyyy-MM-dd") + " to " + obj.TrainingSeminarDateTo.ToString("yyyy-MM-dd")); } else { return(string.Empty); } } } else if (tmpfieldName.StartsWith("U", StringComparison.CurrentCultureIgnoreCase)) { if (tmpfieldName.Equals("UserID", StringComparison.CurrentCultureIgnoreCase)) { EUser obj = new EUser(); obj.UserID = int.Parse(fieldValue); if (EUser.db.select(dbConn, obj)) { return(obj.LoginID + " - " + obj.UserName); } else { return(string.Empty); } } if (tmpfieldName.Equals("UserGroupID", StringComparison.CurrentCultureIgnoreCase)) { EUserGroup obj = new EUserGroup(); obj.UserGroupID = int.Parse(fieldValue); if (EUserGroup.db.select(dbConn, obj)) { return(obj.UserGroupName + " - " + obj.UserGroupDesc); } else { return(string.Empty); } } } else if (tmpfieldName.StartsWith("Y", StringComparison.CurrentCultureIgnoreCase)) { if (tmpfieldName.Equals("YebPlanID", StringComparison.CurrentCultureIgnoreCase)) { EYEBPlan obj = new EYEBPlan(); obj.YEBPlanID = int.Parse(fieldValue); if (EYEBPlan.db.select(dbConn, obj)) { return(obj.YEBPlanCode + " - " + obj.YEBPlanDesc); } else { return(string.Empty); } } } if (tmpfieldName.EndsWith("ID") && !tmpfieldName.EndsWith("HKID") && !tmpfieldName.EndsWith("LoginID") && !tmpfieldName.EndsWith("CurrencyID") && !tmpfieldName.EndsWith("LeaveAppID") && !tmpfieldName.EndsWith("EmpPaymentID") && !tmpfieldName.EndsWith("PayBatchID") && !tmpfieldName.EndsWith("PayRecID") && !tmpfieldName.EndsWith("RosterTableID") && !tmpfieldName.EndsWith("SynID") && !tmpfieldName.EndsWith("CNDImportBatchID")) { if (ESystemParameter.getParameter(dbConn, "DebugMode").Equals("Y")) { throw new Exception("ID field not define:" + fieldName); } } return(string.Empty); } catch (Exception ex) { if (ESystemParameter.getParameter(dbConn, "DebugMode").Equals("Y")) { throw ex; } else { return(string.Empty); } } }
// 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"); }
protected void Page_Load(object sender, EventArgs e) { if (!WebUtils.CheckAccess(Response, Session)) { return; } binding = new Binding(dbConn, db); binding.add(EmpID); DBFilter LeaveTypeFilter = new DBFilter(); LeaveTypeFilter.add(new Match("lt.LeaveTypeIsDisabled", false)); DBFilter leaveCodeFilter = new DBFilter(); leaveCodeFilter.add(new Match("LeaveCodeHideInESS", false)); leaveCodeFilter.add(new IN("LeaveTypeID", "SELECT lt.LeaveTypeID FROM " + ELeaveType.db.dbclass.tableName + " lt ", LeaveTypeFilter)); binding.add(new DropDownVLBinder(db, RequestLeaveCodeID, ELeaveCode.VLLeaveCode, leaveCodeFilter)); // Start 000053, Ricky So, 2014-06-26 //binding.add(new DropDownVLBinder(db, RequestLeaveAppUnit, Values.VLLeaveUnit).setNotSelected(null)); int m_leaveCodeID = -1; if (int.TryParse(RequestLeaveCodeID.SelectedValue, out m_leaveCodeID)) { ELeaveCode m_leaveCode = ELeaveCode.GetObject(dbConn, m_leaveCodeID); if (m_leaveCode != null && m_leaveCode.LeaveAppUnit.Length > 0) { string m_keyList = ""; string m_valueList = ""; foreach (string m_unit in m_leaveCode.LeaveAppUnit.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)) { m_keyList += ((m_keyList != "") ? "," : "") + m_unit.Substring(0, 1); m_valueList += ((m_valueList != "") ? "," : "") + m_unit; } VLLeaveUnit = new AppUtils.NewWFTextList(m_keyList.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries), m_valueList.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)); binding.add(new DropDownVLBinder(db, RequestLeaveAppUnit, VLLeaveUnit).setNotSelected(null)); } } else { binding.add(new DropDownVLBinder(db, RequestLeaveAppUnit, VLLeaveUnit).setNotSelected(null)); } // End 0000053, Ricky So, 2014-06-26 binding.add(new TextBoxBinder(db, RequestLeaveAppDateFrom.TextBox, RequestLeaveAppDateFrom.ID)); binding.add(new TextBoxBinder(db, RequestLeaveAppDateTo.TextBox, RequestLeaveAppDateTo.ID)); binding.add(RequestLeaveAppTimeFrom); binding.add(RequestLeaveAppTimeTo); binding.add(RequestLeaveDays); binding.add(RequestLeaveAppHours); binding.add(RequestLeaveAppRemark); binding.add(new CheckBoxBinder(db, RequestLeaveAppHasMedicalCertificate)); binding.init(Request, Session); HROne.Common.WebUtility.WebControlsLocalization(Session, this.Controls); RequestLeaveCodeID.Items.Remove(RequestLeaveCodeID.Items[0]); EESSUser user = WebUtils.GetCurUser(Session); if (user != null) { CurEmpID = user.EmpID; EmpID.Value = CurEmpID.ToString(); } if (RequestLeaveAppDateFromAM.Items.Count <= 0) { RequestLeaveAppDateFromAM.Items.Add(new ListItem("AM", "AM")); RequestLeaveAppDateFromAM.Items.Add(new ListItem("PM", "PM")); RequestLeaveAppDateFromAM.SelectedIndex = 0; } if (RequestLeaveAppDateToAM.Items.Count <= 0) { RequestLeaveAppDateToAM.Items.Add(new ListItem("AM", "AM")); RequestLeaveAppDateToAM.Items.Add(new ListItem("PM", "PM")); RequestLeaveAppDateToAM.SelectedIndex = 0; } }
private void GenerateRosterTableData(ArrayList EmpInfoList, int year, int month) { DateTime dateStart = new DateTime(year, month, 1); DateTime dateEnd = new DateTime(year, month, DateTime.DaysInMonth(year, month)); string exportFileName = System.IO.Path.GetTempFileName(); System.IO.File.Delete(exportFileName); exportFileName += ".xls"; const string FIELD_EMP_NO = "Emp. No"; const int COLUMN_HEADER_ROW = 2; NPOI.HSSF.UserModel.HSSFWorkbook workBook = new NPOI.HSSF.UserModel.HSSFWorkbook(); NPOI.HSSF.UserModel.HSSFSheet workSheet = (NPOI.HSSF.UserModel.HSSFSheet)workBook.CreateSheet("RosterTable"); NPOI.HSSF.UserModel.HSSFCellStyle upperLineStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workBook.CreateCellStyle(); upperLineStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.THIN; NPOI.HSSF.UserModel.HSSFCellStyle bottomLineStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workBook.CreateCellStyle(); bottomLineStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.THIN; NPOI.HSSF.UserModel.HSSFCellStyle leftLineStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workBook.CreateCellStyle(); leftLineStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.THIN; NPOI.HSSF.UserModel.HSSFCellStyle rightLineStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workBook.CreateCellStyle(); rightLineStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.THIN; NPOI.HSSF.UserModel.HSSFCellStyle upperLeftLineStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workBook.CreateCellStyle(); upperLeftLineStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.THIN; upperLeftLineStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.THIN; NPOI.HSSF.UserModel.HSSFCellStyle bottomLeftLineStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workBook.CreateCellStyle(); bottomLeftLineStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.THIN; bottomLeftLineStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.THIN; NPOI.HSSF.UserModel.HSSFCellStyle upperRightLineStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workBook.CreateCellStyle(); upperRightLineStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.THIN; upperRightLineStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.THIN; NPOI.HSSF.UserModel.HSSFCellStyle bottomRightLineStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workBook.CreateCellStyle(); bottomRightLineStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.THIN; bottomRightLineStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.THIN; workSheet.CreateRow(0).CreateCell(0).SetCellValue("Year"); workSheet.GetRow(0).CreateCell(1).SetCellValue(year); workSheet.CreateRow(1).CreateCell(0).SetCellValue("Month"); workSheet.GetRow(1).CreateCell(1).SetCellValue(month); NPOI.HSSF.UserModel.HSSFRow headerRow = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow(COLUMN_HEADER_ROW); DBFilter hLevelFilter = new DBFilter(); hLevelFilter.add("HLevelSeqNo", true); int HIERARCHYLEVEL_COLUMN = 0; ArrayList hLevelList = EHierarchyLevel.db.select(dbConn, hLevelFilter); for (int levelIndex = 0; levelIndex < hLevelList.Count; levelIndex++) { EHierarchyLevel hLevel = (EHierarchyLevel)hLevelList[levelIndex]; headerRow.CreateCell(HIERARCHYLEVEL_COLUMN + levelIndex).SetCellValue(hLevel.HLevelDesc); } int POSITION_COLUMN = headerRow.LastCellNum; headerRow.CreateCell(POSITION_COLUMN).SetCellValue(HROne.Common.WebUtility.GetLocalizedString("Position")); int EMPNO_COLUMN = headerRow.LastCellNum; headerRow.CreateCell(EMPNO_COLUMN).SetCellValue(FIELD_EMP_NO); headerRow.CreateCell(EMPNO_COLUMN + 1).SetCellValue(HROne.Common.WebUtility.GetLocalizedString("Name")); headerRow.CreateCell(EMPNO_COLUMN + 2).SetCellValue(HROne.Common.WebUtility.GetLocalizedString("Alias")); headerRow.CreateCell(EMPNO_COLUMN + 3).SetCellValue(HROne.Common.WebUtility.GetLocalizedString("Chinese Name")); NPOI.HSSF.UserModel.HSSFCellStyle sundayStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workBook.CreateCellStyle(); NPOI.HSSF.UserModel.HSSFFont sundayFont = (NPOI.HSSF.UserModel.HSSFFont)workBook.CreateFont(); sundayFont.Color = NPOI.HSSF.Util.HSSFColor.RED.index; sundayStyle.SetFont(sundayFont); Hashtable styleList = new Hashtable(); ArrayList availableRosterClientList = new ArrayList(); ArrayList availableRosterClientSiteList = new ArrayList(); #region Create Column Header int ROSTER_DETAIL_COLUMN = headerRow.LastCellNum; for (int i = 1; i <= DateTime.DaysInMonth(year, month); i++) { //workSheet.Cells.Add(HEADER_ROW, ROSTAER_DETAIL_COLUMN + i - 1,i); NPOI.HSSF.UserModel.HSSFCell headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(ROSTER_DETAIL_COLUMN + i - 1); headerCell.SetCellValue(i); if (new DateTime(year, month, i).DayOfWeek == DayOfWeek.Sunday) { headerCell.CellStyle = sundayStyle; } } #endregion #region Create Employee Roster Detail int recordCount = 0; foreach (EEmpPersonalInfo empInfo in EmpInfoList) { if (EEmpPersonalInfo.db.select(dbConn, empInfo)) { recordCount++; //workSheet.Cells.Add(HEADER_ROW + recordCount, 1,empInfo.EmpNo); //workSheet.Cells.Add(HEADER_ROW + recordCount, 2,empInfo.EmpEngFullName); NPOI.HSSF.UserModel.HSSFRow detailRow = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow(COLUMN_HEADER_ROW + recordCount); EEmpPositionInfo empPos = AppUtils.GetLastPositionInfo(dbConn, dateEnd, empInfo.EmpID); if (empPos != null) { for (int levelIndex = 0; levelIndex < hLevelList.Count; levelIndex++) { EHierarchyLevel hLevel = (EHierarchyLevel)hLevelList[levelIndex]; DBFilter empHierarchyFilter = new DBFilter(); empHierarchyFilter.add(new Match("EmpPosID", empPos.EmpPosID)); empHierarchyFilter.add(new Match("HLevelID", hLevel.HLevelID)); ArrayList empHierarchyList = EEmpHierarchy.db.select(dbConn, empHierarchyFilter); if (empHierarchyList.Count > 0) { EEmpHierarchy empHierarchy = (EEmpHierarchy)empHierarchyList[0]; EHierarchyElement hElement = new EHierarchyElement(); hElement.HElementID = empHierarchy.HElementID; if (EHierarchyElement.db.select(dbConn, hElement)) { detailRow.CreateCell(HIERARCHYLEVEL_COLUMN + levelIndex).SetCellValue(hElement.HElementDesc); } } } EPosition position = new EPosition(); position.PositionID = empPos.PositionID; if (EPosition.db.select(dbConn, position)) { detailRow.CreateCell(POSITION_COLUMN).SetCellValue(position.PositionDesc); } } detailRow.CreateCell(EMPNO_COLUMN).SetCellValue(empInfo.EmpNo); detailRow.CreateCell(EMPNO_COLUMN + 1).SetCellValue(empInfo.EmpEngFullName); detailRow.CreateCell(EMPNO_COLUMN + 2).SetCellValue(empInfo.EmpAlias); detailRow.CreateCell(EMPNO_COLUMN + 3).SetCellValue(empInfo.EmpChiFullName); DBFilter rosterTableFilter = new DBFilter(); rosterTableFilter.add(new Match("EmpID", empInfo.EmpID)); rosterTableFilter.add(new Match("RosterTableDate", ">=", dateStart)); rosterTableFilter.add(new Match("RosterTableDate", "<=", dateEnd)); ArrayList rosterTableList = ERosterTable.db.select(dbConn, rosterTableFilter); foreach (ERosterTable rosterTable in rosterTableList) { ERosterCode rosterCode = new ERosterCode(); rosterCode.RosterCodeID = rosterTable.RosterCodeID; if (ERosterCode.db.select(dbConn, rosterCode)) { string value = string.Empty; //if (workSheet.Rows[(ushort)(HEADER_ROW + recordCount)].CellExists ((ushort)(ROSTAER_DETAIL_COLUMN + rosterTable.RosterTableDate.Day - 1)) ) // value = workSheet.Rows[(ushort)(HEADER_ROW+ recordCount)].CellAtCol( (ushort)(ROSTAER_DETAIL_COLUMN + rosterTable.RosterTableDate.Day - 1)).Value.ToString(); //if (string.IsNullOrEmpty(value)) // workSheet.Cells.Add(HEADER_ROW + recordCount, ROSTAER_DETAIL_COLUMN + rosterTable.RosterTableDate.Day - 1,rosterCode.RosterCode); //else // workSheet.Cells.Add(HEADER_ROW + recordCount, ROSTAER_DETAIL_COLUMN + rosterTable.RosterTableDate.Day - 1,value + "|" + rosterCode.RosterCode); int cellColIndex = ROSTER_DETAIL_COLUMN + rosterTable.RosterTableDate.Day - 1; NPOI.HSSF.UserModel.HSSFCell rosterCell = (NPOI.HSSF.UserModel.HSSFCell)detailRow.GetCell(cellColIndex); if (rosterCell == null) { rosterCell = (NPOI.HSSF.UserModel.HSSFCell)detailRow.CreateCell(cellColIndex); } else { value = rosterCell.StringCellValue; } string rosterCodeValue = rosterCode.RosterCode; if (!rosterTable.RosterTableOverrideInTime.Ticks.Equals(0) || !rosterTable.RosterTableOverrideOutTime.Ticks.Equals(0)) { DateTime inTime = rosterCode.RosterCodeInTime; DateTime outTime = rosterCode.RosterCodeOutTime; if (!rosterTable.RosterTableOverrideInTime.Ticks.Equals(0)) { inTime = rosterTable.RosterTableOverrideInTime; } if (!rosterTable.RosterTableOverrideOutTime.Ticks.Equals(0)) { outTime = rosterTable.RosterTableOverrideOutTime; } rosterCodeValue += "(" + inTime.ToString("HHmm") + "~" + outTime.ToString("HHmm") + ")"; } if (string.IsNullOrEmpty(value)) { rosterCell.SetCellValue(rosterCodeValue); //if (!string.IsNullOrEmpty(rosterCode.RosterCodeColorCode)) //{ // //System.Drawing.Color color = System.Drawing.ColorTranslator.FromHtml(rosterCode.RosterCodeColorCode); // //System.Drawing.Color fontcolor = WebUtils.ComputeTextColor(color); // //rosterCell.CellStyle.FillForegroundColor = workBook.GetCustomPalette().FindSimilarColor(color.R, color.G, color.B).GetIndex(); // //rosterCell.CellStyle.FillPattern = NPOI.SS.UserModel.FillPatternType.SOLID_FOREGROUND; // //rosterCell.CellStyle.FillBackgroundColor = workBook.GetCustomPalette().FindSimilarColor(fontcolor.R, fontcolor.G, fontcolor.B).GetIndex(); // string styleCode = "RosterCode" + "_" + rosterCode.RosterCode; // if (styleList.Contains(styleCode)) // rosterCell.CellStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)styleList[styleCode]; // else // { // NPOI.HSSF.UserModel.HSSFCellStyle rosterCodeStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workBook.CreateCellStyle(); // System.Drawing.Color color = System.Drawing.ColorTranslator.FromHtml(rosterCode.RosterCodeColorCode); // System.Drawing.Color fontcolor = WebUtils.ComputeTextColor(color); // rosterCodeStyle.FillForegroundColor = workBook.GetCustomPalette().FindSimilarColor(color.R, color.G, color.B).GetIndex(); // rosterCodeStyle.FillPattern = NPOI.SS.UserModel.FillPatternType.SOLID_FOREGROUND; // rosterCodeStyle.FillBackgroundColor = workBook.GetCustomPalette().FindSimilarColor(fontcolor.R, fontcolor.G, fontcolor.B).GetIndex(); // styleList.Add(styleCode, rosterCodeStyle); // rosterCell.CellStyle = rosterCodeStyle; // } //} } else { rosterCell.SetCellValue(value + "|" + rosterCodeValue); //rosterCell.CellStyle=workBook.GetCellStyleAt(0); } } } for (DateTime dateIndex = dateStart; dateIndex <= dateEnd; dateIndex = dateIndex.AddDays(1)) { string value = string.Empty; //if (workSheet.Rows[(ushort)(HEADER_ROW + recordCount)].CellExists((ushort)(ROSTAER_DETAIL_COLUMN + dateIndex.Day - 1)) ) // value = workSheet.Rows[(ushort)(HEADER_ROW + recordCount)].CellAtCol((ushort)(ROSTAER_DETAIL_COLUMN + dateIndex.Day - 1)).Value.ToString(); int cellColIndex = ROSTER_DETAIL_COLUMN + dateIndex.Day - 1; NPOI.HSSF.UserModel.HSSFCell rosterCell = (NPOI.HSSF.UserModel.HSSFCell)detailRow.GetCell(cellColIndex); if (rosterCell == null) { rosterCell = (NPOI.HSSF.UserModel.HSSFCell)detailRow.CreateCell(cellColIndex); } else { value = rosterCell.StringCellValue; } if (string.IsNullOrEmpty(value)) { EEmpPositionInfo empPosInfo = AppUtils.GetLastPositionInfo(dbConn, dateIndex, empInfo.EmpID); if (empPosInfo != null) { if ((empPosInfo.EmpPosEffTo.Ticks.Equals(0) || dateIndex <= empPosInfo.EmpPosEffTo)) { EWorkHourPattern workPattern = new EWorkHourPattern(); workPattern.WorkHourPatternID = empPosInfo.WorkHourPatternID; if (EWorkHourPattern.db.select(dbConn, workPattern)) { ERosterCode rosterCode = new ERosterCode(); rosterCode.RosterCodeID = workPattern.GetDefaultRosterCodeID(dbConn, dateIndex); if (ERosterCode.db.select(dbConn, rosterCode)) { //workSheet.Cells.Add(HEADER_ROW + recordCount, ROSTAER_DETAIL_COLUMN + dateIndex.Day - 1, rosterCode.RosterCode); rosterCell.SetCellValue(rosterCode.RosterCode); } } DBFilter empRosterTableGroupListFilter = new DBFilter(); empRosterTableGroupListFilter.add(new Match("EmpID", empInfo.EmpID)); empRosterTableGroupListFilter.add(new Match("empRosterTableGroupEffFr", "<=", dateIndex)); OR orEmpPosEffToTerms = new OR(); orEmpPosEffToTerms.add(new Match("empRosterTableGroupEffTo", ">=", dateIndex)); orEmpPosEffToTerms.add(new NullTerm("empRosterTableGroupEffTo")); empRosterTableGroupListFilter.add(orEmpPosEffToTerms); ArrayList empRosterTableGroupList = EEmpRosterTableGroup.db.select(dbConn, empRosterTableGroupListFilter); foreach (EEmpRosterTableGroup empRosterTableGroup in empRosterTableGroupList) { ERosterTableGroup rosterTableGroup = new ERosterTableGroup(); rosterTableGroup.RosterTableGroupID = empRosterTableGroup.RosterTableGroupID; if (ERosterTableGroup.db.select(dbConn, rosterTableGroup)) { if (rosterTableGroup.RosterClientSiteID > 0) { if (!availableRosterClientSiteList.Contains(rosterTableGroup.RosterClientSiteID)) { availableRosterClientSiteList.Add(rosterTableGroup.RosterClientSiteID); } } else if (rosterTableGroup.RosterClientID > 0) { if (!availableRosterClientList.Contains(rosterTableGroup.RosterClientID)) { availableRosterClientList.Add(rosterTableGroup.RosterClientID); } } } } } } } } DBFilter leaveAppFilter = new DBFilter(); leaveAppFilter.add(new Match("EmpID", empInfo.EmpID)); leaveAppFilter.add(new Match("LeaveAppDateTo", ">=", dateStart)); leaveAppFilter.add(new Match("LeaveAppDateFrom", "<=", dateEnd)); ArrayList leaveAppList = ELeaveApplication.db.select(dbConn, leaveAppFilter); foreach (ELeaveApplication leaveApp in leaveAppList) { ELeaveCode leaveCode = new ELeaveCode(); leaveCode.LeaveCodeID = leaveApp.LeaveCodeID; if (ELeaveCode.db.select(dbConn, leaveCode)) { //if (leaveCode.LeaveCodeColorCode.Length == 6) //{ // try // { // int red = System.Int32.Parse(leaveCode.LeaveCodeColorCode.Substring(0, 2), System.Globalization.NumberStyles.AllowHexSpecifier); // int green = System.Int32.Parse(leaveCode.LeaveCodeColorCode.Substring(2, 2), System.Globalization.NumberStyles.AllowHexSpecifier); // int blue = System.Int32.Parse(leaveCode.LeaveCodeColorCode.Substring(4, 2), System.Globalization.NumberStyles.AllowHexSpecifier); // string Color = System.Drawing.Color.FromArgb(red, green, blue).ToKnownColor().ToString(); // for (DateTime dateIndex = leaveApp.LeaveAppDateFrom; dateIndex <= leaveApp.LeaveAppDateTo; dateIndex = dateIndex.AddDays(1)) // { // org.in2bits.MyXls.Cell cell = workSheet.Rows[(ushort)(HEADER_ROW + recordCount)].CellAtCol((ushort)(ROSTAER_DETAIL_COLUMN + dateIndex.Day - 1)); // //cell.Pattern = 1; // //cell.PatternColor = org.in2bits.MyXls.Colors.Yellow; // } // } // catch // { // } //} } } } } #endregion #region Create Roster Code Liet OR orRosterCodeTerm = new OR(); foreach (int rosterClientID in availableRosterClientList) { AND andRosterCodeTerms = new AND(); orRosterCodeTerm.add(new Match("RosterClientID", rosterClientID)); } foreach (int rosterClientSiteID in availableRosterClientSiteList) { AND andRosterCodeTerms = new AND(); orRosterCodeTerm.add(new Match("RosterClientSiteID", rosterClientSiteID)); } orRosterCodeTerm.add(new Match("RosterClientID", 0)); DBFilter rosterCodeListFilter = new DBFilter(); rosterCodeListFilter.add(orRosterCodeTerm); rosterCodeListFilter.add("RosterCode", true); ArrayList rosterCodeList = ERosterCode.db.select(dbConn, rosterCodeListFilter); int ROSTER_CODE_START_ROW = COLUMN_HEADER_ROW + recordCount + 5; int rosterCodeCount = 0; int maxColumnCount = 3; int columnCellWidth = 9; int maxRowCount = (int)(rosterCodeList.Count / maxColumnCount) + (rosterCodeList.Count % maxColumnCount == 0 ? 0 : 1); foreach (ERosterCode rosterCode in rosterCodeList) { int currentRowNum = rosterCodeCount % maxRowCount; int currentColumnNum = (rosterCodeCount / maxRowCount) * columnCellWidth; rosterCodeCount++; NPOI.HSSF.UserModel.HSSFRow rosterCodeRow = (NPOI.HSSF.UserModel.HSSFRow)workSheet.GetRow(ROSTER_CODE_START_ROW + currentRowNum); if (rosterCodeRow == null) { rosterCodeRow = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow(ROSTER_CODE_START_ROW + currentRowNum); } NPOI.HSSF.UserModel.HSSFCell rosterCell = (NPOI.HSSF.UserModel.HSSFCell)rosterCodeRow.CreateCell(ROSTER_DETAIL_COLUMN + currentColumnNum); rosterCell.SetCellValue(rosterCode.RosterCode); rosterCell = (NPOI.HSSF.UserModel.HSSFCell)rosterCodeRow.CreateCell(ROSTER_DETAIL_COLUMN + currentColumnNum + 1); rosterCell.SetCellValue(rosterCode.RosterCodeDesc); if (rosterCodeCount.Equals(1)) { rosterCell = (NPOI.HSSF.UserModel.HSSFCell)rosterCodeRow.CreateCell(ROSTER_DETAIL_COLUMN - 1); rosterCell.SetCellValue("Code:"); } } for (int rowIdx = ROSTER_CODE_START_ROW - 1; rowIdx < ROSTER_CODE_START_ROW + maxRowCount + 1; rowIdx++) { NPOI.HSSF.UserModel.HSSFRow rosterCodeRow = (NPOI.HSSF.UserModel.HSSFRow)workSheet.GetRow(rowIdx); if (rosterCodeRow == null) { rosterCodeRow = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow(rowIdx); } if (rowIdx == ROSTER_CODE_START_ROW - 1) { for (int colIdx = ROSTER_DETAIL_COLUMN - 1; colIdx < ROSTER_DETAIL_COLUMN + maxColumnCount * columnCellWidth; colIdx++) { NPOI.HSSF.UserModel.HSSFCell rosterCell = (NPOI.HSSF.UserModel.HSSFCell)rosterCodeRow.GetCell(colIdx); if (rosterCell == null) { rosterCell = (NPOI.HSSF.UserModel.HSSFCell)rosterCodeRow.CreateCell(colIdx); } if (colIdx == ROSTER_DETAIL_COLUMN - 1) { rosterCell.CellStyle = upperLeftLineStyle; } else if (colIdx == ROSTER_DETAIL_COLUMN + maxColumnCount * columnCellWidth - 1) { rosterCell.CellStyle = upperRightLineStyle; } else { rosterCell.CellStyle = upperLineStyle; } } } else if (rowIdx == ROSTER_CODE_START_ROW + maxRowCount) { for (int colIdx = ROSTER_DETAIL_COLUMN - 1; colIdx < ROSTER_DETAIL_COLUMN + maxColumnCount * columnCellWidth; colIdx++) { NPOI.HSSF.UserModel.HSSFCell rosterCell = (NPOI.HSSF.UserModel.HSSFCell)rosterCodeRow.GetCell(colIdx); if (rosterCell == null) { rosterCell = (NPOI.HSSF.UserModel.HSSFCell)rosterCodeRow.CreateCell(colIdx); } if (colIdx == ROSTER_DETAIL_COLUMN - 1) { rosterCell.CellStyle = bottomLeftLineStyle; } else if (colIdx == ROSTER_DETAIL_COLUMN + maxColumnCount * columnCellWidth - 1) { rosterCell.CellStyle = bottomRightLineStyle; } else { rosterCell.CellStyle = bottomLineStyle; } } } else { for (int colIdx = ROSTER_DETAIL_COLUMN - 1; colIdx < ROSTER_DETAIL_COLUMN + maxColumnCount * columnCellWidth; colIdx++) { NPOI.HSSF.UserModel.HSSFCell rosterCell = (NPOI.HSSF.UserModel.HSSFCell)rosterCodeRow.GetCell(colIdx); if (rosterCell == null) { rosterCell = (NPOI.HSSF.UserModel.HSSFCell)rosterCodeRow.CreateCell(colIdx); } if (colIdx == ROSTER_DETAIL_COLUMN - 1) { rosterCell.CellStyle = leftLineStyle; } else if (colIdx == ROSTER_DETAIL_COLUMN + maxColumnCount * columnCellWidth - 1) { rosterCell.CellStyle = rightLineStyle; } //else // rosterCell.CellStyle = bottomLineStyle; } } } #endregion //doc.FileName = exportFileName; //doc.Save(); System.IO.FileStream file = new System.IO.FileStream(exportFileName, System.IO.FileMode.Create); workBook.Write(file); file.Close(); WebUtils.TransmitFile(Response, exportFileName, "RosterTable_" + AppUtils.ServerDateTime().ToString("yyyyMMddHHmmss") + ".xls", true); Response.End(); }