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

357 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_MISPRO;
using GThinking.N_MISPRO.Data;
using GThinking.N_PUBLIC;
using GThinking.N_MISPRO.Utility;
using System.Collections.Generic;
using GThinking.N_MODEL.Page;
using System.Text;
namespace GThinking.N_XLXSBJ
{
public partial class XLXSBJCLList : SingleGridBase
{
XLXSBJCL entity = new XLXSBJCL();
XLXSBJCL_M queryentity = new XLXSBJCL_M();
#region Page类事件继承
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860012;
this.UMName = "线缆销售报价材料";
this.CurMaster = Master;
this.ModuleGV = grdContentGrid;
this.CurEntity = entity;
this.CurQueryEntity = queryentity;
this.sURLTarget = "XLXSBJCLInfo.aspx";
this.sQueryURLTarget = "XLXSBJCLQuery.aspx";
this.PageHeight = 400;
this.PageWidth = 500;
//Master.EnableNewBtn = false;
//Master.EnableCopyBtn = false;
base.DataKeyNames = new string[] { "XLXSBJCL_BJCLID" };
CanDeleteCheckedRows = true;
ConfirmDelete("报价材料将删除,包含报价材料行情、材料行情分段,是否继续?");
if (!IsPostBack)
{
CurQueryEntity.FieldByName("PXFS").Value = "0";
}
base.InitPage();
TGtGridView.SetGrdColItems("DBERP", grdContentGrid.FindColumnExByFieldName("XLXSBJCL_ZCSCPZ"), " SELECT distinct XLZCSC_ZCSCID,XLZCSC_ZCSCMC FROM XLZCSC order by XLZCSC_ZCSCID ");
if (!IsPostBack)
{
Master_OnStandardQuery(null, null);
}
}
#endregion
#region 模板事件继承
protected override void Master_OnStandardQuery(object sender, EventArgs e)
{
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = GetQuerySelSQL();
base.Master_OnStandardQuery(sender, e);
entity.GridDataBind(grdContentGrid, tSession);
}
protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = GetQuerySelSQL();
grdContentGrid.SelectedIndex = -1;
base.moduleGV_PageIndexChanging(sender, e);
}
protected override void BeforeDelete(TDatabase db, ref bool ActionIsDone)
{
entity.Param.Add("XLXSBJCL_BJCLID", this.grdContentGrid.SelectedDataKey["XLXSBJCL_BJCLID"].ToString());
base.BeforeDelete(db, ref ActionIsDone);
}
protected override bool Master_BeforeDeleteAction(object sender, EventArgs e)
{
bool bReturn = base.Master_BeforeDeleteAction(sender, e);
string sBJCLID = this.grdContentGrid.SelectedDataKey["XLXSBJCL_BJCLID"].ToString().Trim();
string sSQL = string.Format(" select XLXSBJCL_BJCLID from XLXSBJCL "
+ " where XLXSBJCL_JGYBJCLID = '{0}' ", sBJCLID);
if (CMISproDataBase.ExistsRecord("DBERP", sSQL))
{
ShowMessage(string.Format("报价材料【{0}】已被当作加工原料使用,不允许删除!", sBJCLID));
return false;
}
string sCZBXX = "";
string sWLXX = "";
string sTJYZXX = "";
string sHQFD = "";
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(" select XLJGCZBLM_JGCZBID,XLJGCZBML_JGCZBMC, ");
SQL.Add(" XLJGCZBLM_JGCZBBBID AS XLJGCZBLM_JGCZBBBID, ");
SQL.Add(" XLJGCZBLM_CZBLMBH,XLJGCZBLM_CZBLMMC ");
SQL.Add(" from XLJGCZBLM,XLJGCZBML ");
SQL.Add(" where XLJGCZBLM_JGCZBID=XLJGCZBML_JGCZBID");
SQL.Add(" and XLJGCZBML_JGCZBBBID = XLJGCZBLM_JGCZBBBID ");
SQL.Add(" and XLJGCZBLM_BJCLID=:pBJCLID ");
SQL.Add(" order by XLJGCZBLM_JGCZBID ");
SQL.ParamByName("pBJCLID").Value = sBJCLID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
sCZBXX = "报价材料涉及如下尺重表,不允许删除:" + "\r\n";
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
sCZBXX += ds.Tables[0].Rows[i][0].ToString().Trim()
+ "|" + ds.Tables[0].Rows[i][1].ToString().Trim()
+ "|" + ds.Tables[0].Rows[i][2].ToString().Trim()
+ "|" + ds.Tables[0].Rows[i][3].ToString().Trim()
+ "|" + ds.Tables[0].Rows[i][4].ToString().Trim() + "\r\n";
}
ShowMessage(sCZBXX);
return false;
}
ds.Clear();
SQL.Clear();
SQL.Add(" select XLXSBJCLWL_WLID,WL_MC,WL_GG, ");
SQL.Add(" WL_TZ,WL_CL ");
SQL.Add(" from XLXSBJCLWL,WL ");
SQL.Add(" where XLXSBJCLWL_WLID=WL_WLID");
SQL.Add(" and XLXSBJCLWL_BJCLID=:pBJCLID ");
SQL.Add(" order by XLXSBJCLWL_WLID ");
SQL.ParamByName("pBJCLID").Value = sBJCLID;
ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
sWLXX = "报价材料涉及如下报价材料物料,不允许删除:" + "\r\n";
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
sWLXX += ds.Tables[0].Rows[i][0].ToString().Trim()
+ "|" + ds.Tables[0].Rows[i][1].ToString().Trim()
+ "|" + ds.Tables[0].Rows[i][2].ToString().Trim()
+ "|" + ds.Tables[0].Rows[i][3].ToString().Trim()
+ "|" + ds.Tables[0].Rows[i][4].ToString().Trim() + "\r\n";
}
ShowMessage(sWLXX);
return false;
}
ds.Clear();
SQL.Clear();
SQL.Add(" select XLXSJGBYZZ2_JGBID,XLXSJGBYZZ2_CPYT,XLCPYT_CPYTMC,");
SQL.Add(" XLXSJGBYZZ2_DYDJFL,XLXSJGBYZZ2_YZID,XLXSTZYZ_YZMC ");
SQL.Add(" from XLXSJGBYZZ2,XLCPYT,XLXSTZYZ ");
SQL.Add(" where XLXSJGBYZZ2_CPYT=XLCPYT_CPYT ");
SQL.Add(" and XLXSJGBYZZ2_YZID=XLXSTZYZ_YZID and XLXSTZYZ_MXBH='JZJ' and XLXSJGBYZZ2_BJCLID=:pBJCLID ");
SQL.Add(" order by XLXSJGBYZZ2_JGBID,XLXSJGBYZZ2_CPYT,XLXSJGBYZZ2_DYDJFL,XLXSJGBYZZ2_YZID ");
SQL.ParamByName("pBJCLID").Value = sBJCLID;
ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
sTJYZXX = "报价材料涉及如下销售价格表调价因子值设置,不允许删除:" + "\r\n";
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
sTJYZXX += ds.Tables[0].Rows[i][0].ToString().Trim()
+ "|" + ds.Tables[0].Rows[i][1].ToString().Trim()
+ "|" + ds.Tables[0].Rows[i][2].ToString().Trim()
+ "|" + ds.Tables[0].Rows[i][3].ToString().Trim()
+ "|" + ds.Tables[0].Rows[i][4].ToString().Trim()
+ "|" + ds.Tables[0].Rows[i][5].ToString().Trim() + "\r\n";
}
ShowMessage(sTJYZXX);
return false;
}
ds.Clear();
SQL.Clear();
SQL.Add(" select top 1 XLXSJGBPZ_JGBPZDH from XLXSJGBPZ ");
SQL.Add(" where XLXSJGBPZ_BJCLIDS like :pBJCLID");
SQL.ParamByName("pBJCLID").Value = "%" + sBJCLID + "%";
ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
sHQFD = "此报价材料已经被价格目录配置使用,不允许删除!" + "\r\n";
ShowMessage(sHQFD);
return false;
}
ds.Clear();
SQL.Clear();
SQL.Add(" select top 1 XLXSBJFLBJRHQCL_BJCLID from XLXSBJFLBJRHQCL ");
SQL.Add(" where XLXSBJFLBJRHQCL_BJCLID = :pBJCLID");
SQL.ParamByName("pBJCLID").Value = sBJCLID;
ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
sHQFD = "此报价材料已经被报价分类引用,不允许删除!" + "\r\n";
ShowMessage(sHQFD);
return false;
}
return bReturn;
}
protected override bool Master_AfterDeleteAction(object sender, EventArgs e)
{
if (!base.Master_AfterDeleteAction(sender, e))
{ return false; }
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = GetQuerySelSQL();
entity.GridDataBind(grdContentGrid, tSession);
grdContentGrid.SelectedIndex = -1;
return true;
}
protected override void AfterDelete(TDatabase db, ref bool ActionIsDone)
{
db.ExecSQL(string.Format("delete from XLXSCLHQ where XLXSCLHQ_BJCLID ='{0}' ", grdContentGrid.SelectedDataKey["XLXSBJCL_BJCLID"].ToString().Trim()));
db.ExecSQL(string.Format("delete from XLXSCLHQFD where XLXSCLHQFD_BJCLID ='{0}' ", grdContentGrid.SelectedDataKey["XLXSBJCL_BJCLID"].ToString().Trim()));
base.AfterDelete(db, ref ActionIsDone);
}
protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkPageParam.AddString("BJCLID", grdContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJCL_BJCLID"].ToString().Trim());
}
base.moduleGV_RowDataBound(sender, e);
}
#endregion
#region 自定义事件
/// <summary>
/// 取查询语句
/// </summary>
/// <returns></returns>
private string GetQuerySelSQL()
{
StringBuilder sSQL = new StringBuilder();
sSQL.AppendLine(" select A.XLXSBJCL_BJCLID, A.XLXSBJCL_BJCLMC,'Kg' as JLDW,A.XLXSBJCL_BJHQ,A.XLXSBJCL_BJJZ,A.XLXSBJCL_JTZ,A.XLXSBJCL_JLZ,A.XLXSBJCL_CLHQFD,");
sSQL.AppendLine(" A.XLXSBJCL_ZZSL, A.XLXSBJCL_JGYBJCLID, rtrim(A.XLXSBJCL_JGYBJCLID) || '|'|| rtrim(B.XLXSBJCL_BJCLMC) AS XLXSBJCL_JGYBJCLID, A.XLXSBJCL_CGY,A.XLXSBJCL_HQBDPL,A.XLXSBJCL_ZCSCPZ,A.XLXSBJCL_ZCSCID, ");
sSQL.AppendLine(" A.XLXSBJCL_SFQR, A.XLXSBJCL_QYRQ,isnull(A.XLXSBJCL_TYBZ,'N') as XLXSBJCL_TYBZ,A.XLXSBJCL_TYRQ,A.XLXSBJCL_BZ, A.XLXSBJCL_WHRID, A.XLXSBJCL_WHR, A.XLXSBJCL_WHSJ ");
sSQL.AppendLine(" from XLXSBJCL A ");
sSQL.AppendLine(" LEFT JOIN XLXSBJCL B ON B.XLXSBJCL_BJCLID = A.XLXSBJCL_JGYBJCLID ");
sSQL.AppendLine(" where 1=1 ");
if (!CurQueryEntity.FieldByName("BJCLID").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and A.XLXSBJCL_BJCLID like :BJCLID ");
entity.Param.Add("BJCLID", "%" + CurQueryEntity.FieldByName("BJCLID").Value.Trim() + "%");
}
if (!CurQueryEntity.FieldByName("BJCLMC").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and A.XLXSBJCL_BJCLMC like :pBJCLMC ");
entity.Param.Add("pBJCLMC", "%" + CurQueryEntity.FieldByName("BJCLMC").Value.Trim() + "%");
}
if (!CurQueryEntity.FieldByName("BJCL").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and A.XLXSBJCL_BJCLID = :pBJCL");
entity.Param.Add("pBJCL", CurQueryEntity.FieldByName("BJCL").Value.Trim());
}
if (CurQueryEntity.FieldByName("WQR").Value.Trim().ToUpper().Equals("TRUE"))
{
sSQL.AppendLine(" and A.XLXSBJCL_SFQR='N' ");
}
//是否与尺重表栏目关联
if (CurQueryEntity.FieldByName("JGCZBLMUsed").Value.Trim().Equals("Y"))
{
sSQL.AppendLine(" and exists(select top 1 XLJGCZBLM_JGCZBID from XLJGCZBLM where XLJGCZBLM_BJCLID=A.XLXSBJCL_BJCLID)");
}
else if (CurQueryEntity.FieldByName("JGCZBLMUsed").Value.Trim().Equals("N"))
{
sSQL.AppendLine(" and not exists(select top 1 XLJGCZBLM_JGCZBID from XLJGCZBLM where XLJGCZBLM_BJCLID=A.XLXSBJCL_BJCLID)");
}
if (CurQueryEntity.FieldByName("PXFS").Value.Trim().Equals("0"))
{
sSQL.AppendLine(" order by A.XLXSBJCL_BJCLID ");
}
else if (CurQueryEntity.FieldByName("PXFS").Value.Trim().Equals("1"))
{
sSQL.AppendLine(" order by A.XLXSBJCL_BJCLMC ");
}
else
{
sSQL.AppendLine(" order by A.XLXSBJCL_BJCLID ");
}
return sSQL.ToString();
}
#endregion
#region 按钮事件
protected void btnCLHQFD_Click(object sender, EventArgs e)
{
if (this.grdContentGrid.SelectedIndex < 0)
{
ShowMessage("请选择处理记录");
return;
}
if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJCL where XLXSBJCL_CLHQFD='Y' and XLXSBJCL_BJCLID='{0}'", grdContentGrid.SelectedDataKey["XLXSBJCL_BJCLID"].ToString().Trim())))
{
ShowMessage("所选报价材料无材料行情分段需要!");
return;
}
else
{
//被使用---区分已经分段---保证没有使用时可以重复分段
bool bUsed = false;
string sBJCLID = (grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJCL_BJCLID"].ToString().Trim());
//点击派生价格表,只要没有派生价格表的都会重新计算,单材料的,需要重新分段
//if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSJGBPZJGB_CLHQZH from XLXSJGBPZJGB where XLXSJGBPZJGB_JGBPZDH = '{0}' and isnull(XLXSJGBPZJGB_JGBID,' ')<>' '",
// sJGBPZDH)))
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(" select top 1 XLXSJGBPZCLHQFD_BJCLID from XLXSJGBPZCLHQFD ");
SQL.Add(" where XLXSJGBPZCLHQFD_BJCLID=:pBJCLID");
SQL.Add(" and exists(select 1 from XLXSJGBPZJGB where XLXSJGBPZJGB_JGBPZDH=XLXSJGBPZCLHQFD_JGBPZDH and XLXSJGBPZJGB_CLHQZH=XLXSJGBPZCLHQFD_CLHQZH and isnull(XLXSJGBPZJGB_JGBID,' ')<>' ')");
SQL.ParamByName("pBJCLID").Value = sBJCLID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
bUsed = true;
}
if (string.IsNullOrEmpty(sBJCLID))
{
ShowMessage("材料编码为空!!");
return;
}
else
{
TPageParams pageParams = new TPageParams();
pageParams.CallAction = TPageCallAction.pcaBrowse;
pageParams.UrlPath = "XLXSBJCL_HQFDList.aspx";
pageParams.AddString("BJCLID", sBJCLID);
pageParams.AddBool("USED", bUsed);
OpenDialog(pageParams);
}
}
}
#endregion
}
}