protected void btnExport_Click(object sender, EventArgs e) { PageErrors errors = PageErrors.getErrors(db, Page.Master); errors.clear(); //Hashtable values = new Hashtable(); //binding.toValues(values); string m_schemeCode = ""; string m_paymentCode = ""; int m_paymentCodeID = -1; DateTime m_paymentDate = new DateTime(); EPaymentCode m_paymentCodeObj; if (SchemeCode.SelectedIndex > 0) { m_schemeCode = SchemeCode.SelectedValue; } if (BackpayDate.Value != "") { m_paymentDate = DateTime.Parse(BackpayDate.Value); } else { errors.addError("Please provide a Backpay Payment Date"); return; } if (PaymentCode.SelectedIndex > 0) { m_paymentCode = PaymentCode.SelectedValue; m_paymentCodeObj = EPaymentCode.GetObject(dbConn, m_paymentCode.Substring(0, m_paymentCode.IndexOf("-")).Trim()); if (m_paymentCodeObj == null) { errors.addError("Cannot resolve Backpay Payment Code"); return; } } else { errors.addError("Pelase select a Backpay Payment Code"); return; } DataSet dataSet = GenerateBackpayTemplate(m_schemeCode, m_paymentCodeObj.PaymentCodeID, m_paymentDate); string exportFileName = System.IO.Path.GetTempFileName(); System.IO.File.Delete(exportFileName); exportFileName += ".xls"; HROne.Export.ExcelExport export = new HROne.Export.ExcelExport(exportFileName); export.Update(dataSet); WebUtils.TransmitFile(Response, exportFileName, "BackpayCND_" + AppUtils.ServerDateTime().ToString("yyyyMMddHHmmss") + ".xls", true); }
protected void Repeater_ItemDataBound(object sender, DataListItemEventArgs e) { Label m_PaymentCodeLabel = (Label)e.Item.FindControl("PaymentCode"); int m_payCodeID = (int)((DataRowView)e.Item.DataItem)["PayCodeID"]; EPaymentCode m_payCode = EPaymentCode.GetObject(dbConn, m_payCodeID); if (m_payCode != null) { m_PaymentCodeLabel.Text = m_payCode.PaymentCode; } }
protected void btnGenerateCND_Click(object sender, EventArgs e) { PageErrors errors = PageErrors.getErrors(db, Page.Master); errors.clear(); // string m_schemeCode = ""; string m_paymentCode = ""; int m_paymentCodeID = -1; DateTime m_paymentDate = new DateTime(); EPaymentCode m_paymentCodeObj; if (PaymentDate.Text != "") { m_paymentDate = DateTime.Parse(PaymentDate.Text); } else { errors.addError("Please provide a Backpay Payment Date"); return; } if (PaymentCode.Text != "") { m_paymentCode = PaymentCode.Text; m_paymentCodeObj = EPaymentCode.GetObject(dbConn, PaymentCode.Text); if (m_paymentCodeObj == null) { errors.addError("Cannot resolve Backpay Payment Code"); return; } } else { errors.addError("Pelase select a Backpay Payment Code"); return; } DataSet dataSet = GenerateCND(CurID, m_paymentCodeObj.PaymentCodeID, m_paymentDate); string exportFileName = System.IO.Path.GetTempFileName(); System.IO.File.Delete(exportFileName); exportFileName += ".xls"; HROne.Export.ExcelExport export = new HROne.Export.ExcelExport(exportFileName); export.Update(dataSet); WebUtils.TransmitFile(Response, exportFileName, "BackpayCND_" + AppUtils.ServerDateTime().ToString("yyyyMMddHHmmss") + ".xls", true); }
protected void Repeater_ItemDataBound(object sender, DataListItemEventArgs e) { //EUploadHitRateProcess obj = new EUploadHitRateProcess(); //db.toObject(((DataRowView)e.Item.DataItem).Row, obj); //if (e.Item.ItemIndex == Repeater.EditItemIndex) //{ // ebinding = new Binding(dbConn, db); // ebinding.add((HtmlInputHidden)e.Item.FindControl("HitRateProcessID")); // ebinding.add((TextBox)e.Item.FindControl("HitRate")); // ebinding.init(Request, Session); // Hashtable values = new Hashtable(); // db.populate(obj, values); // ebinding.toControl(values); //} //else //{ // HtmlInputHidden h = (HtmlInputHidden)e.Item.FindControl("UploadHitRateProcessID"); // h.Value = ((DataRowView)e.Item.DataItem)["UploadHitRateProcessID"].ToString(); // ebinding = new Binding(dbConn, db); // ebinding.init(Request, Session); // Hashtable values = new Hashtable(); // db.populate(obj, values); // ebinding.toControl(values); //} Label m_PaymentCodeLabel = (Label)e.Item.FindControl("PaymentCode"); int m_payCodeID = (int)((DataRowView)e.Item.DataItem)["PayCodeID"]; EPaymentCode m_payCode = EPaymentCode.GetObject(dbConn, m_payCodeID); if (m_payCode != null) { m_PaymentCodeLabel.Text = m_payCode.PaymentCode; } HROne.Common.WebUtility.WebControlsLocalization(this, e.Item.Controls); }
protected void Repeater_ItemDataBound(object sender, RepeaterItemEventArgs e) { DataRowView row = (DataRowView)e.Item.DataItem; CheckBox cb = (CheckBox)e.Item.FindControl("ItemSelect"); WebFormUtils.LoadKeys(db, row, cb); e.Item.FindControl("ItemSelect").Visible = toolBar.DeleteButton_Visible; Binding ebinding; EBonusProcess obj = new EBonusProcess(); db.toObject(((DataRowView)e.Item.DataItem).Row, obj); if (obj.BonusProcessPayCodeID > 0) { //((HtmlAnchor)e.Item.FindControl("BonusProcessMonth")).InnerText = obj.BonusProcessMonth.ToString("yyyy-MM"); ((Label)e.Item.FindControl("BonusProcessPayDate")).Text = obj.BonusProcessPayDate.ToString("yyyy-MM-dd"); switch (obj.BonusProcessStatus) { case EBonusProcess.STATUS_CANCELLED: ((Label)e.Item.FindControl("BonusProcessStatus")).Text = EBonusProcess.STATUS_CANCELLED_DESC; break; case EBonusProcess.STATUS_NORMAL: ((Label)e.Item.FindControl("BonusProcessStatus")).Text = EBonusProcess.STATUS_NORMAL_DESC; break; case EBonusProcess.STATUS_CONFIRMED: ((Label)e.Item.FindControl("BonusProcessStatus")).Text = EBonusProcess.STATUS_CONFIRMED_DESC; break; } EPaymentCode m_payCode = EPaymentCode.GetObject(dbConn, obj.BonusProcessPayCodeID); if (m_payCode != null) { // ((Label)e.Item.FindControl("BonusProcessPayCode")).Text = m_payCode.PaymentCodeDesc; ((Label)e.Item.FindControl("BonusProcessPayCode")).Text = m_payCode.PaymentCodeDesc; } } }
private DataSet GenerateBackpayTemplate(String schemeCode, int paymentCodeID, DateTime paymentDate) { //Dictionary<int, string> m_PaymentCodeList = new Dictionary<int, string>(); //foreach (EPaymentCode o in EPaymentCode.db.select(dbConn, new DBFilter())) //{ // m_PaymentCodeList.Add(o.PaymentCodeID, o.PaymentCode); //} string m_paymentCode = (EPaymentCode.GetObject(dbConn, paymentCodeID)).PaymentCode; DataSet dataSet = new DataSet();//export.GetDataSet(); DataTable dataTable = new DataTable("ClaimsAndDeduction$"); dataSet.Tables.Add(dataTable); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EMP_NO, typeof(string)); dataTable.Columns.Add("English Name", typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EFFECTIVE_DATE, typeof(DateTime)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_CODE, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_BANK_ACCOUNT_NO, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_AMOUNT, typeof(double)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_NUM_OF_DAY_ADJUST, typeof(double)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REST_PAYMENT, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REMARK, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_COST_CENTER, typeof(string)); DBFilter m_payscaleFilter = new DBFilter(); m_payscaleFilter.add(new NullTerm("ExpiryDate")); if (schemeCode != "") { m_payscaleFilter.add(new Match("SchemeCode", schemeCode)); } m_payscaleFilter.add("EffectiveDate", false); foreach (EPayScaleMap m_latestPayscale in EPayScaleMap.db.select(dbConn, m_payscaleFilter)) { DBFilter m_payPeriodFilter = new DBFilter(); m_payPeriodFilter.add(new Match("PayPeriodFr", ">=", m_latestPayscale.EffectiveDate)); m_payPeriodFilter.add(new Match("PayPeriodStatus", "=", EPayrollPeriod.PAYPERIOD_STATUS_PROCESSEND_FLAG)); m_payPeriodFilter.add(WebUtils.AddRankFilter(Session, "EmpID", true)); foreach (EPayrollPeriod m_payrollPeriod in EPayrollPeriod.db.select(dbConn, m_payPeriodFilter)) { DBFilter m_empPayrollFilter = new DBFilter(); m_empPayrollFilter.add(new Match("PayPeriodID", m_payrollPeriod.PayPeriodID)); DBFilter m_paymentRecordFilter = new DBFilter(); DBFilter m_paymentTypeFilter = new DBFilter(); DBFilter m_paymentCodeFilter = new DBFilter(); m_paymentTypeFilter.add(new Match("PaymentTypeCode", "BASICSAL")); m_paymentCodeFilter.add(new IN("PaymentTypeID", "SELECT PaymentTypeID FROM PaymentType", m_paymentTypeFilter)); m_paymentRecordFilter.add(new Match("EmpRPIDforBP", ">", 0)); m_paymentRecordFilter.add(new IN("EmpPayrollID", "SELECT EmpPayrollID FROM EmpPayroll", m_empPayrollFilter)); m_paymentRecordFilter.add(new IN("PaymentCodeID", "SELECT PaymentCodeID FROM PaymentCode", m_paymentCodeFilter)); foreach (EPaymentRecord m_payRecord in EPaymentRecord.db.select(dbConn, m_paymentRecordFilter)) { EEmpRecurringPayment m_empRP = EEmpRecurringPayment.GetObject(dbConn, m_payRecord.EmpRPIDforBP); if (schemeCode != "") { if (m_empRP.SchemeCode == null || m_empRP.SchemeCode != schemeCode) { break; } } decimal m_newSalary = GetPayScale(m_empRP); string m_remarks = ""; double m_amount = 0; if (m_newSalary > 0) { // m_amount = Math.Round((m_payRecord.PayRecActAmount / m_empRP.EmpRPAmount) * (System.Convert.ToDouble(m_newSalary) - m_empRP.EmpRPAmount), 2); int m_daysInMonth = DateTime.DaysInMonth(m_payrollPeriod.PayPeriodFr.Year, m_payrollPeriod.PayPeriodFr.Month); if (m_payRecord.PayRecNumOfDayAdj != m_daysInMonth) { m_amount = Math.Round((System.Convert.ToDouble(m_newSalary) - m_empRP.EmpRPAmount) * m_payRecord.PayRecNumOfDayAdj / m_daysInMonth, 2); m_remarks = String.Format("Backpay {0}: ({1}-{2})*{3}/{4}.", m_payrollPeriod.PayPeriodFr.ToString("yyyy-MM"), m_newSalary.ToString("#,##0.00"), m_empRP.EmpRPAmount.ToString("#,##0.00"), m_payRecord.PayRecNumOfDayAdj, m_daysInMonth); } else { m_amount = Math.Round((System.Convert.ToDouble(m_newSalary) - m_empRP.EmpRPAmount), 2); m_remarks = String.Format("Backpay {0}: {1}-{2}.", m_payrollPeriod.PayPeriodFr.ToString("yyyy-MM"), m_newSalary.ToString("#,##0.00"), m_empRP.EmpRPAmount.ToString("#,##0.00")); } if (m_amount > 0) { EEmpPersonalInfo m_empInfo = new EEmpPersonalInfo(); m_empInfo.EmpID = m_empRP.EmpID; EEmpPersonalInfo.db.select(dbConn, m_empInfo); DataRow m_row = dataTable.NewRow(); m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EMP_NO] = m_empInfo.EmpNo; m_row["English Name"] = m_empInfo.EmpEngFullName; m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EFFECTIVE_DATE] = paymentDate; m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_CODE] = m_paymentCode; switch (m_empRP.EmpRPMethod) { case "A": m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Autopay"; break; case "Q": m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Cheque"; break; case "C": m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Cash"; break; default: m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Other"; break; } m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_AMOUNT] = m_amount; m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_NUM_OF_DAY_ADJUST] = 0; m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REST_PAYMENT] = "No"; m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REMARK] = m_remarks; EEmpBankAccount m_bank = new EEmpBankAccount(); m_bank.EmpBankAccountID = m_empRP.EmpAccID; if (EEmpBankAccount.db.select(dbConn, m_bank)) { m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_BANK_ACCOUNT_NO] = m_bank.EmpAccountNo; } ECostCenter m_costCenter = new ECostCenter(); m_costCenter.CostCenterID = m_empRP.CostCenterID; if (ECostCenter.db.select(dbConn, m_costCenter)) { m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_COST_CENTER] = m_costCenter.CostCenterCode; } dataTable.Rows.Add(m_row); } } } } break; // handle only 1 effective date } return(dataSet); }
//protected void init_PaymentCodeDropdown() //{ // if (PaymentCode.Items.Count <= 0) // { // PaymentCode.Items.Add(new ListItem("Not Selected", "-1")); // DBFilter m_filter = new DBFilter(); // m_filter.add("PaymentCode", true); // foreach (EPaymentCode o in EPaymentCode.db.select(dbConn, m_filter)) // { // PaymentCode.Items.Add(new ListItem(string.Format("{0} - {1}", o.PaymentCode, o.PaymentCodeDesc), o.PaymentCodeID.ToString())); // } // } //} protected DataSet GenerateCND(int ProcessID, DateTime PaymentDate) { EHitRateProcessImportBatch m_process = EHitRateProcessImportBatch.GetObject(dbConn, ProcessID); DataSet dataSet = new DataSet();//export.GetDataSet(); DataTable dataTable = new DataTable("ClaimsAndDeduction$"); dataSet.Tables.Add(dataTable); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EMP_NO, typeof(string)); dataTable.Columns.Add("English Name", typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EFFECTIVE_DATE, typeof(DateTime)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_CODE, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_BANK_ACCOUNT_NO, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_AMOUNT, typeof(double)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_NUM_OF_DAY_ADJUST, typeof(double)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REST_PAYMENT, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REMARK, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_COST_CENTER, typeof(string)); DBFilter m_detailFilter = new DBFilter(); m_detailFilter.add(new Match("HitRateProcessImportBatchID", ProcessID)); m_detailFilter.add("EmpID", true); foreach (EHitRateProcess m_detail in EHitRateProcess.db.select(dbConn, m_detailFilter)) { DBFilter m_rpFilter = new DBFilter(); m_rpFilter.add(new NullTerm("EmpRPEffTo")); m_rpFilter.add(new Match("PayCodeID", m_detail.payCodeID)); m_rpFilter.add(new Match("EmpID", m_detail.EmpID)); m_rpFilter.add("EmpRPEffTo", true); ArrayList m_empRPList = EEmpRecurringPayment.db.select(dbConn, m_rpFilter); if (m_empRPList.Count > 0) { EEmpRecurringPayment m_empRP = (EEmpRecurringPayment)m_empRPList[0]; double m_amount = m_empRP.EmpRPAmount * m_detail.HitRate / (double)100; string m_remarks; // if (m_amount > 0 && Math.Abs(m_amount) >= 0.01) { m_remarks = String.Format("{0}*{1}%", m_empRP.EmpRPAmount.ToString("#,##0.00"), m_detail.HitRate.ToString("#,##0.00")); EEmpPersonalInfo m_empInfo = new EEmpPersonalInfo(); m_empInfo.EmpID = m_empRP.EmpID; EEmpPersonalInfo.db.select(dbConn, m_empInfo); DataRow m_row = dataTable.NewRow(); m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EMP_NO] = m_empInfo.EmpNo; m_row["English Name"] = m_empInfo.EmpEngFullName; m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EFFECTIVE_DATE] = PaymentDate; EPaymentCode m_paymentCode = EPaymentCode.GetObject(dbConn, m_empRP.PayCodeID); m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_CODE] = m_paymentCode.PaymentCode; switch (m_empRP.EmpRPMethod) { case "A": m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Autopay"; break; case "Q": m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Cheque"; break; case "C": m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Cash"; break; default: m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Other"; break; } m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_AMOUNT] = Math.Round(m_amount, 2); m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_NUM_OF_DAY_ADJUST] = 0; //DateTime.DaysInMonth(m_process.AsAtDate); m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REST_PAYMENT] = "No"; m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REMARK] = m_remarks; if (m_empRP.EmpAccID > 0) // account number specified { EEmpBankAccount m_bank = new EEmpBankAccount(); m_bank.EmpBankAccountID = m_empRP.EmpAccID; if (EEmpBankAccount.db.select(dbConn, m_bank)) { m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_BANK_ACCOUNT_NO] = m_bank.EmpAccountNo; } } //else //{ // // get default bank account // DBFilter m_bankAccFilter = new DBFilter(); // m_bankAccFilter.add(new Match("EmpID", m_empRP.EmpID)); // m_bankAccFilter.add(new Match("EmpAccDefault", true)); // m_bankAccFilter.add("empBankAccountID", true); // ArrayList m_bankAccList = EEmpBankAccount.db.select(dbConn, m_bankAccFilter); // if (m_bankAccList.Count > 0) // { // m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_BANK_ACCOUNT_NO] = ((EEmpBankAccount)m_bankAccList[0]).EmpAccountNo; // } //} ECostCenter m_costCenter = new ECostCenter(); m_costCenter.CostCenterID = m_empRP.CostCenterID; if (ECostCenter.db.select(dbConn, m_costCenter)) { m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_COST_CENTER] = m_costCenter.CostCenterCode; } dataTable.Rows.Add(m_row); } } } return(dataSet); }
protected DataSet GenerateCND(int ProcessID, int PaymentCodeID, DateTime PaymentDate) { EPaymentCode m_paymentCode = EPaymentCode.GetObject(dbConn, PaymentCodeID); ECommissionAchievementImportBatch m_process = ECommissionAchievementImportBatch.GetObject(dbConn, ProcessID); DataSet dataSet = new DataSet();//export.GetDataSet(); DataTable dataTable = new DataTable("ClaimsAndDeduction$"); dataSet.Tables.Add(dataTable); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EMP_NO, typeof(string)); dataTable.Columns.Add("English Name", typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EFFECTIVE_DATE, typeof(DateTime)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_CODE, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_BANK_ACCOUNT_NO, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_AMOUNT, typeof(double)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_NUM_OF_DAY_ADJUST, typeof(double)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REST_PAYMENT, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REMARK, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_COST_CENTER, typeof(string)); DBFilter m_detailFilter = new DBFilter(); m_detailFilter.add(new Match("CAImportBatchID", ProcessID)); m_detailFilter.add("EmpID", true); foreach (ECommissionAchievement m_detail in ECommissionAchievement.db.select(dbConn, m_detailFilter)) { DBFilter m_rpFilter = new DBFilter(); OR m_orDate = new OR(); m_orDate.add(new NullTerm("EmpRPEffTo")); m_orDate.add(new Match("EmpRPEffTo", ">=", m_detail.CAEffDate)); m_rpFilter.add(m_orDate); m_rpFilter.add(new Match("EmpRPEffFr", "<=", m_detail.CAEffDate)); m_rpFilter.add(new Match("EmpID", m_detail.EmpID)); //m_rpFilter.add(new NullTerm("NOT EmpRPBasicSalary")); m_rpFilter.add(new Match("EmpRPBasicSalary", ">", 0)); m_rpFilter.add(new Match("EmpRPFPS", "<", 100)); m_rpFilter.add(new Match("EmpRPFPS", ">", 0)); foreach (EEmpRecurringPayment m_empRP in EEmpRecurringPayment.db.select(dbConn, m_rpFilter)) { double m_amount = m_empRP.EmpRPBasicSalary * m_detail.CAPercent / 100 - m_empRP.EmpRPAmount; string m_remarks; if (m_amount > 0 && Math.Abs(m_amount) >= 0.01) { m_remarks = String.Format("({0}*{1}%) - {2}", m_empRP.EmpRPBasicSalary.ToString("#,##0.00"), m_detail.CAPercent.ToString("#,##0.00"), m_empRP.EmpRPAmount.ToString("#,##0.00")); EEmpPersonalInfo m_empInfo = new EEmpPersonalInfo(); m_empInfo.EmpID = m_empRP.EmpID; EEmpPersonalInfo.db.select(dbConn, m_empInfo); DataRow m_row = dataTable.NewRow(); m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EMP_NO] = m_empInfo.EmpNo; m_row["English Name"] = m_empInfo.EmpEngFullName; m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EFFECTIVE_DATE] = PaymentDate; m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_CODE] = m_paymentCode.PaymentCode; switch (m_empRP.EmpRPMethod) { case "A": m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Autopay"; break; case "Q": m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Cheque"; break; case "C": m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Cash"; break; default: m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Other"; break; } m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_AMOUNT] = Math.Round(m_amount, 2); m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_NUM_OF_DAY_ADJUST] = 0; //DateTime.DaysInMonth(m_process.AsAtDate); m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REST_PAYMENT] = "No"; m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REMARK] = m_remarks; EEmpBankAccount m_bank = new EEmpBankAccount(); m_bank.EmpBankAccountID = m_empRP.EmpAccID; if (EEmpBankAccount.db.select(dbConn, m_bank)) { m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_BANK_ACCOUNT_NO] = m_bank.EmpAccountNo; } ECostCenter m_costCenter = new ECostCenter(); m_costCenter.CostCenterID = m_empRP.CostCenterID; if (ECostCenter.db.select(dbConn, m_costCenter)) { m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_COST_CENTER] = m_costCenter.CostCenterCode; } dataTable.Rows.Add(m_row); } } } return(dataSet); }
public static DataTable ExportTemplate(DatabaseConnection dbConn, ArrayList empList, bool IsIncludeCurrentPositionInfo) { DataTable tmpDataTable = new DataTable(TABLE_NAME); tmpDataTable.Columns.Add(HROne.Import.ImportHitRateBasedPaymentProcess.FIELD_EMP_NO, typeof(string)); if (IsIncludeCurrentPositionInfo) { ImportEmpPersonalInfoProcess.AddEmployeeInfoHeader(tmpDataTable); ImportEmpPositionInfoProcess.AddEmployeePositionInfoHeader(dbConn, tmpDataTable); } //tmpDataTable.Columns.Add(HROne.Import.ImportHitRateBasedPaymentProcess.FIELD_EFF_DATE, typeof(DateTime)); tmpDataTable.Columns.Add(HROne.Import.ImportHitRateBasedPaymentProcess.FIELD_PAYMENT_CODE, typeof(string)); tmpDataTable.Columns.Add(HROne.Import.ImportHitRateBasedPaymentProcess.FIELD_PERCENT, typeof(double)); foreach (EEmpPersonalInfo empInfo in empList) { if (EEmpPersonalInfo.db.select(dbConn, empInfo)) { DBFilter m_empRPFilter = new DBFilter(); m_empRPFilter.add(new Match("EmpID", empInfo.EmpID)); m_empRPFilter.add(new NullTerm("EmpRPEffTo")); m_empRPFilter.add("EmpRPEffFr", true); foreach (EEmpRecurringPayment m_rpInfo in EEmpRecurringPayment.db.select(dbConn, m_empRPFilter)) { EPaymentCode m_paymentCode = EPaymentCode.GetObject(dbConn, m_rpInfo.PayCodeID); if (m_paymentCode.PaymentCodeIsHitRateBased) { DataRow row = tmpDataTable.NewRow(); row[FIELD_EMP_NO] = empInfo.EmpNo; if (IsIncludeCurrentPositionInfo) { ImportEmpPersonalInfoProcess.AddEmployeeInfo(dbConn, row, empInfo.EmpID); ImportEmpPositionInfoProcess.AddEmployeePositionInfo(dbConn, row, empInfo.EmpID); } row[FIELD_PAYMENT_CODE] = m_paymentCode.PaymentCode; int m_monthDiff = AppUtils.ServerDateTime().Year * 12 + AppUtils.ServerDateTime().Month - (empInfo.EmpServiceDate.Year * 12 + empInfo.EmpServiceDate.Month); if (m_paymentCode.PaymentCodeDefaultRateAtMonth1 > 0 && m_monthDiff == 0) // service start in current month { row[FIELD_PERCENT] = m_paymentCode.PaymentCodeDefaultRateAtMonth1; } else if (m_paymentCode.PaymentCodeDefaultRateAtMonth2 > 0 && m_monthDiff == 1) // emp service start in last month { row[FIELD_PERCENT] = m_paymentCode.PaymentCodeDefaultRateAtMonth2; } else if (m_paymentCode.PaymentCodeDefaultRateAtMonth2 > 0 && m_monthDiff == 2) // emp service start in 2 months before this month { row[FIELD_PERCENT] = m_paymentCode.PaymentCodeDefaultRateAtMonth3; } tmpDataTable.Rows.Add(row); } } } } if (IsIncludeCurrentPositionInfo) { ImportEmpPositionInfoProcess.RetriveHierarchyLevelHeader(dbConn, tmpDataTable); } return(tmpDataTable); }
protected void Page_Load(object sender, EventArgs e) { if (!WebUtils.CheckAccess(Response, Session, FUNCTION_CODE, WebUtils.AccessLevel.ReadWrite)) { return; } if (ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_PAYSCALE_POINT_SYSTEM) != "Y") { HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "~/AccessDeny.aspx"); return; } toolBar.FunctionCode = FUNCTION_CODE; #region "binding for Process information" binding = new Binding(dbConn, db); //binding.add(BackpayProcessID); binding.add(AsAtDate); binding.add(new CheckBoxBinder(db, DeferredBatch)); binding.add(PaymentDate); binding.add(new LabelVLBinder(db, Status, ESalaryIncrementBatch.VLStatusDesc)); binding.add(UploadDateTime); binding.add(ConfirmDateTime); // binding.add(UploadEmpID); // load employee name from LoadData // binding.add(ConfirmEmpID); // load employee name from LoadData binding.init(Request, Session); #endregion #region "binding for Process Detail" detailBinding = new SearchBinding(dbConn, db); detailBinding.init(DecryptedRequest, null); #endregion if (!int.TryParse(DecryptedRequest["BatchID"], out CurID)) { CurID = -1; } if (!Page.IsPostBack) { if (CurID > 0) { loadObject(); if (Status.Text != ESalaryIncrementBatch.STATUS_OPEN_DESC) { btnConfirm.Visible = false; btnExport.Visible = false; btnImport.Visible = false; toolBar.DeleteButton_Visible = false; toolBar.EditButton_Visible = false; if (Status.Text == ESalaryIncrementBatch.STATUS_CONFIRMED_DESC) { btnGenerateCND.Visible = DeferredBatch.Checked; } } if (obj != null) { EPaymentCode m_paymentCodeObj = new EPaymentCode(); m_paymentCodeObj = EPaymentCode.GetObject(dbConn, obj.PaymentCodeID); if (m_paymentCodeObj != null) { PaymentCode.Text = m_paymentCodeObj.PaymentCode; PaymentCodeDesc.Text = m_paymentCodeObj.PaymentCodeDesc; } } CNDRow.Visible = DeferredBatch.Checked; } else { btnConfirm.Visible = false; btnExport.Visible = false; btnImport.Visible = false; toolBar.DeleteButton_Visible = false; toolBar.EditButton_Visible = false; } } info = ListFooter.ListInfo; HROne.Common.WebUtility.WebControlsLocalization(this, this.Controls); }
protected bool loadObject() { obj = new EBonusProcess(); bool isNew = WebFormWorkers.loadKeys(db, obj, DecryptedRequest); if (!db.select(dbConn, obj)) { return(false); } BonusProcessID.Value = obj.BonusProcessID.ToString("0"); BonusProcessDesc.Text = obj.BonusProcessDesc; BonusProcessMonth.Text = obj.BonusProcessMonth.ToString("yyyy-MM"); BonusProcessPayDate.Text = obj.BonusProcessPayDate.ToString("yyyy-MM-dd"); if (obj.BonusProcessPayCodeID > 0) { EPaymentCode m_code = EPaymentCode.GetObject(dbConn, obj.BonusProcessPayCodeID); BonusProcessPayCode.Text = m_code.PaymentCodeDesc; } BonusProcessStatus.Text = obj.BonusProcessStatus; switch (obj.BonusProcessStatus) { case EBonusProcess.STATUS_NORMAL: BonusProcessStatusDesc.Text = EBonusProcess.STATUS_NORMAL_DESC; break; case EBonusProcess.STATUS_CONFIRMED: BonusProcessStatusDesc.Text = EBonusProcess.STATUS_CONFIRMED_DESC; break; case EBonusProcess.STATUS_CANCELLED: BonusProcessStatusDesc.Text = EBonusProcess.STATUS_CANCELLED_DESC; break; } if (obj.BonusProcessPeriodFr.Ticks != 0) { BonusProcessPeriodFr.Text = obj.BonusProcessPeriodFr.ToString("yyyy-MM-dd"); } if (obj.BonusProcessPeriodTo.Ticks != 0) { BonusProcessPeriodTo.Text = obj.BonusProcessPeriodTo.ToString("yyyy-MM-dd"); } // Part 1 if (obj.BonusProcessSalaryMonth.Ticks != 0) { BonusProcessSalaryMonth.Text = obj.BonusProcessSalaryMonth.ToString("yyyy-MM-dd"); } BonusProcessStdRate.Text = obj.BonusProcessStdRate.ToString("0.0000"); // Part2 BonusProcessRank1.Text = obj.BonusProcessRank1.ToString("0.00"); BonusProcessRank2.Text = obj.BonusProcessRank2.ToString("0.00"); BonusProcessRank3.Text = obj.BonusProcessRank3.ToString("0.00"); BonusProcessRank4.Text = obj.BonusProcessRank4.ToString("0.00"); BonusProcessRank5.Text = obj.BonusProcessRank5.ToString("0.00"); // load Part1 count DBFilter m_countFilter = new DBFilter(); m_countFilter.add(new Match("BonusProcessID", CurID)); m_countFilter.add(new Match("EmpBonusProcessType", "S")); Part1DataCount.Text = EEmpBonusProcess.db.count(dbConn, m_countFilter).ToString("0"); // load Part2 count m_countFilter = new DBFilter(); m_countFilter.add(new Match("BonusProcessID", CurID)); m_countFilter.add(new Match("EmpBonusProcessType", "D")); Part2DataCount.Text = EEmpBonusProcess.db.count(dbConn, m_countFilter).ToString("0"); // control visibility of commands if (obj.BonusProcessStatus != EBonusProcess.STATUS_NORMAL) { BasicInfoCommands.Visible = false; Part1Commands.Visible = false; Part2Commands.Visible = false; toolBar.EditButton_Visible = false; toolBar.DeleteButton_Visible = false; btnConfirmAndSeal.Visible = false; } return(true); }
public DataSet GenerateCND() { EBonusProcess m_process = EBonusProcess.GetObject(dbConn, m_BonusProcessID); // EPaymentCode m_paymentCode = EPaymentCode.GetObject(dbConn, m_process.BonusProcessPayCodeID); DataSet dataSet = new DataSet();//export.GetDataSet(); DataTable dataTable = new DataTable("ClaimsAndDeduction$"); dataSet.Tables.Add(dataTable); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EMP_NO, typeof(string)); dataTable.Columns.Add("English Name", typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EFFECTIVE_DATE, typeof(DateTime)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_CODE, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_BANK_ACCOUNT_NO, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_AMOUNT, typeof(double)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_NUM_OF_DAY_ADJUST, typeof(double)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REST_PAYMENT, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REMARK, typeof(string)); dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_COST_CENTER, typeof(string)); DBFilter m_detailFilter = new DBFilter(); m_detailFilter.add(new Match("BonusProcessID", m_BonusProcessID)); m_detailFilter.add("EmpID", true); m_detailFilter.add("EmpBonusProcessType", false); // Standard > Discretionary double m_bonusAmount = 0; double m_targetSalary = 0; int m_currentEmpID = -1; string m_payMethod = ""; string m_remarks = ""; string m_bankAccountCode = ""; string m_costCenterCode = ""; DataRow m_row = null; EEmpPersonalInfo m_empInfo = null; double m_proportion = 0; // the proportion of bonus recieved, depending on the join date EBonusProcess m_bonusProcess = EBonusProcess.GetObject(dbConn, m_BonusProcessID); foreach (EEmpBonusProcess m_detail in EEmpBonusProcess.db.select(dbConn, m_detailFilter)) { if (m_detail.EmpID != m_currentEmpID) { if (m_currentEmpID > -1) { dataTable.Rows.Add(m_row); } m_currentEmpID = m_detail.EmpID; m_row = dataTable.NewRow(); GetEmpRecurringPaymentInfo(m_detail.EmpID, m_process.BonusProcessSalaryMonth, out m_targetSalary, out m_payMethod, out m_bankAccountCode, out m_costCenterCode); m_empInfo = EEmpPersonalInfo.GetObject(dbConn, m_detail.EmpID); System.TimeSpan m_totalDaysInPeriod = m_bonusProcess.BonusProcessPeriodTo.Subtract(m_bonusProcess.BonusProcessPeriodFr); System.TimeSpan m_totalDaysJoint = m_bonusProcess.BonusProcessPeriodTo.Subtract((m_empInfo.EmpDateOfJoin < m_bonusProcess.BonusProcessPeriodFr) ? m_bonusProcess.BonusProcessPeriodFr : m_empInfo.EmpDateOfJoin); m_proportion = Math.Round(Convert.ToDouble(m_totalDaysJoint.Days + 1) / Convert.ToDouble(m_totalDaysInPeriod.Days + 1), 4); m_remarks = ""; m_bonusAmount = 0; //re-take targetSalary from RecurringPayment //m_targetSalary = m_detail.EmpBonusProcessTargetSalary; } else // same EmpID { m_remarks += " + "; } if (m_detail.EmpBonusProcessType == "S") { m_bonusAmount = m_targetSalary * m_proportion * m_bonusProcess.BonusProcessStdRate; m_remarks = m_remarks + "(" + m_targetSalary.ToString("#,##0.00") + " * " + m_proportion.ToString("0.0000") + " * " + m_process.BonusProcessStdRate.ToString("0.0000") + ")"; } else if (m_detail.EmpBonusProcessType == "D") { if (m_detail.EmpBonusProcessRank == "1") { m_bonusAmount = m_bonusAmount + m_targetSalary * m_proportion * m_process.BonusProcessRank1 / 100; m_remarks = m_remarks + "(" + m_targetSalary.ToString("#,##0.00") + " * " + m_proportion.ToString("0.0000") + " * " + m_process.BonusProcessRank1.ToString("0.00") + "%)"; } else if (m_detail.EmpBonusProcessRank == "2") { m_bonusAmount = m_bonusAmount + m_targetSalary * m_proportion * m_process.BonusProcessRank2 / 100; m_remarks = m_remarks + "(" + m_targetSalary.ToString("#,##0.00") + " * " + m_proportion.ToString("0.0000") + " * " + m_process.BonusProcessRank2.ToString("0.00") + "%)"; } else if (m_detail.EmpBonusProcessRank == "3") { m_bonusAmount = m_bonusAmount + m_targetSalary * m_proportion * m_process.BonusProcessRank3 / 100; m_remarks = m_remarks + "(" + m_targetSalary.ToString("#,##0.00") + " * " + m_proportion.ToString("0.0000") + " * " + m_process.BonusProcessRank3.ToString("0.00") + "%)"; } else if (m_detail.EmpBonusProcessRank == "4") { m_bonusAmount = m_bonusAmount + m_targetSalary * m_proportion * m_process.BonusProcessRank4 / 100; m_remarks = m_remarks + "(" + m_targetSalary.ToString("#,##0.00") + " * " + m_proportion.ToString("0.0000") + " * " + m_process.BonusProcessRank4.ToString("0.00") + "%)"; } else if (m_detail.EmpBonusProcessRank == "5") { m_bonusAmount = m_bonusAmount + m_targetSalary * m_proportion * m_process.BonusProcessRank5 / 100; m_remarks = m_remarks + "(" + m_targetSalary.ToString("#,##0.00") + " * " + m_proportion.ToString("0.0000") + " * " + m_process.BonusProcessRank5.ToString("0.00") + "%)"; } } m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EMP_NO] = m_empInfo.EmpNo; m_row["English Name"] = m_empInfo.EmpEngFullName; m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EFFECTIVE_DATE] = m_process.BonusProcessPayDate; EPaymentCode m_payCodeObj = EPaymentCode.GetObject(dbConn, m_process.BonusProcessPayCodeID); m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_CODE] = m_payCodeObj.PaymentCode; m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = m_payMethod; m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_NUM_OF_DAY_ADJUST] = 0; //DateTime.DaysInMonth(m_process.AsAtDate); m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REST_PAYMENT] = "No"; m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_AMOUNT] = Math.Round(m_bonusAmount, 2); m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REMARK] = m_remarks; m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_BANK_ACCOUNT_NO] = m_bankAccountCode; m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_COST_CENTER] = m_costCenterCode; } if (m_currentEmpID > -1) // indicate there are CND records written into the table. { dataTable.Rows.Add(m_row); } return(dataSet); }