Basf_EProject/EProject/FineUIPro.Web/common/Main.aspx.cs

1291 lines
57 KiB
C#

using BLL;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
namespace FineUIPro.Web.common
{
public partial class main : PageBase
{
#region
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//类型
this.drpJobType.DataTextField = "ConstText";
this.drpJobType.DataValueField = "ConstId";
this.drpJobType.DataSource = BLL.ConstService.GetConstListByGroupId(BLL.Const.ProjectPlanner_JobType);
this.drpJobType.DataBind();
Funs.FineUIPleaseSelectJobType(this.drpJobType);
//状态
this.drpJobStatus.DataTextField = "ConstText";
this.drpJobStatus.DataValueField = "ConstId";
this.drpJobStatus.DataSource = BLL.ConstService.GetConstListByGroupId(BLL.Const.ProjectPlanner_JobStatus);
this.drpJobStatus.DataBind();
Funs.FineUIPleaseSelectJobStatus(this.drpJobStatus);
//部门
this.drpDivision.DataTextField = "DepartName";
this.drpDivision.DataValueField = "DepartId";
this.drpDivision.DataSource = BLL.DepartService.GetDepartList();
this.drpDivision.DataBind();
Funs.FineUIPleaseSelectDivision(this.drpDivision);
this.BindGrid();
string eprojectId = this.Grid1.Rows[0].RowID;
if (!string.IsNullOrEmpty(eprojectId))
{
LoadData(eprojectId);
}
this.Grid1.SelectedRowIndex = 0;
}
else if (GetRequestEventArgument() == "FilterChange")
{
BindGrid();
}
}
/// <summary>
/// BindGrid
/// </summary>
private void BindGrid()
{
string status = String.Join(",", drpJobStatus.SelectedItemArray.Select(e=>e.Text));//drpJobStatus.SelectedValueArray;
string strSql = @"SELECT eProject.EProjectId,eProject.ProjectControl_JobNo,eProject.PM_Critical,
eProject.ProjectControl_JobType, eProject.ProjectControl_JobTitle,
(ISNULL(eProject.ProjectControl_OrginalBudget,0)+ISNULL(eProject.ProjectControl_ChangedBudget,0)) AS ProjectControl_OrginalBudget,
(CASE WHEN (eProject.ProjectControl_ProjectManager IS NULL OR eProject.ProjectControl_ProjectManager='') THEN 'N/A'
ELSE eProject.ProjectControl_ProjectManager END) AS ProjectControl_ProjectManager,
(CASE WHEN (eProject.ProjectControl_ConstManager IS NULL OR eProject.ProjectControl_ConstManager='') THEN 'N/A'
ELSE eProject.ProjectControl_ConstManager END) AS ProjectControl_ConstManager,
eProject.ProjectControl_OperationRep,eProject.ProjectControl_JobStatus,
eProject.ProjectControl_BUCode,eProject.PM_MA_ProjectApproval,eProject.ProjectControl_MS_MC
FROM dbo.Editor_EProject AS eProject
WHERE 1=1 ";
List<SqlParameter> listStr = new List<SqlParameter>();
if (this.drpJobType.SelectedValue != BLL.Const._Null)
{
strSql += " AND eProject.ProjectControl_JobType=@jobType";
listStr.Add(new SqlParameter("@jobType", this.drpJobType.SelectedItem.Text));
} // AND CHARINDEX(Trust.ProjectId,@ProjectId)>0
if (this.drpJobStatus.SelectedValue != BLL.Const._Null && this.drpJobStatus.SelectedValue != null)
{
//strSql += " AND eProject.ProjectControl_JobStatus=@jobStatus";
strSql += " AND CHARINDEX(eProject.ProjectControl_JobStatus,@jobStatus)>0";
listStr.Add(new SqlParameter("@jobStatus", status));
}
if (this.drpDivision.SelectedValue != BLL.Const._Null)
{
strSql += " AND eProject.ProjectControl_BUCode=@division";
listStr.Add(new SqlParameter("@division", this.drpDivision.SelectedItem.Text));
}
if (!string.IsNullOrEmpty(this.hdJobNo.Text.Trim()) || !string.IsNullOrEmpty(this.txtJobNoS.Text.Trim()))
{
strSql += " AND eProject.ProjectControl_JobNo LIKE @Job_NO";
if (!string.IsNullOrEmpty(this.txtJobNoS.Text.Trim()))
{
listStr.Add(new SqlParameter("@Job_NO", "%" + this.txtJobNoS.Text.Trim() + "%"));
}
else
{
listStr.Add(new SqlParameter("@Job_NO", "%" + this.hdJobNo.Text.Trim() + "%"));
}
}
if (!string.IsNullOrEmpty(this.hdJobTitle.Text.Trim()))
{
strSql += " AND eProject.ProjectControl_JobTitle LIKE @Job_Title";
listStr.Add(new SqlParameter("@Job_Title", "%" + this.hdJobTitle.Text.Trim() + "%"));
}
if (!string.IsNullOrEmpty(hdType.Text.Trim()))
{
strSql += " AND eProject.ProjectControl_JobType = @jobTyps";
listStr.Add(new SqlParameter("@jobTyps", this.hdType.Text.Trim()));
}
if (!string.IsNullOrEmpty(hdStatus.Text.Trim()))
{
strSql += " AND eProject.ProjectControl_JobStatus = @status";
listStr.Add(new SqlParameter("@status", this.hdStatus.Text.Trim()));
}
if (!string.IsNullOrEmpty(hdDivision.Text.Trim()))
{
strSql += " AND eProject.ProjectControl_BUCode = @depart";
listStr.Add(new SqlParameter("@depart", this.hdDivision.Text.Trim()));
}
if (!string.IsNullOrEmpty(this.hdProjectManager.Text.Trim()))
{
strSql += " AND eProject.ProjectControl_ProjectManager = @ProjectManager";
listStr.Add(new SqlParameter("@ProjectManager", this.hdProjectManager.Text.Trim()));
}
if (!string.IsNullOrEmpty(this.hdConstManager.Text.Trim()))
{
strSql += " AND eProject.ProjectControl_ConstManager = @ProjectControl_ConstManager";
listStr.Add(new SqlParameter("@ProjectControl_ConstManager", this.hdConstManager.Text.Trim()));
}
if (!string.IsNullOrEmpty(this.hdOperationRep.Text.Trim()))
{
strSql += " AND eProject.ProjectControl_OperationRep = @ProjectControl_OperationRep";
listStr.Add(new SqlParameter("@ProjectControl_OperationRep", this.hdOperationRep.Text.Trim()));
}
if (!string.IsNullOrEmpty(this.hdAccount.Text.Trim()))
{
strSql += " AND eProject.ProjectControl_Account = @ProjectControl_Account";
listStr.Add(new SqlParameter("@ProjectControl_Account", this.hdAccount.Text.Trim()));
}
if (!string.IsNullOrEmpty(this.hdMOCFormNo.Text.Trim()))
{
strSql += " AND eProject.ProjectControl_MOCFormNo LIKE @ProjectControl_MOCFormNo";
listStr.Add(new SqlParameter("@ProjectControl_MOCFormNo", "%" + this.hdMOCFormNo.Text.Trim() + "%"));
}
if (!string.IsNullOrEmpty(this.hdLeadBy.Text.Trim()))
{
strSql += " AND eProject.ProjectControl_LeadByName = @ProjectControl_LeadByName";
listStr.Add(new SqlParameter("@ProjectControl_LeadByName", this.hdLeadBy.Text.Trim()));
}
if (!string.IsNullOrEmpty(this.hdEngineer.Text.Trim()))
{
strSql += " AND (stuff((select distinct ','+u.UserName from ManHours_Plan as p left join Sys_User as u on u.UserId = p.EngineerId where p.EProjectId = eProject.EProjectId for xml Path('')),1,1,'')) LIKE @Engineering";
listStr.Add(new SqlParameter("@Engineering", "%" + this.hdEngineer.Text.Trim() + "%"));
}
if (!string.IsNullOrEmpty(this.hdCritical.Text.Trim()))
{
strSql += " AND eProject.PM_Critical = @PM_Critical";
listStr.Add(new SqlParameter("@PM_Critical", this.hdCritical.Text.Trim()));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = tb.Rows.Count;
//tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
}
/// <summary>
/// 加载数据
/// </summary>
/// <param name="eProjectId"></param>
private void LoadData(string eProjectId)
{
var eProject = BLL.EProjectService.GeteProjectById(eProjectId);
if (eProject != null)
{
if (this.TabStrip1.ActiveTabIndex == 1)
{
BindGrid10(eProjectId);//Schedule
BindGrid11(eProjectId);//ProjectSchDetail
BindGrid12(eProjectId); //ClosuerDetail
}
else if (this.TabStrip1.ActiveTabIndex == 2)
{
GetCost(eProjectId);
}
else if (this.TabStrip1.ActiveTabIndex == 3)
{
BindGrid5(eProjectId);//Permits
}
else if (this.TabStrip1.ActiveTabIndex == 4)
{
BindGrid6(eProjectId);//Resource
OutputSummaryData();//计算和
}
else if (this.TabStrip1.ActiveTabIndex == 5)
{
#region Development Remarks
this.txtEnginering.Text = eProject.PM_Remarks_Engineering;
this.txtProcurement.Text = eProject.PM_Remarks_Procurement;
this.txtConstruction.Text = eProject.CM_Remarks_Construction;
this.txtQuilaityHSE.Text = eProject.CM_Remarks_QualityHSE;
#endregion
}
else if (this.TabStrip1.ActiveTabIndex == 6)
{
BindGrid7(eProjectId);//Area Concern
}
else if (this.TabStrip1.ActiveTabIndex == 7)
{
BindGridTDC(eProjectId);//TDC
}
else if (this.TabStrip1.ActiveTabIndex == 8)
{
BindGrid8(eProjectId);//Punch List
}
else if (this.TabStrip1.ActiveTabIndex == 9)
{
BindGrid2(eProjectId);//Lesson Learned
}
else if (this.TabStrip1.ActiveTabIndex == 10)
{
BindGrid9(eProjectId);//FCR Log
}
else
{
#region General
this.txtBuCode.Text = eProject.ProjectControl_BUCode; //部门代码
this.txtJobNo.Text = eProject.ProjectControl_JobNo;//项目号
this.txtJobType.Text = eProject.ProjectControl_JobType;//项目类型
this.txtProjType.Text = eProject.ProjectControl_ProjectType; //
this.txtJobTitle.Text = eProject.ProjectControl_JobTitle;//项目标题
if (!string.IsNullOrEmpty(eProject.ProjectControl_LeadBy))
{
this.txtLeadBy.Text = BLL.DepartService.GetDepartNameById(eProject.ProjectControl_LeadBy);//主导部门
}
else
{
this.txtLeadBy.Text = string.Empty;
}
this.txtPriority.Text = eProject.PM_General_Priority; //优先级
this.txtCategory.Text = eProject.PM_General_Category;//目录
this.txtMOCFormNo.Text = eProject.ProjectControl_MOCFormNo;//MOC表格编号
if (eProject.ProjectControl_OrginalBudget.HasValue)//批准的预算
{
this.txtApprovedBudget.Text = eProject.ProjectControl_OrginalBudget.ToString();
}
else
{
this.txtApprovedBudget.Text = string.Empty;
}
this.txtAccountNo.Text = eProject.ProjectControl_Account;//账户编号
this.txtNetworkNo.Text = eProject.ProjectControl_NetworkNo;//网络编号
this.txtCostEffectivity.Text = eProject.ProjectControl_CostEffectvitity;//花费有效性(成本效益)
if (eProject.ProjectControl_PVIPrediction.HasValue)
{
this.txtPVIPredition.Text = eProject.ProjectControl_PVIPrediction.ToString(); //PVI预算
}
else
{
this.txtPVIPredition.Text = string.Empty;
}
if (!string.IsNullOrEmpty(eProject.ProjectControl_ProjectManager))
{
this.txtProjManager.Text = eProject.ProjectControl_ProjectManager;//项目经理
}
else
{
this.txtProjManager.Text = "N/A";
}
if (!string.IsNullOrEmpty(eProject.ProjectControl_ConstManager))
{
this.txtConstManager.Text = eProject.ProjectControl_ConstManager; //设计经理
}
else
{
this.txtConstManager.Text = "N/A";
}
if (!string.IsNullOrEmpty(eProject.ProjectControl_EMManager))
{
this.txtEngManager.Text = eProject.ProjectControl_EMManager; //
}
else
{
this.txtConstManager.Text = "N/A";
}
//this.txtConstManager.Text = eProject.ProjectControl_ConstManager;
this.txtOperationRep.Text = eProject.ProjectControl_OperationRep;//操作代表
this.txtJobStatus.Text = eProject.ProjectControl_JobStatus;//项目状态
if (!string.IsNullOrEmpty(eProject.ProjectControl_CI_Process))
{
this.txtProcePipEng.Text = BLL.Sys_UserService.GetUserNameByUserId(eProject.ProjectControl_CI_Process); //工艺及配管工程
}
else
{
this.txtProcePipEng.Text = string.Empty;
}
if (!string.IsNullOrEmpty(eProject.ProjectControl_CI_Equipment))
{
this.txtEquipEng.Text = BLL.Sys_UserService.GetUserNameByUserId(eProject.ProjectControl_CI_Equipment);//设备工程
}
else
{
this.txtEquipEng.Text = string.Empty;
}
if (!string.IsNullOrEmpty(eProject.ProjectControl_CI_Instrument))
{
this.txtInstrumentEng.Text = BLL.Sys_UserService.GetUserNameByUserId(eProject.ProjectControl_CI_Instrument);//仪表工程
}
else
{
this.txtInstrumentEng.Text = string.Empty;
}
if (!string.IsNullOrEmpty(eProject.ProjectControl_CI_Electrical))
{
this.txtElectrialEng.Text = BLL.Sys_UserService.GetUserNameByUserId(eProject.ProjectControl_CI_Electrical);//电力工程
}
else
{
this.txtElectrialEng.Text = string.Empty;
}
if (!string.IsNullOrEmpty(eProject.ProjectControl_CI_Civil))
{
this.txtCivilEng.Text = BLL.Sys_UserService.GetUserNameByUserId(eProject.ProjectControl_CI_Civil);//土建工程
}
else
{
this.txtCivilEng.Text = string.Empty;
}
//变更范围
if (eProject.PM_SC_ApprovedQty.HasValue)//批准的质量
{
this.txtApprovedQty.Text = eProject.PM_SC_ApprovedQty.ToString();
}
else
{
this.txtApprovedQty.Text = string.Empty;
}
if (eProject.PM_SC_ApprovedCost.HasValue)//批准的花费
{
this.txtApprovedCost.Text = eProject.PM_SC_ApprovedCost.ToString();
}
else
{
this.txtApprovedCost.Text = string.Empty;
}
if (eProject.PM_SC_PendingQty.HasValue)//延后的质量
{
this.txtPendingQty.Text = eProject.PM_SC_PendingQty.ToString();
}
else
{
this.txtPendingQty.Text = string.Empty;
}
if (eProject.PM_SC_PendingCost.HasValue)//延后的花费
{
this.txtPendingCost.Text = eProject.PM_SC_PendingCost.ToString();
}
else
{
this.txtPendingCost.Text = string.Empty;
}
//this.txtDocStatus.Text= //文档状态
this.txtCDI.Text = eProject.PM_General_CDI; //CDI
this.txtRemarks.Text = eProject.ProjectControl_Remarks; //备注
this.txtOutSourceType.Text = eProject.OutSourceType;
this.txtCAPEXPlanNo.Text = eProject.CAPEXPlanNo;
#endregion
}
}
}
#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_OrginalBudget")
{
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_ProjectManager")
{
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_ConstManager")
{
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_OperationRep")
{
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_MA_ProjectApproval")
{
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_MS_MC")
{
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 Grid1行选择事件
/// <summary>
/// Grid行选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowSelect(object sender, GridRowSelectEventArgs e)
{
string eProjectId = this.Grid1.SelectedRowID;
if (!string.IsNullOrEmpty(eProjectId))
{
LoadData(eProjectId);
// PageContext.RegisterStartupScript("onGrid1RowSelect('" + eProjectId + "')");
}
}
#endregion
#region
/// <summary>
/// 选项卡改变事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TabStrip1_TabIndexChanged(object sender, EventArgs e)
{
string eProjectId = this.Grid1.SelectedRowID;
if (!string.IsNullOrEmpty(eProjectId))
{
LoadData(eProjectId);
}
else
{
string id = Grid1.Rows[0].RowID;
if (!string.IsNullOrEmpty(id))
{
LoadData(id);
}
}
}
#endregion
#region
/// <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();
//}
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid();
}
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid();
}
#endregion
#region GetCost
private void GetCost(string eProjectId)
{
var cost = from x in Funs.DB.Editor_EProject
where x.EProjectId == eProjectId
select new
{
x.ProjectControl_OrginalBudget,
x.ProjectControl_ChangedBudget,
x.ProjectControl_CommittedPRPO,
x.ProjectControl_CommittedSSRs,
x.ProjectControl_Actual,
x.PM_General_CostToComplete
};
//string strSql = @"SELECT TOP 1 [CostReportId] ,[EProjectId] ,[Monthly] ,[OrginalBudget] ,[ChangedBudget] ,[ActualCost],"
// + @" [CommittedPRPO],[CommittedSSRs] ,[CostToComplete] FROM [Editor_CostReport]"
// + @" WHERE EProjectId=@eProjectId order by Monthly DESC";
//List<SqlParameter> listStr = new List<SqlParameter>();
//listStr.Add(new SqlParameter("@EProjectId", eProjectId));
//SqlParameter[] parameter = listStr.ToArray();
//DataTable table = SQLHelper.GetDataTableRunText(strSql, parameter);
txtOrginalBudget.Text = "0";
txtChangedBudget.Text = "0";
txtActualCost.Text = "0";
txtCommitted_PRPO.Text = "0";
txtCommitted_SSRs.Text = "0";
txtCostToComplete.Text = "0";
txtEstimatedFinalCost.Text = "0";
txtVariance.Text = "0";
if (cost.Count() > 0)
{
txtOrginalBudget.Text = cost.First().ProjectControl_OrginalBudget != null ? cost.First().ProjectControl_OrginalBudget.ToString() : "0";
txtChangedBudget.Text = cost.First().ProjectControl_ChangedBudget != null ? cost.First().ProjectControl_ChangedBudget.ToString() : "0";
txtActualCost.Text = cost.First().ProjectControl_Actual != null ? cost.First().ProjectControl_Actual.ToString() : "0";
txtCommitted_PRPO.Text = cost.First().ProjectControl_CommittedPRPO != null ? cost.First().ProjectControl_CommittedPRPO.ToString() : "0";
txtCommitted_SSRs.Text = cost.First().ProjectControl_CommittedSSRs != null ? cost.First().ProjectControl_CommittedSSRs.ToString() : "0";
txtCostToComplete.Text = cost.First().PM_General_CostToComplete != null ? cost.First().PM_General_CostToComplete.ToString() : "0";
//DataRow item = table.Rows[0];
//if (!string.IsNullOrEmpty(item["OrginalBudget"].ToString()))
//{
// txtOrginalBudget.Text = item["OrginalBudget"].ToString();
//}
//if (!string.IsNullOrEmpty(item["ChangedBudget"].ToString()))
//{
// txtChangedBudget.Text = item["ChangedBudget"].ToString();
//}
//if (!string.IsNullOrEmpty(item["ActualCost"].ToString()))
//{
// txtActualCost.Text = item["ActualCost"].ToString();
//}
//if (!string.IsNullOrEmpty(item["CommittedPRPO"].ToString()))
//{
// txtCommitted_PRPO.Text = item["CommittedPRPO"].ToString();
//}
//if (!string.IsNullOrEmpty(item["CommittedSSRs"].ToString()))
//{
// txtCommitted_SSRs.Text = item["CommittedSSRs"].ToString();
//}
//if (!string.IsNullOrEmpty(item["CostToComplete"].ToString()))
//{
// txtCostToComplete.Text = item["CostToComplete"].ToString();
//}
decimal FinalCost = Decimal.Parse(txtActualCost.Text.ToString()) + Decimal.Parse(txtCommitted_PRPO.Text.ToString()) + Decimal.Parse(txtCommitted_SSRs.Text.ToString()) + Decimal.Parse(txtCostToComplete.Text.ToString());
txtEstimatedFinalCost.Text = FinalCost.ToString();
if ((Decimal.Parse(txtOrginalBudget.Text.ToString()) + Decimal.Parse(txtChangedBudget.Text.ToString())) != 0)
{
decimal Variance = (FinalCost - Decimal.Parse(txtOrginalBudget.Text.ToString()) - Decimal.Parse(txtChangedBudget.Text.ToString())) / (Decimal.Parse(txtOrginalBudget.Text.ToString()) + Decimal.Parse(txtChangedBudget.Text.ToString())) * 100;
txtVariance.Text = Math.Round(Variance, 2).ToString();
}
}
}
#endregion
#region Lesson Learned
private void BindGrid2(string eProjectId)
{
string strSql = @"SELECT LessonsLearnedId,
EProjectId,
Id,
PostBy,
EntryDate,
AppliedDiscip,
Stage,
Keyword,
Description
FROM dbo.Editor_LessonsLearned WHERE EProjectId =@EProjectId ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@EProjectId", eProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
GridLessonLearned.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(GridLessonLearned, tb);
GridLessonLearned.DataSource = table;
GridLessonLearned.DataBind();
}
#endregion
#region Permits
private void BindGrid5(string eProjectId)
{
string strSql = @"SELECT EProjectId,
sort,
Name,
ScheduledDate,
ActualDate,
Need"
+ @" FROM View_HomePage_Permits "
+ @" WHERE EProjectId=@eProjectId order by sort";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@eProjectId", eProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid5.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(Grid5, tb);
Grid5.DataSource = table;
Grid5.DataBind();
}
#endregion
#region Resource List
private void BindGrid6(string eProjectId)
{
string strSql = @"SELECT EProjectId ,EngineerId,ProjectControl_JobStatus,UserName,Account,AccountDisabled,
DisciplineId,Discipline,ManHours,Hourss
FROM View_ResourceDisc
WHERE EProjectId=@eProjectId
ORDER BY Discipline";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@EProjectId", eProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable table = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid6.RecordCount = table.Rows.Count;
Grid6.DataSource = table;
Grid6.DataBind();
}
protected void Grid6_RowDataBound(object sender, GridRowEventArgs e)
{
DataRowView row = e.DataItem as DataRowView;
if (row["AccountDisabled"].ToString() != string.Empty)
{
bool validity = Convert.ToBoolean(row["AccountDisabled"]);
//string state = string.Empty;
//if (row["ProjectControl_JobStatus"] != null && row["ProjectControl_JobStatus"].ToString() != "")
//{
// state = row["ProjectControl_JobStatus"].ToString();
//}
string eprojectId= row["EProjectId"].ToString();
var ep = from x in Funs.DB.Editor_EProject
where x.EProjectId==eprojectId &&
((x.ProjectControl_PC_CancelDate.HasValue && x.ProjectControl_PC_CancelDate.Value.AddMonths(1) <= DateTime.Now)
|| (x.Job_Hold.HasValue && x.Job_Hold.Value.AddMonths(1) <= DateTime.Now))
select x;
if (validity || ep.Count()>0)
{
e.RowCssClass = "color1";
}
}
}
private void OutputSummaryData()
{
double Hourss = 0.0f;
double ManHours = 0.0f;
int rowsCount = this.Grid6.Rows.Count;
for (int i = 0; i < rowsCount; i++)
{
if (this.Grid6.Rows[i].Values[4] != null && this.Grid6.Rows[i].Values[4].ToString() != "")
{
ManHours += Convert.ToDouble(this.Grid6.Rows[i].Values[4]);
}
if (this.Grid6.Rows[i].Values[5] != null && this.Grid6.Rows[i].Values[5].ToString() != "")
{
Hourss += Convert.ToDouble(this.Grid6.Rows[i].Values[5]);
}
}
JObject summary = new JObject();
//summary.Add("major", "全部合计");
summary.Add("ManHours", ManHours.ToString("F2"));
summary.Add("Hourss", Hourss.ToString("F2"));
Grid6.SummaryData = summary;
}
#endregion
#region Area Concern
private void BindGrid7(string eProjectId)
{
string strSql = @"SELECT AreaConcernId,
EProjectId,
SN,
EntryDate,
CreatedByName,
CategoryCauseName,
Remark "
+ @" FROM Editor_AreaConcern "
+ @" WHERE EProjectId=@eProjectId ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@eProjectId", eProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid7.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(Grid7, tb);
Grid7.DataSource = table;
Grid7.DataBind();
}
#endregion
#region TDC
private void BindGridTDC(string eProjectId)
{
DataTable tb = BLL.TDCService.GetDataTable(eProjectId);
// 2.获取当前分页数据
//var table = this.GetPagedDataTable(Grid1, tb1);
GridTDC.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(GridTDC, tb);
GridTDC.DataSource = table;
GridTDC.DataBind();
}
#endregion
#region Punch List
private void BindGrid8(string eProjectId)
{
string strSql = @"SELECT PunchId,
EProjectId,
DisciplineName,
ClassName,
TagNo,
RespUnitPerson,
ResiedByName,
PlanedFinishDate,
CTECheckerName,
CTECheckDate,
OwnerCheckerName,
OwnerCheckDate,
Remark "
+ @" FROM Editor_Punch "
+ @" WHERE EProjectId=@eProjectId";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@eProjectId", eProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid8.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(Grid8, tb);
Grid8.DataSource = table;
Grid8.DataBind();
}
#endregion
#region FCR Log
private void BindGrid9(string eProjectId)
{
string strSql = @"SELECT FCRLogId,
EProjectId,
FCRNo,
DisciplineName,
CategoryName,
U.UserName AS Initiator,
CDIName,
TDCRecDate,
FCRIssueDate,
ConReturnDate,
CostYorN,
CostCNY,
SchYorN,
SchDays "
+ @" FROM Editor_FCRLog "
+ @" LEFT JOIN Sys_User AS U ON U.UserId = Editor_FCRLog.Initiator"
+ @" WHERE EProjectId=@eProjectId ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@eProjectId", eProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid9.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(Grid9, tb);
Grid9.DataSource = table;
Grid9.DataBind();
}
#endregion
#region Schedule
private void BindGrid10(string eProjectId)
{
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@EProjectId", eProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunProc("ProjectSchedule", parameter);
grdSchedule.DataSource = tb;
grdSchedule.DataBind();
}
#region ProjectSchDetail
private void BindGrid11(string eProjectId)
{
grdScheduleDetail.DataSource = null;
grdScheduleDetail.DataBind();
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@EProjectId", eProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunProc("ProjectSchDetail", parameter);
grdScheduleDetail.DataSource = tb;
grdScheduleDetail.DataBind();
}
#endregion
#region ClosuerDetail
private void BindGrid12(string eProjectId)
{
var eproject = BLL.EProjectService.GeteProjectById(eProjectId);
if (eproject != null)
{
if (eproject.ProjectControl_JobType == "MOC")
{
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@EProjectId", eProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunProc("Schedule_MOC", parameter);
grdClosuerDetail.DataSource = tb;
}
else if (eproject.ProjectControl_JobType == "Other")
{
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@EProjectId", eProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunProc("Schedule_Other", parameter);
grdClosuerDetail.DataSource = tb;
}
else if (eproject.ProjectControl_JobType == "Small Invest")
{
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@EProjectId", eProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunProc("Schedule_OrginalBudgetMin", parameter);
grdClosuerDetail.DataSource = tb;
}
else if (eproject.ProjectControl_JobType == "Projects")
{
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@EProjectId", eProjectId));
SqlParameter[] parameter = listStr.ToArray();
if (eproject.ProjectControl_OrginalBudget >= 1000000 && eproject.PM_MA_ProjectApproval.HasValue)
{
DataTable tb = SQLHelper.GetDataTableRunProc("Schedule_OrginalBudgetMax", parameter);
grdClosuerDetail.DataSource = tb;
}
else
{
DataTable tb = SQLHelper.GetDataTableRunProc("Schedule_OrginalBudgetMin", parameter);
grdClosuerDetail.DataSource = tb;
}
}
}
grdClosuerDetail.DataBind();
}
#endregion
#endregion
#region
/// <summary>
/// 查看编辑器详细信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnViewDetail_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInParent("Please select at least one record!");
return;
}
string Id = Grid1.SelectedRowID;
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../EditorManage/EProjectDetail.aspx?eProjectId={0}", Id, "编辑 - ")));
}
#endregion
#region 绿
protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
{
int i = e.RowIndex;
System.Web.UI.WebControls.Label lblEproject = (System.Web.UI.WebControls.Label)this.Grid1.Rows[i].FindControl("EProjectId");
string eprojectId = lblEproject.Text.Trim();
if (!string.IsNullOrEmpty(eprojectId))
{
var eproject = BLL.EProjectService.GeteProjectById(eprojectId);
if (eproject != null)
{
#region 绿
#region
// Schedule进度
System.Web.UI.WebControls.Image imgSchedule = (System.Web.UI.WebControls.Image)this.Grid1.Rows[i].FindControl("imgSchedule");
DateTime? ms = eproject.ProjectControl_Revised_MC_Date.HasValue ? eproject.ProjectControl_Revised_MC_Date : null; //项目机械竣工计划时间
//DateTime? x = eproject.ProjectControl_CM_SchEnd.HasValue ? eproject.ProjectControl_CM_SchEnd : null;//计划的机械电仪施工结束时间
DateTime? x = eproject.PM_MA_ProjectApproval.HasValue ? eproject.PM_MA_ProjectApproval : null;//项目的批准时间
//修正的机械电仪施工结束时间
DateTime? y = null;
if (eproject.CM_MA_MC.HasValue)
{
y = eproject.CM_MA_MC;
}
else if (eproject.CM_CM_RevisedEnd.HasValue)
{
y = eproject.CM_CM_RevisedEnd;
}
else
{
y = eproject.ProjectControl_CM_SchEnd.HasValue ? eproject.ProjectControl_CM_SchEnd : null;
}
int a = 0;
int b = 0;
double c = 0;
if (y.HasValue && ms.HasValue)
{
a = (y - ms).Value.Days;
}
if (x.HasValue && ms.HasValue)
{
b = (ms - x).Value.Days;
}
if (b != 0)
{
c = a * 1.0 / b;
if (c > 0.1)
{
imgSchedule.ImageUrl = "../Images/RedLight.jpg";
}
else if (0.1 >= c && c > 0.05)
{
imgSchedule.ImageUrl = "../Images/YellowLight.jpg";
}
else if (c <= 0.05)
{
imgSchedule.ImageUrl = "../Images/GreenLight.jpg";
}
else
{
imgSchedule.ImageUrl = "../Images/NoLight.jpg";
}
}
else
{
imgSchedule.ImageUrl = "../Images/NoLight.jpg";
}
#endregion
#region
//Cost 成本
System.Web.UI.WebControls.Image imgCost = (System.Web.UI.WebControls.Image)this.Grid1.Rows[i].FindControl("imgCost");
double s = 0;
//获取项目的最新成本
var costManage = BLL.CostReportService.GetMaxMonthCostReportByEprojectId(eprojectId);
if (costManage != null)
{
decimal? orginalBudget = costManage.OrginalBudget.HasValue ? costManage.OrginalBudget : 0;//原始的预算
decimal? changedBudget = costManage.ChangedBudget.HasValue ? costManage.ChangedBudget : 0;//变更的预算
decimal? actualCost = costManage.ActualCost.HasValue ? costManage.ActualCost : 0;//实际的成本
decimal? committedPRPO = costManage.CommittedPRPO.HasValue ? costManage.CommittedPRPO : 0;//承诺的PR或PO成本
decimal? committedSSRs = costManage.CommittedSSRs.HasValue ? costManage.CommittedSSRs : 0; //承诺的SSR成本
decimal? costToComplete = costManage.CostToComplete.HasValue ? costManage.CostToComplete : 0; //预估的完工任需成本
decimal? rmb = actualCost + committedPRPO + committedSSRs + costToComplete;//预估的最终成本=实际的成本+承诺的PR或PO成本+承诺的SSR成本+预估的完工任需成本
//成本差异=(预估的最终成本-原始的预算-变更的预算)/(原始的预算+变更的预算)*100%
if (orginalBudget + changedBudget > 0)
{
s = Convert.ToDouble((rmb - orginalBudget - changedBudget) / (orginalBudget + changedBudget));
if (s > 0.1)
{
imgCost.ImageUrl = "../Images/RedLight.jpg";
}
else if (0.1 >= s && s > 0.05)
{
imgCost.ImageUrl = "../Images/YellowLight.jpg";
}
else if (s <= 0.05)
{
imgCost.ImageUrl = "../Images/GreenLight.jpg";
}
}
else
{
imgCost.ImageUrl = "../Images/NoLight.jpg";
}
}
else
{
imgCost.ImageUrl = "../Images/NoLight.jpg";
}
#endregion
#region
// Scope 范围指标
System.Web.UI.WebControls.Image imgScope = (System.Web.UI.WebControls.Image)this.Grid1.Rows[i].FindControl("imgScope");
decimal? m = eproject.PM_SC_ApprovedQty;//批准的变更数
decimal? n = eproject.PM_SC_PendingQty;//待定的变更数
if (n > 0)
{
imgScope.ImageUrl = "../Images/RedLight.jpg";
}
else if (n == 0 && m > 0)
{
imgScope.ImageUrl = "../Images/YellowLight.jpg";
}
else if (m == 0 && n == 0)
{
imgScope.ImageUrl = "../Images/GreenLight.jpg";
}
else
{
imgScope.ImageUrl = "../Images/NoLight.jpg";
}
#endregion
#endregion
#region
//附件
if (!string.IsNullOrEmpty(eproject.ProjectControl_FilesLink) && eproject.ProjectControl_FilesLink != null)
{
System.Web.UI.WebControls.HyperLink files = (System.Web.UI.WebControls.HyperLink)this.Grid1.Rows[i].FindControl("FilesLinks");
files.ImageUrl = "../Images/icon_G.gif";
files.NavigateUrl = eproject.ProjectControl_FilesLink;
}
if (!string.IsNullOrEmpty(eproject.ProjectControl_NotesLink) && eproject.ProjectControl_NotesLink != null)
{
System.Web.UI.WebControls.HyperLink notes = (System.Web.UI.WebControls.HyperLink)this.Grid1.Rows[i].FindControl("NotesLinks");
notes.ImageUrl = "../Images/icon_moc.gif";
notes.NavigateUrl = eproject.ProjectControl_NotesLink;
}
#endregion
}
}
}
#endregion
#region
protected void drpJobStatus_Click(object sender, EventArgs e)
{
if (drpJobStatus.SelectedValueArray.Count() >1)
{
drpJobStatus.Items[0].Selected = false;
}
if(drpJobStatus.SelectedValueArray.Count()==0)
{
drpJobStatus.Items[0].Selected = true;
}
BindGrid();
}
protected void drpJobType_SelectedIndexChanged(object sender, EventArgs e)
{
this.drpJobStatus.Items.Clear();
if (drpJobType.SelectedText == "Other")
{
BLL.ConstService.InitConstValueProjectStatus(this.drpJobStatus, BLL.Const.ProjectPlanner_JobStatus, "3", true);
}
if (drpJobType.SelectedText != "Other")
{
BLL.ConstService.InitConstValueProjectStatus(this.drpJobStatus, BLL.Const.ProjectPlanner_JobStatus, "2", true);
}
BindGrid();
}
protected void dropDownList_Click(object sender, EventArgs e)
{
BindGrid();
}
protected void btnFind_Click(object sender, EventArgs e)
{
BindGrid();
}
///查询条件
protected void btnSearch_Click(object sender, EventArgs e)
{
string s = this.hdJobNo.Text.Trim() + "|" +
this.hdJobTitle.Text.Trim() + "|" +
this.hdType.Text.Trim() + "|" +
this.hdStatus.Text.Trim() + "|" +
this.hdDivision.Text.Trim() + "|" +
this.hdProjectManager.Text.Trim() + "|" +
this.hdConstManager.Text.Trim() + "|" +
this.hdOperationRep.Text.Trim() + "|" +
this.hdAccount.Text.Trim() + "|" +
this.hdMOCFormNo.Text.Trim() + "|" +
this.hdLeadBy.Text.Trim() + "|" +
this.hdEngineer.Text.Trim() + "|" +
hdCritical.Text.Trim();
string window = String.Format("Search.aspx?s={0}", s, "查询 - ");
PageContext.RegisterStartupScript(Window2.GetSaveStateReference(hdItemsString.ClientID) + Window2.GetShowReference(window));
}
/// <summary>
/// 关闭查询窗体
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window2_Close(object sender, WindowCloseEventArgs e)
{
List<string> lists = Funs.GetStrListByStr(hdItemsString.Text, '|');
this.hdJobNo.Text = lists[0];
this.hdJobTitle.Text = lists[1];
this.hdType.Text = lists[2];
this.hdStatus.Text = lists[3];
this.hdDivision.Text = lists[4];
this.hdProjectManager.Text = lists[5];
this.hdConstManager.Text = lists[6];
this.hdOperationRep.Text = lists[7];
this.hdAccount.Text = lists[8];
this.hdMOCFormNo.Text = lists[9];
this.hdLeadBy.Text = lists[10];
this.hdEngineer.Text = lists[11];
this.hdCritical.Text = lists[12];
BindGrid();
if (this.Grid1.Rows.Count() > 0)
{
string eprojectId = this.Grid1.Rows[0].RowID;
if (!string.IsNullOrEmpty(eprojectId))
{
LoadData(eprojectId);
}
this.Grid1.SelectedRowIndex = 0;
}
}
#endregion
#region
protected string ConvertPro(object p)
{
if (p!=null && p.ToString()!="" && p.ToString() != "N.A")
{
decimal pro = Convert.ToDecimal(p.ToString().Substring(0, p.ToString().IndexOf('%')));
if (pro > 100)
{
return "100.00%";
}
else if (pro < 0)
{
return "0.00%";
}
else
{
return pro.ToString() + "%";
}
}
return "0.00%";
}
#endregion
}
}