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

285 lines
12 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_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<string, string> dicJGCID = new Dictionary<string, string>();
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
}
}