using
System;
using
System.Collections;
using
System.Configuration;
using
System.Data;
using
System.Linq;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Web.UI.HtmlControls;
using
System.Xml.Linq;
//
New Reference
using
Coolite.Ext.Web;
using
System.Collections.Generic;
using
PMS.Web.Admin.OrganizationService;
using
System.Text;
namespace
PMS.Web.Admin.Department
{
public
partial
class
DepartmentListMaintain : PMS.Web.Base.PageBase
{
//
PMS_ConnectionString context = new PMS_ConnectionString();
//
web service 实例化
OrganizationService.OrganizationServiceClient client
=
new
PMS.Web.Admin.OrganizationService.OrganizationServiceClient();
Hashtable table
=
new
Hashtable();
//
操作状态的标示
static
string
flag
=
"
New
"
;
///
<summary>
///
Load Data
///
Init Page
///
</summary>
///
<param name="sender"></param>
///
<param name="e"></param>
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(
!
IsPostBack
&&
!
Ext.IsAjaxRequest)
{
//
组织机构与组织人员、组织角色与组织人员的加载
GridPanelBind(
""
,
""
);
//
LoadTree();
//
组织机构树的加载,返回Json
string
temp
=
RefreshMenu();
//
site列表加载
BindComboBoxSite();
//
bu列表加载
BindComboxBu();
this
.NavigationChildFunction
=
"
Organization Maintain
"
;
}
if
(
string
.Compare(TextFieldNode.Text.Trim(),
""
)
!=
0
)
{
DC_Resorganization orgEntity
=
client.GetOrganizationEntity(TextFieldNode.Text.Trim());
if
(orgEntity
!=
null
)
{
Node_id
=
TextFieldNode.Text;
Role_id
=
""
;
org_RoleID
=
TextFieldParentNode.Text;
}
else
{
Role_id
=
TextFieldNode.Text;
Node_id
=
""
;
org_RoleID
=
TextFieldParentNode.Text;
}
}
}
//
获取树节点ID
public
string
Node_id
{
get
{
object
TreeNodeId
=
this
.ViewState[
"
TreeNodeId
"
];
return
TreeNodeId
==
null
?
string
.Empty : (
string
)TreeNodeId;
}
set
{
this
.ViewState[
"
TreeNodeId
"
]
=
value;
}
}
public
string
Role_id
{
get
{
object
RoleID
=
this
.ViewState[
"
RoleID
"
];
return
RoleID
==
null
?
string
.Empty : (
string
)RoleID;
}
set
{
this
.ViewState[
"
RoleID
"
]
=
value;
}
}
public
string
org_RoleID
{
get
{
object
org_RoleID
=
this
.ViewState[
"
org_RoleID
"
];
return
org_RoleID
==
null
?
string
.Empty : (
string
)org_RoleID;
}
set
{
this
.ViewState[
"
org_RoleID
"
]
=
value;
}
}
#region
----------递归加载树-----------
///
<summary>
///
组织角色的加载
///
</summary>
///
<param name="OrganizationID">
组织部门的code
</param>
///
<param name="node">
组织部门node
</param>
private
void
LoadOrgRoleByOrganizationID(
string
OrganizationID, Coolite.Ext.Web.TreeNode node)
{
MSG_GetOrgRoleOrgListRequest request
=
new
MSG_GetOrgRoleOrgListRequest();
request.organizationid
=
OrganizationID;
request.orgrole_id
=
""
;
DCC_OrgRoleList orgRoleList
=
client.GetOrgRoleOrgList(request);
foreach
(var orgrole
in
orgRoleList.ToList())
{
Coolite.Ext.Web.TreeNode rolenode
=
new
Coolite.Ext.Web.TreeNode();
rolenode.NodeID
=
orgrole.orgrole_id;
rolenode.Text
=
orgrole.orgrole_name;
rolenode.Qtip
=
orgrole.orgrole_desc;
rolenode.Expanded
=
true
;
node.Nodes.Add(rolenode);
}
}
private
void
LoadTree()
{
TreePanelOrganization.Root.Clear();
Coolite.Ext.Web.TreeNode node
=
new
Coolite.Ext.Web.TreeNode(
"
Hisoft
"
,
"
Hisoft
"
, Icon.Group);
node.Qtip
=
"
Hisoft
"
;
TreePanelOrganization.Root.Add(node);
node.Expanded
=
true
;
//
client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
DCC_ResorganizationList organizationlist
=
client.GetOrganizationList(
""
);
foreach
(var superCode
in
organizationlist.ToList())
{
Coolite.Ext.Web.TreeNode supernode
=
new
Coolite.Ext.Web.TreeNode();
string
parentcode
=
superCode.OrganizationCode;
supernode.NodeID
=
superCode.OrganizationCode;
supernode.Text
=
superCode.OrganizationName;
supernode.Qtip
=
superCode.OrganizationFullName;
supernode.Cls
=
superCode.OrganizationID;
supernode.Icon
=
Icon.GroupKey;
node.Expanded
=
true
;
node.Nodes.Add(supernode);
LoadOrgRoleByOrganizationID(superCode.OrganizationID, supernode);
CreateCycleTree(parentcode, supernode);
}
//
IList<RES_Organization> OrgSuperDepartment = OrgData.GetCycleOrganization("", context);
//
foreach (var superCode in OrgSuperDepartment)
//
{
//
Coolite.Ext.Web.TreeNode supernode = new Coolite.Ext.Web.TreeNode();
//
supernode.NodeID = superCode.organization_code;
//
supernode.Text = superCode.organization_name;
//
supernode.Qtip = superCode.organization_full_name;
//
supernode.Icon = Icon.GroupKey;
//
node.Nodes.Add(supernode);
//
CreateCycleTree(supernode.NodeID, supernode);
//
}
}
///
<summary>
///
组织机构、组织角色树的加载 //WCF entity framework 方法
///
</summary>
///
<param name="nodes"></param>
///
<returns>
TreeNodeCollection
</returns>
private
Coolite.Ext.Web.TreeNodeCollection LoadTree(Coolite.Ext.Web.TreeNodeCollection nodes)
{
if
(nodes
==
null
)
{
nodes
=
new
Coolite.Ext.Web.TreeNodeCollection();
}
//
根节点为null时
TreePanelOrganization.Root.Clear();
Coolite.Ext.Web.TreeNode node
=
new
Coolite.Ext.Web.TreeNode(
"
Hisoft
"
,
"
Hisoft
"
, Icon.Group);
node.Qtip
=
"
Hisoft
"
;
nodes.Add(node);
node.Expanded
=
true
;
//
OrganizationService.OrganizationServiceClient client = new PMS.Web.Admin.OrganizationService.OrganizationServiceClient();
//
client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
//
所有父节点的加载
DCC_ResorganizationList organizationlist
=
client.GetOrganizationList(
""
);
foreach
(var superCode
in
organizationlist.ToList())
{
Coolite.Ext.Web.TreeNode supernode
=
new
Coolite.Ext.Web.TreeNode();
string
parentcode
=
superCode.OrganizationCode;
supernode.NodeID
=
superCode.OrganizationCode;
supernode.Text
=
superCode.OrganizationName;
supernode.Qtip
=
superCode.OrganizationFullName;
supernode.Cls
=
superCode.OrganizationID;
//
supernode.Expanded = true;
supernode.Icon
=
Icon.GroupKey;
//
supernode.CustomAttributes.Add(new ConfigItem(
node.Nodes.Add(supernode);
LoadOrgRoleByOrganizationID(superCode.OrganizationID, supernode);
CreateCycleTree(parentcode, supernode);
}
return
nodes;
//
linq to sql class 方法
//
IList<RES_Organization> OrgSuperDepartment = OrgData.GetCycleOrganization("", context);
//
foreach (var superCode in OrgSuperDepartment)
//
{
//
Coolite.Ext.Web.TreeNode supernode = new Coolite.Ext.Web.TreeNode();
//
supernode.NodeID = superCode.organization_code;
//
supernode.Text = superCode.organization_name;
//
supernode.Qtip = superCode.organization_full_name;
//
supernode.Icon = Icon.GroupKey;
//
node.Nodes.Add(supernode);
//
CreateCycleTree(supernode.NodeID, supernode);
//
}
}
///
<summary>
///
递归加载树
///
</summary>
///
<param name="code">
父节点的code
</param>
///
<param name="parentcode">
父节点
</param>
private
void
CreateCycleTree(
string
code, Coolite.Ext.Web.TreeNode parentcode)
{
//
OrganizationService.OrganizationServiceClient client = new PMS.Web.Admin.OrganizationService.OrganizationServiceClient();
//
根据父节点的ID得到该节点下的所有子节点
DCC_ResorganizationList orgDepartment
=
client.GetOrganizationList(code);
//
IList<RES_Organization> orgDepartment = OrgData.GetCycleOrganization(code, context);
foreach
(var org
in
orgDepartment.ToList())
{
Coolite.Ext.Web.TreeNode node
=
new
Coolite.Ext.Web.TreeNode();
string
orgparentcode
=
org.OrganizationCode;
node.NodeID
=
org.OrganizationCode;
node.Text
=
org.OrganizationName;
node.Qtip
=
org.OrganizationFullName;
node.Cls
=
org.OrganizationID;
node.Icon
=
Icon.GroupGo;
parentcode.Nodes.Add(node);
LoadOrgRoleByOrganizationID(org.OrganizationID, node);
CreateCycleTree(orgparentcode, node);
}
}
#endregion
///
<summary>
///
Bind GridPanel
///
</summary>
private
void
GridPanelBind(
string
employeeno,
string
employeename)
{
MSG_GetOrganizationEntityRequest request
=
new
MSG_GetOrganizationEntityRequest();
DC_Resorganization organizationEntity
=
new
DC_Resorganization();
MSG_GetHREmployeeListRequest hremployeelistrequest
=
new
MSG_GetHREmployeeListRequest();
if
(
string
.Compare(TextFieldNode.Text,
""
)
!=
0
)
{
if
(
string
.Compare(TextFieldNode.Text,
"
Hisoft
"
)
==
0
)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
"
Please input query condition.
"
,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
AnimEl
=
this
.ButtonSearch.ClientID
});
return
;
}
organizationEntity
=
client.GetOrganizationEntity(TextFieldNode.Text);
//
organizationEntity 为null ,则是组织角色与组织人员
if
(organizationEntity
==
null
)
{
string
JsFunction
=
"
getNode(#{TreePanelOrganization})
"
;
Coolite.Ext.Web.ScriptManager sm
=
Coolite.Ext.Web.ScriptManager.GetInstance(HttpContext.Current);
sm.AddScript(
string
.Format(
"
{0};
"
, JsFunction));
hremployeelistrequest.DepartmentID
=
TextFieldParentNode.Text;
hremployeelistrequest.EmployeeName
=
""
;
hremployeelistrequest.OrgRoleID
=
TextFieldNode.Text;
hremployeelistrequest.EmployeeNo
=
""
;
DCC_HREmployeeList hremployeelist
=
client.GetHREmployeeList(hremployeelistrequest);
if
(hremployeelist
!=
null
)
{
StoreUser.DataSource
=
hremployeelist.ToList();
StoreUser.DataBind();
}
}
else
{
hremployeelistrequest.DepartmentID
=
TextFieldNode.Text;
hremployeelistrequest.EmployeeName
=
""
;
hremployeelistrequest.OrgRoleID
=
""
;
hremployeelistrequest.EmployeeNo
=
""
;
DCC_HREmployeeList hremployeelist
=
client.GetHREmployeeList(hremployeelistrequest);
if
(hremployeelist
!=
null
)
{
StoreUser.DataSource
=
hremployeelist.ToList();
StoreUser.DataBind();
}
}
//
组织部门与组织人员
}
}
#region
-----右键菜单-----
[AjaxMethod]
public
void
CMenuMaintain(
string
id,
string
flag)
{
DC_Resorganization orgEntity
=
client.GetOrganizationEntity(id);
if
(
string
.Compare(flag,
"
New
"
)
==
0
)
{
if
(id
==
"
Hisoft
"
)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
"
Please choose a organization or a role.
"
,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
});
return
;
}
else
{
if
(orgEntity
==
null
)
{
ButtonNewRole_Click();
}
else
{
Node_id
=
id;
TextFieldNode.Text
=
id;
OrganizationNew();
}
}
}
else
if
(
string
.Compare(flag,
"
Edit
"
)
==
0
)
{
if
(orgEntity
==
null
)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
"
Please choose a organization.
"
,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
});
return
;
}
else
{
Node_id
=
id;
ButtonEditOG_Click();
}
}
else
if
(
string
.Compare(flag,
"
Delete
"
)
==
0
)
{
if
(orgEntity
==
null
)
{
DoDeleteRoleConfirm();
}
else
{
DoConfirm();
}
}
}
#endregion
#region
---------查询操作-------
///
<summary>
///
Query
///
Condition:EmployeeNo EmployeeName
///
</summary>
[AjaxMethod]
public
void
ButtonSearch_Click()
{
if
(TextFieldSNO.Text.Trim()
==
""
&&
TextFieldSName.Text.Trim()
==
""
)
{
GridPanelBind(
""
,
""
);
}
else
{
MSG_GetHREmployeeListRequest hremployeelistrequest
=
new
MSG_GetHREmployeeListRequest();
hremployeelistrequest.DepartmentID
=
Node_id;
hremployeelistrequest.EmployeeName
=
TextFieldSName.Text.Trim();
hremployeelistrequest.OrgRoleID
=
""
;
hremployeelistrequest.EmployeeNo
=
TextFieldSNO.Text.Trim();
DCC_HREmployeeList hremployeelist
=
client.GetHREmployeeList(hremployeelistrequest);
if
(hremployeelist
!=
null
)
{
StoreUser.DataSource
=
hremployeelist.ToList();
StoreUser.DataBind();
}
}
}
#endregion
private
void
HrEmployeeBind()
{
MSG_GetHREmployeeListRequest hremployeelistrequest
=
new
MSG_GetHREmployeeListRequest();
hremployeelistrequest.DepartmentID
=
"
hremployee
"
;
hremployeelistrequest.EmployeeName
=
""
;
hremployeelistrequest.OrgRoleID
=
""
;
hremployeelistrequest.EmployeeNo
=
""
;
DCC_HREmployeeList hremployeelist
=
client.GetHREmployeeList(hremployeelistrequest);
if
(hremployeelist
!=
null
)
{
StoreHrEmployee.DataSource
=
hremployeelist.ToList();
StoreHrEmployee.DataBind();
}
}
#region
----------添加用户操作-------
protected
void
ButtonNewUser_Click(
object
sender, AjaxEventArgs e)
{
WindowNewHremployee.Show();
HrEmployeeBind();
}
public
void
ButtonhrEmployeeSelect_Click(
object
sender, AjaxEventArgs e)
{
RowSelectionModel sm
=
this
.GridPanelNewhremployee.SelectionModel.Primary
as
RowSelectionModel;
string
json
=
e.ExtraParams[
"
Values
"
];
bool
addHeader
=
true
;
DataTable dt
=
new
DataTable();
StringBuilder strstring
=
new
StringBuilder();
Dictionary
<
string
,
string
>
[] companies
=
JSON.Deserialize
<
Dictionary
<
string
,
string
>
[]
>
(json);
foreach
(Dictionary
<
string
,
string
>
row
in
companies)
{
if
(addHeader)
{
foreach
(KeyValuePair
<
string
,
string
>
keyValuePair
in
row)
{
dt.Columns.Add(keyValuePair.Key);
}
}
addHeader
=
false
;
ArrayList list
=
new
ArrayList();
DataRow dr
=
dt.NewRow();
foreach
(KeyValuePair
<
string
,
string
>
keyValuePair
in
row)
{
dr[keyValuePair.Key]
=
keyValuePair.Value;
if
(keyValuePair.Key
==
"
user_id
"
)
{
strstring.Append(keyValuePair.Value
+
"
;
"
);
}
}
dt.Rows.Add(dr);
}
if
(dt.Rows.Count
>
0
)
{
foreach
(DataRow dr
in
dt.Rows)
{
DC_Resorganization resorgEntity
=
client.GetOrganizationEntity(TextFieldNode.Text);
if
(resorgEntity
!=
null
)
{
DC_HREmployee hrEmployee
=
new
DC_HREmployee();
DC_OperationType operationtype
=
new
DC_OperationType();
MSG_HREmployeeMaintainRequest request
=
new
MSG_HREmployeeMaintainRequest();
operationtype.DCE_OperationType
=
DCE_OperationType.Add;
request.OperationType
=
operationtype;
hrEmployee.user_id
=
dr[
"
user_id
"
].ToString();
hrEmployee.employee_no
=
dr[
"
employee_no
"
].ToString();
hrEmployee.department_id
=
Node_id;
request.HREmployeeEntity
=
hrEmployee;
client.HREmployeeMaintain(request);
}
else
{
MSG_UserOrgRoleMaintainRequest request
=
new
MSG_UserOrgRoleMaintainRequest();
DC_OperationType operationtype
=
new
DC_OperationType();
operationtype.DCE_OperationType
=
DCE_OperationType.Add;
request.OperationType
=
operationtype;
request.orgrole_id
=
TextFieldNode.Text;
request.user_id
=
strstring.ToString();
client.UserOrgRoleMaintain(request);
break
;
}
}
this
.WindowNewHremployee.Hide();
GridPanelBind(
""
,
""
);
}
}
#endregion
#region
///
<summary>
///
Refresh Data
///
</summary>
///
<param name="sender"></param>
///
<param name="e"></param>
protected
void
my_RefreshData(
object
sender, StoreRefreshDataEventArgs e)
{
GridPanelBind(
""
,
""
);
}
///
<summary>
///
Role List Refresh Data
///
</summary>
///
<param name="sender"></param>
///
<param name="e"></param>
protected
void
Rolelist_RefreshData(
object
sender, StoreRefreshDataEventArgs e)
{
RoleGridPanelBind();
}
///
<summary>
///
User List Refresh Data
///
</summary>
///
<param name="sender"></param>
///
<param name="e"></param>
protected
void
Userlist_RefreshData(
object
sender, StoreRefreshDataEventArgs e)
{
if
(TextFieldSNO.Text.Trim()
==
""
&&
TextFieldSName.Text.Trim()
==
""
)
{
GridPanelBind(
""
,
""
);
}
else
{
MSG_GetHREmployeeListRequest hremployeelistrequest
=
new
MSG_GetHREmployeeListRequest();
hremployeelistrequest.DepartmentID
=
Node_id;
hremployeelistrequest.EmployeeName
=
TextFieldSName.Text.Trim();
hremployeelistrequest.OrgRoleID
=
""
;
hremployeelistrequest.EmployeeNo
=
TextFieldSNO.Text.Trim();
DCC_HREmployeeList hremployeelist
=
client.GetHREmployeeList(hremployeelistrequest);
if
(hremployeelist
!=
null
)
{
StoreUser.DataSource
=
hremployeelist.ToList();
StoreUser.DataBind();
}
}
}
#endregion
///
<summary>
///
GridPanel Command
///
</summary>
///
<param name="command"></param>
///
<param name="id"></param>
[AjaxMethod]
public
void
GridPanelUser_Command(
string
command,
string
userid,
string
employeeno)
{
if
(command
==
"
Delete
"
)
{
DC_HREmployee hrEmployee
=
new
DC_HREmployee();
DC_OperationType operationtype
=
new
DC_OperationType();
MSG_HREmployeeMaintainRequest request
=
new
MSG_HREmployeeMaintainRequest();
operationtype.DCE_OperationType
=
DCE_OperationType.Delete;
request.OperationType
=
operationtype;
hrEmployee.user_id
=
userid;
hrEmployee.employee_no
=
employeeno;
request.HREmployeeEntity
=
hrEmployee;
client.HREmployeeMaintain(request);
GridPanelBind(
""
,
""
);
}
}
#region
组织机构树维护
///
<summary>
///
得到点击的树节点的ID
///
</summary>
///
<param name="sender"></param>
///
<param name="e"></param>
public
void
getNode(
object
sender, AjaxEventArgs e)
{
if
(
string
.Compare(TextFieldNode.Text.Trim(),
"
Hisoft
"
)
!=
0
)
{
string
JsFunction
=
"
getNode(#{TreePanelOrganization})
"
;
Coolite.Ext.Web.ScriptManager sm
=
Coolite.Ext.Web.ScriptManager.GetInstance(HttpContext.Current);
sm.AddScript(
string
.Format(
"
{0};
"
, JsFunction));
//
GridPanelBind("", "");
if
(
string
.Compare(TextFieldNode.Text.Trim(),
""
)
!=
0
)
{
DC_Resorganization orgEntity
=
client.GetOrganizationEntity(TextFieldNode.Text.Trim());
if
(orgEntity
!=
null
)
{
Node_id
=
TextFieldNode.Text;
GridPanelBind(
""
,
""
);
Role_id
=
""
;
}
else
{
Role_id
=
TextFieldNode.Text;
GridPanelBind(
""
,
""
);
Node_id
=
""
;
}
}
}
}
[AjaxMethod]
public
void
GetNode(
string
id)
{
TextFieldParentNode.Text
=
id;
//
string JsFunction = "alert('"+id+"');";
//
Coolite.Ext.Web.ScriptManager sm = Coolite.Ext.Web.ScriptManager.GetInstance(HttpContext.Current);
//
sm.AddScript(string.Format("{0};", JsFunction));
}
#region
----------Cancel Organization Maintain-------
///
<summary>
///
Cancel Organization Maintain
///
</summary>
///
<param name="sender"></param>
///
<param name="e"></param>
public
void
ButtonCancel_Click(
object
sender, AjaxEventArgs e)
{
Ext.Msg.Confirm(
"
Tips
"
,
"
Are you sure want to cancel ?
"
,
new
JFunction { Fn
=
"
ShowResult
"
}).Show();
}
///
<summary>
///
Cancel Organization Maintain Hidden WindowNewOrganization
///
</summary>
[AjaxMethod]
public
void
do_Yes()
{
ClearOrganizationMaintainTextBox(
""
);
WindowNewOrganization.Hidden
=
true
;
}
[AjaxMethod]
public
void
do_No()
{
ClearOrganizationMaintainTextBox(
""
);
WindowNewOrganization.Hidden
=
false
;
return
;
}
private
void
ClearOrganizationMaintainTextBox(
string
result)
{
this
.TextFielOrganizationCode.Text
=
result;
this
.TextFielOrganizationName.Text
=
result;
this
.TextFieldOrganizationFullName.Text
=
result;
this
.TextFieldEnglishName.Text
=
result;
this
.TextFieldChineseName.Text
=
result;
this
.TextFieldJapaneseName.Text
=
result;
this
.TextFieldLegalEntityCode.Text
=
result;
BindComboxBu();
BindComboBoxSite();
}
#endregion
#region
--------------组织机构树删除--------------
[AjaxMethod]
public
void
DoConfirm()
{
//
Manually configure Handler...
//
Ext.Msg.Confirm("Message", "Confirm?", "if(buttonId == 'yes') { CompanyX.DoYes(); } else { CompanyX.DoNo(); }").Show();
//
Configure individualock Buttons using a ButtonsConfig...
DC_Resorganization resOrgEntity
=
new
DC_Resorganization();
resOrgEntity
=
client.GetOrganizationEntity(TextFieldNode.Text.Trim());
if
(resOrgEntity
==
null
)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
"
Please choose a organization.
"
,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
AnimEl
=
this
.ButtonSave.ClientID
});
return
;
}
else
{
Ext.Msg.Confirm(
"
Tips
"
,
"
Are you sure want to delete?
"
,
new
MessageBox.ButtonsConfig
{
Yes
=
new
MessageBox.ButtonConfig
{
Handler
=
"
Coolite.AjaxMethods.DeleteYes();delNode(#{TreePanelOrganization});
"
,
Text
=
"
Yes
"
},
No
=
new
MessageBox.ButtonConfig
{
Handler
=
"
Coolite.AjaxMethods.DeleteNo()
"
,
Text
=
"
No
"
}
}).Show();
}
}
[AjaxMethod]
public
void
DeleteYes()
{
if
(
string
.Compare(Node_id,
""
)
==
0
)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
"
Please choose a organization.
"
,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
AnimEl
=
this
.ButtonSave.ClientID
});
return
;
}
if
(
string
.Compare(Node_id,
"
Hisoft
"
)
==
0
)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
"
Please choose a valid organization.
"
,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
AnimEl
=
this
.ButtonSave.ClientID
});
return
;
}
else
{
//
组织结构树删除
DC_Resorganization resOrgEntity
=
new
DC_Resorganization();
DC_OperationType operationtype
=
new
DC_OperationType();
MSG_OrganizationMaintainRequest requst
=
new
MSG_OrganizationMaintainRequest();
operationtype.DCE_OperationType
=
DCE_OperationType.Delete;
requst.OperationType
=
operationtype;
//
resOrgEntity.OrganizationCode = Node_id.Trim();
resOrgEntity
=
client.GetOrganizationEntity(TextFieldNode.Text.Trim());
requst.OrganizationEntity
=
resOrgEntity;
client.OrganizationMaintain(requst);
//
RES_Organization Resorganization = context.RES_Organization.FirstOrDefault(cc => cc.organization_code == Node_id);
//
context.DeleteObject(Resorganization);
//
context.SaveChanges();
}
}
[AjaxMethod]
public
void
DeleteNo()
{
return
;
}
[AjaxMethod]
public
void
DoDeleteRoleConfirm()
{
DC_Resorganization resOrgEntity
=
new
DC_Resorganization();
resOrgEntity
=
client.GetOrganizationEntity(TextFieldNode.Text.Trim());
if
(resOrgEntity
!=
null
)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
"
Please choose a role.
"
,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
AnimEl
=
this
.ButtonSave.ClientID
});
return
;
}
else
{
Ext.Msg.Confirm(
"
Tips
"
,
"
Are you sure want to delete?
"
,
new
MessageBox.ButtonsConfig
{
Yes
=
new
MessageBox.ButtonConfig
{
Handler
=
"
Coolite.AjaxMethods.DeleteRoleYes();delNode(#{TreePanelOrganization});
"
,
Text
=
"
Yes
"
},
No
=
new
MessageBox.ButtonConfig
{
Handler
=
"
Coolite.AjaxMethods.DeleteNo()
"
,
Text
=
"
No
"
}
}).Show();
}
}
[AjaxMethod]
public
void
DeleteRoleYes()
{
if
(
string
.Compare(Role_id,
""
)
==
0
)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
"
Please choose a role.
"
,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
AnimEl
=
this
.ButtonSave.ClientID
});
return
;
}
else
if
(
string
.Compare(Role_id,
"
Hisoft
"
)
==
0
)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
"
Please choose a valid role.
"
,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
AnimEl
=
this
.ButtonSave.ClientID
});
return
;
}
else
if
(
string
.Compare(org_RoleID,
"
Hisoft
"
)
==
0
)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
"
Please choose a valid role.
"
,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
AnimEl
=
this
.ButtonSave.ClientID
});
return
;
}
else
{
//
组织结构树删除
//
DC_OrgRoleOrg orgroleEntity = new DC_OrgRoleOrg();
DC_OperationType operationtype
=
new
DC_OperationType();
MSG_OrgRoleOrgMainTainRequest request
=
new
MSG_OrgRoleOrgMainTainRequest();
operationtype.DCE_OperationType
=
DCE_OperationType.Delete;
request.OperationType
=
operationtype;
request.orgrole_id
=
Role_id;
request.organization_id
=
org_RoleID;
client.OrgRoleOrgMaintain(request);
}
}
#endregion
--=
#region
---------组织机构树添加跟修改操作---------
[AjaxMethod]
public
void
OrganizationNew()
{
if
(
string
.Compare(Node_id,
""
)
==
0
)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
"
Please choose a organization.
"
,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
AnimEl
=
this
.ButtonSave.ClientID
});
return
;
}
if
(
string
.Compare(Node_id,
"
Hisoft
"
)
==
0
)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
"
Please choose a valid organization.
"
,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
AnimEl
=
this
.ButtonSave.ClientID
});
return
;
}
else
{
this
.WindowNewOrganization.Title
=
"
New Organization
"
;
this
.WindowNewOrganization.Icon
=
Icon.GroupAdd;
this
.ButtonSave.Text
=
"
New
"
;
flag
=
"
New
"
;
ClearOrganizationMaintainTextBox(
""
);
TextFieldParentOrgCode.FieldLabel
=
"
ParentOrganization Code
"
;
TextFielOrganizationCode.AllowBlank
=
false
;
TextFielOrganizationCode.Hidden
=
false
;
TextFieldParentOrgCode.Text
=
Node_id.Trim();
BindComboxBu();
BindComboBoxSite();
this
.WindowNewOrganization.Show();
}
}
[AjaxMethod]
public
void
ButtonEditOG_Click()
{
if
(
string
.Compare(Node_id,
""
)
==
0
)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
"
Please choose a organization.
"
,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
AnimEl
=
this
.ButtonSave.ClientID
});
return
;
}
if
(
string
.Compare(Node_id,
"
Hisoft
"
)
==
0
)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
"
Please choose a valid organization.
"
,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
AnimEl
=
this
.ButtonSave.ClientID
});
return
;
}
else
{
this
.WindowNewOrganization.Title
=
"
Edit Organization
"
;
this
.WindowNewOrganization.Icon
=
Icon.GroupEdit;
this
.ButtonSave.Text
=
"
Save
"
;
flag
=
"
Save
"
;
this
.WindowNewOrganization.Show();
BindComboBoxSite();
BindComboxBu();
DC_Resorganization organizationEntity
=
new
DC_Resorganization();
MSG_GetOrganizationEntityRequest request
=
new
MSG_GetOrganizationEntityRequest();
TextFieldParentOrgCode.Text
=
Node_id.Trim();
organizationEntity
=
client.GetOrganizationEntity(Node_id.Trim());
TextFielOrganizationName.Text
=
organizationEntity.OrganizationName;
TextFieldOrganizationFullName.Text
=
organizationEntity.OrganizationFullName;
TextFieldEnglishName.Text
=
organizationEntity.EnglishName;
TextFieldChineseName.Text
=
organizationEntity.ChineseName;
TextFieldJapaneseName.Text
=
organizationEntity.JapaneseName;
TextFieldLegalEntityCode.Text
=
organizationEntity.LegalentityCode;
ComboBoxBu.SelectedItem.Value
=
organizationEntity.BuID;
ComboBoxSite.SelectedItem.Value
=
organizationEntity.SiteID;
HiddenOrganizationID.Value
=
organizationEntity.OrganizationID;
TextFieldParentOrgCode.FieldLabel
=
"
Organization Code
"
;
TextFielOrganizationCode.AllowBlank
=
true
;
TextFielOrganizationCode.Hidden
=
true
;
//
TextFielOrganizationCode.Text = organizationEntity.OrganizationCode.Substring(2, organizationEntity.OrganizationCode.Length);
}
}
public
void
Save(
object
sender, AjaxEventArgs e)
{
try
{
MaintainOrganization();
}
catch
(Exception ex)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
ex.Message,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
AnimEl
=
this
.ButtonNewOG.ClientID
});
return
;
}
}
///
<summary>
///
组织角色添加与修改
///
</summary>
public
void
MaintainOrganization()
{
try
{
DC_Resorganization resorganization
=
new
DC_Resorganization();
DC_OperationType operationType
=
new
DC_OperationType();
MSG_OrganizationMaintainRequest request
=
new
MSG_OrganizationMaintainRequest();
if
(
string
.Compare(flag,
"
New
"
)
==
0
)
{
if
(TextFielOrganizationCode.Text.Trim().Length
%
2
!=
0
)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
"
Please input a valid OrganizationCode.
"
,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
AnimEl
=
this
.ButtonNewOG.ClientID
});
return
;
}
else
if
(
string
.Compare(TextFieldParentOrgCode.Text.Trim(),
""
)
>
0
&&
string
.Compare(TextFielOrganizationCode.Text.Trim(),
""
)
>
0
)
{
DC_Resorganization orgEntity
=
client.GetOrganizationEntity(TextFieldParentOrgCode.Text.Trim()
+
TextFielOrganizationCode.Text.Trim());
if
(orgEntity
!=
null
)
{
Ext.Msg.Alert(
"
Tips
"
,
"
Message: The
"
+
TextFieldParentOrgCode.Text.Trim()
+
TextFielOrganizationCode.Text.Trim()
+
"
has exists,Please retype a valid code.
"
).Show();
return
;
}
}
else
if
(
string
.Compare(TextFieldOrganizationFullName.Text.Trim(),
""
)
>
0
)
{
DC_Resorganization orgEntity
=
client.GetOrganizationEntity(TextFieldParentOrgCode.Text.Trim()
+
TextFielOrganizationCode.Text.Trim());
if
(orgEntity
!=
null
)
{
if
(
string
.Compare(orgEntity.OrganizationFullName, TextFieldOrganizationFullName.Text.Trim())
==
0
)
{
Ext.Msg.Alert(
"
Tips
"
,
"
Message: The
"
+
orgEntity.OrganizationFullName
+
"
has exists,Please retype a valid full name.
"
).Show();
return
;
}
}
}
else
if
(TextFielOrganizationCode.Text.Length
>
2
)
{
Ext.Msg.Alert(
"
Tips
"
,
"
Message:The OrganizationCode's length could not greater than two.
"
).Show();
return
;
}
operationType.DCE_OperationType
=
DCE_OperationType.Add;
request.OperationType
=
operationType;
resorganization.OrganizationCode
=
TextFieldParentOrgCode.Text.Trim()
+
TextFielOrganizationCode.Text.Trim();
resorganization.ChineseName
=
TextFieldChineseName.Text.Trim();
resorganization.EnglishName
=
TextFieldEnglishName.Text.Trim();
resorganization.JapaneseName
=
TextFieldJapaneseName.Text.Trim();
resorganization.LegalentityCode
=
TextFieldLegalEntityCode.Text.Trim();
resorganization.OrganizationFullName
=
TextFieldOrganizationFullName.Text.Trim();
resorganization.OrganizationTypeCatid
=
"
HR
"
;
resorganization.OrganizationName
=
TextFielOrganizationName.Text.Trim();
resorganization.IsDeleted
=
0
;
resorganization.LastModifiedTime
=
DateTime.Now;
resorganization.OrganizationID
=
Convert.ToString(Guid.NewGuid());
resorganization.BuID
=
ComboBoxBu.SelectedItem.Value;
resorganization.SiteID
=
ComboBoxSite.SelectedItem.Value;
request.OrganizationEntity
=
resorganization;
client.OrganizationMaintain(request);
}
else
if
(
string
.Compare(flag,
"
Save
"
)
==
0
)
{
operationType.DCE_OperationType
=
DCE_OperationType.Update;
request.OperationType
=
operationType;
resorganization.OrganizationCode
=
TextFieldParentOrgCode.Text.Trim();
resorganization.ChineseName
=
TextFieldChineseName.Text.Trim();
resorganization.EnglishName
=
TextFieldEnglishName.Text.Trim();
resorganization.JapaneseName
=
TextFieldJapaneseName.Text.Trim();
resorganization.LegalentityCode
=
TextFieldLegalEntityCode.Text.Trim();
resorganization.OrganizationFullName
=
TextFieldOrganizationFullName.Text.Trim();
resorganization.OrganizationTypeCatid
=
"
HR
"
;
resorganization.OrganizationName
=
TextFielOrganizationName.Text.Trim();
resorganization.IsDeleted
=
0
;
resorganization.LastModifiedTime
=
DateTime.Now;
resorganization.BuID
=
ComboBoxBu.SelectedItem.Value;
resorganization.SiteID
=
ComboBoxSite.SelectedItem.Value;
resorganization.OrganizationID
=
HiddenOrganizationID.Value.ToString();
request.OrganizationEntity
=
resorganization;
client.OrganizationMaintain(request);
}
string
JsFunction
=
"
refreshTree(#{TreePanelOrganization})
"
;
//
string JsFunction = "alert('dd');";
//
string JsFunction = "refreshTree()";
Coolite.Ext.Web.ScriptManager sm
=
Coolite.Ext.Web.ScriptManager.GetInstance(HttpContext.Current);
sm.AddScript(
string
.Format(
"
{0};
"
, JsFunction));
WindowNewOrganization.Hide();
}
catch
(Exception ex)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
ex.Message,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
AnimEl
=
this
.ButtonNewOG.ClientID
});
return
;
}
}
#endregion
///
<summary>
///
刷新树 Json 获取
///
</summary>
///
<returns></returns>
[AjaxMethod]
public
string
RefreshMenu()
{
Coolite.Ext.Web.TreeNodeCollection nodes
=
LoadTree(
this
.TreePanelOrganization.Root);
return
nodes.ToJson();
}
#region
----------Bu/Site 绑定----------------
public
void
BindComboxBu()
{
DCC_ResBuList bulist
=
client.GetBuList(
""
);
StoreBu.DataSource
=
bulist.ToArray();
StoreBu.DataBind();
//
StoreBu.DataSource = OrgData.GetBu("", context);
//
StoreBu.DataBind();
}
public
void
BindComboBoxSite()
{
//
StoreSite.DataSource = OrgData.GetSite("", context);
StoreSite.DataSource
=
client.GetSiteList(
""
);
StoreSite.DataBind();
}
#endregion
#region
OrgRole Bind && New Role
///
<summary>
///
Bind Role GridPanel
///
</summary>
private
void
RoleGridPanelBind()
{
if
(client.GetOrgRoleList(
""
).ToList()
!=
null
)
{
StoreRoleList.DataSource
=
client.GetOrgRoleList(
""
);
StoreRoleList.DataBind();
}
}
[AjaxMethod]
public
void
ButtonNewRole_Click()
{
DC_Resorganization orgEntity
=
client.GetOrganizationEntity(org_RoleID);
if
(
string
.Compare(Role_id,
""
)
==
0
)
{
//
Ext.Msg.Show(new MessageBox.Config
//
{
//
Title = "Tips",
//
Message = "Please choose a role.",
//
Buttons = MessageBox.Button.OK,
//
Icon = MessageBox.Icon.INFO,
//
AnimEl = this.ButtonSave.ClientID
//
});
//
return;
this
.WindowNewRole.Show();
RoleGridPanelBind();
}
else
if
(
string
.Compare(Role_id,
"
Hisoft
"
)
==
0
)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
"
Please choose a valid organization.
"
,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
AnimEl
=
this
.ButtonSave.ClientID
});
return
;
}
else
if
(orgEntity
!=
null
)
{
Ext.Msg.Show(
new
MessageBox.Config
{
Title
=
"
Tips
"
,
Message
=
"
Please choose a organization.
"
,
Buttons
=
MessageBox.Button.OK,
Icon
=
MessageBox.Icon.INFO,
AnimEl
=
this
.ButtonSave.ClientID
});
return
;
}
else
if
(orgEntity
==
null
)
{
this
.WindowNewRole.Show();
RoleGridPanelBind();
}
}
public
void
ButtonRoleListSelect_Click(
object
sender, AjaxEventArgs e)
{
string
json
=
e.ExtraParams[
"
Values
"
];
bool
addHeader
=
true
;
DataTable dt
=
new
DataTable();
StringBuilder sbstr
=
new
StringBuilder();
Dictionary
<
string
,
string
>
[] companies
=
JSON.Deserialize
<
Dictionary
<
string
,
string
>
[]
>
(json);
foreach
(Dictionary
<
string
,
string
>
row
in
companies)
{
if
(addHeader)
{
foreach
(KeyValuePair
<
string
,
string
>
keyValuePair
in
row)
{
dt.Columns.Add(keyValuePair.Key);
}
}
addHeader
=
false
;
ArrayList list
=
new
ArrayList();
DataRow dr
=
dt.NewRow();
foreach
(KeyValuePair
<
string
,
string
>
keyValuePair
in
row)
{
dr[keyValuePair.Key]
=
keyValuePair.Value;
if
(dr[
"
orgrole_id
"
]
==
dr[keyValuePair.Key])
{
sbstr.Append(keyValuePair.Value
+
"
;
"
);
}
}
dt.Rows.Add(dr);
}
if
(dt.Rows.Count
>
0
)
{
try
{
DC_OperationType operationtype
=
new
DC_OperationType();
MSG_OrgRoleOrgMainTainRequest request
=
new
MSG_OrgRoleOrgMainTainRequest();
request.orgrole_id
=
sbstr.ToString();
operationtype.DCE_OperationType
=
DCE_OperationType.Add;
request.OperationType
=
operationtype;
request.organization_id
=
Node_id;
client.OrgRoleOrgMaintain(request);
string
JsFunction
=
"
refreshTree(#{TreePanelOrganization})
"
;
//
string JsFunction = "alert('dd');";
//
string JsFunction = "refreshTree()";
Coolite.Ext.Web.ScriptManager sm
=
Coolite.Ext.Web.ScriptManager.GetInstance(HttpContext.Current);
sm.AddScript(
string
.Format(
"
{0};
"
, JsFunction));
this
.WindowNewRole.Hide();
}
catch
(Exception ex)
{
Ext.Msg.Alert(
"
错误
"
,
"
Message:
"
+
ex.Message
+
"
;
"
).Show();
}
}
}
#endregion
#endregion
}
}