using BLL;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;

namespace FineUIPro.Web.EditorManage
{
    public partial class PermitEditorEdit : PageBase
    {
        #region 加载        
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string view = Request.Params["view"];
                if (view == "1")
                {
                    this.btnSave.Hidden = true;
                }
                else
                {
                    GetButtonPower();//权限设置
                }
                btnClose.OnClientClick = ActiveWindow.GetHideReference();

                this.txtPermit_PPA_EnvAssess.MaxDate = DateTime.Now;
                this.txtPermit_PPA_EnergySaving.MaxDate = DateTime.Now;
                this.txtPermit_PPA_ProjectRegistration.MaxDate = DateTime.Now;
                this.txtPermit_PPA_PlanningPermit.MaxDate = DateTime.Now;
                this.txtPermit_PPA_SafetyConRev.MaxDate = DateTime.Now;
                this.txtPermit_PPA_SafetyDesignRev.MaxDate = DateTime.Now;
                this.txtPermit_PPA_FFDesignReview.MaxDate = DateTime.Now;
                this.txtPermit_PA_ConstPermit.MaxDate = DateTime.Now;
                this.txtPermit_PA_SafetyFinalACC.MaxDate = DateTime.Now;
                this.txtPermit_PA_FFFinalACC.MaxDate = DateTime.Now;
                this.txtPermit_PA_EnvFinalACC.MaxDate = DateTime.Now;

                string eprojectId = Request.Params["EProjectId"];
                if (!string.IsNullOrEmpty(eprojectId))
                {
                    Model.Editor_EProject ep = BLL.EProjectService.GeteProjectById(eprojectId);
                    if(ep!=null)
                    {
                        if (ep.Permit_PS_EnvAssessChecked == true)
                        {
                            this.chkPermit_PS_EnvAssess.Checked = true;
                        }
                        if (ep.Permit_PS_EnvAssess.HasValue)
                        {
                            this.txtPermit_PS_EnvAssess.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PS_EnvAssess);
                        }
                        if (ep.Permit_PPA_EnvAssess.HasValue)
                        {
                            this.txtPermit_PPA_EnvAssess.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PPA_EnvAssess);
                        }
                        if (ep.Permit_PS_EnergySavingChecked==true)
                        {
                            this.chkPermit_PS_EnergySaving.Checked = true;
                        }
                        if (ep.Permit_PS_EnergySaving.HasValue)
                        {
                            this.txtPermit_PS_EnergySaving.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PS_EnergySaving);
                        }
                        if (ep.Permit_PPA_EnergySaving.HasValue)
                        {
                            this.txtPermit_PPA_EnergySaving.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PPA_EnergySaving);
                        }
                        if (ep.Permit_PS_ProjectRegistrChecked==true)
                        {
                            this.chkPermit_PS_ProjectRegistr.Checked = true;
                        }
                        if (ep.Permit_PS_ProjectRegistr.HasValue)
                        {
                            this.txtPermit_PS_ProjectRegistr.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PS_ProjectRegistr);
                        }
                        if (ep.Permit_PPA_ProjectRegistration.HasValue)
                        {
                            this.txtPermit_PPA_ProjectRegistration.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PPA_ProjectRegistration);
                        }
                        if (ep.Permit_PS_PlanningPermitChecked==true)
                        {
                            this.chkPermit_PS_PlanningPermit.Checked = true;
                        }
                        if (ep.Permit_PS_PlanningPermit.HasValue)
                        {
                            this.txtPermit_PS_PlanningPermit.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PS_PlanningPermit);
                        }
                        if (ep.Permit_PPA_PlanningPermit.HasValue)
                        {
                            this.txtPermit_PPA_PlanningPermit.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PPA_PlanningPermit);
                        }
                        if (ep.Permit_PS_SafetyConReviewChecked == true)
                        {
                            this.chkPermit_PS_SafetyConReview.Checked = true;
                        }
                        if (ep.Permit_PS_SafetyConReview.HasValue)
                        {
                            this.txtPermit_PS_SafetyConReview.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PS_SafetyConReview);
                        }
                        if (ep.Permit_PPA_SafetyConRev.HasValue)
                        {
                            this.txtPermit_PPA_SafetyConRev.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PPA_SafetyConRev);
                        }
                        if (ep.Permit_PS_SafetyDesginReviewChecked==true)
                        {
                            this.chkPermit_PS_SafetyDesginReview.Checked = true;
                        }
                        if (ep.Permit_PS_SafetyDesginReview.HasValue)
                        {
                            this.txtPermit_PS_SafetyDesginReview.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PS_SafetyDesginReview);
                        }
                        if (ep.Permit_PPA_SafetyDesignRev.HasValue)
                        {
                            this.txtPermit_PPA_SafetyDesignRev.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PPA_SafetyDesignRev);
                        }
                        if (ep.Permit_PS_FFDesginReviewChecked==true)
                        {
                            this.chkPermit_PS_FFDesginReview.Checked = true;
                        }
                        if (ep.Permit_PS_FFDesginReview.HasValue)
                        {
                            this.txtPermit_PS_FFDesginReview.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PS_FFDesginReview);
                        }
                        if (ep.Permit_PPA_FFDesignReview.HasValue)
                        {
                            this.txtPermit_PPA_FFDesignReview.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PPA_FFDesignReview);
                        }
                        if (ep.Permit_PS_ConstPermitChecked==true)
                        {
                            this.chkPermit_PS_ConstPermit.Checked = true;
                        }
                        if (ep.Permit_PS_ConstPermit.HasValue)
                        {
                            this.txtPermit_PS_ConstPermit.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PS_ConstPermit);
                        }
                        if (ep.Permit_PA_ConstPermit.HasValue)
                        {
                            this.txtPermit_PA_ConstPermit.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PA_ConstPermit);
                        }
                        if (ep.Permit_PS_SafetyFinalAccChecked==true)
                        {
                            this.chkPermit_PS_SafetyFinalAcc.Checked = true;
                        }
                        if (ep.Permit_PS_SafetyFinalAcc.HasValue)
                        {
                            this.txtPermit_PS_SafetyFinalAcc.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PS_SafetyFinalAcc);
                        }
                        if (ep.Permit_PA_SafetyFinalACC.HasValue)
                        {
                            this.txtPermit_PA_SafetyFinalACC.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PA_SafetyFinalACC);
                        }
                        if (ep.Permit_PS_FFFinalAccChecked ==true)
                        {
                            this.chkPermit_PS_FFFinalAcc.Checked = true;
                        }
                        if (ep.Permit_PS_FFFinalAcc.HasValue)
                        {
                            this.txtPermit_PS_FFFinalAcc.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PS_FFFinalAcc);
                        }
                        if (ep.Permit_PA_FFFinalACC.HasValue)
                        {
                            this.txtPermit_PA_FFFinalACC.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PA_FFFinalACC);
                        }
                        if (ep.Permit_PS_EnvFinalAccChecked ==true)
                        {
                            this.chkPermit_PS_EnvFinalAcc.Checked = true;
                        }
                        if (ep.Permit_PS_EnvFinalAcc.HasValue)
                        {
                            this.txtPermit_PS_EnvFinalAcc.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PS_EnvFinalAcc);
                        }
                        if (ep.Permit_PA_EnvFinalACC.HasValue)
                        {
                            this.txtPermit_PA_EnvFinalACC.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PA_EnvFinalACC);
                        }
                        if (ep.Permit_PS_ArchiveAccepChecked==true)
                        {
                            this.chkPermit_PS_ArchiveAccep.Checked = true;
                        }
                        if (ep.Permit_PS_ArchiveAccep.HasValue)
                        {
                            this.txtPermit_PS_ArchiveAccep.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PS_ArchiveAccep);
                        }
                        if (ep.Permit_PS_3rdConstJianChecked==true)
                        {
                            this.chkPermit_PS_3rdConstJian.Checked = true;
                        }
                        if (ep.Permit_PS_3rdConstJian.HasValue)
                        {
                            this.txtPermit_PS_3rdConstJian.Text = string.Format("{0:yyyy-MM-dd}", ep.Permit_PS_3rdConstJian);
                        }
                    }
                    
                    CheckBox_CheckedChanged(null, null);
                }
            }
        }
        #endregion

        #region 保存
        /// <summary>
        /// 保存按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSave_Click(object sender, EventArgs e)
        {
            string eprojectId = Request.Params["EProjectId"];
            if (!string.IsNullOrEmpty(eprojectId))
            {
                var eproject = BLL.EProjectService.GeteProjectById(eprojectId);
                if (eproject != null)
                {
                    eproject.EProjectId = eprojectId;
                    eproject.Permit_PS_EnvAssessChecked = chkPermit_PS_EnvAssess.Checked;
                    eproject.Permit_PS_EnvAssess = Funs.GetNewDateTime(this.txtPermit_PS_EnvAssess.Text.Trim());
                    eproject.Permit_PPA_EnvAssess = Funs.GetNewDateTime(this.txtPermit_PPA_EnvAssess.Text.Trim());

                    eproject.Permit_PS_EnergySavingChecked = chkPermit_PS_EnergySaving.Checked;
                    eproject.Permit_PS_EnergySaving = Funs.GetNewDateTime(this.txtPermit_PS_EnergySaving.Text.Trim());
                    eproject.Permit_PPA_EnergySaving = Funs.GetNewDateTime(this.txtPermit_PPA_EnergySaving.Text.Trim());

                    eproject.Permit_PS_ProjectRegistrChecked = chkPermit_PS_ProjectRegistr.Checked;
                    eproject.Permit_PS_ProjectRegistr = Funs.GetNewDateTime(this.txtPermit_PS_ProjectRegistr.Text.Trim());
                    eproject.Permit_PPA_ProjectRegistration = Funs.GetNewDateTime(this.txtPermit_PPA_ProjectRegistration.Text.Trim());

                    eproject.Permit_PS_PlanningPermitChecked = chkPermit_PS_PlanningPermit.Checked;
                    eproject.Permit_PS_PlanningPermit = Funs.GetNewDateTime(this.txtPermit_PS_PlanningPermit.Text.Trim());
                    eproject.Permit_PPA_PlanningPermit= Funs.GetNewDateTime(this.txtPermit_PPA_PlanningPermit.Text.Trim());

                    eproject.Permit_PS_SafetyConReviewChecked = chkPermit_PS_SafetyConReview.Checked;
                    eproject.Permit_PS_SafetyConReview = Funs.GetNewDateTime(this.txtPermit_PS_SafetyConReview.Text.Trim());
                    eproject.Permit_PPA_SafetyConRev = Funs.GetNewDateTime(this.txtPermit_PPA_SafetyConRev.Text.Trim());

                    eproject.Permit_PS_SafetyDesginReviewChecked = chkPermit_PS_SafetyDesginReview.Checked;
                    eproject.Permit_PS_SafetyDesginReview = Funs.GetNewDateTime(this.txtPermit_PS_SafetyDesginReview.Text.Trim());
                    eproject.Permit_PPA_SafetyDesignRev = Funs.GetNewDateTime(this.txtPermit_PPA_SafetyDesignRev.Text.Trim());

                    eproject.Permit_PS_FFDesginReviewChecked = chkPermit_PS_FFDesginReview.Checked;
                    eproject.Permit_PS_FFDesginReview = Funs.GetNewDateTime(this.txtPermit_PS_FFDesginReview.Text.Trim());
                    eproject.Permit_PPA_FFDesignReview = Funs.GetNewDateTime(this.txtPermit_PPA_FFDesignReview.Text.Trim());

                    eproject.Permit_PS_ConstPermitChecked = chkPermit_PS_ConstPermit.Checked;
                    eproject.Permit_PS_ConstPermit = Funs.GetNewDateTime(this.txtPermit_PS_ConstPermit.Text.Trim());
                    eproject.Permit_PA_ConstPermit = Funs.GetNewDateTime(this.txtPermit_PA_ConstPermit.Text.Trim());

                    eproject.Permit_PS_SafetyFinalAccChecked = chkPermit_PS_SafetyFinalAcc.Checked;
                    eproject.Permit_PS_SafetyFinalAcc = Funs.GetNewDateTime(this.txtPermit_PS_SafetyFinalAcc.Text.Trim());
                    eproject.Permit_PA_SafetyFinalACC = Funs.GetNewDateTime(this.txtPermit_PA_SafetyFinalACC.Text.Trim());

                    eproject.Permit_PS_FFFinalAccChecked = chkPermit_PS_FFFinalAcc.Checked;
                    eproject.Permit_PS_FFFinalAcc = Funs.GetNewDateTime(this.txtPermit_PS_FFFinalAcc.Text.Trim());
                    eproject.Permit_PA_FFFinalACC = Funs.GetNewDateTime(this.txtPermit_PA_FFFinalACC.Text.Trim());

                    eproject.Permit_PS_EnvFinalAccChecked = chkPermit_PS_EnvFinalAcc.Checked;
                    eproject.Permit_PS_EnvFinalAcc = Funs.GetNewDateTime(this.txtPermit_PS_EnvFinalAcc.Text.Trim());
                    eproject.Permit_PA_EnvFinalACC = Funs.GetNewDateTime(this.txtPermit_PA_EnvFinalACC.Text.Trim());

                    eproject.Permit_PS_ArchiveAccepChecked = chkPermit_PS_ArchiveAccep.Checked;
                    eproject.Permit_PS_ArchiveAccep = Funs.GetNewDateTime(this.txtPermit_PS_ArchiveAccep.Text.Trim());

                    eproject.Permit_PS_3rdConstJianChecked = chkPermit_PS_3rdConstJian.Checked;
                    eproject.Permit_PS_3rdConstJian = Funs.GetNewDateTime(this.txtPermit_PS_3rdConstJian.Text.Trim());
                    eproject.ModifyDate = DateTime.Now;
                    eproject.ModifyPerson = CurrUser.UserId;
                    BLL.EProjectService.UpdateProject(eproject, "PER");

                    #region 更新项目状态
                    ///更新项目状态
                    var epro = BLL.EProjectService.GeteProjectById(eproject.EProjectId);
                    if (epro != null)
                    {
                        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
                        }
                        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");
                            }
                        }
                    }
                    #endregion

                    #region 发送邮件
                    if (!string.IsNullOrEmpty(txtPermit_PS_ProjectRegistr.Text.Trim()) || !string.IsNullOrEmpty(txtPermit_PPA_ProjectRegistration.Text.Trim()))
                    {
                        NameValueCollection nameValue = new NameValueCollection();
                        nameValue.Add("projectName", eproject.ProjectControl_JobTitle.ToString().Trim());
                        nameValue.Add("projectNo", eproject.ProjectControl_JobNo.ToString().Trim());
                        EmailSendMessage(eproject, BLL.Const.QIBString, nameValue, BLL.Const.CustomString, BLL.Const.NoprojectString);
                    }
                    #endregion
                }
            }

            ShowNotify("Save Successfully!", MessageBoxIcon.Success);
            PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
        }
        #endregion        

        #region 权限设置
        /// <summary>
        /// 菜单按钮权限
        /// </summary>
        private void GetButtonPower()
        {
            var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.PermitEditorMenuId);
            if (buttonList.Count() > 0)
            {
                if (buttonList.Contains(BLL.Const.BtnSave))
                {
                    this.btnSave.Hidden = false;
                }
            }
        }
        #endregion

        #region CheckBox选择事件
        /// <summary>
        /// CheckBox选择事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void CheckBox_CheckedChanged(object sender, CheckedEventArgs e)
        {
            if (this.chkPermit_PS_EnvAssess.Checked == true)
            {
                txtPermit_PS_EnvAssess.Enabled = true;
                txtPermit_PPA_EnvAssess.Enabled = true;
            }
            else
            {
                txtPermit_PS_EnvAssess.Enabled = false;
                txtPermit_PPA_EnvAssess.Enabled = false;
            }
            if (this.chkPermit_PS_EnergySaving.Checked == true)
            {
                txtPermit_PS_EnergySaving.Enabled = true;
                txtPermit_PPA_EnergySaving.Enabled = true;
            }
            else
            {
                txtPermit_PS_EnergySaving.Enabled = false;
                txtPermit_PPA_EnergySaving.Enabled = false;
            }
            if (chkPermit_PS_ProjectRegistr.Checked == true)
            {
                txtPermit_PS_ProjectRegistr.Enabled = true;
                txtPermit_PPA_ProjectRegistration.Enabled = true;
            }
            else
            {
                txtPermit_PS_ProjectRegistr.Enabled = false;
                txtPermit_PPA_ProjectRegistration.Enabled = false;
            }
            if (chkPermit_PS_PlanningPermit.Checked == true)
            {
                txtPermit_PS_PlanningPermit.Enabled = true;
                txtPermit_PPA_PlanningPermit.Enabled = true;
            }
            else
            {
                txtPermit_PS_PlanningPermit.Enabled = false;
                txtPermit_PPA_PlanningPermit.Enabled = false;
            }
            if (chkPermit_PS_SafetyConReview.Checked == true)
            {
                txtPermit_PS_SafetyConReview.Enabled = true;
                txtPermit_PPA_SafetyConRev.Enabled = true;
            }
            else
            {
                txtPermit_PS_SafetyConReview.Enabled = false;
                txtPermit_PPA_SafetyConRev.Enabled = false;
            }
            if (chkPermit_PS_SafetyDesginReview.Checked == true)
            {
                txtPermit_PS_SafetyDesginReview.Enabled = true;
                txtPermit_PPA_SafetyDesignRev.Enabled = true;
            }
            else
            {
                txtPermit_PS_SafetyDesginReview.Enabled = false;
                txtPermit_PPA_SafetyDesignRev.Enabled = false;
            }
            if (chkPermit_PS_FFDesginReview.Checked == true)
            {
                txtPermit_PS_FFDesginReview.Enabled = true;
                txtPermit_PPA_FFDesignReview.Enabled = true;
            }
            else
            {
                txtPermit_PS_FFDesginReview.Enabled = false;
                txtPermit_PPA_FFDesignReview.Enabled = false;
            }
            if (chkPermit_PS_ConstPermit.Checked == true)
            {
                txtPermit_PS_ConstPermit.Enabled = true;
                txtPermit_PA_ConstPermit.Enabled = true;
            }
            else
            {
                txtPermit_PS_ConstPermit.Enabled = false;
                txtPermit_PA_ConstPermit.Enabled = false;
            }
            if (chkPermit_PS_SafetyFinalAcc.Checked == true)
            {
                txtPermit_PS_SafetyFinalAcc.Enabled = true;
                txtPermit_PA_SafetyFinalACC.Enabled = true;
            }
            else
            {
                txtPermit_PS_SafetyFinalAcc.Enabled = false;
                txtPermit_PA_SafetyFinalACC.Enabled = false;
            }
            if (chkPermit_PS_FFFinalAcc.Checked == true)
            {
                txtPermit_PS_FFFinalAcc.Enabled = true;
                txtPermit_PA_FFFinalACC.Enabled = true;
            }
            else
            {
                txtPermit_PS_FFFinalAcc.Enabled = false;
                txtPermit_PA_FFFinalACC.Enabled = false;
            }
            if (chkPermit_PS_EnvFinalAcc.Checked == true)
            {
                txtPermit_PS_EnvFinalAcc.Enabled = true;
                txtPermit_PA_EnvFinalACC.Enabled = true;
            }
            else
            {
                txtPermit_PS_EnvFinalAcc.Enabled = false;
                txtPermit_PA_EnvFinalACC.Enabled = false;
            }
            if (chkPermit_PS_ArchiveAccep.Checked == true)
            {
                txtPermit_PS_ArchiveAccep.Enabled = true;
            }
            else
            {
                txtPermit_PS_ArchiveAccep.Enabled = false;
            }
            if (chkPermit_PS_3rdConstJian.Checked == true)
            {
                txtPermit_PS_3rdConstJian.Enabled = true;
            }
            else
            {
                txtPermit_PS_3rdConstJian.Enabled = false;
            }
        }
        #endregion
    }
}