using BLL; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace FineUIPro.Web.ResourcePlan { public partial class ResourcePlanAdd : PageBase { /// /// 角色编辑页面 /// /// /// //string eProjectId = string.Empty; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //GetButtonPower();//按钮权限 btnClose.OnClientClick = ActiveWindow.GetHideReference(); checkJobType.DataTextField = "ConstText"; checkJobType.DataValueField = "ConstValue"; checkJobType.DataSource = BLL.ConstService.GetConstListByGroupId(BLL.Const.ProjectPlanner_JobType); checkJobType.DataBind(); //Phase暂无 //checkPhase.DataTextField = "ConstText"; //checkPhase.DataValueField = "ConstValue"; //checkPhase.DataSource = BLL.ConstService.GetConstListByGroupId(BLL.Const.ProjectPlanner_JobType); //checkPhase.DataBind(); //checkPriority.DataTextField = "ConstText"; //checkPriority.DataValueField = "ConstValue"; //checkPriority.DataSource = BLL.ConstService.GetConstListByGroupId(BLL.Const.PM_Priority); //checkPriority.DataBind(); //项目经理 BLL.Sys_UserService.InitCTEUserDropDownList(this.ddDesigner, false); BLL.Sys_UserService.InitCTEUserDropDownList(this.ddChecker, false); BLL.Sys_UserService.InitCTEUserDropDownList(this.ddApprover, false); BLL.Sys_UserService.InitCTEUserDropDownList(this.ddLeader, false); BLL.Sys_UserService.InitCTEUserDropDownList(this.DropDownList1, false); BLL.Sys_UserService.InitCTEUserDropDownList(this.DropDownList2, false); BLL.Sys_UserService.InitCTEUserDropDownList(this.DropDownList3, false); BLL.Sys_UserService.InitCTEUserDropDownList(this.DropDownList4, false); BLL.Sys_UserService.InitCTEUserDropDownList(this.DropDownList5, false); BLL.Sys_UserService.InitCTEUserDropDownList(this.DropDownList6, false); BLL.Sys_UserService.InitUserDropDownList(this.DropDownList7, false); string eProjectId = Request.Params["eProjectId"]; if (!string.IsNullOrEmpty(eProjectId)) { var eProject = BLL.EProjectService.GeteProjectById(eProjectId); if (eProject != null) { this.txtJobNo.Text = eProject.ProjectControl_JobNo; this.txtJobTitle.Text = eProject.ProjectControl_JobTitle; //this.txtWO.Text = eProject.ProjectControl_Account; this.txtMOCNo.Text = eProject.ProjectControl_MOCFormNo; if (!string.IsNullOrEmpty(eProject.PM_General_CDI)) { BLL.ConstService.InitConstValueDropDownList(this.drpCDI, BLL.Const.PM_CDI, false); cbCDI.Checked = true; drpCDI.SelectedValue = eProject.PM_General_CDI; } foreach (CheckItem lst in this.checkJobType.Items)//项目类型 { if (!string.IsNullOrEmpty(eProject.ProjectControl_JobType)) { if (eProject.ProjectControl_JobType.Equals(lst.Value)) lst.Selected = true; } } //foreach (CheckItem lsts in this.checkPriority.Items)//优先级 //{ // if (!string.IsNullOrEmpty(eProject.PM_General_Priority)) // { // if (eProject.PM_General_Priority.Equals(lsts.Value)) // lsts.Selected = true; // } //} var rp = BLL.ResourcePlanService.GetResourcePlanByEProjectId(eProjectId); if (rp.Count() >0 && (eProject.ProjectControl_JobType == "Projects" || eProject.ProjectControl_JobType == "Small Invest")) { txtWO.Label = "NetWork"; txtWO.Enabled = false; } SqlParameter[] parameter = new SqlParameter[] { new SqlParameter("@EProjectId",eProjectId) }; DataSet ds = SQLHelper.RunProcedure("Proc_View_ResourcePlanDetailWBS", parameter, "t"); DataTable table1 = ds.Tables[0]; DataTable table2 = ds.Tables[1]; if (table1.Rows.Count > 0 && table1 != null) { foreach (DataRow item in table1.Rows) { if (!string.IsNullOrEmpty(item["Sch_Start"].ToString())) { txtSchStart2.Text = item["Sch_Start"].ToString(); } if (!string.IsNullOrEmpty(item["Sch_End"].ToString())) { txtSchEnd2.Text = item["Sch_End"].ToString(); } } } if (table2.Rows.Count > 0 && table2 != null) { foreach (DataRow item in table2.Rows) { if (!string.IsNullOrEmpty(item["Sch_Start"].ToString())) { DatePicker1.Text = item["Sch_Start"].ToString(); } if (!string.IsNullOrEmpty(item["Sch_End"].ToString())) { DatePicker2.Text = item["Sch_End"].ToString(); } } } if (!string.IsNullOrEmpty(eProject.ProjectControl_ProjectManagerId)) { this.DropDownList7.SelectedValue = eProject.ProjectControl_ProjectManagerId; } //绑定 BindGrid(); } } } } private void BindGrid() { string strSql = @"SELECT DisciplinesWBSId,DisciplinesWBSCode,DisciplinesWBSName,WBS,DepartId,DepartName,NetworkOper,WorkorderOper,Designer,Checker,Approver,Leader,Roles,Remark,Type,'' as UserName,'' as UserId" + @" FROM Base_DisciplinesWBS "; DataTable table = SQLHelper.GetDataTableRunText(strSql, null); DataRow[] dr1 = table.Select("Type='1'", "DisciplinesWBSCode asc"); //复制结构 DataTable newData1 = table.Clone(); DataTable newData2 = table.Clone(); DataTable newData3 = table.Clone(); for (int i = 0; i < dr1.Length; i++) { //添加一行数据 DataRow row = newData1.NewRow(); row["DisciplinesWBSId"] = dr1[i]["DisciplinesWBSId"].ToString(); row["DisciplinesWBSCode"] = dr1[i]["DisciplinesWBSCode"].ToString(); row["DisciplinesWBSName"] = dr1[i]["DisciplinesWBSName"].ToString(); row["WBS"] = dr1[i]["WBS"].ToString(); row["DepartId"] = dr1[i]["DepartId"].ToString(); row["DepartName"] = dr1[i]["DepartName"].ToString(); row["NetworkOper"] = dr1[i]["NetworkOper"].ToString(); row["WorkorderOper"] = dr1[i]["WorkorderOper"].ToString(); row["Designer"] = dr1[i]["Designer"].ToString(); row["Checker"] = dr1[i]["Checker"].ToString(); row["Approver"] = dr1[i]["Approver"].ToString(); row["Leader"] = dr1[i]["Leader"].ToString(); row["Roles"] = dr1[i]["Roles"].ToString(); row["Remark"] = dr1[i]["Remark"].ToString(); row["Type"] = dr1[i]["Type"].ToString(); newData1.Rows.Add(row); } Grid3.DataSource = newData1; Grid3.DataBind(); DataRow[] dr2 = table.Select("Type='2'", "DisciplinesWBSCode asc"); for (int i = 0; i < dr2.Length; i++) { //添加一行数据 DataRow row = newData2.NewRow(); row["DisciplinesWBSId"] = dr2[i]["DisciplinesWBSId"].ToString(); row["DisciplinesWBSCode"] = dr2[i]["DisciplinesWBSCode"].ToString(); row["DisciplinesWBSName"] = dr2[i]["DisciplinesWBSName"].ToString(); row["WBS"] = dr2[i]["WBS"].ToString(); row["NetworkOper"] = dr2[i]["NetworkOper"].ToString(); row["WorkorderOper"] = dr2[i]["WorkorderOper"].ToString(); row["DepartId"] = dr2[i]["DepartId"].ToString(); row["DepartName"] = dr2[i]["DepartName"].ToString(); //如果EProjectContol中的CM不为空,新增RP时自动加载EProjectContol中的CM到Construction Mngmnt的Name中 if (dr2[i]["DisciplinesWBSName"].ToString() == "Construction Mngmnt") { string eProjectId = Request.Params["eProjectId"]; var ep = BLL.EProjectService.GeteProjectById(eProjectId); if (ep != null) { if (!string.IsNullOrEmpty(ep.ProjectControl_ConstManagerId)) { row["Designer"] = ep.ProjectControl_ConstManagerId; } } } else { row["Designer"] = dr2[i]["Designer"].ToString(); } row["Checker"] = dr2[i]["Checker"].ToString(); row["Approver"] = dr2[i]["Approver"].ToString(); row["Leader"] = dr2[i]["Leader"].ToString(); row["Roles"] = dr2[i]["Roles"].ToString(); row["Remark"] = dr2[i]["Remark"].ToString(); row["Type"] = dr2[i]["Type"].ToString(); newData2.Rows.Add(row); } Grid4.DataSource = newData2; Grid4.DataBind(); DataRow[] dr3 = table.Select("Type='3'", "DisciplinesWBSCode asc"); for (int i = 0; i < dr3.Length; i++) { //添加一行数据 DataRow row = newData3.NewRow(); row["DisciplinesWBSId"] = dr3[i]["DisciplinesWBSId"].ToString(); row["DisciplinesWBSCode"] = dr3[i]["DisciplinesWBSCode"].ToString(); row["DisciplinesWBSName"] = dr3[i]["DisciplinesWBSName"].ToString(); row["WBS"] = dr3[i]["WBS"].ToString(); row["NetworkOper"] = dr3[i]["NetworkOper"].ToString(); row["WorkorderOper"] = dr3[i]["WorkorderOper"].ToString(); row["DepartId"] = dr3[i]["DepartId"].ToString(); row["DepartName"] = dr3[i]["DepartName"].ToString(); row["Designer"] = dr3[i]["Designer"].ToString(); row["Checker"] = dr3[i]["Checker"].ToString(); row["Approver"] = dr3[i]["Approver"].ToString(); row["Leader"] = dr3[i]["Leader"].ToString(); row["Roles"] = dr3[i]["Roles"].ToString(); row["Remark"] = dr3[i]["Remark"].ToString(); row["Type"] = dr3[i]["Type"].ToString(); newData3.Rows.Add(row); } Grid5.DataSource = newData3; Grid5.DataBind(); } protected void Grid3_RowDataBound(object sender, GridRowEventArgs e) { DataRowView row = e.DataItem as DataRowView; string DisciplinesWBSName = row["DisciplinesWBSName"].ToString(); if (DisciplinesWBSName == "PID" || DisciplinesWBSName == "Document" || DisciplinesWBSName == "Cost Estimate") { RenderField Sch_Start = Grid3.FindColumn("Sch_Start") as RenderField; e.CellCssClasses[Sch_Start.ColumnIndex] = "f-grid-cell-uneditable"; RenderField Sch_End = Grid3.FindColumn("Sch_End") as RenderField; e.CellCssClasses[Sch_End.ColumnIndex] = "f-grid-cell-uneditable"; } } #region CTE,CTA,CTM 选择复选框(只能选择其中一项) protected void cbDesign1_OnCheckedChanged(object sender, EventArgs e) { if (cbDesign1.Checked) { cbDesign2.Checked = false; cbDesign3.Checked = false; } } protected void cbDesign2_OnCheckedChanged(object sender, EventArgs e) { if (cbDesign2.Checked) { cbDesign1.Checked = false; cbDesign3.Checked = false; } } protected void cbDesign3_OnCheckedChanged(object sender, EventArgs e) { if (cbDesign3.Checked) { cbDesign1.Checked = false; cbDesign2.Checked = false; } } protected void cbProcurement1_OnCheckedChanged(object sender, EventArgs e) { if (cbProcurement1.Checked) { cbProcurement2.Checked = false; cbProcurement3.Checked = false; } } protected void cbProcurement2_OnCheckedChanged(object sender, EventArgs e) { if (cbProcurement2.Checked) { cbProcurement1.Checked = false; cbProcurement3.Checked = false; } } protected void cbProcurement3_OnCheckedChanged(object sender, EventArgs e) { if (cbProcurement3.Checked) { cbProcurement1.Checked = false; cbProcurement2.Checked = false; } } protected void cbConstruction1_OnCheckedChanged(object sender, EventArgs e) { if (cbConstruction1.Checked) { cbConstruction2.Checked = false; cbConstruction3.Checked = false; } } protected void cbConstruction2_OnCheckedChanged(object sender, EventArgs e) { if (cbConstruction2.Checked) { cbConstruction1.Checked = false; cbConstruction3.Checked = false; } } protected void cbConstruction3_OnCheckedChanged(object sender, EventArgs e) { if (cbConstruction3.Checked) { cbConstruction1.Checked = false; cbConstruction2.Checked = false; } } #endregion /// /// 提交按钮 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { try { Model.Resource_Plan model = new Model.Resource_Plan(); List PlanDetaillist = new List(); List ManHourList = new List(); Model.Editor_EProject EProjects = new Model.Editor_EProject(); List PMList = new List(); string eProjectId = Request.Params["eProjectId"]; model.ResourcePlanId = Guid.NewGuid().ToString(); model.EProjectId = eProjectId; model.WO = txtWO.Text; if (!string.IsNullOrEmpty(txtSchStart1.Text)) { model.ProjectApproval_Sch_Start = Convert.ToDateTime(txtSchStart1.Text); } model.ProjectApproval_Sch_NotApplicable = false; if (cbNotApplicable1.Checked) { model.ProjectApproval_Sch_NotApplicable = true; } if (!string.IsNullOrEmpty(txtSchStart2.Text)) { model.Detail_Eng_Civil_Sch_Start = Convert.ToDateTime(txtSchStart2.Text); } if (!string.IsNullOrEmpty(txtSchEnd2.Text)) { model.Detail_Eng_Civil_Sch_End = Convert.ToDateTime(txtSchEnd2.Text); } model.Detail_Eng_Civil_Sch_NotApplicable = false; if (cbNotApplicable2.Checked) { model.Detail_Eng_Civil_Sch_NotApplicable = true; } if (!string.IsNullOrEmpty(DatePicker1.Text)) { model.Detail_Eng_Mech_EI_Sch_Start = Convert.ToDateTime(DatePicker1.Text); } if (!string.IsNullOrEmpty(DatePicker2.Text)) { model.Detail_Eng_Mech_EI_Sch_End = Convert.ToDateTime(DatePicker2.Text); } model.Detail_Eng_Mech_EI_Sch_NotApplicable = false; if (CheckBox1.Checked) { model.Detail_Eng_Mech_EI_Sch_NotApplicable = true; } if (!string.IsNullOrEmpty(DatePicker3.Text)) { model.LLE_Procurement_Sch_Start = Convert.ToDateTime(DatePicker3.Text); } if (!string.IsNullOrEmpty(DatePicker4.Text)) { model.LLE_Procurement_Sch_End = Convert.ToDateTime(DatePicker4.Text); } model.LLE_Procurement_Sch_NotApplicable = false; if (CheckBox2.Checked) { model.LLE_Procurement_Sch_NotApplicable = true; } if (!string.IsNullOrEmpty(DatePicker5.Text)) { model.Const_Civil_Sch_Start = Convert.ToDateTime(DatePicker5.Text); } if (!string.IsNullOrEmpty(DatePicker6.Text)) { model.Const_Civil_Sch_End = Convert.ToDateTime(DatePicker6.Text); } model.Const_Civil_Sch_NotApplicable = false; if (CheckBox3.Checked) { model.Const_Civil_Sch_NotApplicable = true; } if (!string.IsNullOrEmpty(DatePicker7.Text)) { model.Const_Mech_EI_Start = Convert.ToDateTime(DatePicker7.Text); } if (!string.IsNullOrEmpty(DatePicker8.Text)) { model.Const_Mech_EI_End = Convert.ToDateTime(DatePicker8.Text); } model.Const_Mech_EI_NotApplicable = false; if (CheckBox4.Checked) { model.Const_Mech_EI_NotApplicable = true; } if (!string.IsNullOrEmpty(DatePicker9.Text)) { model.MC_Sch_Start = Convert.ToDateTime(DatePicker9.Text); } //if (!string.IsNullOrEmpty(DatePicker10.Text)) //{ // model.MC_Sch_End = Convert.ToDateTime(DatePicker10.Text); //} //model.MC_Sch_NotApplicable = false; if (CheckBox5.Checked) { model.MC_Sch_NotApplicable = true; } if (checkPhase.SelectedValueArray != null) { model.Phase = checkPhase.SelectedValueArray[0]; } //foreach (CheckItem item in checkPhase.Items) //{ // if (item.Selected) // { // model.Phase = item.Value; // } //} if (cbDesign1.Checked) { model.Design = "CTE"; } else if (cbDesign2.Checked) { model.Design = "CTA"; } else if (cbDesign3.Checked) { model.Design = "CTM"; } else { model.Design = null; } if (cbProcurement1.Checked) { model.Procurement = "CTE"; } else if (cbProcurement2.Checked) { model.Procurement = "CTA"; } else if (cbProcurement2.Checked) { model.Procurement = "CTM"; } else { model.Procurement = null; } if (cbConstruction1.Checked) { model.Construction = "CTE"; } else if (cbConstruction2.Checked) { model.Construction = "CTA"; } else if (cbConstruction3.Checked) { model.Construction = "CTM"; } else { model.Construction = null; } model.CreateDate = DateTime.Now; //Progress:自动计算% =(Today - Sch.Start)  / (Sch. End- Sch.Start) //更新 Editor_EProject EProjects.ModifyDate = DateTime.Now; EProjects.ModifyPerson = CurrUser.UserId; if (!string.IsNullOrEmpty(txtSchStart1.Text)) { EProjects.ProjectControl_MS_Approval = Convert.ToDateTime(txtSchStart1.Text); } if (!string.IsNullOrEmpty(DatePicker3.Text) && !string.IsNullOrEmpty(DatePicker4.Text)) { DateTime time = DateTime.Now; EProjects.ProjectControl_LP_SchStart = Funs.GetNewDateTime(this.DatePicker3.Text.Trim()); EProjects.ProjectControl_LP_SchEnd = Funs.GetNewDateTime(this.DatePicker4.Text.Trim()); TimeSpan ts1 = time - Convert.ToDateTime(EProjects.ProjectControl_LP_SchStart); TimeSpan ts2 = Convert.ToDateTime(EProjects.ProjectControl_LP_SchEnd) - Convert.ToDateTime(EProjects.ProjectControl_LP_SchStart); decimal ts = Convert.ToDecimal(Math.Round(ts1.Days * 100.0 / ts2.Days, 2)); EProjects.ProjectControl_LP_Progress = ts; EProjects.PM_LLEP_RevisedStart = Funs.GetNewDateTime(this.DatePicker3.Text.Trim()); EProjects.PM_LLEP_RevisedEnd = Funs.GetNewDateTime(this.DatePicker4.Text.Trim()); EProjects.PM_LLEP_ActualProgress = ts; } if (!string.IsNullOrEmpty(DatePicker5.Text) && !string.IsNullOrEmpty(DatePicker6.Text)) { DateTime time = DateTime.Now; EProjects.ProjectControl_CC_SchStart = Convert.ToDateTime(this.DatePicker5.Text.Trim()); EProjects.ProjectControl_CC_SchEnd = Convert.ToDateTime(this.DatePicker6.Text.Trim()); TimeSpan ts1 = time - Convert.ToDateTime(EProjects.ProjectControl_CC_SchStart); TimeSpan ts2 = Convert.ToDateTime(EProjects.ProjectControl_CC_SchEnd) - Convert.ToDateTime(EProjects.ProjectControl_CC_SchStart); decimal ts = Convert.ToDecimal(Math.Round(ts1.Days * 100.0 / ts2.Days, 2)); EProjects.ProjectControl_CC_Progress = ts; EProjects.CM_CC_RevisedStart = Convert.ToDateTime(this.DatePicker5.Text.Trim()); EProjects.CM_CC_RevisedEnd = Convert.ToDateTime(this.DatePicker6.Text.Trim()); EProjects.CM_CC_AcutalProgress = ts; } if (!string.IsNullOrEmpty(DatePicker7.Text) && !string.IsNullOrEmpty(DatePicker8.Text)) { DateTime time = DateTime.Now; EProjects.ProjectControl_CM_SchStart = Convert.ToDateTime(this.DatePicker7.Text.Trim()); EProjects.ProjectControl_CM_SchEnd = Convert.ToDateTime(this.DatePicker8.Text.Trim()); TimeSpan ts1 = time - Convert.ToDateTime(EProjects.ProjectControl_CM_SchStart); TimeSpan ts2 = Convert.ToDateTime(EProjects.ProjectControl_CM_SchEnd) - Convert.ToDateTime(EProjects.ProjectControl_CM_SchStart); decimal ts = Convert.ToDecimal(Math.Round(ts1.Days * 100.0 / ts2.Days, 2)); EProjects.ProjectControl_CM_Progress = ts; EProjects.CM_CM_RevisedStart = Convert.ToDateTime(this.DatePicker7.Text.Trim()); EProjects.CM_CM_RevisedEnd = Convert.ToDateTime(this.DatePicker8.Text.Trim()); EProjects.CM_CM_AcutalProgress = ts; } if (!string.IsNullOrEmpty(DatePicker9.Text)) { EProjects.ProjectControl_MS_MC = Funs.GetNewDateTime(this.DatePicker9.Text.Trim()); EProjects.ProjectControl_Revised_MC_Date = Funs.GetNewDateTime(this.DatePicker9.Text.Trim()); EProjects.ProjectControl_MS_Close = Funs.GetNewDateTime(this.DatePicker9.Text.Trim()).Value.AddMonths(6); } if (!string.IsNullOrEmpty(DropDownList7.SelectedValue)) { EProjects.ProjectControl_ProjectManagerId = DropDownList7.SelectedValue; } //foreach (CheckItem item in this.checkPriority.Items) //{ // if (item.Selected) // { // EProjects.PM_General_Priority = item.Value; // } //} string ProjectControlAccount = txtWO.Text; // 添加第二个资源逻辑 类型项目或小型投机 account为空,wo为network var rp = BLL.ResourcePlanService.GetResourcePlanByEProjectId(eProjectId); var eProject = BLL.EProjectService.GeteProjectById(eProjectId); if (eProject.ProjectControl_JobType != "Projects" && eProject.ProjectControl_JobType != "Small Invest") { EProjects.ProjectControl_Account = txtWO.Text; } if (rp.Count() > 0) { // 把account 加日期写入StudyWo中 EProjects.StudyWo = eProject.ProjectControl_Account; if (eProject.ProjectControl_JobType == "Projects" || eProject.ProjectControl_JobType == "Small Invest") { EProjects.ProjectControl_Account = null; ProjectControlAccount = string.Empty; } // 后加条件,当创建第二个资源时,项目批准日期不为空时项目状态为On Going 不要了 修改于2024.07.03 //if (eProject.ProjectControl_JobType == "Other" && eProject.PM_MA_ProjectApproval.HasValue && !eProject.CM_MA_MC.HasValue // && (eProject.ProjectControl_JobStatus == "Not Start" || eProject.ProjectControl_JobStatus == "Study")) //{ // EProjects.ProjectControl_JobStatus = "On Going"; //} //else //{ // EProjects.ProjectControl_JobStatus = eProject.ProjectControl_JobStatus; //} //(现增加第二张资源一个月后关闭) //if(eProject.ProjectControl_JobType == "MOC") //{ // // 如果类型是moc在增加第二张资源时,则第一张资源的人工时AccountDisabled关闭,如是other则手动关闭,如果不是则在编辑器中维护network时关闭第一张资源人工时AccountDisabled // PlanService.UpdateManHourPlanAccountDisabled(rp.First().ResourcePlanId, 1); //} } if (eProject != null) { if (eProject.ProjectControl_JobStatus == "Not Start" && !eProject.PM_MA_ProjectApproval.HasValue) { EProjects.ProjectControl_JobStatus = "Study"; } else { EProjects.ProjectControl_JobStatus = eProject.ProjectControl_JobStatus; } if (cbCDI.Checked) { EProjects.PM_General_CDI = drpCDI.SelectedValue; } } // pm 添加到人工时 if (!string.IsNullOrEmpty(DropDownList7.SelectedValue) && !string.IsNullOrEmpty(NumberBox15.Text)) { if (BLL.Sys_UserService.IsCTEAndCalculated(DropDownList7.SelectedValue)) { var pmd = from x in Funs.DB.Base_DisciplinesWBS where x.Type == "4" select x; Model.ManHours_Plan PM = new Model.ManHours_Plan(); PM.ManHoursPlanId = Guid.NewGuid().ToString(); PM.ResourcePlanId = model.ResourcePlanId; PM.EProjectId = Request.Params["eProjectId"]; PM.EngineerId = DropDownList7.SelectedValue; PM.Account = txtWO.Text; if (pmd.Count() > 0) { PM.DisciplineId = pmd.FirstOrDefault().DisciplinesWBSId; PM.Discipline = pmd.FirstOrDefault().DisciplinesWBSName; PM.Roles = pmd.FirstOrDefault().Roles; if (eProject.ProjectControl_JobType == "Projects" || eProject.ProjectControl_JobType == "Small Invest") { if (checkPhase.Items[0].Selected) { if (!string.IsNullOrEmpty(eProject.ProjectControl_NetworkNo)) { //ManHoursPlan.Account = WorkorderOper + "-" + txtWO.Text; PM.Account = eProject.ProjectControl_NetworkNo + "-" + pmd.FirstOrDefault().NetworkOper1; } else { PM.Account = pmd.FirstOrDefault().NetworkOper1; } } else { if (!string.IsNullOrEmpty(eProject.ProjectControl_NetworkNo)) { PM.Account = eProject.ProjectControl_NetworkNo + "-" + pmd.FirstOrDefault().NetworkOper; } else { PM.Account = pmd.FirstOrDefault().NetworkOper; } } } else { if (!string.IsNullOrEmpty(txtWO.Text)) { PM.Account = txtWO.Text + "-" + pmd.FirstOrDefault().WorkorderOper; } else { PM.Account = pmd.FirstOrDefault().WorkorderOper; } } } else { PM.DisciplineId = "M00"; PM.Discipline = "M00"; PM.Roles = "M00"; } PM.ManHours = Convert.ToInt32(NumberBox15.Text); PM.IsClose = 0; PM.AccountDisabled = 0; ManHourList.Add(PM); } } model.CountNum = 0; model.IsClose = 0; JArray JArrays = Grid3.GetMergedData(); if (JArrays.Count > 0) { //Process 1 JObject objectsProcess = (JObject)JArrays[1]; string Leader1 = objectsProcess["values"]["Leader"].ToString(); DateTime? schStart0 = null; DateTime? schEnd0 = null; if (!string.IsNullOrEmpty(objectsProcess["values"]["Sch_Start"].ToString())) { schStart0 = Convert.ToDateTime(objectsProcess["values"]["Sch_Start"].ToString()); } if (!string.IsNullOrEmpty(objectsProcess["values"]["Sch_End"].ToString())) { schEnd0 = Convert.ToDateTime(objectsProcess["values"]["Sch_End"].ToString()); } // Piping 8 JObject objectsPiping = (JObject)JArrays[8]; string Leader2 = objectsPiping["values"]["Leader"].ToString(); DateTime? schStart8 = null; DateTime? schEnd8 = null; if (!string.IsNullOrEmpty(objectsPiping["values"]["Sch_Start"].ToString())) { schStart8 = Convert.ToDateTime(objectsPiping["values"]["Sch_Start"].ToString()); } if (!string.IsNullOrEmpty(objectsPiping["values"]["Sch_End"].ToString())) { schEnd8 = Convert.ToDateTime(objectsPiping["values"]["Sch_End"].ToString()); } //Plumbing/F.F 6 JObject objectsPlumbing = (JObject)JArrays[6]; string Leader3 = objectsPlumbing["values"]["Leader"].ToString(); DateTime? schStart6 = null; DateTime? schEnd6 = null; if (!string.IsNullOrEmpty(objectsPlumbing["values"]["Sch_Start"].ToString())) { schStart6 = Convert.ToDateTime(objectsPlumbing["values"]["Sch_Start"].ToString()); } if (!string.IsNullOrEmpty(objectsPlumbing["values"]["Sch_End"].ToString())) { schEnd6 = Convert.ToDateTime(objectsPlumbing["values"]["Sch_End"].ToString()); } if (!String.IsNullOrEmpty(Leader1)) { EProjects.ProjectControl_CI_Process = Leader1; } else { if (!String.IsNullOrEmpty(Leader2)) { EProjects.ProjectControl_CI_Process = Leader2; } else { if (!String.IsNullOrEmpty(Leader3)) { EProjects.ProjectControl_CI_Process = Leader3; } else { EProjects.ProjectControl_CI_Process = eProject.ProjectControl_CI_Process; } } } JObject objectsCivil = (JObject)JArrays[3]; string Equipment1 = objectsCivil["values"]["Leader"].ToString(); DateTime? schStart3 = null; DateTime? schEnd3 = null; if (!string.IsNullOrEmpty(objectsCivil["values"]["Sch_Start"].ToString())) { schStart3 = Convert.ToDateTime(objectsCivil["values"]["Sch_Start"].ToString()); } if (!string.IsNullOrEmpty(objectsCivil["values"]["Sch_End"].ToString())) { schEnd3 = Convert.ToDateTime(objectsCivil["values"]["Sch_End"].ToString()); } JObject objectsArchitectral = (JObject)JArrays[4]; string Equipment2 = objectsArchitectral["values"]["Leader"].ToString(); DateTime? schStart4 = null; DateTime? schEnd4 = null; if (!string.IsNullOrEmpty(objectsArchitectral["values"]["Sch_Start"].ToString())) { schStart4 = Convert.ToDateTime(objectsArchitectral["values"]["Sch_Start"].ToString()); } if (!string.IsNullOrEmpty(objectsArchitectral["values"]["Sch_End"].ToString())) { schEnd4 = Convert.ToDateTime(objectsArchitectral["values"]["Sch_End"].ToString()); } JObject objectsHVAC = (JObject)JArrays[5]; string Equipment3 = objectsHVAC["values"]["Leader"].ToString(); DateTime? schStart5 = null; DateTime? schEnd5 = null; if (!string.IsNullOrEmpty(objectsHVAC["values"]["Sch_Start"].ToString())) { schStart5 = Convert.ToDateTime(objectsHVAC["values"]["Sch_Start"].ToString()); } if (!string.IsNullOrEmpty(objectsHVAC["values"]["Sch_End"].ToString())) { schEnd5 = Convert.ToDateTime(objectsHVAC["values"]["Sch_End"].ToString()); } JObject objectsMasterplanning = (JObject)JArrays[2]; string Equipment4 = objectsMasterplanning["values"]["Leader"].ToString(); DateTime? schStart2 = null; DateTime? schEnd2 = null; if (!string.IsNullOrEmpty(objectsMasterplanning["values"]["Sch_Start"].ToString())) { schStart2 = Convert.ToDateTime(objectsMasterplanning["values"]["Sch_Start"].ToString()); } if (!string.IsNullOrEmpty(objectsMasterplanning["values"]["Sch_End"].ToString())) { schEnd2 = Convert.ToDateTime(objectsMasterplanning["values"]["Sch_End"].ToString()); } // ProjectControl_CI_Equipment // 取优先级Civil>Architectral>HVAC>Masterplanning if (!String.IsNullOrEmpty(Equipment1)) { EProjects.ProjectControl_CI_Civil = Equipment1; } else { if (!String.IsNullOrEmpty(Equipment2)) { EProjects.ProjectControl_CI_Civil = Equipment2; } else { if (!String.IsNullOrEmpty(Equipment3)) { EProjects.ProjectControl_CI_Civil = Equipment3; } else { if (!String.IsNullOrEmpty(Equipment4)) { EProjects.ProjectControl_CI_Civil = Equipment4; } else { EProjects.ProjectControl_CI_Civil = eProject.ProjectControl_CI_Civil; } } } } JObject objectsInstrument = (JObject)JArrays[11]; string Instrument = objectsInstrument["values"]["Leader"].ToString(); DateTime? schStart11 = null; DateTime? schEnd11 = null; if (!string.IsNullOrEmpty(objectsInstrument["values"]["Sch_Start"].ToString())) { schStart11 = Convert.ToDateTime(objectsInstrument["values"]["Sch_Start"].ToString()); } if (!string.IsNullOrEmpty(objectsInstrument["values"]["Sch_End"].ToString())) { schEnd11 = Convert.ToDateTime(objectsInstrument["values"]["Sch_End"].ToString()); } if (!string.IsNullOrEmpty(Instrument)) { EProjects.ProjectControl_CI_Instrument = Instrument; } else { EProjects.ProjectControl_CI_Instrument = eProject.ProjectControl_CI_Instrument; } JObject objectsElectrical = (JObject)JArrays[9]; string Electrical = objectsElectrical["values"]["Leader"].ToString(); DateTime? schStart9 = null; DateTime? schEnd9 = null; if (!string.IsNullOrEmpty(objectsElectrical["values"]["Sch_Start"].ToString())) { schStart9 = Convert.ToDateTime(objectsElectrical["values"]["Sch_Start"].ToString()); } if (!string.IsNullOrEmpty(objectsElectrical["values"]["Sch_End"].ToString())) { schEnd9 = Convert.ToDateTime(objectsElectrical["values"]["Sch_End"].ToString()); } JObject objectsTelecommunication = (JObject)JArrays[10]; string Telecommunication = objectsTelecommunication["values"]["Leader"].ToString(); DateTime? schStart10 = null; DateTime? schEnd10 = null; if (!string.IsNullOrEmpty(objectsTelecommunication["values"]["Sch_Start"].ToString())) { schStart10 = Convert.ToDateTime(objectsTelecommunication["values"]["Sch_Start"].ToString()); } if (!string.IsNullOrEmpty(objectsTelecommunication["values"]["Sch_End"].ToString())) { schEnd10 = Convert.ToDateTime(objectsTelecommunication["values"]["Sch_End"].ToString()); } if (!String.IsNullOrEmpty(Electrical)) { EProjects.ProjectControl_CI_Electrical = Electrical; } else { if (!String.IsNullOrEmpty(Telecommunication)) { EProjects.ProjectControl_CI_Electrical = Telecommunication; } else { EProjects.ProjectControl_CI_Electrical = eProject.ProjectControl_CI_Electrical; } } JObject objectsMech = (JObject)JArrays[7]; string MechEqui = objectsMech["values"]["Leader"].ToString(); DateTime? schStart7 = null; DateTime? schEnd7 = null; if (!string.IsNullOrEmpty(objectsMech["values"]["Sch_Start"].ToString())) { schStart7 = Convert.ToDateTime(objectsMech["values"]["Sch_Start"].ToString()); } if (!string.IsNullOrEmpty(objectsMech["values"]["Sch_End"].ToString())) { schEnd7 = Convert.ToDateTime(objectsMech["values"]["Sch_End"].ToString()); } if (!String.IsNullOrEmpty(MechEqui)) { EProjects.ProjectControl_CI_Equipment = MechEqui; } else { EProjects.ProjectControl_CI_Equipment = eProject.ProjectControl_CI_Equipment; } Model.Resource_PlanDetail PlanDetail = null; for (int i = 0; i < JArrays.Count; i++) { PlanDetail = new Model.Resource_PlanDetail(); //int rowIndex = Grid3.SelectedRowIndexArray[i]; JObject objects = (JObject)JArrays[i]; object[] dataKeys = Grid3.DataKeys[i]; PlanDetail.ResourcePlanDetailId = Guid.NewGuid().ToString(); PlanDetail.ResourcePlanId = model.ResourcePlanId; PlanDetail.EProjectId = Request.Params["eProjectId"]; PlanDetail.DisciplinesWBSId = dataKeys[0].ToString(); PlanDetail.DisciplinesWBSCode = dataKeys[1].ToString(); PlanDetail.DisciplinesWBSName = dataKeys[2].ToString(); PlanDetail.WBS = dataKeys[3].ToString(); PlanDetail.ISort = i + 1; string NetworkOper = objects["values"]["NetworkOper"].ToString(); string WorkorderOper = objects["values"]["WorkorderOper"].ToString(); PlanDetail.DesignersId = objects["values"]["Designer"].ToString(); if (!string.IsNullOrEmpty(objects["values"]["Sch_Start"].ToString())) { PlanDetail.Sch_Start = Convert.ToDateTime(objects["values"]["Sch_Start"].ToString()); } if (!string.IsNullOrEmpty(objects["values"]["Sch_End"].ToString())) { PlanDetail.Sch_End = Convert.ToDateTime(objects["values"]["Sch_End"].ToString()); } if (!string.IsNullOrEmpty(objects["values"]["Ratio1"].ToString())) { PlanDetail.Ratio1 = Convert.ToDecimal(objects["values"]["Ratio1"]); } if (!string.IsNullOrEmpty(objects["values"]["ManHours1"].ToString())) { PlanDetail.ManHours1 = Convert.ToDecimal(objects["values"]["ManHours1"]); } PlanDetail.CheckersId = objects["values"]["Checker"].ToString(); if (!string.IsNullOrEmpty(objects["values"]["Ratio2"].ToString())) { PlanDetail.Ratio2 = Convert.ToDecimal(objects["values"]["Ratio2"]); } if (!string.IsNullOrEmpty(objects["values"]["ManHours2"].ToString())) { PlanDetail.ManHours2 = Convert.ToDecimal(objects["values"]["ManHours2"]); } PlanDetail.ApproversId = objects["values"]["Approver"].ToString(); if (!string.IsNullOrEmpty(objects["values"]["Ratio3"].ToString())) { PlanDetail.Ratio3 = Convert.ToDecimal(objects["values"]["Ratio3"]); } if (!string.IsNullOrEmpty(objects["values"]["ManHours3"].ToString())) { PlanDetail.ManHours3 = Convert.ToDecimal(objects["values"]["ManHours3"]); } PlanDetail.LeadersId = objects["values"]["Leader"].ToString(); if (!string.IsNullOrEmpty(objects["values"]["Ratio4"].ToString())) { PlanDetail.Ratio4 = Convert.ToDecimal(objects["values"]["Ratio4"]); } if (!string.IsNullOrEmpty(objects["values"]["ManHours4"].ToString())) { PlanDetail.ManHours4 = Convert.ToDecimal(objects["values"]["ManHours4"]); } PlanDetail.Types = "1"; PlanDetaillist.Add(PlanDetail); if (!string.IsNullOrEmpty(objects["values"]["Designer"].ToString()) || !string.IsNullOrEmpty(objects["values"]["Checker"].ToString()) || !string.IsNullOrEmpty(objects["values"]["Approver"].ToString()) || !string.IsNullOrEmpty(objects["values"]["Leader"].ToString())) { Model.Editor_PM EditorPM = new Model.Editor_PM(); EditorPM.PMId = Guid.NewGuid().ToString(); EditorPM.EProjectId = Request.Params["eProjectId"]; EditorPM.DisciplinesWBSCode = dataKeys[1].ToString(); EditorPM.DisciplinesWBSName = dataKeys[2].ToString(); EditorPM.WBS = dataKeys[3].ToString(); if (!string.IsNullOrEmpty(objects["values"]["Sch_Start"].ToString())) { EditorPM.SchStart = Convert.ToDateTime(objects["values"]["Sch_Start"].ToString()); EditorPM.RevisedStart = Convert.ToDateTime(objects["values"]["Sch_Start"].ToString()); } if (!string.IsNullOrEmpty(objects["values"]["Sch_End"].ToString())) { EditorPM.SchEnd = Convert.ToDateTime(objects["values"]["Sch_End"].ToString()); EditorPM.RevisedEnd = Convert.ToDateTime(objects["values"]["Sch_End"].ToString()); } PMList.Add(EditorPM); } // 总计划人工时 string Designer = objects["values"]["Designer"].ToString() + "@" + objects["values"]["Checker"].ToString() + "@" + objects["values"]["Approver"].ToString() + "@" + objects["values"]["Leader"].ToString(); string ManHours = objects["values"]["ManHours1"].ToString() + "@" + objects["values"]["ManHours2"].ToString() + "@" + objects["values"]["ManHours3"].ToString() + "@" + objects["values"]["ManHours4"].ToString(); string[] DesignerArr = Designer.Split('@'); string[] ManHoursArr = ManHours.Split('@'); Model.ManHours_Plan ManHoursPlan = null; for (int l = 0; l < DesignerArr.Length; l++) { if (!string.IsNullOrEmpty(DesignerArr[l].ToString())) { ManHoursPlan = new Model.ManHours_Plan(); ManHoursPlan.ManHoursPlanId = Guid.NewGuid().ToString(); ManHoursPlan.ResourcePlanId = model.ResourcePlanId; ManHoursPlan.EProjectId = Request.Params["eProjectId"]; ManHoursPlan.EngineerId = DesignerArr[l].ToString(); if (BLL.Sys_UserService.IsCTEAndCalculated(DesignerArr[l])) { if (!string.IsNullOrEmpty(ManHoursArr[l].ToString())) { ManHoursPlan.ManHours = Convert.ToInt32(ManHoursArr[l].ToString()); } } else { ManHoursPlan.ManHours = 0; } //ManHoursPlan.Roles = objects["values"]["Roles"].ToString(); ManHoursPlan.DisciplineId = dataKeys[0].ToString(); ManHoursPlan.Discipline = dataKeys[2].ToString(); var wbs = BLL.DisciplinesWBSService.GetDisciplinesWBSById(dataKeys[0].ToString()); string roles = string.Empty; if (l == 0) { if (wbs.Designer == "D10" || wbs.Designer == "D20") { roles = wbs.Designer; } else { roles = wbs.Designer + "_Designer"; } } if (l == 1) { roles = wbs.Checker + "_Checker"; } if (l == 2) { roles = wbs.Approver + "_Approver"; } if (l == 3) { roles = wbs.Leader + "_Leader"; } ManHoursPlan.Roles = roles; //ManHoursPlan.Account = txtWO.Text; if (eProject.ProjectControl_JobType == "Projects" || eProject.ProjectControl_JobType == "Small Invest") { if (checkPhase.Items[0].Selected) { if (!string.IsNullOrEmpty(eProject.ProjectControl_NetworkNo)) { //ManHoursPlan.Account = WorkorderOper + "-" + txtWO.Text; ManHoursPlan.Account = eProject.ProjectControl_NetworkNo + "-" + wbs.NetworkOper1; } else { ManHoursPlan.Account = wbs.NetworkOper1; } } else { if (!string.IsNullOrEmpty(eProject.ProjectControl_NetworkNo)) { ManHoursPlan.Account = eProject.ProjectControl_NetworkNo + "-" + NetworkOper; } else { ManHoursPlan.Account = NetworkOper; } } } else { if (!string.IsNullOrEmpty(txtWO.Text)) { ManHoursPlan.Account = txtWO.Text + "-" + WorkorderOper; } else { ManHoursPlan.Account = WorkorderOper; } } ManHoursPlan.IsClose = 0; ManHoursPlan.AccountDisabled = 0; ManHourList.Add(ManHoursPlan); } } } } JArray ConstructionArr = Grid4.GetMergedData(); if (ConstructionArr.Count > 0) { Model.Resource_PlanDetail PlanDetail = null; for (int c = 0; c < ConstructionArr.Count; c++) { JObject objects = (JObject)ConstructionArr[c]; PlanDetail = new Model.Resource_PlanDetail(); PlanDetail.ResourcePlanDetailId = Guid.NewGuid().ToString(); PlanDetail.ResourcePlanId = model.ResourcePlanId; PlanDetail.EProjectId = Request.Params["eProjectId"]; object[] dataKeys = Grid4.DataKeys[c]; PlanDetail.ISort = c + 1; PlanDetail.DisciplinesWBSId = dataKeys[0].ToString(); PlanDetail.DisciplinesWBSCode = dataKeys[1].ToString(); PlanDetail.DisciplinesWBSName = dataKeys[2].ToString(); PlanDetail.WBS = dataKeys[3].ToString(); string NetworkOper = objects["values"]["NetworkOper"].ToString(); string WorkorderOper = objects["values"]["WorkorderOper"].ToString(); PlanDetail.DesignersId = objects["values"]["Designer"].ToString(); if (!string.IsNullOrEmpty(objects["values"]["Ratio1"].ToString())) { PlanDetail.Ratio1 = Convert.ToDecimal(objects["values"]["Ratio1"]); } if (!string.IsNullOrEmpty(objects["values"]["ManHours1"].ToString())) { PlanDetail.ManHours1 = Convert.ToDecimal(objects["values"]["ManHours1"]); } PlanDetail.CheckersId = objects["values"]["Checker"].ToString(); if (!string.IsNullOrEmpty(objects["values"]["Ratio2"].ToString())) { PlanDetail.Ratio2 = Convert.ToDecimal(objects["values"]["Ratio2"]); } if (!string.IsNullOrEmpty(objects["values"]["ManHours2"].ToString())) { PlanDetail.ManHours2 = Convert.ToDecimal(objects["values"]["ManHours2"]); } PlanDetail.ApproversId = objects["values"]["Approver"].ToString(); if (!string.IsNullOrEmpty(objects["values"]["Ratio3"].ToString())) { PlanDetail.Ratio3 = Convert.ToDecimal(objects["values"]["Ratio3"]); } if (!string.IsNullOrEmpty(objects["values"]["ManHours3"].ToString())) { PlanDetail.ManHours3 = Convert.ToDecimal(objects["values"]["ManHours3"]); } PlanDetail.Types = "2"; PlanDetaillist.Add(PlanDetail); //反写ProjectControl中CM if (PlanDetail.DisciplinesWBSName == "Construction Management") { if (!string.IsNullOrEmpty(PlanDetail.DesignersId)) { EProjects.ProjectControl_ConstManagerId = PlanDetail.DesignersId; EProjects.ProjectControl_ConstManager = BLL.Sys_UserService.GetUserNameByUserId(PlanDetail.DesignersId); } } string Designer = objects["values"]["Designer"].ToString() + "@" + objects["values"]["Checker"].ToString() + "@" + objects["values"]["Approver"].ToString(); string ManHours = objects["values"]["ManHours1"].ToString() + "@" + objects["values"]["ManHours2"].ToString() + "@" + objects["values"]["ManHours3"].ToString(); string[] DesignerArr = Designer.Split('@'); string[] ManHoursArr = ManHours.Split('@'); Model.ManHours_Plan ManHoursPlan = null; for (int l = 0; l < DesignerArr.Length; l++) { if (!string.IsNullOrEmpty(DesignerArr[l].ToString())) { ManHoursPlan = new Model.ManHours_Plan(); ManHoursPlan.ManHoursPlanId = Guid.NewGuid().ToString(); ManHoursPlan.ResourcePlanId = model.ResourcePlanId; ManHoursPlan.EProjectId = Request.Params["eProjectId"]; ManHoursPlan.Roles = objects["values"]["Roles"].ToString(); ManHoursPlan.EngineerId = DesignerArr[l].ToString(); if (BLL.Sys_UserService.IsCTEAndCalculated(DesignerArr[l])) { if (!string.IsNullOrEmpty(ManHoursArr[l].ToString())) { ManHoursPlan.ManHours = Convert.ToInt32(ManHoursArr[l].ToString()); } } else { ManHoursPlan.ManHours = 0; } ManHoursPlan.DisciplineId = dataKeys[0].ToString(); ManHoursPlan.Discipline = dataKeys[2].ToString(); var wbs = BLL.DisciplinesWBSService.GetDisciplinesWBSById(dataKeys[0].ToString()); // ManHoursPlan.Account = txtWO.Text; if (eProject.ProjectControl_JobType == "Projects" || eProject.ProjectControl_JobType == "Small Invest") { if (checkPhase.Items[0].Selected) { if (!string.IsNullOrEmpty(eProject.ProjectControl_NetworkNo)) { //ManHoursPlan.Account = WorkorderOper + "-" + txtWO.Text; ManHoursPlan.Account = eProject.ProjectControl_NetworkNo + "-" + wbs.NetworkOper1; } else { ManHoursPlan.Account = wbs.NetworkOper1; } } else { if (!string.IsNullOrEmpty(eProject.ProjectControl_NetworkNo)) { ManHoursPlan.Account = eProject.ProjectControl_NetworkNo + "-" + NetworkOper; } else { ManHoursPlan.Account = NetworkOper; } } } else { if (!string.IsNullOrEmpty(txtWO.Text)) { ManHoursPlan.Account = txtWO.Text + "-" + WorkorderOper; } else { ManHoursPlan.Account = WorkorderOper; } } ManHoursPlan.IsClose = 0; ManHoursPlan.AccountDisabled = 0; ManHourList.Add(ManHoursPlan); } } } } JArray QualityArr = Grid5.GetMergedData(); if (QualityArr.Count > 0) { Model.Resource_PlanDetail PlanDetail = null; for (int q = 0; q < QualityArr.Count; q++) { JObject objects = (JObject)QualityArr[q]; PlanDetail = new Model.Resource_PlanDetail(); PlanDetail.ResourcePlanDetailId = Guid.NewGuid().ToString(); PlanDetail.ResourcePlanId = model.ResourcePlanId; PlanDetail.EProjectId = Request.Params["eProjectId"]; object[] dataKeys = Grid5.DataKeys[q]; PlanDetail.DisciplinesWBSId = dataKeys[0].ToString(); PlanDetail.DisciplinesWBSCode = dataKeys[1].ToString(); PlanDetail.DisciplinesWBSName = dataKeys[2].ToString(); PlanDetail.WBS = dataKeys[3].ToString(); PlanDetail.ISort = q + 1; string NetworkOper = objects["values"]["NetworkOper"].ToString(); string WorkorderOper = objects["values"]["WorkorderOper"].ToString(); PlanDetail.DesignersId = objects["values"]["Designer"].ToString(); if (!string.IsNullOrEmpty(objects["values"]["Ratio1"].ToString())) { PlanDetail.Ratio1 = Convert.ToDecimal(objects["values"]["Ratio1"]); } if (!string.IsNullOrEmpty(objects["values"]["ManHours1"].ToString())) { PlanDetail.ManHours1 = Convert.ToDecimal(objects["values"]["ManHours1"]); } PlanDetail.CheckersId = objects["values"]["Checker"].ToString(); if (!string.IsNullOrEmpty(objects["values"]["Ratio2"].ToString())) { PlanDetail.Ratio2 = Convert.ToDecimal(objects["values"]["Ratio2"]); } if (!string.IsNullOrEmpty(objects["values"]["ManHours2"].ToString())) { PlanDetail.ManHours2 = Convert.ToDecimal(objects["values"]["ManHours2"]); } PlanDetail.ApproversId = objects["values"]["Approver"].ToString(); if (!string.IsNullOrEmpty(objects["values"]["Ratio3"].ToString())) { PlanDetail.Ratio3 = Convert.ToDecimal(objects["values"]["Ratio3"]); } if (!string.IsNullOrEmpty(objects["values"]["ManHours3"].ToString())) { PlanDetail.ManHours3 = Convert.ToDecimal(objects["values"]["ManHours3"]); } PlanDetail.Types = "3"; PlanDetaillist.Add(PlanDetail); string Designer = objects["values"]["Designer"].ToString() + "@" + objects["values"]["Checker"].ToString() + "@" + objects["values"]["Approver"].ToString(); string ManHours = objects["values"]["ManHours1"].ToString() + "@" + objects["values"]["ManHours2"].ToString() + "@" + objects["values"]["ManHours3"].ToString(); string[] DesignerArr = Designer.Split('@'); string[] ManHoursArr = ManHours.Split('@'); Model.ManHours_Plan ManHoursPlan = null; for (int l = 0; l < DesignerArr.Length; l++) { if (!string.IsNullOrEmpty(DesignerArr[l].ToString())) { ManHoursPlan = new Model.ManHours_Plan(); ManHoursPlan.ManHoursPlanId = Guid.NewGuid().ToString(); ManHoursPlan.ResourcePlanId = model.ResourcePlanId; ManHoursPlan.EProjectId = Request.Params["eProjectId"]; ManHoursPlan.Roles = objects["values"]["Roles"].ToString(); ManHoursPlan.EngineerId = DesignerArr[l].ToString(); if (BLL.Sys_UserService.IsCTEAndCalculated(DesignerArr[l])) { if (!string.IsNullOrEmpty(ManHoursArr[l].ToString())) { ManHoursPlan.ManHours = Convert.ToInt32(ManHoursArr[l].ToString()); } } else { ManHoursPlan.ManHours = 0; } ManHoursPlan.DisciplineId = dataKeys[0].ToString(); ManHoursPlan.Discipline = dataKeys[2].ToString(); var wbs = BLL.DisciplinesWBSService.GetDisciplinesWBSById(dataKeys[0].ToString()); // ManHoursPlan.Account = txtWO.Text; if (eProject.ProjectControl_JobType == "Projects" || eProject.ProjectControl_JobType == "Small Invest") { if (checkPhase.Items[0].Selected) { if (!string.IsNullOrEmpty(eProject.ProjectControl_NetworkNo)) { //ManHoursPlan.Account = WorkorderOper + "-" + txtWO.Text; ManHoursPlan.Account = eProject.ProjectControl_NetworkNo + "-" + wbs.NetworkOper1; } else { ManHoursPlan.Account = wbs.NetworkOper1; } } else { if (!string.IsNullOrEmpty(eProject.ProjectControl_NetworkNo)) { ManHoursPlan.Account = eProject.ProjectControl_NetworkNo + "-" + NetworkOper; } else { ManHoursPlan.Account = NetworkOper; } } } else { if (!string.IsNullOrEmpty(txtWO.Text)) { ManHoursPlan.Account = txtWO.Text + "-" + WorkorderOper; } else { ManHoursPlan.Account = WorkorderOper; } } ManHoursPlan.IsClose = 0; ManHoursPlan.AccountDisabled = 0; ManHourList.Add(ManHoursPlan); } } } } bool result = BLL.ResourcePlanService.AddTran(model, EProjects, PlanDetaillist, PMList, ManHourList); if (result) { // 回写编辑器CTE Involved string cteInvolved = "N"; Model.Editor_EProject eproject = Funs.DB.Editor_EProject.FirstOrDefault(x => x.EProjectId == eProjectId); if (eproject.ProjectControl_LeadByName != null && !eproject.ProjectControl_LeadByName.Contains("CTE")) // && !eproject.ProjectControl_LeadByName.Contains("CTE/D")) { var plan = from x in Funs.DB.ManHours_Plan where x.EProjectId == eProjectId select x; foreach (var p in plan) { if (!string.IsNullOrEmpty(p.EngineerId)) { var user = from x in Funs.DB.Sys_User join y in Funs.DB.Base_Depart on x.DepartId equals y.DepartId where x.UserId == p.EngineerId && y.DepartName.Contains("CTE") select x; if (user.Count() > 0) { cteInvolved = "Y"; break; } } } } eproject.CTEInvolved = cteInvolved; Funs.DB.SubmitChanges(); ShowNotify("Save Successfully!", MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } else { Alert.ShowInParent("Save failed!"); return; } } catch (Exception ex) { Alert.ShowInParent(ex.ToString()); return; } } #region 权限设置 /// /// 菜单按钮权限 /// //private void GetButtonPower() //{ // var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.ResourcePlanMenuId); // if (buttonList.Count() > 0) // { // if (buttonList.Contains(BLL.Const.BtnSave)) // { // this.btnSave.Hidden = false; // } // } // else // { // var user = BLL.Sys_UserService.GetUsersByUserId(this.CurrUser.UserId); // if (user != null && user.DepartId == Const.CTEM_DepartId) // { // this.btnSave.Hidden = false; // } // } //} #endregion protected void cbNotApplicable1_CheckedChanged(object sender, CheckedEventArgs e) { if (cbNotApplicable1.Checked) { txtSchStart1.Enabled = false; txtSchStart1.Text = ""; } else { txtSchStart1.Enabled = true; } } protected void cbCDI_CheckedChanged(object sender, CheckedEventArgs e) { if (cbCDI.Checked) { drpCDI.Enabled = true; BLL.ConstService.InitConstValueDropDownList(this.drpCDI, BLL.Const.PM_CDI, false); } else { drpCDI.Items.Clear(); drpCDI.Enabled = false; } } protected void txtSchStart1_TextChanged(object sender, EventArgs e) { DateTime time = DateTime.Now; if (txtSchStart1.SelectedDate.HasValue) { //DateTime dt = Convert.ToDateTime(txtSchStart1.Text); //if (dt > time) { // Alert.ShowInParent("Cannot be greater than the current date!"); // txtSchStart1.Text = ""; // return; //} cbNotApplicable1.Readonly = true; } else { cbNotApplicable1.Readonly = false; } } protected void cbNotApplicable2_CheckedChanged(object sender, CheckedEventArgs e) { if (cbNotApplicable2.Checked) { txtSchStart2.Enabled = false; txtSchEnd2.Enabled = false; txtSchStart2.Text = ""; txtSchEnd2.Text = ""; } else { txtSchStart2.Enabled = true; txtSchEnd2.Enabled = true; } } protected void txtSchStart2_TextChanged(object sender, EventArgs e) { if (txtSchStart2.SelectedDate.HasValue || txtSchEnd2.SelectedDate.HasValue) { cbNotApplicable2.Readonly = true; } else { cbNotApplicable2.Readonly = false; } } protected void txtSchEnd2_TextChanged(object sender, EventArgs e) { if (txtSchStart2.SelectedDate.HasValue || txtSchEnd2.SelectedDate.HasValue) { cbNotApplicable2.Readonly = true; } else { cbNotApplicable2.Readonly = false; } } protected void CheckBox1_CheckedChanged(object sender, CheckedEventArgs e) { if (CheckBox1.Checked) { DatePicker1.Enabled = false; DatePicker2.Enabled = false; DatePicker1.Text = ""; DatePicker2.Text = ""; } else { DatePicker1.Enabled = true; DatePicker2.Enabled = true; } } protected void DatePicker1_TextChanged(object sender, EventArgs e) { if (DatePicker1.SelectedDate.HasValue || DatePicker2.SelectedDate.HasValue) { CheckBox1.Readonly = true; } else { CheckBox1.Readonly = false; } } protected void DatePicker2_TextChanged(object sender, EventArgs e) { if (DatePicker1.SelectedDate.HasValue || DatePicker2.SelectedDate.HasValue) { CheckBox1.Readonly = true; } else { CheckBox1.Readonly = false; } } protected void CheckBox2_CheckedChanged(object sender, CheckedEventArgs e) { if (CheckBox2.Checked) { DatePicker3.Enabled = false; DatePicker4.Enabled = false; DatePicker3.Text = ""; DatePicker4.Text = ""; } else { DatePicker3.Enabled = true; DatePicker4.Enabled = true; } } protected void DatePicker3_TextChanged(object sender, EventArgs e) { if (DatePicker3.SelectedDate.HasValue || DatePicker4.SelectedDate.HasValue) { CheckBox2.Readonly = true; } else { CheckBox2.Readonly = false; } } protected void DatePicker4_TextChanged(object sender, EventArgs e) { if (DatePicker3.SelectedDate.HasValue || DatePicker4.SelectedDate.HasValue) { CheckBox2.Readonly = true; } else { CheckBox2.Readonly = false; } } protected void CheckBox3_CheckedChanged(object sender, CheckedEventArgs e) { if (CheckBox3.Checked) { DatePicker5.Enabled = false; DatePicker6.Enabled = false; DatePicker5.Text = ""; DatePicker6.Text = ""; } else { DatePicker5.Enabled = true; DatePicker6.Enabled = true; } } protected void DatePicker5_TextChanged(object sender, EventArgs e) { if (DatePicker5.SelectedDate.HasValue || DatePicker6.SelectedDate.HasValue) { CheckBox3.Readonly = true; } else { CheckBox3.Readonly = false; } } protected void DatePicker6_TextChanged(object sender, EventArgs e) { if (DatePicker5.SelectedDate.HasValue || DatePicker6.SelectedDate.HasValue) { CheckBox3.Readonly = true; } else { CheckBox3.Readonly = false; } } protected void CheckBox4_CheckedChanged(object sender, CheckedEventArgs e) { if (CheckBox4.Checked) { DatePicker7.Enabled = false; DatePicker8.Enabled = false; DatePicker7.Text = ""; DatePicker8.Text = ""; } else { DatePicker7.Enabled = true; DatePicker8.Enabled = true; } } protected void DatePicker7_TextChanged(object sender, EventArgs e) { if (DatePicker7.SelectedDate.HasValue || DatePicker8.SelectedDate.HasValue) { CheckBox4.Readonly = true; } else { CheckBox4.Readonly = false; } } protected void DatePicker8_TextChanged(object sender, EventArgs e) { if (DatePicker7.SelectedDate.HasValue || DatePicker8.SelectedDate.HasValue) { CheckBox4.Readonly = true; } else { CheckBox4.Readonly = false; } } protected void CheckBox5_CheckedChanged(object sender, CheckedEventArgs e) { if (CheckBox5.Checked) { DatePicker9.Enabled = false; DatePicker9.Text = ""; } else { DatePicker9.Enabled = true; } } protected void DatePicker9_TextChanged(object sender, EventArgs e) { if (DatePicker9.SelectedDate.HasValue) { CheckBox5.Readonly = true; } else { CheckBox5.Readonly = false; } } } }