Basf_EProject/EProject/FineUIPro.Web/ResourcePlan/ResourcePlan.aspx.cs

630 lines
26 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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 &nbsp;<b><script>{0}</script></b>&nbsp;rows?", Grid1.GetSelectedCountReference());
//ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
// 绑定表格
BindGrid();
// BindGridPlan("");
}
}
/// <summary>
/// 绑定数据
/// </summary>
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<SqlParameter> listStr = new List<SqlParameter>();
//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<SqlParameter> listStr = new List<SqlParameter>();
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
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid();
}
/// <summary>
/// 分页显示条数下拉框
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid();
}
#endregion
#region
/// <summary>
/// 关闭窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, EventArgs e)
{
BindGrid();
}
#endregion
#region
/// <summary>
/// 过滤表头
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_FilterChange(object sender, EventArgs e)
{
BindGrid();
}
/// <summary>
/// 根据表头信息过滤列表数据
/// </summary>
/// <param name="sourceObj"></param>
/// <param name="fillteredOperator"></param>
/// <param name="fillteredObj"></param>
/// <param name="column"></param>
/// <returns></returns>
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
/// <summary>
/// 新增
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
/// <summary>
/// 编辑
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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, "编辑 - ")));
}
}
}
}
/// <summary>
/// 右键编辑事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuEdit_Click(object sender, EventArgs e)
{
btnEdit_Click(null, null);
}
/// <summary>
/// Grid行选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowSelect(object sender, GridRowSelectEventArgs e)
{
string eProjectId = this.Grid1.SelectedRowID;
GetButtonPower(eProjectId);
BindGridPlan(eProjectId);
}
/// <summary>
/// Grid行双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
/// <summary>
/// 判断是否可以删除
/// </summary>
/// <returns></returns>
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
/// <summary>
/// 菜单按钮权限
/// </summary>
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
/// <summary>
/// 下拉框选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSearch_Click(object sender, EventArgs e)
{
BindGrid();
}
#endregion
#region
/// <summary>
/// 查看
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
}
}