using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using GThinking.N_MISPRO.Data; using GThinking.N_MODEL.Page; using GThinking.N_MISPRO; using GThinking.N_CONTROL; using GThinking.N_MISPRO.Utility; using System.Collections.Generic; using GThinking.N_MISPRO.Caching; namespace GThinking.N_XLXSBJ { [TableMap(DB = "DBERP", DbTableName = "XLXSJGB", Umid = 100860018, IsWorkFlow = false, IsAttach = false, UseWhr = false)] public class JGBML_BJJGB : EntityManager { } public partial class JGBML_BJJGBList : SingleGridBase { JGBML_BJJGB entity = new JGBML_BJJGB(); Dictionary dicJGCID = new Dictionary(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860018; this.UMName = "线缆销售报价价格目录"; this.CurMaster = Master; this.ModuleGV = ContentGrid; this.CurEntity = entity; //this.CurQueryEntity = queryentity; this.PageHeight = 600; this.PageWidth = 750; base.DataKeyNames = new string[] { "XLXSJGB_JGBID" }; Master.EnableNewBtn = false; Master.EnableCopyBtn = false; Master.EnableViewBtn = false; Master.EnableEditBtn = false; Master.EnableDeleteBtn = false; Master.EnableQueryBtn = false; base.InitPage(); if (!IsPostBack) { Master_OnStandardQuery(null, null); } } #region 模板继承事件 protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { if (dicJGCID.Count == 0) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select XLXSJGB_JGBID,XLXSJGB_JGBMC from XLXSJGB where XLXSJGB_MXBH='JGC' order by XLXSJGB_JGBID"); DataSet ds = dberp.OpenDataSet(sql); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { dicJGCID.Add(ds.Tables[0].Rows[i]["XLXSJGB_JGBID"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSJGB_JGBMC"].ToString().Trim()); } } int index = ContentGrid.Columns.IndexOf(ContentGrid.FindColumnByFieldName("XLXSJGB_JGCIDS")); if (!e.Row.Cells[index].Text.Trim().Equals("")) { string[] sJGCIDS = e.Row.Cells[index].Text.Trim().Split(','); string sJGCXX = ""; for (int i = 0; i < sJGCIDS.Length; i++) { if (dicJGCID.ContainsKey(sJGCIDS[i].Trim())) { sJGCXX += sJGCIDS[i].Trim() + "|" + dicJGCID[sJGCIDS[i].Trim()] + ","; } else { sJGCXX += sJGCIDS[i].Trim() + ","; } } e.Row.Cells[index].Text = sJGCXX.TrimEnd(','); } } base.moduleGV_RowDataBound(sender, e); } protected override void Master_OnStandardQuery(object sender, EventArgs e) { //base.InitEntityByCondition(); base.Master_OnStandardQuery(sender, e); entity.EntityTable.QuerySelSql = GetQuerySql(); entity.GridDataBind(ContentGrid, tSession); } protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e) { //base.InitEntityByCondition(); entity.EntityTable.QuerySelSql = GetQuerySql(); ContentGrid.SelectedIndex = -1; base.moduleGV_PageIndexChanging(sender, e); } #endregion #region 自定义方法 private string GetQuerySql() { string sSQL = " select case when isnull(XLXSJGB_CPMLID,' ')=' ' then ' ' else rtrim(XLXSJGB_CPMLID)||'|'||XLXSCPML_CPMLMC end as CPML," + " XLXSJGB_JGBID,XLXSJGB_JGBMC,XLXSJGB_YXQS,XLXSJGB_YXQZ,XLXSJGB_JGCIDS,XLXSJGB_BZ,XLXSJGB_WHR,XLXSJGB_WHSJ" + " from XLXSJGB left join XLXSCPML on XLXSCPML_CPMLID=XLXSJGB_CPMLID" + " where XLXSJGB_MXBH='JGB' " + " and " + CMISproDataBase.GetWhereEqual("XLXSJGB_CPMLID", PageParam.GetRTrimString("multiCPMLIDS")); sSQL += " order by isnull(XLXSJGB_CPMLID,' '),XLXSJGB_YXQS desc,ISNULL(XLXSJGB_YXQZ,'9999-12-31') desc,XLXSJGB_JGBID"; return sSQL; } #endregion #region 控件事件 protected void ContentGrid_RowDoubleClick(object sender, GThinking.N_CONTROL.RowDoubleClickEventArgs e) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); string sJGCID = PageParam.GetRTrimString("JGBID"); string sJGBID = ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSJGB_JGBID"].ToString().Trim(); try { dberp.BeginTrans(); sql.Clear(); sql.Add("select XLXSJGB_JGCIDS from XLXSJGB where XLXSJGB_MXBH='JGB' and XLXSJGB_JGBID=:pJGBID"); sql.ParamByName("pJGBID").Value = sJGBID; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { string sJGCIDS = ds.Tables[0].Rows[0]["XLXSJGB_JGCIDS"].ToString().Trim(); string sNewJGCIDS = ""; string sMsg = ""; if (Convert.ToString("," + sJGCIDS + ",").Contains("," + sJGCID + ",")) { sNewJGCIDS = Convert.ToString("," + sJGCIDS + ",").Replace("," + sJGCID + ",", ","); sNewJGCIDS = sNewJGCIDS.TrimStart(',').TrimEnd(','); } else { //校验产品重复性 sql.Clear(); sql.Add("select XLXSJGBMX_JGBID,XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID"); sql.Add(" from XLXSJGBMX a"); sql.Add(" where " + CMISproDataBase.GetWhereEqual("a.XLXSJGBMX_JGBID", sJGCIDS)); sql.Add(" and exists(select 1 from XLXSJGBMX b where b.XLXSJGBMX_JGBID=:pJGCID"); sql.Add(" and b.XLXSJGBMX_XLXHID=a.XLXSJGBMX_XLXHID and b.XLXSJGBMX_XLGGID=a.XLXSJGBMX_XLGGID"); sql.Add(" and b.XLXSJGBMX_XLBZID=a.XLXSJGBMX_XLBZID and b.XLXSJGBMX_DYDJID=a.XLXSJGBMX_DYDJID)"); sql.Add(" order by XLXSJGBMX_JGBID,XLXSJGBMX_XH"); sql.ParamByName("pJGCID").Value = sJGCID; DataSet dsCheck = dberp.OpenDataSet(sql); if (dsCheck.Tables[0].Rows.Count > 0) { string sCheckMsg = "与已有基价价格表存在重复产品,无法加入报价价格表!"; for (int i = 0; i < dsCheck.Tables[0].Rows.Count; i++) { sCheckMsg += "\r\n" + "【" + dsCheck.Tables[0].Rows[i]["XLXSJGBMX_JGBID"].ToString().Trim() + "】" + dsCheck.Tables[0].Rows[i]["XLXSJGBMX_XLXHID"].ToString().Trim() + " " + dsCheck.Tables[0].Rows[i]["XLXSJGBMX_XLGGID"].ToString().Trim() + " " + dsCheck.Tables[0].Rows[i]["XLXSJGBMX_XLBZID"].ToString().Trim() + " " + dsCheck.Tables[0].Rows[i]["XLXSJGBMX_DYDJID"].ToString().Trim(); } ShowMessage(sCheckMsg); return; } sql.Clear(); sql.Add("select XLXSJGB_JGBID,XLXSJGB_CPMLID from XLXSJGB where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGB_JGBID", sJGCIDS)); sql.Add(" order by XLXSJGB_JGBID"); DataSet dsJGC = dberp.OpenDataSet(sql); string sameCPMLJGCID = ""; string nosameCPMLJGCID = ""; for (int i = 0; i < dsJGC.Tables[0].Rows.Count; i++) { if (dsJGC.Tables[0].Rows[i]["XLXSJGB_CPMLID"].ToString().Trim().Equals(PageParam.GetRTrimString("singleCPMLID"))) { sameCPMLJGCID += dsJGC.Tables[0].Rows[i]["XLXSJGB_JGBID"].ToString().Trim() + ","; } else { nosameCPMLJGCID += dsJGC.Tables[0].Rows[i]["XLXSJGB_JGBID"].ToString().Trim() + ","; } } sameCPMLJGCID = sameCPMLJGCID.TrimEnd(','); nosameCPMLJGCID = nosameCPMLJGCID.TrimEnd(','); if (!sameCPMLJGCID.Equals("")) { sMsg = string.Format("价格表【{0}】已经作为产品目录【{1}】的基价价格表加入报价价格表,是否替换为当前价格表【{2}】?", sameCPMLJGCID, PageParam.GetRTrimString("singleCPMLID"), sJGCID); if (nosameCPMLJGCID.Equals("")) sNewJGCIDS = sJGCID; else sNewJGCIDS = nosameCPMLJGCID + "," + sJGCID; } else { if (sJGCIDS.Equals("")) sNewJGCIDS = sJGCID; else sNewJGCIDS = sJGCIDS + "," + sJGCID; } } if (!sMsg.Equals("")) { Confirm.Register("ask", sMsg); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("ask").Trim().Equals("")) { Confirm.Ask("ask"); return; } else if (Confirm.GetValue("ask").Trim().Equals("N")) { Confirm.Clear(); return; } else if (Confirm.GetValue("ask").Trim().Equals("Y")) { Confirm.Clear(); } } sql.Clear(); sql.Add("update XLXSJGB set XLXSJGB_JGCIDS=:pJGCIDS where XLXSJGB_MXBH='JGB' and XLXSJGB_JGBID=:pJGBID"); sql.ParamByName("pJGCIDS").Value = sNewJGCIDS; sql.ParamByName("pJGBID").Value = sJGBID; dberp.ExecSQL(sql); } dberp.CommitTrans(); CacheNotify.TableIsUpdated("DBERP", "XLXSJGB"); } catch (Exception ex) { ShowMessage(ex.Message); dberp.RollbackTrans(); } moduleGV_PageIndexChanging(null, null); FormAreaUpdate(); } protected void btnIns_Click(object sender, EventArgs e) { TPageParams param = new TPageParams(); param.UrlPath = "JGBMLInfo.aspx"; param.CallAction = TPageCallAction.pcaInsert; param.AddString("FLID", "JGB"); param.AddString("FROM", "BJJGBList"); if (!PageParam.GetRTrimString("multiCPMLIDS").Contains(","))//如果组合产品目录只有一个 param.AddString("DefCPMLID", PageParam.GetRTrimString("multiCPMLIDS")); OpenDialogClickBtn(param, btnRefresh.ClientID); } protected void btnRefresh_Click(object sender, EventArgs e) { moduleGV_PageIndexChanging(null, null); } #endregion } }