201 lines
9.5 KiB
C#
201 lines
9.5 KiB
C#
using System;
|
||
using System.Data;
|
||
using System.Linq;
|
||
using System.Web.UI;
|
||
using System.Web.UI.WebControls;
|
||
using SuperMap.RealEstate.CoreFrameWork;
|
||
using SuperMap.RealEstate.ServiceModel;
|
||
using SuperMap.RealEstate.Utility;
|
||
using SuperMap.RealEstate.Web.UI;
|
||
using SuperMap.RealEstate.Web.UI.WebControls;
|
||
using SuperMap.RealEstate.Web.Utility;
|
||
|
||
namespace SuperMap.RealEstate.Personnel.Storage
|
||
{
|
||
/// <summary>
|
||
/// T_ADDITIONAL_兼职信息表 的WebUserControl
|
||
/// <summary>
|
||
public partial class ADDITIONAL : UserControl<Business.ADDITIONAL>
|
||
{
|
||
protected void Page_Load(object sender, EventArgs e)
|
||
{
|
||
}
|
||
|
||
//在此加入界面的数据初始化(Page_Load之前),如DropDownList的数据源绑定等
|
||
public override void InitializeWebControl()
|
||
{
|
||
//绑定兼职岗位
|
||
ADDITIONAL_POSITION.Clear();
|
||
Business.RANK _RANK = new Business.RANK(Transaction);
|
||
_RANK.BindingDropDownList(this.ADDITIONAL_POSITION.Items, "-1", 0, "");
|
||
|
||
//绑定兼职单位
|
||
ADDITIONAL_UNIT.Clear();
|
||
ADDITIONAL_DEPT.Clear();
|
||
DataTable dt = (new Business.DEPARTMENT(this.Transaction)).ExecuteDataTable(
|
||
"SELECT * FROM PERSONNEL_STORAGE.T_DEPARTMENT WHERE DEPARTMENT_PID = '-1' ORDER BY DEPARTMENT_ID");
|
||
foreach (DataRow row in dt.Rows)
|
||
{
|
||
if (!row["DEPARTMENT_NAME"].ToString().Contains("离职人员") && !row["DEPARTMENT_NAME"].ToString().Contains("退休人员"))
|
||
{
|
||
ListItemEx _ListItemEx = new ListItemEx();
|
||
_ListItemEx.Value = row["DEPARTMENT_ID"].ToString();
|
||
_ListItemEx.Text = row["DEPARTMENT_NAME"].ToString();
|
||
ADDITIONAL_UNIT.Items.Add(_ListItemEx);
|
||
|
||
//绑定兼职部门
|
||
DataTable dt_quasi_dept = (new Business.DEPARTMENT(this.Transaction)).ExecuteDataTable(
|
||
@"SELECT DEPARTMENT_ID,DEPARTMENT_NAME FROM PERSONNEL_STORAGE.T_DEPARTMENT
|
||
WHERE DEPARTMENT_NAME IS NOT NULL AND DEPARTMENT_PID = " + row["DEPARTMENT_ID"].ToString() + "ORDER BY DEPARTMENT_ID");
|
||
foreach (DataRow rw in dt_quasi_dept.Rows)
|
||
{
|
||
ListItemEx _ListItem = new ListItemEx();
|
||
_ListItem.Value = rw["DEPARTMENT_ID"].ToString();
|
||
_ListItem.Text = rw["DEPARTMENT_NAME"].ToString();
|
||
_ListItem.Level = 0;
|
||
ADDITIONAL_DEPT.Items.Add(_ListItem);
|
||
DataTable dts = (new Business.DEPARTMENT(this.Transaction)).ExecuteDataTable(
|
||
@"SELECT DEPARTMENT_ID,DEPARTMENT_NAME FROM PERSONNEL_STORAGE.T_DEPARTMENT
|
||
WHERE DEPARTMENT_NAME IS NOT NULL AND DEPARTMENT_PID = " + rw["DEPARTMENT_ID"].ToString() +
|
||
"ORDER BY DEPARTMENT_ID");
|
||
foreach (DataRow rows in dts.Rows)
|
||
{
|
||
ListItemEx _ListItemExs = new ListItemEx();
|
||
_ListItemExs.Value = rows["DEPARTMENT_ID"].ToString();
|
||
_ListItemExs.Text = rows["DEPARTMENT_NAME"].ToString();
|
||
_ListItemExs.Level = 1;
|
||
ADDITIONAL_DEPT.Items.Add(_ListItemExs);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
//载入数据
|
||
public override bool LoadData()
|
||
{
|
||
//如果是工作流组件请自行修改载入的逻辑,以下是功能模块的默认代码
|
||
if (!String.IsNullOrEmpty(Request["ID"]))
|
||
{
|
||
CurrObject.ADDITIONAL_ID_Encrypt = Request["ID"];
|
||
return this.Select();
|
||
}
|
||
else if (!String.IsNullOrEmpty(Request["STAFF_ID"]))
|
||
{
|
||
OPERATE_NAME.Text = Page.PassportInfo.Name;
|
||
OPERATE_ID.Text = Page.PassportInfo.ID.ToString();
|
||
OPERATE_DATE.Text = System.DateTime.Now.ToString();
|
||
STAFF_ID.Text = Request["STAFF_ID"].ToDecrypt();
|
||
}
|
||
//默认返回值,工作流组件返回True,功能模块返回False。
|
||
return (WorkFlowPage != null);
|
||
}
|
||
|
||
#region 方法 -> 界面逻辑处理
|
||
//OnDataAction_XXXXX 有一个系列可用,在此加入界面的逻辑处理
|
||
//e.CancelDataAction 来处理是否取消该动作;
|
||
//失败的原因可以用Page.Alert()传递到页面
|
||
public override void OnDataAction_BeforeSave(DataActionEventArgs<Business.ADDITIONAL> e)
|
||
{
|
||
if (string.IsNullOrEmpty(Request["ID"]))
|
||
{
|
||
Business.ADDITIONAL _ADDITIONAL = new Business.ADDITIONAL(Transaction);
|
||
_ADDITIONAL.AddSearchParameter("STAFF_ID", Request["STAFF_ID"].ToDecrypt());
|
||
_ADDITIONAL.AddSearchParameter("ADDITIONAL_UNIT", ADDITIONAL_UNIT.SelectedValue);
|
||
_ADDITIONAL.AddSearchParameter("ADDITIONAL_DEPT", ADDITIONAL_DEPT.SelectedValue);
|
||
_ADDITIONAL.AddSearchParameter("ADDITIONAL_POSITION", ADDITIONAL_POSITION.SelectedValue);
|
||
if (_ADDITIONAL.Search())
|
||
{
|
||
throw new Exception("该岗位已兼职!");
|
||
}
|
||
else
|
||
{
|
||
Business.STAFF _STAFF = new Business.STAFF(Transaction);
|
||
_STAFF.STAFF_ID_Encrypt = Request["STAFF_ID"];
|
||
if (_STAFF.Select())
|
||
{
|
||
if (_STAFF.CURRENT_POSITION.ToString() == ADDITIONAL_POSITION.SelectedValue &&
|
||
_STAFF.DEPARTMENT_ID.ToString() == ADDITIONAL_DEPT.SelectedValue)
|
||
{
|
||
throw new Exception("兼职岗位为现任岗位,不可兼职!");
|
||
}
|
||
else
|
||
{
|
||
_STAFF.ADDITIONAL_POSITION += (string.IsNullOrEmpty(_STAFF.ADDITIONAL_POSITION) ? "" : ",") +
|
||
ADDITIONAL_POSITION.SelectedValue;
|
||
_STAFF.Update();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
base.OnDataAction_BeforeSave(e);
|
||
}
|
||
|
||
public override void OnDataAction_AfterSave(DataActionEventArgs<Business.ADDITIONAL> e)
|
||
{
|
||
DataTable additional = (new Business.ADDITIONAL(Transaction)).ExecuteDataTable(
|
||
@"SELECT NVL(WM_CONCAT(DISTINCT ADDITIONAL_POSITION),'') AS CURRENT_POSITION
|
||
FROM PERSONNEL_STORAGE.T_ADDITIONAL WHERE STAFF_ID = " + CurrObject.STAFF_ID);
|
||
Business.STAFF _STAFF = new Business.STAFF(Transaction);
|
||
_STAFF.STAFF_ID = CurrObject.STAFF_ID.Value;
|
||
if (_STAFF.Select())
|
||
{
|
||
_STAFF.ADDITIONAL_POSITION = additional.Rows[0][0].ToString();
|
||
_STAFF.Update();
|
||
}
|
||
base.OnDataAction_AfterSave(e);
|
||
}
|
||
|
||
public override void OnDataAction_AfterDelete(DataActionEventArgs<Business.ADDITIONAL> e)
|
||
{
|
||
DataTable additional = (new Business.ADDITIONAL(Transaction)).ExecuteDataTable(
|
||
@"SELECT NVL(WM_CONCAT(DISTINCT ADDITIONAL_POSITION),'') AS CURRENT_POSITION
|
||
FROM PERSONNEL_STORAGE.T_ADDITIONAL WHERE STAFF_ID = " + Request["STAFF_ID"].ToDecrypt());
|
||
Business.STAFF _STAFF = new Business.STAFF(Transaction);
|
||
_STAFF.STAFF_ID_Encrypt = Request["STAFF_ID"];
|
||
if (_STAFF.Select())
|
||
{
|
||
_STAFF.ADDITIONAL_POSITION = additional.Rows[0][0].ToString();
|
||
_STAFF.Update();
|
||
}
|
||
base.OnDataAction_AfterDelete(e);
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 方法 -> 兼职单位联动兼职部门
|
||
|
||
protected void ADDITIONAL_UNIT_CallBackSetControl(object sender, ClientSetEventArgs e)
|
||
{
|
||
//异动部门
|
||
ADDITIONAL_DEPT.Clear();
|
||
DataTable dt = (new Business.DEPARTMENT(this.Transaction)).ExecuteDataTable(
|
||
@"SELECT DEPARTMENT_ID,DEPARTMENT_NAME FROM PERSONNEL_STORAGE.T_DEPARTMENT
|
||
WHERE DEPARTMENT_NAME IS NOT NULL AND DEPARTMENT_PID = " + ADDITIONAL_UNIT.SelectedValue + "ORDER BY DEPARTMENT_ID");
|
||
foreach (DataRow row in dt.Rows)
|
||
{
|
||
ListItemEx _ListItemEx = new ListItemEx();
|
||
_ListItemEx.Value = row["DEPARTMENT_ID"].ToString();
|
||
_ListItemEx.Text = row["DEPARTMENT_NAME"].ToString();
|
||
_ListItemEx.Level = 0;
|
||
ADDITIONAL_DEPT.Items.Add(_ListItemEx);
|
||
DataTable dts = (new Business.DEPARTMENT(this.Transaction)).ExecuteDataTable(
|
||
@"SELECT DEPARTMENT_ID,DEPARTMENT_NAME FROM PERSONNEL_STORAGE.T_DEPARTMENT
|
||
WHERE DEPARTMENT_NAME IS NOT NULL AND DEPARTMENT_PID = " + row["DEPARTMENT_ID"].ToString() +
|
||
"ORDER BY DEPARTMENT_ID");
|
||
foreach (DataRow rows in dts.Rows)
|
||
{
|
||
ListItemEx _ListItemExs = new ListItemEx();
|
||
_ListItemExs.Value = rows["DEPARTMENT_ID"].ToString();
|
||
_ListItemExs.Text = rows["DEPARTMENT_NAME"].ToString();
|
||
_ListItemExs.Level = 1;
|
||
ADDITIONAL_DEPT.Items.Add(_ListItemExs);
|
||
}
|
||
}
|
||
e.SetDropDownListEx(ADDITIONAL_DEPT);
|
||
}
|
||
|
||
#endregion
|
||
}
|
||
}
|