186 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			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
 | 
						|
    }
 | 
						|
} |