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 <b><script>{0}</script></b> 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
}
}