using SuperMap.RealEstate.Web.UI.WebControls; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using SuperMap.RealEstate.Web.UI; using Running = SuperMap.RealEstate.Personnel.Running; using Business = SuperMap.RealEstate.Personnel.Storage.Business; using SRCDB = SuperMap.RealEstate.CoreFrameWork.Dictionary.Business; using HZQR.Common; using Personnel.WebSite.Shanxi; namespace SuperMap.RealEstate.Personnel.Compents.SalaryPayrollOffice { public partial class Default : UI.UserControlsEx { #region 方法 -> 页面加载 Running.Business.PERSONNELPROINST _PERSONNELPROINST = null; protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; //从选择部门页面,选择的部门内码 if (Request["SELECT_FIELDENUM_ID"] != null) { //存储已选择部门内码 FIELDENUM_ID.Text = Request["SELECT_FIELDENUM_ID"]; //绑定年月 string SALARY_DATE = Request["SALARY_DATE"].ToDecrypt(); ddlYear.SelectedValue = SALARY_DATE.Split('-')[0]; ddlMonth.SelectedValue = SALARY_DATE.Split('-')[1]; } else { //流程数据中的部门内码 DataTable dt = new Business.SALARYPAYROLL_OFFICE(Transaction).ExecuteDataTable(@" SELECT WM_CONCAT(DEPARTMENT_ID)DEPARTMENT_ID,WM_CONCAT(UNIT_ID)UNIT_ID FROM PERSONNEL_RUNNING.T_SALARYPAYROLL_OFFICE WHERE PERSONNELPROINST_ID=" + _PERSONNELPROINST.PERSONNELPROINST_ID + " AND SALARY_DATE='" + ddlYear.SelectedValue + "-" + ddlMonth.SelectedValue.PadLeft(2, '0') + "'"); if (dt.Rows.Count > 0) { FIELDENUM_ID.Text = dt.Rows[0]["DEPARTMENT_ID"].ToString() + "," + dt.Rows[0]["UNIT_ID"].ToString(); FIELDENUM_ID.Text = FIELDENUM_ID.Text.TrimEnd(',').ToEncrypt(); } } GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1); } #endregion #region 方法 -> 页面加载前执行 protected override void OnInit(EventArgs e) { Common.PageHelper.CreateHeaderStyle(Page); _PERSONNELPROINST = Running.Business.PERSONNELPROINST.CreateInstance(Page); base.ButtonVisible = false; base.OnInit(e); } #endregion #region 方法 -> 查询SQL设置 //查询SQL设置 protected void GridViewEx1_SelectMethodParameters(object sender, SelectMethodParametersArgs e) { //搜索选项的搜索条件过滤 //if (!string.IsNullOrEmpty(TextBox_Search.Text)) // e.AddOrParams(GridViewSearch1, TextBox_Search.Text); //且搜索条件 e.AddAndParams("PERSONNELPROINST_ID", _PERSONNELPROINST.PERSONNELPROINST_ID); e.AddAndParams("SALARY_DATE", ddlYear.SelectedValue + "-" + ddlMonth.SelectedValue.PadLeft(2, '0')); string _FIELDENUM_ID = FIELDENUM_ID.Text.ToDecrypt(); if (!string.IsNullOrWhiteSpace(_FIELDENUM_ID)) { e.SetOtherUserCustomWhereSqlString += " (UNIT_ID IN(" + _FIELDENUM_ID + ") OR DEPARTMENT_ID IN(" + _FIELDENUM_ID + "))"; } //排序 e.AddOrderByParams("UNIT_NAME", false); e.AddOrderByParams("DEPARTMENT_NAME", false); } #endregion #region 方法 -> 载入数据 //载入数据 public override bool LoadData() { InitDropdown(); if (_PERSONNELPROINST != null) { Running.Business.SALARYPAYROLL_OFFICE _SALARYPAYROLL_OFFICE = new Running.Business.SALARYPAYROLL_OFFICE(_PERSONNELPROINST); _SALARYPAYROLL_OFFICE.AddSearchParameter("PERSONNELPROINST_ID", _PERSONNELPROINST.PERSONNELPROINST_ID); if (_SALARYPAYROLL_OFFICE.Search()) { ddlYear.SelectedValue = _SALARYPAYROLL_OFFICE.SALARY_DATE.Split('-')[0]; ddlMonth.SelectedValue = _SALARYPAYROLL_OFFICE.SALARY_DATE.Split('-')[1]; } } lblTitle.Text = "实业集团机关" + ddlYear.SelectedValue + "年" + ddlMonth.SelectedValue.TryParseToInt() + "月工资汇总表"; return true; } #endregion #region 方法 -> 初始化下拉框 public void InitDropdown(int selectYear = 0) { DateTime date = DateTime.Now; int year = date.Month == 12 ? date.Year - 1 : date.Year;// 取当前时间年,若为12月,则年份向前一年 ListItemEx yearItem = null; //向过去的年份循环20年 for (int i = year; i > year - 20; i--) { yearItem = new ListItemEx(i.ToString() + "年", i.ToString()); ddlYear.Items.Add(yearItem); } ddlYear.SelectedValue = selectYear > 0 ? selectYear.ToString() : year.ToString(); int month = ddlYear.SelectedValue.TryParseToInt() == date.Year ? date.Month - 1 : 12;//月份不能大于上个月 ListItemEx monthItem = null; //循环12个月 for (int i = 1; i <= month; i++) { monthItem = new ListItemEx(i.ToString() + "月", i.ToString("00")); ddlMonth.Items.Add(monthItem); } ddlMonth.SelectedValue = month.ToString("00"); } #endregion #region 方法 -> 生成汇总数据 public void CreateData() { string salaryDate = ddlYear.SelectedValue + "-" + ddlMonth.SelectedValue.PadLeft(2, '0'); string SELECT_FIELDENUM_ID = FIELDENUM_ID.Text.ToDecrypt(); #region 汇总数据是否已存在 if ((salaryDate + "01").TryParseToDateTime() >= (DateTime.Now.ToString("yyyy-MM") + "01").TryParseToDateTime()) { throw new Exception("暂无" + salaryDate + "工资汇总数据"); } //若生成汇总表,则判断是否已存在审批数据 string sqlWhere = string.Format(" WHERE SALARY_DATE='{0}' AND PERSONNELPROINST_ID<>{1} AND (UNIT_ID IN({2}) OR DEPARTMENT_ID IN({2}))", salaryDate, _PERSONNELPROINST.PERSONNELPROINST_ID, SELECT_FIELDENUM_ID); DataTable dtExist = new Running.Business.SALARYPAYROLL_OFFICE(Transaction).FillDataTable(sqlWhere); string existsDepartment = ""; if (dtExist.Rows.Count > 0) { foreach (DataRow dr in dtExist.Rows) { if (SELECT_FIELDENUM_ID.Split(',').Contains(dr["UNIT_ID"].ToString())) { existsDepartment += dr["UNIT_NAME"] + ","; } else if (SELECT_FIELDENUM_ID.Split(',').Contains(dr["DEPARTMENT_ID"].ToString())) { existsDepartment += dr["DEPARTMENT_NAME"] + ","; } } } dtExist = new Business.SALARYPAYROLL_OFFICE(Transaction).FillDataTable(sqlWhere); if (dtExist.Rows.Count > 0) { foreach (DataRow dr in dtExist.Rows) { if (SELECT_FIELDENUM_ID.Split(',').Contains(dr["UNIT_ID"].ToString())) { existsDepartment += dr["UNIT_NAME"] + ","; } else if (SELECT_FIELDENUM_ID.Split(',').Contains(dr["DEPARTMENT_ID"].ToString())) { existsDepartment += dr["DEPARTMENT_NAME"] + ","; } } } if (existsDepartment != "") { existsDepartment = string.Join(",", existsDepartment.Split(',').Distinct()); throw new Exception("【" + existsDepartment.TrimEnd(',') + "】," + salaryDate + "工资汇总数据已存在"); } #endregion #region 查询已选中部门数据 string _FIELDENUM_ID = ""; string sql = string.Format(@" SELECT A.FIELDENUM_ID,A.FIELDENUM_NAME,C.FIELDENUM_ID FIELDENUM_PID,C.FIELDENUM_NAME FIELDENUM_PNAME,B.SERVERPART_ID FROM PLATFORM_DICTIONARY.T_FIELDENUM A INNER JOIN HIGHWAY_STORAGE.T_SERVERPART B ON A.FIELDENUM_ID=B.FIELDENUM_ID LEFT JOIN PLATFORM_DICTIONARY.T_FIELDENUM C ON A.FIELDENUM_PID = C.FIELDENUM_ID WHERE A.FIELDENUM_ID IN({0}) UNION ALL SELECT B.FIELDENUM_ID,B.FIELDENUM_NAME,A.FIELDENUM_ID FIELDENUM_PID,A.FIELDENUM_NAME FIELDENUM_PNAME,C.SERVERPART_ID FROM PLATFORM_DICTIONARY.T_FIELDENUM A INNER JOIN PLATFORM_DICTIONARY.T_FIELDENUM B ON A.FIELDENUM_ID=B.FIELDENUM_PID LEFT JOIN HIGHWAY_STORAGE.T_SERVERPART C ON B.FIELDENUM_ID=C.FIELDENUM_ID WHERE A.FIELDENUM_ID IN({0})", FIELDENUM_ID.Text.ToDecrypt()); DataTable dtFieldenum = new SRCDB.FieldEnum(Transaction).ExecuteDataTable(sql); foreach (DataRow item in dtFieldenum.Rows) { _FIELDENUM_ID += item["FIELDENUM_ID"].ToString() + ","; } _FIELDENUM_ID = _FIELDENUM_ID.TrimEnd(','); #endregion sqlWhere = " WHERE A.STAFF_ID=B.STAFF_ID AND B.SERVERPART_ID IS NOT NULL AND B.DEPARTMENT_NAME IS NOT NULL "; //薪资月份 sqlWhere += "AND TO_CHAR(A.PAID_DATE,'YYYY-MM')='" + salaryDate + "' "; //服务区 string sqlWhereStaff = "1=1"; if (!string.IsNullOrWhiteSpace(_FIELDENUM_ID)) { sqlWhere += "AND B.SERVERPART_ID IN (SELECT SERVERPART_ID FROM HIGHWAY_STORAGE.T_SERVERPART WHERE FIELDENUM_ID IN (" + _FIELDENUM_ID + "))"; sqlWhereStaff += "AND SERVERPART_ID IN (SELECT SERVERPART_ID FROM HIGHWAY_STORAGE.T_SERVERPART WHERE FIELDENUM_ID IN (" + _FIELDENUM_ID + "))"; } //删除运行库该流程,之前已生成汇总数据 foreach (Running.Business.SALARYPAYROLL_OFFICE _SALARYPAYROLL_OFFICE in new Running.Business.SALARYPAYROLL_OFFICE(_PERSONNELPROINST).FillCollection( "WHERE PERSONNELPROINST_ID = " + _PERSONNELPROINST.PERSONNELPROINST_ID)) { if (_SALARYPAYROLL_OFFICE.SALARY_DATE != salaryDate || _FIELDENUM_ID.Split(',').Contains(_SALARYPAYROLL_OFFICE.DEPARTMENT_ID.ToString())) { _SALARYPAYROLL_OFFICE.Delete(); } } Running.Business.SALARYPAYROLL_OFFICE SALARYPAYROLL_OFFICE = new Running.Business.SALARYPAYROLL_OFFICE(_PERSONNELPROINST); SALARYPAYROLL_OFFICE.AddSearchParameter("SALARY_DATE", salaryDate); SALARYPAYROLL_OFFICE.AddSearchParameter("PERSONNELPROINST_ID", _PERSONNELPROINST.PERSONNELPROINST_ID); if (!SALARYPAYROLL_OFFICE.Search()) { //若不存在汇总数据,则添加 //生成工资明细数据 ThirdParty.SalaryCalculate(sqlWhereStaff, "A.STAFF_ID", salaryDate, Page.PassportInfo.ID.TryParseToInt(), Page.PassportInfo.Name, -1, Transaction); //查询薪资明细 DataTable dtSalary = new Business.STAFF(Transaction).ExecuteDataTable(@" SELECT B.SERVERPART_ID,(CASE WHEN MAX(C.SERVERPART_NAME) IS NULL THEN MAX(B.DEPARTMENT_NAME) ELSE MAX(C.SERVERPART_NAME) END) AS DEPARTMENT_NAME, COUNT(1) AS STAFF_NUM, SUM(NVL(A.MINIMUM_SALARY,0)+NVL(A.RANKLEVEL_SALARY,0)+NVL(A.SENIORITY_SALARY,0)+NVL(A.SKILLLEVEL_SALARY,0)+NVL(A.POSITION_SALARY,0)) AS FIXED_SALARY, SUM(NVL(A.KPI_SALARY_MONTH,0)) AS KPI_SALARY_MONTH, SUM(NVL(A.OTHER_PAY,0)+NVL(A.KPI_SALARY_YEAR,0)) AS KPI_SALARY_YEAR, SUM(NVL(A.DEDUCTION_SALARY,0)) AS DEDUCTION_SALARY, SUM(NVL(A.WAGES_PAYABLE,0)) AS WAGES_PAYABLE, SUM(NVL(A.ENDOWMENT_INSURANCE,0)) AS ENDOWMENT_INSURANCE, SUM(NVL(A.MEDICAL_INSURANCE,0)) AS MEDICAL_INSURANCE, SUM(NVL(A.UNEMPLOYMENT_INSURANCE,0)) AS UNEMPLOYMENT_INSURANCE, SUM(NVL(A.HOUSING_PROVIDENT_FUND,0)) AS HOUSING_PROVIDENT_FUND, SUM(NVL(A.FINAL_WAGES,0)) AS FINAL_WAGES, SUM(NVL(A.DEDUCTION_TAX,0)) AS DEDUCTION_TAX, SUM(NVL(A.MEAL_EXPENSE,0)) AS MEAL_EXPENSE, SUM(NVL(A.TAKE_WAGES,0)) AS TAKE_WAGES FROM PERSONNEL_STORAGE.T_STAFFSALARY A,PERSONNEL_STORAGE.T_STAFF B " + " LEFT JOIN HIGHWAY_STORAGE.T_SERVERPART C ON B.SERVERPART_ID=C.SERVERPART_ID" + sqlWhere + "GROUP BY B.SERVERPART_ID ORDER BY MAX(C.SERVERPART_INDEX)"); if (dtSalary.Rows.Count == 0) { throw new Exception("暂无员工薪资数据"); } //dtSalary.DefaultView.Sort = "DEPARTMENT_NAME"; //dtSalary = dtSalary.DefaultView.ToTable(); //List SALARYPAYROLLList = new Running.Business.SALARYPAYROLL_OFFICE(_PERSONNELPROINST).FillCollection( // "WHERE PERSONNELPROINST_ID = " + _PERSONNELPROINST.PERSONNELPROINST_ID); //foreach (Running.Business.SALARYPAYROLL_OFFICE _SALARYPAYROLL_OFFICE in SALARYPAYROLLList) //{ // _SALARYPAYROLL_OFFICE.Delete(); //} //向运行库添加汇总数据 foreach (DataRow dr in dtSalary.Rows) { Running.Business.SALARYPAYROLL_OFFICE _SALARYPAYROLL_OFFICE = new Running.Business.SALARYPAYROLL_OFFICE(Transaction); _SALARYPAYROLL_OFFICE.AddSearchParameter("DEPARTMENT_ID", dr["SERVERPART_ID"]); _SALARYPAYROLL_OFFICE.AddSearchParameter("SALARY_DATE", salaryDate); _SALARYPAYROLL_OFFICE.AddSearchParameter("PERSONNELPROINST_ID", _PERSONNELPROINST.PERSONNELPROINST_ID); if (!_SALARYPAYROLL_OFFICE.Search()) { _SALARYPAYROLL_OFFICE.ResetProperty(); _SALARYPAYROLL_OFFICE.PERSONNELPROINST_ID = _PERSONNELPROINST.PERSONNELPROINST_ID; _SALARYPAYROLL_OFFICE.SALARY_DATE = salaryDate; DataRow[] drFieldenum = dtFieldenum.Select("SERVERPART_ID=" + dr["SERVERPART_ID"]); if (drFieldenum.Length > 0) { _SALARYPAYROLL_OFFICE.UNIT_ID = drFieldenum[0]["FIELDENUM_PID"].TryParseToInt(); _SALARYPAYROLL_OFFICE.UNIT_NAME = drFieldenum[0]["FIELDENUM_PNAME"].ToString(); _SALARYPAYROLL_OFFICE.DEPARTMENT_ID = drFieldenum[0]["FIELDENUM_ID"].TryParseToInt(); _SALARYPAYROLL_OFFICE.DEPARTMENT_NAME = drFieldenum[0]["FIELDENUM_NAME"].ToString(); } _SALARYPAYROLL_OFFICE.STAFF_NUM = dr["STAFF_NUM"].TryParseToInt(); _SALARYPAYROLL_OFFICE.FIXED_SALARY = dr["FIXED_SALARY"].TryParseToDouble(); _SALARYPAYROLL_OFFICE.KPI_SALARY_MONTH = dr["KPI_SALARY_MONTH"].TryParseToDouble(); _SALARYPAYROLL_OFFICE.KPI_SALARY_YEAR = dr["KPI_SALARY_YEAR"].TryParseToDouble(); _SALARYPAYROLL_OFFICE.DEDUCTION_SALARY = dr["DEDUCTION_SALARY"].TryParseToDouble(); _SALARYPAYROLL_OFFICE.WAGES_PAYABLE = dr["WAGES_PAYABLE"].TryParseToDouble(); _SALARYPAYROLL_OFFICE.ENDOWMENT_INSURANCE = dr["ENDOWMENT_INSURANCE"].TryParseToDouble(); _SALARYPAYROLL_OFFICE.MEDICAL_INSURANCE = dr["MEDICAL_INSURANCE"].TryParseToDouble(); _SALARYPAYROLL_OFFICE.UNEMPLOYMENT_INSURANCE = dr["UNEMPLOYMENT_INSURANCE"].TryParseToDouble(); _SALARYPAYROLL_OFFICE.HOUSING_PROVIDENT_FUND = dr["HOUSING_PROVIDENT_FUND"].TryParseToDouble(); _SALARYPAYROLL_OFFICE.FINAL_WAGES = dr["FINAL_WAGES"].TryParseToDouble(); _SALARYPAYROLL_OFFICE.DEDUCTION_TAX = dr["DEDUCTION_TAX"].TryParseToDouble(); _SALARYPAYROLL_OFFICE.MEAL_EXPENSE = dr["MEAL_EXPENSE"].TryParseToDouble(); _SALARYPAYROLL_OFFICE.TAKE_WAGES = dr["TAKE_WAGES"].TryParseToDouble(); _SALARYPAYROLL_OFFICE.Insert(); } } } } #endregion #region 方法 -> 月份选择事件 protected void ddlMonth_CallBackSetControl(object sender, ClientSetEventArgs e) { lblTitle.Text = "实业集团机关" + ddlYear.SelectedValue + "年" + ddlMonth.SelectedValue.TryParseToInt() + "月工资汇总表"; e.SetInnerHtml(lblTitle, lblTitle.Text); GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1); e.SetValue(GridViewEx1); } #endregion #region 方法 -> 生成汇总表按钮事件 protected void ButtonCreate_CallBackClick(object sender, ClientSetEventArgs e) { if (string.IsNullOrWhiteSpace(FIELDENUM_ID.Text)) { throw new Exception("请选择部门"); } CreateData(); GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1); e.SetValue(GridViewEx1); } #endregion #region 方法 -> 行绑定事件 double sumSTAFF_NUM = 0, sumFIXED_SALARY = 0, sumKPI_SALARY_MONTH = 0, sumKPI_SALARY_YEAR = 0, sumDEDUCTION_SALARY = 0, sumWAGES_PAYABLE = 0, sumENDOWMENT_INSURANCE = 0, sumMEDICAL_INSURANCE = 0, sumUNEMPLOYMENT_INSURANCE = 0, sumHOUSING_PROVIDENT_FUND = 0, sumFINAL_WAGES = 0, sumDEDUCTION_TAX = 0, sumMEAL_EXPENSE = 0, sumTAKE_WAGES = 0; protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { #region 重绘表头 //第一行表头 TableCellCollection tbHeader = e.Row.Cells; tbHeader.Clear(); tbHeader.Add(new TableHeaderCell()); tbHeader[0].Attributes.Add("rowspan", "2"); tbHeader[0].Text = "序号"; tbHeader.Add(new TableHeaderCell()); tbHeader[1].Attributes.Add("rowspan", "2"); tbHeader[1].Text = "所属单位"; tbHeader.Add(new TableHeaderCell()); tbHeader[2].Attributes.Add("rowspan", "2"); tbHeader[2].Text = "所属部门"; tbHeader.Add(new TableHeaderCell()); tbHeader[3].Attributes.Add("rowspan", "2"); tbHeader[3].Text = "职工人数"; tbHeader.Add(new TableHeaderCell()); tbHeader[4].Attributes.Add("rowspan", "2"); tbHeader[4].Text = "固定部分小计"; tbHeader.Add(new TableHeaderCell()); tbHeader[5].Attributes.Add("rowspan", "2"); tbHeader[5].Text = "月绩效工资"; tbHeader.Add(new TableHeaderCell()); tbHeader[6].Attributes.Add("rowspan", "2"); tbHeader[6].Text = "年绩效调剂小计"; tbHeader.Add(new TableHeaderCell()); tbHeader[7].Attributes.Add("rowspan", "2"); tbHeader[7].Text = "应扣工资"; tbHeader.Add(new TableHeaderCell()); tbHeader[8].Attributes.Add("rowspan", "2"); tbHeader[8].Text = "应发工资"; tbHeader.Add(new TableHeaderCell()); tbHeader[9].Attributes.Add("colspan", "4"); tbHeader[9].Text = "五险一金"; tbHeader.Add(new TableHeaderCell()); tbHeader[10].Attributes.Add("rowspan", "2"); tbHeader[10].Text = "实发工资"; tbHeader.Add(new TableHeaderCell()); tbHeader[11].Attributes.Add("rowspan", "2"); tbHeader[11].Text = "应扣税款"; tbHeader.Add(new TableHeaderCell()); tbHeader[12].Attributes.Add("rowspan", "2"); tbHeader[12].Text = "代扣伙食费"; tbHeader.Add(new TableHeaderCell()); tbHeader[13].Attributes.Add("rowspan", "2"); tbHeader[13].Text = "实领工资"; tbHeader.Add(new TableHeaderCell()); tbHeader[14].Attributes.Add("rowspan", "2"); tbHeader[14].Text = "备注养老8%"; //第二行表头 tbHeader.Add(new TableHeaderCell()); tbHeader[15].Text = "医保2%"; tbHeader.Add(new TableHeaderCell()); tbHeader[16].Text = "失业0.3%"; tbHeader.Add(new TableHeaderCell()); tbHeader[17].Text = "公积金12%"; #endregion } else if (e.Row.RowType == DataControlRowType.DataRow) { //序号 //e.Row.Cells[0].Text = e.Row.Cells[0].Text + "."; //备注 if (e.Row.Cells[17].Text.Replace(" ", "").Length > 5) { e.Row.Cells[17].ToolTip = e.Row.Cells[17].Text; e.Row.Cells[17].Text = e.Row.Cells[17].Text.Substring(0, 5) + "..."; } #region 合计 sumSTAFF_NUM += e.Row.Cells[3].Text.TryParseToDouble(); sumFIXED_SALARY += e.Row.Cells[4].Text.TryParseToDouble(); sumKPI_SALARY_MONTH += e.Row.Cells[5].Text.TryParseToDouble(); sumKPI_SALARY_YEAR += e.Row.Cells[6].Text.TryParseToDouble(); sumDEDUCTION_SALARY += e.Row.Cells[7].Text.TryParseToDouble(); sumWAGES_PAYABLE += e.Row.Cells[8].Text.TryParseToDouble(); sumENDOWMENT_INSURANCE += e.Row.Cells[9].Text.TryParseToDouble(); sumMEDICAL_INSURANCE += e.Row.Cells[10].Text.TryParseToDouble(); sumUNEMPLOYMENT_INSURANCE += e.Row.Cells[11].Text.TryParseToDouble(); sumHOUSING_PROVIDENT_FUND += e.Row.Cells[12].Text.TryParseToDouble(); sumFINAL_WAGES += e.Row.Cells[13].Text.TryParseToDouble(); sumDEDUCTION_TAX += e.Row.Cells[14].Text.TryParseToDouble(); sumMEAL_EXPENSE += e.Row.Cells[15].Text.TryParseToDouble(); sumTAKE_WAGES += e.Row.Cells[16].Text.TryParseToDouble(); #endregion string SALARYPAYROLL_OFFICE_ID = GridViewEx1.DataKeys[e.Row.RowIndex].Values["SALARYPAYROLL_OFFICE_ID"].ToEncrypt(); e.Row.Attributes["onclick"] = GridViewEx1.GetOpenPopDialogClientScript("/Personnel/Compents/SalaryPayrollOffice/SALARYPAYROLL_OFFICEPage.aspx?ID=" + SALARYPAYROLL_OFFICE_ID, 900, 500); } else if (e.Row.RowType == DataControlRowType.Footer) { e.Row.Cells[0].Text = "合计"; e.Row.Cells[0].HorizontalAlign = HorizontalAlign.Center; e.Row.Cells[0].ColumnSpan = 3; e.Row.Cells[1].Visible = false; e.Row.Cells[2].Visible = false; e.Row.Cells[3].Text = sumSTAFF_NUM.ToString(); e.Row.Cells[4].Text = sumFIXED_SALARY.ToString(); e.Row.Cells[5].Text = sumKPI_SALARY_MONTH.ToString(); e.Row.Cells[6].Text = sumKPI_SALARY_YEAR.ToString(); e.Row.Cells[7].Text = sumDEDUCTION_SALARY.ToString(); e.Row.Cells[8].Text = sumWAGES_PAYABLE.ToString(); e.Row.Cells[9].Text = sumENDOWMENT_INSURANCE.ToString(); e.Row.Cells[10].Text = sumMEDICAL_INSURANCE.ToString(); e.Row.Cells[11].Text = sumUNEMPLOYMENT_INSURANCE.ToString(); e.Row.Cells[12].Text = sumHOUSING_PROVIDENT_FUND.ToString(); e.Row.Cells[13].Text = sumFINAL_WAGES.ToString(); e.Row.Cells[14].Text = sumDEDUCTION_TAX.ToString(); e.Row.Cells[15].Text = sumMEAL_EXPENSE.ToString(); e.Row.Cells[16].Text = sumTAKE_WAGES.ToString(); } } #endregion #region 方法 -> 保存按钮执行前 public override void OnDataAction_BeforeSave(DataActionEventArgs e) { if (GridViewEx1.Rows.Count == 0) { throw new Exception("暂未生成机关工资汇总数据"); } base.OnDataAction_BeforeSave(e); } #endregion #region 方法 -> 年份选择事件-联动月份 protected void ddlYear_CallBackSetControl(object sender, ClientSetEventArgs e) { ddlMonth.Clear(); DateTime date = DateTime.Now; int month = ddlYear.SelectedValue.TryParseToInt() == date.Year ? date.Month - 1 : 12;//月份不能大于上个月 ListItemEx monthItem = null; //循环月份 for (int i = 1; i <= month; i++) { monthItem = new ListItemEx(i.ToString() + "月", i.ToString("00")); ddlMonth.Items.Add(monthItem); } ddlMonth.SelectedValue = ddlYear.SelectedValue.TryParseToInt() == date.Year ? month.ToString("00") : "01"; e.SetDropDownListEx(ddlMonth); lblTitle.Text = "实业集团机关" + ddlYear.SelectedValue + "年" + ddlMonth.SelectedValue.TryParseToInt() + "月工资汇总表"; e.SetInnerHtml(lblTitle, lblTitle.Text); GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1); e.SetValue(GridViewEx1); } #endregion #region 方法 -> 翻页事件 //翻页事件 protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e) { GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); } #endregion #region 方法 -> 选择部门 protected void ButtonDepartment_CallBackClick(object sender, ClientSetEventArgs e) { e.ClientScript = Page.GetOpenPopDialogClientScript("/Personnel/Compents/SalaryPayrollOffice/ObjectTree.aspx?NowActInst_ID=" + Request["NowActInst_ID"] + "&ProInst_ID=" + Request["ProInst_ID"] + "&SELECT_FIELDENUM_ID=" + FIELDENUM_ID.Text + "&SALARY_DATE=" + (ddlYear.SelectedValue + "-" + ddlMonth.SelectedValue.PadLeft(2, '0')).ToEncrypt(), "ObjectTree", 380, 650, true, false, true); } #endregion #region 方法 -> 搜索按钮事件 protected void ButtonSearch_CallBackClick(object sender, ClientSetEventArgs e) { GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1); e.SetValue(GridViewEx1); } #endregion } }