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 定义集合
///
/// 定义计划工程师明细集合
///
private List projectControlLists = new List();
#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 pmList = BLL.PMService.GetPMByEprojectId(eprojectId);
if (pmList.Count > 0)
{
Grid1.DataSource = pmList;
Grid1.DataBind();
}
//当计划工程师编辑器中MC在3.30日之前,SQIB为3.30,MC在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绑定事件
///
/// Grid1中PID、Document、Cost Estimate不允许操作
///
///
///
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 保存
///
/// 保存按钮
///
///
///
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 list = new List();
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("values");
DateTime? ss = Funs.GetNewDateTime(values.Value("SchStart").ToString());
DateTime? se = Funs.GetNewDateTime(values.Value("SchEnd").ToString());
DateTime? rs = Funs.GetNewDateTime(values.Value("RevisedStart").ToString());
DateTime? re = Funs.GetNewDateTime(values.Value("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("RevisedStartIsAct"));
pm.RevisedEndIsAct= Convert.ToBoolean(values.Value("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 closeDateLists = new List();
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 closeDateLists = new List();
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 closeDateLists = new List();
// 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 closeDateLists = new List();
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 计算进度
///
/// 计算进度
///
///
///
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 权限设置
///
/// 菜单按钮权限
///
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 格式化字符串
///
/// 获取TDC中IFC专业
///
///
///
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
}
}