1613 lines
87 KiB
C#
1613 lines
87 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.N_XLXSBJ
|
|
{
|
|
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 = 100860068;
|
|
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("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();
|
|
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("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() + ",";
|
|
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("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 btnCXCX_Click(object sender, EventArgs e)
|
|
{
|
|
if (txtCPCFBL.Value > 100)
|
|
{
|
|
ShowMessage("产品重复比例不允许大于100");
|
|
return;
|
|
}
|
|
if (txtXHGGCFBL.Value > 100)
|
|
{
|
|
ShowMessage("型号规格重复比例不允许大于100");
|
|
return;
|
|
}
|
|
if (txtGGSLCFBL.Value > 100)
|
|
{
|
|
ShowMessage("规格+数量重复比例不允许大于100");
|
|
return;
|
|
}
|
|
//base.InitEntityByCondition();
|
|
entity.Param.Clear();
|
|
moduleGV_PageIndexChanging(null, null);
|
|
}
|
|
|
|
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();
|
|
}
|
|
XLXSBJPZXX xlxsbjpzxx = XLBJDUtils.GetXLXSBJPZXX(100860068);
|
|
if (xlxsbjpzxx.XLXSBJPZ_YCJGXGLM.Equals("Y"))
|
|
{
|
|
TPageParams tpp = new TPageParams();
|
|
tpp.UrlPath = "ZDFXInfo.aspx";
|
|
tpp.AddString("XLXSBJD_BJDID", sBJDID);
|
|
tpp.AddString("WFID", sWFID);
|
|
tpp.AddString("WFINST", sWFINST);
|
|
tpp.AddString("BZBJDID", sBZBJDH);
|
|
tpp.AddString("CPCFXLBZ", txtCPCFXLBZ.Value.Trim());
|
|
XLXSBJPZXX xlxsbjpzxx00 = XLBJDUtils.GetXLXSBJPZXX(100860000);
|
|
tpp.AddString("XSCPML", xlxsbjpzxx00.XLXSBJPZ_XSCPML);
|
|
tpp.CallAction = TPageCallAction.pcaBrowse;
|
|
OpenDialog(tpp);
|
|
}
|
|
else
|
|
{
|
|
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(100860000, tpp);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|