1540 lines
85 KiB
C#
1540 lines
85 KiB
C#
using BLL;
|
||
using FineUIPro.Web.Report;
|
||
using Microsoft.IdentityModel.Tokens;
|
||
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.InitUserDropDownList(this.drpProjectManager, true); //项目经理
|
||
BLL.Sys_UserService.InitUserDropDownList(this.drpEMManager, true); //EM
|
||
BLL.Sys_UserService.InitUserDropDownList(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;
|
||
BLL.ConstService.InitConstValueProjectStatus(this.drpJobStatus, BLL.Const.ProjectPlanner_JobStatus, "3", false);
|
||
|
||
}
|
||
else
|
||
{
|
||
BLL.ConstService.InitConstValueProjectStatus(this.drpJobStatus, BLL.Const.ProjectPlanner_JobStatus, "2", false);
|
||
}
|
||
|
||
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;
|
||
}
|
||
if (!string.IsNullOrEmpty(eproject.ProjectControl_ProjectType))
|
||
{
|
||
this.drpProjType.SelectedValue = eproject.ProjectControl_ProjectType;
|
||
}
|
||
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;
|
||
if (this.drpProjType.SelectedValue != "0")
|
||
{
|
||
eProject.ProjectControl_ProjectType = this.drpProjType.SelectedValue;
|
||
}
|
||
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_ProjectType != null || drpProjType.SelectedValue != "0") && pro.ProjectControl_ProjectType != drpProjType.SelectedValue)
|
||
{
|
||
operationLog += "Proj.Type 由" + pro.ProjectControl_ProjectType + "修改为" + drpProjType.SelectedValue + ",";
|
||
}
|
||
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 (eproject.ProjectControl_PC_CancelDate.HasValue)//当Cancel Date有输入时,状态为Cancelled
|
||
{
|
||
eproject.ProjectControl_JobStatus = "Cancelled";
|
||
}
|
||
|
||
// 修改于2024.07.04 非other类型的项目hold不为空并且cancelDate为空
|
||
if (eproject.Job_Hold.HasValue && !eproject.ProjectControl_PC_CancelDate.HasValue)//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)
|
||
{
|
||
this.drpJobStatus.Items.Clear();
|
||
if (this.drpJobType.SelectedItem.Text == "Other")
|
||
{
|
||
BLL.ConstService.InitConstValueProjectStatus(this.drpJobStatus, BLL.Const.ProjectPlanner_JobStatus, "3", false);
|
||
}
|
||
else
|
||
{
|
||
BLL.ConstService.InitConstValueProjectStatus(this.drpJobStatus, BLL.Const.ProjectPlanner_JobStatus, "2", false);
|
||
}
|
||
|
||
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 drpJobStatus_SelectedIndexChanged(object sender, EventArgs e)
|
||
{
|
||
if (drpJobStatus.SelectedValue != "Hold")
|
||
{
|
||
this.txtHold.Text = string.Empty;
|
||
}
|
||
else
|
||
{
|
||
var eproject = BLL.EProjectService.GeteProjectById(Request.Params["eProjectId"]);
|
||
if (eproject != null)
|
||
{
|
||
this.txtHold.Text = eproject.Job_Hold == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.Job_Hold);
|
||
}
|
||
}
|
||
}
|
||
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;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
} |