using System;
using System.Collections;
using DeiNiu.Utils;
using DeiNiu.wms.Data.Model;
using System.Data;
using System.Threading;
namespace DeiNiu.wms.Logical
{
[Serializable]
public class LEmployee
{
Employee _obj;
private DeptEmp _deptEmpObj = new DeptEmp();
// ArrayList _authList = new ArrayList();
private bool _canYuShen;
private bool _canShenHe;
private bool _canKaoHe;
private bool _canManageProject;
public LEmployee()
{
Initialize();
}
public DeptEmp GetDeptEmp
{
get
{
return _deptEmpObj;
}
}
public Employee GetEmployee
{
get
{
return _obj;
}
}
public ArrayList AuthList
{
get
{
// return _authList;
if (_obj != null) return new LRoleAuthority().GetAuthorityList(_obj.ID); //权限即时有效,不需登录
return new ArrayList();
}
}
public DataTable AuthTable
{
get
{
if (_obj != null) return new LRoleAuthority().GetAuthByEm(_obj.ID); //权限即时有效,不需登录
return new DataTable();
}
}
///
/// get all data
///
public DataSet GetAllData()
{
return _obj.Query();
}
///
/// get all data
///
public DataSet GetAllActiveData()
{
return _obj.QueryActived();
}
///
/// 取得用户部门信息
///
public DataTable GetActivedEmpDept()
{
return _deptEmpObj.GetActivedEmpDept();
}
///
/// get a record by id
///
public void Initialize(int id)
{
_obj = id != 0 ? new Employee(id) : new Employee();
setApproveProperty(_obj.ID);
}
///
/// get a record by id 0
///
public void Initialize()
{
Initialize(0);
}
public DataTable GetDepartments()
{
return new Department().QueryActived().Tables[0];
}
///
/// login, success then load authoritylist
///
///
///
///
public bool Login(string userAccount, string passwd)
{
int id = _obj.ValidUser(userAccount,Util.Encrypt(passwd) );
if ( id >0)
{
// _authList = new LRoleAuthority().GetAuthorityList(_obj.ID);
// setApproveProperty(_obj.ID);
Initialize(id);
return true;
}
return false;
}
protected void setApproveProperty(int empId)
{
LRoleAuthority ra = new LRoleAuthority();
ArrayList al = ra.GetApproveRoleList(empId);
_canKaoHe = al.Contains(ApproveRoles.KaoHe);
_canManageProject = al.Contains(ApproveRoles.项目维护);
if (GetCanApproveDeptList().Count > 0) //只有部门负责人才有预审、审核的权利。
{
_canShenHe = al.Contains(ApproveRoles.ShenHe);
_canYuShen = al.Contains(ApproveRoles.YuShen);
}
}
///
/// 当前用户项目权限authType列表,0,100,200..
///
public ArrayList ProjectAuthlist
{
get
{
const string prjlink = "~/Project/ProjectMain.aspx?authType=";
ArrayList al = AuthList;
ArrayList prjAuthlist = new ArrayList();
for (int i = 0; i < al.Count; i++)
{
if (al[i].ToString().Contains(prjlink.ToUpper()))
{
prjAuthlist.Add(al[i].ToString().Substring(prjlink.Length));
}
}
return prjAuthlist;
}
}
///
/// 当前用户项目最大权限authType, Example 200..
///
public int ProjectMaxAuth
{
get
{
int authType = 0;
int index = -1;
ArrayList al = ProjectAuthlist;
for (int i = 0; i < al.Count; i++)
{
if (Convert.ToInt32(al[i].ToString() ) > authType)
{
authType = Convert.ToInt32(al[i].ToString() );
index = i;
}
}
return index>-1 ?Convert.ToInt32(al[index].ToString()):index ;
}
}
///
/// 当前用户项目最大权限页面, Example 200..
///
public string ProjectMaxAuthPage
{
get
{
const string prjlink = "~/Project/ProjectMain.aspx?authType=";
return ProjectMaxAuth>-1?prjlink +ProjectMaxAuth : string.Empty;
}
}
public bool CanShenHe
{
get { return _canShenHe; }
}
public bool CanYuShen
{
get { return _canYuShen; }
set { _canYuShen = value; }
}
public bool CanKaoHe
{
get { return _canKaoHe; }
}
public bool CanManageProjects
{
get { return _canManageProject; }
}
public DataTable GetLessons(int empId)
{
return _obj.GetLessons(empId);
}
///
/// 当前用户可进行项目审批的部门列表
///
///
public ArrayList GetCanApproveDeptList()
{
return new Department().QueryDepts(GetEmployee.ID);
}
///
/// 取得当前员工的部门列表
///
///
///
public Array GetEmDepartments()
{
DataTable dt= _obj.GetDepartments( );
string[] al = new string[1] ;
if(dt !=null)
{
al = new string[dt.Rows.Count];
int i = 0;
foreach (DataRow dr in dt.Rows)
{
al[i] = dr["DE_DEPT"].ToString();
i++;
}
}
return al;
}
///
/// 取得员工的部门列表
///
///
///
public DataTable GetDepartments(int empId)
{
return _obj.GetDepartments(empId);
}
///
/// 取得部门的员工列表
///
///
///
public DataTable GetActiveEmpByDept(int deptId)
{
return _obj.GetActivedEmplyeesByDept(deptId);
}
public bool AddEmployee()
{
if(!_obj.ValidUser(_obj.em_account))
{
_obj.Add();
return true;
}
return false;
}
public ArrayList OnLineUsers
{
get
{
return _obj.GetUsersOnLine();
}
}
public void test()
{
int i = 0;
while (i < 1000000)
{
i++;
Console.WriteLine(string.Format("current user id is {0}", LoginInfo.UserId));
Thread.Sleep(1000);
}
}
}
}