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

630 lines
26 KiB
C#
Raw Normal View History

2024-05-08 11:01:54 +08:00
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;
2024-09-29 15:48:12 +08:00
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, "编辑 - ")));
}
2024-05-08 11:01:54 +08:00
}
}
}
/// <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();
2024-09-29 15:48:12 +08:00
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, "编辑 - ")));
}
2024-05-08 11:01:54 +08:00
}
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
}
}