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