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

534 lines
29 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 OnlyReadDefault : 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()
{
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 = year.ToString();
int month = year == 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');
#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 UNIT_ID IN({1})", salaryDate, FIELDENUM_ID.Text.ToDecrypt());
DataTable dtExist = new Running.Business.SALARYPAYROLL_OFFICE(Transaction).FillDataTable(sqlWhere);
if (dtExist.Rows.Count > 0)
{
throw new Exception(salaryDate + "工资汇总数据已存在");
}
dtExist = new Business.SALARYPAYROLL_OFFICE(Transaction).FillDataTable(sqlWhere);
if (dtExist.Rows.Count > 0)
{
throw new Exception(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 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 + "))";
}
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,B.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" + sqlWhere +
"GROUP BY B.SERVERPART_ID, B.DEPARTMENT_NAME ORDER BY B.DEPARTMENT_NAME");
if (dtSalary.Rows.Count == 0)
{
throw new Exception("暂无员工薪资数据");
}
//删除运行库该流程,之前已生成汇总数据
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 ->
public override void OnDataAction_AfterSave(DataActionEventArgs<Running.Business.SALARYPAYROLL_OFFICE> e)
{
Running.Business.JOINTLYSIGN _JOINTLYSIGN = new Running.Business.JOINTLYSIGN(_PERSONNELPROINST);
_JOINTLYSIGN.AddSearchParameter("PERSONNELPROINST_ID", _PERSONNELPROINST.PERSONNELPROINST_ID);
_JOINTLYSIGN.AddSearchParameter("ActDef_ID", _PERSONNELPROINST.ProInst.NowActInst.ActDef_ID);
if (_JOINTLYSIGN.Search())
{
if (string.IsNullOrEmpty(_JOINTLYSIGN.APPROVED_IDS) ||
(_JOINTLYSIGN.USER_IDS.Split(',').Length != _JOINTLYSIGN.APPROVED_IDS.Split(',').Length))
{
//2017/11/17朱梓毅修改会审转出时提示未进行会审人员
if (string.IsNullOrEmpty(_JOINTLYSIGN.APPROVED_IDS))
{
throw new Exception("请" + _JOINTLYSIGN.USER_NAMES + "审核后再转出业务!");
}
else if (_JOINTLYSIGN.USER_IDS.Split(',').Length != _JOINTLYSIGN.APPROVED_IDS.Split(',').Length)
{
string _USER_NAMES = "," + _JOINTLYSIGN.USER_NAMES + ",";
foreach (Running.Business.APPROVED _APPROVED in new Running.Business.APPROVED(_PERSONNELPROINST).FillCollection(
"WHERE APPROVED_ID IN (" + _JOINTLYSIGN.APPROVED_IDS + ")"))
{
if (_USER_NAMES.Contains("," + _APPROVED.APPROVED_STAFF + ","))
{
_USER_NAMES = _USER_NAMES.Replace("," + _APPROVED.APPROVED_STAFF + ",", ",");
}
}
_USER_NAMES = _USER_NAMES.Trim(',');
if (!string.IsNullOrWhiteSpace(_USER_NAMES))
{
throw new Exception("请" + _USER_NAMES + "审核后再转出业务!");
}
}
}
}
else if (new FrameWork.Business.Module(_PERSONNELPROINST).GetCount("WHERE Module_Url LIKE '%ACTDEF_ID=" +
_PERSONNELPROINST.ProInst.NowActInst.ActDef_ID + "'") > 0)
{
if (new FrameWork.Business.Module(_PERSONNELPROINST).GetCount("WHERE Module_Url LIKE '%ACTDEF_ID=" +
_PERSONNELPROINST.ProInst.NowActInst.ActDef_ID + "'") > _PERSONNELPROINST.ExecuteDataTable(
"SELECT DISTINCT APPROVED_NAME FROM HIGHWAY_RUNNING.T_APPROVED WHERE PERSONNELPROINST_ID = " +
_PERSONNELPROINST.PERSONNELPROINST_ID + " AND '" + _PERSONNELPROINST.ProInst.NowActInst.ActDef.ActDef_Name +
"' LIKE CASE WHEN APPROVED_NAME LIKE '%【%' THEN SUBSTR(APPROVED_NAME,0,INSTR(APPROVED_NAME,'【') - 1) " +
"ELSE APPROVED_NAME END || '%'").Rows.Count)
{
throw new Exception("请完成所有会审人员的审核后再转出业务!");
}
}
base.OnDataAction_AfterSave(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
}
}