Basf_EProject/EProject/FineUIPro.Web/EditorManage/CMHTDEdit.aspx.cs

186 lines
7.4 KiB
C#

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;
namespace FineUIPro.Web.EditorManage
{
public partial class CMHTDEdit : PageBase
{
private bool AppendToEnd = false;
#region
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetButtonPower();//权限设置
this.btnClose.OnClientClick = ActiveWindow.GetHideReference();
string eProjectId = Request.Params["eProjectId"];
BLL.ContractorService.InitContractorDropDownList(this.drpContractor, false);
this.drpDiscipline.DataTextField = "ConstText";
this.drpDiscipline.DataValueField = "ConstValue";
this.drpDiscipline.DataSource = BLL.TDCService.GetTDCDiscByEprojectId(eProjectId);
this.drpDiscipline.DataBind();
//Funs.FineUIPleaseSelect(this.ddDisc);
// 删除选中单元格的客户端脚本
string deleteScript = GetDeleteScript();
JObject defaultObj = new JObject();
defaultObj.Add("Contractor", "");
defaultObj.Add("Discipline", "");
defaultObj.Add("ReceiveDate", "");
// 在第一行新增一条数据
btnNew.OnClientClick = Grid1.GetAddNewRecordReference(defaultObj, AppendToEnd);
// 删除选中行按钮
btnDelete.OnClientClick = Grid1.GetNoSelectionAlertReference("Please select at least one record!") + deleteScript;
if (!string.IsNullOrEmpty(eProjectId))
{
BindGrid(eProjectId);
}
}
}
#endregion
#region Grid
private void BindGrid(string eProjectId)
{
string strSql = @"SELECT htd.*,con.ContractorShortName AS ContractorName FROM dbo.Editor_CM_HTD htd
LEFT JOIN dbo.Base_Contractor con ON con.ContractorId = htd.ContractorId
WHERE EProjectId = @EProjectId ORDER BY con.ContractorName";
SqlParameter[] parameter = new SqlParameter[]
{
new SqlParameter("@EProjectId",eProjectId)
};
DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.DataSource = dt;
Grid1.DataBind();
}
#endregion
#region
// 删除选中行的脚本
private string GetDeleteScript()
{
//ShowNotify("表格数据没有变化!");
return Confirm.GetShowReference("Make sure to delete the current data?", String.Empty, MessageBoxIcon.Question, Grid1.GetDeleteSelectedRowsReference(), String.Empty);
}
#endregion
#region
/// <summary>
/// 提交按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
string eprojectId = Request.Params["eProjectId"];
try
{
List<Model.Editor_CM_HTD> htdlist = new List<Model.Editor_CM_HTD>();
List<Model.Editor_TDC> tdclist = new List<Model.Editor_TDC>();
JArray cmHTDArr = Grid1.GetMergedData();
if (cmHTDArr.Count > 0)
{
Model.Editor_CM_HTD htdModel = null;
Model.Editor_TDC tdcModel = null;
for (int i = 0; i < cmHTDArr.Count; i++)
{
JObject objects = (JObject)cmHTDArr[i];
// 增加 HTD
htdModel = new Model.Editor_CM_HTD();
htdModel.HTDID = Guid.NewGuid().ToString();
htdModel.EProjectId = eprojectId;
string con = objects["values"]["ContractorName"].ToString();
var c = BLL.ContractorService.GetContractorByShortName(con);
htdModel.ContractorId = c.ContractorId;
htdModel.Discipline = objects["values"]["Discipline"] != null ? objects["values"]["Discipline"].ToString() : null;
htdModel.ReceiveDate = Funs.GetNewDateTime(objects["values"]["ReceiveDate"].ToString());
htdModel.Status = objects["values"]["Status"] != null ? objects["values"]["Status"].ToString() : null;
htdlist.Add(htdModel);
// 同步到TDC
if (!TDCService.IsExistTDC(eprojectId, "D21_Construction", objects["values"]["Discipline"].ToString()))
{
tdcModel = new Model.Editor_TDC();
tdcModel.TDCId = Guid.NewGuid().ToString();
tdcModel.EProjectId = eprojectId;
tdcModel.Type = "D21_Construction";
tdcModel.Disc = objects["values"]["Discipline"].ToString();
tdcModel.Remarks = c.ContractorName;
tdcModel.IsSync = true;
tdclist.Add(tdcModel);
}
}
}
// 先删除再保存
var cmHtd = from x in Funs.DB.Editor_CM_HTD where x.EProjectId == eprojectId select x.Discipline;
if (cmHtd.Count()>0)
{
foreach (var d in cmHtd)
{
if (!htdlist.Select(x=>x.Discipline).Contains(d))
{
var tdc = from x in Funs.DB.Editor_TDC where x.EProjectId == eprojectId && x.Type == "D21_Construction" && x.Disc==d select x;
if (tdc.Count() > 0)
{
BLL.TDCService.DeleteEditorTDCById(tdc.First().TDCId);
}
}
}
}
BLL.TDCService.AddEditorTDC(tdclist);
BLL.CMHTDService.DeleteCMHTD(eprojectId);
BLL.CMHTDService.AddEditorCMHTD(htdlist);
BindGrid(eprojectId);
ShowNotify("Save Successfully!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
catch (Exception ex)
{
Alert.ShowInParent(ex.ToString());
return;
}
}
#endregion
#region
/// <summary>
/// 菜单按钮权限
/// </summary>
private void GetButtonPower()
{
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.CMEditorMenuId);
if (buttonList.Count > 0)
{
if (buttonList.Contains("Edit HTD"))
{
this.btnNew.Hidden = false;
this.btnDelete.Hidden = false;
this.btnSave.Hidden = false;
}
}
}
#endregion
}
}