using BLL; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace FineUIPro.Web.JDGL.Check { public partial class QuantityCompletionEdit : PageBase { /// /// 项目id /// public string ProjectId { get { return (string)ViewState["ProjectId"]; } set { ViewState["ProjectId"] = value; } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DateTime months = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-01"); if (!string.IsNullOrEmpty(Request.Params["Months"])) { months = Convert.ToDateTime(Request.Params["Months"] + "-01"); } this.txtMonth.Text = string.Format("{0:yyyy-MM}", months); BindGrid(); } } /// /// 加载Grid /// private void BindGrid() { DateTime months = Convert.ToDateTime(this.txtMonth.Text + "-01"); Model.SGGLDB db = Funs.DB; Grid1.DataSource = from x in db.JDGL_QuantityList where x.ProjectId == this.CurrUser.LoginProjectId orderby x.SortIndex, x.Name select new { x.QuantityListId, x.Name, x.Unit, x.DesignNum, PlanNum = (from y in db.JDGL_QuantityCompletion where y.ProjectId == this.CurrUser.LoginProjectId && y.Months == months && y.QuantityListId == x.QuantityListId select y.PlanNum).First(), RealNum = (from y in db.JDGL_QuantityCompletion where y.ProjectId == this.CurrUser.LoginProjectId && y.Months == months && y.QuantityListId == x.QuantityListId select y.RealNum).First(), NextNum = (from y in db.JDGL_QuantityCompletion where y.ProjectId == this.CurrUser.LoginProjectId && y.Months == months && y.QuantityListId == x.QuantityListId select y.NextNum).First(), }; Grid1.DataBind(); } #region 月份选择事件 /// /// 月份选择事件 /// /// /// protected void txtMonths_TextChanged(object sender, EventArgs e) { BindGrid(); } #endregion protected void btnSave_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(this.txtMonth.Text)) { ShowNotify("请选择月份!", MessageBoxIcon.Warning); } SaveData(true); } private void SaveData(bool bl) { DateTime months = Convert.ToDateTime(this.txtMonth.Text + "-01"); var list = GetDetails(); Model.SGGLDB db = Funs.DB; foreach (var item in list) { string quantityListId = string.Empty; var oldQuantityList = db.JDGL_QuantityList.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.Name == item.Name); if (oldQuantityList == null) { Model.JDGL_QuantityList newQuantityList = new Model.JDGL_QuantityList(); quantityListId = SQLHelper.GetNewID(typeof(Model.JDGL_QuantityList)); newQuantityList.QuantityListId = quantityListId; newQuantityList.ProjectId = this.CurrUser.LoginProjectId; newQuantityList.Name = item.Name; newQuantityList.Unit = item.Unit; newQuantityList.DesignNum = item.DesignNum; BLL.QuantityListService.AddQuantityList(newQuantityList); } else { quantityListId = oldQuantityList.QuantityListId; oldQuantityList.Unit = item.Unit; oldQuantityList.DesignNum = item.DesignNum; BLL.QuantityListService.UpdateQuantityList(oldQuantityList); } var oldQuantityCompletion = db.JDGL_QuantityCompletion.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.QuantityListId == quantityListId && x.Months == months); if (oldQuantityCompletion==null) { Model.JDGL_QuantityCompletion QuantityCompletion = new Model.JDGL_QuantityCompletion(); QuantityCompletion.QuantityCompletionId = SQLHelper.GetNewID(typeof(Model.JDGL_QuantityCompletion)); QuantityCompletion.PlanNum = item.PlanNum; QuantityCompletion.RealNum = item.RealNum; QuantityCompletion.NextNum = item.NextNum; QuantityCompletion.Months = months; QuantityCompletion.QuantityListId = quantityListId; QuantityCompletion.CompileMan = this.CurrUser.UserId; QuantityCompletion.CompileDate = DateTime.Now; QuantityCompletion.ProjectId = this.CurrUser.LoginProjectId; BLL.QuantityCompletionService.AddQuantityCompletion(QuantityCompletion); } else { oldQuantityCompletion.PlanNum = item.PlanNum; oldQuantityCompletion.RealNum = item.RealNum; oldQuantityCompletion.NextNum = item.NextNum; BLL.QuantityCompletionService.UpdateQuantityCompletion(oldQuantityCompletion); } } ShowNotify("保存成功!", MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } #region 增加按钮事件 /// /// 增加按钮事件 /// /// /// protected void btnNew_Click(object sender, EventArgs e) { var list = GetDetails(); Model.View_JDGL_QuantityCompletion ql = new Model.View_JDGL_QuantityCompletion(); ql.QuantityListId = SQLHelper.GetNewID(); list.Add(ql); Grid1.DataSource = list; Grid1.DataBind(); } private List GetDetails() { List list = new List(); foreach (JObject mergedRow in Grid1.GetMergedData()) { JObject values = mergedRow.Value("values"); int i = mergedRow.Value("index"); Model.View_JDGL_QuantityCompletion ql = new Model.View_JDGL_QuantityCompletion(); ql.QuantityListId = Grid1.Rows[i].RowID; ql.Name = values.Value("Name"); ql.Unit = values.Value("Unit"); ql.DesignNum = Funs.GetNewDecimal(values.Value("DesignNum")); ql.PlanNum = Funs.GetNewDecimal(values.Value("PlanNum")); ql.RealNum = Funs.GetNewDecimal(values.Value("RealNum")); ql.NextNum = Funs.GetNewDecimal(values.Value("NextNum")); list.Add(ql); } return list; } #endregion #region 行点击事件 /// /// Grid行点击事件 /// /// /// protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { string quantityListId = Grid1.DataKeys[e.RowIndex][0].ToString(); var list = GetDetails(); if (e.CommandName == "del")//删除 { var Report = list.FirstOrDefault(x => x.QuantityListId == quantityListId); if (Report != null) { list.Remove(Report); } this.Grid1.DataSource = list; this.Grid1.DataBind(); } } #endregion } }