Files
U20261363_N_XLXSBJ/ZDFXList.aspx.cs
T
2026-10-09 10:25:33 +08:00

1583 lines
86 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_MODEL.Page;
using GThinking.N_MISPRO.Data;
using GThinking.N_PUBLIC;
using System.Text;
using GThinking.N_MISPRO.Utility;
using GThinking.N_MISPRO.TableCache;
using GThinking.N_WORKFLOW;
using System.Drawing;
using System.Collections.Generic;
namespace GThinking.U20261363_N_XLXSBJ
{
[TableMap(DB = "DBERP", DbTableName = "XLXSBJD", Umid = 100860174, IsWorkFlow = false, IsAttach = false, UseWhr = false)]
public class ZDFX : EntityManager
{
}
public partial class ZDFXList : SingleGridBase
{
ZDFX entity = new ZDFX();
ZDFX_M qryEntity = new ZDFX_M();
private string sTSC = "";
private DateTime dBJRQ = CMISproConvert.StrToDateTime("1900-01-01");
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860174;
this.UMName = "撞单分析查询";
this.CurMaster = Master;
this.ModuleGV = grdContentGrid;
this.CurEntity = entity;
this.CurQueryEntity = qryEntity;
this.sQueryURLTarget = "ZDFXQuery.aspx";
this.PageHeight = 700;
this.PageWidth = 1050;
Master.EnableNewBtn = false;
Master.EnableEditBtn = false;
Master.EnableCopyBtn = false;
Master.EnableDeleteBtn = false;
Master.EnableViewBtn = false;
base.DataKeyNames = new string[] { "XLXSBJD_BJDID", "XLXSBJD_BJRQ", "ZBQK", "sBZBJDH" };
if (!IsPostBack)
{
CurQueryEntity.FieldByName("ND").Value = "2";
if (!PageParam.GetRTrimString("BJDID").Trim().Equals(""))
{
if (XLBJDUtils.GetXLXSBJPZXX(100860068).XLXSBJPZ_ZDQRWPID.Equals(""))
{
btnQD.Visible = true;
btnQX.Visible = true;
}
else
{
btnQD.Visible = false;
btnQX.Visible = false;
}
CurQueryEntity.FieldByName("BZBJDH").Value = PageParam.GetRTrimString("BJDID").Trim();
CurQueryEntity.FieldByName("SFYXXG").Value = "N";
}
else
{
btnQD.Visible = false;
btnQX.Visible = false;
CurQueryEntity.FieldByName("SFYXXG").Value = "Y";
}
InitCXTJ();
}
if (PageParam.ContainsKey("BJDID"))
{
if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLXSBJD WHERE XLXSBJD_BJDID='" + PageParam.GetRTrimString("BJDID").Trim() + "' and isnull(XLXSBJD_ZDQRRGH,' ')<>' ' and isnull(XLXSBJD_BJDID,' ')<>' '"))
{
btnQD.Enabled = false;
btnQX.Enabled = true;
}
else
{
btnQD.Enabled = true;
btnQX.Enabled = false;
}
}
base.InitPage();
//InitColumn();
if (!CheckModule("100860046"))
{
int index1 = grdContentGrid.Columns.IndexOf(grdContentGrid.FindColumnByFieldName("YFK"));
grdContentGrid.Columns[index1].Visible = false;
}
if (!IsPostBack)
{
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860068);
if (pzxx.XLXSBJPZ_CPCF.Trim().Equals("N"))
{
tdlblCPCFGS.Style.Add("display", "none");
tdtxtCPCFBL.Style.Add("display", "none");
tdlblCPCFBL.Style.Add("display", "none");
tdtxtCPCFGS.Style.Add("display", "none");
}
if (pzxx.XLXSBJPZ_CPSLCF.Trim().Equals("N"))
{
tdlblCPSLCFGS.Style.Add("display", "none");
tdtxtCPSLCFGS.Style.Add("display", "none");
tdlblCPSLCFBL.Style.Add("display", "none");
tdtxtCPSLCFBL.Style.Add("display", "none");
}
if (!ZDFXPZHelper.IsGGSLCFEnabled())
{
tdlblGGSLCFGS.Style.Add("display", "none");
tdtxtGGSLCFGS.Style.Add("display", "none");
tdlblGGSLCFBL.Style.Add("display", "none");
tdtxtGGSLCFBL.Style.Add("display", "none");
}
if (pzxx.XLXSBJPZ_XMMCCZCF.Trim().Equals("N"))
{
tdlblCZCFGS.Style.Add("display", "none");
tdtxtCZCFGS.Style.Add("display", "none");
}
if (pzxx.XLXSBJPZ_XHGGCF.Trim().Equals("N"))
{
tdlblXHGGCFBL.Style.Add("display", "none");
tdtxtXHGGCFBL.Style.Add("display", "none");
}
if (PageParam.ContainsKey("BJDID"))
{
if (pzxx.XLXSBJPZ_KHTXYXZ.Equals("N") && pzxx.XLXSBJPZ_KHMCCF.Equals("N") && pzxx.XLXSBJPZ_BAXMKHMCCF.Equals("N") && pzxx.XLXSBJPZ_XMKHMCXZ.Equals("N") && pzxx.XLXSBJPZ_KHMCXMMCCF.Equals("N"))
{
tdlblBZKH.Style.Add("display", "none");
tdtxtBZKH.Style.Add("display", "none");
}
if (pzxx.XLXSBJPZ_XMMCCF.Equals("N") && pzxx.XLXSBJPZ_XMMCCZCF.Equals("N") && pzxx.XLXSBJPZ_BAXMKHMCCF.Equals("N") && pzxx.XLXSBJPZ_BAXMMCCF.Equals("N") && pzxx.XLXSBJPZ_BAXMMCTXYCF.Equals("N")
&& pzxx.XLXSBJPZ_XMKHMCXZ.Equals("N") && pzxx.XLXSBJPZ_KHMCXMMCCF.Equals("N"))
{
tdlblBZXM.Style.Add("display", "none");
tdtxtBZXM.Style.Add("display", "none");
}
}
if (base.IsDefaultExecute)
{
Master_OnStandardQuery(null, null);
}
}
}
#region 模板事件继承
protected override void Master_OnStandardQuery(object sender, EventArgs e)
{
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860068);
if (txtCPCFBL.Value > 100)
{
ShowMessage("产品重复比例不允许大于100");
return;
}
if (txtXHGGCFBL.Value > 100)
{
ShowMessage("型号规格重复比例不允许大于100");
return;
}
if (txtGGSLCFBL.Value > 100)
{
ShowMessage("规格+数量重复比例不允许大于100");
return;
}
base.InitEntityByCondition();
InitColumn();
string sZDLX = CurQueryEntity.FieldByName("ZDLX").Value.Trim();
if ((sZDLX.Equals("") && pzxx.XLXSBJPZ_XMMCCZCF == "Y") || sZDLX.Contains("4"))
{
if (txtCZCFGS.Value <= 0)
{
ShowMessage("词组重复个数必须大于0");
return;
}
}
if ((sZDLX.Equals("") && pzxx.XLXSBJPZ_CPCF == "Y") || sZDLX.Contains("5"))
{
if (txtCPCFGS.Value <= 0)
{
ShowMessage("产品重复个数必须大于0");
return;
}
if (txtCPCFBL.Value <= 0)
{
ShowMessage("产品重复比例必须大于0");
return;
}
}
if ((sZDLX.Equals("") && pzxx.XLXSBJPZ_CPSLCF == "Y") || sZDLX.Contains("6"))
{
if (txtCPSLCFGS.Value <= 0)
{
ShowMessage("产品+数量重复个数必须大于0");
return;
}
}
if ((sZDLX.Equals("") && ZDFXPZHelper.IsGGSLCFEnabled()) || sZDLX.Contains("16"))
{
if (txtGGSLCFGS.Value <= 0)
{
ShowMessage("规格+数量重复个数必须大于0");
return;
}
}
if ((sZDLX.Equals("") && pzxx.XLXSBJPZ_XHGGCF == "Y") || sZDLX.Contains("7"))
{
if (txtCPCFBL.Value <= 0)
{
ShowMessage("型号规格重复比例必须大于0");
return;
}
}
entity.EntityTable.QuerySelSql = GetSQL();
base.Master_OnStandardQuery(sender, e);
entity.GridDataBind(grdContentGrid, tSession);
}
protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string sZDYY = CurQueryEntity.FieldByName("ZDYY").Value.Trim() + ",";
if (sZDYY.Contains("4"))
{
DateTime dCurBJRQ = CMISproConvert.StrToDateTime(grdContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJD_BJRQ"].ToString().Trim());
if ((dCurBJRQ < dBJRQ && dCurBJRQ.AddYears(2) >= dBJRQ) || (dCurBJRQ >= dBJRQ && dBJRQ.AddYears(2) >= dCurBJRQ))//2年以内才处理词组相同内容
{
string sCZCF = "";
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Clear();
sql.Add("select XLXSBJZDCZ_XMCZ from XLXSBJZDCZ GJCA where GJCA.XLXSBJZDCZ_BJDID=:pZJBJDID and GJCA.XLXSBJZDCZ_XMCZ in ");
sql.Add(" (select GJCB.XLXSBJZDCZ_XMCZ from XLXSBJZDCZ GJCB where GJCB.XLXSBJZDCZ_BJDID=:pDFBJDID ");
if (!sTSC.Equals(""))
sql.Add(" and not " + sTSC);
sql.Add(" )");
sql.ParamByName("pZJBJDID").Value = grdContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJD_BJDID"].ToString().Trim();
if (PageParam.ContainsKey("BJDID"))
sql.ParamByName("pDFBJDID").Value = PageParam.GetRTrimString("BJDID");
else
sql.ParamByName("pDFBJDID").Value = CurQueryEntity.FieldByName("BZBJDH").Value.Trim();
DataSet ds = dberp.OpenDataSet(sql);
if (ds.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
sCZCF += ds.Tables[0].Rows[i]["XLXSBJZDCZ_XMCZ"].ToString().Trim() + ",";
}
if (!sCZCF.Equals(""))
sCZCF = sCZCF.TrimEnd(',');
for (int iCol = 0; iCol < grdContentGrid.Columns.Count; iCol++)
{
if (grdContentGrid.Columns[iCol] is BoundField && ((BoundField)grdContentGrid.Columns[iCol]).DataField == "CZXTNR")
{
e.Row.Cells[iCol].Text = sCZCF;
break;
}
}
}
}
if (grdContentGrid.DataKeys[e.Row.RowIndex]["ZBQK"].ToString().Trim().Equals("Y"))
{
e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml("#87CEFA");
}
if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLXSBJD WHERE XLXSBJD_BJDID='" + grdContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJD_BJDID"].ToString().Trim() + "' and isnull(XLXSBJD_KQZYZDBS,'N')='Y'"))
{
e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml(GetOption(100860068,"BJU058"));
}
}
base.moduleGV_RowDataBound(sender, e);
}
protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
base.InitEntityByCondition();
string sZDLX = CurQueryEntity.FieldByName("ZDLX").Value.Trim();
if (sZDLX.Equals("") || sZDLX.Contains("4"))
{
if (txtCZCFGS.Value <= 0)
{
ShowMessage("词组重复个数必须大于0");
return;
}
}
if (sZDLX.Equals("") || sZDLX.Contains("5"))
{
if (txtCPCFGS.Value <= 0)
{
ShowMessage("产品重复个数必须大于0");
return;
}
if (txtCPCFBL.Value <= 0)
{
ShowMessage("产品重复比例必须大于0");
return;
}
}
if (sZDLX.Equals("") || sZDLX.Contains("6"))
{
if (txtCPSLCFGS.Value <= 0)
{
ShowMessage("产品+数量重复个数必须大于0");
return;
}
}
if (sZDLX.Equals("") || sZDLX.Contains("16"))
{
if (txtGGSLCFGS.Value <= 0)
{
ShowMessage("规格+数量重复个数必须大于0");
return;
}
}
if (sZDLX.Equals("") || sZDLX.Contains("7"))
{
if (txtCPCFBL.Value <= 0)
{
ShowMessage("型号规格重复比例必须大于0");
return;
}
}
InitColumn();
entity.EntityTable.QuerySelSql = GetSQL();
grdContentGrid.SelectedIndex = -1;
base.moduleGV_PageIndexChanging(sender, e);
}
#endregion
#region 自定义函数
private void InitColumn()//控制配置的列是否显示
{
XLXSBJPZXX xlxsbjpzxx = XLBJDUtils.GetXLXSBJPZXX(100860068);
if (xlxsbjpzxx.XLXSBJPZ_YCJGXGLM.Equals("Y"))
{
grdContentGrid.FindColumnByFieldName("XLXSBJD_ZJE").Visible = false;
}
else
{
grdContentGrid.FindColumnByFieldName("XLXSBJD_ZJE").Visible = true;
}
string sZDYY = CurQueryEntity.FieldByName("ZDYY").Value.Trim();
Mac.MacLog.TraceFormat("sZDYY:" + sZDYY);
if (sZDYY.Contains("4")) //项目名称词组重复
{
grdContentGrid.FindColumnByFieldName("CZXTGS").Visible = true;
grdContentGrid.FindColumnByFieldName("CZXTNR").Visible = true;
}
else
{
grdContentGrid.FindColumnByFieldName("CZXTGS").Visible = false;
grdContentGrid.FindColumnByFieldName("CZXTNR").Visible = false;
}
if (sZDYY.Contains("5") || sZDYY.Contains("14")) //产品重复
{
grdContentGrid.FindColumnByFieldName("CPCFBL").Visible = true;
grdContentGrid.FindColumnByFieldName("sameBJCPS").Visible = true;
}
else
{
grdContentGrid.FindColumnByFieldName("CPCFBL").Visible = false;
grdContentGrid.FindColumnByFieldName("sameBJCPS").Visible = false;
}
if (sZDYY.Contains("6")) //产品+数量重复
{
grdContentGrid.FindColumnByFieldName("sameBJCPSLS").Visible = true;
grdContentGrid.FindColumnByFieldName("sameBJCPSLBL").Visible = true;
}
else
{
grdContentGrid.FindColumnByFieldName("sameBJCPSLS").Visible = false;
grdContentGrid.FindColumnByFieldName("sameBJCPSLBL").Visible = false;
}
if (sZDYY.Contains("16")) //规格+数量重复
{
grdContentGrid.FindColumnByFieldName("sameBJGGSLS").Visible = true;
grdContentGrid.FindColumnByFieldName("sameBJGGSLSBL").Visible = true;
}
else
{
grdContentGrid.FindColumnByFieldName("sameBJGGSLS").Visible = false;
grdContentGrid.FindColumnByFieldName("sameBJGGSLSBL").Visible = false;
}
if (sZDYY.Contains("7")) //仅型号规格重复
{
grdContentGrid.FindColumnByFieldName("GGXHCFBL").Visible = true;
}
else
{
grdContentGrid.FindColumnByFieldName("GGXHCFBL").Visible = false;
}
if (sZDYY.Contains("8") || sZDYY.Contains("9") || sZDYY.Contains("10")) //备案项目
{
grdContentGrid.FindColumnByFieldName("BAXMKH").Visible = true;
grdContentGrid.FindColumnByFieldName("YXXM_TXY").Visible = true;
grdContentGrid.FindColumnByFieldName("YXXM_BARQS").Visible = true;
grdContentGrid.FindColumnByFieldName("YXXM_BARQZ").Visible = true;
}
else
{
grdContentGrid.FindColumnByFieldName("BAXMKH").Visible = false;
grdContentGrid.FindColumnByFieldName("YXXM_TXY").Visible = false;
grdContentGrid.FindColumnByFieldName("YXXM_BARQS").Visible = false;
grdContentGrid.FindColumnByFieldName("YXXM_BARQZ").Visible = false;
}
}
private string GetTSC()
{
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860068);
if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_XMMCTSCZ))
return CMISproDataBase.GetWhereEqual("XLXSBJZDCZ_XMCZ", pzxx.XLXSBJPZ_XMMCTSCZ);
return "";
}
private void InitCXTJ()
{
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860068);
txtCPCFBL.Value = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_CPCFBL, 0);
txtCPCFGS.Value = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_CPCFGS, 0);
txtCPSLCFGS.Value = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_CPSLCFGS, 0);
txtCPSLCFBL.Value = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_CPSLCFBL, 0);
txtGGSLCFGS.Value = ZDFXPZHelper.GetGGSLCFGS();
txtGGSLCFBL.Value = ZDFXPZHelper.GetGGSLCFBL();
txtXHGGCFBL.Value = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_XHGGCFBL, 0);
txtCZCFGS.Value = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_XMMCCZCFGS, 0);
if (PageParam.ContainsKey("BJDID"))
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Add(" select XLXSBJD_KH,XLXSBJD_XMMC from XLXSBJD where XLXSBJD_BJDID = :pBJDID ");
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID").Trim();
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
txtBZKH.Text = ds.Tables[0].Rows[0]["XLXSBJD_KH"].ToString().Trim();
txtBZXM.Text = ds.Tables[0].Rows[0]["XLXSBJD_XMMC"].ToString().Trim();
}
}
}
private string GetQTBJDID(string sKH, string sTXY, double dND)
{
StringBuilder sSQL = new StringBuilder();
sSQL.AppendLine(" ( select XLXSBJD_BJDID from XLXSBJD ");
sSQL.AppendLine(" where XLXSBJD_BJDID<>:pBJDID ");
sSQL.AppendLine(" and isnull(XLXSBJD_YWLX,' ') = ' ' ");
if (!CurQueryEntity.FieldByName("BJY").Value.Trim().Equals(""))
{
if (CurQueryEntity.FieldByName("BJY").Value.Trim().Contains("1") && !sKH.Equals("") && !sTXY.Equals(""))
{
sSQL.AppendLine(" and ( XLXSBJD_KH <> '" + sKH + "' or XLXSBJD_TXY <> '" + sTXY + "' ) ");
}
if (CurQueryEntity.FieldByName("BJY").Value.Trim().Contains("2") && !sTXY.Equals(""))
{
sSQL.AppendLine(" and ( XLXSBJD_TXY <> '" + sTXY + "' ) ");
}
}
sSQL.AppendLine(CMISproDataBase.GetTimeConditionSQL("XLXSBJD_BJRQ",
CurQueryEntity.FieldByName("BJRQS").Value.ToString().Trim(),
CurQueryEntity.FieldByName("BJRQZ").Value.ToString().Trim(),
DateTimeType.dtDate, DateTimeType.dtDate));
if (!CurQueryEntity.FieldByName("STATE").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and " + CMISproDataBase.GetWhereEqual("XLXSBJD_WPID", CurQueryEntity.FieldByName("STATE").Value.Trim()));
}
if (dND != 0)
{
int dYF = (int)((dND - (int)dND) * 12);
sSQL.AppendLine(" and XLXSBJD_BJRQ >= DATEADD(month,-" + dYF + ",DATEADD(year, -" + (int)dND + ", getdate())) ");
}
if (!CurQueryEntity.FieldByName("TXY").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJD_TXY=:pTXY ");
}
if (CurQueryEntity.FieldByName("YFK").Value.Trim().Equals("True"))
{
sSQL.AppendLine(" and isnull(BJD_BJDID, ' ')<>' ' ");
}
if (CurQueryEntity.FieldByName("PCXTBJD").Value.Trim().ToUpper().Equals("TRUE"))
{
sSQL.AppendLine(" and XLXSBJD_BJDID NOT LIKE :pXTBJD ");
}
if (!CurQueryEntity.FieldByName("ZCBJDH").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJD_BJDID=:pZCBJDID ");
}
if (!CurQueryEntity.FieldByName("KH").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJD_KH like :pKH ");
}
if (!CurQueryEntity.FieldByName("KHLXR").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJD_KHLXR like :pKHLXR ");
}
if (!CurQueryEntity.FieldByName("KHDH").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJD_LXDH like :pKHDH ");
}
if (!CurQueryEntity.FieldByName("XM").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJD_XMMC like :pXM ");
}
string sBJU012 = GetOption(100860068, "BJU012").Trim();
if (!CurQueryEntity.FieldByName("BJFL").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJD_BJFLID = :pBJFL ");
}
else if (!sBJU012.Equals(""))
{
sSQL.AppendLine(" and " + CMISproDataBase.GetWhereEqual("XLXSBJD_BJFLID", sBJU012));
}
sSQL.AppendLine(" ) ");
return sSQL.ToString();
}
private string GetSQL()
{
string sZDLX = CurQueryEntity.FieldByName("ZDLX").Value.Trim();
string sZDYY = CurQueryEntity.FieldByName("ZDYY").Value.Trim() + ",";
Mac.MacLog.TraceFormat("sZDYY:" + sZDYY);
string sOrderSql = "";
string sPXYXJ = CurQueryEntity.FieldByName("PXYXJ").Value.Trim();
string sXMID = "";
string sKH = "";
Dictionary<string, string> DicKHStr = new Dictionary<string, string>();
string sKHLXR = "";
string sLXDH = "";
string sXM = "";
string sTXY = "";
bool bKHXSTZD = false;
double dND = CMISproConvert.StrToFloat(CurQueryEntity.FieldByName("ND").Value.Trim());
bool bXHGGTH = CMISproDataBase.ExistsRecord("DBERP", "select top 1 ZDFXXHGGDZB_XLXHID from ZDFXXHGGDZB ");
dBJRQ = CMISproConvert.StrToDateTime("1900-01-01");
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Clear();
sql.Add("select XLXSBJD_TXY,XLXSBJD_XMMC,XLXSBJD_XMID,XLXSBJD_BJRQ,XLXSBJD_KH,XLXSBJD_KHLXR,XLXSBJD_LXDH,KH_TXY,KH_KHID ");
sql.Add("from XLXSBJD left join KH on KH_MC=XLXSBJD_KH ");
sql.Add("where XLXSBJD_BJDID=:pBJDID ");
sql.Add(" and isnull(XLXSBJD_YWLX,' ') = ' ' ");
if (PageParam.ContainsKey("BJDID"))
sql.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID");
else
sql.ParamByName("pBJDID").Value = CurQueryEntity.FieldByName("BZBJDH").Value.Trim();
DataSet ds = dberp.OpenDataSet(sql);
if (ds.Tables[0].Rows.Count > 0)
{
sTXY = ds.Tables[0].Rows[0]["XLXSBJD_TXY"].ToString().Trim();
sKH = txtBZKH.Text.Trim();
sKHLXR = ds.Tables[0].Rows[0]["XLXSBJD_KHLXR"].ToString().Trim();
sLXDH = ds.Tables[0].Rows[0]["XLXSBJD_LXDH"].ToString().Trim();
sXM = txtBZXM.Text;
sXMID = ds.Tables[0].Rows[0]["XLXSBJD_XMID"].ToString().Trim();
string sZDYYLX = sZDLX + ",";
if ((!sTXY.Equals("")) && (!sTXY.Equals(ds.Tables[0].Rows[0]["KH_TXY"].ToString().Trim()))
&& (!ds.Tables[0].Rows[0]["KH_KHID"].ToString().Trim().Equals(""))
&& (!ds.Tables[0].Rows[0]["KH_TXY"].ToString().Trim().Equals(""))
&& (sZDLX.Equals("") || sZDYYLX.Contains("1,")))
bKHXSTZD = true;
dBJRQ = CMISproConvert.StrToDateTime(ds.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim());
}
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860068);
double dMXTMCBL = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_MXTMCBL) / 100;
double dMXFDS = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_MXFDS);
double dXYFDSCFBL = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_XYFDSCFBL);
double dDYFDSCFBL = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_DYFDSCFBL);
double dCPSLCFBL = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_CPSLCFBL);
double dKHMCXSBL = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_KHMCXSBL);
string sBCYZDKH = pzxx.XLXSBJPZ_BCYZDKH;
string sBCYZDXM = pzxx.XLXSBJPZ_BCYZDXM;
string sCFCPBQFBZ = pzxx.XLXSBJPZ_CFCPBQFBZ;
if (!sBCYZDKH.Equals(""))
{
sBCYZDKH = "," + sBCYZDKH + ",";
if (sBCYZDKH.Contains("," + sKH + ","))
{
sKH = "";
}
}
if (!sBCYZDXM.Equals(""))
{
sBCYZDXM = "," + sBCYZDXM + ",";
if (sBCYZDXM.Contains("," + sXM + ","))
{
sXM = "";
}
}
txtCPCFXLBZ.Value = pzxx.XLXSBJPZ_CPCFXLBZ;
string sQTBJDCondition = GetQTBJDID(sKH, sTXY, dND);
bool bZD1 = bKHXSTZD && !sKH.Equals("") && ("," + sZDLX + ",").Contains(",1,");
bool bZD2 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",2,")) && !sKH.Equals("") && ("," + sZDYY + ",").Contains(",2,");
bool bZD3 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",3,")) && !sXM.Equals("") && ("," + sZDYY + ",").Contains(",3,");
bool bZD4 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",4,")) && ("," + sZDYY + ",").Contains(",4,");
bool bZD5 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",5,")) && ("," + sZDYY + ",").Contains(",5,");
bool bZD6 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",6,")) && ("," + sZDYY + ",").Contains(",6,");
bool bZD16 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",16,")) && ("," + sZDYY + ",").Contains(",16,");
bool bZD7 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",7,")) && ("," + sZDYY + ",").Contains(",7,");
bool bZD8 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",8,")) && !sKH.Equals("") && ("," + sZDYY + ",").Contains(",8,");
bool bZD9 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",9,")) && !sXMID.Equals("") && ("," + sZDYY + ",").Contains(",9,");
bool bZD10 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",10,")) && !sTXY.Equals("") && ("," + sZDYY + ",").Contains(",10,");
bool bZD11 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",11,")) && !sXM.Equals("") && ("," + sZDYY + ",").Contains(",11,");
bool bZD12 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",12,")) && !sKHLXR.Equals("") && ("," + sZDYY + ",").Contains(",12,");
bool bZD13 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",13,")) && !sLXDH.Equals("") && ("," + sZDYY + ",").Contains(",13,");
bool bZD14 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",14,")) && ("," + sZDYY + ",").Contains(",14,");
bool bZD15 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",15,")) && ("," + sZDYY + ",").Contains(",15,") && !sKH.Equals("") && !sXM.Equals("");
if (dKHMCXSBL != 0 && dKHMCXSBL != 100 && bZD2)
GetKHStr(sKH, dKHMCXSBL, ref DicKHStr);
sTSC = GetTSC();
StringBuilder sSQL = new StringBuilder();
sSQL.AppendLine("select XLXSBJD_BJDID,XLXSBJD_BJRQ,XLXSBJD_KH,XLXSBJD_KHLXR,XLXSBJD_LXDH,XLXSBJD_XMMC,XLXSBJD_TXY,XLXSBJD_ZJE,:pBJDID as sBZBJDH,XLXSBJD_SQR,");
sSQL.AppendLine(" case when isnull(BJD_BJDID, ' ')<>' ' then 'Y' else 'N' end as YFK, ");//是否已经反馈至CS平台
sSQL.AppendLine("XLXSBJD_ZB as ZBQK,");
if (sZDYY.Contains("4")) //*项目名称词组重复
sSQL.AppendLine(" CZXTGS, ");
else
sSQL.AppendLine(" 0 as CZXTGS, ");
if (sZDYY.Contains("5") || sZDYY.Contains("14")) //产品重复
sSQL.AppendLine(" (case when MX.SL>MXCount.MXCounts then round(100.0*sameCPBJD.sameBJCPS/MX.SL,2) else round(100.0*sameCPBJD.sameBJCPS/MXCount.MXCounts,2) end) AS CPCFBL,sameBJCPS,");
else
sSQL.AppendLine(" 0 as CPCFBL,0 as sameBJCPS, ");
if (sZDYY.Contains("6")) //*产品+数量重复
sSQL.AppendLine(" sameBJCPSLS,(case when MX.SL>MXCount.MXCounts then round(100.0*sameCPSLBJD.sameBJCPSLS/MX.SL,2) else round(100.0*sameCPSLBJD.sameBJCPSLS/MXCount.MXCounts,2) end) as sameBJCPSLBL, ");
else
sSQL.AppendLine(" 0 as sameBJCPSLS,0 as sameBJCPSLBL, ");
if (sZDYY.Contains("16")) //*规格+数量重复
sSQL.AppendLine(" sameBJGGSLS,(case when MX.SL>MXCount.MXCounts then round(100.0*sameGGSLBJD.sameBJGGSLS/MX.SL,2) else round(100.0*sameGGSLBJD.sameBJGGSLS/MXCount.MXCounts,2) end) as sameBJGGSLSBL, ");
else
sSQL.AppendLine(" 0 as sameBJGGSLS,0 as sameBJGGSLSBL, ");
if (sZDYY.Contains("7")) //*仅型号规格重复
sSQL.AppendLine(" (case when MX.SL>MXCount.MXCounts then round(100.0*sameXHGGBJD.sameXHGGS/MX.SL,2) else round(100.0*sameXHGGBJD.sameXHGGS/MXCount.MXCounts,2) end) as GGXHCFBL, ");
else
sSQL.AppendLine(" 0 as GGXHCFBL, ");
sSQL.AppendLine(" SL, ");
if ((sZDYY.Contains("8")) || (sZDYY.Contains("9")) || (sZDYY.Contains("10"))) //备案项目
sSQL.AppendLine(" YXXM_TXY,YXXM_BARQS,YXXM_BARQZ,isNull(K1MC,'')||isNull(K2MC,'')||isNull(K3MC,'')||isNull(K4MC,'') as BAXMKH, ");
else
sSQL.AppendLine(" ' ' as YXXM_TXY,CONVERT(datetime,NULL) as YXXM_BARQS,CONVERT(datetime,NULL) as YXXM_BARQZ,'' as BAXMKH, ");
sSQL.AppendLine(" ' ' as CZXTNR,");
sSQL.AppendLine(" XLXSBJD_BZ,XLXSBJD_WHR,XLXSBJD_WHRID,XLXSBJD_WHSJ,");
if (bZD1)
sSQL.AppendLine(" case when (XLXSBJD_KH='" + sKH + "' and XLXSBJD_TXY='" + sTXY + "') then 1 else 0 end as px1, ");
if (bZD2)
{
if (DicKHStr.Count > 0)
{
sSQL.AppendLine(" case when XLXSBJD_KH='" + sKH + "' then 1 ");
foreach (string sTmpKH in DicKHStr.Keys)
{
if (sTmpKH.Equals(""))
continue;
if (sTmpKH.Contains("$"))
{
string sTmp1 = sTmpKH.Split('$')[0];
string sTmp2 = sTmpKH.Split('$')[1];
sSQL.AppendLine(" when XLXSBJD_KH like '%" + sTmp1 + "%' and XLXSBJD_KH like '%" + sTmp2 + "%' then 1 ");
}
else
sSQL.AppendLine(" when XLXSBJD_KH like '%" + sTmpKH + "%' then 1 ");
}
sSQL.AppendLine(" else 0 end as px2, ");
}
else
sSQL.AppendLine(" case when XLXSBJD_KH='" + sKH + "' then 1 else 0 end as px2, ");
}
if (bZD3)
sSQL.AppendLine(" case when (XLXSBJD_XMMC='" + sXM + "' and not exists(select 1 from XLXSBJZDBJYXX where XLXSBJZDBJYXX_XXLX='XM' and XLXSBJZDBJYXX_XXNR=XLXSBJD_XMMC) ) then 1 else 0 end as px3, ");
if (bZD12)
sSQL.AppendLine(" case when XLXSBJD_KHLXR='" + sKHLXR + "' then 1 else 0 end as px4, ");
if (bZD13)
sSQL.AppendLine(" case when XLXSBJD_LXDH='" + sLXDH + "' then 1 else 0 end as px5, ");
if (bZD15)//客户名称、项目名称相撞
{
sSQL.AppendLine(" case when (XLXSBJD_KH='" + sKH + "' and XLXSBJD_XMMC='" + sXM + "' ) then 1 else 0 end as px15, ");
}
if (bZD1)
sSQL.AppendLine(" case when (XLXSBJD_KH='" + sKH + "' and XLXSBJD_TXY='" + sTXY + "') then '客户+销售员相撞;' else '' end || ");
if (bZD2)
{
if (DicKHStr.Count > 0)
{
sSQL.AppendLine(" case when XLXSBJD_KH='" + sKH + "' then '客户名称重复;' ");
foreach (string sTmpKH in DicKHStr.Keys)
{
if (sTmpKH.Equals(""))
continue;
if (sTmpKH.Contains("$"))
{
string sTmp1 = sTmpKH.Split('$')[0];
string sTmp2 = sTmpKH.Split('$')[1];
sSQL.AppendLine(" when XLXSBJD_KH like '%" + sTmp1 + "%' and XLXSBJD_KH like '%" + sTmp2 + "%' then '客户名称重复;' ");
}
else
sSQL.AppendLine(" when XLXSBJD_KH like '%" + sTmpKH + "%' then '客户名称重复;' ");
}
sSQL.AppendLine(" else '' end || ");
}
else
sSQL.AppendLine(" case when XLXSBJD_KH='" + sKH + "' then '客户名称重复;' else '' end || ");
}
if (bZD3)
sSQL.AppendLine(" case when (XLXSBJD_XMMC='" + sXM + "' and not exists(select 1 from XLXSBJZDBJYXX where XLXSBJZDBJYXX_XXLX='XM' and XLXSBJZDBJYXX_XXNR=XLXSBJD_XMMC) ) then '项目名称重复;' else '' end || ");
if (bZD4)
sSQL.AppendLine(" case when A.CZXTGS >=:pCZCFGS then '项目名称词组重复;' else '' end || ");
if (bZD5)
{
sSQL.AppendLine(" case when sameCPBJD.sameBJCPS>=:pCPCFGS ");
sSQL.AppendLine(" and GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameCPBJD.sameBJCPS/MX.SL,2) ");
sSQL.AppendLine(" else round(100.0*sameCPBJD.sameBJCPS/MXCount.MXCounts,2) end),:pCPCFBL) then '产品重复;' else '' end || ");
}
if (bZD14)
{
sSQL.AppendLine(" case when MX.SL>MXCount.MXCounts*(1- :pMXTMCBL) AND MX.SL<MXCount.MXCounts*(1+ :pMXTMCBL) ");
sSQL.AppendLine(" and ((GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameCPBJD.sameBJCPS/MX.SL,2) ");
sSQL.AppendLine(" else round(100.0*sameCPBJD.sameBJCPS/MXCount.MXCounts,2) end),:pXYFDSCFBL) AND MXCount.MXCounts <= :pMXFDS) ");
sSQL.AppendLine(" OR (GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameCPBJD.sameBJCPS/MX.SL,2) ");
sSQL.AppendLine(" else round(100.0*sameCPBJD.sameBJCPS/MXCount.MXCounts,2) end),:pDYFDSCFBL) AND MXCount.MXCounts > :pMXFDS)) ");
sSQL.AppendLine(" then '按产品个数区间+分段重复率查产品重复;' else '' end || ");
}
if (bZD6)
{
sSQL.AppendLine(" case when sameCPSLBJD.sameBJCPSLS>=:pCPSLCFGS ");
sSQL.AppendLine(" and GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameCPSLBJD.sameBJCPSLS/MX.SL,2) ");
sSQL.AppendLine(" else round(100.0*sameCPSLBJD.sameBJCPSLS/MXCount.MXCounts,2) end),:pCPSLCFBL) ");
sSQL.AppendLine(" then '产品+数量重复;' else '' end || ");
}
if (bZD16)
{
sSQL.AppendLine(" case when sameGGSLBJD.sameBJGGSLS>=:pGGSLCFGS ");
sSQL.AppendLine(" and GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameGGSLBJD.sameBJGGSLS/MX.SL,2) ");
sSQL.AppendLine(" else round(100.0*sameGGSLBJD.sameBJGGSLS/MXCount.MXCounts,2) end),:pGGSLCFBL) ");
sSQL.AppendLine(" then '规格+数量重复;' else '' end || ");
}
if (bZD7)
{
sSQL.AppendLine(" case when GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameXHGGBJD.sameXHGGS/MX.SL,2) ");
sSQL.AppendLine(" else round(100.0*sameXHGGBJD.sameXHGGS/MXCount.MXCounts,2) end),:pXHGGCFBL) then '仅型号规格重复;' else '' end || ");
}
if (bZD8)
sSQL.AppendLine(" case when (K1MC='" + sKH + "' or K2MC='" + sKH + "' or K3MC='" + sKH + "' or K4MC='" + sKH + "') and isNull(XM.XMID,' ')=XLXSBJD_XMID then '备案项目客户名称重复;' else '' end || ");
if (bZD9)
sSQL.AppendLine(" case when (isNull(XM.XMID,' ')=XLXSBJD_XMID and XLXSBJD_XMID=:pXMID) then '备案项目名称重复;' else '' end || ");
if (bZD10)
sSQL.AppendLine(" case when (isNull(XM.XMID,' ')=XLXSBJD_XMID and XLXSBJD_XMID=:pXMID and YXXM_TXY='" + sTXY + "') then '备案项目名称+销售员重复;' else '' end || ");
if (bZD11)
{
sSQL.AppendLine(" case when ((XLXSBJD_KH like '%" + sXM + "%' or ('" + sXM + "' like '%' || rtrim(isnull(XLXSBJD_KH,' ')) || '%' and isnull(XLXSBJD_KH,' ') <> ' ')) ");
sSQL.AppendLine(" and not exists(select 1 from XLXSBJZDBJYXX where XLXSBJZDBJYXX_XXLX='XM' and XLXSBJZDBJYXX_XXNR=XLXSBJD_XMMC) ) then '项目与客户名称相撞;' else '' end || ");
}
if (bZD12)
sSQL.AppendLine(" case when XLXSBJD_KHLXR='" + sKHLXR + "' then '客户联系人重复;' else '' end || ");
if (bZD13)
sSQL.AppendLine(" case when XLXSBJD_LXDH='" + sLXDH + "' then '客户电话重复;' else '' end || ");
if (bZD15)
sSQL.AppendLine(" case when (XLXSBJD_KH='" + sKH + "' and XLXSBJD_XMMC='" + sXM + "' ) then '客户名称、项目名称重复;' else '' end || ");
sSQL.AppendLine(" ' ' as ZDLX ");
sSQL.AppendLine(" from XLXSBJD");
sSQL.AppendLine(" left join BJD on BJD_BJDID=XLXSBJD_BJDID ");
if (bXHGGTH)
{
sSQL.AppendLine(@" left join (select count(1) as SL,XLXSBJDMX_BJDID as BJDID
from (
select XLXSBJDMX_BJDID,
case when isnull(ZB.ZDFXXHGGDZB_ZDXLXHID,' ')<>' ' then ZB.ZDFXXHGGDZB_ZDXLXHID
when isnull(ZA.ZDFXXHGGDZB_ZDXLXHID,' ')<>' ' then ZA.ZDFXXHGGDZB_ZDXLXHID
else XLXSBJDMX_XLXHID end as XLXSBJDMX_XLXHID,
case when isnull(ZB.ZDFXXHGGDZB_ZDXLGGID,' ')<>' ' then ZB.ZDFXXHGGDZB_ZDXLGGID else XLXSBJDMX_XLGGID end as XLXSBJDMX_XLGGID
from XLXSBJDMX
left join ZDFXXHGGDZB ZA on XLXSBJDMX_XLXHID=ZA.ZDFXXHGGDZB_XLXHID and isnull(ZA.ZDFXXHGGDZB_XLGGID,' ')=' '
left join ZDFXXHGGDZB ZB on XLXSBJDMX_XLXHID=ZB.ZDFXXHGGDZB_XLXHID and isnull(ZB.ZDFXXHGGDZB_XLGGID,' ')=XLXSBJDMX_XLGGID ");
sSQL.AppendLine(" where XLXSBJDMX_BJDID in " + sQTBJDCondition);
sSQL.AppendLine(@" group by XLXSBJDMX_BJDID,case when isnull(ZB.ZDFXXHGGDZB_ZDXLXHID,' ')<>' ' then ZB.ZDFXXHGGDZB_ZDXLXHID when isnull(ZA.ZDFXXHGGDZB_ZDXLXHID,' ')<>' ' then ZA.ZDFXXHGGDZB_ZDXLXHID else XLXSBJDMX_XLXHID end,
case when isnull(ZB.ZDFXXHGGDZB_ZDXLGGID,' ')<>' ' then ZB.ZDFXXHGGDZB_ZDXLGGID else XLXSBJDMX_XLGGID end,
XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID
) a
group by XLXSBJDMX_BJDID)MX on MX.BJDID=XLXSBJD_BJDID ");
}
else
sSQL.AppendLine(" left join (select XLXSBJDMX_BJDID as BJDID,count(XLXSBJDMX_XH) as SL from XLXSBJDMX where XLXSBJDMX_BJDID in " + sQTBJDCondition + " group by XLXSBJDMX_BJDID)MX on MX.BJDID=XLXSBJD_BJDID ");
//*项目名称词组重复*/
if (sZDYY.Contains("4"))
{
sSQL.AppendLine("left join (select XLXSBJZDCZ_BJDID as BJDID,count(1)as CZXTGS ");
sSQL.AppendLine(" from XLXSBJZDCZ GJCA ");
sSQL.AppendLine(" left join XLXSBJD BJDA on BJDA.XLXSBJD_BJDID=GJCA.XLXSBJZDCZ_BJDID ");
sSQL.AppendLine(" where GJCA.XLXSBJZDCZ_BJDID<>:pBJDID and isnull(XLXSBJD_YWLX,' ')= ' ' ");
if (!CurQueryEntity.FieldByName("BJY").Value.Trim().Equals(""))
{
if (CurQueryEntity.FieldByName("BJY").Value.Trim().Contains("1") && !sKH.Equals("") && !sTXY.Equals(""))
{
sSQL.AppendLine(" and ( XLXSBJD_KH <> '" + sKH + "' or XLXSBJD_TXY <> '" + sTXY + "' ) ");
}
}
if (!CurQueryEntity.FieldByName("ZCBJDH").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and GJCA.XLXSBJZDCZ_BJDID=:pZCBJDID ");
}
sSQL.AppendLine(" and GJCA.XLXSBJZDCZ_XMCZ in ");
sSQL.AppendLine(" (select GJCB.XLXSBJZDCZ_XMCZ from XLXSBJZDCZ GJCB ");
sSQL.AppendLine(" left join XLXSBJD BJDB on BJDB.XLXSBJD_BJDID=GJCB.XLXSBJZDCZ_BJDID ");
sSQL.AppendLine(" where GJCB.XLXSBJZDCZ_BJDID=:pBJDID and abs(DATEDIFF(year,BJDA.XLXSBJD_BJRQ,BJDB.XLXSBJD_BJRQ))<2 ");
if (!sTSC.Equals(""))
sSQL.AppendLine(" and not " + sTSC);
sSQL.AppendLine(" )group by GJCA.XLXSBJZDCZ_BJDID)A ON A.BJDID=XLXSBJD_BJDID ");
}
#region ZDYY-5 ZDYY-14
//产品重复、按产品个数区间+分段重复率查产品重复--当前报价单明细记录数为0则不进行此判断*/
if (sZDYY.Contains("5") || sZDYY.Contains("14"))
{
sSQL.AppendLine(" left join (select a.XLXSBJDMX_BJDID as BJDID,sum(case when isnull(BZSL,0) = 0 then 0 else case when isNull(ZCSL,0)<BZSL then ZCSL else BZSL end end )as sameBJCPS ");
sSQL.AppendLine(" from ");
sSQL.AppendLine(" (select XLXSBJDMX_BJDID,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,");
if (sCFCPBQFBZ.Equals("Y"))
{
if (bXHGGTH)
sSQL.AppendLine(" XLXSBJDMX_DYDJID,1 as ZCSL ");
else
sSQL.AppendLine(" XLXSBJDMX_DYDJID,count(XLXSBJDMX_XH)as ZCSL ");
}
else
{
if (bXHGGTH)
sSQL.AppendLine(" XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,1 as ZCSL ");
else
sSQL.AppendLine(" XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,count(XLXSBJDMX_XH)as ZCSL ");
}
sSQL.AppendLine(" from ");
sSQL.AppendLine(" (select XLXSBJDMX_BJDID,");
sSQL.AppendLine(" case when isnull(ZB.ZDFXXHGGDZB_ZDXLXHID,' ')<>' ' then ZB.ZDFXXHGGDZB_ZDXLXHID when isnull(ZA.ZDFXXHGGDZB_ZDXLXHID,' ')<>' ' then ZA.ZDFXXHGGDZB_ZDXLXHID else XLXSBJDMX_XLXHID end as XLXSBJDMX_XLXHID , ");
sSQL.AppendLine(" case when isnull(ZB.ZDFXXHGGDZB_ZDXLGGID,' ')<>' ' then ZB.ZDFXXHGGDZB_ZDXLGGID else XLXSBJDMX_XLGGID end as XLXSBJDMX_XLGGID , ");
if (sCFCPBQFBZ.Equals("Y"))
{
sSQL.AppendLine(" XLXSBJDMX_DYDJID,XLXSBJDMX_XH,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL ");
}
else
{
sSQL.AppendLine(" XLXSBJDMX_DYDJID,XLXSBJDMX_XH,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL, ");
if (txtCPCFXLBZ.Value.Trim().Equals(""))
sSQL.AppendLine(" XLXSBJDMX_XLBZID ");
else
{
sSQL.AppendLine(" case XLXSBJDMX_XLBZID ");
for (int i = 0; i < txtCPCFXLBZ.Value.Trim().Split(',').Length; i++)
{
sSQL.AppendLine(string.Format(" when '{0}' then '{1}' ", txtCPCFXLBZ.Value.Trim().Split(',')[i], txtCPCFXLBZ.Value.Trim().Split(',')[0]));
}
sSQL.AppendLine(" else XLXSBJDMX_XLBZID end as XLXSBJDMX_XLBZID ");
}
}
sSQL.AppendLine(" from XLXSBJDMX ");
sSQL.AppendLine(" left join ZDFXXHGGDZB ZA on ZA.ZDFXXHGGDZB_XLXHID=XLXSBJDMX_XLXHID and isnull(ZA.ZDFXXHGGDZB_XLGGID,' ')=' ' ");
sSQL.AppendLine(" left join ZDFXXHGGDZB ZB on ZB.ZDFXXHGGDZB_XLXHID=XLXSBJDMX_XLXHID and isnull(ZB.ZDFXXHGGDZB_XLGGID,' ')=XLXSBJDMX_XLGGID ");
sSQL.AppendLine(" where XLXSBJDMX_BJDID in " + sQTBJDCondition + " and isnull(XLXSBJDMX_YWLX,' ')= ' ' ");//--当前报价单号
if (!CurQueryEntity.FieldByName("ZCBJDH").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJDMX_BJDID=:pZCBJDID ");
}
sSQL.AppendLine(" ) tmpA ");
if (sCFCPBQFBZ.Equals("Y"))
{
sSQL.AppendLine(" group by XLXSBJDMX_BJDID,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_DYDJID )a ");
}
else
{
sSQL.AppendLine(" group by XLXSBJDMX_BJDID,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID )a ");
}
sSQL.AppendLine(" left join ");
sSQL.AppendLine(" (select XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,");
if (sCFCPBQFBZ.Equals("Y"))
{
if (bXHGGTH)
sSQL.AppendLine(" XLXSBJDMX_DYDJID,1 as BZSL ");
else
sSQL.AppendLine(" XLXSBJDMX_DYDJID,count(XLXSBJDMX_XH)as BZSL ");
}
else
{
if (bXHGGTH)
sSQL.AppendLine(" XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,1 as BZSL ");
else
sSQL.AppendLine(" XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,count(XLXSBJDMX_XH)as BZSL ");
}
sSQL.AppendLine(" from ");
sSQL.AppendLine(" (select case when isnull(ZB.ZDFXXHGGDZB_ZDXLXHID,' ')<>' ' then ZB.ZDFXXHGGDZB_ZDXLXHID when isnull(ZA.ZDFXXHGGDZB_ZDXLXHID,' ')<>' ' then ZA.ZDFXXHGGDZB_ZDXLXHID else XLXSBJDMX_XLXHID end as XLXSBJDMX_XLXHID , ");
sSQL.AppendLine(" case when isnull(ZB.ZDFXXHGGDZB_ZDXLGGID,' ')<>' ' then ZB.ZDFXXHGGDZB_ZDXLGGID else XLXSBJDMX_XLGGID end as XLXSBJDMX_XLGGID , ");
if (sCFCPBQFBZ.Equals("Y"))
{
sSQL.AppendLine(" XLXSBJDMX_DYDJID,XLXSBJDMX_XH ");
}
else
{
sSQL.AppendLine(" XLXSBJDMX_DYDJID,XLXSBJDMX_XH, ");
if (txtCPCFXLBZ.Value.Trim().Equals(""))
sSQL.AppendLine(" XLXSBJDMX_XLBZID ");
else
{
sSQL.AppendLine(" case XLXSBJDMX_XLBZID ");
for (int i = 0; i < txtCPCFXLBZ.Value.Trim().Split(',').Length; i++)
{
sSQL.AppendLine(string.Format(" when '{0}' then '{1}' ", txtCPCFXLBZ.Value.Trim().Split(',')[i], txtCPCFXLBZ.Value.Trim().Split(',')[0]));
}
sSQL.AppendLine(" else XLXSBJDMX_XLBZID end as XLXSBJDMX_XLBZID ");
}
}
sSQL.AppendLine(" from XLXSBJDMX ");
sSQL.AppendLine(" left join ZDFXXHGGDZB ZA on ZA.ZDFXXHGGDZB_XLXHID=XLXSBJDMX_XLXHID and isnull(ZA.ZDFXXHGGDZB_XLGGID,' ')=' ' ");
sSQL.AppendLine(" left join ZDFXXHGGDZB ZB on ZB.ZDFXXHGGDZB_XLXHID=XLXSBJDMX_XLXHID and isnull(ZB.ZDFXXHGGDZB_XLGGID,' ')=XLXSBJDMX_XLGGID ");
sSQL.AppendLine(" where XLXSBJDMX_BJDID=:pBJDID ");//--当前报价单号
sSQL.AppendLine(" ) tmpB ");
if (sCFCPBQFBZ.Equals("Y"))
{
sSQL.AppendLine(" group by XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_DYDJID)b ");
}
else
{
sSQL.AppendLine(" group by XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID)b ");
}
sSQL.AppendLine(" on a.XLXSBJDMX_XLXHID=b.XLXSBJDMX_XLXHID");
sSQL.AppendLine(" and a.XLXSBJDMX_XLGGID=b.XLXSBJDMX_XLGGID");
if (!sCFCPBQFBZ.Equals("Y"))
{
sSQL.AppendLine(" and a.XLXSBJDMX_XLBZID=b.XLXSBJDMX_XLBZID");
}
sSQL.AppendLine(" and a.XLXSBJDMX_DYDJID=b.XLXSBJDMX_DYDJID");
sSQL.AppendLine(" group by a.XLXSBJDMX_BJDID)sameCPBJD on sameCPBJD.BJDID=XLXSBJD_BJDID");
}
#endregion
//*产品+数量重复--当前报价单明细记录数为0则不进行此判断*/
if (sZDYY.Contains("6"))
{
sSQL.AppendLine(" left join (select a.XLXSBJDMX_BJDID as BJDID,sum(case when isnull(BZSL,0) = 0 then 0 else case when isNull(ZCSL,0)<BZSL then ZCSL else BZSL end end)as sameBJCPSLS ");
sSQL.AppendLine(" from ");
sSQL.AppendLine(" (select XLXSBJDMX_BJDID,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,");
if (sCFCPBQFBZ.Equals("Y"))
{
sSQL.AppendLine(" XLXSBJDMX_DYDJID,count(XLXSBJDMX_XH)as ZCSL,ZCBJSL ");
}
else
{
sSQL.AppendLine(" XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,count(XLXSBJDMX_XH)as ZCSL,ZCBJSL ");
}
sSQL.AppendLine(" from ");
sSQL.AppendLine(" (select XLXSBJDMX_BJDID,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,");
sSQL.AppendLine(" XLXSBJDMX_DYDJID,XLXSBJDMX_XH,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL, ");
if (sCFCPBQFBZ.Equals("Y"))
{
sSQL.AppendLine(" (case when XLXSBJDMX_JLDW='Km' then XLXSBJDMX_BJSL*1000 else XLXSBJDMX_BJSL end) as ZCBJSL ");
}
else
{
sSQL.AppendLine(" (case when XLXSBJDMX_JLDW='Km' then XLXSBJDMX_BJSL*1000 else XLXSBJDMX_BJSL end) as ZCBJSL, ");
if (txtCPCFXLBZ.Value.Trim().Equals(""))
sSQL.AppendLine(" XLXSBJDMX_XLBZID ");
else
{
sSQL.AppendLine(" case XLXSBJDMX_XLBZID ");
for (int i = 0; i < txtCPCFXLBZ.Value.Trim().Split(',').Length; i++)
{
sSQL.AppendLine(string.Format(" when '{0}' then '{1}' ", txtCPCFXLBZ.Value.Trim().Split(',')[i], txtCPCFXLBZ.Value.Trim().Split(',')[0]));
}
sSQL.AppendLine(" else XLXSBJDMX_XLBZID end as XLXSBJDMX_XLBZID ");
}
}
sSQL.AppendLine(" from XLXSBJDMX ");
sSQL.AppendLine(" where XLXSBJDMX_BJDID in " + sQTBJDCondition + " and isnull(XLXSBJDMX_YWLX,' ')= ' ' ");//--当前报价单号
if (!CurQueryEntity.FieldByName("ZCBJDH").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJDMX_BJDID=:pZCBJDID ");
}
sSQL.AppendLine(" ) tmpA ");
if (sCFCPBQFBZ.Equals("Y"))
{
sSQL.AppendLine(" group by XLXSBJDMX_BJDID,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_DYDJID,");
}
else
{
sSQL.AppendLine(" group by XLXSBJDMX_BJDID,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,");
}
sSQL.AppendLine(" ZCBJSL)a ");
sSQL.AppendLine(" left join ");
sSQL.AppendLine(" (select XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID, ");
if (sCFCPBQFBZ.Equals("Y"))
{
sSQL.AppendLine(" XLXSBJDMX_DYDJID,count(XLXSBJDMX_XH)as BZSL,BZBJSL ");
}
else
{
sSQL.AppendLine(" XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,count(XLXSBJDMX_XH)as BZSL,BZBJSL ");
}
sSQL.AppendLine(" from ");
sSQL.AppendLine(" (select XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID, ");
sSQL.AppendLine(" XLXSBJDMX_DYDJID,XLXSBJDMX_XH,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL, ");
if (sCFCPBQFBZ.Equals("Y"))
{
sSQL.AppendLine(" (case when XLXSBJDMX_JLDW ='Km' then XLXSBJDMX_BJSL*1000 else XLXSBJDMX_BJSL end) as BZBJSL ");
}
else
{
sSQL.AppendLine(" (case when XLXSBJDMX_JLDW ='Km' then XLXSBJDMX_BJSL*1000 else XLXSBJDMX_BJSL end) as BZBJSL, ");
if (txtCPCFXLBZ.Value.Trim().Equals(""))
sSQL.AppendLine(" XLXSBJDMX_XLBZID ");
else
{
sSQL.AppendLine(" case XLXSBJDMX_XLBZID ");
for (int i = 0; i < txtCPCFXLBZ.Value.Trim().Split(',').Length; i++)
{
sSQL.AppendLine(string.Format(" when '{0}' then '{1}' ", txtCPCFXLBZ.Value.Trim().Split(',')[i], txtCPCFXLBZ.Value.Trim().Split(',')[0]));
}
sSQL.AppendLine(" else XLXSBJDMX_XLBZID end as XLXSBJDMX_XLBZID ");
}
}
sSQL.AppendLine(" from XLXSBJDMX ");
sSQL.AppendLine(" where XLXSBJDMX_BJDID=:pBJDID ");//--当前报价单号
sSQL.AppendLine(" ) tmpB ");
if (sCFCPBQFBZ.Equals("Y"))
{
sSQL.AppendLine(" group by XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_DYDJID, ");
}
else
{
sSQL.AppendLine(" group by XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID, ");
}
sSQL.AppendLine(" BZBJSL)b ");
sSQL.AppendLine(" on a.XLXSBJDMX_XLXHID=b.XLXSBJDMX_XLXHID");
sSQL.AppendLine(" and a.XLXSBJDMX_XLGGID=b.XLXSBJDMX_XLGGID");
if (!sCFCPBQFBZ.Equals("Y"))
{
sSQL.AppendLine(" and a.XLXSBJDMX_XLBZID=b.XLXSBJDMX_XLBZID");
}
sSQL.AppendLine(" and a.XLXSBJDMX_DYDJID=b.XLXSBJDMX_DYDJID");
sSQL.AppendLine(" and a.ZCBJSL=b.BZBJSL ");
sSQL.AppendLine(" group by a.XLXSBJDMX_BJDID)sameCPSLBJD on sameCPSLBJD.BJDID=XLXSBJD_BJDID");
}
//*规格+数量重复--当前报价单明细记录数为0则不进行此判断*/
if (sZDYY.Contains("16"))
{
sSQL.AppendLine(" left join (select a.XLXSBJDMX_BJDID as BJDID,sum(case when isnull(BZSL,0) = 0 then 0 else case when isNull(ZCSL,0)<BZSL then ZCSL else BZSL end end)as sameBJGGSLS ");
sSQL.AppendLine(" from ");
sSQL.AppendLine(" (select XLXSBJDMX_BJDID,XLXSBJDMX_XLGGID,count(XLXSBJDMX_XH)as ZCSL,ZCBJSL ");
sSQL.AppendLine(" from ");
sSQL.AppendLine(" (select XLXSBJDMX_BJDID,XLXSBJDMX_XLGGID,XLXSBJDMX_XH,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL, ");
sSQL.AppendLine(" (case when XLXSBJDMX_JLDW='Km' then XLXSBJDMX_BJSL*1000 else XLXSBJDMX_BJSL end) as ZCBJSL ");
sSQL.AppendLine(" from XLXSBJDMX ");
sSQL.AppendLine(" where XLXSBJDMX_BJDID in " + sQTBJDCondition + " and isnull(XLXSBJDMX_YWLX,' ')= ' ' ");
if (!CurQueryEntity.FieldByName("ZCBJDH").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJDMX_BJDID=:pZCBJDID ");
}
sSQL.AppendLine(" ) tmpA ");
sSQL.AppendLine(" group by XLXSBJDMX_BJDID,XLXSBJDMX_XLGGID,ZCBJSL)a ");
sSQL.AppendLine(" left join ");
sSQL.AppendLine(" (select XLXSBJDMX_XLGGID,count(XLXSBJDMX_XH)as BZSL,BZBJSL ");
sSQL.AppendLine(" from ");
sSQL.AppendLine(" (select XLXSBJDMX_XLGGID,XLXSBJDMX_XH,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL, ");
sSQL.AppendLine(" (case when XLXSBJDMX_JLDW ='Km' then XLXSBJDMX_BJSL*1000 else XLXSBJDMX_BJSL end) as BZBJSL ");
sSQL.AppendLine(" from XLXSBJDMX ");
sSQL.AppendLine(" where XLXSBJDMX_BJDID=:pBJDID ");
sSQL.AppendLine(" ) tmpB ");
sSQL.AppendLine(" group by XLXSBJDMX_XLGGID,BZBJSL)b ");
sSQL.AppendLine(" on a.XLXSBJDMX_XLGGID=b.XLXSBJDMX_XLGGID");
sSQL.AppendLine(" and a.ZCBJSL=b.BZBJSL ");
sSQL.AppendLine(" group by a.XLXSBJDMX_BJDID)sameGGSLBJD on sameGGSLBJD.BJDID=XLXSBJD_BJDID");
}
//*仅型号规格重复--当前报价单明细记录数为0则不进行此判断*/
if (sZDYY.Contains("7"))
{
sSQL.AppendLine(" left join (select a.XLXSBJDMX_BJDID as BJDID,sum(case when isnull(BZSL,0) = 0 then 0 else case when isNull(ZCSL,0)<BZSL then ZCSL else BZSL end end)as sameXHGGS ");
sSQL.AppendLine(" from ");
sSQL.AppendLine(" (select XLXSBJDMX_BJDID,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,count(XLXSBJDMX_XH)as ZCSL ");
sSQL.AppendLine(" from XLXSBJDMX ");
sSQL.AppendLine(" where XLXSBJDMX_BJDID in " + sQTBJDCondition + "and isnull(XLXSBJDMX_YWLX,' ')= ' ' ");//--当前报价单号
if (!CurQueryEntity.FieldByName("ZCBJDH").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJDMX_BJDID=:pZCBJDID ");
}
sSQL.AppendLine(" group by XLXSBJDMX_BJDID,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID)a ");
sSQL.AppendLine(" left join ");
sSQL.AppendLine(" (select XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,count(XLXSBJDMX_XH)as BZSL ");
sSQL.AppendLine(" from XLXSBJDMX ");
sSQL.AppendLine(" where XLXSBJDMX_BJDID=:pBJDID ");//--当前报价单号
sSQL.AppendLine(" group by XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID)b ");
sSQL.AppendLine(" on a.XLXSBJDMX_XLXHID=b.XLXSBJDMX_XLXHID");
sSQL.AppendLine(" and a.XLXSBJDMX_XLGGID=b.XLXSBJDMX_XLGGID");
sSQL.AppendLine(" group by a.XLXSBJDMX_BJDID)sameXHGGBJD on sameXHGGBJD.BJDID=XLXSBJD_BJDID");
}
//*型号规格重复、产品重复共用被撞明细记录数量*/
if (sZDYY.Contains("5") || sZDYY.Contains("6") || sZDYY.Contains("16") || sZDYY.Contains("7") || sZDYY.Contains("14"))
{
if (bXHGGTH)
sSQL.AppendLine(@" left join (select count(1) as MXCounts,XLXSBJDMX_BJDID
from (
select XLXSBJDMX_BJDID
,case when isnull(ZB.ZDFXXHGGDZB_ZDXLXHID,' ')<>' ' then ZB.ZDFXXHGGDZB_ZDXLXHID when isnull(ZA.ZDFXXHGGDZB_ZDXLXHID,' ')<>' ' then ZA.ZDFXXHGGDZB_ZDXLXHID else XLXSBJDMX_XLXHID end as XLXSBJDMX_XLXHID ,
case when isnull(ZB.ZDFXXHGGDZB_ZDXLGGID,' ')<>' ' then ZB.ZDFXXHGGDZB_ZDXLGGID else XLXSBJDMX_XLGGID end as XLXSBJDMX_XLGGID
from XLXSBJDMX
left join ZDFXXHGGDZB ZA on XLXSBJDMX_XLXHID=ZA.ZDFXXHGGDZB_XLXHID and isnull(ZA.ZDFXXHGGDZB_XLGGID,' ')=' '
left join ZDFXXHGGDZB ZB on XLXSBJDMX_XLXHID=ZB.ZDFXXHGGDZB_XLXHID and isnull(ZB.ZDFXXHGGDZB_XLGGID,' ')=XLXSBJDMX_XLGGID
where XLXSBJDMX_BJDID=:pBJDID
group by XLXSBJDMX_BJDID,case when isnull(ZB.ZDFXXHGGDZB_ZDXLXHID,' ')<>' ' then ZB.ZDFXXHGGDZB_ZDXLXHID when isnull(ZA.ZDFXXHGGDZB_ZDXLXHID,' ')<>' ' then ZA.ZDFXXHGGDZB_ZDXLXHID else XLXSBJDMX_XLXHID end,
case when isnull(ZB.ZDFXXHGGDZB_ZDXLGGID,' ')<>' ' then ZB.ZDFXXHGGDZB_ZDXLGGID else XLXSBJDMX_XLGGID end ,
XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID
) a
group by XLXSBJDMX_BJDID)MXCount on MXCount.XLXSBJDMX_BJDID=:pBJDID ");
else
sSQL.AppendLine(" left join (select count(1) as MXCounts,XLXSBJDMX_BJDID from XLXSBJDMX where XLXSBJDMX_BJDID=:pBJDID group by XLXSBJDMX_BJDID)MXCount on MXCount.XLXSBJDMX_BJDID=:pBJDID ");
}
//备案项目
if (sZDYY.Contains("8") || sZDYY.Contains("9") || sZDYY.Contains("10"))
{
sSQL.AppendLine(" left join (select YXXM_XMID as XMID,YXXM_TXY,YXXM_BARQS,YXXM_BARQZ,");
sSQL.AppendLine(" K1.KHXX_MC as K1MC,K2.KHXX_MC as K2MC, K3.KHXX_MC as K3MC,K4.KHXX_MC as K4MC ");
sSQL.AppendLine(" from YXXM ");
sSQL.AppendLine(" left join KHXX K1 on K1.KHXX_CRMKHID=YXXM_CRMKHID");
sSQL.AppendLine(" left join KHXX K2 on K2.KHXX_CRMKHID=YXXM_CRMKHID2");
sSQL.AppendLine(" left join KHXX K3 on K3.KHXX_CRMKHID=YXXM_CRMKHID3");
sSQL.AppendLine(" left join KHXX K4 on K4.KHXX_CRMKHID=YXXM_CRMKHID4");
sSQL.AppendLine(" and YXXM_WPID not in ('ZZZZ','ZZZY')");
sSQL.AppendLine(" )XM on XM.XMID=XLXSBJD_XMID");
}
sSQL.AppendLine(" where XLXSBJD_BJDID<>:pBJDID ");
sSQL.AppendLine(" and isnull(XLXSBJD_YWLX,' ') = ' ' ");
if (!CurQueryEntity.FieldByName("BJY").Value.Trim().Equals(""))
{
if (CurQueryEntity.FieldByName("BJY").Value.Trim().Contains("1") && !sKH.Equals("") && !sTXY.Equals(""))
{
sSQL.AppendLine(" and ( XLXSBJD_KH <> '" + sKH + "' or XLXSBJD_TXY <> '" + sTXY + "' ) ");
}
if (CurQueryEntity.FieldByName("BJY").Value.Trim().Contains("2") && !sTXY.Equals(""))
{
sSQL.AppendLine(" and ( XLXSBJD_TXY <> '" + sTXY + "' ) ");
}
}
sSQL.AppendLine(CMISproDataBase.GetTimeConditionSQL("XLXSBJD_BJRQ",
CurQueryEntity.FieldByName("BJRQS").Value.ToString().Trim(),
CurQueryEntity.FieldByName("BJRQZ").Value.ToString().Trim(),
DateTimeType.dtDate, DateTimeType.dtDate));
if (!CurQueryEntity.FieldByName("STATE").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and " + CMISproDataBase.GetWhereEqual("XLXSBJD_WPID", CurQueryEntity.FieldByName("STATE").Value.Trim()));
}
if (dND != 0)
{
int dYF = (int)((dND - (int)dND) * 12);
sSQL.AppendLine(" and XLXSBJD_BJRQ >= DATEADD(month,-" + dYF + ",DATEADD(year, -" + (int)dND + ", getdate())) ");
}
if (!CurQueryEntity.FieldByName("TXY").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJD_TXY=:pTXY ");
entity.Param.Add("pTXY", CurQueryEntity.FieldByName("TXY").Value.Trim());
}
if (CurQueryEntity.FieldByName("YFK").Value.Trim().Equals("True"))
{
sSQL.AppendLine(" and isnull(BJD_BJDID, ' ')<>' ' ");
}
if (CurQueryEntity.FieldByName("PCXTBJD").Value.Trim().ToUpper().Equals("TRUE"))
{
sSQL.AppendLine(" and XLXSBJD_BJDID NOT LIKE :pXTBJD ");
if (PageParam.ContainsKey("BJDID"))
entity.Param.Add("pXTBJD", "%" + PageParam.GetRTrimString("BJDID").Split('-')[0] + "%");
else
entity.Param.Add("pXTBJD", "%" + CurQueryEntity.FieldByName("BZBJDH").Value.Trim().Split('-')[0] + "%");
}
if (!CurQueryEntity.FieldByName("ZCBJDH").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJD_BJDID=:pZCBJDID ");
entity.Param.Add("pZCBJDID", CurQueryEntity.FieldByName("ZCBJDH").Value.Trim());
}
if (!CurQueryEntity.FieldByName("KH").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJD_KH like :pKH ");
entity.Param.Add("pKH", "%" + CurQueryEntity.FieldByName("KH").Value.Trim() + "%");
}
if (!CurQueryEntity.FieldByName("KHLXR").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJD_KHLXR like :pKHLXR ");
entity.Param.Add("pKHLXR", "%" + CurQueryEntity.FieldByName("KHLXR").Value.Trim() + "%");
}
if (!CurQueryEntity.FieldByName("KHDH").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJD_LXDH like :pKHDH ");
entity.Param.Add("pKHDH", "%" + CurQueryEntity.FieldByName("KHDH").Value.Trim() + "%");
}
if (!CurQueryEntity.FieldByName("XM").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJD_XMMC like :pXM ");
entity.Param.Add("pXM", "%" + CurQueryEntity.FieldByName("XM").Value.Trim() + "%");
}
string sBJU012 = GetOption(100860068, "BJU012").Trim();
if (!CurQueryEntity.FieldByName("BJFL").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and XLXSBJD_BJFLID = :pBJFL ");
entity.Param.Add("pBJFL", CurQueryEntity.FieldByName("BJFL").Value.Trim());
}
else if (!sBJU012.Equals(""))
{
sSQL.AppendLine(" and " + CMISproDataBase.GetWhereEqual("XLXSBJD_BJFLID", sBJU012));
}
if (!CurQueryEntity.FieldByName("BAXMKH").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and (K1MC like :pBAKH or K2MC like :pBAKH or K3MC like :pBAKH or K4MC like :pBAKH) ");
entity.Param.Add("pBAKH", "%" + CurQueryEntity.FieldByName("BAXMKH").Value.Trim() + "%");
}
if (!CurQueryEntity.FieldByName("BAXMTXY").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and YXXM_TXY like :pBATXY ");
entity.Param.Add("pBATXY", "%" + CurQueryEntity.FieldByName("BAXMTXY").Value.Trim() + "%");
}
if (!CurQueryEntity.FieldByName("BACKRQ").Value.Trim().Equals(""))
{
sSQL.AppendLine(" and YXXM_BARQS>=:pBARQ and YXXM_BARQZ<=:pBARQ ");
entity.Param.Add("pBARQ", CMISproConvert.StrToDateTime(CurQueryEntity.FieldByName("BACKRQ").Value.Trim()));
}
sSQL.AppendLine(" and ");
sSQL.AppendLine(" (1<>1 ");
if (bZD5)//*产品重复*/
{
sSQL.AppendLine(" or (sameCPBJD.sameBJCPS>=:pCPCFGS ");//*产品重复*/txtCPCFGS
sSQL.AppendLine(" and GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameCPBJD.sameBJCPS/MX.SL,2) ");
sSQL.AppendLine(" else round(100.0*sameCPBJD.sameBJCPS/MXCount.MXCounts,2) end),:pCPCFBL)) ");
entity.Param.Add("pCPCFGS", txtCPCFGS.Value);
entity.Param.Add("pCPCFBL", txtCPCFBL.Value);
}
if (bZD14)//*按产品个数区间+分段重复率查产品重复*/
{
sSQL.AppendLine(" or (MX.SL>MXCount.MXCounts*(1- :pMXTMCBL) AND MX.SL<MXCount.MXCounts*(1+ :pMXTMCBL) ");//*按产品个数区间+分段重复率查产品重复*/
sSQL.AppendLine(" and ((GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameCPBJD.sameBJCPS/MX.SL,2) ");
sSQL.AppendLine(" else round(100.0*sameCPBJD.sameBJCPS/MXCount.MXCounts,2) end),:pXYFDSCFBL) AND MXCount.MXCounts <= :pMXFDS) ");
sSQL.AppendLine(" OR (GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameCPBJD.sameBJCPS/MX.SL,2) ");
sSQL.AppendLine(" else round(100.0*sameCPBJD.sameBJCPS/MXCount.MXCounts,2) end),:pDYFDSCFBL) AND MXCount.MXCounts > :pMXFDS))) ");
entity.Param.Add("pMXTMCBL", dMXTMCBL);
entity.Param.Add("pMXFDS", dMXFDS);
entity.Param.Add("pXYFDSCFBL", dXYFDSCFBL);
entity.Param.Add("pDYFDSCFBL", dDYFDSCFBL);
}
Dictionary<string, string> DicOrder = new Dictionary<string, string>();
if (bZD5 || bZD14)
{
DicOrder.Add("5", " CPCFBL desc,sameBJCPS desc, ");
DicOrder.Add("14", " CPCFBL desc,sameBJCPS desc, ");
}
if (bZD6)//*产品+数量重复*/
DicOrder.Add("6", " sameBJCPSLS desc,");
if (bZD16)//*规格+数量重复*/
DicOrder.Add("16", " sameBJGGSLS desc,");
if (bZD7)//*仅型号规格重复*/
DicOrder.Add("7", " GGXHCFBL desc,");
if (bZD4)//*项目名称词组重复*/
DicOrder.Add("4", " CZXTGS desc,");
if (bZD3)//*项目名称重复*/
DicOrder.Add("3", " px3 desc,");
if (bZD2)//*客户名称重复*/
DicOrder.Add("2", " px2 desc,");
if (bZD15)//客户名称、项目名称相撞
DicOrder.Add("15", " px15 desc,");
if (bZD1)//*客户+销售员相撞*/
DicOrder.Add("1", " px1 desc,");
if (bZD12)//*客户联系人重复*/
DicOrder.Add("12", " px4 desc,");
if (bZD13)//*客户电话重复*/
DicOrder.Add("13", " px5 desc,");
bool bCPCF = false;
if (!sPXYXJ.Equals(""))
{
sPXYXJ = "," + sPXYXJ + ",";
foreach (string sKey in DicOrder.Keys)
{
if (sPXYXJ.Contains("," + sKey + ","))
{
if (sKey.Equals("5") || sKey.Equals("14"))
{
if (!bCPCF)
sOrderSql += DicOrder[sKey];
}
else
sOrderSql += DicOrder[sKey];
if (sKey.Equals("5") || sKey.Equals("14"))
bCPCF = true;
}
}
foreach (string sKey in DicOrder.Keys)
{
if (!sPXYXJ.Contains("," + sKey + ","))
{
if (sKey.Equals("5") || sKey.Equals("14"))
{
if (!bCPCF)
sOrderSql += DicOrder[sKey];
}
else
sOrderSql += DicOrder[sKey];
if (sKey.Equals("5") || sKey.Equals("14"))
bCPCF = true;
}
}
}
else
{
foreach (string sKey in DicOrder.Keys)
{
if (sKey.Equals("5") || sKey.Equals("14"))
{
if (!bCPCF)
sOrderSql += DicOrder[sKey];
}
else
sOrderSql += DicOrder[sKey];
if (sKey.Equals("5") || sKey.Equals("14"))
bCPCF = true;
}
}
if (bZD6)//*产品+数量重复*/
{
sSQL.AppendLine(" or (sameCPSLBJD.sameBJCPSLS>=:pCPSLCFGS ");
sSQL.AppendLine(" and GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameCPSLBJD.sameBJCPSLS/MX.SL,2) ");
sSQL.AppendLine(" else round(100.0*sameCPSLBJD.sameBJCPSLS/MXCount.MXCounts,2) end),:pCPSLCFBL)) ");
entity.Param.Add("pCPSLCFGS", txtCPSLCFGS.Value);
entity.Param.Add("pCPSLCFBL", txtCPSLCFBL.Value);
}
if (bZD16)//*规格+数量重复*/
{
sSQL.AppendLine(" or (sameGGSLBJD.sameBJGGSLS>=:pGGSLCFGS ");
sSQL.AppendLine(" and GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameGGSLBJD.sameBJGGSLS/MX.SL,2) ");
sSQL.AppendLine(" else round(100.0*sameGGSLBJD.sameBJGGSLS/MXCount.MXCounts,2) end),:pGGSLCFBL)) ");
entity.Param.Add("pGGSLCFGS", txtGGSLCFGS.Value);
entity.Param.Add("pGGSLCFBL", txtGGSLCFBL.Value);
}
if (bZD7)//*仅型号规格重复*/
{
//*仅型号规格重复*/txtCPSLCFGS
sSQL.AppendLine(" or GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameXHGGBJD.sameXHGGS/MX.SL,2) ");
sSQL.AppendLine(" else round(100.0*sameXHGGBJD.sameXHGGS/MXCount.MXCounts,2) end),:pXHGGCFBL) ");//txtXHGGCFBL
entity.Param.Add("pXHGGCFBL", txtXHGGCFBL.Value);
}
if (bZD4)//*项目名称词组重复*/
{
sSQL.AppendLine(" or (A.CZXTGS >=:pCZCFGS) ");//*项目名称词组重复*/
entity.Param.Add("pCZCFGS", txtCZCFGS.Value);
}
if (bZD3)//*项目名称重复*/
{
sSQL.AppendLine(" or (XLXSBJD_XMMC='" + sXM + "' and not exists(select 1 from XLXSBJZDBJYXX where XLXSBJZDBJYXX_XXLX='XM' and XLXSBJZDBJYXX_XXNR=XLXSBJD_XMMC) ) ");//*项目名称重复*/
}
if (bZD2)//*客户名称重复*/
{
if (DicKHStr.Count > 0)
{
sSQL.AppendLine(" or (XLXSBJD_KH='" + sKH + "') ");
foreach (string sTmpKH in DicKHStr.Keys)
{
if (sTmpKH.Equals(""))
continue;
if (sTmpKH.Contains("$"))
{
string sTmp1 = sTmpKH.Split('$')[0];
string sTmp2 = sTmpKH.Split('$')[1];
sSQL.AppendLine(" or (XLXSBJD_KH like '%" + sTmp1 + "%' and XLXSBJD_KH like '%" + sTmp2 + "%') ");
}
else
sSQL.AppendLine(" or (XLXSBJD_KH like '%" + sTmpKH + "%') ");
}
}
else
sSQL.AppendLine(" or (XLXSBJD_KH='" + sKH + "') ");//*客户名称重复
}
if (bZD15)//客户名称、项目名称相撞
{
sSQL.AppendLine(" or (XLXSBJD_KH='" + sKH + "' and XLXSBJD_XMMC='" + sXM + "' )");
}
if (bZD1)//*客户+销售员相撞*/
{
sSQL.AppendLine(" or (XLXSBJD_KH='" + sKH + "' and XLXSBJD_TXY='" + sTXY + "') ");//*客户+销售员相撞*/
}
if (bZD12)//*客户联系人重复*/
{
sSQL.AppendLine(" or (XLXSBJD_KHLXR='" + sKHLXR + "') ");//*客户联系人重复*/
}
if (bZD13)//*客户电话重复*/
{
sSQL.AppendLine(" or (XLXSBJD_LXDH='" + sLXDH + "') ");//*客户电话重复*/
}
if (bZD8)//*备案项目客户名称重复*/
{
sSQL.AppendLine(" or ((K1MC='" + sKH + "' or K2MC='" + sKH + "' or K3MC='" + sKH + "' or K4MC='" + sKH + "') and isNull(XM.XMID,' ')=XLXSBJD_XMID) ");//*备案项目客户名称重复*/
}
if (bZD9)//*备案项目名称重复*/
{
sSQL.AppendLine(" or (isNull(XM.XMID,' ')=XLXSBJD_XMID and XLXSBJD_XMID=:pXMID) ");//*备案项目客户名称重复,:pXMID为当前报价单的XMID*/
entity.Param.Add("pXMID", sXMID);
}
if (bZD10)//*备案项目名称+销售员重复*/
{
sSQL.AppendLine("or (isNull(XM.XMID,' ')=XLXSBJD_XMID and XLXSBJD_XMID=:pXMID and YXXM_TXY='" + sTXY + "') ");//*备案项目名称+销售员重复*/
if (!entity.Param.Contains("pXMID"))
{
entity.Param.Add("pXMID", sXMID);
}
}
if (bZD11)//*项目与客户名称相撞*/
{
sSQL.AppendLine(" or (XLXSBJD_KH like '%" + sXM + "%' or ('" + sXM + "' like '%' || rtrim(isnull(XLXSBJD_KH,' ')) || '%' and isnull(XLXSBJD_KH,' ') <> ' ')) ");//*项目名称重复*/
}
sSQL.AppendLine(" ) ");
if (CurQueryEntity.FieldByName("BJRQDX").Value.ToString().Trim().ToUpper().Equals("TRUE"))
sSQL.AppendLine("order by " + sOrderSql + "XLXSBJD_BJRQ desc,XLXSBJD_BJDID ");
else
sSQL.AppendLine("order by " + sOrderSql + "XLXSBJD_BJRQ,XLXSBJD_BJDID ");
if (PageParam.ContainsKey("BJDID"))
entity.Param.Add("pBJDID", PageParam.GetRTrimString("BJDID"));
else
entity.Param.Add("pBJDID", CurQueryEntity.FieldByName("BZBJDH").Value.Trim());
return sSQL.ToString();
}
//判断模块是否存在并且是否有权限
private bool CheckModule(string sUMID)
{
int iUMID = CMISproConvert.StrToInt(sUMID);
UserRight UR = OpRightUtils.GetUserRight(tSession.UserId, iUMID);
return (DSActiveModule.IsActiveModule(iUMID) && UR.Open);
}
private void GetKHStr(string sKH, double dKHMCXSBL, ref Dictionary<string, string> DicKHStr)
{
DicKHStr.Clear();
int AllLenth = sKH.Length;
double CutBL = 100 - dKHMCXSBL;
int CutLenth = (int)(AllLenth * CutBL / 100);
int StrLenth = AllLenth - CutLenth;
if (StrLenth == 0 || AllLenth == CutLenth)
return;
for (int i = 0; i < AllLenth; i++)
{
string stStr = "";
if (i < StrLenth)
{
string stStr1 = sKH.Substring(0, i);
string stStr2 = sKH.Substring(i + CutLenth, StrLenth - i);
if (i == 0)
stStr = stStr1 + stStr2;
else
stStr = stStr1 + "$" + stStr2;
}
else
{
stStr = sKH.Substring(i - StrLenth, StrLenth);
}
if (!DicKHStr.ContainsKey(stStr))
{
DicKHStr.Add(stStr, stStr);
}
}
}
#endregion
protected void btnQD_Click(object sender, EventArgs e)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Add("update XLXSBJD set XLXSBJD_ZDQRRGH=:pZDQRRGH ,XLXSBJD_ZDQRSJ=:pZDQRSJ WHERE XLXSBJD_BJDID=:pBJDID");
sql.ParamByName("pZDQRRGH").Value = tSession.UserId;
sql.ParamByName("pZDQRSJ").Value = CMISproConvert.ConvertTime(DateTime.Now);
sql.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID").Trim();
dberp.ExecSQL(sql);
btnQD.Enabled = false;
btnQX.Enabled = true;
MenuAreaUpdate();
DialogOperationScript dos = new DialogOperationScript(this);
dos.CloseSelf();
dos.Execute();
}
protected void btnQX_Click(object sender, EventArgs e)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Add("update XLXSBJD set XLXSBJD_ZDQRRGH=NULL ,XLXSBJD_ZDQRSJ=NULL WHERE XLXSBJD_BJDID=:pBJDID");
sql.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID").Trim();
dberp.ExecSQL(sql);
btnQD.Enabled = true;
btnQX.Enabled = false;
MenuAreaUpdate();
}
protected void grdContentGrid_RowDoubleClick(object sender, GThinking.N_CONTROL.RowDoubleClickEventArgs e)
{
base.InitEntityByCondition();
string sBZBJDH = grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["sBZBJDH"].ToString().Trim();
string sBJDID = grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim();
string sWFID = "";
string sWFINST = "";
bool CanBrowse = true;
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(" select XLXSBJD_SQRID,XLXSBJFL_JLRBJCP ");
SQL.Add(" from XLXSBJD ");
SQL.Add(" left join XLXSBJFL on XLXSBJFL_BJFLID = XLXSBJD_BJFLID ");
SQL.Add(" where XLXSBJD_BJDID = :pBJDID ");
SQL.ParamByName("pBJDID").Value = sBZBJDH;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
string sSQRID = ds.Tables[0].Rows[0]["XLXSBJD_SQRID"].ToString().Trim();
string sJLRBJCP = ds.Tables[0].Rows[0]["XLXSBJFL_JLRBJCP"].ToString().Trim();
if (tSession.RYID.Equals(sSQRID) && sJLRBJCP.Equals("Y"))
CanBrowse = false;
}
ds.Clear();
SQL.Clear();
SQL.Add(" select XLXSBJD_BJDID,XLXSBJD_WFID,XLXSBJD_WFINST ");
SQL.Add(" from XLXSBJD ");
SQL.Add(" where XLXSBJD_BJDID = :pBJDID ");
SQL.ParamByName("pBJDID").Value = sBJDID;
ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
sWFID = ds.Tables[0].Rows[0]["XLXSBJD_WFID"].ToString().Trim();
sWFINST = ds.Tables[0].Rows[0]["XLXSBJD_WFINST"].ToString().Trim();
}
if (CanBrowse)
{
TPageParams tpp = new TPageParams();
tpp.UrlPath = "XLBJDInfo.aspx";
tpp.AddString("XLXSBJD_BJDID", sBJDID);
tpp.AddString("WFID", sWFID);
tpp.AddString("WFINST", sWFINST);
tpp.AddString("BZBJDID", sBZBJDH);
tpp.AddString("CPCFXLBZ", txtCPCFXLBZ.Value.Trim());
tpp.CallAction = TPageCallAction.pcaBrowse;
OpenModuleDialog(100860174, tpp);
}
}
}
}