Basf_EProject/EProject/FineUIPro.Web/EditorManage/ProjectControlEditorEdit.as...

1492 lines
83 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 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
/// <summary>
/// 保存按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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<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 (!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
/// <summary>
/// 菜单按钮权限
/// </summary>
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下拉选择
/// <summary>
/// 当项目类型为Projects并且Orginal Budget大于100万时MC为当前日期加1个月
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
/// <summary>
/// 计算进度
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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;
}
}
}
}
}