1036 lines
		
	
	
		
			52 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			1036 lines
		
	
	
		
			52 KiB
		
	
	
	
		
			C#
		
	
	
	
using BLL;
 | 
						|
using Newtonsoft.Json.Linq;
 | 
						|
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Data;
 | 
						|
using System.Data.SqlClient;
 | 
						|
using System.Linq;
 | 
						|
using System.Web.UI.WebControls;
 | 
						|
 | 
						|
namespace FineUIPro.Web.JDGL.WBS
 | 
						|
{
 | 
						|
    public partial class WorkloadInput : PageBase
 | 
						|
    {
 | 
						|
        #region 页面加载
 | 
						|
        /// <summary>
 | 
						|
        /// 页面加载
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        protected void Page_Load(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            if (!IsPostBack)
 | 
						|
            {
 | 
						|
                GetButtonPower();
 | 
						|
                InitTreeMenu();
 | 
						|
                this.txtMonths.Text = string.Format("{0:yyyy-MM}", DateTime.Now);
 | 
						|
                //Funs.FineUIPleaseSelect(this.drpWeek);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 树加载
 | 
						|
        /// </summary>
 | 
						|
        private void InitTreeMenu()
 | 
						|
        {
 | 
						|
            this.trWBS.Nodes.Clear();
 | 
						|
            this.trWBS.ShowBorder = false;
 | 
						|
            this.trWBS.ShowHeader = false;
 | 
						|
            this.trWBS.EnableIcons = true;
 | 
						|
            this.trWBS.AutoScroll = true;
 | 
						|
            this.trWBS.EnableSingleClickExpand = true;
 | 
						|
            //var project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
 | 
						|
            //if (project != null)
 | 
						|
            //{
 | 
						|
            //    TreeNode rootNode = new TreeNode();
 | 
						|
            //    rootNode.Text = project.ProjectName;
 | 
						|
            //    rootNode.NodeID = project.ProjectId;
 | 
						|
            //    rootNode.CommandName = "project";
 | 
						|
            //    rootNode.EnableExpandEvent = true;
 | 
						|
            //    this.trWBS.Nodes.Add(rootNode);
 | 
						|
            //    if (BLL.Project_InstallationService.IsExitProjectInstallation(project.ProjectId))
 | 
						|
            //    {
 | 
						|
            //        TreeNode emptyNode = new TreeNode();
 | 
						|
            //        emptyNode.Text = "";
 | 
						|
            //        emptyNode.NodeID = "";
 | 
						|
            //        rootNode.Nodes.Add(emptyNode);
 | 
						|
            //    }
 | 
						|
            //}
 | 
						|
            Model.Project_Installation installation = BLL.Project_InstallationService.GetProjectInstallationByProjectId(this.CurrUser.LoginProjectId);
 | 
						|
            if (installation != null)
 | 
						|
            {
 | 
						|
                TreeNode newNode = new TreeNode();
 | 
						|
                newNode.Text = "[" + installation.InstallationCode + "]" + installation.InstallationName;
 | 
						|
                newNode.NodeID = installation.InstallationId;
 | 
						|
                newNode.CommandName = "installation";
 | 
						|
                newNode.EnableExpandEvent = true;
 | 
						|
                newNode.EnableClickEvent = true;
 | 
						|
                newNode.EnableCheckBox = false;
 | 
						|
                this.trWBS.Nodes.Add(newNode);
 | 
						|
 | 
						|
                TreeNode emptyNode = new TreeNode();
 | 
						|
                emptyNode.Text = "";
 | 
						|
                emptyNode.NodeID = "";
 | 
						|
                newNode.Nodes.Add(emptyNode);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region 树节点展开
 | 
						|
        /// <summary>
 | 
						|
        /// 树节点展开
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        protected void trWBS_NodeExpand(object sender, TreeNodeEventArgs e)
 | 
						|
        {
 | 
						|
            e.Node.Nodes.Clear();
 | 
						|
            bool needAddTempNode = false;   //是否需要增加空节点
 | 
						|
            if (e.Node.CommandName == "project")  //展开项目节点
 | 
						|
            {
 | 
						|
                var installations = from x in Funs.DB.Project_Installation
 | 
						|
                                    where x.ProjectId == e.Node.NodeID && x.SuperInstallationId == "0"
 | 
						|
                                    orderby x.InstallationCode
 | 
						|
                                    select x;
 | 
						|
                foreach (var installation in installations)
 | 
						|
                {
 | 
						|
                    TreeNode newNode = new TreeNode();
 | 
						|
                    newNode.Text = "[" + installation.InstallationCode + "]" + installation.InstallationName;
 | 
						|
                    newNode.NodeID = installation.InstallationId;
 | 
						|
                    newNode.CommandName = "installation";
 | 
						|
                    newNode.EnableExpandEvent = true;
 | 
						|
                    newNode.EnableClickEvent = true;
 | 
						|
                    e.Node.Nodes.Add(newNode);
 | 
						|
 | 
						|
                    TreeNode emptyNode = new TreeNode();
 | 
						|
                    emptyNode.Text = "";
 | 
						|
                    emptyNode.NodeID = "";
 | 
						|
                    newNode.Nodes.Add(emptyNode);
 | 
						|
                }
 | 
						|
            }
 | 
						|
            else if (e.Node.CommandName == "installation")  //展开装置/单元节点
 | 
						|
            {
 | 
						|
                var installations = from x in Funs.DB.Project_Installation
 | 
						|
                                    where x.SuperInstallationId == e.Node.NodeID
 | 
						|
                                    orderby x.InstallationCode
 | 
						|
                                    select x;
 | 
						|
                if (installations.Count() > 0)
 | 
						|
                {
 | 
						|
                    foreach (var installation in installations)
 | 
						|
                    {
 | 
						|
                        TreeNode newNode = new TreeNode();
 | 
						|
                        newNode.Text = "[" + installation.InstallationCode + "]" + installation.InstallationName;
 | 
						|
                        newNode.NodeID = installation.InstallationId;
 | 
						|
                        newNode.CommandName = "installation";
 | 
						|
                        newNode.EnableExpandEvent = true;
 | 
						|
                        newNode.EnableClickEvent = true;
 | 
						|
                        e.Node.Nodes.Add(newNode);
 | 
						|
 | 
						|
                        TreeNode emptyNode = new TreeNode();
 | 
						|
                        emptyNode.Text = "";
 | 
						|
                        emptyNode.NodeID = "";
 | 
						|
                        newNode.Nodes.Add(emptyNode);
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    var cnProfessions = from x in Funs.DB.WBS_CnProfession where x.InstallationId == e.Node.NodeID && x.IsApprove == true orderby x.OldId select x;
 | 
						|
                    if (cnProfessions.Count() > 0)   //普通装置主项
 | 
						|
                    {
 | 
						|
                        foreach (var cnProfession in cnProfessions)
 | 
						|
                        {
 | 
						|
                            TreeNode newNode = new TreeNode();
 | 
						|
                            newNode.Text = cnProfession.CnProfessionName;
 | 
						|
                            newNode.NodeID = cnProfession.CnProfessionId;
 | 
						|
                            newNode.CommandName = "cnProfession";
 | 
						|
                            newNode.EnableExpandEvent = true;
 | 
						|
                            newNode.EnableClickEvent = true;
 | 
						|
                            e.Node.Nodes.Add(newNode);
 | 
						|
                            TreeNode emptyNode = new TreeNode();
 | 
						|
                            emptyNode.Text = "";
 | 
						|
                            emptyNode.NodeID = "";
 | 
						|
                            newNode.Nodes.Add(emptyNode);
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    else       //总图
 | 
						|
                    {
 | 
						|
                        var unitProjects = from x in Funs.DB.Wbs_UnitProject where x.InstallationId == e.Node.NodeID && x.SuperUnitProjectId == null && x.IsApprove == true orderby x.SortIndex, x.UnitProjectCode select x;
 | 
						|
                        foreach (var unitProject in unitProjects)
 | 
						|
                        {
 | 
						|
                            TreeNode newNode = new TreeNode();
 | 
						|
                            newNode.Text = unitProject.UnitProjectName;
 | 
						|
                            newNode.NodeID = unitProject.UnitProjectId;
 | 
						|
                            newNode.CommandName = "unitProject";
 | 
						|
                            newNode.EnableExpandEvent = true;
 | 
						|
                            if (unitProject.IsApprove == true)
 | 
						|
                            {
 | 
						|
                                newNode.Checked = true;
 | 
						|
                            }
 | 
						|
                            else
 | 
						|
                            {
 | 
						|
                                newNode.Checked = false;
 | 
						|
                            }
 | 
						|
                            newNode.EnableClickEvent = true;
 | 
						|
                            e.Node.Nodes.Add(newNode);
 | 
						|
                            TreeNode emptyNode = new TreeNode();
 | 
						|
                            emptyNode.Text = "";
 | 
						|
                            emptyNode.NodeID = "";
 | 
						|
                            newNode.Nodes.Add(emptyNode);
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
            else if (e.Node.CommandName == "cnProfession")   //展开专业节点
 | 
						|
            {
 | 
						|
                var unitProjects = from x in Funs.DB.Wbs_UnitProject where x.CnProfessionId == e.Node.NodeID && x.SuperUnitProjectId == null && x.IsApprove == true orderby x.SortIndex, x.UnitProjectCode select x;
 | 
						|
                foreach (var unitProject in unitProjects)
 | 
						|
                {
 | 
						|
                    TreeNode newNode = new TreeNode();
 | 
						|
                    newNode.Text = unitProject.UnitProjectName;
 | 
						|
                    newNode.NodeID = unitProject.UnitProjectId;
 | 
						|
                    newNode.CommandName = "unitProject";
 | 
						|
                    newNode.EnableExpandEvent = true;
 | 
						|
                    newNode.EnableCheckBox = true;
 | 
						|
                    newNode.EnableCheckEvent = true;
 | 
						|
                    if (unitProject.IsSelected == true && unitProject.IsApprove == null)
 | 
						|
                    {
 | 
						|
                        unitProject.IsApprove = true;
 | 
						|
                        BLL.UnitProjectService.UpdateUnitProject(unitProject);
 | 
						|
                    }
 | 
						|
                    if (unitProject.IsApprove == true)
 | 
						|
                    {
 | 
						|
                        newNode.Checked = true;
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        newNode.Checked = false;
 | 
						|
                    }
 | 
						|
                    newNode.EnableClickEvent = true;
 | 
						|
                    e.Node.Nodes.Add(newNode);
 | 
						|
                    TreeNode emptyNode = new TreeNode();
 | 
						|
                    emptyNode.Text = "";
 | 
						|
                    emptyNode.NodeID = "";
 | 
						|
                    newNode.Nodes.Add(emptyNode);
 | 
						|
                }
 | 
						|
            }
 | 
						|
            else if (e.Node.CommandName == "unitProject")   //展开单位工程节点
 | 
						|
            {
 | 
						|
                var wbsSet1s = from x in Funs.DB.Wbs_WbsSet where x.UnitProjectId == e.Node.NodeID && x.SuperWbsSetId == null && x.IsApprove == true orderby x.WbsSetCode select x;
 | 
						|
                if (wbsSet1s.Count() > 0)
 | 
						|
                {
 | 
						|
                    foreach (var wbsSet1 in wbsSet1s)
 | 
						|
                    {
 | 
						|
                        TreeNode newNode = new TreeNode();
 | 
						|
                        newNode.Text = wbsSet1.WbsSetName;
 | 
						|
                        newNode.NodeID = wbsSet1.WbsSetId;
 | 
						|
                        newNode.CommandName = "wbsSet";
 | 
						|
                        newNode.EnableExpandEvent = true;
 | 
						|
                        newNode.EnableCheckBox = true;
 | 
						|
                        newNode.EnableCheckEvent = true;
 | 
						|
                        newNode.EnableClickEvent = true;
 | 
						|
                        e.Node.Nodes.Add(newNode);
 | 
						|
                        var wbsSets = BLL.WbsSetService.GetWbsSetsBySuperWbsSetId(wbsSet1.WbsSetId);
 | 
						|
                        if (wbsSets.Count > 0)
 | 
						|
                        {
 | 
						|
                            TreeNode emptyNode = new TreeNode();
 | 
						|
                            emptyNode.Text = "";
 | 
						|
                            emptyNode.NodeID = "";
 | 
						|
                            newNode.Nodes.Add(emptyNode);
 | 
						|
                        }
 | 
						|
                        //needAddTempNode = false;
 | 
						|
                        //var wbsSets = BLL.WbsSetService.GetWbsSetsBySuperWbsSetId(wbsSet1.WbsSetId);
 | 
						|
                        //foreach (var wbsSet in wbsSets)
 | 
						|
                        //{
 | 
						|
                        //    var childWbsSets = from x in Funs.DB.Wbs_WbsSet where x.SuperWbsSetId == wbsSet.WbsSetId select x;
 | 
						|
                        //    if (childWbsSets.Count() > 0)
 | 
						|
                        //    {
 | 
						|
                        //        needAddTempNode = true;
 | 
						|
                        //        break;
 | 
						|
                        //    }
 | 
						|
                        //}
 | 
						|
                        //if (needAddTempNode)
 | 
						|
                        //{
 | 
						|
                        //    TreeNode emptyNode = new TreeNode();
 | 
						|
                        //    emptyNode.Text = "";
 | 
						|
                        //    emptyNode.NodeID = "";
 | 
						|
                        //    newNode.Nodes.Add(emptyNode);
 | 
						|
                        //}
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
            else if (e.Node.CommandName == "wbsSet")   //展开分部/子分部/分项/子分项工程节点
 | 
						|
            {
 | 
						|
                var childWbsSets = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(e.Node.NodeID);
 | 
						|
                foreach (var wbsSet in childWbsSets)
 | 
						|
                {
 | 
						|
                    TreeNode newNode = new TreeNode();
 | 
						|
                    newNode.Text = wbsSet.WbsSetName;
 | 
						|
                    newNode.NodeID = wbsSet.WbsSetId;
 | 
						|
                    newNode.CommandName = "wbsSet";
 | 
						|
                    newNode.EnableExpandEvent = true;
 | 
						|
                    newNode.EnableClickEvent = true;
 | 
						|
                    e.Node.Nodes.Add(newNode);
 | 
						|
                    var wbsSets = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(wbsSet.WbsSetId);
 | 
						|
                    if (wbsSets.Count > 0)
 | 
						|
                    {
 | 
						|
                        TreeNode emptyNode = new TreeNode();
 | 
						|
                        emptyNode.Text = "";
 | 
						|
                        emptyNode.NodeID = "";
 | 
						|
                        newNode.Nodes.Add(emptyNode);
 | 
						|
                    }
 | 
						|
                    //needAddTempNode = false;
 | 
						|
                    //var wbsSets = BLL.WbsSetService.GetWbsSetsBySuperWbsSetId(wbsSet.WbsSetId);
 | 
						|
                    //foreach (var wbsSetc in wbsSets)
 | 
						|
                    //{
 | 
						|
                    //    var childWbsSets1 = from x in Funs.DB.Wbs_WbsSet where x.SuperWbsSetId == wbsSetc.WbsSetId select x;
 | 
						|
                    //    if (childWbsSets1.Count() > 0)
 | 
						|
                    //    {
 | 
						|
                    //        needAddTempNode = true;
 | 
						|
                    //        break;
 | 
						|
                    //    }
 | 
						|
                    //}
 | 
						|
                    //if (needAddTempNode)
 | 
						|
                    //{
 | 
						|
                    //    TreeNode emptyNode = new TreeNode();
 | 
						|
                    //    emptyNode.Text = "";
 | 
						|
                    //    emptyNode.NodeID = "";
 | 
						|
                    //    newNode.Nodes.Add(emptyNode);
 | 
						|
                    //}
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region   Tree点击事件
 | 
						|
        /// <summary>
 | 
						|
        /// Tree点击事件
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        protected void trWBS_NodeCommand(object sender, TreeCommandEventArgs e)
 | 
						|
        {
 | 
						|
            InitWeek();
 | 
						|
            this.Grid1.Columns[4].HeaderText = "本月计划完成量";
 | 
						|
            this.Grid1.Columns[7].HeaderText = "本月完成量";
 | 
						|
            BindGrid();
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region  修改关闭窗口
 | 
						|
        /// <summary>
 | 
						|
        /// 关闭窗口
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        protected void Window1_Close(object sender, WindowCloseEventArgs e)
 | 
						|
        {
 | 
						|
            ShowNotify("录入成功!", MessageBoxIcon.Success);
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 右键录入事件
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        protected void btnMenuEdit_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            if (this.trWBS.SelectedNode != null)
 | 
						|
            {
 | 
						|
                this.hdSelectId.Text = this.trWBS.SelectedNode.NodeID;
 | 
						|
                PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WorkloadInputEditAll.aspx?Id={0}", this.trWBS.SelectedNode.NodeID, "编辑 - ")));
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                ShowNotify("请选择树节点!", MessageBoxIcon.Warning);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 右键导入事件
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        protected void btnMenuImport_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            if (this.trWBS.SelectedNode != null)
 | 
						|
            {
 | 
						|
                if (this.trWBS.SelectedNode.CommandName != "project" && this.trWBS.SelectedNode.CommandName != "installation" && this.trWBS.SelectedNode.CommandName != "cnProfession")   //非项目、装置、专业节点可以修改
 | 
						|
                {
 | 
						|
                    this.hdSelectId.Text = this.trWBS.SelectedNode.NodeID;
 | 
						|
                    PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WorkloadInputIn.aspx?Id={0}", this.trWBS.SelectedNode.NodeID, "编辑 - ")));
 | 
						|
                }
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                ShowNotify("请选择树节点!", MessageBoxIcon.Warning);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #region 保存事件
 | 
						|
        /// <summary>
 | 
						|
        /// 保存
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        protected void btnSave_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            if (string.IsNullOrEmpty(this.txtMonths.Text.Trim()))
 | 
						|
            {
 | 
						|
                Alert.ShowInTop("请选择月份!", MessageBoxIcon.Warning);
 | 
						|
                return;
 | 
						|
            }
 | 
						|
            DateTime months = Convert.ToDateTime(this.txtMonths.Text.Trim() + "-01");
 | 
						|
            if (Grid1.Rows.Count > 0)
 | 
						|
            {
 | 
						|
                decimal changeThisPlanValue = 0, changeThisRealCost = 0, changeThisPlanCost = 0,  //当月总变化完成成本、完成预算
 | 
						|
                        oldThisPlanValue = 0, oldThisRealCost = 0, oldThisPlanCost = 0,
 | 
						|
                        thisPlanValue = 0, thisRealCost = 0, thisPlanCost = 0;
 | 
						|
                JArray mergedData = Grid1.GetMergedData();
 | 
						|
                //if (this.drpWeek.SelectedValue == BLL.Const._Null)  //保存月记录
 | 
						|
                //{
 | 
						|
                foreach (JObject mergedRow in mergedData)
 | 
						|
                {
 | 
						|
                    oldThisPlanValue = 0;
 | 
						|
                    oldThisRealCost = 0;
 | 
						|
                    oldThisPlanCost = 0;
 | 
						|
                    JObject values = mergedRow.Value<JObject>("values");
 | 
						|
                    string costControlDetailId = values.Value<string>("CostControlDetailId");
 | 
						|
                    string costControlId = values.Value<string>("CostControlId");
 | 
						|
                    string thisNum = values.Value<string>("ThisNum");
 | 
						|
                    string planPrice = values.Value<string>("PlanPrice");
 | 
						|
                    Model.WBS_CostControlDetail costControlDetail = BLL.CostControlDetailService.GetCostControlDetailByCostControlDetailId(costControlDetailId);
 | 
						|
                    Model.WBS_CostControl costControl = BLL.CostControlService.GetCostControlByCostControlId(costControlId);
 | 
						|
                    if (costControlDetail != null)
 | 
						|
                    {
 | 
						|
                        oldThisRealCost = (costControlDetail.ThisNum ?? 0) * (costControl.RealPrice ?? 0);
 | 
						|
                        oldThisPlanCost = (costControlDetail.ThisNum ?? 0) * (costControl.PlanPrice ?? 0);
 | 
						|
                        if (!string.IsNullOrEmpty(thisNum))
 | 
						|
                        {
 | 
						|
                            costControlDetail.ThisNum = Convert.ToDecimal(thisNum);
 | 
						|
                        }
 | 
						|
                        thisPlanValue = (costControlDetail.PlanNum ?? 0) * (costControl.PlanPrice ?? 0);
 | 
						|
                        thisRealCost = (costControlDetail.ThisNum ?? 0) * (costControl.RealPrice ?? 0);
 | 
						|
                        thisPlanCost = (costControlDetail.ThisNum ?? 0) * (costControl.PlanPrice ?? 0);
 | 
						|
                        BLL.CostControlDetailService.UpdateCostControlDetail(costControlDetail);
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        costControlDetail = new Model.WBS_CostControlDetail();
 | 
						|
                        costControlDetail.CostControlDetailId = costControlDetailId;
 | 
						|
                        costControlDetail.CostControlId = costControlId;
 | 
						|
                        costControlDetail.Months = months;
 | 
						|
                        if (!string.IsNullOrEmpty(thisNum))
 | 
						|
                        {
 | 
						|
                            costControlDetail.ThisNum = Convert.ToDecimal(thisNum);
 | 
						|
                        }
 | 
						|
                        thisPlanValue = 0;
 | 
						|
                        thisRealCost = (costControlDetail.ThisNum ?? 0) * (costControl.RealPrice ?? 0);
 | 
						|
                        thisPlanCost = (costControlDetail.ThisNum ?? 0) * (costControl.PlanPrice ?? 0);
 | 
						|
                        BLL.CostControlDetailService.AddCostControlDetail(costControlDetail);
 | 
						|
                    }
 | 
						|
                    //累加变化值,计算总的变化值
 | 
						|
                    changeThisRealCost += thisRealCost - oldThisRealCost;
 | 
						|
                    changeThisPlanCost += thisPlanCost - oldThisPlanCost;
 | 
						|
                }
 | 
						|
                //累计所有子节点的计划值
 | 
						|
                var costControls = BLL.CostControlService.GetCostControlsByWbsSetId(this.trWBS.SelectedNodeID);
 | 
						|
                foreach (var item in costControls)
 | 
						|
                {
 | 
						|
                    Model.WBS_CostControlDetail costControlDetail = BLL.CostControlDetailService.GetCostControlDetailByCostControlIdAndMonths(item.CostControlId, months);
 | 
						|
                    if (costControlDetail != null)
 | 
						|
                    {
 | 
						|
                        changeThisPlanValue += (costControlDetail.PlanNum ?? 0) * (item.PlanPrice ?? 0);
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                Model.WBS_CostControlParentDetail parentDetail = BLL.CostControlParentDetailService.GetCostControlParentDetailByParentIdAndMonths(this.trWBS.SelectedNodeID, months);
 | 
						|
                if (parentDetail != null)  //如果工作项节点存在,则计算计划值差异值
 | 
						|
                {
 | 
						|
                    changeThisPlanValue = changeThisPlanValue - (parentDetail.ThisPlanValue ?? 0);
 | 
						|
                }
 | 
						|
                //更新树节点
 | 
						|
                Model.Wbs_WbsSet wbsSet = BLL.WbsSetService.GetWbsSetByWbsSetId(this.trWBS.SelectedNodeID);
 | 
						|
                //更新工作包、工作项
 | 
						|
                UpdateWbsSetDetail(this.trWBS.SelectedNodeID, months, changeThisPlanValue, changeThisRealCost, changeThisPlanCost);
 | 
						|
                //更新分部
 | 
						|
                Model.WBS_CostControlParentDetail unitProjectDetail = BLL.CostControlParentDetailService.GetCostControlParentDetailByParentIdAndMonths(wbsSet.UnitProjectId, months);
 | 
						|
                if (unitProjectDetail != null)
 | 
						|
                {
 | 
						|
                    unitProjectDetail.ThisPlanValue += changeThisPlanValue;
 | 
						|
                    unitProjectDetail.ThisRealCost += changeThisRealCost;
 | 
						|
                    unitProjectDetail.ThisPlanCost += changeThisPlanCost;
 | 
						|
                    BLL.CostControlParentDetailService.UpdateCostControlParentDetail(unitProjectDetail);
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    unitProjectDetail = new Model.WBS_CostControlParentDetail();
 | 
						|
                    unitProjectDetail.CostControlParentDetailId = SQLHelper.GetNewID();
 | 
						|
                    unitProjectDetail.ParentId = wbsSet.UnitProjectId;
 | 
						|
                    unitProjectDetail.Months = months;
 | 
						|
                    unitProjectDetail.ThisPlanValue = changeThisPlanValue;
 | 
						|
                    unitProjectDetail.ThisRealCost = changeThisRealCost;
 | 
						|
                    unitProjectDetail.ThisPlanCost = changeThisPlanCost;
 | 
						|
                    BLL.CostControlParentDetailService.AddCostControlParentDetail(unitProjectDetail);
 | 
						|
                }
 | 
						|
                //更新专业
 | 
						|
                Model.WBS_CostControlParentDetail cnProfessionDetail = BLL.CostControlParentDetailService.GetCostControlParentDetailByParentIdAndMonths(wbsSet.CnProfessionId, months);
 | 
						|
                if (cnProfessionDetail != null)
 | 
						|
                {
 | 
						|
                    cnProfessionDetail.ThisPlanValue += changeThisPlanValue;
 | 
						|
                    cnProfessionDetail.ThisRealCost += changeThisRealCost;
 | 
						|
                    cnProfessionDetail.ThisPlanCost += changeThisPlanCost;
 | 
						|
                    BLL.CostControlParentDetailService.UpdateCostControlParentDetail(cnProfessionDetail);
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    cnProfessionDetail = new Model.WBS_CostControlParentDetail();
 | 
						|
                    cnProfessionDetail.CostControlParentDetailId = SQLHelper.GetNewID();
 | 
						|
                    cnProfessionDetail.ParentId = wbsSet.CnProfessionId;
 | 
						|
                    cnProfessionDetail.Months = months;
 | 
						|
                    cnProfessionDetail.ThisPlanValue = changeThisPlanValue;
 | 
						|
                    cnProfessionDetail.ThisRealCost = changeThisRealCost;
 | 
						|
                    cnProfessionDetail.ThisPlanCost = changeThisPlanCost;
 | 
						|
                    BLL.CostControlParentDetailService.AddCostControlParentDetail(cnProfessionDetail);
 | 
						|
                }
 | 
						|
                //更新装置
 | 
						|
                UpdateInstallationDetail(wbsSet.InstallationId, months, changeThisPlanValue, changeThisRealCost, changeThisPlanCost);
 | 
						|
                //}
 | 
						|
                //else   //保存周记录
 | 
						|
                //{
 | 
						|
                //    string[] strs = this.drpWeek.SelectedValue.Split(',');
 | 
						|
                //    DateTime startDate = Convert.ToDateTime(strs[0]);
 | 
						|
                //    DateTime endDate = Convert.ToDateTime(strs[1]);
 | 
						|
                //    foreach (JObject mergedRow in mergedData)
 | 
						|
                //    {
 | 
						|
                //        oldThisPlanValue = 0;
 | 
						|
                //        oldThisRealCost = 0;
 | 
						|
                //        oldThisPlanCost = 0;
 | 
						|
                //        JObject values = mergedRow.Value<JObject>("values");
 | 
						|
                //        string costControlDetailId = values.Value<string>("CostControlDetailId");
 | 
						|
                //        string costControlId = values.Value<string>("CostControlId");
 | 
						|
                //        string thisNum = values.Value<string>("ThisNum");
 | 
						|
                //        string planPrice = values.Value<string>("PlanPrice");
 | 
						|
                //        Model.WBS_CostControlDetail costControlDetail = BLL.CostControlDetailService.GetCostControlDetailByCostControlDetailId(costControlDetailId);
 | 
						|
                //        Model.WBS_CostControl costControl = BLL.CostControlService.GetCostControlByCostControlId(costControlId);
 | 
						|
                //        if (costControlDetail != null)
 | 
						|
                //        {
 | 
						|
                //            oldThisRealCost = (costControlDetail.ThisNum ?? 0) * (costControl.RealPrice ?? 0);
 | 
						|
                //            oldThisPlanCost = (costControlDetail.ThisNum ?? 0) * (costControl.PlanPrice ?? 0);
 | 
						|
                //            if (!string.IsNullOrEmpty(thisNum))
 | 
						|
                //            {
 | 
						|
                //                costControlDetail.ThisNum = Convert.ToDecimal(thisNum);
 | 
						|
                //            }
 | 
						|
                //            thisPlanValue = (costControlDetail.PlanNum ?? 0) * (costControl.PlanPrice ?? 0);
 | 
						|
                //            thisRealCost = (costControlDetail.ThisNum ?? 0) * (costControl.RealPrice ?? 0);
 | 
						|
                //            thisPlanCost = (costControlDetail.ThisNum ?? 0) * (costControl.PlanPrice ?? 0);
 | 
						|
                //            BLL.CostControlDetailService.UpdateCostControlDetail(costControlDetail);
 | 
						|
                //        }
 | 
						|
                //        else
 | 
						|
                //        {
 | 
						|
                //            costControlDetail = new Model.WBS_CostControlDetail();
 | 
						|
                //            costControlDetail.CostControlDetailId = costControlDetailId;
 | 
						|
                //            costControlDetail.CostControlId = costControlId;
 | 
						|
                //            costControlDetail.Months = months;
 | 
						|
                //            costControlDetail.StartDate = startDate;
 | 
						|
                //            costControlDetail.EndDate = endDate;
 | 
						|
                //            if (!string.IsNullOrEmpty(thisNum))
 | 
						|
                //            {
 | 
						|
                //                costControlDetail.ThisNum = Convert.ToDecimal(thisNum);
 | 
						|
                //            }
 | 
						|
                //            thisPlanValue = 0;
 | 
						|
                //            thisRealCost = (costControlDetail.ThisNum ?? 0) * (costControl.RealPrice ?? 0);
 | 
						|
                //            thisPlanCost = (costControlDetail.ThisNum ?? 0) * (costControl.PlanPrice ?? 0);
 | 
						|
                //            BLL.CostControlDetailService.AddCostControlDetail(costControlDetail);
 | 
						|
                //        }
 | 
						|
                //        //累加变化值,计算总的变化值
 | 
						|
                //        changeThisRealCost += thisRealCost - oldThisRealCost;
 | 
						|
                //        changeThisPlanCost += thisPlanCost - oldThisPlanCost;
 | 
						|
                //    }
 | 
						|
                //    //累计所有子节点的计划值
 | 
						|
                //    var costControls = BLL.CostControlService.GetCostControlsByWbsSetId(this.trWBS.SelectedNodeID);
 | 
						|
                //    foreach (var item in costControls)
 | 
						|
                //    {
 | 
						|
                //        Model.WBS_CostControlDetail costControlDetail = BLL.CostControlDetailService.GetCostControlDetailByCostControlIdAndMonthsWeek(item.CostControlId, months, startDate);
 | 
						|
                //        if (costControlDetail != null)
 | 
						|
                //        {
 | 
						|
                //            changeThisPlanValue += (costControlDetail.PlanNum ?? 0) * (item.PlanPrice ?? 0);
 | 
						|
                //        }
 | 
						|
                //    }
 | 
						|
                //    Model.WBS_CostControlParentDetail parentDetail = BLL.CostControlParentDetailService.GetCostControlParentDetailByParentIdAndMonthsWeek(this.trWBS.SelectedNodeID, months, startDate);
 | 
						|
                //    if (parentDetail != null)  //如果工作项节点存在,则计算计划值差异值
 | 
						|
                //    {
 | 
						|
                //        changeThisPlanValue = changeThisPlanValue - (parentDetail.ThisPlanValue ?? 0);
 | 
						|
                //    }
 | 
						|
                //    //更新树节点
 | 
						|
                //    Model.Wbs_WbsSet wbsSet = BLL.WbsSetService.GetWbsSetByWbsSetId(this.trWBS.SelectedNodeID);
 | 
						|
                //    //更新工作包、工作项
 | 
						|
                //    UpdateWeekWbsSetDetail(this.trWBS.SelectedNodeID, months, startDate, endDate, changeThisPlanValue, changeThisRealCost, changeThisPlanCost);
 | 
						|
                //    //更新分部
 | 
						|
                //    Model.WBS_CostControlParentDetail unitProjectDetail = BLL.CostControlParentDetailService.GetCostControlParentDetailByParentIdAndMonthsWeek(wbsSet.UnitProjectId, months, startDate);
 | 
						|
                //    if (unitProjectDetail != null)
 | 
						|
                //    {
 | 
						|
                //        unitProjectDetail.ThisPlanValue += changeThisPlanValue;
 | 
						|
                //        unitProjectDetail.ThisRealCost += changeThisRealCost;
 | 
						|
                //        unitProjectDetail.ThisPlanCost += changeThisPlanCost;
 | 
						|
                //        BLL.CostControlParentDetailService.UpdateCostControlParentDetail(unitProjectDetail);
 | 
						|
                //    }
 | 
						|
                //    else
 | 
						|
                //    {
 | 
						|
                //        unitProjectDetail = new Model.WBS_CostControlParentDetail();
 | 
						|
                //        unitProjectDetail.CostControlParentDetailId = SQLHelper.GetNewID();
 | 
						|
                //        unitProjectDetail.ParentId = wbsSet.UnitProjectId;
 | 
						|
                //        unitProjectDetail.Months = months;
 | 
						|
                //        unitProjectDetail.StartDate = startDate;
 | 
						|
                //        unitProjectDetail.EndDate = endDate;
 | 
						|
                //        unitProjectDetail.ThisPlanValue = changeThisPlanValue;
 | 
						|
                //        unitProjectDetail.ThisRealCost = changeThisRealCost;
 | 
						|
                //        unitProjectDetail.ThisPlanCost = changeThisPlanCost;
 | 
						|
                //        BLL.CostControlParentDetailService.AddCostControlParentDetail(unitProjectDetail);
 | 
						|
                //    }
 | 
						|
                //    //更新专业
 | 
						|
                //    Model.WBS_CostControlParentDetail cnProfessionDetail = BLL.CostControlParentDetailService.GetCostControlParentDetailByParentIdAndMonthsWeek(wbsSet.CnProfessionId, months, startDate);
 | 
						|
                //    if (cnProfessionDetail != null)
 | 
						|
                //    {
 | 
						|
                //        cnProfessionDetail.ThisPlanValue += changeThisPlanValue;
 | 
						|
                //        cnProfessionDetail.ThisRealCost += changeThisRealCost;
 | 
						|
                //        cnProfessionDetail.ThisPlanCost += changeThisPlanCost;
 | 
						|
                //        BLL.CostControlParentDetailService.UpdateCostControlParentDetail(cnProfessionDetail);
 | 
						|
                //    }
 | 
						|
                //    else
 | 
						|
                //    {
 | 
						|
                //        cnProfessionDetail = new Model.WBS_CostControlParentDetail();
 | 
						|
                //        cnProfessionDetail.CostControlParentDetailId = SQLHelper.GetNewID();
 | 
						|
                //        cnProfessionDetail.ParentId = wbsSet.CnProfessionId;
 | 
						|
                //        cnProfessionDetail.Months = months;
 | 
						|
                //        cnProfessionDetail.StartDate = startDate;
 | 
						|
                //        cnProfessionDetail.EndDate = endDate;
 | 
						|
                //        cnProfessionDetail.ThisPlanValue = changeThisPlanValue;
 | 
						|
                //        cnProfessionDetail.ThisRealCost = changeThisRealCost;
 | 
						|
                //        cnProfessionDetail.ThisPlanCost = changeThisPlanCost;
 | 
						|
                //        BLL.CostControlParentDetailService.AddCostControlParentDetail(cnProfessionDetail);
 | 
						|
                //    }
 | 
						|
                //    //更新装置
 | 
						|
                //    UpdateWeekInstallationDetail(wbsSet.InstallationId, months, startDate, endDate, changeThisPlanValue, changeThisRealCost, changeThisPlanCost);
 | 
						|
                //}
 | 
						|
                //BindGrid();
 | 
						|
                Alert.ShowInTop("保存成功!", MessageBoxIcon.Success);
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                Alert.ShowInTop("请选择工作项节点!", MessageBoxIcon.Warning);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region  更新工作包、工作项
 | 
						|
        /// <summary>
 | 
						|
        /// 更新月工作包、工作项
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="years"></param>
 | 
						|
        /// <param name="months"></param>
 | 
						|
        /// <param name="planValue"></param>
 | 
						|
        /// <param name="parentId"></param>
 | 
						|
        private void UpdateWbsSetDetail(string wbsSetId, DateTime months, decimal changeThisPlanValue, decimal changeThisRealCost, decimal changeThisPlanCost)
 | 
						|
        {
 | 
						|
            Model.Wbs_WbsSet wbsSet = BLL.WbsSetService.GetWbsSetByWbsSetId(wbsSetId);
 | 
						|
            if (wbsSet != null)
 | 
						|
            {
 | 
						|
                Model.WBS_CostControlParentDetail parentDetail = BLL.CostControlParentDetailService.GetCostControlParentDetailByParentIdAndMonths(wbsSetId, months);
 | 
						|
                if (parentDetail != null)
 | 
						|
                {
 | 
						|
                    parentDetail.ThisPlanValue += changeThisPlanValue;
 | 
						|
                    parentDetail.ThisRealCost += changeThisRealCost;
 | 
						|
                    parentDetail.ThisPlanCost += changeThisPlanCost;
 | 
						|
                    BLL.CostControlParentDetailService.UpdateCostControlParentDetail(parentDetail);
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    parentDetail = new Model.WBS_CostControlParentDetail();
 | 
						|
                    parentDetail.CostControlParentDetailId = SQLHelper.GetNewID();
 | 
						|
                    parentDetail.ParentId = wbsSetId;
 | 
						|
                    parentDetail.Months = months;
 | 
						|
                    parentDetail.ThisPlanValue = changeThisPlanValue;
 | 
						|
                    parentDetail.ThisRealCost = changeThisRealCost;
 | 
						|
                    parentDetail.ThisPlanCost = changeThisPlanCost;
 | 
						|
                    BLL.CostControlParentDetailService.AddCostControlParentDetail(parentDetail);
 | 
						|
                }
 | 
						|
                if (wbsSet.SuperWbsSetId != null)   //还存在上级节点,需要继续循环
 | 
						|
                {
 | 
						|
                    UpdateWbsSetDetail(wbsSet.SuperWbsSetId, months, changeThisPlanValue, changeThisRealCost, changeThisPlanCost);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 更新周工作包、工作项
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="years"></param>
 | 
						|
        /// <param name="months"></param>
 | 
						|
        /// <param name="planValue"></param>
 | 
						|
        /// <param name="parentId"></param>
 | 
						|
        private void UpdateWeekWbsSetDetail(string wbsSetId, DateTime months, DateTime startDate, DateTime endDate, decimal changeThisPlanValue, decimal changeThisRealCost, decimal changeThisPlanCost)
 | 
						|
        {
 | 
						|
            Model.Wbs_WbsSet wbsSet = BLL.WbsSetService.GetWbsSetByWbsSetId(wbsSetId);
 | 
						|
            if (wbsSet != null)
 | 
						|
            {
 | 
						|
                Model.WBS_CostControlParentDetail parentDetail = BLL.CostControlParentDetailService.GetCostControlParentDetailByParentIdAndMonthsWeek(wbsSetId, months, startDate);
 | 
						|
                if (parentDetail != null)
 | 
						|
                {
 | 
						|
                    parentDetail.ThisPlanValue += changeThisPlanValue;
 | 
						|
                    parentDetail.ThisRealCost += changeThisRealCost;
 | 
						|
                    parentDetail.ThisPlanCost += changeThisPlanCost;
 | 
						|
                    BLL.CostControlParentDetailService.UpdateCostControlParentDetail(parentDetail);
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    parentDetail = new Model.WBS_CostControlParentDetail();
 | 
						|
                    parentDetail.CostControlParentDetailId = SQLHelper.GetNewID();
 | 
						|
                    parentDetail.ParentId = wbsSetId;
 | 
						|
                    parentDetail.Months = months;
 | 
						|
                    parentDetail.StartDate = startDate;
 | 
						|
                    parentDetail.EndDate = endDate;
 | 
						|
                    parentDetail.ThisPlanValue = changeThisPlanValue;
 | 
						|
                    parentDetail.ThisRealCost = changeThisRealCost;
 | 
						|
                    parentDetail.ThisPlanCost = changeThisPlanCost;
 | 
						|
                    BLL.CostControlParentDetailService.AddCostControlParentDetail(parentDetail);
 | 
						|
                }
 | 
						|
                if (wbsSet.SuperWbsSetId != null)   //还存在上级节点,需要继续循环
 | 
						|
                {
 | 
						|
                    UpdateWeekWbsSetDetail(wbsSet.SuperWbsSetId, months, startDate, endDate, changeThisPlanValue, changeThisRealCost, changeThisPlanCost);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region  更新装置
 | 
						|
        /// <summary>
 | 
						|
        /// 更新月装置
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="years"></param>
 | 
						|
        /// <param name="months"></param>
 | 
						|
        /// <param name="planValue"></param>
 | 
						|
        /// <param name="parentId"></param>
 | 
						|
        private void UpdateInstallationDetail(string installationId, DateTime months, decimal changeThisPlanValue, decimal changeThisRealCost, decimal changeThisPlanCost)
 | 
						|
        {
 | 
						|
            Model.Project_Installation installation = BLL.Project_InstallationService.GetInstallationByInstallationId(installationId);
 | 
						|
            if (installation != null)
 | 
						|
            {
 | 
						|
                Model.WBS_CostControlParentDetail parentDetail = BLL.CostControlParentDetailService.GetCostControlParentDetailByParentIdAndMonths(installationId, months);
 | 
						|
                if (parentDetail != null)
 | 
						|
                {
 | 
						|
                    parentDetail.ThisPlanValue += changeThisPlanValue;
 | 
						|
                    parentDetail.ThisRealCost += changeThisRealCost;
 | 
						|
                    parentDetail.ThisPlanCost += changeThisPlanCost;
 | 
						|
                    BLL.CostControlParentDetailService.UpdateCostControlParentDetail(parentDetail);
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    parentDetail = new Model.WBS_CostControlParentDetail();
 | 
						|
                    parentDetail.CostControlParentDetailId = SQLHelper.GetNewID();
 | 
						|
                    parentDetail.ParentId = installationId;
 | 
						|
                    parentDetail.Months = months;
 | 
						|
                    parentDetail.ThisPlanValue = changeThisPlanValue;
 | 
						|
                    parentDetail.ThisRealCost = changeThisRealCost;
 | 
						|
                    parentDetail.ThisPlanCost = changeThisPlanCost;
 | 
						|
                    BLL.CostControlParentDetailService.AddCostControlParentDetail(parentDetail);
 | 
						|
                }
 | 
						|
                if (installation.SuperInstallationId != null)   //还存在上级节点,需要继续循环
 | 
						|
                {
 | 
						|
                    UpdateInstallationDetail(installation.SuperInstallationId, months, changeThisPlanValue, changeThisRealCost, changeThisPlanCost);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 更新周装置
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="years"></param>
 | 
						|
        /// <param name="months"></param>
 | 
						|
        /// <param name="planValue"></param>
 | 
						|
        /// <param name="parentId"></param>
 | 
						|
        private void UpdateWeekInstallationDetail(string installationId, DateTime months, DateTime startDate, DateTime endDate, decimal changeThisPlanValue, decimal changeThisRealCost, decimal changeThisPlanCost)
 | 
						|
        {
 | 
						|
            Model.Project_Installation installation = BLL.Project_InstallationService.GetInstallationByInstallationId(installationId);
 | 
						|
            if (installation != null)
 | 
						|
            {
 | 
						|
                Model.WBS_CostControlParentDetail parentDetail = BLL.CostControlParentDetailService.GetCostControlParentDetailByParentIdAndMonths(installationId, months);
 | 
						|
                if (parentDetail != null)
 | 
						|
                {
 | 
						|
                    parentDetail.ThisPlanValue += changeThisPlanValue;
 | 
						|
                    parentDetail.ThisRealCost += changeThisRealCost;
 | 
						|
                    parentDetail.ThisPlanCost += changeThisPlanCost;
 | 
						|
                    BLL.CostControlParentDetailService.UpdateCostControlParentDetail(parentDetail);
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    parentDetail = new Model.WBS_CostControlParentDetail();
 | 
						|
                    parentDetail.CostControlParentDetailId = SQLHelper.GetNewID();
 | 
						|
                    parentDetail.ParentId = installationId;
 | 
						|
                    parentDetail.Months = months;
 | 
						|
                    parentDetail.StartDate = startDate;
 | 
						|
                    parentDetail.EndDate = endDate;
 | 
						|
                    parentDetail.ThisPlanValue = changeThisPlanValue;
 | 
						|
                    parentDetail.ThisRealCost = changeThisRealCost;
 | 
						|
                    parentDetail.ThisPlanCost = changeThisPlanCost;
 | 
						|
                    BLL.CostControlParentDetailService.AddCostControlParentDetail(parentDetail);
 | 
						|
                }
 | 
						|
                if (installation.SuperInstallationId != null)   //还存在上级节点,需要继续循环
 | 
						|
                {
 | 
						|
                    UpdateWeekInstallationDetail(installation.SuperInstallationId, months, startDate, endDate, changeThisPlanValue, changeThisRealCost, changeThisPlanCost);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region 绑定数据
 | 
						|
 | 
						|
        private string upStartDate = string.Empty;
 | 
						|
        private string upEndDate = string.Empty;
 | 
						|
        protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
 | 
						|
        {
 | 
						|
            string id = e.RowID;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 绑定数据
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        protected void Grid1_FilterChange(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            BindGrid();
 | 
						|
        }
 | 
						|
 | 
						|
        protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
 | 
						|
        {
 | 
						|
            Grid1.PageIndex = e.NewPageIndex;
 | 
						|
            BindGrid();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Grid1排序
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        protected void Grid1_Sort(object sender, GridSortEventArgs e)
 | 
						|
        {
 | 
						|
            Grid1.SortDirection = e.SortDirection;
 | 
						|
            Grid1.SortField = e.SortField;
 | 
						|
            BindGrid();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 分页下拉选择事件
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
 | 
						|
            BindGrid();
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 加载Grid
 | 
						|
        /// </summary>
 | 
						|
        private void BindGrid()
 | 
						|
        {
 | 
						|
            if (!string.IsNullOrEmpty(this.txtMonths.Text.Trim()))
 | 
						|
            {
 | 
						|
                DateTime months = Convert.ToDateTime(this.txtMonths.Text.Trim() + "-01");
 | 
						|
                //var codeList = BLL.WbsSetMatchCostControlService.GetWbsSetMatchCostControls(this.trWBS.SelectedNodeID);
 | 
						|
                //Model.Wbs_WbsSet wbeSet = BLL.WbsSetService.GetWbsSetByWbsSetId(this.trWBS.SelectedNodeID);
 | 
						|
                //if (codeList.Count > 0)   //存在费控对应关系项
 | 
						|
                //{
 | 
						|
                //List<string> codes = new List<string>();
 | 
						|
                //foreach (var item in codeList)
 | 
						|
                //{
 | 
						|
                //    codes.Add(item.CostControlCode);
 | 
						|
                //}
 | 
						|
                //var list = BLL.CostControlService.GetCostControlsByCostControlCodes(codes, this.trWBS.SelectedNodeID);
 | 
						|
                var list = BLL.CostControlService.GetSelectedCostControlsByWbsSetId(this.trWBS.SelectedNodeID);
 | 
						|
                if (list.Count > 0)
 | 
						|
                {
 | 
						|
                    List<Model.View_WBS_CostControlDetail> details = new List<Model.View_WBS_CostControlDetail>();
 | 
						|
                    //if (this.drpWeek.SelectedValue == BLL.Const._Null)   //月份记录
 | 
						|
                    //{
 | 
						|
                    this.Grid1.Columns[4].HeaderText = "本月计划完成量";
 | 
						|
                    this.Grid1.Columns[7].HeaderText = "本月完成量";
 | 
						|
                    foreach (var item in list)
 | 
						|
                    {
 | 
						|
                        Model.View_WBS_CostControlDetail detail = BLL.CostControlDetailService.GetViewCostControlDetailByCostControlIdAndMonth(item.CostControlId, months);
 | 
						|
                        if (detail == null)
 | 
						|
                        {
 | 
						|
                            detail = new Model.View_WBS_CostControlDetail();
 | 
						|
                            detail.CostControlDetailId = SQLHelper.GetNewID();
 | 
						|
                            detail.CostControlId = item.CostControlId;
 | 
						|
                            detail.CostControlCode = item.CostControlCode;
 | 
						|
                            detail.CostControlName = item.CostControlName;
 | 
						|
                            detail.TotalNum = item.TotalNum;
 | 
						|
                            detail.Unit = item.Unit;
 | 
						|
                            detail.PlanNum = null;
 | 
						|
                            detail.RealPrice = item.RealPrice;
 | 
						|
                            detail.PlanPrice = item.PlanPrice;
 | 
						|
                        }
 | 
						|
                        if (detail.ThisNum == 0)
 | 
						|
                        {
 | 
						|
                            detail.ThisNum = null;
 | 
						|
                        }
 | 
						|
                        details.Add(detail);
 | 
						|
                    }
 | 
						|
                    //}
 | 
						|
                    //else   //周记录
 | 
						|
                    //{
 | 
						|
                    //    this.Grid1.Columns[4].HeaderText = "本周计划完成量";
 | 
						|
                    //    this.Grid1.Columns[7].HeaderText = "本周完成量";
 | 
						|
                    //    foreach (var item in list)
 | 
						|
                    //    {
 | 
						|
                    //        if (item.TotalNum != null)
 | 
						|
                    //        {
 | 
						|
                    //            DateTime startDate = Convert.ToDateTime(this.drpWeek.SelectedValue.Split(',')[0]);
 | 
						|
                    //            Model.View_WBS_CostControlDetail detail = BLL.CostControlDetailService.GetViewCostControlDetailByCostControlIdAndMonthWeek(item.CostControlId, months, startDate);
 | 
						|
                    //            if (detail == null)
 | 
						|
                    //            {
 | 
						|
                    //                detail = new Model.View_WBS_CostControlDetail();
 | 
						|
                    //                detail.CostControlDetailId = SQLHelper.GetNewID();
 | 
						|
                    //                detail.CostControlId = item.CostControlId;
 | 
						|
                    //                detail.CostControlCode = item.CostControlCode;
 | 
						|
                    //                detail.CostControlName = item.CostControlName;
 | 
						|
                    //                detail.TotalNum = item.TotalNum;
 | 
						|
                    //                detail.Unit = item.Unit;
 | 
						|
                    //                detail.PlanNum = null;
 | 
						|
                    //                detail.RealPrice = item.RealPrice;
 | 
						|
                    //                detail.PlanPrice = item.PlanPrice;
 | 
						|
                    //            }
 | 
						|
                    //            else
 | 
						|
                    //            {
 | 
						|
                    //                Model.WBS_CostControlDetail oldDetail = BLL.CostControlDetailService.GetCostControlDetailByCostControlDetailId(detail.CostControlDetailId);
 | 
						|
                    //                if (oldDetail.PlanNum != null)
 | 
						|
                    //                {
 | 
						|
                    //                    detail.PlanNum = Convert.ToDouble(oldDetail.PlanNum);
 | 
						|
                    //                }
 | 
						|
                    //                else
 | 
						|
                    //                {
 | 
						|
                    //                    detail.PlanNum = null;
 | 
						|
                    //                }
 | 
						|
                    //                if (oldDetail.ThisNum != null)
 | 
						|
                    //                {
 | 
						|
                    //                    detail.ThisNum = Convert.ToDouble(oldDetail.ThisNum);
 | 
						|
                    //                }
 | 
						|
                    //                else
 | 
						|
                    //                {
 | 
						|
                    //                    detail.ThisNum = null;
 | 
						|
                    //                }
 | 
						|
                    //            }
 | 
						|
                    //            details.Add(detail);
 | 
						|
                    //        }
 | 
						|
                    //    }
 | 
						|
                    //}
 | 
						|
                    Grid1.DataSource = details;
 | 
						|
                    Grid1.DataBind();
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    Grid1.DataSource = null;
 | 
						|
                    Grid1.DataBind();
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region 获取按钮权限
 | 
						|
        /// <summary>
 | 
						|
        /// 获取按钮权限
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="button"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        private void GetButtonPower()
 | 
						|
        {
 | 
						|
            if (Request.Params["value"] == "0")
 | 
						|
            {
 | 
						|
                return;
 | 
						|
            }
 | 
						|
            var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.WorkloadInputMenuId);
 | 
						|
            if (buttonList.Count() > 0)
 | 
						|
            {
 | 
						|
                if (buttonList.Contains(BLL.Const.BtnSave))
 | 
						|
                {
 | 
						|
                    this.btnMenuEdit.Hidden = false;
 | 
						|
                    this.btnEditAll.Hidden = false;
 | 
						|
                    this.btnImport.Hidden = false;
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region 加载周计划下拉框
 | 
						|
        protected void InitWeek()
 | 
						|
        {
 | 
						|
            if (!string.IsNullOrEmpty(this.txtMonths.Text.Trim()))
 | 
						|
            {
 | 
						|
                DateTime months = Convert.ToDateTime(this.txtMonths.Text.Trim() + "-01");
 | 
						|
                string costControlId = string.Empty;
 | 
						|
                var list = BLL.CostControlService.GetCostControlsByWbsSetId(this.trWBS.SelectedNodeID);
 | 
						|
                if (list.Count > 0)
 | 
						|
                {
 | 
						|
                    foreach (var item in list)
 | 
						|
                    {
 | 
						|
                        if (item.TotalNum != null)
 | 
						|
                        {
 | 
						|
                            if (BLL.CostControlDetailService.IsExitWeekCostControlDetailByCostControlIdAndMonth(item.CostControlId, months))
 | 
						|
                            {
 | 
						|
                                //BLL.CostControlDetailService.InitWeekPlanList(this.drpWeek, item.CostControlId, months, true);
 | 
						|
                                //this.drpWeek.SelectedValue = BLL.Const._Null;
 | 
						|
                                break;
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region  月份选择事件
 | 
						|
        /// <summary>
 | 
						|
        /// 月份选择事件
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        protected void txtMonths_TextChanged(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            BindGrid();
 | 
						|
            //InitWeek();
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        protected void drpWeek_SelectedIndexChanged(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            BindGrid();
 | 
						|
        }
 | 
						|
 | 
						|
        #region 全项目录入
 | 
						|
        /// <summary>
 | 
						|
        /// 全项目录入按钮
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        protected void btnEditAll_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("WorkloadInputEditAll.aspx?ProjectId={0}", this.CurrUser.LoginProjectId, "导入 - ")));
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region 导入
 | 
						|
        /// <summary>
 | 
						|
        /// 导入按钮
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        protected void btnImport_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("WorkloadInputIn.aspx?ProjectId={0}", this.CurrUser.LoginProjectId, "导入 - ")));
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
    }
 | 
						|
} |