using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using BLL; using Newtonsoft.Json.Linq; namespace FineUIPro.Web.JDGL.WBS { public partial class CostControlDetailEdit : PageBase { /// /// 控制项主键 /// public string Id { get { return (string)ViewState["Id"]; } set { ViewState["Id"] = value; } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.Id = Request.Params["Id"]; Model.WBS_CostControl costControl = BLL.CostControlService.GetCostControlByCostControlId(this.Id); if (costControl != null) { this.txtCostControlName.Text = costControl.CostControlName; } var list = BLL.CostControlDetailService.GetMonthCostControlDetailsByCostControlId(this.Id); this.Grid1.DataSource = list; this.Grid1.DataBind(); } } #region 增加按钮事件 /// /// 增加按钮事件 /// /// /// protected void btnNew_Click(object sender, EventArgs e) { var list = GetDetails(); Model.WBS_CostControlDetail detail = new Model.WBS_CostControlDetail(); detail.CostControlDetailId = SQLHelper.GetNewID(); list.Add(detail); Grid1.DataSource = list; Grid1.DataBind(); } #endregion private List GetDetails() { List details = new List(); foreach (JObject mergedRow in Grid1.GetMergedData()) { JObject values = mergedRow.Value("values"); int i = mergedRow.Value("index"); Model.WBS_CostControlDetail detail = new Model.WBS_CostControlDetail(); detail.CostControlDetailId = Grid1.Rows[i].RowID; detail.CostControlId = this.Id; detail.Months = Funs.GetNewDateTime(values.Value("Months") + "-01"); detail.PlanNum = Funs.GetNewDecimal(values.Value("PlanNum")); details.Add(detail); } return details; } #region 行点击事件 /// /// Grid行点击事件 /// /// /// protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { string detailId = Grid1.DataKeys[e.RowIndex][0].ToString(); var list = GetDetails(); if (e.CommandName == "del")//删除 { var detail = list.FirstOrDefault(x => x.CostControlDetailId == detailId); Model.WBS_CostControlDetail oldDetail = BLL.CostControlDetailService.GetCostControlDetailByCostControlDetailId(detailId); if (detail != null) { list.Remove(detail); } if (oldDetail != null) { BLL.CostControlDetailService.DeleteCostControlDetail(detailId); } this.Grid1.DataSource = list; this.Grid1.DataBind(); } } #endregion #region 保存 /// /// 保存按钮 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { var list = GetDetails(); foreach (var item in list) { Model.WBS_CostControlDetail oldDetail = BLL.CostControlDetailService.GetCostControlDetailByCostControlDetailId(item.CostControlDetailId); if (oldDetail == null) { BLL.CostControlDetailService.AddCostControlDetail(item); } else { item.ThisNum = oldDetail.ThisNum; BLL.CostControlDetailService.UpdateCostControlDetail(item); } } ShowNotify("保存成功!", MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHideReference()); } #endregion #region 调整计划 /// /// 调整计划按钮 /// /// /// protected void btnUpdate_Click(object sender, EventArgs e) { var list = GetDetails(); int versionNum = BLL.CostControlDetailHistoryService.GetMonthMaxVersionNumByCostControlId(this.Id); foreach (var item in list) { Model.WBS_CostControlDetailHistory detailHistory = new Model.WBS_CostControlDetailHistory(); detailHistory.CostControlDetailHistoryId = SQLHelper.GetNewID(); detailHistory.CostControlId = item.CostControlId; detailHistory.Months = item.Months; detailHistory.PlanNum = item.PlanNum; detailHistory.VersionNum = versionNum + 1; BLL.CostControlDetailHistoryService.AddCostControlDetailHistory(detailHistory); } ShowNotify("历史版本保存成功!", MessageBoxIcon.Success); } #endregion #region 查看历史版本 /// /// 查看历史版本 /// /// /// protected void btnSee_Click(object sender, EventArgs e) { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("CostControlDetailHistoryShow.aspx?Id={0}", this.Id, "编辑 - "))); } #endregion } }