protected void Copy_Click(object sender, EventArgs e) { int new_CurID = -1; EPayrollGroup o = new EPayrollGroup(); o.PayGroupID = CurID; if (EPayrollGroup.db.select(dbConn, o)) { EPayrollGroup newPayrollGroup = o.Copy(dbConn); EPayrollPeriod oldCurrentPayrollPeriod = new EPayrollPeriod(); oldCurrentPayrollPeriod.PayPeriodID = o.CurrentPayPeriodID; if (EPayrollPeriod.db.select(dbConn, oldCurrentPayrollPeriod)) { EPayrollPeriod newPayPeriod = oldCurrentPayrollPeriod.Copy(dbConn, newPayrollGroup.PayGroupID); newPayrollGroup.CurrentPayPeriodID = newPayPeriod.PayPeriodID; EPayrollGroup.db.update(dbConn, newPayrollGroup); new_CurID = newPayrollGroup.PayGroupID; } // Start 0000069, Ricky So, 2014-08-08 DBFilter m_filter = new DBFilter(); m_filter.add(new Match("PayGroupID", CurID)); foreach (EPayrollGroupUsers users in EPayrollGroupUsers.db.select(dbConn, m_filter)) { EPayrollGroupUsers new_users = new EPayrollGroupUsers(); new_users.PayGroupID = new_CurID; new_users.UserID = users.UserID; EPayrollGroupUsers.db.insert(dbConn, new_users); } // End 0000069, Ricky So, 2014-08-08 HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "Payroll_Group_View.aspx?PayGroupID=" + newPayrollGroup.PayGroupID); } }
protected bool loadObject() { obj = new EPayrollGroup(); bool isNew = WebFormWorkers.loadKeys(db, obj, DecryptedRequest); if (!db.select(dbConn, obj)) { return(false); } Hashtable values = new Hashtable(); db.populate(obj, values); binding.toControl(values); if (obj.CurrentPayPeriodID > 0) { panelEmployeeList.Visible = true; } else { panelEmployeeList.Visible = false; } return(true); }
protected void RefreshMinimumWagesInfo() { DBFilter filter = new DBFilter(); filter.add(new Match("EmpPayrollID", CurID)); filter.add(WebUtils.AddRankFilter(Session, "EmpID", true)); ArrayList empPayrollList = EEmpPayroll.db.select(dbConn, filter); if (empPayrollList.Count == 0) { TotalWagesForMinimumWages.Text = string.Empty; MinimumWagesRequired.Text = string.Empty; return; } EEmpPayroll empPayroll = (EEmpPayroll)empPayrollList[0]; double dblTotalWagesForMinimumWages = 0; double dblMinimumWagesRequired = 0; EPayrollPeriod payPeriod = new EPayrollPeriod(); payPeriod.PayPeriodID = empPayroll.PayPeriodID; if (EPayrollPeriod.db.select(dbConn, payPeriod)) { dblTotalWagesForMinimumWages = HROne.Payroll.PayrollProcess.GetTotalWagesWithoutRestDayPayment(dbConn, empPayroll.EmpID, payPeriod.PayPeriodFr, payPeriod.PayPeriodTo, null); } double totalWorkingHour = HROne.Payroll.PayrollProcess.GetTotalEmpPayrollWorkingHours(dbConn, empPayroll.EmpID, empPayroll.PayPeriodID); lblTotalWorkingHours.Text = totalWorkingHour.ToString(); dblMinimumWagesRequired = ((double)(HROne.Payroll.PayrollProcess.GetMinimumWages(dbConn, empPayroll.EmpID, payPeriod.PayPeriodTo) * totalWorkingHour)); TotalWagesForMinimumWages.Text = dblTotalWagesForMinimumWages.ToString("#,##0.00"); MinimumWagesRequired.Text = dblMinimumWagesRequired.ToString("#,##0.00"); if (dblMinimumWagesRequired - dblTotalWagesForMinimumWages <= 0.01) { btnAddAdditionalRemuneration.Visible = false; } else { EPayrollGroup payGroup = new EPayrollGroup(); payGroup.PayGroupID = payPeriod.PayGroupID; if (EPayrollGroup.db.select(dbConn, payGroup)) { if (payGroup.PayGroupAdditionalRemunerationPayCodeID > 0) { btnAddAdditionalRemuneration.Visible = true & toolBar.EditButton_Visible; } else { btnAddAdditionalRemuneration.Visible = false; } } else { btnAddAdditionalRemuneration.Visible = false; } } }
protected void Copy_Click(object sender, EventArgs e) { ArrayList list = WebUtils.SelectedRepeaterItemToBaseObjectList(db, Repeater, "ItemSelect"); foreach (EPayrollGroup o in list) { if (EPayrollGroup.db.select(dbConn, o)) { EPayrollGroup newPayrollGroup = o.Copy(dbConn); EPayrollPeriod oldCurrentPayrollPeriod = new EPayrollPeriod(); oldCurrentPayrollPeriod.PayPeriodID = o.CurrentPayPeriodID; if (EPayrollPeriod.db.select(dbConn, oldCurrentPayrollPeriod)) { EPayrollPeriod newPayPeriod = oldCurrentPayrollPeriod.Copy(dbConn, newPayrollGroup.PayGroupID); newPayrollGroup.CurrentPayPeriodID = newPayPeriod.PayPeriodID; EPayrollGroup.db.update(dbConn, newPayrollGroup); } // Start 0000069, Ricky So, 2014-08-08 DBFilter m_filter = new DBFilter(); m_filter.add(new Match("PayGroupID", o.PayGroupID)); foreach (EPayrollGroupUsers users in EPayrollGroupUsers.db.select(dbConn, m_filter)) { EPayrollGroupUsers new_users = new EPayrollGroupUsers(); new_users.PayGroupID = newPayrollGroup.PayGroupID; new_users.UserID = users.UserID; EPayrollGroupUsers.db.insert(dbConn, new_users); } // End 0000069, Ricky So, 2014-08-08 } } loadData(info, db, Repeater); }
protected DataTable loadExtraData(DataTable sourceTable) { DataTable destTable = sourceTable.Copy(); destTable.Columns.Add("CompanyCode", typeof(string)); destTable.Columns.Add("BusinessHierarchy", typeof(string)); destTable.Columns.Add("PositionCode", typeof(string)); destTable.Columns.Add("RankCode", typeof(string)); destTable.Columns.Add("StaffTypeCode", typeof(string)); destTable.Columns.Add("LeavePlanCode", typeof(string)); destTable.Columns.Add("PayGroupCode", typeof(string)); foreach (DataRow row in destTable.Rows) { EEmpPositionInfo empPos = EEmpPositionInfo.GetObject(dbConn, row["EmpPosID"]); if (empPos != null) { ECompany company = ECompany.GetObject(dbConn, row["CompanyID"]); if (company != null) { row["CompanyCode"] = company.CompanyCode; } row["BusinessHierarchy"] = empPos.GetBusinessHierarchyString(dbConn); EPosition position = EPosition.GetObject(dbConn, row["PositionID"]); if (position != null) { row["PositionCode"] = position.PositionCode; } ERank rank = ERank.GetObject(dbConn, row["RankID"]); if (rank != null) { row["RankCode"] = rank.RankCode; } EStaffType staffType = EStaffType.GetObject(dbConn, row["StaffTypeID"]); if (staffType != null) { row["StaffTypeCode"] = staffType.StaffTypeCode; } ELeavePlan leavePlan = ELeavePlan.GetObject(dbConn, row["LeavePlanID"]); if (leavePlan != null) { row["LeavePlanCode"] = leavePlan.LeavePlanCode; } EPayrollGroup payGroup = EPayrollGroup.GetObject(dbConn, (int)row["PayGroupID"]); if (payGroup != null) { row["PayGroupCode"] = payGroup.PayGroupCode; } } } return(destTable); }
// End 0000185, KuangWei, 2015-05-05 private DataSet.HeadCountSummarySet.HeadCountSummaryRow CreateHeadCountRow(int EmpPosID) { DataSet.HeadCountSummarySet.HeadCountSummaryRow row = dataSet.HeadCountSummary.NewHeadCountSummaryRow(); EEmpPositionInfo empPos = new EEmpPositionInfo(); empPos.EmpPosID = EmpPosID; if (EEmpPositionInfo.db.select(dbConn, empPos)) { row.EmpID = empPos.EmpID; EEmpPersonalInfo empInfo = new EEmpPersonalInfo(); empInfo.EmpID = empPos.EmpID; if (EEmpPersonalInfo.db.select(dbConn, empInfo)) { row.EmpGender = empInfo.EmpGender; row.EmpAreaCode = empInfo.EmpResAddrAreaCode; ECompany company = new ECompany(); company.CompanyID = empPos.CompanyID; if (ECompany.db.select(dbConn, company)) { row.CompanyID = company.CompanyID; row.CompanyCode = company.CompanyCode; row.CompanyName = company.CompanyName; } EPayrollGroup payGroup = new EPayrollGroup(); payGroup.PayGroupID = empPos.PayGroupID; if (EPayrollGroup.db.select(dbConn, payGroup)) { row.PayGroupID = payGroup.PayGroupID; row.PayGroupCode = payGroup.PayGroupCode; row.PayGroupDesc = payGroup.PayGroupDesc; } EHierarchyElement hElement = getHierarchyElement(EmpPosID); if (hElement != null) { row.HElementID = hElement.HElementID; row.HElementCode = hElement.HElementCode; row.HElementDesc = hElement.HElementDesc; } else { row.HElementID = 0; row.HElementCode = " "; row.HElementDesc = " "; } } } row.PreviousCount = 0; row.CurrentCount = 0; row.NewJoinCount = 0; row.TerminateCount = 0; row.TransferInCount = 0; row.TransferOutCount = 0; return(row); }
protected bool loadObject() { EPayrollGroup obj = new EPayrollGroup(); bool isNew = WebFormWorkers.loadKeys(db, obj, DecryptedRequest); if (!db.select(dbConn, obj)) { return(false); } Hashtable values = new Hashtable(); db.populate(obj, values); binding.toControl(values); if (CurPayPeriodID <= 0) { CurPayPeriodID = obj.CurrentPayPeriodID; } PayPeriodID.SelectedValue = CurPayPeriodID.ToString(); ucPayroll_PeriodInfo.CurrentPayPeriodID = CurPayPeriodID; if (CurPayPeriodID > 0) { EPayrollPeriod payPeriod = new EPayrollPeriod(); payPeriod.PayPeriodID = CurPayPeriodID; if (EPayrollPeriod.db.select(dbConn, payPeriod)) { if (payPeriod.PayPeriodStatus.Equals("N")) { PayPeriodEdit.Visible = true; } else { PayPeriodEdit.Visible = false; } } } StatutoryHolidayOptionSection.Visible = !obj.PayGroupIsSkipStatHol; if (string.IsNullOrEmpty(obj.PayGroupFreq) || obj.PayGroupFreq.Equals("M", StringComparison.CurrentCultureIgnoreCase)) { SemiMonthlyDayOptionsRow.Visible = false; } else { SemiMonthlyDayOptionsRow.Visible = true; } return(true); }
protected bool loadObject() { obj = new EPayrollGroup(); obj.PayGroupID = CurID; EPayrollGroup.db.select(dbConn, obj); //if (!EPayrollGroup.db.select(dbConn, obj)) //return false; Hashtable values = new Hashtable(); EPayrollGroup.db.populate(obj, values); binding.toControl(values); ListItem selectedPayPeriod = PayPeriodID.Items.FindByValue(CurPayPeriodID.ToString()); if (selectedPayPeriod != null) { PayPeriodID.SelectedValue = selectedPayPeriod.Value; } else { CurPayPeriodID = obj.CurrentPayPeriodID; selectedPayPeriod = PayPeriodID.Items.FindByValue(CurPayPeriodID.ToString()); if (selectedPayPeriod != null) { PayPeriodID.SelectedValue = selectedPayPeriod.Value; } else { CurPayPeriodID = 0; } } ucPayroll_PeriodInfo.CurrentPayPeriodID = CurPayPeriodID; if (CurPayPeriodID > 0) { panelPayPeriod.Visible = true; panelCostAllocationAdjustmentDetail.Visible = true; } else { panelPayPeriod.Visible = false; panelCostAllocationAdjustmentDetail.Visible = false; } return(true); }
// End 0000069, KuangWei, 2014-08-26 protected bool loadObject() { obj = new EPayrollGroup(); obj.PayGroupID = CurID; db.select(dbConn, obj); //if (!db.select(dbConn, obj)) //return false; Hashtable values = new Hashtable(); db.populate(obj, values); binding.toControl(values); try { PayPeriodID.SelectedValue = CurPayPeriodID.ToString(); } catch { CurPayPeriodID = 0; } if (CurPayPeriodID <= 0 && obj.CurrentPayPeriodID > 0) { CurPayPeriodID = obj.CurrentPayPeriodID; try { PayPeriodID.SelectedValue = CurPayPeriodID.ToString(); } catch { CurPayPeriodID = 0; } } ucPayroll_PeriodInfo.CurrentPayPeriodID = CurPayPeriodID; if (CurPayPeriodID > 0) { panelPayPeriod.Visible = true; panelNotConfirmEmployeeList.Visible = false; panelNotTrialRunEmployeeList.Visible = false; } else { panelPayPeriod.Visible = false; } return(true); }
protected bool loadObject() { EPayrollGroup obj = new EPayrollGroup(); 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); }
protected bool loadObject() { obj = new EPayrollGroup(); WebFormWorkers.loadKeys(db, obj, DecryptedRequest); Hashtable values = new Hashtable(); db.populate(obj, values); binding.toControl(values); DBFilter filter = new DBFilter(); filter.add(new Match("PayGroupID", CurID)); ArrayList list = EPayrollGroupUsers.db.select(dbConn, filter); foreach (EPayrollGroupUsers o in list) { CurUsers.Add(o.UserID, o); } return(true); }
protected bool loadObject() { obj = new EPayrollPeriod(); bool isNew = WebFormWorkers.loadKeys(db, obj, DecryptedRequest); if (!db.select(dbConn, obj)) { return(false); } Hashtable values = new Hashtable(); db.populate(obj, values); binding.toControl(values); if (!obj.PayPeriodStatus.Equals("N")) { toolBar.SaveButton_Visible = false; toolBar.DeleteButton_Visible = false; } if (obj.PayGroupID > 0) { EPayrollGroup payGroup = new EPayrollGroup(); payGroup.PayGroupID = obj.PayGroupID; HiddenPayGroupID.Value = obj.PayGroupID.ToString(); if (EPayrollGroup.db.select(dbConn, payGroup)) { if (payGroup.CurrentPayPeriodID == obj.PayPeriodID) { toolBar.DeleteButton_Visible = false; } } } return(true); }
protected void Page_Load(object sender, EventArgs e) { if (!WebUtils.CheckAccess(Response, Session, FUNCTION_CODE, WebUtils.AccessLevel.Read)) { return; } if (!WebUtils.CheckPermission(Session, FUNCTION_CODE, WebUtils.AccessLevel.ReadWrite)) { IsAllowEdit = false; ConfirmPayrollSelectAllPanel.Visible = false; } binding = new Binding(dbConn, db); // Start 0000069, KuangWei, 2014-08-27 //binding.add(new DropDownVLBinder(EPayrollGroup.db, PayGroupID, EPayrollGroup.VLPayrollGroup)); initPayrollGroup(); // End 0000069, KuangWei, 2014-08-27 binding.add(CurrentPayPeriodID); // Start 0000069, KuangWei, 2014-08-27 //DBFilter payPeriodFilter = new DBFilter(); //if (!int.TryParse(PayGroupID.SelectedValue, out CurID)) // if (!int.TryParse(DecryptedRequest["PayGroupID"], out CurID)) // CurID = -1; //payPeriodFilter.add(new Match("PayGroupID", CurID)); //payPeriodFilter.add("PayPeriodFr", false); //DBFilter empPayrollFilter = new DBFilter(); //empPayrollFilter.add(new Match("EmpPayStatus", "C")); //empPayrollFilter.add(new IN("EmpPayrollID", "Select Distinct EmpPayrollID from " + ECostAllocation.db.dbclass.tableName, new DBFilter())); //payPeriodFilter.add(new IN("PayPeriodID", "Select Distinct PayPeriodID from " + EEmpPayroll.db.dbclass.tableName, empPayrollFilter)); //binding.add(new DropDownVLBinder(EPayrollPeriod.db, PayPeriodID, EPayrollPeriod.VLPayrollPeriod, payPeriodFilter)); // End 0000069, KuangWei, 2014-08-27 binding.init(Request, Session); sbinding = new SearchBinding(dbConn, EEmpPersonalInfo.db); if (!int.TryParse(PayPeriodID.SelectedValue, out CurPayPeriodID)) { if (!int.TryParse(DecryptedRequest["PayPeriodID"], out CurPayPeriodID)) { EPayrollGroup obj = new EPayrollGroup(); obj.PayGroupID = CurID; if (EPayrollGroup.db.select(dbConn, obj)) { CurPayPeriodID = obj.CurrentPayPeriodID; } else { CurPayPeriodID = -1; } } } info = ListFooter.ListInfo; HROne.Common.WebUtility.WebControlsLocalization(this, this.Controls); }
protected override System.Data.DataSet CreateDataSource() { const string PAYMENTCODE_PREFIX = "[Payment] "; System.Data.DataSet dataSet = new System.Data.DataSet(); //export.GetDataSet(); DataTable dataTable = new DataTable("Payroll$"); dataSet.Tables.Add(dataTable); dataTable.Columns.Add("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("Payroll Group", typeof(string)); dataTable.Columns.Add("Position", typeof(string)); dataTable.Columns.Add("EmpNo", typeof(string)); dataTable.Columns.Add("English Name", typeof(string)); dataTable.Columns.Add("Chinese Name", typeof(string)); dataTable.Columns.Add("HKID", typeof(string)); dataTable.Columns.Add("From", typeof(DateTime)); dataTable.Columns.Add("To", typeof(DateTime)); int firstSummaryColumnPos = dataTable.Columns.Count; dataTable.Columns.Add("Net Payment", typeof(double)); dataTable.Columns.Add("Relevant Income", typeof(double)); dataTable.Columns.Add("Non-Relevant Income", typeof(double)); dataTable.Columns.Add("Wages Payable for Min Wages", typeof(double)); dataTable.Columns.Add("Total Hours Worked", typeof(double)); dataTable.Columns.Add("Min Wages Required", typeof(double)); dataTable.Columns.Add("Employer Mandatory Contribution", typeof(double)); // dataTable.Columns.Add("Employee Mandatory Contribution", typeof(double)); dataTable.Columns.Add("Employer Voluntary Contribution", typeof(double)); // dataTable.Columns.Add("Employee Voluntary Contribution", typeof(double)); dataTable.Columns.Add("Employer P-Fund Contribution", typeof(double)); // dataTable.Columns.Add("Employee P-Fund Contribution", typeof(double)); dataTable.Columns.Add("Total Employer Contribution", typeof(double)); dataTable.Columns.Add("Total Employee Contribution", typeof(double)); dataTable.Columns.Add("Total Taxable Payment", typeof(double)); dataTable.Columns.Add("Total Non-Taxable Payment", typeof(double)); int firstDetailColumnPos = dataTable.Columns.Count; foreach (EEmpPersonalInfo empInfo in EmpList) { EEmpPersonalInfo.db.select(dbConn, empInfo); //DBFilter empPayrollFilterForPayrollPeriod = new DBFilter(); //empPayrollFilterForPayrollPeriod.add(new Match("ep.EmpID", empInfo.EmpID)); //empPayrollFilterForPayrollPeriod.add(Payroll_PeriodSelectionList1.GetEmpPayrollDBTerm()); //DBFilter payPeriodFilter = new DBFilter(); //payPeriodFilter.add(new IN("PayPeriodID", "SELECT PayPeriodID from " + EEmpPayroll.db.dbclass.tableName + " ep", empPayrollFilterForPayrollPeriod)); //ArrayList payPeriodList = EPayrollPeriod.db.select(dbConn, payPeriodFilter); if (PayPeriodList == null) { OR orPayBatchIDTerms = new OR(); foreach (EPayrollBatch payBatch in PayBatchList) { orPayBatchIDTerms.add(new Match("ep.PayBatchID", payBatch.PayBatchID)); } DBFilter empPayrollFilter = new DBFilter(); empPayrollFilter.add(orPayBatchIDTerms); DBFilter payPeriodFilter = new DBFilter(); payPeriodFilter.add(new IN(EPayrollPeriod.db.dbclass.tableName + ".PayPeriodID ", "SELECT DISTINCT PayPeriodID FROM " + EEmpPayroll.db.dbclass.tableName + " ep", empPayrollFilter)); PayPeriodList = EPayrollPeriod.db.select(dbConn, payPeriodFilter); } foreach (EPayrollPeriod payPeriod in PayPeriodList) { DBFilter empPayrollFilter = new DBFilter(); empPayrollFilter.add(new Match("EmpID", empInfo.EmpID)); if (reportType.Equals(ReportType.TrialRun)) { empPayrollFilter.add(new Match("EmpPayStatus", "=", "T")); } else { empPayrollFilter.add(new Match("EmpPayStatus", "<>", "T")); } if (PayBatchList != null) { OR orPayrollBatch = new OR(); foreach (EPayrollBatch payrollBatch in PayBatchList) { orPayrollBatch.add(new Match("PayBatchID", payrollBatch.PayBatchID)); } empPayrollFilter.add(orPayrollBatch); } empPayrollFilter.add(new Match("PayPeriodID", payPeriod.PayPeriodID)); // Check if the EmpPayroll record for that payroll period exists if (EEmpPayroll.db.count(dbConn, empPayrollFilter) > 0 && EPayrollPeriod.db.select(dbConn, payPeriod)) { EPayrollGroup payrollGroup = new EPayrollGroup(); payrollGroup.PayGroupID = payPeriod.PayGroupID; EPayrollGroup.db.select(dbConn, payrollGroup); DataRow row = dataTable.NewRow(); row["EmpNo"] = empInfo.EmpNo; row["English Name"] = empInfo.EmpEngFullName; row["Chinese Name"] = empInfo.EmpChiFullName; row["HKID"] = empInfo.EmpHKID; row["From"] = payPeriod.PayPeriodFr; row["To"] = payPeriod.PayPeriodTo; row["Payroll Group"] = payrollGroup.PayGroupDesc; 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["Company"] = company.CompanyCode; } 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; } } } EPosition position = new EPosition(); position.PositionID = empPos.PositionID; if (EPosition.db.select(dbConn, position)) { row["Position"] = position.PositionDesc; } } 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; //DBFilter empPayrollFilterForPaymentRecord = new DBFilter(empPayrollFilterForPayrollPeriod); //empPayrollFilterForPaymentRecord.add(new Match("PayPeriodID", payPeriod.PayPeriodID)); //DBFilter paymentRecordFilter = new DBFilter(); //paymentRecordFilter.add(new IN("EmpPayrollID", "Select EmpPayrollID from " + EEmpPayroll.db.dbclass.tableName + " ep ", empPayrollFilterForPaymentRecord)); //paymentRecordFilter.add(new Match("PayRecStatus", "A")); IN inEmpPayroll = new IN("EmpPayrollID", "Select ep.EmpPayrollID from " + EEmpPayroll.db.dbclass.tableName + " ep", empPayrollFilter); DBFilter empPayrollFilterForPaymentRecord = new DBFilter(); empPayrollFilterForPaymentRecord.add(inEmpPayroll); ArrayList paymentRecords = EPaymentRecord.db.select(dbConn, empPayrollFilterForPaymentRecord); 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; } } row["Net Payment"] = HROne.CommonLib.GenericRoundingFunctions.RoundingTo(netAmount, ExchangeCurrency.DefaultCurrencyDecimalPlaces(), ExchangeCurrency.DefaultCurrencyDecimalPlaces()); row["Relevant Income"] = HROne.CommonLib.GenericRoundingFunctions.RoundingTo(releventIncome, ExchangeCurrency.DefaultCurrencyDecimalPlaces(), ExchangeCurrency.DefaultCurrencyDecimalPlaces()); row["Non-Relevant Income"] = HROne.CommonLib.GenericRoundingFunctions.RoundingTo(nonRelevantIncome, ExchangeCurrency.DefaultCurrencyDecimalPlaces(), ExchangeCurrency.DefaultCurrencyDecimalPlaces()); row["Wages Payable for Min Wages"] = HROne.Payroll.PayrollProcess.GetTotalWagesWithoutRestDayPayment(dbConn, empInfo.EmpID, payPeriod.PayPeriodFr, payPeriod.PayPeriodTo, null); row["Total Hours Worked"] = HROne.Payroll.PayrollProcess.GetTotalEmpPayrollWorkingHours(dbConn, empInfo.EmpID, payPeriod.PayPeriodID); row["Min Wages Required"] = (double)row["Total Hours Worked"] * HROne.Payroll.PayrollProcess.GetMinimumWages(dbConn, empInfo.EmpID, payPeriod.PayPeriodTo); row["Total Taxable Payment"] = HROne.CommonLib.GenericRoundingFunctions.RoundingTo(taxableAmount, ExchangeCurrency.DefaultCurrencyDecimalPlaces(), ExchangeCurrency.DefaultCurrencyDecimalPlaces()); row["Total Non-Taxable Payment"] = HROne.CommonLib.GenericRoundingFunctions.RoundingTo(nonTaxableAmount, ExchangeCurrency.DefaultCurrencyDecimalPlaces(), ExchangeCurrency.DefaultCurrencyDecimalPlaces()); ArrayList mpfRecords = EMPFRecord.db.select(dbConn, empPayrollFilterForPaymentRecord); foreach (EMPFRecord mpfRecord in mpfRecords) { vcER += mpfRecord.MPFRecActVCER; mcER += +mpfRecord.MPFRecActMCER; vcEE += mpfRecord.MPFRecActVCEE; mcEE += mpfRecord.MPFRecActMCEE; } ArrayList orsoRecords = EORSORecord.db.select(dbConn, empPayrollFilterForPaymentRecord); foreach (EORSORecord orsoRecord in orsoRecords) { pFundER += orsoRecord.ORSORecActER; pFundEE += orsoRecord.ORSORecActEE; } row["Employer Mandatory Contribution"] = mcER; // row["Employee Mandatory Contribution"] = mcEE; row["Employer Voluntary Contribution"] = vcER; // row["Employee Voluntary Contribution"] = vcEE; row["Employer P-Fund Contribution"] = pFundER; // row["Employee P-Fund Contribution"] = pFundEE; row["Total Employer Contribution"] = mcER + vcER + pFundER; row["Total Employee Contribution"] = mcEE + vcEE + pFundEE; 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 { System.Diagnostics.Debug.Write("System reserved payment column is used"); } } } for (int i = 0; i < firstDetailColumnPos; i++) { dataTable.Columns[i].ColumnName = HROne.Common.WebUtility.GetLocalizedString(dataTable.Columns[i].ColumnName); } for (int i = firstSummaryColumnPos; i < firstDetailColumnPos; i++) { dataTable.Columns[firstSummaryColumnPos].SetOrdinal(dataTable.Columns.Count - 1); } return(dataSet); }
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); //c.PayGroupID = CurID; ArrayList newUserList = WebUtils.SelectedRepeaterItemToBaseObjectList(EUser.db, Users, "UserSelect"); bool m_isPublic = (newUserList.Count <= 0); DBFilter notUser = new DBFilter(); notUser.add(new Match("PayGroupID", CurID)); foreach (EUser user in newUserList) { DBFilter filter = new DBFilter(); filter.add(new Match("UserID", user.UserID)); filter.add(new Match("PayGroupID", CurID)); if (EPayrollGroupUsers.db.count(dbConn, filter) <= 0) { EPayrollGroupUsers o = new EPayrollGroupUsers(); o.UserID = user.UserID; o.PayGroupID = CurID; EPayrollGroupUsers.db.insert(dbConn, o); } notUser.add(new Match("UserID", "<>", user.UserID)); } ArrayList unselectedUserList = EPayrollGroupUsers.db.select(dbConn, notUser); foreach (EPayrollGroupUsers payrollGroupUsers in unselectedUserList) { EPayrollGroupUsers.db.delete(dbConn, payrollGroupUsers); } // update payroll group IsPublic flag EPayrollGroup m_group = EPayrollGroup.GetObject(dbConn, CurID); if (m_group != null) { m_group.PayGroupIsPublic = m_isPublic; EPayrollGroup.db.update(dbConn, m_group); } HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "Payroll_Group_View.aspx?PayGroupID=" + CurID); }
// Start 0000069, KuangWei, 2014-08-28 //protected void CompanyID_SelectedIndexChanged(object sender, EventArgs e) //{ // PayGroupID.Items.Clear(); // initPayrollGroup(); // PayPeriodID.Items.Clear(); // PayPeriodID.Items.Add(new ListItem("Not Selected", "-1")); // loadObject(); //} // End 0000069, KuangWei, 2014-08-28 protected bool loadObject() { obj = new EPayrollGroup(); obj.PayGroupID = CurID; db.select(dbConn, obj); //if (!db.select(dbConn, obj)) //return false; Hashtable values = new Hashtable(); db.populate(obj, values); binding.toControl(values); ListItem selectedPayPeriod = PayPeriodID.Items.FindByValue(CurPayPeriodID.ToString()); if (selectedPayPeriod != null) { PayPeriodID.SelectedValue = selectedPayPeriod.Value; } else { CurPayPeriodID = obj.CurrentPayPeriodID; selectedPayPeriod = PayPeriodID.Items.FindByValue(CurPayPeriodID.ToString()); if (selectedPayPeriod != null) { PayPeriodID.SelectedValue = selectedPayPeriod.Value; } else { CurPayPeriodID = 0; } } ucPayroll_PeriodInfo.CurrentPayPeriodID = CurPayPeriodID; if (CurPayPeriodID > 0) { panelPayPeriod.Visible = true; panelTrialRunDetail.Visible = true; } else { panelPayPeriod.Visible = false; panelTrialRunDetail.Visible = false; } if (CurPayPeriodID > 0) { EPayrollPeriod payPeriod = new EPayrollPeriod(); payPeriod.PayPeriodID = CurPayPeriodID; if (EPayrollPeriod.db.select(dbConn, payPeriod)) { if (payPeriod.PayPeriodFr.Month.Equals(obj.PayGroupYEBStartPayrollMonth) || payPeriod.PayPeriodTo.Month.Equals(obj.PayGroupYEBStartPayrollMonth)) { cbxYearEndBonus.Visible = true; cbxYearEndBonus.Checked = true; } else { cbxYearEndBonus.Visible = false; cbxYearEndBonus.Checked = false; } } else { cbxYearEndBonus.Visible = true; cbxYearEndBonus.Checked = true; } } return(true); }
protected void Page_Load(object sender, EventArgs e) { if (!WebUtils.CheckAccess(Response, Session, "PAY004", WebUtils.AccessLevel.Read)) { return; } binding = new Binding(dbConn, db); //binding.add(new DropDownVLBinder(db,PayGroupID,EPayrollGroup.VLPayrollGroup ) ); binding.add(CurrentPayPeriodID); DBFilter payPeriodFilter = new DBFilter(); payPeriodFilter.add(new Match("PayPeriodStatus", "<>", "E")); if (!int.TryParse(PayGroupID.SelectedValue, out CurID)) { if (!int.TryParse(DecryptedRequest["PayGroupID"], out CurID)) { CurID = -1; } } payPeriodFilter.add(new Match("PayGroupID", CurID)); payPeriodFilter.add("PayPeriodFr", false); binding.add(new DropDownVLBinder(EPayrollPeriod.db, PayPeriodID, EPayrollPeriod.VLPayrollPeriod, payPeriodFilter)); binding.init(Request, Session); if (!int.TryParse(PayPeriodID.SelectedValue, out CurPayPeriodID)) { if (!int.TryParse(DecryptedRequest["PayPeriodID"], out CurPayPeriodID)) { EPayrollGroup obj = new EPayrollGroup(); obj.PayGroupID = CurID; if (EPayrollGroup.db.select(dbConn, obj)) { CurPayPeriodID = obj.CurrentPayPeriodID; } else { CurPayPeriodID = -1; } } } HROne.Common.WebUtility.WebControlsLocalization(this, this.Controls); if (!Page.IsPostBack) { if (CurID > 0) { loadObject(); } else { panelPayPeriod.Visible = false; } initPayrollGroup(); } }
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 override CrystalDecisions.CrystalReports.Engine.ReportDocument GenerateReport() { if (EmpPayrollList != null) { DataSet.PayrollTrialRunSummaryDataSet dataSet = new DataSet.PayrollTrialRunSummaryDataSet(); DataSet.PayrollTrialRunSummaryDataSet.TrialRunSummaryDataTable dataTable = dataSet.TrialRunSummary; foreach (EEmpPayroll empPayroll in EmpPayrollList) { EEmpPayroll.db.select(dbConn, empPayroll); EPayrollPeriod payPeriod = new EPayrollPeriod(); payPeriod.PayPeriodID = empPayroll.PayPeriodID; EPayrollPeriod.db.select(dbConn, payPeriod); string strPayPeriod = payPeriod.PayPeriodFr.ToString("yyyy-MM-dd") + " - " + payPeriod.PayPeriodTo.ToString("yyyy-MM-dd"); EPayrollGroup payGroup = new EPayrollGroup(); payGroup.PayGroupID = payPeriod.PayGroupID; EPayrollGroup.db.select(dbConn, payGroup); EPayrollBatch payBatch = new EPayrollBatch(); payBatch.PayBatchID = empPayroll.PayBatchID; EPayrollBatch.db.select(dbConn, payBatch); EEmpPersonalInfo empInfo = new EEmpPersonalInfo(); empInfo.EmpID = empPayroll.EmpID; EEmpPersonalInfo.db.select(dbConn, empInfo); DataSet.PayrollTrialRunSummaryDataSet.TrialRunSummaryRow row = dataTable.NewTrialRunSummaryRow(); row.EmpPayrollID = empPayroll.EmpPayrollID; row.EmpID = empPayroll.EmpID; row.EmpNo = empInfo.EmpNo; row.EmpName = empInfo.EmpEngFullName; row.EmpAlias = empInfo.EmpAlias; row.PayGroupDesc = payGroup.PayGroupCode + " - " + payGroup.PayGroupDesc; row.PayGroupID = empPayroll.PayPeriodID; row.PayrollPeriod = strPayPeriod; if (!payBatch.PayBatchValueDate.Ticks.Equals(0)) { row.PayBatchValueDate = payBatch.PayBatchValueDate; } row.PayBatchRemark = payBatch.PayBatchRemark; row.BasicSalary = 0; row.LeaveAllowance = 0; row.PFundEE = 0; row.PFundER = 0; row.Overtime = 0; row.Bonus = 0; row.Commission = 0; row.Others = 0; row.NetIncome = 0; row.TotalIncome = 0; row.PayMethodAutoPay = 0; row.PayMethodCash = 0; row.PayMethodCheque = 0; row.PayMethodOthers = 0; AND recurringBasicSalaryAndTerms = new AND(); recurringBasicSalaryAndTerms.add(new Match("EmpRPEffFr", "<=", payPeriod.PayPeriodTo)); DBFilter basicSalaryPaymentCodeFilter = new DBFilter(); basicSalaryPaymentCodeFilter.add(new Match("PaymentTypeID", EPaymentType.SystemPaymentType.BasicSalaryPaymentType(dbConn).PaymentTypeID)); recurringBasicSalaryAndTerms.add(new IN("PayCodeID", "Select PaymentCodeID FROM " + EPaymentCode.db.dbclass.tableName, basicSalaryPaymentCodeFilter)); EEmpRecurringPayment empRP = (EEmpRecurringPayment)AppUtils.GetLastObj(dbConn, EEmpRecurringPayment.db, "EmpRPEffFr", empPayroll.EmpID, recurringBasicSalaryAndTerms); if (empRP != null) { row.RecurringBasicSalary = empRP.EmpRPAmount; } DBFilter paymentRecordFilter = new DBFilter(); paymentRecordFilter.add(new Match("EmpPayrollID", empPayroll.EmpPayrollID)); 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); EPaymentType payType = new EPaymentType(); payType.PaymentTypeID = payCode.PaymentTypeID; EPaymentType.db.select(dbConn, payType); if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.BasicSalaryPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase)) { row.BasicSalary += paymentRecord.PayRecActAmount; row.TotalIncome += paymentRecord.PayRecActAmount; } else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.LeaveDeductionPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase)) { row.LeaveAllowance += paymentRecord.PayRecActAmount; row.TotalIncome += paymentRecord.PayRecActAmount; } else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.LeaveAllowancePaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase)) { row.LeaveAllowance += paymentRecord.PayRecActAmount; row.TotalIncome += paymentRecord.PayRecActAmount; } else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.MPFEmployeeMandatoryContributionPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase)) { row.PFundEE += paymentRecord.PayRecActAmount; } else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.MPFEmployeeVoluntaryContributionPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase)) { row.PFundEE += paymentRecord.PayRecActAmount; } else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.PFundEmployeeContributionPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase)) { row.PFundEE += paymentRecord.PayRecActAmount; } else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.MPFEmployerMandatoryContributionPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase)) { row.PFundER += paymentRecord.PayRecActAmount; } else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.MPFEmployerVoluntaryContributionPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase)) { row.PFundER += paymentRecord.PayRecActAmount; } else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.PFundEmployerContributionPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase)) { row.PFundER += paymentRecord.PayRecActAmount; } else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.OverTimePaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase)) { row.Overtime += paymentRecord.PayRecActAmount; row.TotalIncome += paymentRecord.PayRecActAmount; } else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.BonusPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase)) { row.Bonus += paymentRecord.PayRecActAmount; row.TotalIncome += paymentRecord.PayRecActAmount; } else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.CommissionPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase)) { row.Commission += paymentRecord.PayRecActAmount; row.TotalIncome += paymentRecord.PayRecActAmount; } else { row.Others += paymentRecord.PayRecActAmount; row.TotalIncome += paymentRecord.PayRecActAmount; } if (paymentRecord.PayRecMethod.Equals("A")) { row.PayMethodAutoPay += paymentRecord.PayRecActAmount; } else if (paymentRecord.PayRecMethod.Equals("C")) { row.PayMethodCash += paymentRecord.PayRecActAmount; } else if (paymentRecord.PayRecMethod.Equals("Q")) { row.PayMethodCheque += paymentRecord.PayRecActAmount; } else { row.PayMethodOthers += paymentRecord.PayRecActAmount; } row.NetIncome += paymentRecord.PayRecActAmount; } row.TotalWagesForMinWages = HROne.Payroll.PayrollProcess.GetTotalWagesWithoutRestDayPayment(dbConn, empInfo.EmpID, payPeriod.PayPeriodFr, payPeriod.PayPeriodTo, null); row.TotalWorkingHours = HROne.Payroll.PayrollProcess.GetTotalEmpPayrollWorkingHours(dbConn, empInfo.EmpID, payPeriod.PayPeriodID); row.MinWagesRequired = row.TotalWorkingHours * HROne.Payroll.PayrollProcess.GetMinimumWages(dbConn, empInfo.EmpID, payPeriod.PayPeriodTo); DBFilter mpfRecordFilter = new DBFilter(); mpfRecordFilter.add(new Match("EmpPayrollID", empPayroll.EmpPayrollID)); ArrayList mpfRecords = EMPFRecord.db.select(dbConn, mpfRecordFilter); foreach (EMPFRecord mpfRecord in mpfRecords) { row.PFundER += mpfRecord.MPFRecActVCER + mpfRecord.MPFRecActMCER; } ArrayList orsoRecords = EORSORecord.db.select(dbConn, mpfRecordFilter); foreach (EORSORecord orsoRecord in orsoRecords) { row.PFundER += orsoRecord.ORSORecActER; } DBFilter positionFilter = new DBFilter(); positionFilter.add(new Match("EmpID", empInfo.EmpID)); positionFilter.add(new Match("PayGroupID", payGroup.PayGroupID)); positionFilter.add(new Match("EmpPosEffFr", "<=", payPeriod.PayPeriodTo)); OR orPosEffToTerms = new OR(); orPosEffToTerms.add(new Match("EmpPosEffTo", ">=", payPeriod.PayPeriodFr)); orPosEffToTerms.add(new NullTerm("EmpPosEffTo")); positionFilter.add(orPosEffToTerms); ArrayList positionInfos = EEmpPositionInfo.db.select(dbConn, positionFilter); EEmpPositionInfo empPos = null; if (positionInfos.Count > 0) { empPos = (EEmpPositionInfo)positionInfos[0]; } else { empPos = AppUtils.GetLastPositionInfo(dbConn, payPeriod.PayPeriodTo, empInfo.EmpID); } if (HLevelIDDisplayList != null && empPos != null) { for (int count = 0; count < HLevelIDDisplayList.Count && count < 2; count++) { int hLevelID = Convert.ToInt32(HLevelIDDisplayList[count]); EHierarchyLevel hLevel = new EHierarchyLevel(); hLevel.HLevelID = hLevelID; if (EHierarchyLevel.db.select(dbConn, hLevel)) { row["HLevelDesc" + (count + 1)] = hLevel.HLevelDesc; DBFilter empHierarchyFilter = new DBFilter(); empHierarchyFilter.add(new Match("EmpPosID", empPos.EmpPosID)); empHierarchyFilter.add(new Match("HLevelID", 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)) { row["HElementCode" + (count + 1)] = hElement.HElementCode; row["HElementDesc" + (count + 1)] = hElement.HElementDesc; } } } } } dataTable.Rows.Add(row); } if (reportDocument == null) { if (reportType.Equals(ReportType.TrialRun)) { reportDocument = new ReportTemplate.Report_Payroll_TrialRunSummary(); } else if (reportType.Equals(ReportType.History)) { reportDocument = new ReportTemplate.Report_Payroll_HistorySummary(); } } else { } reportDocument.SetDataSource(dataSet); return(reportDocument); } else { return(null); } }
protected void Page_Load(object sender, EventArgs e) { if (!WebUtils.CheckAccess(Response, Session, FUNCTION_CODE, WebUtils.AccessLevel.Read)) { return; } toolBar.FunctionCode = FUNCTION_CODE; PayPeriodEditPanel.Visible = toolBar.EditButton_Visible; toolBar.FunctionCode = FUNCTION_CODE; if (!int.TryParse(DecryptedRequest["PayGroupID"], out CurID)) { CurID = -1; } sbinding = new SearchBinding(dbConn, db); sbinding.init(DecryptedRequest, null); binding = new Binding(dbConn, db); binding.add(PayGroupCode); binding.add(PayGroupDesc); binding.add(new LabelVLBinder(db, PayGroupFreq, EPayrollGroup.VLPayGroupFreq)); binding.add(PayGroupDefaultStartDay); //binding.add(PayGroupDefaultEndDay); binding.add(PayGroupDefaultNextStartDay); binding.add(PayGroupLeaveDefaultCutOffDay); binding.add(PayGroupLeaveDefaultNextCutOffDay); binding.add(PayGroupNextStartDate); binding.add(PayGroupNextEndDate); binding.add(new BlankZeroLabelVLBinder(db, PayGroupDefaultProrataFormula, EPayrollProrataFormula.VLPayrollProrataFormula)); binding.add(new LabelVLBinder(db, PayGroupRestDayHasWage, Values.VLTrueFalseYesNo)); binding.add(new LabelVLBinder(db, PayGroupLunchTimeHasWage, Values.VLTrueFalseYesNo)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupRestDayProrataFormula, EPayrollProrataFormula.VLPayrollProrataFormula)); binding.add(new LabelVLBinder(db, PayGroupAdditionalRemunerationPayCodeID, EPaymentCode.VLPaymentCode)); binding.add(new LabelVLBinder(db, PayGroupIsCNDProrata, Values.VLTrueFalseYesNo)); //binding.add(new LabelVLBinder(db, PayGroupLeaveAllowFormula, EPayrollProrataFormula.VLPayrollProrataFormula)); //binding.add(new LabelVLBinder(db, PayGroupLeaveDeductFormula, EPayrollProrataFormula.VLPayrollProrataFormula)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupStatHolAllowFormula, EPayrollProrataFormula.VLPayrollProrataFormula)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupStatHolDeductFormula, EPayrollProrataFormula.VLPayrollProrataFormula)); binding.add(new LabelVLBinder(db, PayGroupStatHolNextMonth, Values.VLTrueFalseYesNo)); binding.add(new LabelVLBinder(db, PayGroupIsStatHolUsePublicHoliday, Values.VLTrueFalseYesNo)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupNewJoinFormula, EPayrollProrataFormula.VLPayrollProrataFormula)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupExistingFormula, EPayrollProrataFormula.VLPayrollProrataFormula)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupTerminatedFormula, EPayrollProrataFormula.VLPayrollProrataFormula)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupTerminatedALCompensationDailyFormula, EPayrollProrataFormula.VLPayrollProrataFormula)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupTerminatedALCompensationDailyFormulaAlternative, EPayrollProrataFormula.VLPayrollProrataFormula)); binding.add(new CheckBoxBinder(db, PayGroupTerminatedALCompensationIsSkipRoundingRule)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupTerminatedALCompensationPaymentCodeID, EPaymentCode.VLPaymentCode)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupTerminatedALCompensationByEEPaymentCodeID, EPaymentCode.VLPaymentCode)); binding.add(new LabelVLBinder(db, PayGroupTerminatedPaymentInLieuMonthlyBaseMethod, Values.VLPaymentBaseMethod)); binding.add(new LabelVLBinder(db, PayGroupTerminatedPaymentInLieuMonthlyBaseMethodAlternative, Values.VLPaymentBaseMethod)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupTerminatedPaymentInLieuDailyFormula, EPayrollProrataFormula.VLPayrollProrataFormula)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupTerminatedPaymentInLieuDailyFormulaAlternative, EPayrollProrataFormula.VLPayrollProrataFormula)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupTerminatedPaymentInLieuERPaymentCodeID, EPaymentCode.VLPaymentCode)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupTerminatedPaymentInLieuEEPaymentCodeID, EPaymentCode.VLPaymentCode)); binding.add(new LabelVLBinder(db, PayGroupTerminatedLSPSPMonthlyBaseMethod, Values.VLPaymentBaseMethod)); binding.add(new LabelVLBinder(db, PayGroupTerminatedLSPSPMonthlyBaseMethodAlternative, Values.VLPaymentBaseMethod)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupTerminatedLSPPaymentCodeID, EPaymentCode.VLPaymentCode)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupTerminatedSPPaymentCodeID, EPaymentCode.VLPaymentCode)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupTerminatedRestDayCompensationDailyFormula, EPayrollProrataFormula.VLPayrollProrataFormula)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupTerminatedRestDayCompensationPaymentCodeID, EPaymentCode.VLPaymentCode)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupTerminatedStatutoryHolidayCompensationDailyFormula, EPayrollProrataFormula.VLPayrollProrataFormula)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupTerminatedStatutoryHolidayCompensationPaymentCodeID, EPaymentCode.VLPaymentCode)); binding.add(PayGroupTerminatedALCompensationProrataEligiblePeriod); binding.add(new LabelVLBinder(db, PayGroupTerminatedALCompensationProrataEligibleUnit, Values.VLEmpUnit)); binding.add(new CheckBoxBinder(db, PayGroupTerminatedALCompensationProrataEligibleCheckEveryLeaveYear)); binding.add(new CheckBoxBinder(db, PayGroupTerminatedALCompensationEligibleAfterProbation)); binding.add(new CheckBoxBinder(db, PayGroupPayAdvance)); binding.add(new CheckBoxBinder(db, PayGroupPayAdvanceCompareTotalPaymentOnly)); binding.add(new LabelVLBinder(db, PayGroupUseCNDForDailyHourlyPayment, Values.VLTrueFalseYesNo)); binding.add(new LabelVLBinder(db, PayGroupIsSkipStatHol, Values.VLTrueFalseYesNo)); binding.add(PayGroupStatHolEligiblePeriod); binding.add(new LabelVLBinder(db, PayGroupStatHolEligibleUnit, Values.VLEmpUnit)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupStatHolDeductPaymentCodeID, EPaymentCode.VLPaymentCode)); binding.add(new BlankZeroLabelVLBinder(db, PayGroupStatHolAllowPaymentCodeID, EPaymentCode.VLPaymentCode)); binding.add(new CheckBoxBinder(db, PayGroupStatHolEligibleAfterProbation)); binding.add(new CheckBoxBinder(db, PayGroupStatHolEligibleSkipDeduction)); binding.add(new LabelVLBinder(db, PayGroupYEBStartPayrollMonth, Values.VLMonth)); binding.add(new LabelVLBinder(db, PayGroupYEBMonthFrom, Values.VLMonth)); binding.add(new LabelVLBinder(db, PayGroupYEBMonthTo, Values.VLMonth)); DBFilter payPeriodFilter = new DBFilter(); payPeriodFilter.add(new Match("PayPeriodStatus", "<>", "E")); payPeriodFilter.add(new Match("PayGroupID", CurID)); binding.add(new DropDownVLBinder(EPayrollPeriod.db, PayPeriodID, EPayrollPeriod.VLPayrollPeriod, payPeriodFilter)); binding.init(Request, Session); HROne.ProductLicense productLicense = WebUtils.productLicense(Session); if (productLicense.ProductType != HROne.ProductLicense.ProductLicenseType.HROne) { FinalPaymentHolidayPanel.Visible = false; PayGroupIsCNDProrataRow.Visible = false; PayGroupStatHolNextMonthRow.Visible = false; PayGroupPayAdvanceCompareTotalPaymentOnly.Visible = false; PayGroupUseCNDForDailyHourlyPaymentSection.Visible = false; } else { FinalPaymentHolidayPanel.Visible = true; PayGroupIsCNDProrataRow.Visible = true; PayGroupStatHolNextMonthRow.Visible = true; PayGroupPayAdvanceCompareTotalPaymentOnly.Visible = true; PayGroupUseCNDForDailyHourlyPaymentSection.Visible = true; } HROne.Common.WebUtility.WebControlsLocalization(this, this.Controls); PayGroupID.Value = CurID.ToString(); //if (!string.IsNullOrEmpty(DecryptedRequest["PayPeriodID"])) // CurPayPeriodID = Int32.Parse(DecryptedRequest["PayPeriodID"]); //else if (!int.TryParse(PayPeriodID.SelectedValue, out CurPayPeriodID)) { EPayrollGroup obj = new EPayrollGroup(); obj.PayGroupID = CurID; if (db.select(dbConn, obj)) { CurPayPeriodID = obj.CurrentPayPeriodID; } } if (!Page.IsPostBack) { if (CurID > 0) { loadObject(); } else { toolBar.DeleteButton_Visible = false; } LoadLeaveCalculationOverrideList(LeaveCodeOverrideListFooter.ListInfo, LeaveCodeOverrideRepeater); // Start 0000069, Ricky So, 2014-08-08 LoadUserList(SecurityRepeater); // End 0000069, Ricky So, 2014-08-08 } }
protected void Page_Load(object sender, EventArgs e) { if (!WebUtils.CheckAccess(Response, Session, FUNCTION_CODE, WebUtils.AccessLevel.Read)) { return; } if (!WebUtils.CheckPermission(Session, FUNCTION_CODE, WebUtils.AccessLevel.ReadWrite)) { IsAllowEdit = false; btnTrialRun.Visible = false; ConfirmPayrollSelectAllPanel.Visible = false; } binding = new Binding(dbConn, db); // Start 0000069, KuangWei, 2014-08-26 //binding.add(new DropDownVLBinder(db, PayGroupID, EPayrollGroup.VLPayrollGroup)); initPayrollGroup(); // End 0000069, KuangWei, 2014-08-26 binding.add(CurrentPayPeriodID); //***** Start 2014/04/11, Ricky So, 0000019 //DBFilter payPeriodFilter = new DBFilter(); //if (!int.TryParse(PayGroupID.SelectedValue, out CurID)) // if (!int.TryParse(DecryptedRequest["PayGroupID"], out CurID)) // CurID = -1; //payPeriodFilter.add(new Match("PayGroupID", CurID)); //payPeriodFilter.add("PayPeriodFr", false); //DBFilter empPayrollFilter = new DBFilter(); //empPayrollFilter.add(new Match("EmpPayStatus", "C")); //empPayrollFilter.add(new IN("not EmpPayrollID", "Select Distinct EmpPayrollID from " + ECostAllocation.db.dbclass.tableName, new DBFilter())); //payPeriodFilter.add(new IN("PayPeriodID", "Select Distinct PayPeriodID from " + EEmpPayroll.db.dbclass.tableName , empPayrollFilter)); //binding.add(new DropDownVLBinder(EPayrollPeriod.db, PayPeriodID, EPayrollPeriod.VLPayrollPeriod, payPeriodFilter)); //***** End 2014/04/11, Ricky So, 0000019 binding.init(Request, Session); sbinding = new SearchBinding(dbConn, EEmpPersonalInfo.db); if (!int.TryParse(PayPeriodID.SelectedValue, out CurPayPeriodID)) { if (!int.TryParse(DecryptedRequest["PayPeriodID"], out CurPayPeriodID)) { EPayrollGroup obj = new EPayrollGroup(); obj.PayGroupID = CurID; if (EPayrollGroup.db.select(dbConn, obj)) { CurPayPeriodID = obj.CurrentPayPeriodID; } else { CurPayPeriodID = -1; } } } HROne.Common.WebUtility.WebControlsLocalization(this, this.Controls); info = ListFooter.ListInfo; info.recordPerPage = 0; if (!Page.IsPostBack) { loadObject(); if (CurID > 0) { panelPayPeriod.Visible = true; view = loadData(info, EEmpPayroll.db, Repeater); } else { panelPayPeriod.Visible = false; } PayPeriodID.Items.Clear(); PayPeriodID.Items.Add(new ListItem("Not Selected", "-1")); } }
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); } } }
protected void Page_Load(object sender, EventArgs e) { if (!WebUtils.CheckAccess(Response, Session, FUNCTION_CODE, WebUtils.AccessLevel.Read)) { return; } if (!WebUtils.CheckPermission(Session, FUNCTION_CODE, WebUtils.AccessLevel.ReadWrite)) { panelRollbackOption.Visible = false; } else { panelRollbackOption.Visible = true; } btnRollback.OnClientClick = HROne.Translation.PromptMessage.PAYROLL_ROLLBACK_PAYROLL_PERIOD_GENERIC_JAVASCRIPT; binding = new Binding(dbConn, db); // Start 0000069, KuangWei, 2014-08-28 initPayrollGroup(); // End 0000069, KuangWei, 2014-08-28 binding.add(CurrentPayPeriodID); OR orPayPeriodStauts = new OR(); orPayPeriodStauts.add(new Match("PayPeriodStatus", "<>", "E")); orPayPeriodStauts.add(new Match("PayPeriodIsAutoCreate", false)); DBFilter payPeriodFilter = new DBFilter(); payPeriodFilter.add(orPayPeriodStauts); if (!int.TryParse(PayGroupID.SelectedValue, out CurID)) { if (!int.TryParse(DecryptedRequest["PayGroupID"], out CurID)) { CurID = -1; } } payPeriodFilter.add(new Match("PayGroupID", CurID)); payPeriodFilter.add("PayPeriodFr", false); binding.add(new DropDownVLBinder(EPayrollPeriod.db, PayPeriodID, EPayrollPeriod.VLPayrollPeriod, payPeriodFilter)); binding.init(Request, Session); if (!int.TryParse(PayPeriodID.SelectedValue, out CurPayPeriodID)) { if (!int.TryParse(DecryptedRequest["PayPeriodID"], out CurPayPeriodID)) { EPayrollGroup obj = new EPayrollGroup(); obj.PayGroupID = CurID; if (EPayrollGroup.db.select(dbConn, obj)) { CurPayPeriodID = obj.CurrentPayPeriodID; } else { CurPayPeriodID = -1; } } } if (!Page.IsPostBack) { loadState(); if (CurID > 0) { panelPayPeriod.Visible = true; loadObject(); } else { panelPayPeriod.Visible = false; panelRollbackOption.Visible = false; } } HROne.Common.WebUtility.WebControlsLocalization(this, this.Controls); }
public override ReportDocument GenerateReport() { DataSet.Payroll_DiscrepancyList dataSet = new DataSet.Payroll_DiscrepancyList(); if (intProcessYear > 0 && intProcessMonth > 0 && intReferenceYear > 0 && intReferenceMonth > 0 && empList != null) { DataSet.Payroll_DiscrepancyList.DiscrepancyListDataTable dataTable = dataSet.DiscrepancyList; foreach (EEmpPersonalInfo empInfo in empList) { DateTime dtPayPeriodFr = new DateTime(intReferenceYear, intReferenceMonth, 1); DateTime dtPayPeriodTo = new DateTime(intProcessYear, intProcessMonth, 1).AddMonths(1).AddDays(-1); EEmpPersonalInfo.db.select(dbConn, empInfo); DBFilter positionFilter = new DBFilter(); positionFilter.add(new Match("EmpID", empInfo.EmpID)); //if (lngPayPeriodFr != 0 && lngPayPeriodTo != 0) //{ positionFilter.add(new Match("EmpPosEffFr", "<=", dtPayPeriodTo)); OR orPosEffToTerms = new OR(); orPosEffToTerms.add(new Match("EmpPosEffTo", ">=", dtPayPeriodFr)); orPosEffToTerms.add(new NullTerm("EmpPosEffTo")); positionFilter.add(orPosEffToTerms); //} positionFilter.add("EmpPosEffFr", false); ArrayList empPositionInfos = EEmpPositionInfo.db.select(dbConn, positionFilter); EEmpPositionInfo empPositionInfo; if (empPositionInfos.Count > 0) { empPositionInfo = (EEmpPositionInfo)empPositionInfos[0]; ECompany company = new ECompany(); company.CompanyID = empPositionInfo.CompanyID; ECompany.db.select(dbConn, company); EPayrollGroup payGroup = new EPayrollGroup(); payGroup.PayGroupID = empPositionInfo.PayGroupID; EPayrollGroup.db.select(dbConn, payGroup); ERank rank = new ERank(); rank.RankID = empPositionInfo.RankID; ERank.db.select(dbConn, rank); EPosition position = new EPosition(); position.PositionID = empPositionInfo.PositionID; EPosition.db.select(dbConn, position); DataSet.Payroll_DiscrepancyList.DiscrepancyListRow row = dataTable.NewDiscrepancyListRow(); row.EmpID = empInfo.EmpID; row.EmpNo = empInfo.EmpNo; row.EmpName = empInfo.EmpEngFullName; row.CompanyID = company.CompanyID; row.CompanyCode = company.CompanyCode; row.CompanyName = company.CompanyName; row.PayGroupID = payGroup.PayGroupID; row.PayGroupDesc = payGroup.PayGroupDesc; row.Rank = rank.RankDesc; row.Position = position.PositionDesc; row.LastNetPay = getNetIncome(empInfo.EmpID, intReferenceMonth, intReferenceYear); row.CurrentNetPay = getNetIncome(empInfo.EmpID, intProcessMonth, intProcessYear); dataTable.Rows.Add(row); } } if (reportDocument == null) { reportDocument = new ReportTemplate.Report_Payroll_DiscrepancyList(); //reportDocument.Load(@"ReportTemplate\Report_Payroll_DiscrepancyList.rpt"); } else { } reportDocument.SetDataSource(dataSet); reportDocument.SetParameterValue("ProcessYear", intProcessYear); reportDocument.SetParameterValue("ProcessMonth", intProcessMonth); reportDocument.SetParameterValue("ReferenceYear", intReferenceYear); reportDocument.SetParameterValue("ReferenceMonth", intReferenceMonth); // rpt.SetDataSource((DataTable)mpfTable); return(reportDocument); } else { return(null); } }
protected override System.Data.DataSet CreateDataSource() { System.Data.DataSet dataSet = new System.Data.DataSet(); DataTable empInfoTable = new DataTable("EmpInfo"); DataTable payrollTable = new DataTable("Payment"); DataTable hierarchyTable = new DataTable("hierarchy"); DataTable payPeriodTable = new DataTable("payPeriod"); dataSet.Tables.Add(empInfoTable); dataSet.Tables.Add(payrollTable); dataSet.Tables.Add(hierarchyTable); dataSet.Tables.Add(payPeriodTable); payPeriodTable.Columns.Add("payPeriodFr", typeof(DateTime)); hierarchyTable.Columns.Add("LevelDesc", typeof(string)); payrollTable.Columns.Add("EmpPayrollID", typeof(int)); payrollTable.Columns.Add("empID", typeof(int)); payrollTable.Columns.Add("payPeriodFr", typeof(DateTime)); payrollTable.Columns.Add("netAmount", typeof(double)); payrollTable.Columns.Add("EE", typeof(double)); payrollTable.Columns.Add("ER", typeof(double)); int firstDetailColumnPos = payrollTable.Columns.Count; empInfoTable.Columns.Add("Employee No.", typeof(string)); empInfoTable.Columns.Add("EmpPayrollID", typeof(int)); empInfoTable.Columns.Add("Employee Name", typeof(string)); empInfoTable.Columns.Add("Alias", typeof(string)); empInfoTable.Columns.Add("Chinese Name", typeof(string)); empInfoTable.Columns.Add("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) { if (hlevel.HLevelID.Equals(intHierarchyLevelID)) { hierarchyLevelGroupingFieldName = hlevel.HLevelDesc; } empInfoTable.Columns.Add(hlevel.HLevelDesc, typeof(string)); hierarchyLevelHashTable.Add(hlevel.HLevelID, hlevel); DataRow m_hierarchyRow = hierarchyTable.NewRow(); m_hierarchyRow["LevelDesc"] = hlevel.HLevelDesc; hierarchyTable.Rows.Add(m_hierarchyRow); } empInfoTable.Columns.Add("EmpID", typeof(int)); empInfoTable.Columns.Add("Payroll Group", typeof(string)); empInfoTable.Columns.Add("Date Join", typeof(DateTime)); empInfoTable.Columns.Add("Date Left", typeof(DateTime)); empInfoTable.Columns.Add("Net Payable", typeof(double)); empInfoTable.Columns.Add("MCEE", typeof(double)); empInfoTable.Columns.Add("MCER", typeof(double)); empInfoTable.Columns.Add("VCEE", typeof(double)); empInfoTable.Columns.Add("VCER", typeof(double)); empInfoTable.Columns.Add("PFundEE", typeof(double)); empInfoTable.Columns.Add("PFundER", typeof(double)); DBFilter payPeriodFilter = new DBFilter(); if (!PeriodFrom.Ticks.Equals(0)) { payPeriodFilter.add(new Match("PayPeriodTo", ">=", PeriodFrom)); } if (!PeriodTo.Ticks.Equals(0)) { payPeriodFilter.add(new Match("PayPeriodTo", "<=", PeriodTo)); } ArrayList payPeriodList = EPayrollPeriod.db.select(dbConn, payPeriodFilter); if (payPeriodList.Count > 0) { // reset period PeriodFrom = new DateTime(); PeriodTo = new DateTime(); } DBFilter m_userCompanyFilter = new DBFilter(); m_userCompanyFilter.add(new Match("UserID", currentUser.UserID)); DBFilter m_userRankFilter = new DBFilter(); m_userRankFilter.add(new Match("UserID", currentUser.UserID)); Hashtable m_userCompanyList = new Hashtable(); foreach (EUserCompany m_userCompany in EUserCompany.db.select(dbConn, m_userCompanyFilter)) { m_userCompanyList.Add(m_userCompany.CompanyID, m_userCompany.CompanyID); } Hashtable m_userRankList = new Hashtable(); foreach (EUserRank m_userRank in EUserRank.db.select(dbConn, m_userRankFilter)) { m_userRankList.Add(m_userRank.RankID, m_userRank.RankID); } int[] m_EmpIDList = new int[empList.Count]; int i = 0; foreach (EEmpPersonalInfo m_info in empList) { m_EmpIDList[i] = m_info.EmpID; i++; } foreach (EPayrollPeriod payPeriod in payPeriodList) { DataRow[] m_payPeriodRows = payPeriodTable.Select("payPeriodFr = '" + ((DateTime)payPeriod.PayPeriodFr).ToString("yyyy-MM-dd") + "' "); if (m_payPeriodRows.Length <= 0) { DataRow m_payPeriodRow = payPeriodTable.NewRow(); m_payPeriodRow["payPeriodFr"] = payPeriod.PayPeriodFr; payPeriodTable.Rows.Add(m_payPeriodRow); } if (PeriodFrom > payPeriod.PayPeriodFr || PeriodFrom.Ticks.Equals(0)) { PeriodFrom = payPeriod.PayPeriodFr; } if (PeriodTo < payPeriod.PayPeriodTo || PeriodTo.Ticks.Equals(0)) { PeriodTo = payPeriod.PayPeriodTo; } DBFilter empPayrollFilter = new DBFilter(); empPayrollFilter.add(new Match("PayPeriodID", payPeriod.PayPeriodID)); empPayrollFilter.add(new IN("EmpID", m_EmpIDList)); ArrayList empPayrollList = EEmpPayroll.db.select(dbConn, empPayrollFilter); foreach (EEmpPayroll empPayroll in empPayrollList) { DataRow paymentRow = payrollTable.NewRow(); DataRow[] m_existingEmpID = payrollTable.Select("EmpID = " + empPayroll.EmpID.ToString()); if (m_existingEmpID.Length == 0) { EEmpPersonalInfo empInfo = new EEmpPersonalInfo(); empInfo.EmpID = empPayroll.EmpID; if (EEmpPersonalInfo.db.select(dbConn, empInfo) == false) { continue; } DataRow row = empInfoTable.NewRow(); row["EmpID"] = empInfo.EmpID; row["Employee No."] = empInfo.EmpNo; row["EmpPayrollID"] = empPayroll.EmpPayrollID; row["Employee Name"] = empInfo.EmpEngFullName; row["Alias"] = empInfo.EmpAlias; row["Chinese Name"] = empInfo.EmpChiFullName; row["Date Join"] = empInfo.EmpDateOfJoin; DBFilter empTerminationFilter = new DBFilter(); empTerminationFilter.add(new Match("EmpID", empInfo.EmpID)); ArrayList empTerminationList = EEmpTermination.db.select(dbConn, empTerminationFilter); if (empTerminationList.Count > 0) { row["Date Left"] = ((EEmpTermination)empTerminationList[0]).EmpTermLastDate; } DBFilter empPosFilter = new DBFilter(); EEmpPositionInfo empPos = AppUtils.GetLastPositionInfo(dbConn, payPeriod.PayPeriodTo, empInfo.EmpID); if (empPos != null) { if (!m_userCompanyList.Contains(empPos.CompanyID) || !m_userRankList.Contains(empPos.RankID)) { continue; } if (selectedCompanyID > 0 && empPos.CompanyID != selectedCompanyID) { continue; } ECompany company = new ECompany(); company.CompanyID = empPos.CompanyID; if (ECompany.db.select(dbConn, company)) { row["Company"] = company.CompanyName; } EPayrollGroup payrollGroup = new EPayrollGroup(); payrollGroup.PayGroupID = empPos.PayGroupID; if (EPayrollGroup.db.select(dbConn, payrollGroup)) { row["Payroll Group"] = payrollGroup.PayGroupDesc; } 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; } } } } empInfoTable.Rows.Add(row); } double netAmount = 0; DBFilter paymentRecordFilter = new DBFilter(); paymentRecordFilter.add(new Match("EmpPayrollID", empPayroll.EmpPayrollID)); paymentRecordFilter.add(new Match("PayRecStatus", "A")); foreach (EPaymentRecord paymentRecord in EPaymentRecord.db.select(dbConn, paymentRecordFilter)) { netAmount += paymentRecord.PayRecActAmount; } paymentRow["EmpID"] = empPayroll.EmpID; paymentRow["EmpPayrollID"] = empPayroll.EmpPayrollID; paymentRow["payPeriodFr"] = payPeriod.PayPeriodFr; paymentRow["netAmount"] = HROne.CommonLib.GenericRoundingFunctions.RoundingTo(netAmount, ExchangeCurrency.DefaultCurrencyDecimalPlaces(), ExchangeCurrency.DefaultCurrencyDecimalPlaces()); DBFilter mpfRecordFilter = new DBFilter(); mpfRecordFilter.add(new Match("EmpPayrollID", empPayroll.EmpPayrollID)); double m_ee = 0; double m_er = 0; foreach (EMPFRecord mpfRecord in EMPFRecord.db.select(dbConn, mpfRecordFilter)) { m_ee += (mpfRecord.MPFRecActVCEE + mpfRecord.MPFRecActMCEE); m_er += (mpfRecord.MPFRecActVCER + mpfRecord.MPFRecActMCER); } ArrayList orsoRecords = EORSORecord.db.select(dbConn, mpfRecordFilter); foreach (EORSORecord orsoRecord in orsoRecords) { m_ee += orsoRecord.ORSORecActEE; m_er += orsoRecord.ORSORecActER; } paymentRow["EE"] = m_ee; paymentRow["ER"] = m_er; payrollTable.Rows.Add(paymentRow); } } //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 (payrollTable.Columns.Contains(paymentCode.PaymentCodeDesc)) // payrollTable.Columns[paymentCode.PaymentCodeDesc].SetOrdinal(firstDetailColumnPos); //} return(dataSet); }
protected void Page_Load(object sender, EventArgs e) { if (!WebUtils.CheckAccess(Response, Session, TRIALRUN_FUNCTION_CODE, WebUtils.AccessLevel.ReadWrite)) { return; } if (!WebUtils.CheckAccess(Response, Session, CONFIRM_FUNCTION_CODE, WebUtils.AccessLevel.ReadWrite)) { return; } if (!WebUtils.CheckAccess(Response, Session, PROCESSEND_FUNCTION_CODE, WebUtils.AccessLevel.ReadWrite)) { return; } DateTime dtPayPeriodFr = new DateTime(long.Parse(DecryptedRequest["PayPeriodFr"])); DateTime dtPayPeriodTo = new DateTime(long.Parse(DecryptedRequest["PayPeriodTo"])); DateTime NextPayPeriodFr = dtPayPeriodTo.AddDays(1); long nextPayPeriodTick = 0; if (long.TryParse(DecryptedRequest["NextPayPeriodFr"], out nextPayPeriodTick)) { NextPayPeriodFr = new DateTime(nextPayPeriodTick); } int PayBatchID = 0; if (!int.TryParse(DecryptedRequest["PayBatchID"], out PayBatchID)) { PayBatchID = 0; } string[] payGroupStringList = DecryptedRequest["PayGroupIDList"].Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); int currentSelectedPayGroupSeq = 0; if (!int.TryParse(DecryptedRequest["SelectedPayGroupSeq"], out currentSelectedPayGroupSeq)) { currentSelectedPayGroupSeq = 0; } else { if (currentSelectedPayGroupSeq > payGroupStringList.GetUpperBound(0)) { currentSelectedPayGroupSeq = 0; dtPayPeriodFr = NextPayPeriodFr; NextPayPeriodFr = dtPayPeriodTo.AddDays(1); PayBatchID = 0; } } bool SkipRecurringPaymentProcess = DecryptedRequest["SkipRecurringPaymentProcess"].Equals("Yes", StringComparison.CurrentCultureIgnoreCase); bool SkipClaimsAndDeductionsProcess = DecryptedRequest["SkipClaimsAndDeductionsProcess"].Equals("Yes", StringComparison.CurrentCultureIgnoreCase); bool SkipYearEndBonusProcess = DecryptedRequest["SkipYearEndBonusProcess"].Equals("Yes", StringComparison.CurrentCultureIgnoreCase); bool SkipAdditionalRenumerationProcess = DecryptedRequest["SkipAdditionalRenumerationProcess"].Equals("Yes", StringComparison.CurrentCultureIgnoreCase); if (dtPayPeriodFr <= dtPayPeriodTo) { EPayrollPeriod currentPayPeriod = null; int currentPayPeriodID = 0; if (!int.TryParse(DecryptedRequest["PayPeriodID"], out currentPayPeriodID)) { DBFilter payPeriodFilter = new DBFilter(); payPeriodFilter.add(new Match("PayGroupID", payGroupStringList[currentSelectedPayGroupSeq])); payPeriodFilter.add(new Match("PayPeriodFr", "<=", dtPayPeriodFr)); payPeriodFilter.add(new Match("PayPeriodTo", ">=", dtPayPeriodFr)); // Skip checking payperiodstatus since the next step will check if payroll is being processed //payPeriodFilter.add(new Match("PayPeriodStatus", "<>", EPayrollPeriod.PAYPERIOD_STATUS_PROCESSEND_FLAG)); ArrayList payPeriodList = EPayrollPeriod.db.select(dbConn, payPeriodFilter); if (payPeriodList.Count > 0) { currentPayPeriod = ((EPayrollPeriod)payPeriodList[0]); currentPayPeriodID = currentPayPeriod.PayPeriodID; if (NextPayPeriodFr > currentPayPeriod.PayPeriodTo.AddDays(1)) { NextPayPeriodFr = currentPayPeriod.PayPeriodTo.AddDays(1); } } } else { currentPayPeriod = new EPayrollPeriod(); currentPayPeriod.LoadDBObject(dbConn, currentPayPeriodID); } int intTotal; if (int.TryParse(DecryptedRequest["Total"], out intTotal)) { intTotal = 0; } if (Session["PayrollContinuousProcess_EmpList"] == null) { DBFilter empPayrollCountFilter = new DBFilter(); empPayrollCountFilter.add(new Match("PayPeriodID", currentPayPeriodID)); if (EEmpPayroll.db.count(dbConn, empPayrollCountFilter) > 0) { lblProgressMessage.Text = "Payroll has been processed manually. Please complete this payroll cycle manually."; return; } EPayrollPeriod payPeriod = new EPayrollPeriod(); payPeriod.PayPeriodID = currentPayPeriodID; payPeriod.PayPeriodStatus = "C"; payPeriod.PayPeriodConfirmDate = AppUtils.ServerDateTime(); payPeriod.PayPeriodConfirmBy = WebUtils.GetCurUser(Session).UserID; EPayrollPeriod.db.update(dbConn, payPeriod); EPayrollBatch payBatch = new EPayrollBatch(); payBatch.PayBatchConfirmDate = AppUtils.ServerDateTime(); EPayrollBatch.db.insert(dbConn, payBatch); PayBatchID = payBatch.PayBatchID; DBFilter filter = new DBFilter(); IN inTerm = new IN("EmpID", "Select epi.EmpID from [EmpPositionInfo] epi, [PayrollPeriod] pp ", filter); filter.add(new MatchField("EmpID", "epi.EmpID")); filter.add(new MatchField("epi.PayGroupID", "pp.PayGroupID")); filter.add(new MatchField("epi.EmpPosEffFr", "<=", "pp.PayPeriodTo")); filter.add(new Match("pp.PayPeriodID", currentPayPeriodID)); filter.add(WebUtils.AddRankFilter(Session, "EmpID", true)); OR orFilter = new OR(); orFilter.add(new MatchField("epi.EmpPosEffTo", ">=", "pp.PayPeriodFr")); orFilter.add(new NullTerm("epi.EmpPosEffTo")); filter.add(orFilter); filter.add(new MatchField("EmpDateOfJoin", "<=", "pp.PayPeriodTo ")); OR otherConstraint = new OR(); OR orIncludeEmployeeTermination = new OR(); DBFilter empTerminationFilter = new DBFilter(); empTerminationFilter.add(new MatchField("et.EmpTermLastDate", ">=", "pp.PayPeriodFr")); orIncludeEmployeeTermination.add(new IN(" empid", "Select et.empid from " + EEmpTermination.db.dbclass.tableName + " et ", empTerminationFilter)); orIncludeEmployeeTermination.add(new IN("NOT empid", "Select et.empid from " + EEmpTermination.db.dbclass.tableName + " et ", new DBFilter())); otherConstraint.add(orIncludeEmployeeTermination); //OR orIncludeBackPay = new OR(); DBFilter empCNDFilter = new DBFilter(); empCNDFilter.add(new MatchField("CNDEffDate", "<=", "pp.PayperiodTo")); empCNDFilter.add(new MatchField("CNDEffDate", ">=", "epi.EmpPosEffFr")); OR orCNDPos = new OR(); orCNDPos.add(new MatchField("CNDEffDate", "<=", "epi.EmpPosEffTo")); orCNDPos.add(new NullTerm("epi.EmpPosEffTo")); empCNDFilter.add(orCNDPos); OR orCNDPayRecID = new OR(); orCNDPayRecID.add(new Match("PayRecID", 0)); orCNDPayRecID.add(new NullTerm("PayRecID")); empCNDFilter.add(orCNDPayRecID); otherConstraint.add(new IN(" empid", "Select cnd.empid from " + EClaimsAndDeductions.db.dbclass.tableName + " cnd ", empCNDFilter)); //otherConstraint.add(orIncludeBackPay); filter.add(otherConstraint); DBFilter resultFilter = new DBFilter(); resultFilter.add(inTerm); ArrayList empList = EEmpPersonalInfo.db.select(dbConn, resultFilter); Session["PayrollContinuousProcess_EmpList"] = empList; intTotal = empList.Count; } ArrayList list = (ArrayList)Session["PayrollContinuousProcess_EmpList"]; if (list.Count > 0) { //string[] strEmpIDListArray; //int intProgress = 0; //strEmpIDListArray = strEmpIDList.Split(new char[] { '_' }); //intProgress = 0; DateTime dtStartTime = AppUtils.ServerDateTime(); int UserID = WebUtils.GetCurUser(Session).UserID; HROne.Payroll.PayrollProcess payrollProcess = new HROne.Payroll.PayrollProcess(dbConn); while (AppUtils.ServerDateTime().Subtract(dtStartTime).Seconds < 30 && list.Count > 0) { EEmpPersonalInfo empInfo = (EEmpPersonalInfo)list[0]; //int intEmpID; //if (int.TryParse(strEmpIDListArray[intProgress], out intEmpID)) //{ DBFilter filter = new DBFilter(); filter.add(new Match("EmpID", empInfo.EmpID)); filter.add(WebUtils.AddRankFilter(new Page().Session, "EmpID", true)); if (EEmpPersonalInfo.db.count(dbConn, filter) > 0) { bool ActualRecurringPaymentProcess = !SkipRecurringPaymentProcess; bool ActualYearEndBonusProcess = !SkipYearEndBonusProcess; EEmpTermination empTerm = EEmpTermination.GetObjectByEmpID(dbConn, empInfo.EmpID); if (empTerm != null) { if (empTerm.EmpTermLastDate < dtPayPeriodFr) { ActualRecurringPaymentProcess = false; ActualYearEndBonusProcess = false; } } WebUtils.StartFunction(Session, CONFIRM_FUNCTION_CODE, empInfo.EmpID, false); payrollProcess.PayrollConfirm(payrollProcess.PayrollTrialRun(currentPayPeriodID, empInfo.EmpID, ActualRecurringPaymentProcess, !SkipClaimsAndDeductionsProcess, !SkipAdditionalRenumerationProcess, ActualYearEndBonusProcess, false, UserID), PayBatchID, UserID); WebUtils.EndFunction(dbConn); } //} //intProgress++; //if (intProgress == strEmpIDListArray.GetLength(0)) // break; list.Remove(empInfo); } } lblProgress.Text = (intTotal - list.Count).ToString() + " of " + intTotal.ToString(); if (list.Count == 0) { Session.Remove("PayrollContinuousProcess_EmpList"); EPayrollPeriod payPeriod = new EPayrollPeriod(); payPeriod.PayPeriodID = currentPayPeriodID; EPayrollPeriod.db.select(dbConn, payPeriod); HROne.Payroll.PayrollProcess payrollProcess = new HROne.Payroll.PayrollProcess(dbConn); WebUtils.StartFunction(Session, PROCESSEND_FUNCTION_CODE, false); payrollProcess.PayrollProcessEnd(payPeriod.PayPeriodID, WebUtils.GetCurUser(Session).UserID); payrollProcess.GenerateNextPayrollPeriod(payPeriod.PayGroupID); WebUtils.EndFunction(dbConn); currentSelectedPayGroupSeq++; string url = Request.Url.AbsolutePath + "?PayGroupIDList=" + string.Join("|", payGroupStringList) + "&PayPeriodFr=" + dtPayPeriodFr.Ticks + "&PayPeriodTo=" + dtPayPeriodTo.Ticks + "&NextPayPeriodFr=" + NextPayPeriodFr.Ticks + "&SelectedPayGroupSeq=" + currentSelectedPayGroupSeq + "&SkipRecurringPaymentProcess=" + (SkipRecurringPaymentProcess ? "Yes" : "No") + "&SkipClaimsAndDeductionsProcess=" + (SkipClaimsAndDeductionsProcess ? "Yes" : "No") + "&SkipYearEndBonusProcess=" + (SkipYearEndBonusProcess ? "Yes" : "No") + "&SkipAdditionalRenumerationProcess=" + (SkipAdditionalRenumerationProcess ? "Yes" : "No") ; WebUtils.RegisterRedirectJavaScript(this, url, 500); //payPeriod = HROne.Payroll.PayrollProcess.GenerateNextPayrollPeriod(payPeriod.PayGroupID); //noOfCycleLeft--; //if (noOfCycleLeft > 0) //{ // if (payPeriod != null) // { // Response.Write(@"<script language='javascript'>"); // Response.Write(@"setTimeout('Redirect()',500);"); // Response.Write(@"function Redirect()"); // Response.Write(@"{"); // Response.Write(@"window.location = 'Payroll_ProcessContinuous_Process.aspx?" // + "PayPeriodID=" + payPeriod.PayPeriodID // + "&PayBatchID=" + 0 // + "&NoOfCycleLeft=" + noOfCycleLeft // + "&Total=" + 0 // //+ "&EmpID=" + strRemainder // + "';"); // Response.Write(@"}"); // Response.Write(@"</script>"); // } //} } else { string url = Request.Url.AbsolutePath + "?PayGroupIDList=" + string.Join("|", payGroupStringList) + "&PayPeriodFr=" + dtPayPeriodFr.Ticks + "&PayPeriodTo=" + dtPayPeriodTo.Ticks + "&PayPeriodID=" + currentPayPeriodID + "&PayBatchID=" + PayBatchID + "&Total=" + intTotal + "&NextPayPeriodFr=" + NextPayPeriodFr.Ticks + "&SelectedPayGroupSeq=" + currentSelectedPayGroupSeq + "&SkipRecurringPaymentProcess=" + (SkipRecurringPaymentProcess ? "Yes" : "No") + "&SkipClaimsAndDeductionsProcess=" + (SkipClaimsAndDeductionsProcess ? "Yes" : "No") + "&SkipYearEndBonusProcess=" + (SkipYearEndBonusProcess ? "Yes" : "No") + "&SkipAdditionalRenumerationProcess=" + (SkipAdditionalRenumerationProcess ? "Yes" : "No") ; WebUtils.RegisterRedirectJavaScript(this, url, 500); } EPayrollGroup payGroup = new EPayrollGroup(); payGroup.LoadDBObject(dbConn, currentPayPeriod.PayGroupID); lblProgressMessage.Text = "Payroll process is in progress (" + payGroup.PayGroupCode + ":" + currentPayPeriod.PayPeriodFr.ToString("yyyy-MM-dd") + " To " + currentPayPeriod.PayPeriodTo.ToString("yyyy-MM-dd") + ")"; } else { lblProgressMessage.Text = "Payroll process is completed"; } HROne.Common.WebUtility.WebControlsLocalization(this, this.Controls); }
protected void btnExport_Click(object sender, EventArgs e) { ArrayList list = WebUtils.SelectedRepeaterItemToBaseObjectList(ECostAllocation.db, Repeater, "ItemSelect"); int GroupingHierarchyLevelID = 1; string GroupingHierarchyLevelDesc = string.Empty; if (list.Count > 0) { 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(); CreateSummaryDataTable(dataSet); DBFilter hierarchyLevelFilter = new DBFilter(); Hashtable hierarchyLevelHashTable = new Hashtable(); hierarchyLevelFilter.add("HLevelSeqNo", true); ArrayList hierarchyLevelList = EHierarchyLevel.db.select(dbConn, hierarchyLevelFilter); foreach (EHierarchyLevel hlevel in hierarchyLevelList) { if (string.IsNullOrEmpty(GroupingHierarchyLevelDesc)) { GroupingHierarchyLevelID = hlevel.HLevelID; GroupingHierarchyLevelDesc = hlevel.HLevelDesc.Trim(); } hierarchyLevelHashTable.Add(hlevel.HLevelID, hlevel); } foreach (ECostAllocation obj in list) { if (ECostAllocation.db.select(dbConn, obj)) { EEmpPayroll empPayroll = new EEmpPayroll(); empPayroll.EmpPayrollID = obj.EmpPayrollID; EEmpPayroll.db.select(dbConn, empPayroll); EPayrollPeriod payPeriod = new EPayrollPeriod(); payPeriod.PayPeriodID = empPayroll.PayPeriodID; EPayrollPeriod.db.select(dbConn, payPeriod); EPayrollGroup payGroup = new EPayrollGroup(); payGroup.PayGroupID = payPeriod.PayGroupID; EPayrollGroup.db.select(dbConn, payGroup); EEmpPersonalInfo empInfo = new EEmpPersonalInfo(); empInfo.EmpID = obj.EmpID; EEmpPersonalInfo.db.select(dbConn, empInfo); DBFilter costAllocationDetailFilter = new DBFilter(); costAllocationDetailFilter.add(new Match("CostAllocationID", obj.CostAllocationID)); ArrayList costAllocationDetailList = ECostAllocationDetail.db.select(dbConn, costAllocationDetailFilter); foreach (ECostAllocationDetail detail in costAllocationDetailList) { ECompany company = new ECompany(); company.CompanyID = detail.CompanyID; ECompany.db.select(dbConn, company); ECostCenter costCenter = new ECostCenter(); costCenter.CostCenterID = detail.CostCenterID; ECostCenter.db.select(dbConn, costCenter); int HElementID = 0; string hElementDesc = string.Empty; DBFilter costAllocationDetailHierarchyFilter = new DBFilter(); costAllocationDetailHierarchyFilter.add(new Match("CostAllocationDetailID", detail.CostAllocationDetailID)); ArrayList empHierarchyList = ECostAllocationDetailHElement.db.select(dbConn, costAllocationDetailHierarchyFilter); foreach (ECostAllocationDetailHElement 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)) { // Select first hierarchy for testing if (hierarchyLevel.HLevelDesc.Equals(GroupingHierarchyLevelDesc.Trim()) && HElementID == 0) { HElementID = hierarchyElement.HElementID; hElementDesc = hierarchyElement.HElementDesc; } } } } DataTable hierarchyTable = dataSet.Tables["hierarchy"]; DataTable paymentTable = dataSet.Tables["payment"]; DataTable contributionTable = dataSet.Tables["contribution"]; DataRow[] rows = hierarchyTable.Select("CompanyID=" + company.CompanyID + " and PayGroupID=" + payGroup.PayGroupID + " and HElementID=" + HElementID + " and CostCenterID=" + detail.CostCenterID); int hierarchyRowID = 0; if (rows.Length == 0) { hierarchyRowID = hierarchyTable.Rows.Count + 1; DataRow hierarchyRow = hierarchyTable.NewRow(); hierarchyRow["ID"] = hierarchyRowID; hierarchyRow["Company"] = company.CompanyName; hierarchyRow["PayrollGroupDesc"] = payGroup.PayGroupDesc; hierarchyRow["HierarchyDesc"] = hElementDesc; hierarchyRow["CostCenterDesc"] = costCenter.CostCenterDesc; hierarchyRow["CompanyID"] = company.CompanyID; hierarchyRow["hElementID"] = HElementID; hierarchyRow["CostCenterID"] = costCenter.CostCenterID; hierarchyRow["PayGroupID"] = payGroup.PayGroupID; hierarchyTable.Rows.Add(hierarchyRow); } else { hierarchyRowID = (int)rows[0]["ID"]; } EPaymentCode paymentCode = new EPaymentCode(); paymentCode.PaymentCodeID = detail.PaymentCodeID; EPaymentCode.db.select(dbConn, paymentCode); if (!detail.CostAllocationDetailIsContribution) { if (!paymentTable.Columns.Contains(paymentCode.PaymentCodeDesc.Trim())) { paymentTable.Columns.Add(paymentCode.PaymentCodeDesc.Trim(), typeof(double)); } rows = paymentTable.Select("ID=" + hierarchyRowID); DataRow paymentRow; if (rows.Length == 0) { paymentRow = paymentTable.NewRow(); paymentRow["ID"] = hierarchyRowID; paymentTable.Rows.Add(paymentRow); } else { paymentRow = rows[0]; } if (paymentRow.IsNull(paymentCode.PaymentCodeDesc.Trim())) { paymentRow[paymentCode.PaymentCodeDesc.Trim()] = detail.CostAllocationDetailAmount; } else { paymentRow[paymentCode.PaymentCodeDesc.Trim()] = (double)paymentRow[paymentCode.PaymentCodeDesc.Trim()] + detail.CostAllocationDetailAmount; } } else { rows = contributionTable.Select("ID=" + hierarchyRowID); DataRow contributionRow; if (rows.Length == 0) { contributionRow = contributionTable.NewRow(); contributionRow["ID"] = hierarchyRowID; contributionRow["MCEE"] = 0; contributionRow["MCER"] = 0; contributionRow["VCEE"] = 0; contributionRow["VCER"] = 0; contributionRow["PFUNDEE"] = 0; contributionRow["PFUNDER"] = 0; contributionTable.Rows.Add(contributionRow); } else { contributionRow = rows[0]; } if (paymentCode.PaymentTypeID.Equals(EPaymentType.SystemPaymentType.MPFEmployeeMandatoryContributionPaymentType(dbConn).PaymentTypeID)) { contributionRow["MCEE"] = (double)contributionRow["MCEE"] + detail.CostAllocationDetailAmount; } else if (paymentCode.PaymentTypeID.Equals(EPaymentType.SystemPaymentType.MPFEmployeeVoluntaryContributionPaymentType(dbConn).PaymentTypeID)) { contributionRow["VCEE"] = (double)contributionRow["VCEE"] + detail.CostAllocationDetailAmount; } else if (paymentCode.PaymentTypeID.Equals(EPaymentType.SystemPaymentType.MPFEmployerMandatoryContributionPaymentType(dbConn).PaymentTypeID)) { contributionRow["MCER"] = (double)contributionRow["MCER"] + detail.CostAllocationDetailAmount; } else if (paymentCode.PaymentTypeID.Equals(EPaymentType.SystemPaymentType.MPFEmployerVoluntaryContributionPaymentType(dbConn).PaymentTypeID)) { contributionRow["VCER"] = (double)contributionRow["VCER"] + detail.CostAllocationDetailAmount; } else if (paymentCode.PaymentTypeID.Equals(EPaymentType.SystemPaymentType.PFundEmployeeContributionPaymentType(dbConn).PaymentTypeID)) { contributionRow["PFUNDEE"] = (double)contributionRow["PFUNDEE"] + detail.CostAllocationDetailAmount; } else if (paymentCode.PaymentTypeID.Equals(EPaymentType.SystemPaymentType.PFundEmployerContributionPaymentType(dbConn).PaymentTypeID)) { contributionRow["PFUNDER"] = (double)contributionRow["PFUNDER"] + detail.CostAllocationDetailAmount; } } } } } GenerateExcelReport(dataSet, exportFileName); //export.Update(dataSet); WebUtils.TransmitFile(Response, exportFileName, "CostALlocation" + (CostAllocationStatus.SelectedValue.Equals("T") ? "Trial" : "Confirm") + "_" + AppUtils.ServerDateTime().ToString("yyyyMMddHHmmss") + ".xls", true); Response.End(); } else { PageErrors errors = PageErrors.getErrors(db, Page.Master); errors.addError("Employee not selected"); } view = loadData(info, EEmpPayroll.db, Repeater); }
protected void Delete_Click(object sender, EventArgs e) { EPayrollGroup o = new EPayrollGroup(); o.PayGroupID = CurID; if (EPayrollGroup.db.select(dbConn, o)) { PageErrors errors = PageErrors.getErrors(db, Page.Master); errors.clear(); DBFilter payPeriodFilter = new DBFilter(); payPeriodFilter.add(new Match("PayGroupID", o.PayGroupID)); DBFilter empPayrollFilter = new DBFilter(); empPayrollFilter.add(new IN("PayPeriodID", "Select PayPeriodID from PayrollPeriod", payPeriodFilter)); ArrayList empPayrollList = EEmpPayroll.db.select(dbConn, empPayrollFilter); if (empPayrollList.Count == 0) { DBFilter empPosFilter = new DBFilter(); empPosFilter.add(new Match("PayGroupID", o.PayGroupID)); empPosFilter.add("empid", true); ArrayList empPosList = EEmpPositionInfo.db.select(dbConn, empPosFilter); if (empPosList.Count > 0) { errors.addError(string.Format(HROne.Translation.PageErrorMessage.ERROR_CODE_USED_BY_EMPLOYEE, new string[] { HROne.Common.WebUtility.GetLocalizedString("Payroll Code"), o.PayGroupCode })); //errors.addError("Payroll Code '" + o.PayGroupCode + "' is mapped by the following employee: "); foreach (EEmpPositionInfo empPos in empPosList) { EEmpPersonalInfo empInfo = new EEmpPersonalInfo(); empInfo.EmpID = empPos.EmpID; if (EEmpPersonalInfo.db.select(dbConn, empInfo)) { errors.addError("- " + empInfo.EmpNo + ", " + empInfo.EmpEngFullName); } else { EEmpPositionInfo.db.delete(dbConn, empPos); } } errors.addError(HROne.Translation.PageErrorMessage.ERROR_ACTION_ABORT); } else { EPayrollPeriod.db.delete(dbConn, payPeriodFilter); WebUtils.StartFunction(Session, FUNCTION_CODE); EPayrollGroup.db.delete(dbConn, o); WebUtils.EndFunction(dbConn); } } else { EPayrollGroup.db.select(dbConn, o); errors.addError("Payroll Code '" + o.PayGroupCode + "' is in use. Action abort!"); } if (!errors.isEmpty()) { return; } } HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "Payroll_Group_List.aspx"); }
// End 0000096, KuangWei, 2014-09-18 protected void Page_Load(object sender, EventArgs e) { if (!WebUtils.CheckAccess(Response, Session, FUNCTION_CODE, WebUtils.AccessLevel.Read)) { return; } if (!WebUtils.CheckPermission(Session, FUNCTION_CODE, WebUtils.AccessLevel.ReadWrite)) { panelProcessEndOption.Visible = false; } else { panelProcessEndOption.Visible = true; } btnProcessEnd.OnClientClick = HROne.Translation.PromptMessage.PAYROLL_PROCESS_END_GENERIC_JAVASCRIPT; binding = new Binding(dbConn, db); // Start 0000069, KuangWei, 2014-08-26 //binding.add(new DropDownVLBinder(db, PayGroupID, EPayrollGroup.VLPayrollGroup)); initPayrollGroup(); // End 0000069, KuangWei, 2014-08-26 binding.add(CurrentPayPeriodID); DBFilter payPeriodFilter = new DBFilter(); payPeriodFilter.add(new Match("PayPeriodStatus", "<>", "T")); payPeriodFilter.add(new Match("PayPeriodStatus", "<>", "E")); if (!int.TryParse(PayGroupID.SelectedValue, out CurID)) { if (!int.TryParse(DecryptedRequest["PayGroupID"], out CurID)) { CurID = -1; } } payPeriodFilter.add(new Match("PayGroupID", CurID)); payPeriodFilter.add("PayPeriodFr", false); binding.add(new DropDownVLBinder(EPayrollPeriod.db, PayPeriodID, EPayrollPeriod.VLPayrollPeriod, payPeriodFilter)); binding.init(Request, Session); sNotConfirmEmpBinding = new SearchBinding(dbConn, EEmpPersonalInfo.db); //sNotConfirmEmpBinding.add(new HiddenMatchBinder(CurrentPayPeriodID,"ep.PayPeriodID" )); sNotTrialRunEmpBinding = new SearchBinding(dbConn, EEmpPersonalInfo.db); //sNotTrialRunEmpBinding.add(new HiddenMatchBinder(CurrentPayPeriodID, "pp.PayPeriodID")); if (!int.TryParse(PayPeriodID.SelectedValue, out CurPayPeriodID)) { if (!int.TryParse(DecryptedRequest["PayPeriodID"], out CurPayPeriodID)) { EPayrollGroup obj = new EPayrollGroup(); obj.PayGroupID = CurID; if (EPayrollGroup.db.select(dbConn, obj)) { CurPayPeriodID = obj.CurrentPayPeriodID; } else { CurPayPeriodID = -1; } } } HROne.Common.WebUtility.WebControlsLocalization(this, this.Controls); NotConfirmEmpInfo = NotConfirm_ListFooter.ListInfo; //new ListInfo(); NotTrialRunEmpInfo = NotTrialRun_ListFooter.ListInfo; //new ListInfo(); if (!Page.IsPostBack) { loadObject(); //loadState(); if (CurID > 0) { panelPayPeriod.Visible = true; NotConfirmEmpView = loadNotConfirmData(NotConfirmEmpInfo, EEmpPayroll.db, NotConfirm_Repeater); NotTrialRunEmpView = loadNotTrialRunData(NotTrialRunEmpInfo, EEmpPersonalInfo.db, NotTrialRun_Repeater); } else { panelPayPeriod.Visible = false; panelProcessEndOption.Visible = false; } } }
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"); } }