using BLL; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; namespace FineUIPro.Web.ResourcePlan { public partial class ResourcePlan : PageBase { #region 加载 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { // 表头过滤 FilterDataRowItem = FilterDataRowItemImplement; if (!IsPostBack) { // GetButtonPower();//权限设置 //项目类型 this.drpJobType.DataTextField = "ConstText"; this.drpJobType.DataValueField = "ConstValue"; this.drpJobType.DataSource = BLL.ConstService.GetConstListByGroupId(BLL.Const.ProjectPlanner_JobType); this.drpJobType.DataBind(); Funs.FineUIPleaseSelectJobType(this.drpJobType); //项目状态 this.drpJobStatus.DataTextField = "ConstText"; this.drpJobStatus.DataValueField = "ConstValue"; this.drpJobStatus.DataSource = BLL.ConstService.GetConstListByGroupId(BLL.Const.ProjectPlanner_JobStatus); this.drpJobStatus.DataBind(); Funs.FineUIPleaseSelectJobStatus(this.drpJobStatus); //btnNew.OnClientClick = Window1.GetShowReference("ResourcePlanEdit.aspx?eProjectId={0}") + "return false;"; // btnNew.OnClientClick = Window1.GetShowReference("ResourcePlanEdit.aspx"); //btnDelete.OnClientClick = Grid1.GetNoSelectionAlertReference("Please select at least one item!"); //btnDelete.ConfirmText = String.Format("Are you sure you want to delete the selected   rows?", Grid1.GetSelectedCountReference()); //ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); // 绑定表格 BindGrid(); // BindGridPlan(""); } } /// /// 绑定数据 /// private void BindGrid() { //var user = BLL.Sys_UserService.GetUsersByUserId(CurrUser.UserId); string strSql = @"SELECT EProjectId,ProjectControl_JobNo,ProjectControl_JobType, ProjectControl_JobStatus,ProjectControl_JobTitle,ProjectControl_BUCode, PM_General_Priority,PM_General_Category,ProjectControl_LeadByName FROM dbo.Editor_EProject WHERE IsNewCreate=1"; List listStr = new List(); //if (user != null && user.DepartId == Const.CTEM_DepartId) //{ // strSql += " AND ProjectControl_LeadByName LIKE '%CTE%' "; //} //if (user != null && user.RoleId == Const.Role_PPE) //{ // strSql += " AND ProjectControl_LeadByName NOT LIKE '%CTE%' "; //} if (this.drpJobType.SelectedValue != BLL.Const._Null) { strSql += " AND ProjectControl_JobType=@JobType "; listStr.Add(new SqlParameter("@JobType", this.drpJobType.SelectedItem.Text)); } if (this.drpJobStatus.SelectedValue != BLL.Const._Null) { strSql += " AND ProjectControl_JobStatus=@Status "; listStr.Add(new SqlParameter("@Status", this.drpJobStatus.SelectedItem.Text)); } if (!string.IsNullOrEmpty(this.txtJobNO.Text.Trim())) { strSql += " AND ProjectControl_JobNo LIKE @jobNO "; listStr.Add(new SqlParameter("@jobNO", this.txtJobNO.Text.Trim() + "%")); } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); // 2.获取当前分页数据 //var table = this.GetPagedDataTable(Grid1, tb1); Grid1.RecordCount = tb.Rows.Count; tb = GetFilteredTable(Grid1.FilteredData, tb); var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); } public void BindGridPlan(string EProjectId) { string strSql = @"SELECT [ResourcePlanId] ,Resource_Plan.[EProjectId] ,[WO],ProjectControl_JobNo, ProjectControl_JobType,ProjectControl_JobStatus,ProjectControl_JobTitle, ProjectControl_BUCode,PM_General_Priority,PM_General_Category FROM [Resource_Plan] left join Editor_EProject on Resource_Plan.EProjectId=Editor_EProject.EProjectId where 1=1"; List listStr = new List(); if (!string.IsNullOrEmpty(EProjectId)) { strSql += " AND Resource_Plan.EProjectId=@EProjectId "; listStr.Add(new SqlParameter("@EProjectId", EProjectId)); } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Grid2.DataSource = tb; Grid2.DataBind(); } #endregion #region 分页、排序 /// /// 分页 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; BindGrid(); } /// /// 分页显示条数下拉框 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } /// /// 排序 /// /// /// protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; BindGrid(); } #endregion #region 关闭弹出窗口 /// /// 关闭窗口 /// /// /// protected void Window1_Close(object sender, EventArgs e) { BindGrid(); } #endregion #region 过滤表头 /// /// 过滤表头 /// /// /// protected void Grid1_FilterChange(object sender, EventArgs e) { BindGrid(); } /// /// 根据表头信息过滤列表数据 /// /// /// /// /// /// private bool FilterDataRowItemImplement(object sourceObj, string fillteredOperator, object fillteredObj, string column) { bool valid = false; if (column == "ProjectControl_JobNo") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "ProjectControl_JobType") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "ProjectControl_JobTitle") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "ProjectControl_JobStatus") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "ProjectControl_BUCode") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "PM_General_Priority") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "PM_General_Category") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } return valid; } #endregion #region 增加 /// /// 新增 /// /// /// protected void btnNew_Click(object sender, EventArgs e) { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInParent("Please select at least one record!"); return; } string Id = Grid1.SelectedRowID; var rp = BLL.ResourcePlanService.GetResourcePlanByEProjectId(Id); var epro = BLL.EProjectService.GeteProjectById(Id); if (epro.ProjectControl_JobType != "Other") { if (rp != null && rp.Count() >= 2) { Alert.Show("最多只能填报二张资源!"); } else { //lead by是CTE,授权给PM.同时指定的PM时,其非CTE/M用户也可以操作RP //var user = BLL.Sys_UserService.GetUsersByUserId(this.CurrUser.UserId); //if (user != null) //{ // var role = BLL.Sys_RoleService.GetRole(user.RoleId); // string projectManager = epro.ProjectControl_ProjectManager; // string leadByName = epro.ProjectControl_LeadByName; // if (!string.IsNullOrEmpty(projectManager) && !string.IsNullOrEmpty(leadByName) && epro.ProjectControl_LeadByName.Contains("CTE") && (epro.ProjectControl_ProjectManager == this.CurrUser.UserName || user.DepartId != BLL.Const.CTEM_DepartId)) // { // PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ResourcePlanAdd.aspx?eProjectId={0}", Id, "新增 - "))); // } // //lead by不是CTE的项目,需CTE做设计支持的项目的RP授权给Project Control // else if (!string.IsNullOrEmpty(leadByName) && !epro.ProjectControl_LeadByName.Contains("CTE") && role.RoleName == "PPE") // { // PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ResourcePlanAdd.aspx?eProjectId={0}", Id, "新增 - "))); // } // else if (this.CurrUser.UserId == BLL.Const.GlyId) // { // PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ResourcePlanAdd.aspx?eProjectId={0}", Id, "新增 - "))); // } // else // { // Alert.Show("您不是PM、非CTE/M用户或PPE,不能填报资源", MessageBoxIcon.Warning); // } //} PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ResourcePlanAdd.aspx?eProjectId={0}", Id, "新增 - "))); } } else { Alert.Show("Other类型的项目不用填报资源!"); //PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ResourcePlanAdd.aspx?eProjectId={0}", Id, "新增 - "))); } } #endregion #region 编辑 /// /// 编辑 /// /// /// protected void btnEdit_Click(object sender, EventArgs e) { if (Grid2.SelectedRowIndexArray.Length == 0) { Alert.ShowInParent("Please select at least one record!"); return; } string Id = Grid2.SelectedRowID; object[] keys = Grid2.DataKeys[Grid2.SelectedRowIndex]; string eProjectId = keys[1].ToString(); var epro = BLL.EProjectService.GeteProjectById(eProjectId); if (epro != null) { //lead by是CTE,授权给PM.同时指定的PM时,其非CTE/M用户也可以操作RP var user = BLL.Sys_UserService.GetUsersByUserId(this.CurrUser.UserId); if (user != null) { var role = BLL.Sys_RoleService.GetRole(user.RoleId); string projectManager = epro.ProjectControl_ProjectManager; string leadByName = epro.ProjectControl_LeadByName; var manHours = (from x in Funs.DB.ManHours_Plan where x.ResourcePlanId == Id select x).FirstOrDefault(); if (manHours.AccountDisabled == 0) { // 权限已特殊处理 PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ResourcePlanEdit.aspx?ResourcePlanId={0}&&eProjectId={1}", Id, eProjectId, "编辑 - "))); //if (!string.IsNullOrEmpty(projectManager) && !string.IsNullOrEmpty(leadByName) && epro.ProjectControl_LeadByName.Contains("CTE") && (epro.ProjectControl_ProjectManager == this.CurrUser.UserName || user.DepartId != BLL.Const.CTEM_DepartId)) //{ // PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ResourcePlanEdit.aspx?ResourcePlanId={0}&&eProjectId={1}", Id, eProjectId, "新增 - "))); //} ////lead by不是CTE的项目,需CTE做设计支持的项目的RP授权给Project Control //else if (!string.IsNullOrEmpty(leadByName) && !epro.ProjectControl_LeadByName.Contains("CTE") && role.RoleName == "PPE") //{ // PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ResourcePlanEdit.aspx?ResourcePlanId={0}&&eProjectId={1}", Id, eProjectId, "新增 - "))); //} //else if (this.CurrUser.UserId == BLL.Const.GlyId) //{ // PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ResourcePlanEdit.aspx?ResourcePlanId={0}&&eProjectId={1}", Id, eProjectId, "新增 - "))); //} //else //{ // Alert.Show("您不是PM、非CTE/M用户或PPE,不能填报资源", MessageBoxIcon.Warning); //} } else { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ResourcePlanView.aspx?ResourcePlanId={0}&eProjectId={1}", Id, eProjectId, "编辑 - "))); } } } } /// /// 右键编辑事件 /// /// /// protected void btnMenuEdit_Click(object sender, EventArgs e) { btnEdit_Click(null, null); } /// /// Grid行选择事件 /// /// /// protected void Grid1_RowSelect(object sender, GridRowSelectEventArgs e) { string eProjectId = this.Grid1.SelectedRowID; GetButtonPower(eProjectId); BindGridPlan(eProjectId); } /// /// Grid行双击事件 /// /// /// protected void Grid2_RowDoubleClick(object sender, GridRowClickEventArgs e) { string Id = Grid2.SelectedRowID; object[] keys = Grid2.DataKeys[e.RowIndex]; string eProjectId = keys[1].ToString(); var manHours = (from x in Funs.DB.ManHours_Plan where x.ResourcePlanId == Id select x).FirstOrDefault(); if (manHours.AccountDisabled == 0) { //var epro = BLL.EProjectService.GeteProjectById(eProjectId); //if (epro != null) //{ // var user = BLL.Sys_UserService.GetUsersByUserId(this.CurrUser.UserId); // if (user != null) // { //if (!string.IsNullOrEmpty(user.RoleId)) //{ //var role = BLL.Sys_RoleService.GetRole(user.RoleId); //if (role != null) //{ //if (epro.ProjectControl_LeadByName.Contains("CTE") && user.DepartId == BLL.Const.CTEM_DepartId) //{ PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ResourcePlanEdit.aspx?ResourcePlanId={0}&eProjectId={1}", Id, eProjectId, "编辑 - "))); //} //else if (epro.ProjectControl_LeadByName.Contains("CTE") && role.RoleName != "PM") //{ // ShowAlert("您不是PM,不能填报Lead by是CTE的项目资源", MessageBoxIcon.Warning); //} //else if (!epro.ProjectControl_LeadByName.Contains("CTE") && role.RoleName == "PPE") //{ // PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ResourcePlanEdit.aspx?ResourcePlanId={0}&eProjectId={1}", Id, eProjectId, "编辑 - "))); //} //else if (!epro.ProjectControl_LeadByName.Contains("CTE") && role.RoleName != "PPE") //{ // ShowAlert("您不是PPE,不能填报Lead by不是CTE的项目资源", MessageBoxIcon.Warning); //} //else //{ // Alert.Show("您不是PM或PPE,不能填报资源", MessageBoxIcon.Warning); //} //} //} //else if (this.CurrUser.UserId == BLL.Const.GlyId) //{ // PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ResourcePlanEdit.aspx?ResourcePlanId={0}&eProjectId={1}", Id, eProjectId, "编辑 - "))); //} // } //} } else { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ResourcePlanView.aspx?ResourcePlanId={0}&eProjectId={1}", Id, eProjectId, "编辑 - "))); } } protected void Grid2_RowCommand(object sender, GridCommandEventArgs e) { object[] keys = Grid2.DataKeys[e.RowIndex]; string rpId = keys[0].ToString(); string eProjectId = keys[1].ToString(); var epro = BLL.EProjectService.GeteProjectById(eProjectId); if (epro.ProjectControl_JobType == "Other") { if (e.CommandName == "close") { PlanService.UpdateManHourPlanAccountDisabled(rpId, 1); Alert.Show("此资源关联的人工时AccountDisabled!"); } } else { Alert.Show("Other类型才可手动AccountDisabled!"); return; } } #endregion #region 判断是否可删除 /// /// 判断是否可以删除 /// /// private bool judgementDelete(string id, bool isShow) { string content = string.Empty; if (string.IsNullOrEmpty(content)) { return true; } else { if (isShow) { Alert.ShowInTop(content); } return false; } } #endregion #region 权限设置 /// /// 菜单按钮权限 /// private void GetButtonPower(string eprojectId) { var eproject = BLL.EProjectService.GeteProjectById(eprojectId); var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.ResourcePlanMenuId); var user = BLL.Sys_UserService.GetUsersByUserId(this.CurrUser.UserId); var role = BLL.Sys_RoleService.GetRole(user.RoleId); if ((eproject.ProjectControl_LeadByName.Contains("CTE")) || this.CurrUser.UserId == BLL.Const.GlyId) { if (user != null && user.DepartId == Const.CTEM_DepartId) { this.btnNew.Hidden = false; this.btnEdit.Hidden = false; this.btnMenuEdit.Hidden = false; this.Grid2.EnableRowDoubleClickEvent = true; } } else { if ((role.RoleName == "PPE" && buttonList.Count() > 0) || this.CurrUser.UserId == BLL.Const.GlyId) { if (buttonList.Contains(BLL.Const.BtnAdd)) { this.btnNew.Hidden = false; } if (buttonList.Contains(BLL.Const.BtnModify)) { this.btnEdit.Hidden = false; this.btnMenuEdit.Hidden = false; this.Grid2.EnableRowDoubleClickEvent = true; } else { this.Grid2.EnableRowDoubleClickEvent = false; } } } if ((buttonList.Count() > 0 && role.RoleName != "PPE") || this.CurrUser.UserId == BLL.Const.GlyId) { if (buttonList.Contains(BLL.Const.BtnAdd)) { this.btnNew.Hidden = false; } if (buttonList.Contains(BLL.Const.BtnModify)) { this.btnEdit.Hidden = false; this.btnMenuEdit.Hidden = false; this.Grid2.EnableRowDoubleClickEvent = true; } else { this.Grid2.EnableRowDoubleClickEvent = false; } } } #endregion #region 查询 /// /// 下拉框选择事件 /// /// /// protected void btnSearch_Click(object sender, EventArgs e) { BindGrid(); } #endregion #region 查看 /// /// 查看 /// /// /// protected void btnMenuView_Click(object sender, EventArgs e) { if (Grid2.SelectedRowIndexArray.Length == 0) { Alert.ShowInParent("Please select at least one record!"); return; } string Id = Grid2.SelectedRowID; object[] keys = Grid2.DataKeys[Grid2.SelectedRowIndex]; string eProjectId = keys[1].ToString(); PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ResourcePlanView.aspx?ResourcePlanId={0}&eProjectId={1}", Id, eProjectId, "编辑 - "))); } #endregion } }