CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/JDGL/WBS/CostControlWeekItemDetailEd...

216 lines
9.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 CostControlWeekItemDetailEdit : PageBase
{
/// <summary>
/// 控制项主键
/// </summary>
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_CostControlDetail costControlDetail = BLL.CostControlDetailService.GetCostControlDetailByCostControlDetailId(this.Id);
string name = string.Empty;
if (costControlDetail != null)
{
Model.WBS_CostControl costControl = BLL.CostControlService.GetCostControlByCostControlId(costControlDetail.CostControlId);
if (costControl != null)
{
this.txtCostControlName.Text = costControl.CostControlName;
}
if (costControlDetail.Months != null)
{
this.txtMonths.Text = " 月份:" + string.Format("{0:yyyy-MM}", costControlDetail.Months);
}
if (costControlDetail.PlanNum != null)
{
this.txtTotalPlanNum.Text = " 本月计划完成量:" + costControlDetail.PlanNum.Value.ToString("F0");
}
var list = BLL.CostControlDetailService.GetWeekCostControlDetailsByCostControlId(costControlDetail.CostControlId, costControlDetail.Months.Value);
this.Grid1.DataSource = list;
this.Grid1.DataBind();
}
}
}
#region
/// <summary>
/// 增加按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNew_Click(object sender, EventArgs e)
{
var list = GetDetails();
Model.WBS_CostControlDetail detail = new Model.WBS_CostControlDetail();
Model.WBS_CostControlDetail costControlDetail = BLL.CostControlDetailService.GetCostControlDetailByCostControlDetailId(this.Id);
detail.CostControlDetailId = SQLHelper.GetNewID();
detail.Months = costControlDetail.Months;
detail.StartDate= costControlDetail.Months;
detail.EndDate = costControlDetail.Months.Value.AddMonths(1).AddDays(-1);
list.Add(detail);
Grid1.DataSource = list;
Grid1.DataBind();
}
#endregion
private List<Model.WBS_CostControlDetail> GetDetails()
{
List<Model.WBS_CostControlDetail> details = new List<Model.WBS_CostControlDetail>();
Model.WBS_CostControlDetail costControlDetail = BLL.CostControlDetailService.GetCostControlDetailByCostControlDetailId(this.Id);
foreach (JObject mergedRow in Grid1.GetMergedData())
{
JObject values = mergedRow.Value<JObject>("values");
int i = mergedRow.Value<int>("index");
Model.WBS_CostControlDetail detail = new Model.WBS_CostControlDetail();
detail.CostControlDetailId = Grid1.Rows[i].RowID;
detail.CostControlId = costControlDetail.CostControlId;
detail.Months = Funs.GetNewDateTime(values.Value<string>("Months"));
detail.StartDate = Funs.GetNewDateTime(values.Value<string>("StartDate"));
detail.EndDate = Funs.GetNewDateTime(values.Value<string>("EndDate"));
detail.PlanNum = Funs.GetNewDecimal(values.Value<string>("PlanNum"));
details.Add(detail);
}
return details;
}
#region
/// <summary>
/// Grid行点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
/// <summary>
/// 保存按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
bool hasDate = true;
decimal totalNum = 0;
foreach (JObject mergedRow in Grid1.GetMergedData())
{
JObject values = mergedRow.Value<JObject>("values");
int i = mergedRow.Value<int>("index");
Model.WBS_CostControlDetail detail = new Model.WBS_CostControlDetail();
if (string.IsNullOrEmpty(values.Value<string>("StartDate")) || string.IsNullOrEmpty(values.Value<string>("EndDate")))
{
hasDate = false;
}
totalNum += Funs.GetNewDecimalOrZero(values.Value<string>("PlanNum"));
}
if (!hasDate)
{
ShowNotify("开始、结束日期不能为空!", MessageBoxIcon.Warning);
return;
}
Model.WBS_CostControlDetail costControlDetail = BLL.CostControlDetailService.GetCostControlDetailByCostControlDetailId(this.Id);
if (costControlDetail.PlanNum != totalNum)
{
ShowNotify("周计划累计值必须等于"+ costControlDetail.PlanNum.Value.ToString("F0") + "", MessageBoxIcon.Warning);
return;
}
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
/// <summary>
/// 调整计划按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnUpdate_Click(object sender, EventArgs e)
{
var list = GetDetails();
Model.WBS_CostControlDetail costControlDetail = BLL.CostControlDetailService.GetCostControlDetailByCostControlDetailId(this.Id);
int versionNum = BLL.CostControlDetailHistoryService.GetWeekMaxVersionNumByCostControlId(costControlDetail.CostControlId, costControlDetail.Months.Value);
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.StartDate = item.StartDate;
detailHistory.EndDate = item.EndDate;
detailHistory.PlanNum = item.PlanNum;
detailHistory.VersionNum = versionNum + 1;
BLL.CostControlDetailHistoryService.AddCostControlDetailHistory(detailHistory);
}
ShowNotify("历史版本保存成功!", MessageBoxIcon.Success);
}
#endregion
#region
/// <summary>
/// 查看历史版本
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSee_Click(object sender, EventArgs e)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("CostControlWeekDetailHistoryShow.aspx?Id={0}", this.Id, "编辑 - ")));
}
#endregion
}
}