using BLL; using Model; using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; namespace FineUIPro.Web.EditorManage { public partial class ProjectControlEditorEdit : PageBase { #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();//权限设置 } this.btnClose.OnClientClick = ActiveWindow.GetHideReference(); #region 加载下拉框 BLL.ConstService.InitConstValueDropDownList(this.drpJobType, BLL.Const.ProjectPlanner_JobType, true);//项目类型 BLL.ConstService.InitConstValueDropDownList(this.drpJobStatus, BLL.Const.ProjectPlanner_JobStatus, false); //项目状态 BLL.DepartService.InitDepartDropDownList(this.drpBuCode, true);//部门 BLL.Sys_UserService.InitUserDrpNA(this.drpProjectManager, true); //项目经理 BLL.Sys_UserService.InitUserDrpNA(this.drpEMManager, true); //EM BLL.Sys_UserService.InitUserDrpNA(this.drpConstManager, true);//施工经理 BLL.Sys_UserService.InitUserDropDownList(this.drpOpre, true);//操作代表 BLL.Sys_UserService.InitDropDownList(this.drpLeadBy, true); BLL.Sys_UserService.InitUserDropDownList(this.drpCIProcess, true); BLL.Sys_UserService.InitUserDropDownList(this.drpEquipment, true); BLL.Sys_UserService.InitUserDropDownList(this.drpInstrument, true); BLL.Sys_UserService.InitUserDropDownList(this.drpElectrical, true); BLL.Sys_UserService.InitUserDropDownList(this.drpCivil, true); BLL.ConstService.InitConstValueDropDownList(this.drpPM_General_Priority, BLL.Const.PM_Priority, true); #endregion this.txtBC_CloseDate.MaxDate = DateTime.Now; this.txtResourcePlanReceived.MaxDate = DateTime.Now; this.txtCancelDate.MaxDate = DateTime.Now; string eProjectId = Request.Params["eProjectId"]; if (!string.IsNullOrEmpty(eProjectId)) { Model.Editor_EProject eproject = BLL.EProjectService.GeteProjectById(eProjectId); if (eproject != null) { if (eproject.ProjectControl_JobType == "Other") { this.drpProjectManager.Items.Clear(); this.drpConstManager.Items.Clear(); this.drpOpre.Items.Clear(); this.drpEMManager.Items.Clear(); //this.drpLeadBy.Items.Clear(); this.drpProjectManager.EnableGroup = false; this.drpConstManager.EnableGroup = false; this.drpOpre.EnableGroup = false; this.drpEMManager.EnableGroup = false; //this.drpLeadBy.EnableGroup = false; BLL.Sys_UserService.InitDrpNA(this.drpProjectManager, true); BLL.Sys_UserService.InitDrpNA(this.drpConstManager, true); BLL.Sys_UserService.InitDropDownList(this.drpOpre, true); BLL.Sys_UserService.InitDrpNA(this.drpEMManager, true); //BLL.Sys_UserService.InitDropDownList(this.drpLeadBy, true); this.drpProjectManager.SelectedIndex = 0; this.drpConstManager.SelectedIndex = 0; this.drpOpre.SelectedIndex = 0; //this.drpLeadBy.SelectedIndex = 0; this.drpEMManager.SelectedIndex = 0; } this.txtJobNo.Text = eproject.ProjectControl_JobNo; if (!string.IsNullOrEmpty(eproject.ProjectControl_BUCode)) { this.drpBuCode.SelectedValue = BLL.DepartService.GetDepartByName(eproject.ProjectControl_BUCode).DepartId; } this.txtNotesLink.Text = eproject.ProjectControl_NotesLink; this.txtFilesLink.Text = eproject.ProjectControl_FilesLink; if (!string.IsNullOrEmpty(eproject.ProjectControl_ConstManagerId) && eproject.ProjectControl_ConstManagerId != null) { this.drpConstManager.SelectedValue = eproject.ProjectControl_ConstManagerId.Trim(); } if (!string.IsNullOrEmpty(eproject.ProjectControl_JobType.Trim())) { this.drpJobType.SelectedValue = BLL.ConstService.GetConstListByTextAndGroupId(eproject.ProjectControl_JobType.Trim(), BLL.Const.ProjectPlanner_JobType).ConstValue; } this.txtOrginalBudget.Text = eproject.ProjectControl_OrginalBudget == null ? "" : Convert.ToInt32(eproject.ProjectControl_OrginalBudget).ToString(); if (!string.IsNullOrEmpty(eproject.ProjectControl_EMManagerId) && eproject.ProjectControl_EMManagerId != null) { this.drpEMManager.SelectedValue = eproject.ProjectControl_EMManagerId.Trim(); } if (!string.IsNullOrEmpty(eproject.ProjectControl_JobStatus) && eproject.ProjectControl_JobStatus != null) { this.drpJobStatus.SelectedValue = BLL.ConstService.GetConstListByTextAndGroupId(eproject.ProjectControl_JobStatus.Trim(), BLL.Const.ProjectPlanner_JobStatus).ConstValue; } this.txtAccount.Text = eproject.ProjectControl_Account; this.hdAccount.Text = eproject.ProjectControl_Account; this.txtJobTitle.Text = eproject.ProjectControl_JobTitle; this.txtPVIPrediction.Text = eproject.ProjectControl_PVIPrediction == null ? "" : eproject.ProjectControl_PVIPrediction.ToString(); this.txtCostEffectvitity.Text = eproject.ProjectControl_CostEffectvitity; this.txtMOCFormNO.Text = eproject.ProjectControl_MOCFormNo; if (!string.IsNullOrEmpty(eproject.ProjectControl_LeadBy) && eproject.ProjectControl_LeadBy != null) { this.drpLeadBy.SelectedValue = eproject.ProjectControl_LeadBy.Trim(); } if (!string.IsNullOrEmpty(eproject.ProjectControl_OperationRepId) && eproject.ProjectControl_OperationRepId != null) { this.drpOpre.SelectedValue = eproject.ProjectControl_OperationRepId.Trim(); } this.txtNetworkNo.Text = eproject.ProjectControl_NetworkNo; this.hdNetworkDate.Text = eproject.ProjectControl_NetworkDate == null ? "" : eproject.ProjectControl_NetworkDate.ToString(); if (!string.IsNullOrEmpty(eproject.ProjectControl_ProjectManagerId) && eproject.ProjectControl_ProjectManagerId != null) { this.drpProjectManager.SelectedValue = eproject.ProjectControl_ProjectManagerId.Trim(); } if (!string.IsNullOrEmpty(eproject.PM_General_Priority)) { drpPM_General_Priority.SelectedValue = BLL.ConstService.GetConstListByTextAndGroupId(eproject.PM_General_Priority, BLL.Const.PM_Priority).ConstValue; } this.txtRemark.Text = eproject.ProjectControl_Remarks; this.txtLPSchStart.Text = eproject.ProjectControl_LP_SchStart == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.ProjectControl_LP_SchStart); this.txtLPSchEnd.Text = eproject.ProjectControl_LP_SchEnd == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.ProjectControl_LP_SchEnd); this.txtLPProgress.Text = eproject.ProjectControl_LP_Progress == null ? "" : eproject.ProjectControl_LP_Progress.ToString(); this.txtCCSchStart.Text = eproject.ProjectControl_CC_SchStart == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.ProjectControl_CC_SchStart); this.txtCCSchEnd.Text = eproject.ProjectControl_CC_SchEnd == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.ProjectControl_CC_SchEnd); this.txtCCProgress.Text = eproject.ProjectControl_CC_Progress == null ? "" : eproject.ProjectControl_CC_Progress.ToString(); this.txtCMSchStart.Text = eproject.ProjectControl_CM_SchStart == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.ProjectControl_CM_SchStart); this.txtCMSchEnd.Text = eproject.ProjectControl_CM_SchEnd == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.ProjectControl_CM_SchEnd); this.txtCMProgress.Text = eproject.ProjectControl_CM_Progress == null ? "" : eproject.ProjectControl_CM_Progress.ToString(); if (!string.IsNullOrEmpty(eproject.ProjectControl_CI_Process) && eproject.ProjectControl_CI_Process != null) { this.drpCIProcess.SelectedValue = eproject.ProjectControl_CI_Process.Trim(); } if (!string.IsNullOrEmpty(eproject.ProjectControl_CI_Equipment) && eproject.ProjectControl_CI_Equipment != null) { this.drpEquipment.SelectedValue = eproject.ProjectControl_CI_Equipment.Trim(); } if (!string.IsNullOrEmpty(eproject.ProjectControl_CI_Instrument) && eproject.ProjectControl_CI_Instrument != null) { this.drpInstrument.SelectedValue = eproject.ProjectControl_CI_Instrument.Trim(); } if (!string.IsNullOrEmpty(eproject.ProjectControl_CI_Electrical) && eproject.ProjectControl_CI_Electrical != null) { this.drpElectrical.SelectedValue = eproject.ProjectControl_CI_Electrical.Trim(); } if (!string.IsNullOrEmpty(eproject.ProjectControl_CI_Civil) && eproject.ProjectControl_CI_Civil != null) { this.drpCivil.SelectedValue = eproject.ProjectControl_CI_Civil.Trim(); } this.txtChangedBudget.Text = eproject.ProjectControl_ChangedBudget == null ? "" : eproject.ProjectControl_ChangedBudget.ToString(); this.txtCommitted_PRPO.Text = eproject.ProjectControl_CommittedPRPO == null ? "" : eproject.ProjectControl_CommittedPRPO.ToString(); this.txtCommitted_SSRs.Text = eproject.ProjectControl_CommittedSSRs == null ? "" : eproject.ProjectControl_CommittedSSRs.ToString(); this.txtActual.Text = eproject.ProjectControl_Actual == null ? "" : eproject.ProjectControl_Actual.ToString(); this.txtResourcePlanReceived.Text = eproject.ProjectControl_MS_ResourcePlanReceived == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.ProjectControl_MS_ResourcePlanReceived); this.txtMS_SR.Text = eproject.ProjectControl_MS_SR == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.ProjectControl_MS_SR); this.txtMS_Approval.Text = eproject.ProjectControl_MS_Approval == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.ProjectControl_MS_Approval); this.txtMS_MC.Text = eproject.ProjectControl_MS_MC == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.ProjectControl_MS_MC); this.txtMS_Close.Text = eproject.ProjectControl_MS_Close == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.ProjectControl_MS_Close); txtPM_SC_ApprovedQty.Text = Convert.ToString(eproject.PM_SC_ApprovedQty); txtPM_SC_ApprovedCost.Text = Convert.ToString(eproject.PM_SC_ApprovedCost); txtPM_SC_PendingQty.Text = Convert.ToString(eproject.PM_SC_PendingQty); txtPM_SC_PendingCost.Text = Convert.ToString(eproject.PM_SC_PendingCost); this.txtBC_CloseDate.Text = eproject.ProjectControl_BC_CloseDate == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.ProjectControl_BC_CloseDate); this.txtCancelDate.Text = eproject.ProjectControl_PC_CancelDate == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.ProjectControl_PC_CancelDate); this.txtHold.Text = eproject.Job_Hold == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.Job_Hold); this.txtCAPEXPlanNo.Text = eproject.CAPEXPlanNo; this.txtStudyWo.Text = eproject.StudyWo; this.drpCTEInvolved.SelectedValue = eproject.CTEInvolved; txtRevisedMCDate.Text = eproject.ProjectControl_Revised_MC_Date == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.ProjectControl_Revised_MC_Date); btnCalculated_Click(null, null);//计算进度 } } else { string prefixCode = DateTime.Now.ToString("yy"); this.txtJobNo.Text = BLL.SQLHelper.RunProcNewId("SpGetNewCode3", "dbo.Editor_EProject", "ProjectControl_JobNo", prefixCode); this.drpJobStatus.SelectedValue = "Not Start"; } } } #endregion #region 保存 /// /// 保存按钮 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { if (this.drpJobType.SelectedValue == BLL.Const._Null) { Alert.ShowInTop("Please select Job type!", MessageBoxIcon.Warning); return; } if (this.drpJobStatus.SelectedValue == BLL.Const._Null) { Alert.ShowInTop("Please select Job status!", MessageBoxIcon.Warning); return; } if (this.drpBuCode.SelectedValue == BLL.Const._Null) { Alert.ShowInTop("Please select Bu.Code!", MessageBoxIcon.Warning); return; } if (this.drpLeadBy.SelectedValue == BLL.Const._Null) { Alert.ShowInTop("Please select Lead By!", MessageBoxIcon.Warning); return; } string operationLog = string.Empty; Model.Editor_EProject pro = null; string eProjectId = Request.Params["eProjectId"]; if (!string.IsNullOrEmpty(eProjectId)) { pro = BLL.EProjectService.GeteProjectById(eProjectId); operationLog = pro.ProjectControl_JobNo + "_Project Control:"; } Model.Editor_EProject eProject = new Model.Editor_EProject(); eProject.ProjectControl_JobNo = this.txtJobNo.Text.Trim(); eProject.ProjectControl_NotesLink = this.txtNotesLink.Text.Trim(); eProject.ProjectControl_FilesLink = this.txtFilesLink.Text.Trim(); if (this.drpConstManager.SelectedValue != BLL.Const._Null) { eProject.ProjectControl_ConstManagerId = this.drpConstManager.SelectedValue; eProject.ProjectControl_ConstManager = this.drpConstManager.SelectedItem.Text; } eProject.ProjectControl_JobType = this.drpJobType.SelectedItem.Text; eProject.ProjectControl_OrginalBudget = Funs.GetNewIntOrZero(this.txtOrginalBudget.Text.Trim()); if (this.drpEMManager.SelectedValue != BLL.Const._Null) { eProject.ProjectControl_EMManagerId = this.drpEMManager.SelectedValue; eProject.ProjectControl_EMManager = this.drpEMManager.SelectedItem.Text; } eProject.ProjectControl_JobStatus = this.drpJobStatus.SelectedItem.Text; eProject.ProjectControl_Account = this.txtAccount.Text.Trim(); eProject.ProjectControl_JobTitle = this.txtJobTitle.Text.Trim(); eProject.ProjectControl_PVIPrediction = Funs.GetNewDecimalOrZero(this.txtPVIPrediction.Text); eProject.ProjectControl_BUCode = this.drpBuCode.SelectedItem.Text; eProject.ProjectControl_CostEffectvitity = this.txtCostEffectvitity.Text.Trim(); eProject.ProjectControl_MOCFormNo = this.txtMOCFormNO.Text.Trim(); if (this.drpLeadBy.SelectedValue != BLL.Const._Null) { eProject.ProjectControl_LeadBy = this.drpLeadBy.SelectedValue; eProject.ProjectControl_LeadByName = this.drpLeadBy.SelectedItem.Text.Trim(); } if (this.drpOpre.SelectedValue != BLL.Const._Null) { eProject.ProjectControl_OperationRepId = this.drpOpre.SelectedValue; eProject.ProjectControl_OperationRep = this.drpOpre.SelectedItem.Text; } eProject.ProjectControl_NetworkNo = this.txtNetworkNo.Text; if (this.drpProjectManager.SelectedValue != BLL.Const._Null) { eProject.ProjectControl_ProjectManagerId = this.drpProjectManager.SelectedValue; eProject.ProjectControl_ProjectManager = this.drpProjectManager.SelectedItem.Text; } if (this.drpPM_General_Priority.SelectedValue != BLL.Const._Null) { eProject.PM_General_Priority = drpPM_General_Priority.SelectedItem.Text; } else { eProject.PM_General_Priority = null; } eProject.ProjectControl_Remarks = this.txtRemark.Text.Trim(); eProject.ProjectControl_LP_SchStart = Funs.GetNewDateTime(this.txtLPSchStart.Text.Trim()); eProject.ProjectControl_LP_SchEnd = Funs.GetNewDateTime(this.txtLPSchEnd.Text.Trim()); #region 不用了,直接调用btnCalculated_Click //if (!string.IsNullOrEmpty(this.txtLPProgress.Text.Trim())) //{ // eProject.ProjectControl_LP_Progress = Funs.GetNewDecimal(this.txtLPProgress.Text.Trim()); //} //else //{ // decimal lp1 = 0; // decimal lp2 = 0; // if (eProject.ProjectControl_LP_SchStart.HasValue) // { // lp1 = (DateTime.Now - eProject.ProjectControl_LP_SchStart).Value.Days; // } // if (eProject.ProjectControl_LP_SchEnd.HasValue) // { // lp2 = (eProject.ProjectControl_LP_SchEnd - eProject.ProjectControl_LP_SchStart).Value.Days; // } // if (lp2 != 0) // { // decimal progress = lp1 / lp2 * 100; // if (progress > 100) // { // eProject.ProjectControl_LP_Progress = 100; // } // else if (progress < 0) // { // eProject.ProjectControl_LP_Progress = 0; // } // else // { // eProject.ProjectControl_LP_Progress = Funs.GetNewDecimalOrZero(progress.ToString()); // } // } //} //if (!string.IsNullOrEmpty(this.txtCCProgress.Text.Trim())) //{ // eProject.ProjectControl_CC_Progress = Funs.GetNewDecimal(this.txtCCProgress.Text.Trim()); //} //else //{ // decimal cc1 = 0; // decimal cc2 = 0; // if (eProject.ProjectControl_CC_SchStart.HasValue) // { // cc1 = (DateTime.Now - eProject.ProjectControl_CC_SchStart).Value.Days; // } // if (eProject.ProjectControl_CC_SchEnd.HasValue) // { // cc2 = (eProject.ProjectControl_CC_SchEnd - eProject.ProjectControl_CC_SchStart).Value.Days; // } // if (cc2 != 0) // { // decimal progress = cc1 / cc2 * 100; // if (progress > 100) // { // eProject.ProjectControl_CC_Progress = 100; // } // else if (progress < 0) // { // eProject.ProjectControl_CC_Progress = 0; // } // else // { // eProject.ProjectControl_CC_Progress = Funs.GetNewDecimalOrZero(progress.ToString()); // } // } //} //if (!string.IsNullOrEmpty(txtCMProgress.Text.Trim())) //{ // eProject.ProjectControl_CM_Progress = Funs.GetNewDecimal(txtCMProgress.Text.Trim()); //} //else //{ // decimal cm1 = 0; // decimal cm2 = 0; // if (eProject.ProjectControl_CM_SchStart.HasValue) // { // cm1 = (DateTime.Now - eProject.ProjectControl_CM_SchStart).Value.Days; // } // if (eProject.ProjectControl_CM_SchEnd.HasValue) // { // cm2 = (eProject.ProjectControl_CM_SchEnd - eProject.ProjectControl_CM_SchStart).Value.Days; // } // if (cm2 != 0) // { // decimal progress = cm1 / cm2 * 100; // if (progress > 100) // { // eProject.ProjectControl_CM_Progress = 100; // } // else if (progress < 0) // { // eProject.ProjectControl_CM_Progress = 0; // } // else // { // eProject.ProjectControl_CM_Progress = Funs.GetNewDecimalOrZero(progress.ToString()); // } // } //} #endregion btnCalculated_Click(null, null);//进度计算 if (txtLPProgress.Text.Trim() != string.Empty) { eProject.ProjectControl_LP_Progress = Convert.ToDecimal(txtLPProgress.Text.Trim()); } if (txtCCProgress.Text.Trim() != string.Empty) { eProject.ProjectControl_CC_Progress = Convert.ToDecimal(txtCCProgress.Text.Trim()); } if (txtCMProgress.Text.Trim() != string.Empty) { eProject.ProjectControl_CM_Progress = Convert.ToDecimal(txtCMProgress.Text.Trim()); } if (!string.IsNullOrEmpty(eProjectId)) { if (!pro.PM_LLEP_RevisedStart.HasValue) { eProject.PM_LLEP_RevisedStart = Funs.GetNewDateTime(this.txtLPSchStart.Text.Trim()); } else { eProject.PM_LLEP_RevisedStart = pro.PM_LLEP_RevisedStart; } if (!pro.PM_LLEP_RevisedEnd.HasValue) { eProject.PM_LLEP_RevisedEnd = Funs.GetNewDateTime(this.txtLPSchEnd.Text.Trim()); } else { eProject.PM_LLEP_RevisedEnd = pro.PM_LLEP_RevisedEnd; } if (!pro.PM_LLEP_ActualProgress.HasValue) { eProject.PM_LLEP_ActualProgress = eProject.ProjectControl_LP_Progress; } else { eProject.PM_LLEP_ActualProgress = pro.PM_LLEP_ActualProgress; } if (!pro.CM_CC_RevisedStart.HasValue) { eProject.CM_CC_RevisedStart = Funs.GetNewDateTime(this.txtCCSchStart.Text.Trim()); } else { eProject.CM_CC_RevisedStart = pro.CM_CC_RevisedStart; } if (!pro.CM_CM_RevisedEnd.HasValue) { eProject.CM_CM_RevisedEnd = Funs.GetNewDateTime(this.txtCCSchEnd.Text.Trim()); } else { eProject.CM_CM_RevisedEnd = pro.CM_CM_RevisedEnd; } if (!pro.CM_CC_AcutalProgress.HasValue) { eProject.CM_CC_AcutalProgress = eProject.ProjectControl_CC_Progress; } else { eProject.CM_CC_AcutalProgress = pro.CM_CC_AcutalProgress; } if (!pro.CM_CM_RevisedStart.HasValue) { eProject.CM_CM_RevisedStart = Funs.GetNewDateTime(this.txtCMSchStart.Text.Trim()); } else { eProject.CM_CM_RevisedStart = pro.CM_CM_RevisedStart; } if (!pro.CM_CM_RevisedEnd.HasValue) { eProject.CM_CM_RevisedEnd = Funs.GetNewDateTime(this.txtCMSchEnd.Text.Trim()); } else { eProject.CM_CM_RevisedEnd = pro.CM_CM_RevisedEnd; } if (!pro.CM_CM_AcutalProgress.HasValue) { eProject.CM_CM_AcutalProgress = eProject.ProjectControl_CM_Progress; } else { eProject.CM_CM_AcutalProgress = pro.CM_CM_AcutalProgress; } } else { eProject.PM_LLEP_RevisedStart = Funs.GetNewDateTime(this.txtLPSchStart.Text.Trim()); eProject.PM_LLEP_RevisedEnd = Funs.GetNewDateTime(this.txtLPSchEnd.Text.Trim()); eProject.PM_LLEP_ActualProgress = eProject.ProjectControl_LP_Progress; eProject.CM_CC_RevisedStart = Funs.GetNewDateTime(this.txtCCSchStart.Text.Trim()); eProject.CM_CM_RevisedEnd = Funs.GetNewDateTime(this.txtCCSchEnd.Text.Trim()); eProject.CM_CC_AcutalProgress = eProject.ProjectControl_CC_Progress; eProject.CM_CM_RevisedStart = Funs.GetNewDateTime(this.txtCMSchStart.Text.Trim()); eProject.CM_CM_AcutalProgress = eProject.ProjectControl_CM_Progress; } eProject.ProjectControl_CC_SchStart = Funs.GetNewDateTime(this.txtCCSchStart.Text.Trim()); eProject.ProjectControl_CC_SchEnd = Funs.GetNewDateTime(this.txtCCSchEnd.Text.Trim()); eProject.ProjectControl_CM_SchStart = Funs.GetNewDateTime(this.txtCMSchStart.Text.Trim()); eProject.ProjectControl_CM_SchEnd = Funs.GetNewDateTime(this.txtCMSchEnd.Text.Trim()); if (this.drpCIProcess.SelectedValue != BLL.Const._Null) { eProject.ProjectControl_CI_Process = this.drpCIProcess.SelectedValue; eProject.ProjectControl_CI_ProcessName = this.drpCIProcess.SelectedItem.Text; } if (this.drpEquipment.SelectedValue != BLL.Const._Null) { eProject.ProjectControl_CI_Equipment = this.drpEquipment.SelectedValue; eProject.ProjectControl_CI_EquipmentName = this.drpEquipment.SelectedItem.Text; } if (this.drpInstrument.SelectedValue != BLL.Const._Null) { eProject.ProjectControl_CI_Instrument = this.drpInstrument.SelectedValue; eProject.ProjectControl_CI_InstrumentName = this.drpInstrument.SelectedItem.Text; } if (this.drpElectrical.SelectedValue != BLL.Const._Null) { eProject.ProjectControl_CI_Electrical = this.drpElectrical.SelectedValue; eProject.ProjectControl_CI_ElectricalName = this.drpElectrical.SelectedItem.Text; } if (this.drpCivil.SelectedValue != BLL.Const._Null) { eProject.ProjectControl_CI_Civil = this.drpCivil.SelectedValue; eProject.ProjectControl_CI_CivilName = this.drpCivil.SelectedItem.Text; } if (!string.IsNullOrEmpty(txtRevisedMCDate.Text)) { eProject.ProjectControl_Revised_MC_Date = Funs.GetNewDateTime(this.txtRevisedMCDate.Text.Trim()); } else { eProject.ProjectControl_Revised_MC_Date = Funs.GetNewDateTime(this.txtMS_MC.Text.Trim()); } eProject.ProjectControl_ChangedBudget = Funs.GetNewDecimalOrZero(this.txtChangedBudget.Text.Trim()); eProject.ProjectControl_CommittedPRPO = Funs.GetNewDecimalOrZero(this.txtCommitted_PRPO.Text.Trim()); eProject.ProjectControl_CommittedSSRs = Funs.GetNewDecimalOrZero(this.txtCommitted_SSRs.Text.Trim()); eProject.ProjectControl_Actual = Funs.GetNewDecimalOrZero(this.txtActual.Text.Trim()); eProject.ProjectControl_MS_ResourcePlanReceived = Funs.GetNewDateTime(this.txtResourcePlanReceived.Text.Trim()); eProject.ProjectControl_MS_SR = Funs.GetNewDateTime(this.txtMS_SR.Text.Trim()); eProject.ProjectControl_MS_Approval = Funs.GetNewDateTime(this.txtMS_Approval.Text.Trim()); eProject.ProjectControl_MS_MC = Funs.GetNewDateTime(this.txtMS_MC.Text.Trim()); eProject.ProjectControl_MS_Close = Funs.GetNewDateTime(this.txtMS_Close.Text.Trim()); eProject.Job_Hold = Funs.GetNewDateTime(this.txtHold.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()); if (!string.IsNullOrEmpty(this.txtBC_CloseDate.Text.Trim())) { eProject.ProjectControl_BC_CloseDate = Funs.GetNewDateTime(this.txtBC_CloseDate.Text.Trim()); eProject.PM_General_CostToComplete = 0; } else { if (pro != null && pro.PM_General_CostToComplete != null) { eProject.PM_General_CostToComplete = pro.PM_General_CostToComplete; } } eProject.ProjectControl_PC_CancelDate = Funs.GetNewDateTime(this.txtCancelDate.Text.Trim()); eProject.CAPEXPlanNo = this.txtCAPEXPlanNo.Text.Trim(); eProject.CTEInvolved = this.drpCTEInvolved.SelectedValue; eProject.StudyWo = this.txtStudyWo.Text.Trim(); if (!string.IsNullOrEmpty(eProjectId)) { if (BLL.EProjectService.IsExitJobNoById(eProject.ProjectControl_JobNo, eProjectId)) { eProject.EProjectId = eProjectId; eProject.ModifyDate = DateTime.Now; eProject.ModifyPerson = CurrUser.UserId; if ((pro.ProjectControl_JobType != null || drpJobType.SelectedValue != Const._Null) && pro.ProjectControl_JobType != drpJobType.SelectedItem.Text) { operationLog += "Job Type 由" + pro.ProjectControl_JobType + "修改为" + drpJobType.SelectedItem.Text + ","; } if ((pro.ProjectControl_JobStatus != null || drpJobStatus.SelectedValue != Const._Null) && pro.ProjectControl_JobStatus != drpJobStatus.SelectedItem.Text) { operationLog += "Job Status 由" + pro.ProjectControl_JobStatus + "修改为" + drpJobStatus.SelectedItem.Text + ","; } if ((pro.ProjectControl_ProjectManager != null || drpProjectManager.SelectedValue != Const._Null) && pro.ProjectControl_ProjectManagerId != drpProjectManager.SelectedValue) { operationLog += "PM 由" + pro.ProjectControl_ProjectManager + "修改为" + drpProjectManager.SelectedItem.Text + ","; } if ((pro.ProjectControl_EMManager != null || drpEMManager.SelectedValue != Const._Null) && pro.ProjectControl_EMManagerId != drpEMManager.SelectedValue) { operationLog += "EM 由" + pro.ProjectControl_EMManager + "修改为" + drpEMManager.SelectedItem.Text + ","; } if ((pro.ProjectControl_ConstManager != null || drpConstManager.SelectedValue != Const._Null) && pro.ProjectControl_ConstManagerId != drpConstManager.SelectedValue) { operationLog += "CM 由" + pro.ProjectControl_ConstManager + "修改为" + drpConstManager.SelectedItem.Text + ","; } if ((pro.ProjectControl_LeadBy != null || drpLeadBy.SelectedValue != Const._Null) && pro.ProjectControl_LeadBy != drpLeadBy.SelectedValue) { operationLog += "Lead By 由" + pro.ProjectControl_LeadByName + "修改为" + drpLeadBy.SelectedItem.Text + ","; } if ((pro.ProjectControl_OperationRepId != null || drpOpre.SelectedValue != Const._Null) && pro.ProjectControl_OperationRepId != drpOpre.SelectedValue) { operationLog += "Operation Rep 由" + pro.ProjectControl_OperationRep + "修改为" + drpOpre.SelectedItem.Text + ","; } if (pro.ProjectControl_OrginalBudget != Funs.GetNewDecimalOrZero(this.txtOrginalBudget.Text.Trim())) { operationLog += "Orginal Budget 由" + (pro.ProjectControl_OrginalBudget == null ? "" : Convert.ToInt32(pro.ProjectControl_OrginalBudget).ToString()) + "修改为" + this.txtOrginalBudget.Text.Trim() + ","; } if (pro.ProjectControl_Revised_MC_Date != Funs.GetNewDateTime(this.txtRevisedMCDate.Text.Trim())) { operationLog += "Revised MC Date 由" + (pro.ProjectControl_Revised_MC_Date == null ? "" : string.Format("{0:yyyy-MM-dd}", pro.ProjectControl_Revised_MC_Date)) + "修改为" + this.txtRevisedMCDate.Text.Trim() + ","; } if (pro.ProjectControl_Account != txtAccount.Text.Trim()) { operationLog += "Account No. 由" + pro.ProjectControl_Account + "修改为" + txtAccount.Text.Trim() + ","; } if (pro.ProjectControl_NetworkNo != txtNetworkNo.Text.Trim()) { operationLog += "Network No. 由" + pro.ProjectControl_NetworkNo + "修改为" + txtNetworkNo.Text.Trim() + ","; } if (pro.ProjectControl_MOCFormNo != txtMOCFormNO.Text.Trim()) { operationLog += "MOC Form No. 由" + pro.ProjectControl_MOCFormNo + "修改为" + txtMOCFormNO.Text.Trim() + ","; } if (pro.CAPEXPlanNo != txtCAPEXPlanNo.Text.Trim()) { operationLog += "CAPEX Plan No. 由" + pro.CAPEXPlanNo + "修改为" + txtCAPEXPlanNo.Text.Trim() + ","; } if (pro.StudyWo != txtStudyWo.Text.Trim()) { operationLog += "Study Wo 由" + pro.StudyWo + "修改为" + txtStudyWo.Text.Trim() + ","; } if ((pro.PM_General_Priority != null || drpPM_General_Priority.SelectedValue != Const._Null) && pro.PM_General_Priority != drpPM_General_Priority.SelectedItem.Text) { operationLog += "Priority 由" + pro.PM_General_Priority + "修改为" + drpPM_General_Priority.SelectedItem.Text + ","; } if (pro.ProjectControl_Remarks != txtRemark.Text.Trim()) { operationLog += "Remarks 由" + pro.ProjectControl_Remarks + "修改为" + txtRemark.Text.Trim() + ","; } if (pro.ProjectControl_MS_SR != Funs.GetNewDateTime(this.txtMS_SR.Text.Trim())) { operationLog += "SR 1/2 由" + (pro.ProjectControl_MS_SR == null ? "" : string.Format("{0:yyyy-MM-dd}", pro.ProjectControl_MS_SR)) + "修改为" + this.txtMS_SR.Text.Trim() + ","; } if (pro.ProjectControl_MS_Approval != Funs.GetNewDateTime(this.txtMS_Approval.Text.Trim())) { operationLog += "Approval 由" + (pro.ProjectControl_MS_Approval == null ? "" : string.Format("{0:yyyy-MM-dd}", pro.ProjectControl_MS_Approval)) + "修改为" + this.txtMS_Approval.Text.Trim() + ","; } if (pro.ProjectControl_MS_MC != Funs.GetNewDateTime(this.txtMS_MC.Text.Trim())) { operationLog += "MC 由" + (pro.ProjectControl_MS_MC == null ? "" : string.Format("{0:yyyy-MM-dd}", pro.ProjectControl_MS_MC)) + "修改为" + this.txtMS_MC.Text.Trim() + ","; } if (pro.ProjectControl_MS_Close != Funs.GetNewDateTime(this.txtMS_Close.Text.Trim())) { operationLog += "MC 由" + (pro.ProjectControl_MS_Close == null ? "" : string.Format("{0:yyyy-MM-dd}", pro.ProjectControl_MS_Close)) + "修改为" + this.txtMS_Close.Text.Trim() + ","; } if ((pro.PM_SC_ApprovedQty != null || txtPM_SC_ApprovedQty.Text != "") && pro.PM_SC_ApprovedQty != Funs.GetNewInt(txtPM_SC_ApprovedQty.Text.Trim())) { operationLog += "Approved Qty 由" + (pro.PM_SC_ApprovedQty != null ? pro.PM_SC_ApprovedQty.Value.ToString() : "" + "修改为" + txtPM_SC_ApprovedQty.Text) + ","; } if ((pro.PM_SC_ApprovedCost != null || txtPM_SC_ApprovedCost.Text != "") && pro.PM_SC_ApprovedCost != Funs.GetNewDecimal(txtPM_SC_ApprovedCost.Text.Trim())) { operationLog += "Approved Cost 由" + (pro.PM_SC_ApprovedCost != null ? pro.PM_SC_ApprovedCost.Value.ToString() : "" + "修改为" + txtPM_SC_ApprovedCost.Text) + ","; } if ((pro.PM_SC_PendingQty != null || txtPM_SC_PendingQty.Text != "") && pro.PM_SC_PendingQty != Funs.GetNewInt(txtPM_SC_PendingQty.Text.Trim())) { operationLog += "Pending Qty 由" + (pro.PM_SC_PendingQty != null ? pro.PM_SC_PendingQty.Value.ToString() : "" + "修改为" + txtPM_SC_PendingQty.Text) + ","; } if ((pro.PM_SC_PendingCost != null || txtPM_SC_PendingCost.Text != "") && pro.PM_SC_PendingCost != Funs.GetNewDecimal(txtPM_SC_PendingCost.Text.Trim())) { operationLog += "Pending Cost 由" + (pro.PM_SC_PendingCost != null ? pro.PM_SC_PendingCost.Value.ToString() : "" + "修改为" + txtPM_SC_PendingCost.Text) + ","; } if (pro.ProjectControl_BC_CloseDate != Funs.GetNewDateTime(this.txtBC_CloseDate.Text.Trim())) { operationLog += "Close Date 由" + (pro.ProjectControl_BC_CloseDate == null ? "" : string.Format("{0:yyyy-MM-dd}", pro.ProjectControl_BC_CloseDate)) + "修改为" + this.txtBC_CloseDate.Text.Trim() + ","; } if (pro.ProjectControl_PC_CancelDate != Funs.GetNewDateTime(this.txtCancelDate.Text.Trim())) { operationLog += "Cancel Date 由" + (pro.ProjectControl_PC_CancelDate == null ? "" : string.Format("{0:yyyy-MM-dd}", pro.ProjectControl_PC_CancelDate)) + "修改为" + this.txtCancelDate.Text.Trim() + ","; } if (pro.Job_Hold != Funs.GetNewDateTime(this.txtHold.Text.Trim())) { operationLog += "Hold Date 由" + (pro.Job_Hold == null ? "" : string.Format("{0:yyyy-MM-dd}", pro.Job_Hold)) + "修改为" + this.txtHold.Text.Trim() + ","; } if (pro.ProjectControl_MS_ResourcePlanReceived != Funs.GetNewDateTime(this.txtResourcePlanReceived.Text.Trim())) { operationLog += "Resource Plan Received 由" + (pro.ProjectControl_MS_ResourcePlanReceived == null ? "" : string.Format("{0:yyyy-MM-dd}", pro.ProjectControl_MS_ResourcePlanReceived)) + "修改为" + this.txtResourcePlanReceived.Text.Trim() + ","; } BLL.EProjectService.UpdateProjectControlEditor(eProject); //BLL.Sys_LogService.AddLog(this.CurrUser.UserId, "Modify Project Control Editor information!"); } else { Alert.ShowInTop("The Job No. entered already exists!", MessageBoxIcon.Warning); return; } //Account No的值在改变一次后(通常项目只有1次变更),历史数据写入Remarks,格式:修改日期+Account NO. //if (this.txtAccount.Text.Trim() != this.hdAccount.Text.Trim()) //{ // this.txtRemark.Text = DateTime.Now.ToShortDateString() + ":" + this.hdAccount.Text.Trim(); // eProject.ProjectControl_Remarks = this.txtRemark.Text.Trim(); //} //var pro = BLL.EProjectService.GeteProjectById(eProjectId); // 当项目为项目或小型投资时才有newwork if (pro.ProjectControl_JobType == "Projects" || pro.ProjectControl_JobType == "Small Invest") { if (!string.IsNullOrEmpty(txtNetworkNo.Text) && pro.ProjectControl_NetworkDate == null) { eProject.ProjectControl_NetworkDate = DateTime.Now.Date; eProject.ProjectControl_NetworkNo = txtNetworkNo.Text.Trim(); // 第一张资源表计划人工时AccountDisabled关闭(现增加第二张资源一个月后关闭) //var firstRp = from x in Funs.DB.Resource_Plan where x.EProjectId == eProjectId && x.WO != null && x.WO != "" select x; //if (firstRp.Count() > 0) //{ // PlanService.UpdateManHourPlanAccountDisabled(firstRp.First().ResourcePlanId, 1); //} // 更新第二张资源的Account var twoRp = from x in Funs.DB.Resource_Plan where x.EProjectId == eProjectId && (x.WO == null || x.WO == "") select x; if (twoRp.Count() > 0) { string rpId = twoRp.First().ResourcePlanId; // 回写资源工单号 ResourcePlanService.UpdateRPWO(rpId, txtNetworkNo.Text.Trim()); var manHours = (from x in Funs.DB.ManHours_Plan where x.ResourcePlanId == rpId select x).ToList(); if (manHours.Count() > 0) { foreach (var m in manHours) { string netWorkOper = string.Empty; var wbs = BLL.DisciplinesWBSService.GetDisciplinesWBSById(m.DisciplineId); if (wbs != null) { if (twoRp.First().Phase.Contains("Study/Concept Planning")) { netWorkOper = wbs.NetworkOper1; } else { netWorkOper = wbs.NetworkOper; } } // 更新人工时里Acccout string account = txtNetworkNo.Text.Trim() + "-" + netWorkOper; PlanService.UpdateManHourPlanAccount(m.ManHoursPlanId, account); } } } //var rpList = (from x in Funs.DB.Resource_Plan where x.EProjectId == eProjectId select x).ToList(); //if (rpList.Count() > 0) //{ // foreach (var rp in rpList) // { // } //} } } else { txtNetworkNo.Enabled = false; } } else { if (BLL.EProjectService.IsExitJobNo(eProject.ProjectControl_JobNo)) { eProject.EProjectId = SQLHelper.GetNewID(typeof(Model.Editor_EProject)); eProject.IsNewCreate = true; eProject.CreateDate = DateTime.Now; eProject.CreatePerson = CurrUser.UserId; BLL.EProjectService.AddProjectControlEditor(eProject); BLL.Sys_LogService.AddLog(this.CurrUser.UserId, "Add Project Control Editor information!"); } else { Alert.ShowInTop("The Job No. entered already exists!", MessageBoxIcon.Warning); return; } } #region 更新项目状态 //更新项目状态 var eproject = BLL.EProjectService.GeteProjectById(eProject.EProjectId); if (eproject != null) { if ((eproject.Permit_PS_SafetyFinalAcc.HasValue && eproject.Permit_PA_SafetyFinalACC.HasValue && eproject.Permit_PS_FFFinalAcc.HasValue && eproject.Permit_PA_FFFinalACC.HasValue && eproject.Permit_PS_EnvFinalAcc.HasValue && eproject.Permit_PA_EnvFinalACC.HasValue) || (eproject.Permit_PS_SafetyFinalAcc.HasValue && eproject.Permit_PA_SafetyFinalACC.HasValue && !eproject.Permit_PS_FFFinalAcc.HasValue && !eproject.Permit_PA_FFFinalACC.HasValue && !eproject.Permit_PS_EnvFinalAcc.HasValue && !eproject.Permit_PA_EnvFinalACC.HasValue) || (eproject.Permit_PS_SafetyFinalAcc.HasValue && eproject.Permit_PA_SafetyFinalACC.HasValue && eproject.Permit_PS_FFFinalAcc.HasValue && eproject.Permit_PA_FFFinalACC.HasValue && !eproject.Permit_PS_EnvFinalAcc.HasValue && !eproject.Permit_PA_EnvFinalACC.HasValue) || (eproject.Permit_PS_SafetyFinalAcc.HasValue && eproject.Permit_PA_SafetyFinalACC.HasValue && !eproject.Permit_PS_FFFinalAcc.HasValue && !eproject.Permit_PA_FFFinalACC.HasValue && eproject.Permit_PS_EnvFinalAcc.HasValue && eproject.Permit_PA_EnvFinalACC.HasValue) || (!eproject.Permit_PS_SafetyFinalAcc.HasValue && !eproject.Permit_PA_SafetyFinalACC.HasValue && eproject.Permit_PS_FFFinalAcc.HasValue && eproject.Permit_PA_FFFinalACC.HasValue && eproject.Permit_PS_EnvFinalAcc.HasValue && eproject.Permit_PA_EnvFinalACC.HasValue) || (!eproject.Permit_PS_SafetyFinalAcc.HasValue && !eproject.Permit_PA_SafetyFinalACC.HasValue && !eproject.Permit_PS_FFFinalAcc.HasValue && !eproject.Permit_PA_FFFinalACC.HasValue && eproject.Permit_PS_EnvFinalAcc.HasValue && eproject.Permit_PA_EnvFinalACC.HasValue) || (!eproject.Permit_PS_SafetyFinalAcc.HasValue && !eproject.Permit_PA_SafetyFinalACC.HasValue && !eproject.Permit_PS_FFFinalAcc.HasValue && !eproject.Permit_PA_FFFinalACC.HasValue && !eproject.Permit_PS_EnvFinalAcc.HasValue && !eproject.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 (!string.IsNullOrEmpty(this.txtCancelDate.Text))//当Cancel Date有输入时,状态为Cancelled { eproject.ProjectControl_JobStatus = "Cancelled"; } if (!string.IsNullOrEmpty(this.txtHold.Text))//Hold Date有输入时,状态为Hold { eproject.ProjectControl_JobStatus = "Hold"; } if (pro.ProjectControl_JobStatus != eproject.ProjectControl_JobStatus) { operationLog += "Job Status 由" + pro.ProjectControl_JobStatus + "修改为" + eproject.ProjectControl_JobStatus + ","; } operationLog += "操作成功!"; BLL.Sys_LogService.AddLog(this.CurrUser.UserId, operationLog); eproject.EProjectId = eProject.EProjectId; BLL.EProjectService.UpdateProjectJobStatus(eproject); // 当eproject状态为Cancelled或Hold时更新人工时状态: 如日期不为空改为一个月后触发状态 if ((eproject.ProjectControl_JobStatus == "Cancelled" && !eproject.ProjectControl_PC_CancelDate.HasValue) || (eproject.ProjectControl_JobStatus == "Hold" && !eproject.Job_Hold.HasValue)) { var updatePlan = Funs.DB.ManHours_Plan.Where(x => x.EProjectId == eProject.EProjectId); if (updatePlan != null) { foreach (var p in updatePlan) { p.AccountDisabled = 1; } Funs.DB.SubmitChanges(); } } //发送邮件:当MOC状态为closed状态时,项目关闭,文件整理提醒 string closeEmailTitle = eproject.ProjectControl_JobNo + "-项目关闭"; var closeem = from x in Funs.DB.Email_SendLog where x.EmailTile.Contains(closeEmailTitle) select x; if (closeem.Count() == 0) { if (eproject.ProjectControl_JobType == "MOC" && eproject.ProjectControl_JobStatus == "Closed") { NameValueCollection nameValue = new NameValueCollection(); nameValue.Add("projectName", eproject.ProjectControl_JobTitle.ToString().Trim()); nameValue.Add("projectNo", eproject.ProjectControl_JobNo.ToString().Trim()); EmailSendMessage(eproject, BLL.Const.PCFSRString, nameValue, BLL.Const.CustomString, "3"); } } } #endregion #region 邮件发送代码 //--------邮件发送代码开始----- #region Lesson learn邮件通知1 //budget >1000万,同时项目状态为MC string lLEmailTitle = eproject.ProjectControl_JobNo + " Lesson Learn"; var lLem = from x in Funs.DB.Email_SendLog where x.EmailTile.Contains(lLEmailTitle) select x; if (lLem.Count() > 0) { if (eProject.ProjectControl_OrginalBudget > 10000000 && this.drpJobStatus.SelectedItem.Text == "MC") { NameValueCollection nameValue = new NameValueCollection(); nameValue.Add("projectBUCode", eproject.ProjectControl_BUCode); nameValue.Add("projectNo", eproject.ProjectControl_JobNo.ToString().Trim()); nameValue.Add("projectName", eproject.ProjectControl_JobTitle.ToString().Trim()); nameValue.Add("CM_MA_MC", eproject.CM_MA_MC.HasValue ? Convert.ToDateTime(eproject.CM_MA_MC).ToString("yyyy-MM-dd") : ""); EmailSendMessage(eProject, BLL.Const.LL1String, nameValue, BLL.Const.CustomString); } } #endregion #region Lesson learn Review邮件通知2 //budget >2000万 string lLR2EmailTitle = eproject.ProjectControl_JobNo + " Lesson Learn Review"; var lLR2em = from x in Funs.DB.Email_SendLog where x.EmailTile.Contains(lLR2EmailTitle) select x; if (lLR2em.Count() > 0) { if (eProject.ProjectControl_OrginalBudget > 20000000) { NameValueCollection nameValue = new NameValueCollection(); nameValue.Add("projectBUCode", eproject.ProjectControl_BUCode); nameValue.Add("projectNo", eproject.ProjectControl_JobNo.ToString().Trim()); nameValue.Add("projectName", eproject.ProjectControl_JobTitle.ToString().Trim()); EmailSendMessage(eProject, BLL.Const.LLR2String, nameValue, BLL.Const.CustomString); } } #endregion #region HC auto Mail邮件通知 var ema = from x in Funs.DB.Email_SendLog where x.EmailTile.Contains(eProject.ProjectControl_JobNo) && x.EmailTile.Contains(eProject.ProjectControl_JobStatus) && x.EmailTile.Contains("has been") && x.EmailStatus.Contains("发送成功") select x; if (ema.Count() == 0) { if ((eProject.ProjectControl_JobType == "Projects" || eProject.ProjectControl_JobType == "Small Invest" || eProject.ProjectControl_JobType == "MOC") && (eProject.ProjectControl_JobStatus == "Hold" || eProject.ProjectControl_JobStatus == "Cancelled")) { HCEmailSendMessage(eproject, BLL.Const.HCString); } } #endregion //--------邮件发送代码结束---- - #endregion ShowNotify("Save Successfully!", MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } #endregion #region 邮件发送 protected void btnEmail_Click(object sender, EventArgs e) { string eProjectId = Request.Params["eProjectId"]; if (!string.IsNullOrEmpty(eProjectId)) { var pro = BLL.EProjectService.GeteProjectById(eProjectId); string notes = "N.A"; if (!string.IsNullOrEmpty(pro.ProjectControl_NotesLink)) { notes = pro.ProjectControl_NotesLink.Trim(); } if ((pro.ProjectControl_JobType == "Small Invest" || pro.ProjectControl_JobType == "Projects") && !string.IsNullOrEmpty(pro.ProjectControl_Account) && !string.IsNullOrEmpty(pro.ProjectControl_NetworkNo)) { NameValueCollection nameValue = new NameValueCollection(); nameValue.Add("projectNo", pro.ProjectControl_JobNo.Trim()); nameValue.Add("projectName", pro.ProjectControl_JobTitle.Trim()); nameValue.Add("accountNo", pro.ProjectControl_Account.Trim()); nameValue.Add("networkNo", pro.ProjectControl_NetworkNo.Trim()); nameValue.Add("notesLink", notes); string[] mailTo = null; string[] mailcc = null; // 发送人 var to1 = (from x in Funs.DB.Sys_User where (x.UserId == pro.ProjectControl_ConstManagerId || x.UserId == pro.ProjectControl_ProjectManagerId || x.UserId == pro.ProjectControl_EMManagerId || x.UserId == pro.ProjectControl_OperationRepId || x.UserId == pro.ProjectControl_CI_Process || x.UserId == pro.ProjectControl_CI_Equipment || x.UserId == pro.ProjectControl_CI_Instrument || x.UserId == pro.ProjectControl_CI_Electrical || x.UserId == pro.ProjectControl_CI_Civil) && x.Email != null && x.Email != "" select new { EmuaerEmailAddress = x.Email, senduserid = x.UserId } ).Distinct().ToList(); var to2 = (from a in Funs.DB.ManHours_Plan join b in Funs.DB.Sys_User on a.EngineerId equals b.UserId where a.EProjectId == pro.EProjectId && a.Account.Contains("NZNIC") select new { EmuaerEmailAddress = b.Email, senduserid = b.UserId } ).Distinct().ToList(); string[] conTo1 = to1.Where(o => o.EmuaerEmailAddress != null).Select(o => o.EmuaerEmailAddress).ToList().ToArray(); string[] conTo2 = to2.Where(o => o.EmuaerEmailAddress != null).Select(o => o.EmuaerEmailAddress).ToList().ToArray(); if (conTo1.Count() > 0 && conTo2.Count() > 0) { mailTo = conTo1.Union(conTo2).Distinct().ToArray(); } else if (conTo1.Count() > 0) { mailTo = conTo1; } else { mailTo = conTo2; } // 抄送人 var cc1 = (from x in Funs.DB.Sys_User join y in Funs.DB.Sys_Role on x.RoleId equals y.RoleId where (y.RoleName == "CTE_Director" || y.RoleName == "CDS_Manager" || y.RoleName == "Cost_Lead" || y.RoleName == "PPE") && x.Email != null && x.Email != "" select new { EmuaerEmailAddress = x.Email, senduserid = x.UserId } ).Distinct().ToList(); var depList = (from x in Funs.DB.Sys_User where (x.UserId == pro.ProjectControl_ConstManagerId || x.UserId == pro.ProjectControl_ProjectManagerId || x.UserId == pro.ProjectControl_EMManagerId || x.UserId == pro.ProjectControl_OperationRepId || x.UserId == pro.ProjectControl_CI_Process || x.UserId == pro.ProjectControl_CI_Equipment || x.UserId == pro.ProjectControl_CI_Instrument || x.UserId == pro.ProjectControl_CI_Electrical || x.UserId == pro.ProjectControl_CI_Civil) select x.DepartId).Distinct(); //string depStr = string.Join(",", depList.Select(p => p.DepartId)); var userList = (from x in Funs.DB.Base_Depart where depList.Contains(x.DepartId) && x.DepartLeader != null select x.DepartLeader).Distinct().ToList(); var cc2 = (from x in Funs.DB.Sys_User where userList.Contains(x.UserId) && x.Email != null && x.Email != "" select new { EmuaerEmailAddress = x.Email, senduserid = x.UserId }).Distinct().ToList(); string[] conCc1 = cc1.Where(o => o.EmuaerEmailAddress != null).Select(o => o.EmuaerEmailAddress).ToList().ToArray(); string[] conCc2 = cc2.Where(o => o.EmuaerEmailAddress != null).Select(o => o.EmuaerEmailAddress).ToList().ToArray(); if (conCc1.Count() > 0 && conCc2.Count() > 0) { mailcc = conCc1.Union(conCc2).Distinct().ToArray(); } else if (conCc1.Count() > 0) { mailcc = conCc1; } else { mailcc = conCc2; } if (!pro.PM_MA_ProjectApproval.HasValue) { EmailSendMessage(BLL.Const.PreApprovalString, nameValue, mailTo, mailcc); } else { EmailSendMessage(BLL.Const.ApprovalString, nameValue, mailTo, mailcc); } } else { Alert.ShowInTop("Sending conditions are not met!", MessageBoxIcon.Warning); return; } } } #endregion #region 权限设置 /// /// 菜单按钮权限 /// private void GetButtonPower() { var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.ProjectControlEditorMenuId); if (buttonList.Count() > 0) { if (buttonList.Contains(BLL.Const.BtnSave)) { this.btnSave.Hidden = false; this.btnCalculated.Hidden = false; } if (buttonList.Contains(BLL.Const.BtnSend)) { this.btnEmail.Hidden = false; } } } #endregion #region DropDownList下拉选择 /// /// 当项目类型为Projects并且Orginal Budget大于100万时,MC为当前日期加1个月 /// /// /// protected void drpJobType_SelectedIndexChanged(object sender, EventArgs e) { if (string.IsNullOrEmpty(Request.Params["eProjectId"])) { if (this.drpJobType.SelectedItem.Text == "Projects" && Funs.GetNewDecimal(this.txtOrginalBudget.Text) > 1000000) { this.txtMS_MC.Text = DateTime.Now.AddMonths(1).ToShortDateString(); } else { this.txtMS_MC.Text = string.Empty; } this.drpProjectManager.Items.Clear(); this.drpConstManager.Items.Clear(); this.drpOpre.Items.Clear(); this.drpEMManager.Items.Clear(); // this.drpLeadBy.Items.Clear(); //如果项目类型为Other,项目经理、施工经理、操作代表、设计经理 显示为CTE部门或人员 if (this.drpJobType.SelectedItem.Text == "Other") { this.drpProjectManager.EnableGroup = false; this.drpConstManager.EnableGroup = false; this.drpOpre.EnableGroup = false; this.drpEMManager.EnableGroup = false; // this.drpLeadBy.EnableGroup = false; BLL.Sys_UserService.InitDropDownList(this.drpProjectManager, true); BLL.Sys_UserService.InitDropDownList(this.drpConstManager, true); BLL.Sys_UserService.InitDropDownList(this.drpOpre, true); BLL.Sys_UserService.InitDropDownList(this.drpEMManager, true); // BLL.Sys_UserService.InitDropDownList(this.drpLeadBy, true); this.drpProjectManager.SelectedIndex = 0; this.drpConstManager.SelectedIndex = 0; this.drpOpre.SelectedIndex = 0; this.drpEMManager.SelectedIndex = 0; // this.drpLeadBy.SelectedIndex = 0; } else { BLL.Sys_UserService.InitUserDropDownList(this.drpProjectManager, true); BLL.Sys_UserService.InitUserDropDownList(this.drpConstManager, true); BLL.Sys_UserService.InitUserDropDownList(this.drpOpre, true); BLL.Sys_UserService.InitUserDropDownList(this.drpEMManager, true); //BLL.Sys_UserService.InitUserDropDownList(this.drpLeadBy, true); this.drpProjectManager.SelectedIndex = 0; this.drpConstManager.SelectedIndex = 0; this.drpOpre.SelectedIndex = 0; this.drpEMManager.SelectedIndex = 0; //this.drpLeadBy.SelectedIndex = 0; //自动加载项目号 //if (string.IsNullOrEmpty(Request.Params["eProjectId"])) //{ // string prefixCode = DateTime.Now.ToString("yy"); // this.txtJobNo.Text = BLL.SQLHelper.RunProcNewId("SpGetNewCode3", "dbo.Editor_EProject", "ProjectControl_JobNo", prefixCode); //} } } } protected void txtOrginalBudget_TextChanged(object sender, EventArgs e) { if (string.IsNullOrEmpty(Request.Params["eProjectId"])) { if (this.drpJobType.SelectedItem.Text == "Projects" && Funs.GetNewDecimal(this.txtOrginalBudget.Text) > 1000000) { this.txtMS_MC.Text = DateTime.Now.AddMonths(1).ToShortDateString(); } else { this.txtMS_MC.Text = string.Empty; } } } #endregion #region 计算进度 /// /// 计算进度 /// /// /// protected void btnCalculated_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(this.txtLPSchStart.Text.Trim()) && !string.IsNullOrEmpty(this.txtLPSchEnd.Text.Trim())) { decimal lp1 = 0; decimal lp2 = 0; lp1 = (DateTime.Now - Convert.ToDateTime(this.txtLPSchStart.Text.Trim())).Days; lp2 = (Convert.ToDateTime(this.txtLPSchEnd.Text.Trim()) - Convert.ToDateTime(this.txtLPSchStart.Text.Trim())).Days; if (lp2 != 0) { decimal progress = lp1 / lp2 * 100; if (progress > 100) { this.txtLPProgress.Text = "100"; } else if (progress < 0) { this.txtLPProgress.Text = "0"; } else { this.txtLPProgress.Text = progress.ToString(); } } } if (!string.IsNullOrEmpty(this.txtCCSchStart.Text.Trim()) && !string.IsNullOrEmpty(this.txtCCSchEnd.Text.Trim())) { decimal cc1 = 0; decimal cc2 = 0; cc1 = (DateTime.Now - Convert.ToDateTime(this.txtCCSchStart.Text.Trim())).Days; cc2 = (Convert.ToDateTime(this.txtCCSchEnd.Text.Trim()) - Convert.ToDateTime(this.txtCCSchStart.Text.Trim())).Days; if (cc2 != 0) { decimal progress = cc1 / cc2 * 100; if (progress > 100) { this.txtCCProgress.Text = "100"; } else if (progress < 0) { this.txtCCProgress.Text = "0"; } else { this.txtCCProgress.Text = progress.ToString(); } } } if (!string.IsNullOrEmpty(this.txtCMSchStart.Text.Trim()) && !string.IsNullOrEmpty(this.txtCMSchEnd.Text.Trim())) { decimal cm1 = 0; decimal cm2 = 0; cm1 = (DateTime.Now - Convert.ToDateTime(this.txtCMSchStart.Text.Trim())).Days; cm2 = (Convert.ToDateTime(this.txtCMSchEnd.Text.Trim()) - Convert.ToDateTime(this.txtCMSchStart.Text.Trim())).Days; if (cm2 != 0) { decimal progress = cm1 / cm2 * 100; if (progress > 100) { this.txtCMProgress.Text = "100"; } else if (progress < 0) { this.txtCMProgress.Text = "0"; } else { this.txtCMProgress.Text = progress.ToString(); } } } } #endregion protected void txtRevisedMCDate_OnTextChanged(object sender, EventArgs e) { string eprojectId = Request.Params["eProjectId"]; var epro = BLL.EProjectService.GeteProjectById(eprojectId); if (txtMS_Close.Text.Trim() == string.Empty && txtRevisedMCDate.Text.Trim() != string.Empty) { txtMS_Close.Text = string.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(txtRevisedMCDate.Text.Trim()).AddMonths(6)); } if (txtRevisedMCDate.Text.Trim() == string.Empty) { if (epro != null) { if (!epro.ProjectControl_MS_Close.HasValue) { txtMS_Close.Text = string.Empty; } } else { txtMS_Close.Text = string.Empty; } } } protected void txtMS_MC_OnTextChanged(object sender, EventArgs e) { string eprojectId = Request.Params["eProjectId"]; var epro = BLL.EProjectService.GeteProjectById(eprojectId); if (txtMS_Close.Text.Trim() == string.Empty && txtMS_MC.Text.Trim() != string.Empty) { txtMS_Close.Text = string.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(txtMS_MC.Text.Trim()).AddMonths(6)); } if (txtMS_MC.Text.Trim() == string.Empty) { if (epro != null) { if (!epro.ProjectControl_MS_Close.HasValue) { txtMS_Close.Text = string.Empty; } } else { txtMS_Close.Text = string.Empty; } } } } }