Basf_EProject/EProject/FineUIPro.Web/EditorManage/PMEditorEdit.aspx.cs

1227 lines
67 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 Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
namespace FineUIPro.Web.EditorManage
{
public partial class PMEditorEdit : PageBase
{
#region
#region
/// <summary>
/// 定义计划工程师明细集合
/// </summary>
private List<Model.Editor_PM> projectControlLists = new List<Model.Editor_PM>();
#endregion
#endregion
#region
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string view = Request.Params["view"];
if (view == "1")
{
this.btnCalculated.Hidden = true;
this.btnSave.Hidden = true;
}
else
{
// 特殊控制,不需要
// GetButtonPower();//权限设置
}
btnClose.OnClientClick = ActiveWindow.GetHideReference();
BLL.ConstService.InitConstValueDropDownList(this.drpPM_General_CDI, BLL.Const.PM_CDI, true);
BLL.ConstService.InitConstValueDropDownList(this.drpPM_General_Category, BLL.Const.PM_Category, true);
BLL.ConstValue.InitSysConstDropDownList(this.drpReasonForCritical, BLL.Const.ReasonForCritical, false);
//部门
BLL.DepartService.InitDepartDropDownList(this.drpDelaybyteam1, true);
BLL.DepartService.InitDepartDropDownList(this.drpDelaybyteam2, true);
BLL.DepartService.InitDepartDropDownList(this.drpDelaybyteam3, true);
// 人员
BLL.Sys_UserService.InitUserDropDownList(this.drpDelaybypersonel1, true);
BLL.Sys_UserService.InitUserDropDownList(this.drpDelaybypersonel2, true);
BLL.Sys_UserService.InitUserDropDownList(this.drpDelaybypersonel3, true);
string eprojectId = Request.Params["EProjectId"];
if (!string.IsNullOrEmpty(eprojectId))
{
Model.Editor_EProject ep = BLL.EProjectService.GeteProjectById(eprojectId);
if (ep.PM_PressureVesselChecked == true)
{
this.cbPM_PressureVessel.Checked = true;
}
this.txtPM_PressureVessel.Text = ep.PM_PP_PressureVessel.HasValue ? Convert.ToDateTime(ep.PM_PP_PressureVessel).ToString("{yyyy-MM-dd}") : "";
if (ep.PM_PressurePipingChecked == true)
{
this.cbPM_PressurePiping.Checked = true;
}
this.txtPM_PressurePiping.Text = ep.PM_PP_PressurePiping.HasValue ? Convert.ToDateTime(ep.PM_PP_PressurePiping).ToString("{yyyy-MM-dd}") : "";
if (ep.PM_SQIBChecked == true)
{
this.cbPM_SQIB.Checked = true;
}
this.txtPM_SQIB.Text = ep.PM_PP_SQIB.HasValue ? Convert.ToDateTime(ep.PM_PP_SQIB).ToString("{yyyy-MM-dd}") : "";
if (!string.IsNullOrEmpty(ep.PM_General_CDI))
{
this.drpPM_General_CDI.SelectedValue = BLL.ConstService.GetConstListByTextAndGroupId(ep.PM_General_CDI, BLL.Const.PM_CDI).ConstValue;
}
txtPM_General_CostToComplete.Text = ep.PM_General_CostToComplete.HasValue ? ep.PM_General_CostToComplete.ToString() : "";
if (!string.IsNullOrEmpty(ep.PM_General_Category))
{
drpPM_General_Category.SelectedValue = BLL.ConstService.GetConstListByTextAndGroupId(ep.PM_General_Category, BLL.Const.PM_Category).ConstValue;
}
if (!string.IsNullOrEmpty(ep.PM_Critical))
{
drpCritical.SelectedValue = ep.PM_Critical;
}
if (!string.IsNullOrEmpty(ep.PM_ReasonForCritical))
{
drpReasonForCritical.SelectedValue = ep.PM_ReasonForCritical;
}
//txtPM_SC_ApprovedQty.Text = Convert.ToString(ep.PM_SC_ApprovedQty);
//txtPM_SC_ApprovedCost.Text = Convert.ToString(ep.PM_SC_ApprovedCost);
//txtPM_SC_PendingQty.Text = Convert.ToString(ep.PM_SC_PendingQty);
//txtPM_SC_PendingCost.Text = Convert.ToString(ep.PM_SC_PendingCost);
txtPM_MA_JobReveive.Text = ep.PM_MA_JobReveive.HasValue ? Convert.ToDateTime(ep.PM_MA_JobReveive).ToString("yyyy-MM-dd") : "";
txtPM_MA_KickOffMeeting.Text = ep.PM_MA_KickOffMeeting.HasValue ? Convert.ToDateTime(ep.PM_MA_KickOffMeeting).ToString("yyyy-MM-dd") : "";
txtPM_MA_SR.Text = ep.PM_MA_SR.HasValue ? Convert.ToDateTime(ep.PM_MA_SR).ToString("yyyy-MM-dd") : "";
this.txtPM_MA_ProjectApproval.Text = ep.PM_MA_ProjectApproval == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.PM_MA_ProjectApproval);
this.txtPlanning_Approval.Text = ep.PM_Planning_Approval == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.PM_Planning_Approval);
this.txtPre_Approval.Text = ep.PM_Pre_Approval == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.PM_Pre_Approval);
if (ep.PM_LLEP_RevisedStart.HasValue)
{
txtPM_LLEP_RevisedStart.Text = string.Format("{0:yyyy-MM-dd}", ep.PM_LLEP_RevisedStart);
}
else
{
if (ep.ProjectControl_LP_SchStart.HasValue)
{
txtPM_LLEP_RevisedStart.Text = string.Format("{0:yyyy-MM-dd}", ep.ProjectControl_LP_SchStart);
}
}
if (ep.PM_LLEP_RevisedStartIsAct == true)
{
cbLLEP_RevisedStart.Checked = true;
}
else
{
cbLLEP_RevisedStart.Checked = false;
}
if (ep.PM_LLEP_RevisedEnd.HasValue)
{
txtPM_LLEP_RevisedEnd.Text = string.Format("{0:yyyy-MM-dd}", ep.PM_LLEP_RevisedEnd);
}
else
{
if (ep.ProjectControl_LP_SchEnd.HasValue)
{
this.txtPM_LLEP_RevisedEnd.Text = string.Format("{0:yyyy-MM-dd}", ep.ProjectControl_LP_SchEnd);
}
}
if (ep.PM_LLEP_RevisedEndIsAct == true)
{
cbLLEP_RevisedEnd.Checked = true;
}
else
{
cbLLEP_RevisedEnd.Checked = false;
}
txtPM_LLEP_ActualProgress.Text = Convert.ToString(ep.PM_LLEP_ActualProgress);
txtPM_Remarks_Engineering.Text = ep.PM_Remarks_Engineering;
txtPM_Remarks_Procurement.Text = ep.PM_Remarks_Procurement;
this.txtStartDate.Text = ep.PM_Study_StartDate == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.PM_Study_StartDate);
this.txtEndDate.Text = ep.PM_Study_EndDate == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.PM_Study_EndDate);
if (!string.IsNullOrEmpty(ep.OutSourceType))
{
drpOutSourceType.SelectedValue = ep.OutSourceType;
}
if (!string.IsNullOrEmpty(ep.CM_Remarks_Procurement))
{
this.lblCMProcurement.Text = "CM-Procurement" + ep.CM_Remarks_Procurement;
}
// job List
txtPlanEHSReview_Files.Text = ep.Job_PlanEHSReview_Files == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.Job_PlanEHSReview_Files);
txtEHSReview_Files_Meeting.Text = ep.Job_EHSReview_Meeting == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.Job_EHSReview_Meeting);
txtEHSReview_Files.Text = ep.Job_EHSReview_Files == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.Job_EHSReview_Files);
txtEstimate_Worksheet.Text = ep.Job_Estimate_Worksheet == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.Job_Estimate_Worksheet);
txtBudget.Text = ep.Job_Budget == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.Job_Budget);
txtTecoAlarm_Study.Text = ep.Job_TecoAlarm_Study == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.Job_TecoAlarm_Study);
txtPlan_IFC.Text = ep.Job_Plan_IFC == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.Job_Plan_IFC);
//txtHold.Text = ep.Job_Hold == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.Job_Hold);
if (!string.IsNullOrEmpty(ep.Job_Delaybyteam1))
{
drpDelaybyteam1.SelectedValue = ep.Job_Delaybyteam1;
}
if (!string.IsNullOrEmpty(ep.Job_Delaybyteam2))
{
drpDelaybyteam2.SelectedValue = ep.Job_Delaybyteam2;
}
if (!string.IsNullOrEmpty(ep.Job_Delaybyteam3))
{
drpDelaybyteam3.SelectedValue = ep.Job_Delaybyteam3;
}
if (!string.IsNullOrEmpty(ep.Job_Delaybypersonel1))
{
drpDelaybypersonel1.SelectedValue = ep.Job_Delaybypersonel1;
}
if (!string.IsNullOrEmpty(ep.Job_Delaybypersonel2))
{
drpDelaybypersonel2.SelectedValue = ep.Job_Delaybypersonel2;
}
if (!string.IsNullOrEmpty(ep.Job_Delaybypersonel3))
{
drpDelaybypersonel3.SelectedValue = ep.Job_Delaybypersonel3;
}
txtRemark1.Text = ep.Job_Remark1;
txtRemark2.Text = ep.Job_Remark2;
txtRemark3.Text = ep.Job_Remark3;
btnCalculated_Click(null, null);//进度计算
List<Model.Editor_PM> pmList = BLL.PMService.GetPMByEprojectId(eprojectId);
if (pmList.Count > 0)
{
Grid1.DataSource = pmList;
Grid1.DataBind();
}
//当计划工程师编辑器中MC在3.30日之前SQIB为3.30MC在3.30日之后SQIB为明年的3.30
//string mcDateNow = DateTime.Now.ToString("MM-dd");
//string mcDate = Convert.ToDateTime(ep.ProjectControl_MS_MC).ToString("MM-dd");
//if (Funs.GetNewDateTime(mcDate) < Funs.GetNewDateTime(mcDateNow))
//{
// this.cbPM_SQIB.Checked = true;
// this.txtPM_SQIB.Text = DateTime.Now.Year + "-3-30";
//}
//else
//{
// this.cbPM_SQIB.Checked = true;
// this.txtPM_SQIB.Text = DateTime.Now.AddYears(1).Year + "-3-30";
//}
if (!string.IsNullOrEmpty(txtPM_PressureVessel.Text.Trim()))
{
this.cbPM_PressureVessel.Checked = true;
}
if (!string.IsNullOrEmpty(txtPM_PressurePiping.Text.Trim()))
{
this.cbPM_PressurePiping.Checked = true;
}
// 如果是PPE角色则显示全部
// 如果当前用户角色为PM并且为EM则显示全部
// 如果当前用户角色为EM则只显示下面EM Detail Eng
// 如果当前用户角色为PM则不显示EM Detail Eng
if (CurrUser.RoleId == Const.Role_PPE)
{
this.gpPM.Hidden = false;
this.gpEM.Hidden = false;
}
else
{
if (this.CurrUser.UserId == ep.ProjectControl_ProjectManagerId && this.CurrUser.UserId == ep.ProjectControl_EMManagerId)
{
this.gpEM.Hidden = false;
this.gpPM.Hidden = false;
}
else if (this.CurrUser.UserId == ep.ProjectControl_EMManagerId)
{
this.gpEM.Hidden = false;
this.gpPM.Hidden = true;
}
else if (this.CurrUser.UserId == ep.ProjectControl_ProjectManagerId)
{
this.gpEM.Hidden = true;
this.gpPM.Hidden = false;
}
}
}
this.txtPM_MA_JobReveive.MaxDate = DateTime.Now;
this.txtPM_MA_KickOffMeeting.MaxDate = DateTime.Now;
this.txtPM_MA_SR.MaxDate = DateTime.Now;
this.txtPM_MA_ProjectApproval.MaxDate = DateTime.Now;
}
}
#endregion
#region Grid1绑定事件
/// <summary>
/// Grid1中PID、Document、Cost Estimate不允许操作
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
{
var row = e.DataItem as Model.Editor_PM;
if (row != null)
{
string DisciplinesWBSName = row.DisciplinesWBSName.ToString();
var tdc = (from x in Funs.DB.Editor_TDC
where x.EProjectId == row.EProjectId
&& x.Type == "D01_IFC"
&& x.Disc.Contains(DisciplinesWBSName)
select x.Disc).FirstOrDefault();
if (tdc != null && !string.IsNullOrEmpty(tdc))
{
RenderField Sch_End = Grid1.FindColumn("RevisedEnd") as RenderField;
e.CellCssClasses[Sch_End.ColumnIndex] = "f-grid-cell-uneditable";
}
if (DisciplinesWBSName == "PID" || DisciplinesWBSName == "Document" || DisciplinesWBSName == "Cost Estimate")
{
RenderField Sch_Start = Grid1.FindColumn("SchStart") as RenderField;
e.CellCssClasses[Sch_Start.ColumnIndex] = "f-grid-cell-uneditable";
RenderField Sch_End = Grid1.FindColumn("SchEnd") as RenderField;
e.CellCssClasses[Sch_End.ColumnIndex] = "f-grid-cell-uneditable";
RenderField Revised_Start = Grid1.FindColumn("RevisedStart") as RenderField;
e.CellCssClasses[Revised_Start.ColumnIndex] = "f-grid-cell-uneditable";
RenderField Revised_End = Grid1.FindColumn("RevisedEnd") as RenderField;
e.CellCssClasses[Revised_End.ColumnIndex] = "f-grid-cell-uneditable";
}
else
{
if (this.CurrUser.RoleId != Const.Role_PPE && this.CurrUser.UserId != Const.GlyId)
{
RenderField Sch_Start = Grid1.FindColumn("SchStart") as RenderField;
e.CellCssClasses[Sch_Start.ColumnIndex] = "f-grid-cell-uneditable";
RenderField Sch_End = Grid1.FindColumn("SchEnd") as RenderField;
e.CellCssClasses[Sch_End.ColumnIndex] = "f-grid-cell-uneditable";
}
}
}
}
#endregion
#region
/// <summary>
/// 保存按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
string operationLog = string.Empty;
string eprojectId = Request.Params["EProjectId"];
var eproject = BLL.EProjectService.GeteProjectById(eprojectId);
if (eproject != null)
{
#region
operationLog = eproject.ProjectControl_JobNo + "_PM";
if ((eproject.PM_General_CDI != null || drpPM_General_CDI.SelectedValue != Const._Null) && eproject.PM_General_CDI != drpPM_General_CDI.SelectedItem.Text)
{
operationLog += "CDI 由" + eproject.PM_General_CDI + "修改为" + drpPM_General_CDI.SelectedItem.Text + "";
}
if ((eproject.OutSourceType != null || drpOutSourceType.SelectedValue != "0") && eproject.OutSourceType != drpOutSourceType.SelectedItem.Text)
{
operationLog += "OutSource Type 由" + eproject.OutSourceType + "修改为" + drpOutSourceType.SelectedItem.Text + "";
}
if ((eproject.PM_General_Category != null || drpPM_General_Category.SelectedValue != Const._Null) && eproject.PM_General_Category != drpPM_General_Category.SelectedItem.Text)
{
operationLog += "Category 由" + eproject.PM_General_Category + "修改为" + drpPM_General_Category.SelectedItem.Text + "";
}
if ((eproject.PM_Critical != null || drpCritical.SelectedValue != Const._Null) && eproject.PM_Critical != drpCritical.SelectedItem.Text)
{
operationLog += "Critical 由" + eproject.PM_Critical + "修改为" + drpCritical.SelectedItem.Text + "";
}
if (eproject.PM_ReasonForCritical != drpReasonForCritical.SelectedValue)
{
var s = from x in Funs.DB.Sys_Const where x.ConstValue == drpReasonForCritical.SelectedValue && x.GroupId == BLL.Const.ReasonForCritical select x;
operationLog += "Reason For Critical 由" + s.First().ConstText + "修改为" + drpReasonForCritical.SelectedItem.Text + "";
}
if ((eproject.PM_PressureVesselChecked.HasValue ? eproject.PM_PressureVesselChecked.Value : false) != cbPM_PressureVessel.Checked)
{
operationLog += "Pressure Vessel 由" + (eproject.PM_PressureVesselChecked.HasValue ? eproject.PM_PressureVesselChecked.Value : false).ToString() + "修改为" + cbPM_PressureVessel.Checked.ToString() + "";
}
if ((eproject.PM_PressurePipingChecked.HasValue ? eproject.PM_PressurePipingChecked.Value : false) != cbPM_PressurePiping.Checked)
{
operationLog += "Pressure Piping 由" + (eproject.PM_PressurePipingChecked.HasValue ? eproject.PM_PressurePipingChecked.Value : false).ToString() + "修改为" + cbPM_PressurePiping.Checked.ToString() + "";
}
if ((eproject.PM_SQIBChecked.HasValue ? eproject.PM_SQIBChecked.Value : false) != cbPM_SQIB.Checked)
{
operationLog += "SQIB 由" + (eproject.PM_SQIBChecked.HasValue ? eproject.PM_SQIBChecked.Value : false).ToString() + "修改为" + cbPM_SQIB.Checked.ToString() + "";
}
//if ((eproject.PM_SC_ApprovedQty != null || txtPM_SC_ApprovedQty.Text != "") && eproject.PM_SC_ApprovedQty != Funs.GetNewInt(txtPM_SC_ApprovedQty.Text.Trim()))
//{
// operationLog += "Approved Qty 由" + (eproject.PM_SC_ApprovedQty != null ? eproject.PM_SC_ApprovedQty.Value.ToString() : "" + "修改为" + txtPM_SC_ApprovedQty.Text) + "";
//}
//if ((eproject.PM_SC_ApprovedCost != null || txtPM_SC_ApprovedCost.Text != "") && eproject.PM_SC_ApprovedCost != Funs.GetNewDecimal(txtPM_SC_ApprovedCost.Text.Trim()))
//{
// operationLog += "Approved Cost 由" + (eproject.PM_SC_ApprovedCost != null ? eproject.PM_SC_ApprovedCost.Value.ToString() : "" + "修改为" + txtPM_SC_ApprovedCost.Text) + "";
//}
//if ((eproject.PM_SC_PendingQty != null || txtPM_SC_PendingQty.Text != "") && eproject.PM_SC_PendingQty != Funs.GetNewInt(txtPM_SC_PendingQty.Text.Trim()))
//{
// operationLog += "Pending Qty 由" + (eproject.PM_SC_PendingQty != null ? eproject.PM_SC_PendingQty.Value.ToString() : "" + "修改为" + txtPM_SC_PendingQty.Text) + "";
//}
//if ((eproject.PM_SC_PendingCost != null || txtPM_SC_PendingCost.Text != "") && eproject.PM_SC_PendingCost != Funs.GetNewDecimal(txtPM_SC_PendingCost.Text.Trim()))
//{
// operationLog += "Pending Cost 由" + (eproject.PM_SC_PendingCost != null ? eproject.PM_SC_PendingCost.Value.ToString() : "" + "修改为" + txtPM_SC_PendingCost.Text) + "";
//}
if (eproject.PM_MA_JobReveive != Funs.GetNewDateTime(this.txtPM_MA_JobReveive.Text.Trim()))
{
operationLog += "Job Reveive 由" + (eproject.PM_MA_JobReveive == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_MA_JobReveive)) + "修改为" + this.txtPM_MA_JobReveive.Text.Trim() + "";
}
if (eproject.PM_MA_KickOffMeeting != Funs.GetNewDateTime(this.txtPM_MA_KickOffMeeting.Text.Trim()))
{
operationLog += "Kick-off Meeting 由" + (eproject.PM_MA_KickOffMeeting == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_MA_KickOffMeeting)) + "修改为" + this.txtPM_MA_KickOffMeeting.Text.Trim() + "";
}
if (eproject.PM_MA_SR != Funs.GetNewDateTime(this.txtPM_MA_SR.Text.Trim()))
{
operationLog += "SR1/2 由" + (eproject.PM_MA_SR == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_MA_SR)) + "修改为" + this.txtPM_MA_SR.Text.Trim() + "";
}
if (eproject.PM_MA_ProjectApproval != Funs.GetNewDateTime(this.txtPM_MA_ProjectApproval.Text.Trim()))
{
operationLog += "Project Approval 由" + (eproject.PM_MA_ProjectApproval == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_MA_ProjectApproval)) + "修改为" + this.txtPM_MA_ProjectApproval.Text.Trim() + "";
}
if (eproject.PM_Planning_Approval != Funs.GetNewDateTime(this.txtPlanning_Approval.Text.Trim()))
{
operationLog += "Planning Cost Approval 由" + (eproject.PM_Planning_Approval == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_Planning_Approval)) + "修改为" + this.txtPlanning_Approval.Text.Trim() + "";
}
if (eproject.PM_Pre_Approval != Funs.GetNewDateTime(this.txtPre_Approval.Text.Trim()))
{
operationLog += "Pre-Approval 由" + (eproject.PM_Pre_Approval == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_Pre_Approval)) + "修改为" + this.txtPre_Approval.Text.Trim() + "";
}
if (eproject.PM_LLEP_RevisedStart != Funs.GetNewDateTime(this.txtPM_LLEP_RevisedStart.Text.Trim()))
{
operationLog += "LLEP_Forecast Start 由" + (eproject.PM_LLEP_RevisedStart == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_LLEP_RevisedStart)) + "修改为" + this.txtPM_LLEP_RevisedStart.Text.Trim() + "";
}
if ((eproject.PM_LLEP_RevisedStartIsAct.HasValue ? eproject.PM_LLEP_RevisedStartIsAct.Value : false) != cbLLEP_RevisedStart.Checked)
{
operationLog += "LLEP_Forecast Start Actual 由" + (eproject.PM_LLEP_RevisedStartIsAct.HasValue ? eproject.PM_LLEP_RevisedStartIsAct.Value : false).ToString() + "修改为" + cbLLEP_RevisedStart.Checked.ToString() + "";
}
if (eproject.PM_LLEP_RevisedEnd != Funs.GetNewDateTime(this.txtPM_LLEP_RevisedEnd.Text.Trim()))
{
operationLog += "LLEP_Forecast End 由" + (eproject.PM_LLEP_RevisedEnd == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_LLEP_RevisedEnd)) + "修改为" + this.txtPM_LLEP_RevisedEnd.Text.Trim() + "";
}
if ((eproject.PM_LLEP_RevisedEndIsAct.HasValue ? eproject.PM_LLEP_RevisedEndIsAct.Value : false) != cbLLEP_RevisedEnd.Checked)
{
operationLog += "LLEP_Forecast End Actual 由" + (eproject.PM_LLEP_RevisedEndIsAct.HasValue ? eproject.PM_LLEP_RevisedEndIsAct.Value : false).ToString() + "修改为" + cbLLEP_RevisedEnd.Checked.ToString() + "";
}
if (eproject.PM_Study_StartDate != Funs.GetNewDateTime(this.txtStartDate.Text.Trim()))
{
operationLog += "Forecast Start 由" + (eproject.PM_Study_StartDate == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_Study_StartDate)) + "修改为" + this.txtStartDate.Text.Trim() + "";
}
if (eproject.PM_Study_EndDate != Funs.GetNewDateTime(this.txtEndDate.Text.Trim()))
{
operationLog += "Forecast End 由" + (eproject.PM_Study_EndDate == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_Study_EndDate)) + "修改为" + this.txtEndDate.Text.Trim() + "";
}
if (eproject.PM_Remarks_Engineering != txtPM_Remarks_Engineering.Text.Trim())
{
operationLog += "Engineering 由" + eproject.PM_Remarks_Engineering + "修改为" + txtPM_Remarks_Engineering.Text.Trim() + "";
}
if (eproject.PM_Remarks_Procurement != txtPM_Remarks_Procurement.Text.Trim())
{
operationLog += "Procurement 由" + eproject.PM_Remarks_Procurement + "修改为" + txtPM_Remarks_Procurement.Text.Trim() + "";
}
#endregion
eproject.EProjectId = eprojectId;
if (this.drpPM_General_CDI.SelectedValue != BLL.Const._Null)
{
eproject.PM_General_CDI = drpPM_General_CDI.SelectedItem.Text;
}
else
{
eproject.PM_General_CDI = null;
}
eproject.PM_General_CostToComplete = Funs.GetNewDecimalOrZero(txtPM_General_CostToComplete.Text.Trim());
if (drpPM_General_Category.SelectedValue != BLL.Const._Null)
{
eproject.PM_General_Category = drpPM_General_Category.SelectedItem.Text;
}
else
{
eproject.PM_General_Category = null;
}
eproject.PM_Critical = drpCritical.SelectedValue;
eproject.PM_ReasonForCritical = drpReasonForCritical.SelectedValue;
eproject.PM_LLEP_RevisedStart = Funs.GetNewDateTime(txtPM_LLEP_RevisedStart.Text.Trim());
eproject.PM_LLEP_RevisedEnd = Funs.GetNewDateTime(txtPM_LLEP_RevisedEnd.Text.Trim());
if (cbLLEP_RevisedStart.Checked)
{
eproject.PM_LLEP_RevisedStartIsAct = true;
}
else
{
eproject.PM_LLEP_RevisedStartIsAct = null;
}
if (cbLLEP_RevisedEnd.Checked)
{
eproject.PM_LLEP_RevisedEndIsAct = true;
}
else
{
eproject.PM_LLEP_RevisedEndIsAct = null;
}
btnCalculated_Click(null, null);//进度计算
if (txtPM_LLEP_ActualProgress.Text.Trim() != string.Empty)
{
eproject.PM_LLEP_ActualProgress = Convert.ToDecimal(txtPM_LLEP_ActualProgress.Text.Trim());
}
//eproject.PM_SC_ApprovedQty = Funs.GetNewInt(txtPM_SC_ApprovedQty.Text.Trim());
//eproject.PM_SC_ApprovedCost = Funs.GetNewDecimal(txtPM_SC_ApprovedCost.Text.Trim());
//eproject.PM_SC_PendingQty = Funs.GetNewInt(txtPM_SC_PendingQty.Text.Trim());
//eproject.PM_SC_PendingCost = Funs.GetNewDecimal(txtPM_SC_PendingCost.Text.Trim());
eproject.PM_MA_JobReveive = Funs.GetNewDateTime(txtPM_MA_JobReveive.Text.Trim());
eproject.PM_MA_KickOffMeeting = Funs.GetNewDateTime(txtPM_MA_KickOffMeeting.Text.Trim());
eproject.PM_MA_SR = Funs.GetNewDateTime(txtPM_MA_SR.Text.Trim());
eproject.PM_MA_ProjectApproval = Funs.GetNewDateTime(txtPM_MA_ProjectApproval.Text.Trim());
eproject.PM_Pre_Approval = Funs.GetNewDateTime(txtPre_Approval.Text.Trim());
eproject.PM_Planning_Approval = Funs.GetNewDateTime(txtPlanning_Approval.Text.Trim());
eproject.PM_Remarks_Engineering = txtPM_Remarks_Engineering.Text.Trim();
eproject.PM_Remarks_Procurement = txtPM_Remarks_Procurement.Text.Trim();
eproject.PM_PP_PressureVessel = Funs.GetNewDateTime(this.txtPM_PressureVessel.Text.Trim());
eproject.PM_PP_PressurePiping = Funs.GetNewDateTime(this.txtPM_PressurePiping.Text.Trim());
eproject.PM_PP_SQIB = Funs.GetNewDateTime(this.txtPM_SQIB.Text.Trim());
eproject.PM_Study_StartDate = Funs.GetNewDateTime(this.txtStartDate.Text.Trim());
eproject.PM_Study_EndDate = Funs.GetNewDateTime(this.txtEndDate.Text.Trim());
eproject.PM_PressureVesselChecked = this.cbPM_PressureVessel.Checked;
eproject.PM_PressurePipingChecked = this.cbPM_PressurePiping.Checked;
eproject.PM_SQIBChecked = this.cbPM_SQIB.Checked;
if (drpOutSourceType.SelectedValue != "0")
{
eproject.OutSourceType = drpOutSourceType.SelectedValue;
}
else
{
eproject.OutSourceType = null;
}
// job
eproject.Job_PlanEHSReview_Files = Funs.GetNewDateTime(this.txtPlanEHSReview_Files.Text.Trim());
eproject.Job_EHSReview_Meeting = Funs.GetNewDateTime(this.txtEHSReview_Files_Meeting.Text.Trim());
eproject.Job_Budget = Funs.GetNewDateTime(this.txtBudget.Text.Trim());
eproject.Job_EHSReview_Files = Funs.GetNewDateTime(this.txtEHSReview_Files.Text.Trim());
eproject.Job_Estimate_Worksheet = Funs.GetNewDateTime(this.txtEstimate_Worksheet.Text.Trim());
//eproject.Job_Hold = Funs.GetNewDateTime(this.txtHold.Text.Trim());
eproject.Job_Plan_IFC = Funs.GetNewDateTime(this.txtPlan_IFC.Text.Trim());
eproject.Job_TecoAlarm_Study = Funs.GetNewDateTime(this.txtTecoAlarm_Study.Text.Trim());
if (drpDelaybyteam1.SelectedValue != Const._Null)
{
eproject.Job_Delaybyteam1 = drpDelaybyteam1.SelectedValue;
}
if (drpDelaybyteam2.SelectedValue != Const._Null)
{
eproject.Job_Delaybyteam2 = drpDelaybyteam2.SelectedValue;
}
if (drpDelaybyteam3.SelectedValue != Const._Null)
{
eproject.Job_Delaybyteam3 = drpDelaybyteam3.SelectedValue;
}
if (drpDelaybypersonel1.SelectedValue != Const._Null)
{
eproject.Job_Delaybypersonel1 = drpDelaybypersonel1.SelectedValue;
}
if (drpDelaybypersonel2.SelectedValue != Const._Null)
{
eproject.Job_Delaybypersonel2 = drpDelaybypersonel2.SelectedValue;
}
if (drpDelaybypersonel3.SelectedValue != Const._Null)
{
eproject.Job_Delaybypersonel3 = drpDelaybypersonel3.SelectedValue;
}
eproject.Job_Remark1 = txtRemark1.Text.Trim();
eproject.Job_Remark2 = txtRemark2.Text.Trim();
eproject.Job_Remark3 = txtRemark3.Text.Trim();
eproject.ModifyDate = DateTime.Now;
eproject.ModifyPerson = CurrUser.UserId;
BLL.EProjectService.UpdateProject(eproject, "PM");
}
List<Model.Editor_PM> list = new List<Model.Editor_PM>();
JArray EditorPMArr = Grid1.GetMergedData();
if (EditorPMArr.Count > 0)
{
//增加明细
JArray mergedData = Grid1.GetMergedData();
int i = 0;
foreach (JObject mergedRow in EditorPMArr)
{
string pmId = Grid1.DataKeys[i][0].ToString();
JObject values = mergedRow.Value<JObject>("values");
DateTime? ss = Funs.GetNewDateTime(values.Value<string>("SchStart").ToString());
DateTime? se = Funs.GetNewDateTime(values.Value<string>("SchEnd").ToString());
DateTime? rs = Funs.GetNewDateTime(values.Value<string>("RevisedStart").ToString());
DateTime? re = Funs.GetNewDateTime(values.Value<string>("RevisedEnd").ToString());
Model.Editor_PM pm = Funs.DB.Editor_PM.FirstOrDefault(x => x.PMId == pmId);
if (pm != null)
{
pm.SchStart = ss;
pm.SchEnd = se;
pm.RevisedStart = rs;
pm.RevisedEnd = re;
pm.RevisedStartIsAct = Convert.ToBoolean(values.Value<string>("RevisedStartIsAct"));
pm.RevisedEndIsAct= Convert.ToBoolean(values.Value<string>("RevisedEndIsAct"));
Funs.DB.SubmitChanges();
}
i++;
}
}
#region
//更新项目状态
var epro = BLL.EProjectService.GeteProjectById(eproject.EProjectId);
if (epro != null)
{
//(不要这个逻辑了-2021.03.30)当PM中Milestone(Actual)的Project Approval不为空同时CM中Const.-Civil的Revised Start和Const.-Mech,E&I的Revised Start小于当前时间,状态为In Construction
//if (epro.PM_MA_ProjectApproval.HasValue && Funs.GetNewDateTime(DateTime.Now.ToShortDateString()) > Funs.GetNewDateTime(epro.CM_CC_RevisedStart.ToString()) && Funs.GetNewDateTime(DateTime.Now.ToShortDateString()) > Funs.GetNewDateTime(epro.CM_CM_RevisedStart.ToString()))
//{
// epro.ProjectControl_JobStatus = "In Construction";
//}
//当项目类型为projects或moc时PM中Milestone(Actual)的Project Approval不为空并且Resource_Plan有记录时状态为Not Approved 修改于2024.07.04
var resourcePlans = BLL.ResourcePlanService.GetResourcePlanByEProjectId(epro.EProjectId);
if ((epro.PM_MA_ProjectApproval == null || epro.PM_MA_ProjectApproval.ToString() == "") && resourcePlans.Count() > 0)
{
if (eproject.ProjectControl_JobStatus == null || eproject.ProjectControl_JobStatus == "" || eproject.ProjectControl_JobStatus == "Not Start")
{
epro.ProjectControl_JobStatus = "Study";
}
}
// 增加于2024.07.03
if (epro.ProjectControl_JobType == "Other" && epro.PM_MA_ProjectApproval.HasValue && !epro.CM_MA_MC.HasValue)
{
eproject.ProjectControl_JobStatus = "On Going";
}
// 去除于2024.07.03
//if (epro.PM_MA_ProjectApproval.HasValue && resourcePlans.Count()>1)
//{
// if (eproject.ProjectControl_JobStatus == null || eproject.ProjectControl_JobStatus == "" || eproject.ProjectControl_JobStatus == "Study" || eproject.ProjectControl_JobStatus == "Not Start")
// {
// epro.ProjectControl_JobStatus = "On Going";
// }
//}
//去掉 同时满足Today小于Design Civil_Revised End Date和Design Mech.E&I_Revised End Date的最大值时
//var civilRevisedEnd = BLL.PMService.GetCivil(eproject.EProjectId);
//var mechEIRevisedEnd = BLL.PMService.GetMechEI(eproject.EProjectId);
// 后加条件 //当PM中Milestone(Actual)的Project Approval不为空并且IFC ALL的ReceiveHC为空状态为Detailed Design
var all = from x in Funs.DB.Editor_TDC where x.EProjectId== epro.EProjectId && x.Type == "D01_IFC" && x.Disc == "00_ALL" && x.ReceiveHC.HasValue select x;
if (epro.ProjectControl_JobType != "Other" && epro.PM_MA_ProjectApproval.HasValue && all.Count() == 0)
{
if (eproject.ProjectControl_JobStatus == null || eproject.ProjectControl_JobStatus == "" || eproject.ProjectControl_JobStatus == "On Going" || eproject.ProjectControl_JobStatus == "Study" || eproject.ProjectControl_JobStatus == "Not Start")
{
epro.ProjectControl_JobStatus = "Detailed Design";
}
}
// 后加当PM中Milestone(Actual)的Project Approval不为空并且IFC ALL的ReceiveHC不为空状态为In Procurement
//或者当PM中Milestone(Actual)的Project Approval不为空并且IFC NA的ReceiveHC不为空状态为In Procurement
var con_all = from x in Funs.DB.Editor_TDC where x.EProjectId == epro.EProjectId && x.Type == "D01_IFC" && x.Disc == "00_ALL" && x.ReceiveHC.HasValue select x;
var con_na = from x in Funs.DB.Editor_TDC where x.EProjectId == epro.EProjectId && x.Type == "D01_IFC" && x.Disc == "90_NA" && x.ReceiveHC.HasValue select x;
if (epro.ProjectControl_JobType != "Other" && epro.PM_MA_ProjectApproval.HasValue && (con_all.Count() > 0 || con_na.Count() > 0))
{
if (eproject.ProjectControl_JobStatus == null || eproject.ProjectControl_JobStatus == "" || eproject.ProjectControl_JobStatus == "Detailed Design" || eproject.ProjectControl_JobStatus == "On Going" || eproject.ProjectControl_JobStatus == "Study" || eproject.ProjectControl_JobStatus == "Not Start")
{
epro.ProjectControl_JobStatus = "In Procurement";
}
}
if (epro.CM_MA_MC.HasValue)
{
if (eproject.ProjectControl_JobStatus == null || eproject.ProjectControl_JobStatus == ""
|| eproject.ProjectControl_JobStatus == "In Procurement" || eproject.ProjectControl_JobStatus == "In Construction"
|| eproject.ProjectControl_JobStatus == "Detailed Design" || eproject.ProjectControl_JobStatus == "On Going"
|| eproject.ProjectControl_JobStatus == "Study" || eproject.ProjectControl_JobStatus == "Not Start")
{
epro.ProjectControl_JobStatus = "MC";
}
}
if ((epro.Permit_PS_SafetyFinalAcc.HasValue && epro.Permit_PA_SafetyFinalACC.HasValue
&& epro.Permit_PS_FFFinalAcc.HasValue && epro.Permit_PA_FFFinalACC.HasValue
&& epro.Permit_PS_EnvFinalAcc.HasValue && epro.Permit_PA_EnvFinalACC.HasValue)
|| (epro.Permit_PS_SafetyFinalAcc.HasValue && epro.Permit_PA_SafetyFinalACC.HasValue
&& !epro.Permit_PS_FFFinalAcc.HasValue && !epro.Permit_PA_FFFinalACC.HasValue
&& !epro.Permit_PS_EnvFinalAcc.HasValue && !epro.Permit_PA_EnvFinalACC.HasValue)
|| (epro.Permit_PS_SafetyFinalAcc.HasValue && epro.Permit_PA_SafetyFinalACC.HasValue
&& epro.Permit_PS_FFFinalAcc.HasValue && epro.Permit_PA_FFFinalACC.HasValue
&& !epro.Permit_PS_EnvFinalAcc.HasValue && !epro.Permit_PA_EnvFinalACC.HasValue)
|| (epro.Permit_PS_SafetyFinalAcc.HasValue && epro.Permit_PA_SafetyFinalACC.HasValue
&& !epro.Permit_PS_FFFinalAcc.HasValue && !epro.Permit_PA_FFFinalACC.HasValue
&& epro.Permit_PS_EnvFinalAcc.HasValue && epro.Permit_PA_EnvFinalACC.HasValue)
|| (!epro.Permit_PS_SafetyFinalAcc.HasValue && !epro.Permit_PA_SafetyFinalACC.HasValue
&& epro.Permit_PS_FFFinalAcc.HasValue && epro.Permit_PA_FFFinalACC.HasValue
&& epro.Permit_PS_EnvFinalAcc.HasValue && epro.Permit_PA_EnvFinalACC.HasValue)
|| (!epro.Permit_PS_SafetyFinalAcc.HasValue && !epro.Permit_PA_SafetyFinalACC.HasValue
&& !epro.Permit_PS_FFFinalAcc.HasValue && !epro.Permit_PA_FFFinalACC.HasValue
&& epro.Permit_PS_EnvFinalAcc.HasValue && epro.Permit_PA_EnvFinalACC.HasValue)
|| (!epro.Permit_PS_SafetyFinalAcc.HasValue && !epro.Permit_PA_SafetyFinalACC.HasValue
&& !epro.Permit_PS_FFFinalAcc.HasValue && !epro.Permit_PA_FFFinalACC.HasValue
&& !epro.Permit_PS_EnvFinalAcc.HasValue && !epro.Permit_PA_EnvFinalACC.HasValue))
{
#region MOC项目
//MOC项目最晚的①竣工图接收日期②商务关闭日期③主控文档更新日期④剩余材料登记
if (eproject.ProjectControl_JobType == "MOC")
{
List<DateTime> closeDateLists = new List<DateTime>();
var built = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D02_AS-BUILT");//竣工图接收日期
if (built != null)
{
if (built.ReceiveHC.HasValue)
{
closeDateLists.Add(Convert.ToDateTime(built.ReceiveHC));
}
}
var md = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D03_MD");//主控文档更新日期
if (md != null)
{
if (md.ReceivePDF.HasValue)
{
closeDateLists.Add(Convert.ToDateTime(md.ReceivePDF));
}
}
if (eproject.ProjectControl_BC_CloseDate.HasValue)
{
closeDateLists.Add(Convert.ToDateTime(eproject.ProjectControl_BC_CloseDate));//商务关闭日期
}
if (eproject.CM_Date_of_Registration.HasValue)
{
closeDateLists.Add(Convert.ToDateTime(eproject.CM_Date_of_Registration));//剩余材料登记
}
closeDateLists.Sort();
if (closeDateLists.Count == 4)
{
eproject.ProjectControl_ClosedDate = closeDateLists[3];
eproject.ProjectControl_JobStatus = "Closed";
}
}
#endregion
#region
//类型为项目和小型投资:最晚的①竣工图接收日期②商务关闭日期③主控文档更新日期④C类尾项消项日期⑤机械竣工签署日期⑥剩余材料登记⑦计划具备开车条件日期⑧大于100万需要FC签署日期
else if (eproject.ProjectControl_JobType == "Small Invest" || eproject.ProjectControl_JobType == "Projects")
{
List<DateTime> closeDateLists = new List<DateTime>();
var built = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D02_AS-BUILT");
if (built != null)
{
if (built.ReceiveHC.HasValue)
{
closeDateLists.Add(Convert.ToDateTime(built.ReceiveHC));//竣工图接收日期
}
}
if (eproject.ProjectControl_BC_CloseDate.HasValue)
{
closeDateLists.Add(Convert.ToDateTime(eproject.ProjectControl_BC_CloseDate));//商务关闭日期
}
var md = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D03_MD");
if (md != null)
{
if (md.ReceivePDF.HasValue)
{
closeDateLists.Add(Convert.ToDateTime(md.ReceivePDF));//主控文档更新日期
}
}
if (eproject.CM_Punch_CKilledDate.HasValue)
{
closeDateLists.Add(Convert.ToDateTime(eproject.CM_Punch_CKilledDate));//C类尾项消项日期
}
var mc = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D11_MC");
if (mc != null)
{
if (mc.ReceiveHC.HasValue)
{
closeDateLists.Add(Convert.ToDateTime(mc.ReceiveHC));//机械竣工签署日期
}
}
if (eproject.CM_Date_of_Registration.HasValue)
{
closeDateLists.Add(Convert.ToDateTime(eproject.CM_Date_of_Registration));//剩余材料登记
}
var rfsu = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D12_RFSU");
if (rfsu != null)
{
if (rfsu.ReceiveHC.HasValue)
{
closeDateLists.Add(Convert.ToDateTime(mc.ReceiveHC));//计划具备开车条件日期
}
}
// 大于1000000需要FC签署日期
if (eproject.ProjectControl_OrginalBudget != null && eproject.ProjectControl_OrginalBudget > 1000000)
{
var fc = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D30_FC");
if (fc != null)
{
if (fc.ReceiveHC.HasValue)
{
closeDateLists.Add(Convert.ToDateTime(fc.ReceiveHC));//FC签署日期
}
}
closeDateLists.Sort();
if (closeDateLists.Count == 8)
{
eproject.ProjectControl_ClosedDate = closeDateLists[7];
eproject.ProjectControl_JobStatus = "Closed";
}
}
else
{
closeDateLists.Sort();
if (closeDateLists.Count == 7)
{
eproject.ProjectControl_ClosedDate = closeDateLists[6];
eproject.ProjectControl_JobStatus = "Closed";
}
}
}
#endregion
#region
//大于100万的项目最晚的①竣工图接收日期②商务关闭日期③主控文档更新日期④C类尾项消项日期⑤机械竣工签署日期⑥FC签署日期⑦剩余材料登记⑧计划具备开车条件日期
//else if (eproject.ProjectControl_JobType == "Projects")
//{
// List<DateTime> closeDateLists = new List<DateTime>();
// var built = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D02_AS-BUILT");
// if (built != null)
// {
// if (built.ReceiveHC.HasValue)
// {
// closeDateLists.Add(Convert.ToDateTime(built.ReceiveHC));//竣工图接收日期
// }
// }
// if (eproject.ProjectControl_BC_CloseDate.HasValue)
// {
// closeDateLists.Add(Convert.ToDateTime(eproject.ProjectControl_BC_CloseDate));//商务关闭日期
// }
// var md = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D03_MD");
// if (md != null)
// {
// if (md.ReceivePDF.HasValue)
// {
// closeDateLists.Add(Convert.ToDateTime(md.ReceivePDF));//主控文档更新日期
// }
// }
// if (eproject.CM_Punch_CKilledDate.HasValue)
// {
// closeDateLists.Add(Convert.ToDateTime(eproject.CM_Punch_CKilledDate));//C类尾项消项日期
// }
// var mc = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D11_MC");
// if (mc != null)
// {
// if (mc.ReceiveHC.HasValue)
// {
// closeDateLists.Add(Convert.ToDateTime(mc.ReceiveHC));//机械竣工签署日期
// }
// }
// var fc = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D30_FC");
// if (fc != null)
// {
// if (fc.ReceiveHC.HasValue)
// {
// closeDateLists.Add(Convert.ToDateTime(fc.ReceiveHC));//FC签署日期
// }
// }
// if (eproject.CM_Date_of_Registration.HasValue)
// {
// closeDateLists.Add(Convert.ToDateTime(eproject.CM_Date_of_Registration));//剩余材料登记
// }
// var rfsu = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D12_RFSU");
// if (rfsu != null)
// {
// if (rfsu.ReceiveHC.HasValue)
// {
// closeDateLists.Add(Convert.ToDateTime(mc.ReceiveHC));//计划具备开车条件日期
// }
// }
// closeDateLists.Sort();
// if (closeDateLists.Count == 8)
// {
// eproject.ProjectControl_ClosedDate = closeDateLists[7];
// eproject.ProjectControl_JobStatus = "Closed";
// }
//}
#endregion
#region
//其他类项目:最晚的①竣工图接收日期②商务关闭日期③主控文档更新日期
else if (eproject.ProjectControl_JobType == "Other")
{
List<DateTime> closeDateLists = new List<DateTime>();
var built = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D02_AS-BUILT");
if (built != null)
{
if (built.ReceiveHC.HasValue)
{
closeDateLists.Add(Convert.ToDateTime(built.ReceiveHC));//竣工图接收日期
}
}
if (eproject.ProjectControl_BC_CloseDate.HasValue)
{
closeDateLists.Add(Convert.ToDateTime(eproject.ProjectControl_BC_CloseDate));//商务关闭日期
}
var md = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D03_MD");
if (md != null)
{
if (md.ReceivePDF.HasValue)
{
closeDateLists.Add(Convert.ToDateTime(md.ReceivePDF));//主控文档更新日期
}
}
closeDateLists.Sort();
if (closeDateLists.Count == 3)
{
eproject.ProjectControl_ClosedDate = closeDateLists[2];
eproject.ProjectControl_JobStatus = "Closed";
}
}
#endregion
}
if (epro.ProjectControl_JobStatus != eproject.ProjectControl_JobStatus)
{
operationLog += "Job Status 由" + epro.ProjectControl_JobStatus + "修改为" + eproject.ProjectControl_JobStatus + "";
}
operationLog += "操作成功!";
BLL.Sys_LogService.AddLog(this.CurrUser.UserId, operationLog);
epro.EProjectId = eproject.EProjectId;
BLL.EProjectService.UpdateProjectJobStatus(epro);
}
#endregion
#region
//--------邮件发送代码开始-----
Model.Editor_EProject ep = BLL.EProjectService.GeteProjectById(eprojectId);
if (ep != null)
{
//压力容器报备提醒
if (this.cbPM_PressureVessel.Checked && ep.ProjectControl_JobStatus.Equals("In Construction"))
{
string title = epro.ProjectControl_JobNo + "-压力管道报备提醒";
var ema = from x in Funs.DB.Email_SendLog where x.EmailTile.Contains(title) && x.EmailStatus.Contains("发送成功") select x;
if (ema.Count() == 0)
{
NameValueCollection nameValue = new NameValueCollection();
nameValue.Add("projectName", eproject.ProjectControl_JobTitle.ToString().Trim());
nameValue.Add("projectNo", eproject.ProjectControl_JobNo.ToString().Trim());
EmailSendMessage(eproject, BLL.Const.WPRString, nameValue, BLL.Const.CustomString, BLL.Const.NoprojectString);
}
}
//压力容器注册提醒
if (this.cbPM_PressureVessel.Checked && ep.ProjectControl_JobStatus.Equals("MC"))
{
string title = epro.ProjectControl_JobNo + "-压力容器注册提醒";
var ema = from x in Funs.DB.Email_SendLog where x.EmailTile.Contains(title) && x.EmailStatus.Contains("发送成功") select x;
if (ema.Count() == 0)
{
NameValueCollection nameValue = new NameValueCollection();
string Notile = ep.ProjectControl_JobTitle.ToString();
nameValue.Add("projectName", eproject.ProjectControl_JobTitle.ToString().Trim());
nameValue.Add("projectNo", eproject.ProjectControl_JobNo.ToString().Trim());
EmailSendMessage(eproject, BLL.Const.PVRRString, nameValue, BLL.Const.CustomString, BLL.Const.NoprojectString);
if (ep.CM_MA_MC.HasValue) //Pressure Vessel的PLAN时间自动 = MC + 3个月
{
ep.EProjectId = eprojectId;
ep.PM_PP_PressureVessel = ep.CM_MA_MC.Value.AddMonths(3);
BLL.EProjectService.UpdateProjectJobTime(ep);
}
}
}
//压力管道报备提醒
if (this.cbPM_PressurePiping.Checked && ep.ProjectControl_JobStatus.Equals("In Construction"))
{
string title = epro.ProjectControl_JobNo + "-压力管道报备提醒";
var ema = from x in Funs.DB.Email_SendLog where x.EmailTile.Contains(title) && x.EmailStatus.Contains("发送成功") select x;
if (ema.Count() == 0)
{
NameValueCollection nameValue = new NameValueCollection();
nameValue.Add("projectName", eproject.ProjectControl_JobTitle.ToString().Trim());
nameValue.Add("projectNo", eproject.ProjectControl_JobNo.ToString().Trim());
EmailSendMessage(eproject, BLL.Const.WPPString, nameValue, BLL.Const.CustomString, BLL.Const.NoprojectString);
}
}
if (this.cbPM_SQIB.Checked)//QIB监检提醒
{
string title = epro.ProjectControl_JobNo + "-QIB监检提醒";
var ema = from x in Funs.DB.Email_SendLog where x.EmailTile.Contains(title) && x.EmailStatus.Contains("发送成功") select x;
if (ema.Count() == 0)
{
NameValueCollection nameValue = new NameValueCollection();
nameValue.Add("projectName", eproject.ProjectControl_JobTitle.ToString().Trim());
nameValue.Add("projectNo", eproject.ProjectControl_JobNo.ToString().Trim());
EmailSendMessage(eproject, BLL.Const.QIBIRString, nameValue, BLL.Const.CustomString, BLL.Const.NoprojectString);
}
}
}
//--------邮件发送代码结束-----
#endregion
ShowNotify("Save Successfully!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
#endregion
#region
protected void txtPM_PressureVessel_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.txtPM_PressureVessel.Text))
{
this.cbPM_PressureVessel.Checked = true;
}
else
{
this.cbPM_PressureVessel.Checked = false;
}
}
protected void txtPM_PressurePiping_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.txtPM_PressurePiping.Text))
{
this.cbPM_PressurePiping.Checked = true;
}
else
{
this.cbPM_PressurePiping.Checked = false;
}
}
protected void txtPM_SQIB_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.txtPM_SQIB.Text))
{
this.cbPM_SQIB.Checked = true;
}
else
{
this.cbPM_SQIB.Checked = false;
}
}
#endregion
#region
protected void PressureVessel_OnCheckedChanged(object sender, EventArgs e)
{
string eprojectId = Request.Params["EProjectId"];
if (!string.IsNullOrEmpty(eprojectId))
{
Model.Editor_EProject ep = BLL.EProjectService.GeteProjectById(eprojectId);
//this.txtPM_PressurePiping.Text = ep.PM_PP_PressurePiping.HasValue ? Convert.ToDateTime(ep.PM_PP_PressurePiping).ToString("{yyyy-MM-dd}") : "";
string sQIB = string.Empty;
if (cbPM_PressureVessel.Checked)
{
if (!ep.PM_PP_PressureVessel.HasValue)
{
if (ep.CM_MA_MC.HasValue)
{
txtPM_PressureVessel.Text = (ep.CM_MA_MC.Value.AddMonths(3)).ToString("{yyyy-MM-dd}");
}
else
{
txtPM_PressureVessel.Text = "";
}
}
else
{
txtPM_PressureVessel.Text = Convert.ToDateTime(ep.PM_PP_PressureVessel).ToString("{yyyy-MM-dd}");
}
}
else
{
if (ep.PM_PP_PressureVessel.HasValue)
{
txtPM_PressureVessel.Text = Convert.ToDateTime(ep.PM_PP_PressureVessel).ToString("{yyyy-MM-dd}");
}
else
{
txtPM_PressureVessel.Text = "";
}
}
}
}
protected void PressurePiping_OnCheckedChanged(object sender, EventArgs e)
{
string eprojectId = Request.Params["EProjectId"];
if (!string.IsNullOrEmpty(eprojectId))
{
Model.Editor_EProject ep = BLL.EProjectService.GeteProjectById(eprojectId);
//this.txtPM_PressurePiping.Text = ep.PM_PP_PressurePiping.HasValue ? Convert.ToDateTime(ep.PM_PP_PressurePiping).ToString("{yyyy-MM-dd}") : "";
string pp = string.Empty;
if (cbPM_PressurePiping.Checked)
{
DateTime curDate = DateTime.Now.Date;
int curYear = curDate.Year;
if (!ep.PM_PP_PressurePiping.HasValue)
{
if (curDate <= Convert.ToDateTime(curDate.Year.ToString() + "-03-30"))
{
pp = curDate.Year.ToString() + "-03-30";
}
else
{
pp = (curDate.Year + 1).ToString() + "-03-30";
}
txtPM_PressurePiping.Text = pp;
}
else
{
txtPM_PressurePiping.Text = Convert.ToDateTime(ep.PM_PP_PressurePiping).ToString("{yyyy-MM-dd}");
}
}
else
{
if (ep.PM_PP_PressurePiping.HasValue)
{
txtPM_PressurePiping.Text = Convert.ToDateTime(ep.PM_PP_PressurePiping).ToString("{yyyy-MM-dd}");
}
else
{
txtPM_PressurePiping.Text = "";
}
}
}
}
protected void SQIB_OnCheckedChanged(object sender, EventArgs e)
{
string eprojectId = Request.Params["EProjectId"];
if (!string.IsNullOrEmpty(eprojectId))
{
Model.Editor_EProject ep = BLL.EProjectService.GeteProjectById(eprojectId);
//this.txtPM_PressurePiping.Text = ep.PM_PP_PressurePiping.HasValue ? Convert.ToDateTime(ep.PM_PP_PressurePiping).ToString("{yyyy-MM-dd}") : "";
string sQIB = string.Empty;
if (cbPM_SQIB.Checked)
{
if (!ep.PM_PP_SQIB.HasValue)
{
if (ep.ProjectControl_MS_MC.HasValue)
{
txtPM_SQIB.Text = (ep.ProjectControl_MS_MC.Value.AddMonths(2)).ToString("{yyyy-MM-dd}");
}
else
{
txtPM_SQIB.Text = "";
}
}
else
{
txtPM_SQIB.Text = Convert.ToDateTime(ep.PM_PP_SQIB).ToString("{yyyy-MM-dd}");
}
}
else
{
if (ep.PM_PP_SQIB.HasValue)
{
txtPM_SQIB.Text = Convert.ToDateTime(ep.PM_PP_SQIB).ToString("{yyyy-MM-dd}");
}
else
{
txtPM_SQIB.Text = "";
}
}
}
}
#endregion
#region
/// <summary>
/// 计算进度
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnCalculated_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(txtPM_LLEP_RevisedStart.Text.Trim()) && !string.IsNullOrEmpty(txtPM_LLEP_RevisedEnd.Text.Trim()))
{
decimal llep1 = 0;
decimal llep2 = 0;
llep1 = (DateTime.Now - Convert.ToDateTime(txtPM_LLEP_RevisedStart.Text.Trim())).Days;
llep2 = (Convert.ToDateTime(txtPM_LLEP_RevisedEnd.Text.Trim()) - Convert.ToDateTime(txtPM_LLEP_RevisedStart.Text.Trim())).Days;
if (llep2 != 0)
{
decimal progress = llep1 / llep2 * 100;
if (progress > 100)
{
txtPM_LLEP_ActualProgress.Text = "100";
}
else if (progress < 0)
{
txtPM_LLEP_ActualProgress.Text = "0";
}
else
{
txtPM_LLEP_ActualProgress.Text = progress.ToString();
}
}
}
}
#endregion
#region
/// <summary>
/// 菜单按钮权限
/// </summary>
private void GetButtonPower()
{
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.PMEditorMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnSave))
{
this.btnSave.Hidden = false;
this.btnCalculated.Hidden = false;
}
}
}
#endregion
#region
/// <summary>
/// 获取TDC中IFC专业
/// </summary>
/// <param name="dis"></param>
/// <returns></returns>
protected string ConvertActualIFC(object dis)
{
if (dis != null)
{
string eprojectId = Request.Params["EProjectId"];
var tdc = (from x in Funs.DB.Editor_TDC where x.EProjectId == eprojectId && x.Type == "D01_IFC" && x.Disc.Contains(dis.ToString()) select x).FirstOrDefault();
if (tdc != null)
{
return string.Format("{0:yyyy-MM-dd}", tdc.ReceiveHC);
}
}
return null;
}
#endregion
}
}