2025-03-27 15:05:14 +08:00

517 lines
28 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<Running.Business.SALARYPAYROLL_OFFICE>
{
#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<Running.Business.SALARYPAYROLL_OFFICE>(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<Running.Business.SALARYPAYROLL_OFFICE> 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<Running.Business.SALARYPAYROLL_OFFICE>(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<Running.Business.SALARYPAYROLL_OFFICE>(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 = "备注</th></tr><tr><th>养老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("&nbsp;", "").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<Running.Business.SALARYPAYROLL_OFFICE> 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<Running.Business.SALARYPAYROLL_OFFICE>(ObjectDataSource1, GridPageEx1);
e.SetValue(GridViewEx1);
}
#endregion
#region ->
//翻页事件
protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e)
{
GridViewEx1.SelectingWithInit<Running.Business.SALARYPAYROLL_OFFICE>(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<Running.Business.SALARYPAYROLL_OFFICE>(ObjectDataSource1, GridPageEx1);
e.SetValue(GridViewEx1);
}
#endregion
}
}