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

871 lines
49 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 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
/// <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"];
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<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);
//发送邮件当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
/// <summary>
/// 计算进度
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
/// <summary>
/// 菜单按钮权限
/// </summary>
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
}
}