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_MODEL.Page; using GThinking.N_MISPRO.Data; using GThinking.N_MISPRO; using GThinking.N_MISPRO.Utility; using System.Text; using System.Collections.Generic; using GThinking.N_MISPRO.Caching; namespace GThinking.N_XLXSBJ { public partial class JGBPZ_HQFZJGBList : SingleGridBase { JGBPZ_HQFZJGB entity = new JGBPZ_HQFZJGB(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860036; this.UMName = "线缆销售报价价格目录配置"; this.CurMaster = Master; this.ModuleGV = grdJGB; this.CurEntity = entity; this.PageHeight = 600; this.PageWidth = 750; base.DataKeyNames = new string[] { "XLXSJGB_JGBID", "XLXSJGB_JGBMC", "XLXSJGB_BJLY" }; Master.EnableQueryBtn = false; Master.EnableNewBtn = false; Master.EnableCopyBtn = false; Master.EnableEditBtn = false; Master.EnableViewBtn = false; Master.EnableDeleteBtn = false; base.InitPage(); this.ModuleGV.OnClientDblClick = "return false;"; if (!IsPostBack) { Master_OnStandardQuery(null, null); } } #region 模板事件 protected override void Master_OnStandardQuery(object sender, EventArgs e) { entity.EntityTable.QuerySelSql = GetSql(); base.Master_OnStandardQuery(sender, e); entity.GridDataBind(grdJGB, tSession); } protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e) { entity.EntityTable.QuerySelSql = GetSql(); base.moduleGV_PageIndexChanging(sender, e); grdJGB.SelectedIndex = -1; } #endregion #region 自定义函数 private string GetSql() { string sSQL = " select XLXSJGB_JGBID, XLXSJGB_JGBMC, XLXSJGB_YXQS, XLXSJGB_YXQZ, XLXSJGB_BZ, \r\n" + " XLXSJGB_WHR, XLXSJGB_WHRID, XLXSJGB_WHSJ,XLXSJGB_BJLY \r\n" + " from XLXSJGB where isnull(XLXSJGB_CPMLID,' ')=' ' \r\n"; sSQL += " and XLXSJGB_MXBH=:pMXBH "; entity.Param.Add("pMXBH", PageParam.GetRTrimString("MXBH")); sSQL += " and XLXSJGB_TJYS=:pTJYS "; entity.Param.Add("pTJYS", PageParam.GetRTrimString("TJYS")); return sSQL + " order by XLXSJGB_JGBID "; } #endregion protected void grdJGB_RowDoubleClick(object sender, GThinking.N_CONTROL.RowDoubleClickEventArgs e) { //从派生价格表传过来可能需要被替换掉的价格表ID:价格表A string sGetJGBID = PageParam.GetRTrimString("JGBID"); string sGetJGBMC = PageParam.GetRTrimString("JGBMC"); if (sGetJGBID.Equals("")) { //同之前的操作包含两层含义: //1、单一价格表的引用 //2、组合价格表的引用 Confirm.Register("IsQD", "被选中的价格表现为非产品目录价格表,将被设置材料行情范围成为产品目录价格表,是否继续?"); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { Confirm.Clear(); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { Confirm.Clear(); } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); try { dberp.BeginTrans(); #region 如果是组合产品目录,先进行判断,构建出JGCIDS string sJGCIDs = ""; if (PageParam.GetRTrimString("CPMLLX").Equals("Y"))//组合产品目录 { string sErrorMsg = ""; sJGCIDs = JGBPZ.GetJGCIDS(dberp, SQL, PageParam.GetRTrimString("JGBPZDH"), PageParam.GetRTrimString("CLHQZH"), PageParam.GetRTrimString("CPMLIDS"), PageParam.GetRTrimString("BJCLIDS"), ref sErrorMsg); if (!sErrorMsg.Equals("")) { ShowMessage(sErrorMsg); dberp.CommitTrans(); return; } } #endregion string sJGBID = grdJGB.DataKeys[grdJGB.SelectedIndex]["XLXSJGB_JGBID"].ToString().Trim(); string sJGBMC = grdJGB.DataKeys[grdJGB.SelectedIndex]["XLXSJGB_JGBMC"].ToString().Trim(); string sBJLY = grdJGB.DataKeys[grdJGB.SelectedIndex]["XLXSJGB_BJLY"].ToString().Trim(); SQL.Clear(); if (PageParam.GetRTrimString("CPMLLX").Equals("Y"))//组合产品目录 { SQL.Add("update XLXSJGB set XLXSJGB_CPMLID=:pCPMLID,XLXSJGB_JGCIDS=:pJGCIDS,XLXSJGB_BJLY='C' where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID"); } else { if (sBJLY.Equals("C")) { SQL.Add("update XLXSJGB set XLXSJGB_CPMLID=:pCPMLID,XLXSJGB_JGCIDS=:pJGCIDS,XLXSJGB_BJLY='J' where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID"); } else { SQL.Add("update XLXSJGB set XLXSJGB_CPMLID=:pCPMLID,XLXSJGB_JGCIDS=:pJGCIDS where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID"); } } SQL.ParamByName("pCPMLID").Value = PageParam.GetRTrimString("CPMLID"); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pMXBH").Value = PageParam.GetRTrimString("MXBH"); SQL.ParamByName("pJGCIDS").Value = sJGCIDs; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("update XLXSJGBPZJGB set XLXSJGBPZJGB_JGBID=:pJGBID,XLXSJGBPZJGB_JGBMC=:pJGBMC where XLXSJGBPZJGB_JGBPZDH=:pJGBPZDH and XLXSJGBPZJGB_CLHQZH=:pCLHQZH "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pJGBMC").Value = sJGBMC; SQL.ParamByName("pJGBPZDH").Value = PageParam.GetRTrimString("JGBPZDH"); SQL.ParamByName("pCLHQZH").Value = PageParam.GetRTrimString("CLHQZH"); dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("delete from XLXSJGBCLHQFD where XLXSJGBCLHQFD_MXBH=:pMXBH and XLXSJGBCLHQFD_JGBID=:pJGBID"); SQL.ParamByName("pMXBH").Value = PageParam.GetRTrimString("MXBH"); SQL.ParamByName("pJGBID").Value = sJGBID; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("insert into XLXSJGBCLHQFD(XLXSJGBCLHQFD_MXBH,XLXSJGBCLHQFD_JGBID,XLXSJGBCLHQFD_BJCLID,XLXSJGBCLHQFD_HSJGS,XLXSJGBCLHQFD_HSJGZ,XLXSJGBCLHQFD_CLJGS,XLXSJGBCLHQFD_CLJGZ,XLXSJGBCLHQFD_WHRID,XLXSJGBCLHQFD_WHR,XLXSJGBCLHQFD_WHSJ) "); SQL.Add("select :pMXBH,:pJGBID,XLXSCLHQFD_BJCLID,XLXSCLHQFD_HSJGS,XLXSCLHQFD_HSJGZ,XLXSCLHQFD_CLJGS,XLXSCLHQFD_CLJGZ,:pWHRID,:pWHR,:pWHSJ"); SQL.Add(" from XLXSJGBPZCLHQFD,XLXSCLHQFD"); SQL.Add(" where XLXSJGBPZCLHQFD_JGBPZDH=:pJGBPZDH"); SQL.Add(" and XLXSJGBPZCLHQFD_CLHQZH=:pCLHQZH"); SQL.Add(" and XLXSCLHQFD_BJCLID=XLXSJGBPZCLHQFD_BJCLID"); SQL.Add(" and XLXSCLHQFD_CLHQDH=XLXSJGBPZCLHQFD_CLHQDH"); SQL.ParamByName("pMXBH").Value = PageParam.GetRTrimString("MXBH"); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pWHRID").Value = tSession.UserId; SQL.ParamByName("pWHR").Value = tSession.UserName; SQL.ParamByName("pWHSJ").Value = DateTime.Now; SQL.ParamByName("pJGBPZDH").Value = PageParam.GetRTrimString("JGBPZDH"); SQL.ParamByName("pCLHQZH").Value = PageParam.GetRTrimString("CLHQZH"); dberp.ExecSQL(SQL); dberp.CommitTrans(); ShowMessage("引用完成!"); CacheNotify.TableIsUpdated("DBERP", "XLXSJGB"); DialogOperationScript dos = new DialogOperationScript(this); dos.ClickOwnerButton(PageParam.GetRTrimString("btnRefresh1CID")); dos.CloseSelf(); dos.Execute(); } catch (Exception ex) { ShowMessage(ex.Message); dberp.RollbackTrans(); } } else { //选择一条非产品目录价格表记录B,双击进行价格表更换操作: //(1)先询问“将用价格表B替换价格表A,是否继续?”,是则继续,否则终止操作; //(2)价格表B替换价格表A,依次执行如下语句: //选中用来替换的价格表:价格表B string sJGBID = grdJGB.DataKeys[grdJGB.SelectedIndex]["XLXSJGB_JGBID"].ToString().Trim(); string sJGBMC = grdJGB.DataKeys[grdJGB.SelectedIndex]["XLXSJGB_JGBMC"].ToString().Trim(); string sBJLY = grdJGB.DataKeys[grdJGB.SelectedIndex]["XLXSJGB_BJLY"].ToString().Trim(); string sWarnMsg = ""; sWarnMsg = "将用价格表【" + sJGBID + "|" + sJGBMC + "】替换价格表【" + sGetJGBID + "|" + sGetJGBMC + "】,是否继续?"; Confirm.Register("IsQD", sWarnMsg); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { Confirm.Clear(); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { Confirm.Clear(); } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); try { dberp.BeginTrans(); //此处,处理的都是单一产品目录,传入的时候已经对组合目录进行了限制。 string sJGCIDs = " "; SQL.Clear(); #region 处理替换的价格表B if (sBJLY.Equals("C"))//单一产品目录此分支走不到 { SQL.Add("update XLXSJGB set XLXSJGB_CPMLID=:pCPMLID,XLXSJGB_JGCIDS=:pJGCIDS,XLXSJGB_BJLY='J' where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID"); } else { SQL.Add("update XLXSJGB set XLXSJGB_CPMLID=:pCPMLID,XLXSJGB_JGCIDS=:pJGCIDS where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID"); } SQL.ParamByName("pCPMLID").Value = PageParam.GetRTrimString("CPMLID"); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pMXBH").Value = PageParam.GetRTrimString("MXBH"); SQL.ParamByName("pJGCIDS").Value = sJGCIDs; dberp.ExecSQL(SQL); //当前配置单号 SQL.Clear(); SQL.Add("update XLXSJGBPZJGB set XLXSJGBPZJGB_JGBID=:pJGBID,XLXSJGBPZJGB_JGBMC=:pJGBMC where XLXSJGBPZJGB_JGBPZDH=:pJGBPZDH and XLXSJGBPZJGB_JGBID = :pOLDJGBID "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pJGBMC").Value = sJGBMC; SQL.ParamByName("pJGBPZDH").Value = PageParam.GetRTrimString("JGBPZDH"); SQL.ParamByName("pOLDJGBID").Value = sGetJGBID; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("delete from XLXSJGBCLHQFD where XLXSJGBCLHQFD_MXBH=:pMXBH and XLXSJGBCLHQFD_JGBID=:pJGBID"); SQL.ParamByName("pMXBH").Value = PageParam.GetRTrimString("MXBH"); SQL.ParamByName("pJGBID").Value = sJGBID; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("insert into XLXSJGBCLHQFD(XLXSJGBCLHQFD_MXBH,XLXSJGBCLHQFD_JGBID,XLXSJGBCLHQFD_BJCLID,XLXSJGBCLHQFD_HSJGS,XLXSJGBCLHQFD_HSJGZ,XLXSJGBCLHQFD_CLJGS,XLXSJGBCLHQFD_CLJGZ,XLXSJGBCLHQFD_WHRID,XLXSJGBCLHQFD_WHR,XLXSJGBCLHQFD_WHSJ) "); SQL.Add("select XLXSJGBCLHQFD_MXBH,:pNEWJGBID,XLXSJGBCLHQFD_BJCLID,XLXSJGBCLHQFD_HSJGS,XLXSJGBCLHQFD_HSJGZ,XLXSJGBCLHQFD_CLJGS,XLXSJGBCLHQFD_CLJGZ,:pWHRID,:pWHR,:pWHSJ"); SQL.Add(" from XLXSJGBCLHQFD"); SQL.Add(" where XLXSJGBCLHQFD_MXBH=:pMXBH"); SQL.Add(" and XLXSJGBCLHQFD_JGBID=:pOLDJGBID"); SQL.ParamByName("pMXBH").Value = PageParam.GetRTrimString("MXBH"); SQL.ParamByName("pOLDJGBID").Value = sGetJGBID; SQL.ParamByName("pNEWJGBID").Value = sJGBID; SQL.ParamByName("pWHRID").Value = tSession.UserId; SQL.ParamByName("pWHR").Value = tSession.UserName; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); #endregion #region 处理被替换的--价格表A SQL.Clear(); SQL.Add("delete from XLXSJGBCLHQFD where XLXSJGBCLHQFD_MXBH=:pMXBH and XLXSJGBCLHQFD_JGBID=:pJGBID"); SQL.ParamByName("pMXBH").Value = PageParam.GetRTrimString("MXBH"); SQL.ParamByName("pJGBID").Value = sGetJGBID; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("update XLXSJGB set XLXSJGB_CPMLID=null,XLXSJGB_JGCIDS=:pJGCIDS where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID"); SQL.ParamByName("pCPMLID").Value = PageParam.GetRTrimString("CPMLID"); SQL.ParamByName("pJGBID").Value = sGetJGBID; SQL.ParamByName("pMXBH").Value = PageParam.GetRTrimString("MXBH"); SQL.ParamByName("pJGCIDS").Value = sJGCIDs; dberp.ExecSQL(SQL); #endregion #region 完成组合价格表XLXSJGB_JGCIDS的替换 SQL.Clear(); SQL.Add(" update XLXSJGB set XLXSJGB_JGCIDS = REPLACE(XLXSJGB_JGCIDS,:pOLDJGBID,:pNEWJGBID)"); SQL.Add(" where XLXSJGB_JGCIDS like '%'||:pOLDJGBID||'%' and XLXSJGB_MXBH='JGB' "); SQL.ParamByName("pOLDJGBID").Value = sGetJGBID; SQL.ParamByName("pNEWJGBID").Value = sJGBID; dberp.ExecSQL(SQL); #endregion dberp.CommitTrans(); ShowMessage("替换完成!"); CacheNotify.TableIsUpdated("DBERP", "XLXSJGB"); DialogOperationScript dos = new DialogOperationScript(this); dos.ClickOwnerButton(PageParam.GetRTrimString("btnRefresh1CID")); dos.CloseSelf(); dos.Execute(); } catch (Exception ex) { ShowMessage(ex.Message); dberp.RollbackTrans(); } } } } }