Files
N_XLXSBJ----MX/JGBPZ_HQFZJGBList.aspx.cs
T
2026-08-21 17:03:02 +08:00

339 lines
16 KiB
C#

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();
}
}
}
}
}