using System; using System.Collections.Generic; using System.Data; using System.Web.UI; using System.Web.UI.WebControls; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.Web.UI; using SuperMap.RealEstate.Web.UI.WebControls; using HZQR.Common; namespace SuperMap.RealEstate.Finance.Running { /// /// T_LEAVE_请假管理表 的WebUserControl /// public partial class LEAVE : UserControl { Running.Business.FINANCEPROINST _FINANCEPROINST = null; protected override void OnInit(EventArgs e) { Common.PageHelper.CreateHeaderStyle(Page); _FINANCEPROINST = Running.Business.FINANCEPROINST.CreateInstance(Page); base.ButtonVisible = false; base.OnInit(e); } #region 方法 -> 页面加载 protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; if (!string.IsNullOrWhiteSpace(LEAVE_STARTDATE.Text) && !string.IsNullOrWhiteSpace(LEAVE_ENDDATE.Text) && string.IsNullOrWhiteSpace(DURATION_DAYS.Text)) { TimeSpan _TimeSpan = (LEAVE_ENDDATE.Text.TryParseToDateTime() - LEAVE_STARTDATE.Text.TryParseToDateTime()).Value; if (_TimeSpan.TotalDays <= 1) { DURATION_DAYS.Text = "1"; } else { DURATION_DAYS.Text = _TimeSpan.Hours == 0 ? _TimeSpan.TotalDays.ToString("0") : _TimeSpan.TotalDays.ToString("0.0"); } DURATION_HOURS.Text = _TimeSpan.Hours.ToString(); } if (ModifyType != ModifyTypeEnum.Edit && ModifyType != ModifyTypeEnum.EditVisible) { LEAVE_STARTDATE.ValidType = ValidTypeEnum.NoSet; LEAVE_STARTDATE.Text = DateTime.Parse(LEAVE_STARTDATE.Text).ToString("yyyy年MM月dd日"); LEAVE_ENDDATE.ValidType = ValidTypeEnum.NoSet; LEAVE_ENDDATE.Text = DateTime.Parse(LEAVE_ENDDATE.Text).ToString("yyyy年MM月dd日"); } if (_FINANCEPROINST.__ProInst != null) { #region 审批信息 DataTable APPROVEDTable = new Running.Business.APPROVED(Transaction).ExecuteDataTable(string.Format( @"SELECT APPROVED_TYPE,APPROVED_INFO,STAFF_ID,STAFF_NAME,APPROVED_STAFF,APPROVEDTYPE, APPROVED_MARK,APPROVED_NAME,APPROVED_DESC,MAX(APPROVED_DATE) AS APPROVED_DATE FROM FINANCE_STORAGE.V_APPROVED_ALL WHERE APPROVED_MARK = 2000 AND FINANCEPROINST_ID = {0} GROUP BY APPROVED_TYPE,APPROVED_INFO,STAFF_ID,STAFF_NAME,APPROVED_STAFF, APPROVED_MARK,APPROVED_NAME,APPROVED_DESC,APPROVEDTYPE ORDER BY APPROVEDTYPE,APPROVED_DATE", _FINANCEPROINST.FINANCEPROINST_ID)); if (_FINANCEPROINST.__ProInst.ProDef_Name.Contains("区域")) { APPROVE_NAME_M.Text = "区域部门负责人"; if (APPROVEDTable.Select("APPROVEDTYPE = 1040").Length > 0) { DataRow[] DataRowList = APPROVEDTable.Select("APPROVEDTYPE = 1040"); APPROVE_INFO_M.Text = DataRowList[0]["APPROVED_INFO"].ToString(); APPROVE_STAFF_M.Text = "审核人:" + DataRowList[0]["APPROVED_STAFF"].ToString() + ""; APPROVE_DATE_M.Text = "审核时间:" + DataRowList[0]["APPROVED_DATE"].ToString() + ""; } APPROVE_NAME_L.Text = "区域综合主管"; if (APPROVEDTable.Select("APPROVEDTYPE = 1050").Length > 0) { DataRow[] DataRowList = APPROVEDTable.Select("APPROVEDTYPE = 1050"); APPROVE_INFO_L.Text = DataRowList[0]["APPROVED_INFO"].ToString(); APPROVE_STAFF_L.Text = "审核人:" + DataRowList[0]["APPROVED_STAFF"].ToString() + ""; APPROVE_DATE_L.Text = "审核时间:" + DataRowList[0]["APPROVED_DATE"].ToString() + ""; } APPROVE_NAME_H.Text = "区域负责人"; if (APPROVEDTable.Select("APPROVEDTYPE = 1060").Length > 0) { DataRow[] DataRowList = APPROVEDTable.Select("APPROVEDTYPE = 1060"); APPROVE_INFO_H.Text = DataRowList[0]["APPROVED_INFO"].ToString(); APPROVE_STAFF_H.Text = "审核人:" + DataRowList[0]["APPROVED_STAFF"].ToString() + ""; APPROVE_DATE_H.Text = "审核时间:" + DataRowList[0]["APPROVED_DATE"].ToString() + ""; } tr_mleader.Visible = false; tr_mleaderInfo.Visible = false; } else if (_FINANCEPROINST.__ProInst.ProDef_Name.Contains("经理") || _FINANCEPROINST.__ProInst.ProDef_Name.Contains("主任") || _FINANCEPROINST.ProInst.ProDef_Name.Contains("经营管理者")) { APPROVE_NAME_M.Text = "区域综合主管"; if (APPROVEDTable.Select("APPROVEDTYPE = 1050").Length > 0) { DataRow[] DataRowList = APPROVEDTable.Select("APPROVEDTYPE = 1050"); APPROVE_INFO_M.Text = DataRowList[0]["APPROVED_INFO"].ToString(); APPROVE_STAFF_M.Text = "审核人:" + DataRowList[0]["APPROVED_STAFF"].ToString() + ""; APPROVE_DATE_M.Text = "审核时间:" + DataRowList[0]["APPROVED_DATE"].ToString() + ""; } APPROVE_NAME_L.Text = "区域负责人"; if (APPROVEDTable.Select("APPROVEDTYPE = 1060").Length > 0) { DataRow[] DataRowList = APPROVEDTable.Select("APPROVEDTYPE = 1060"); APPROVE_INFO_L.Text = DataRowList[0]["APPROVED_INFO"].ToString(); APPROVE_STAFF_L.Text = "审核人:" + DataRowList[0]["APPROVED_STAFF"].ToString() + ""; APPROVE_DATE_L.Text = "审核时间:" + DataRowList[0]["APPROVED_DATE"].ToString() + ""; } tr_manager.Visible = false; tr_managerInfo.Visible = false; tr_leader.Visible = false; tr_leaderInfo.Visible = false; } else { APPROVE_NAME_M.Text = "综合管理员"; if (APPROVEDTable.Select("APPROVEDTYPE = 1015").Length > 0) { DataRow[] DataRowList = APPROVEDTable.Select("APPROVEDTYPE = 1015"); APPROVE_INFO_M.Text = DataRowList[0]["APPROVED_INFO"].ToString(); APPROVE_STAFF_M.Text = "审核人:" + DataRowList[0]["APPROVED_STAFF"].ToString() + ""; APPROVE_DATE_M.Text = "审核时间:" + DataRowList[0]["APPROVED_DATE"].ToString() + ""; } APPROVE_NAME_L.Text = "服务区负责人"; if (APPROVEDTable.Select("APPROVEDTYPE = 1020").Length > 0) { DataRow[] DataRowList = APPROVEDTable.Select("APPROVEDTYPE = 1020"); APPROVE_INFO_L.Text = DataRowList[0]["APPROVED_INFO"].ToString(); APPROVE_STAFF_L.Text = "审核人:" + DataRowList[0]["APPROVED_STAFF"].ToString() + ""; APPROVE_DATE_L.Text = "审核时间:" + DataRowList[0]["APPROVED_DATE"].ToString() + ""; } tr_manager.Visible = false; tr_managerInfo.Visible = false; tr_leader.Visible = false; tr_leaderInfo.Visible = false; } #endregion } //绑定假期类型 BindLeaveType(); } #endregion //在此加入界面的数据初始化(Page_Load之前),如DropDownList的数据源绑定等 public override void InitializeWebControl() { } #region 方法 -> 载入数据 public override bool LoadData() { FINANCEPROINST_ID.Text = _FINANCEPROINST.FINANCEPROINST_ID.ToString(); FINANCEPROINST_CREATEDATE.Text = _FINANCEPROINST.FINANCEPROINST_CREATEDATE.Value.ToLongDateString(); STAFF_ID.Text = Page.PassportInfo.ID.ToString(); STAFF_NAME.Text = Page.PassportInfo.Name; OPERATE_DATE.Text = DateTime.Now.ToString(); LEAVE_PERSON.Text = Page.PassportInfo.Name; //默认所在部门 DataTable UserTypeTable = new FrameWork.Business.UserType(CurrObject).ExecuteDataTable( @"SELECT B.USERTYPE_NAME FROM PLATFORM_FRAMEWORK.T_USER A,PLATFORM_FRAMEWORK.T_USERTYPE B WHERE A.USERTYPE_ID = B.USERTYPE_ID AND USER_ID = " + Page.PassportInfo.ID); if (UserTypeTable.Rows.Count > 0) { DEPARTMENT_NAME.Text = UserTypeTable.Rows[0]["USERTYPE_NAME"].ToString(); } //如果是工作流组件请自行修改载入的逻辑,以下是功能模块的默认代码 Running.Business.LEAVE _LEAVE = new Business.LEAVE(_FINANCEPROINST); _LEAVE.AddSearchParameter("FINANCEPROINST_ID", _FINANCEPROINST.FINANCEPROINST_ID); if (_LEAVE.Search()) { BindObjectToControl(_LEAVE); return true; } //默认返回值,工作流组件返回True,功能模块返回False。 return (WorkFlowPage != null); } #endregion //OnDataAction_XXXXX 有一个系列可用,在此加入界面的逻辑处理 //e.CancelDataAction 来处理是否取消该动作; //失败的原因可以用Page.Alert()传递到页面 public override void OnDataAction_BeforeSave(DataActionEventArgs e) { string _LEAVE_TYPE = ""; foreach (ListItem _ListItem in LEAVETYPE.Items) { if(_ListItem.Selected) { _LEAVE_TYPE += (_LEAVE_TYPE == "" ? "" : ",") + _ListItem.Value; } } if (_LEAVE_TYPE=="") { throw new Exception("请选择请假类型!"); } e.CurrObject.LEAVE_TYPE = _LEAVE_TYPE; base.OnDataAction_BeforeSave(e); } public override void OnDataAction_AfterSave(DataActionEventArgs e) { if (_FINANCEPROINST.__ProInst != null) { _FINANCEPROINST.__ProInst.ProInst_Name = e.CurrObject.LEAVE_REASON; _FINANCEPROINST.ACCEPT_NAME = e.CurrObject.LEAVE_REASON; _FINANCEPROINST.__ProInst.Update(); _FINANCEPROINST.Update(); } base.OnDataAction_AfterSave(e); } #region 方法 -> 绑定假期类型 private void BindLeaveType() { Dictionary _Dist = DictionaryHelper.GetDictionaryKeyValue(this.Transaction, "LEAVE_TYPE"); foreach (var item in _Dist) { ListItem _ListItem = new ListItem(); _ListItem.Text = item.Value; _ListItem.Value = item.Key; if (!string.IsNullOrWhiteSpace(LEAVE_TYPE.Text) && LEAVE_TYPE.Text.Contains(_ListItem.Value)) { _ListItem.Selected = true; } if (ModifyType == ModifyTypeEnum.Edit || ModifyType == ModifyTypeEnum.EditVisible) { _ListItem.Enabled = true; } else { _ListItem.Enabled = false; } LEAVETYPE.Items.Add(_ListItem); } } #endregion protected void LEAVE_STARTDATE_CallBackSetControl(object sender, ClientSetEventArgs e) { //计算时间间隔 if (!string.IsNullOrWhiteSpace(LEAVE_STARTDATE.Text) && !string.IsNullOrWhiteSpace(LEAVE_ENDDATE.Text)) { TimeSpan _TimeSpan = (LEAVE_ENDDATE.Text.TryParseToDateTime() - LEAVE_STARTDATE.Text.TryParseToDateTime()).Value; if (_TimeSpan.TotalDays <= 1) { DURATION_DAYS.Text = "1"; } else { DURATION_DAYS.Text = _TimeSpan.Hours == 0 ? _TimeSpan.TotalDays.ToString("0") : _TimeSpan.TotalDays.ToString("0.0"); } DURATION_HOURS.Text = _TimeSpan.Hours.ToString(); } e.SetValue(DURATION_DAYS); e.SetValue(DURATION_HOURS); } } }