using BLL; using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using Model; namespace FineUIPro.Web.EditorManage { public partial class CMEditorEdit : PageBase { #region 加载 protected void Page_Load(object sender, EventArgs e) { string eprojectId = Request.Params["EProjectId"]; if (!IsPostBack) { string view = Request.Params["view"]; if (view == "1") { this.btnCalculated.Hidden = true; this.btnSave.Hidden = true; } else { // 特殊控制,不需要 // GetButtonPower();//权限设置 } btnClose.OnClientClick = ActiveWindow.GetHideReference(); Model.Editor_EProject ep = BLL.EProjectService.GeteProjectById(eprojectId); if (ep != null) { if (ep.CM_CC_RevisedStart.HasValue) { txtCM_CC_RevisedStart.Text = string.Format("{0:yyyy-MM-dd}", ep.CM_CC_RevisedStart); } else { if (ep.ProjectControl_CC_SchStart.HasValue) { this.txtCM_CC_RevisedStart.Text = string.Format("{0:yyyy-MM-dd}", ep.ProjectControl_CC_SchStart); } } if (ep.CM_CC_RevisedStartIsAct == true) { cbCM_CC_RevisedStart.Checked = true; } else { cbCM_CC_RevisedStart.Checked = false; } if (ep.CM_CC_RevisedEnd.HasValue) { txtCM_CC_RevisedEnd.Text= string.Format("{0:yyyy-MM-dd}", ep.CM_CC_RevisedEnd); } else { if (ep.ProjectControl_CC_SchEnd.HasValue) { txtCM_CC_RevisedEnd.Text = string.Format("{0:yyyy-MM-dd}", ep.ProjectControl_CC_SchEnd); } } if (ep.CM_CC_RevisedEndIsAct == true) { cbCM_CC_RevisedEnd.Checked = true; } else { cbCM_CC_RevisedEnd.Checked = false; } txtCM_CC_AcutalProgress.Text = ep.CM_CC_AcutalProgress.ToString(); if (ep.CM_CM_RevisedStart.HasValue) { txtCM_CM_RevisedStart.Text = string.Format("{0:yyyy-MM-dd}", ep.CM_CM_RevisedStart); } else { if (ep.ProjectControl_CM_SchStart.HasValue) { txtCM_CM_RevisedStart.Text = string.Format("{0:yyyy-MM-dd}", ep.ProjectControl_CM_SchStart); } } if (ep.CM_CM_RevisedStartIsAct == true) { cbCM_CM_RevisedStart.Checked = true; } else { cbCM_CM_RevisedStart.Checked = false; } if (ep.CM_CM_RevisedEnd.HasValue) { txtCM_CM_RevisedEnd.Text = string.Format("{0:yyyy-MM-dd}", ep.CM_CM_RevisedEnd); } else { if (ep.ProjectControl_CM_SchEnd.HasValue) { txtCM_CM_RevisedEnd.Text = string.Format("{0:yyyy-MM-dd}", ep.ProjectControl_CM_SchEnd); } } if (ep.CM_CM_RevisedEndIsAct == true) { cbCM_CM_RevisedEnd.Checked = true; } else { cbCM_CM_RevisedEnd.Checked = false; } txtCM_CM_AcutalProgress.Text = Convert.ToString(ep.CM_CM_AcutalProgress); txtCM_Cost.Text = ep.PM_General_CostToComplete.HasValue ? Convert.ToString(ep.PM_General_CostToComplete) : ""; if (ep.CM_Punch_CKilledDate.HasValue) { if (Convert.ToDateTime(ep.CM_Punch_CKilledDate) == Convert.ToDateTime("1900-01-01")) { chbNA.Checked = true; txtCM_Punch_CKilledDate.Enabled = false; txtCM_Punch_CKilledDate.Text = ""; } else { txtCM_Punch_CKilledDate.Enabled = true; txtCM_Punch_CKilledDate.Text = Convert.ToDateTime(ep.CM_Punch_CKilledDate).ToString("yyyy-MM-dd"); } } else { txtCM_Punch_CKilledDate.Text = ""; } txtCM_KickOffMetting.Text = ep.CM_KickOffMetting.HasValue ? Convert.ToDateTime(ep.CM_KickOffMetting).ToString("yyyy-MM-dd") : ""; txtCM_MA_MC.Text = ep.CM_MA_MC.HasValue ? Convert.ToDateTime(ep.CM_MA_MC).ToString("yyyy-MM-dd") : ""; //txtCM_FC.Text = ep.CM_FC.HasValue ? Convert.ToDateTime(ep.CM_FC).ToString("yyyy-MM-dd") : ""; txtCM_Remarks_Construction.Text = ep.CM_Remarks_Construction; txtCM_Remarks_Procurement.Text = ep.CM_Remarks_Procurement; txtCM_Remarks_QualityHSE.Text = ep.CM_Remarks_QualityHSE; txtDate_of_Registration.Text = ep.CM_Date_of_Registration.HasValue ? Convert.ToDateTime(ep.CM_Date_of_Registration).ToString("yyyy-MM-dd") : ""; if (!string.IsNullOrEmpty(ep.PM_Remarks_Procurement)) { this.lblPMProcurement.Text = "PM-Procurement:" + ep.PM_Remarks_Procurement; } btnCalculated_Click(null, null);//进度计算 } this.txtCM_KickOffMetting.MaxDate = DateTime.Now; // 如果CM_MA_MC有值,只有管理员可修改 if (ep.CM_MA_MC.HasValue && CurrUser.Account != Const.Gly) { txtCM_MA_MC.Enabled = false; } if (CurrUser.Account != Const.Gly && CurrUser.RoleId != Const.Role_PPE) { int curDay = DateTime.Now.Day; DateTime minDate = Convert.ToDateTime(DateTime.Now.Year + "-" + DateTime.Now.Month + "-01"); if (curDay >= 10) { txtCM_MA_MC.MinDate = minDate; txtCM_MA_MC.MaxDate = minDate.AddMonths(1).AddDays(-1); } else { txtCM_MA_MC.MinDate = minDate.AddMonths(-1); txtCM_MA_MC.MaxDate = DateTime.Now; } } this.txtCM_Punch_CKilledDate.MaxDate = DateTime.Now; this.txtDate_of_Registration.MaxDate = DateTime.Now; } } #endregion #region 保存 /// /// 保存按钮 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { string operationLog = string.Empty; string eprojectId = Request.Params["EProjectId"]; Model.Editor_EProject eproject = BLL.EProjectService.GeteProjectById(eprojectId); if (eproject != null) { #region 日志 operationLog = eproject.ProjectControl_JobNo + "_CM:"; if (eproject.CM_CC_RevisedStart != Funs.GetNewDateTime(this.txtCM_CC_RevisedStart.Text.Trim())) { operationLog += "Civil_F/A Start 由" + (eproject.CM_CC_RevisedStart == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.CM_CC_RevisedStart)) + "修改为" + this.txtCM_CC_RevisedStart.Text.Trim() + ","; } if ((eproject.CM_CC_RevisedStartIsAct.HasValue ? eproject.CM_CC_RevisedStartIsAct.Value : false) != cbCM_CC_RevisedStart.Checked) { operationLog += "Civil_F/A Start Actual 由" + (eproject.CM_CC_RevisedStartIsAct.HasValue ? eproject.CM_CC_RevisedStartIsAct.Value : false).ToString() + "修改为" + cbCM_CC_RevisedStart.Checked.ToString() + ","; } if (eproject.CM_CC_RevisedEnd != Funs.GetNewDateTime(this.txtCM_CC_RevisedEnd.Text.Trim())) { operationLog += "Civil_F/A End 由" + (eproject.CM_CC_RevisedEnd == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.CM_CC_RevisedEnd) + "修改为" + this.txtCM_CC_RevisedEnd.Text.Trim()) + ","; } if ((eproject.CM_CC_RevisedEndIsAct.HasValue ? eproject.CM_CC_RevisedEndIsAct.Value : false) != cbCM_CC_RevisedEnd.Checked) { operationLog += "Civil_F/A End Actual 由" + (eproject.CM_CC_RevisedEndIsAct.HasValue ? eproject.CM_CC_RevisedEndIsAct.Value : false).ToString() + "修改为" + cbCM_CC_RevisedEnd.Checked.ToString() + ","; } if (eproject.CM_CM_RevisedStart != Funs.GetNewDateTime(this.txtCM_CM_RevisedStart.Text.Trim())) { operationLog += "Mech./E&I_F/A Start 由" + (eproject.CM_CM_RevisedStart == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.CM_CM_RevisedStart)) + "修改为" + this.txtCM_CM_RevisedStart.Text.Trim() + ","; } if ((eproject.CM_CM_RevisedStartIsAct.HasValue ? eproject.CM_CM_RevisedStartIsAct.Value : false) != cbCM_CM_RevisedStart.Checked) { operationLog += "Mech./E&I_F/A Start Actual 由" + (eproject.CM_CM_RevisedStartIsAct.HasValue ? eproject.CM_CM_RevisedStartIsAct.Value : false).ToString() + "修改为" + cbCM_CM_RevisedStart.Checked.ToString() + ","; } if (eproject.CM_CM_RevisedEnd != Funs.GetNewDateTime(this.txtCM_CM_RevisedEnd.Text.Trim())) { operationLog += "Mech./E&I_F/A End 由" + (eproject.CM_CM_RevisedEnd == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.CM_CM_RevisedEnd)) + "修改为" + this.txtCM_CM_RevisedEnd.Text.Trim() + ","; } if ((eproject.CM_CM_RevisedEndIsAct.HasValue ? eproject.CM_CM_RevisedEndIsAct.Value : false) != cbCM_CM_RevisedEnd.Checked) { operationLog += "Mech./E&I_F/A End Actual 由" + (eproject.CM_CM_RevisedEndIsAct.HasValue ? eproject.CM_CM_RevisedEndIsAct.Value : false).ToString() + "修改为" + cbCM_CM_RevisedEnd.Checked.ToString() + ","; } if (eproject.CM_KickOffMetting != Funs.GetNewDateTime(this.txtCM_KickOffMetting.Text.Trim())) { operationLog += "Const.Kick-off Meeting 由" + (eproject.CM_KickOffMetting == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.CM_KickOffMetting)) + "修改为" + this.txtCM_KickOffMetting.Text.Trim() + ","; } if (eproject.CM_MA_MC != Funs.GetNewDateTime(this.txtCM_MA_MC.Text.Trim())) { operationLog += "MC 由" + (eproject.CM_MA_MC == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.CM_MA_MC) + "修改为" + this.txtCM_MA_MC.Text.Trim()) + ","; } if ((eproject.PM_General_CostToComplete != null || txtCM_Cost.Text != "") && eproject.PM_General_CostToComplete != Funs.GetNewDecimal(txtCM_Cost.Text.Trim())) { operationLog += "Cost to Complete 由" + (eproject.PM_General_CostToComplete != null ? eproject.PM_General_CostToComplete.Value.ToString() : "") + "修改为" + txtCM_Cost.Text + ","; } if (eproject.CM_Punch_CKilledDate != Funs.GetNewDateTime(this.txtCM_Punch_CKilledDate.Text.Trim())) { operationLog += "C Killed Date 由" + (eproject.CM_Punch_CKilledDate == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.CM_Punch_CKilledDate)) + "修改为" + this.txtCM_Punch_CKilledDate.Text.Trim() + ","; } if (eproject.CM_Date_of_Registration != Funs.GetNewDateTime(this.txtDate_of_Registration.Text.Trim())) { operationLog += "Date of Registration 由" + (eproject.CM_Date_of_Registration == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.CM_Date_of_Registration)) + "修改为" + this.txtDate_of_Registration.Text.Trim() + ","; } if ((!string.IsNullOrEmpty(eproject.CM_Remarks_Construction) || txtCM_Remarks_Construction.Text != "") && eproject.CM_Remarks_Construction != txtCM_Remarks_Construction.Text.Trim()) { operationLog += "Construction 由" + eproject.CM_Remarks_Construction + "修改为" + txtCM_Remarks_Construction.Text.Trim() + ","; } if ((!string.IsNullOrEmpty(eproject.CM_Remarks_Procurement) || txtCM_Remarks_Procurement.Text!="") && eproject.CM_Remarks_Procurement != txtCM_Remarks_Procurement.Text.Trim()) { operationLog += "Procurement 由" + eproject.CM_Remarks_Procurement + "修改为" + txtCM_Remarks_Procurement.Text.Trim() + ","; } if ((!string.IsNullOrEmpty(eproject.CM_Remarks_QualityHSE) || txtCM_Remarks_QualityHSE.Text!="") && eproject.CM_Remarks_QualityHSE != txtCM_Remarks_QualityHSE.Text.Trim()) { operationLog += "Quality&HSE 由" + eproject.CM_Remarks_QualityHSE + "修改为" + txtCM_Remarks_QualityHSE.Text.Trim() + ","; } #endregion eproject.EProjectId = eprojectId; eproject.CM_CC_RevisedStart = Funs.GetNewDateTime(txtCM_CC_RevisedStart.Text.Trim()); eproject.CM_CC_RevisedEnd = Funs.GetNewDateTime(txtCM_CC_RevisedEnd.Text.Trim()); if (cbCM_CC_RevisedStart.Checked) { eproject.CM_CC_RevisedStartIsAct = true; } else { eproject.CM_CC_RevisedStartIsAct = null; } if (cbCM_CC_RevisedEnd.Checked) { eproject.CM_CC_RevisedEndIsAct = true; } else { eproject.CM_CC_RevisedEndIsAct = null; } eproject.CM_CM_RevisedStart = Funs.GetNewDateTime(txtCM_CM_RevisedStart.Text.Trim()); eproject.CM_CM_RevisedEnd = Funs.GetNewDateTime(txtCM_CM_RevisedEnd.Text.Trim()); if (cbCM_CM_RevisedStart.Checked) { eproject.CM_CM_RevisedStartIsAct = true; } else { eproject.CM_CM_RevisedStartIsAct = null; } if (cbCM_CM_RevisedEnd.Checked) { eproject.CM_CM_RevisedEndIsAct = true; } else { eproject.CM_CM_RevisedEndIsAct = null; } btnCalculated_Click(null, null);//进度计算 if (txtCM_CC_AcutalProgress.Text.Trim() != string.Empty) { eproject.CM_CC_AcutalProgress = Convert.ToDecimal(txtCM_CC_AcutalProgress.Text.Trim()); } if (txtCM_CM_AcutalProgress.Text.Trim() != string.Empty) { eproject.CM_CM_AcutalProgress = Convert.ToDecimal(txtCM_CM_AcutalProgress.Text.Trim()); } eproject.PM_General_CostToComplete = Funs.GetNewDecimalOrZero(txtCM_Cost.Text.Trim()); eproject.CM_KickOffMetting = Funs.GetNewDateTime(txtCM_KickOffMetting.Text.Trim()); if (chbNA.Checked) { eproject.CM_Punch_CKilledDate = Convert.ToDateTime("1900-01-01"); } else { if (!string.IsNullOrEmpty(txtCM_Punch_CKilledDate.Text.Trim())) { eproject.CM_Punch_CKilledDate = Funs.GetNewDateTime(txtCM_Punch_CKilledDate.Text.Trim()); } else { eproject.CM_Punch_CKilledDate = null; } } if (!string.IsNullOrEmpty(txtCM_MA_MC.Text.Trim())) { eproject.CM_MA_MC = Funs.GetNewDateTime(txtCM_MA_MC.Text.Trim()); } else { eproject.CM_MA_MC = null; } eproject.CM_Remarks_Construction = txtCM_Remarks_Construction.Text.Trim(); eproject.CM_Remarks_Procurement = txtCM_Remarks_Procurement.Text.Trim(); eproject.CM_Remarks_QualityHSE = txtCM_Remarks_QualityHSE.Text.Trim(); eproject.CM_Date_of_Registration = Funs.GetNewDateTime(this.txtDate_of_Registration.Text.Trim()); eproject.ModifyDate = DateTime.Now; eproject.ModifyPerson = CurrUser.UserId; BLL.EProjectService.UpdateProject(eproject, "CM"); //更新Cost Report中CostToComplete //var costReports = BLL.CostReportService.GetCostReportByEProjectId(eproject.EProjectId); //if (costReports.Count > 0) //{ // //var costDate = costReports.Max(x => Convert.ToDateTime(x.Monthly).ToString("yyyy-MM")); // var costDate = costReports.Max(x => x.Monthly); // if (!string.IsNullOrEmpty(costDate)) // { // var newCost = BLL.CostReportService.GetCostReportByEProjectIdAndMonth(eproject.EProjectId, costDate); // if (newCost != null) // { // newCost.CostToComplete = eproject.PM_General_CostToComplete; // BLL.CostReportService.UpdateCostReport(newCost); // } // } //} #region 更新项目状态 //更新项目状态 var epro = BLL.EProjectService.GeteProjectById(eproject.EProjectId); if (epro != null) { //当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"; //} if (epro.CM_KickOffMetting.HasValue) { if (eproject.ProjectControl_JobStatus == null || eproject.ProjectControl_JobStatus == "" || eproject.ProjectControl_JobStatus == "In Procurement" || eproject.ProjectControl_JobStatus == "Detail Design" || eproject.ProjectControl_JobStatus == "On Going" || eproject.ProjectControl_JobStatus == "Study" || eproject.ProjectControl_JobStatus == "Not Start") { eproject.ProjectControl_JobStatus = "In Construction"; } } //当CM中、Milestones(Actual)的MC不为空时,状态为MC 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 == "Detail Design" || eproject.ProjectControl_JobStatus == "On Going" || eproject.ProjectControl_JobStatus == "Study" || eproject.ProjectControl_JobStatus == "Not Start") { eproject.ProjectControl_JobStatus = "MC"; } } //当Project_Control Manager中Business Closure-Close Date、CM中、Milestones(Actual)-MC、FC、Punch-C Killed Date都不为空时,状态为Closed //if (epro.ProjectControl_BC_CloseDate.HasValue && epro.CM_MA_MC.HasValue && epro.CM_FC.HasValue && epro.CM_Punch_CKilledDate.HasValue) //{ // epro.ProjectControl_ClosedDate = DateTime.Now; // epro.ProjectControl_JobStatus = "Closed"; //} 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); //发送邮件:当MOC状态为closed状态时,项目关闭,文件整理提醒 string closeEmailTitle = epro.ProjectControl_JobNo + "-项目关闭"; var closeem = from x in Funs.DB.Email_SendLog where x.EmailTile.Contains(closeEmailTitle) select x; if (closeem.Count() == 0) { if (epro.ProjectControl_JobType == "MOC" && epro.ProjectControl_JobStatus == "Closed") { NameValueCollection nameValue = new NameValueCollection(); nameValue.Add("projectName", epro.ProjectControl_JobTitle.ToString().Trim()); nameValue.Add("projectNo", epro.ProjectControl_JobNo.ToString().Trim()); EmailSendMessage(epro, BLL.Const.PCFSRString, nameValue, BLL.Const.CustomString, "3"); } } #region MC auto Mail邮件通知 //string mcEmailTitle = epro.ProjectControl_JobNo + " MC Compeleted"; var ema = from x in Funs.DB.Email_SendLog where x.EmailTile.Contains(epro.ProjectControl_JobNo) && x.EmailTile.Contains("MC") && x.EmailTile.Contains("Completed") && x.EmailStatus.Contains("发送成功") select x; if (ema.Count() == 0) { //项目类型为Projects或者是Small Invest 并且mcSigned不为空,当项目状态变为MC后 //string mcSigned6 = string.Empty; //var q = from x in Funs.DB.Editor_TDC where x.Type == "D11_MC" && x.ReceiveHC.HasValue && x.EProjectId == eprojectId orderby x.ReceiveHC descending select x; //if (q.Count() > 0) //{ // mcSigned6 = q.First().ReceiveHC.HasValue ? Convert.ToDateTime(q.First().ReceiveHC.Value.AddMonths(6)).ToString("yyyy-MM-dd") : ""; //} if ((epro.ProjectControl_JobType == "Projects" || epro.ProjectControl_JobType == "Small Invest" || epro.ProjectControl_JobType == "MOC") && epro.ProjectControl_JobStatus == "MC" && epro.CM_MA_MC.HasValue) { NameValueCollection nameValue = new NameValueCollection(); nameValue.Add("projectName", epro.ProjectControl_JobTitle.ToString().Trim()); nameValue.Add("projectNo", epro.ProjectControl_JobNo.ToString().Trim()); nameValue.Add("CM_MA_MC", epro.CM_MA_MC.HasValue ? Convert.ToDateTime(epro.CM_MA_MC).ToString("yyyy-MM-dd") : ""); nameValue.Add("projectBUCode", epro.ProjectControl_BUCode); nameValue.Add("CM_MA_MC6", epro.CM_MA_MC.HasValue ? Convert.ToDateTime(epro.CM_MA_MC).AddMonths(6).ToString("yyyy-MM-dd") : ""); //nameValue.Add("MC_Signed6", mcSigned6); Sys_User PMsys_User = BLL.Sys_UserService.GetUsersByUserId(epro.ProjectControl_ProjectManagerId); if (PMsys_User != null) { nameValue.Add("PMUserName", epro.ProjectControl_ProjectManager); nameValue.Add("PMChineseName", PMsys_User.ChineseName); } else { nameValue.Add("PMUserName", ""); nameValue.Add("PMChineseName", ""); } Sys_User EMsys_User = BLL.Sys_UserService.GetUsersByUserId(epro.ProjectControl_EMManagerId); if (EMsys_User != null) { nameValue.Add("EMUserName", epro.ProjectControl_EMManager); nameValue.Add("EMChineseName", EMsys_User.ChineseName); } else { nameValue.Add("EMUserName", ""); nameValue.Add("EMChineseName", ""); } Sys_User CMsys_User = BLL.Sys_UserService.GetUsersByUserId(epro.ProjectControl_ConstManagerId); if (CMsys_User != null) { nameValue.Add("CMUserName", epro.ProjectControl_ConstManager); nameValue.Add("CMChineseName", CMsys_User.ChineseName); } else { nameValue.Add("CMUserName", ""); nameValue.Add("CMChineseName", ""); } nameValue.Add("ProjectControl_FilesLink", epro.ProjectControl_FilesLink); EmailSendMessage(eproject, BLL.Const.MAM2String, nameValue, BLL.Const.CustomString); } #region 不用了 //除1情况以外的工作任务,当项目状态变为MC后 //if ((eproject.ProjectControl_JobType == "MOC" || eproject.ProjectControl_JobType == "Other") && eproject.ProjectControl_JobStatus == "MC") //{ // NameValueCollection nameValue = new NameValueCollection(); // nameValue.Add("projectName", epro.ProjectControl_JobTitle.ToString().Trim()); // nameValue.Add("projectNo", epro.ProjectControl_JobNo.ToString().Trim()); // nameValue.Add("MC MA_MC", epro.CM_MA_MC.HasValue ? Convert.ToDateTime(epro.CM_MA_MC).ToString("yyyy-MM-dd") : ""); // nameValue.Add("CM_MA_MC6", epro.CM_MA_MC.HasValue ? Convert.ToDateTime(epro.CM_MA_MC).AddMonths(6).ToString("yyyy-MM-dd") : ""); // nameValue.Add("projectBUCode", epro.ProjectControl_BUCode); // Sys_User PMsys_User = BLL.Sys_UserService.GetUserByUserName(epro.ProjectControl_ProjectManager); // if (PMsys_User != null) // { // nameValue.Add("PMUserName", epro.ProjectControl_ProjectManager); // nameValue.Add("PMChineseName", PMsys_User.ChineseName); // } // else // { // nameValue.Add("PMUserName", ""); // nameValue.Add("PMChineseName", ""); // } // Sys_User EMsys_User = BLL.Sys_UserService.GetUserByUserName(epro.ProjectControl_EMManager); // if (EMsys_User != null) // { // nameValue.Add("EMUserName", epro.ProjectControl_EMManager); // nameValue.Add("EMChineseName", EMsys_User.ChineseName); // } // else // { // nameValue.Add("EMUserName", ""); // nameValue.Add("EMChineseName", ""); // } // Sys_User CMsys_User = BLL.Sys_UserService.GetUserByUserName(epro.ProjectControl_ConstManager); // if (CMsys_User != null) // { // nameValue.Add("CMUserName", epro.ProjectControl_ConstManager); // nameValue.Add("CMChineseName", CMsys_User.ChineseName); // } // else // { // nameValue.Add("CMUserName", ""); // nameValue.Add("CMChineseName", ""); // } // nameValue.Add("ProjectControl_FilesLink", epro.ProjectControl_FilesLink); // EmailSendMessage(eproject, BLL.Const.MAM2String, nameValue, BLL.Const.CustomString); //} #endregion } #endregion } #endregion } ShowNotify("Save successfully!", MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } #endregion protected void chbNA_OnCheckedChanged(object sender, EventArgs e) { if (chbNA.Checked) { txtCM_Punch_CKilledDate.Text = string.Empty; txtCM_Punch_CKilledDate.Enabled = false; } else { txtCM_Punch_CKilledDate.Enabled = true; } } #region 计算进度 /// /// 计算进度 /// /// /// protected void btnCalculated_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(txtCM_CC_RevisedStart.Text.Trim()) && !string.IsNullOrEmpty(txtCM_CC_RevisedEnd.Text.Trim())) { decimal cc1 = 0; decimal cc2 = 0; cc1 = (DateTime.Now - Convert.ToDateTime(txtCM_CC_RevisedStart.Text.Trim())).Days; cc2 = (Convert.ToDateTime(txtCM_CC_RevisedEnd.Text.Trim()) - Convert.ToDateTime(txtCM_CC_RevisedStart.Text.Trim())).Days; if (cc2 != 0) { decimal progress = cc1 / cc2 * 100; if (progress > 100) { this.txtCM_CC_AcutalProgress.Text = "100"; } else if (progress < 0) { this.txtCM_CC_AcutalProgress.Text = "0"; } else { this.txtCM_CC_AcutalProgress.Text = progress.ToString(); } } } if (!string.IsNullOrEmpty(txtCM_CM_RevisedStart.Text.Trim()) && !string.IsNullOrEmpty(txtCM_CM_RevisedEnd.Text.Trim())) { decimal cm1 = 0; decimal cm2 = 0; cm1 = (DateTime.Now - Convert.ToDateTime(txtCM_CM_RevisedStart.Text.Trim())).Days; cm2 = (Convert.ToDateTime(txtCM_CM_RevisedEnd.Text.Trim()) - Convert.ToDateTime(txtCM_CM_RevisedStart.Text.Trim())).Days; if (cm2 != 0) { decimal progress = cm1 / cm2 * 100; if (progress > 100) { txtCM_CM_AcutalProgress.Text = "100"; } else if (progress < 0) { txtCM_CM_AcutalProgress.Text = "0"; } else { txtCM_CM_AcutalProgress.Text = progress.ToString(); } } } } #endregion #region 权限设置 /// /// 菜单按钮权限 /// private void GetButtonPower() { var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.CMEditorMenuId); if (buttonList.Count() > 0) { if (buttonList.Contains(BLL.Const.BtnSave)) { this.btnSave.Hidden = false; this.btnCalculated.Hidden = false; } } } #endregion } }