Files
N_XLXSBJ----MX/XLBJD_PLTJList.aspx.cs
T
2026-09-21 11:37:39 +08:00

2947 lines
288 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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_CONTROL;
using GThinking.N_WORKFLOW;
using GThinking.N_PUBLIC;
using GThinking.N_MODEL.Dialog;
using GThinking.N_MISPRO.Utility;
using GThinking.N_MISPRO;
using GThinking.N_MODEL.Page;
using GThinking.N_MISPRO.Data;
using System.Collections.Generic;
using System.Text;
using System.Data.Common;
using System.Reflection;
using System.Web.Script;
using GThinking.N_PUBLIC2;
using GThinking.N_MISPRO.MISPROAS;
using System.Text.RegularExpressions;
using GThinking.N_MISPRO.TableCache;
namespace GThinking.N_XLXSBJ
{
public partial class XLBJD_PLTJList : TreeGridBase
{
#region Page类事件继承
XLBJD_PLTJ entity = new XLBJD_PLTJ();
XLBJD_PLTJ_M queryentity = new XLBJD_PLTJ_M();
int iXSWS;
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860000;
this.UMName = "线缆销售报价单";
this.CurMaster = Master;
this.ModuleGV = grdContentGrid;
this.CurEntity = entity;
this.CurQueryEntity = queryentity;
this.sQueryURLTarget = "XLBJD_PLTJQuery.aspx";
this.PageHeight = 600;
this.PageWidth = 750;
this.Master.EnableNewBtn = false;
this.Master.EnableViewBtn = false;
this.Master.EnableEditBtn = false;
this.Master.EnableDeleteBtn = false;
this.Master.EnableAttachBtn = false;
//this.Master.EnableQueryBtn = false;
Master.LeftTreeView.DropMode = DDropMode.dmManual;
Master.LeftTreeView.CanDrop = false;
grdContentGrid.SetDefaultSortExpression();//设置列排序SortExpression
string sBJFLID = PageParam.GetRTrimString("BJFLID");
this.Master.LeftTreeView.ShowCheckBoxes =TreeNodeTypes.All;
base.DataKeyNames = new string[] { "XLXSBJDMX_XH" };
//如果是树控件触发的异步事件,则停止操作
if (IsGtPostBack)
return;
this.Master.LeftTreeView.InitEvents(true, true, false, false);
iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002"));
if (iXSWS < 0)
iXSWS = 0;
else if (iXSWS > 8)
iXSWS = 8;
InitGrid(iXSWS, PageParam.GetRTrimString("BJDYZ"));
grdContentGrid.FindColumnExByFieldName("XLXSBJDMX_BJDHQCLCB").NumberDecimalPlace = iXSWS;
grdContentGrid.FindColumnExByFieldName("XLXSBJDMX_CLCB").NumberDecimalPlace = iXSWS;
grdContentGrid.FindColumnExByFieldName("XLXSBJDMX_JGBJJ").NumberDecimalPlace = iXSWS;
grdContentGrid.FindColumnExByFieldName("XLXSBJDMX_JGBBJ").NumberDecimalPlace = iXSWS;
if (XLBJDUtils.GetDefaultBJU003(GetOption("BJU003")).Equals("M"))
{
grdContentGrid.FindColumnExByFieldName("XLXSBJDMX_BJSL").NumberDecimalPlace = 0;
}
if (!IsPostBack)
{
TreeWidth = 220;
CurQueryEntity.FieldByName("BJDID").Value = PageParam.GetRTrimString("BJDID").Trim();
if (!PageParam.GetRTrimString("JGBBJBM").Equals(""))
grdContentGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJ").HeaderText = PageParam.GetRTrimString("JGBBJBM");
if (!PageParam.GetRTrimString("BJDHQLJBM").Equals(""))
grdContentGrid.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").HeaderText = PageParam.GetRTrimString("BJDHQLJBM");
}
base.InitPage();
this.ModuleGV.OnClientDblClick = "return false;";
if (!IsPostBack)
{
Master_OnStandardQuery(null, null);
}
if (!string.IsNullOrEmpty(PageParam.GetRTrimString("BJFLID")))
{
TPageParams tpp = new TPageParams();
tpp.AddString("BJFLID", PageParam.GetRTrimString("BJFLID"));
QueryPageParam = tpp;
}
if (GetOption("BJU011") == "N")
{
btnGXBJCP.Visible = false;
}
else
{
btnGXBJCP.Visible = true;
}
}
#endregion
#region 模板事件继承
//protected override void InitTreeView()
//{
// base.InitTreeView();
// BuildTree();
// Master.LeftTreeView.ExpandDepth = 2;
//}
protected override void Master_OnStandardTreeNodeBeforePopulate(object sender, gtTreeViewNodeEventArgs e)
{
base.Master_OnStandardTreeNodeBeforePopulate(sender, e);
}
//节点展开
protected override void Master_OnStandardTreeNodePopulate(object sender, gtTreeViewNodeEventArgs e)
{
base.Master_OnStandardTreeNodePopulate(sender, e);
}
protected override void Master_OnStandardTreeNodeBeforeChanged(object sender, gtTreeViewNodeEventArgs e)
{
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = GetQuerySQL();
entity.GridDataBind(grdContentGrid, tSession);
grdContentGrid.SelectedIndex = -1;
base.Master_OnStandardTreeNodeBeforeChanged(sender, e);
}
protected override void Master_OnStandardQuery(object sender, EventArgs e)
{
base.InitEntityByCondition();
BuildTree();
entity.Param.Clear();
entity.EntityTable.QuerySelSql = GetQuerySQL();
entity.GridDataBind(grdContentGrid, tSession);
base.Master_OnStandardQuery(sender, e);
}
protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
}
base.moduleGV_RowDataBound(sender, e);
}
protected override void Master_OnStandardTreeNodeChanged(object sender, gtTreeViewNodeEventArgs e)
{
base.Master_OnStandardTreeNodeChanged(sender, e);
Master_OnStandardQuery(null, null);
}
protected override void Master_OnStandardTreeNodeDragDrop(object sender, gtTreeViewDragEventArgs e)
{
base.Master_OnStandardTreeNodeDragDrop(sender, e);
}
protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
base.InitEntityByCondition();
string sSQL = GetQuerySQL();
if (!string.IsNullOrEmpty(grdContentGrid.SortField) && !string.IsNullOrEmpty(grdContentGrid.SortOrder.ToString()))
{
string str1 = "order by";
int i = sSQL.IndexOf(str1);
if (i > 0)
sSQL = sSQL.Substring(0, i);
}
entity.EntityTable.QuerySelSql = sSQL;
base.moduleGV_PageIndexChanging(sender, e);
grdContentGrid.SelectedIndex = -1;
}
protected override void Master_OnStandardTreeNodeCheckChanged(object sender, gtTreeViewNodeEventArgs e)
{
base.InitEntityByCondition();
//e.Node.Selected = true;
entity.EntityTable.QuerySelSql = GetQuerySQL();
entity.GridDataBind(grdContentGrid, tSession);
grdContentGrid.SelectedIndex = -1;
TreeAreaUpdate();
FormAreaUpdate();
MenuAreaUpdate();
base.Master_OnStandardTreeNodeCheckChanged(sender, e);
}
protected override void moduleGV_Sorting(object sender, GridViewSortEventArgs e)
{
base.InitEntityByCondition();
string sSQL = GetQuerySQL();
string str1 = "order by";
int i = sSQL.IndexOf(str1);
if (i > 0)
sSQL = sSQL.Substring(0, i);
entity.EntityTable.QuerySelSql = sSQL;
base.moduleGV_Sorting(sender, e);
}
#endregion
#region 自定义函数
private void BuildTree()
{
//研发自测:王正阳 2026/05/07 20:29:30
string sWHere = GetCheckedNodeSQL();
if (CurQueryEntity.FieldByName("XTBJCP").Value.ToUpper().Trim().Equals("TRUE") &&! CurSelectedNote.Text.Equals("报价产品"))
{
//查询条件勾选相同报价产品,此时须重新生成树
}
else if (CurQueryEntity.FieldByName("XTBJCP").Value.ToUpper().Trim().Equals("FALSE") && CurSelectedNote.Text.Equals("报价产品"))
{
//查询条件不勾选相同报价产品,此时须重新生成树
}
else if (!sWHere.Equals(""))
return;
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XTBJCP").Value.Trim()) && CurQueryEntity.FieldByName("XTBJCP").Value.ToUpper().Trim().Equals("TRUE"))
{
RefreshTreeByBJCP(CurSelectedNote);
Master.LeftTreeView.ExpandDepth = 2;
}
else
{
if (!XLBJDUtils.ExistXSCPML())
RefreshTree(CurSelectedNote);
else
RefreshTreeByCPML(CurSelectedNote);
Master.LeftTreeView.ExpandDepth = 3;
}
TreeAreaUpdate();
}
protected void RefreshTree(gtTreeViewNode curNode)
{
string sCurNodeValue = "";
if (curNode != null)
{
sCurNodeValue = curNode.Value;
}
Master.LeftTreeView.Nodes.Clear();
gtTreeViewNode rootnode = null;
rootnode = TreeViewAddNode(null, "产品用途", "root1", "", true, false, false);
rootnode.Selected = true;
rootnode.ChildNodes.Clear();
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sSQL = new TSQL(dberp);
gtTreeViewNode node = null;
string sText = "";
string sValue = "";
string sBJDID = PageParam.GetRTrimString("BJDID");
//0-1-2
sSQL.Clear();
sSQL.Add("select distinct ");
sSQL.Add("isnull(XLXHB_CPYT,' ') as XLXHB_CPYT,isnull(XLCPYT_CPYTMC,' ') as XLCPYT_CPYTMC,");
sSQL.Add("isnull(XLDYDJB_DYDJFL,' ') as XLDYDJB_DYDJFL,isnull(XLCPYT_XSSX,-1) as PX ");
sSQL.Add("from XLXHDYDJ ");
sSQL.Add("left join XLXHB on XLXHB_XLXHID=XLXHDYDJ_XLXHID ");
sSQL.Add("left join XLCPYT on XLCPYT_CPYT=XLXHB_CPYT ");
sSQL.Add("left join XLDYDJB on XLDYDJB_DYDJID=XLXHDYDJ_DYDJID ");
sSQL.Add("where 1=1 ");
if (!CurQueryEntity.FieldByName("CPYT").Value.Trim().Equals(""))
sSQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLCPYT_CPYT", CurQueryEntity.FieldByName("CPYT").Value.Trim()));
sSQL.Add(" and exists( select 1 from XLXSBJDMX where XLXSBJDMX_BJDID =:pBJDID and XLXSBJDMX_XLXHID = XLXHB_XLXHID and XLXSBJDMX_DYDJID = XLXHDYDJ_DYDJID)");
sSQL.Add("order by isnull(XLCPYT_XSSX,-1),isnull(XLXHB_CPYT,' '),isnull(XLDYDJB_DYDJFL,' ') ");
sSQL.ParamByName("pBJDID").Value = sBJDID;
DataSet ds = dberp.OpenDataSet(sSQL);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string sDYDJFL = "";
if (i < ds.Tables[0].Rows.Count - 1)
{
if (ds.Tables[0].Rows[i]["XLXHB_CPYT"].ToString().Trim() == ds.Tables[0].Rows[i + 1]["XLXHB_CPYT"].ToString().Trim())
{
sDYDJFL = ds.Tables[0].Rows[i]["XLDYDJB_DYDJFL"].ToString().Trim();
}
else
{
if (i > 0)
{
if (ds.Tables[0].Rows[i - 1]["XLXHB_CPYT"].ToString().Trim() == ds.Tables[0].Rows[i]["XLXHB_CPYT"].ToString().Trim())
{
sDYDJFL = ds.Tables[0].Rows[i]["XLDYDJB_DYDJFL"].ToString().Trim();
}
}
}
}
else
{
if (i > 0)
{
if (ds.Tables[0].Rows[i - 1]["XLXHB_CPYT"].ToString().Trim() == ds.Tables[0].Rows[i]["XLXHB_CPYT"].ToString().Trim())
{
sDYDJFL = ds.Tables[0].Rows[i]["XLDYDJB_DYDJFL"].ToString().Trim();
}
}
//else
// sDYDJFL = ds.Tables[0].Rows[i]["XLDYDJB_DYDJFL"].ToString().Trim();
}
sValue = sDYDJFL + "|" + ds.Tables[0].Rows[i]["XLXHB_CPYT"].ToString().Trim();
sText = sDYDJFL + ds.Tables[0].Rows[i]["XLCPYT_CPYTMC"].ToString().Trim();
if (sDYDJFL.Equals("") && ds.Tables[0].Rows[i]["XLXHB_CPYT"].ToString().Trim().Equals(""))
{
sValue = "<NULL>";
sText = "未指定产品用途";
}
else if (!sDYDJFL.Equals("") && ds.Tables[0].Rows[i]["XLXHB_CPYT"].ToString().Trim().Equals(""))
{
sValue = sDYDJFL + "|<NULL>";
sText = sDYDJFL;
}
else if (sDYDJFL.Equals("") && !ds.Tables[0].Rows[i]["XLXHB_CPYT"].ToString().Trim().Equals(""))
{
sValue = sDYDJFL + "|" + ds.Tables[0].Rows[i]["XLXHB_CPYT"].ToString().Trim();
sText = sDYDJFL + ds.Tables[0].Rows[i]["XLCPYT_CPYTMC"].ToString().Trim();
}
node = TreeViewAddNode(rootnode, sText, sValue, "", true, false, false);
if (sCurNodeValue.Equals(sValue))
{
node.Selected = true;
}
string sCPYTXX = sValue.Trim();
sSQL.Clear();
sSQL.Add(" select rtrim(XLXHDYDJ_XLXHID)||' '||rtrim(XLXHDYDJ_DYDJID) as Text,rtrim(XLXHDYDJ_XLXHID)||'#@#'||rtrim(XLXHDYDJ_DYDJID) as Value,'N' as HasChild ");
sSQL.Add(" from XLXHDYDJ");
sSQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXHDYDJ_XLXHID");
sSQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID=XLXHDYDJ_DYDJID ");
sSQL.Add(" where 1=1 ");
sSQL.Add(" and exists (select 1 from XLXSBJDMX where XLXSBJDMX_BJDID =:pBJDID and XLXSBJDMX_XLXHID = XLXHB_XLXHID and XLXSBJDMX_DYDJID = XLXHDYDJ_DYDJID) ");
sSQL.ParamByName("pBJDID").Value = sBJDID;
if (sCPYTXX.Equals("<NULL>"))
{
sSQL.Add(" and isnull(XLXHB_CPYT,' ')=' '");
}
else if (sCPYTXX.EndsWith("|<NULL>"))
{
sSQL.Add(" and isnull(XLXHB_CPYT,' ')=' '");
string[] sCPYTList = sCPYTXX.Trim().Split('|');
sDYDJFL = sCPYTList[0].Trim();
if (!sDYDJFL.Equals(""))
{
sSQL.Add(" and XLDYDJB_DYDJFL= :XLDYDJB_DYDJFL ");
sSQL.ParamByName("XLDYDJB_DYDJFL").Value = sDYDJFL;
}
}
else
{
string[] sCPYTList = sCPYTXX.Trim().Split('|');
sDYDJFL = sCPYTList[0].Trim();
string sCPYT = sCPYTList[1].Trim();
sSQL.Add(" and XLXHB_CPYT=:XLXHB_CPYT ");
sSQL.ParamByName("XLXHB_CPYT").Value = sCPYT;
if (!sDYDJFL.Equals(""))
{
sSQL.Add(" and XLDYDJB_DYDJFL=:XLDYDJB_DYDJFL ");
sSQL.ParamByName("XLDYDJB_DYDJFL").Value = sDYDJFL;
}
}
sSQL.Add("order by XLXHB_XLXHBH,XLDYDJB_XH");
DataSet date = dberp.OpenDataSet(sSQL);
for (int j = 0; j < date.Tables[0].Rows.Count; j++)
{
sValue = date.Tables[0].Rows[j]["Value"].ToString().Trim();
sText = date.Tables[0].Rows[j]["Text"].ToString().Trim();
gtTreeViewNode tNode = TreeViewAddNode(node, sText, sValue, "", true, false, false);
if (sCurNodeValue.Equals(sValue))
{
tNode.Selected = true;
}
}
}
}
private void RefreshTreeByCPML(gtTreeViewNode curNode)
{
string sCurNodeValue = "";
if (curNode != null)
{
sCurNodeValue = curNode.Value;
}
Master.LeftTreeView.Nodes.Clear();
gtTreeViewNode rootnode = null;
rootnode = TreeViewAddNode(null, "产品目录", "root1", "", true, false, false);
rootnode.Selected = true;
rootnode.ChildNodes.Clear();
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sSQL = new TSQL(dberp);
gtTreeViewNode node = null;
string sText = "";
string sValue = "";
string sBJDID = PageParam.GetRTrimString("BJDID");
#region 查询产品目录节点
sSQL.Clear();
sSQL.Add(@"select distinct case when isnull(XLXSBJDMX_CPMLMC,' ')=' ' then isnull(C.XLXSCPML_CPMLMC,' ') else isnull(XLXSBJDMX_CPMLMC,' ') end as CPMLMC,
C.XLXSCPML_CPMLID as DYCPMLID,
D.XLXSCPML_CPMLID as ZHCPMLID,D.XLXSCPML_CPMLMC as ZHCPMLMC,
case when (case when isnull(XLXSBJDMX_CPMLMC,' ')=' ' then isnull(C.XLXSCPML_CPMLMC,' ') else isnull(XLXSBJDMX_CPMLMC,' ') end)=' ' then 1 else 2 end as px
from XLXSBJDMX
left join XLXSBJXHML A on A.XLXSBJXHML_XLXHID=XLXSBJDMX_XLXHID and A.XLXSBJXHML_DYDJID=XLXSBJDMX_DYDJID
left join XLXSBJXHML B on B.XLXSBJXHML_XLXHID=XLXSBJDMX_XLXHID and XLXSBJDMX_DYDJID=' '
left join XLXSCPML C on XLXSCPML_CPMLID= (case when A.XLXSBJXHML_CPMLID is null then B.XLXSBJXHML_CPMLID else A.XLXSBJXHML_CPMLID end )
left join XLXSCPML D on D.XLXSCPML_CPMLLX='Y' and ','||D.XLXSCPML_CPMLIDS||',' like '%,'||C.XLXSCPML_CPMLID||',%'
where XLXSBJDMX_BJDID=:pBJDID
order by px,ZHCPMLID desc,DYCPMLID,CPMLMC");
sSQL.ParamByName("pBJDID").Value = sBJDID;
DataSet ds = dberp.OpenDataSet(sSQL);
string sLastZHCPMLID = string.Empty;
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (string.IsNullOrEmpty(ds.Tables[0].Rows[i]["CPMLMC"].ToString().Trim()))
{
sValue = "<NULL>";
sText = "无产品目录";
node = TreeViewAddNode(rootnode, sText, sValue, "", true, false, false);
if (sCurNodeValue.Equals(sValue))
{
node.Selected = true;
}
DataSet ds2 = QueryXHDYByCPMLMC(sValue,sBJDID);
for (int j = 0; j < ds2.Tables[0].Rows.Count; j++)
{
sValue = ds2.Tables[0].Rows[j]["XLXHID"].ToString().Trim() + "#@#" + ds2.Tables[0].Rows[j]["DYDJID"].ToString().Trim();
sText = ds2.Tables[0].Rows[j]["XLXHID"].ToString().Trim() + " " + ds2.Tables[0].Rows[j]["DYDJID"].ToString().Trim();
gtTreeViewNode tNode = TreeViewAddNode(node, sText, sValue, "", true, false, false);
if (sCurNodeValue.Equals(sValue))
{
tNode.Selected = true;
}
}
}
else if (!string.IsNullOrEmpty(ds.Tables[0].Rows[i]["ZHCPMLID"].ToString().Trim()))
{
if (!ds.Tables[0].Rows[i]["ZHCPMLID"].ToString().Trim().Equals(sLastZHCPMLID))
{
sValue = "ZH|" + ds.Tables[0].Rows[i]["ZHCPMLMC"].ToString().Trim();
sText = ds.Tables[0].Rows[i]["ZHCPMLMC"].ToString().Trim();
node = TreeViewAddNode(rootnode, sText, sValue, "", true, false, false);
if (sCurNodeValue.Equals(sValue))
{
node.Selected = true;
}
sLastZHCPMLID = ds.Tables[0].Rows[i]["ZHCPMLID"].ToString().Trim();
}
sValue = ds.Tables[0].Rows[i]["CPMLMC"].ToString().Trim();
sText = ds.Tables[0].Rows[i]["CPMLMC"].ToString().Trim();
gtTreeViewNode node2 = TreeViewAddNode(node, sText, sValue, "", true, false, false);
if (sCurNodeValue.Equals(sValue))
{
node2.Selected = true;
}
DataSet ds2 = QueryXHDYByCPMLMC(sValue, sBJDID);
for (int j = 0; j < ds2.Tables[0].Rows.Count; j++)
{
sValue = ds2.Tables[0].Rows[j]["XLXHID"].ToString().Trim() + "#@#" + ds2.Tables[0].Rows[j]["DYDJID"].ToString().Trim();
sText = ds2.Tables[0].Rows[j]["XLXHID"].ToString().Trim() + " " + ds2.Tables[0].Rows[j]["DYDJID"].ToString().Trim();
gtTreeViewNode tNode = TreeViewAddNode(node2, sText, sValue, "", true, false, false);
if (sCurNodeValue.Equals(sValue))
{
tNode.Selected = true;
}
}
}
else
{
sValue = ds.Tables[0].Rows[i]["CPMLMC"].ToString().Trim();
sText = ds.Tables[0].Rows[i]["CPMLMC"].ToString().Trim();
if (rootnode.FindChildNodeByValueFromAllLeaf(sValue) != null)
continue;
node = TreeViewAddNode(rootnode, sText, sValue, "", true, false, false);
if (sCurNodeValue.Equals(sValue))
{
node.Selected = true;
}
DataSet ds2 = QueryXHDYByCPMLMC(sValue, sBJDID);
for (int j = 0; j < ds2.Tables[0].Rows.Count; j++)
{
sValue = ds2.Tables[0].Rows[j]["XLXHID"].ToString().Trim() + "#@#" + ds2.Tables[0].Rows[j]["DYDJID"].ToString().Trim();
sText = ds2.Tables[0].Rows[j]["XLXHID"].ToString().Trim() + " " + ds2.Tables[0].Rows[j]["DYDJID"].ToString().Trim();
gtTreeViewNode tNode = TreeViewAddNode(node, sText, sValue, "", true, false, false);
if (sCurNodeValue.Equals(sValue))
{
tNode.Selected = true;
}
}
}
}
#endregion
}
private void RefreshTreeByBJCP(gtTreeViewNode curNode)
{
//研发自测:王正阳 2026/05/07 20:29:38
string sCurNodeValue = "";
if (curNode != null)
{
sCurNodeValue = curNode.Value;
}
Master.LeftTreeView.Nodes.Clear();
gtTreeViewNode rootnode = TreeViewAddNode(null, "报价产品", "root1", "", true, false, false);
rootnode.Selected = true;
rootnode.ChildNodes.Clear();
string sBJDID = PageParam.GetRTrimString("BJDID");
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sSQL = new TSQL(dberp);
sSQL.Clear();
sSQL.Add("select distinct isnull(XLXSBJDMX_BJCP,' ') as BJCP ");
sSQL.Add("from XLXSBJDMX ");
sSQL.Add("where XLXSBJDMX_BJDID = :pBJDID ");
sSQL.Add("order by BJCP");
sSQL.ParamByName("pBJDID").Value = sBJDID;
DataSet ds = dberp.OpenDataSet(sSQL);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string sBJCP = ds.Tables[0].Rows[i]["BJCP"].ToString().Trim();
string sText = string.IsNullOrEmpty(sBJCP) ? "未指定报价产品" : sBJCP;
string sValue = string.IsNullOrEmpty(sBJCP) ? "BJCP#*#<NULL>" : "BJCP#*#" + sBJCP;
gtTreeViewNode node = TreeViewAddNode(rootnode, sText, sValue, "", true, false, false);
if (sCurNodeValue.Equals(sValue))
{
node.Selected = true;
}
}
}
private DataSet QueryXHDYByCPMLMC(string sValue,string sBJDID)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sSQL = new TSQL(dberp);
sSQL.Clear();
sSQL.Add(@"select distinct XLXSBJDMX_XLXHID as XLXHID,XLXSBJDMX_DYDJID as DYDJID,XLXHB_XLXHBH,XLDYDJB_XH
from XLXSBJDMX
left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID
left join XLDYDJB on XLDYDJB_DYDJID=XLXSBJDMX_DYDJID
left join XLXSBJXHML A on A.XLXSBJXHML_XLXHID=XLXSBJDMX_XLXHID and A.XLXSBJXHML_DYDJID=XLXSBJDMX_DYDJID
left join XLXSBJXHML B on B.XLXSBJXHML_XLXHID=XLXSBJDMX_XLXHID and XLXSBJDMX_DYDJID=' '
left join XLXSCPML on XLXSCPML_CPMLID= (case when A.XLXSBJXHML_CPMLID is null then B.XLXSBJXHML_CPMLID else A.XLXSBJXHML_CPMLID end )
where XLXSBJDMX_BJDID=:pBJDID ");
if (sValue == "<NULL>")
sSQL.Add(" and (case when isnull(XLXSBJDMX_CPMLMC,' ')=' ' then isnull(XLXSCPML_CPMLMC,' ') else isnull(XLXSBJDMX_CPMLMC,' ') end) =' ' ");
else
{
sSQL.Add(" and (case when isnull(XLXSBJDMX_CPMLMC,' ')=' ' then isnull(XLXSCPML_CPMLMC,' ') else isnull(XLXSBJDMX_CPMLMC,' ') end) =:pCPMLMC ");
sSQL.ParamByName("pCPMLMC").Value =sValue.Trim();
}
sSQL.Add(" order by XLXHB_XLXHBH,XLDYDJB_XH ");
sSQL.ParamByName("pBJDID").Value = sBJDID;
return dberp.OpenDataSet(sSQL);
}
//查询语句
private string GetQuerySQL()
{
string sBJDID = PageParam.GetRTrimString("BJDID");
string sSQL = "";
//初始查询所有
sSQL = " select ";
sSQL += " XLXSBJDMX_XLXHID as XLXHID, XLXSBJDMX_XLGGID as XLGGID, rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLBZID,";
sSQL += " XLXSBJDMX_DYDJID as DYDJID,XLXSBJDMX_JLDW as JLDW,XLXSBJDMX_BJCP,XLXSBJDMX_BJSL,XLXSBJDMX_JGBBJ,isnull(XLXSBJDMX_BJSDBZ,'N') as XLXSBJDMX_BJSDBZ,";
sSQL += " XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_TZQBJJE,XLXSBJDMX_TZBJJE,XLXSBJDMX_BJJE,XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLZL,XLXSBJDMX_BZ,XLXSBJDMX_WHRID,XLXSBJDMX_WHR,XLXSBJDMX_WHSJ,XLXSBJDMX_XH,XLXSBJDMX_XSSX, ";
sSQL += " XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCBJCL,XLXSBJDMX_FBH,XLXSBJDMX_CPBJXJ,XLXSBJDMX_BJXJKD,XLXSBJDMX_BJXJJJ,RoundFix(XLXSBJDMX_CPBJXJ-XLXSBJDMX_CPBJ,8) as XJBJCE,";
sSQL += " XLXSBJDYZZ0_YZZ01 as TZYZ_BJ01,XLXSBJDYZZ0_YZZ02 as TZYZ_BJ02,XLXSBJDYZZ0_YZZ03 as TZYZ_BJ03,XLXSBJDYZZ0_YZZ04 as TZYZ_BJ04,XLXSBJDYZZ0_YZZ05 as TZYZ_BJ05, ";
sSQL += " XLXSBJDYZZ0_YZZ06 as TZYZ_BJ06,XLXSBJDYZZ0_YZZ07 as TZYZ_BJ07,XLXSBJDYZZ0_YZZ08 as TZYZ_BJ08,XLXSBJDYZZ0_YZZ09 as TZYZ_BJ09,XLXSBJDYZZ0_YZZ10 as TZYZ_BJ10, ";
sSQL += " XLXSBJDYZZ0_YZZ11 as TZYZ_BJ11,XLXSBJDYZZ0_YZZ12 as TZYZ_BJ12,XLXSBJDYZZ0_YZZ13 as TZYZ_BJ13,XLXSBJDYZZ0_YZZ14 as TZYZ_BJ14,XLXSBJDYZZ0_YZZ15 as TZYZ_BJ15, ";
sSQL += " XLXSBJDYZZ0_YZZ16 as TZYZ_BJ16,XLXSBJDYZZ0_YZZ17 as TZYZ_BJ17,XLXSBJDYZZ0_YZZ18 as TZYZ_BJ18,XLXSBJDYZZ0_YZZ19 as TZYZ_BJ19,XLXSBJDYZZ0_YZZ20 as TZYZ_BJ20 ";
sSQL += " from XLXSBJDMX ";
sSQL += " left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID ";
sSQL += " left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID=XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH=XLXSBJDMX_XH ";
sSQL += " left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID ";
sSQL += " left join XLDYDJB on XLDYDJB_DYDJID=XLXSBJDMX_DYDJID ";
sSQL += " left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID ";
sSQL += " left join XLGGB on XLGGB_XLGGID= XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') ";
if (XLBJDUtils.ExistXSCPML())
{
sSQL += " left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') ";
sSQL += " left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' ";
sSQL += " left join XLXSCPML on XLXSCPML_CPMLID= (case when XHMLA.XLXSBJXHML_CPMLID is null then XHMLB.XLXSBJXHML_CPMLID else XHMLA.XLXSBJXHML_CPMLID end )";
}
sSQL += " where XLXSBJDMX_BJDID = '" + sBJDID + "' ";
sSQL += GetCondition();
//此处是为了解决规格关联后重复的问题,使用group by进行去重
sSQL += " group by ";
sSQL += " XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLBZ_XLBZLXMC,XLXSBJDMX_DYDJID,XLXSBJDMX_JLDW,XLXSBJDMX_BJCP,XLXSBJDMX_BJSL,XLXSBJDMX_JGBBJ,XLXSBJDMX_BJSDBZ, ";
sSQL += " XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_TZQBJJE,XLXSBJDMX_TZBJJE,XLXSBJDMX_BJJE,XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE, ";
sSQL += " XLXSBJDMX_CLZL,XLXSBJDMX_BZ,XLXSBJDMX_WHRID,XLXSBJDMX_WHR,XLXSBJDMX_WHSJ,XLXSBJDMX_XH,XLXSBJDMX_XSSX,XLXSBJDMX_FBH,XLXSBJDMX_CPBJXJ,XLXSBJDMX_BJXJKD,XLXSBJDMX_BJXJJJ, ";
sSQL += " XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCBJCL,XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03,XLXSBJDYZZ0_YZZ04,XLXSBJDYZZ0_YZZ05, ";
sSQL += " XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10, ";
sSQL += " XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13,XLXSBJDYZZ0_YZZ14,XLXSBJDYZZ0_YZZ15, ";
sSQL += " XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20 ";
sSQL += " order by XLXSBJDMX_XSSX, XLXSBJDMX_XH ";
return sSQL;
}
private string GetCondition()
{
string sSQL = "";
Dictionary<string, double> dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD();
string sWHere=GetCheckedNodeSQL();
if (!sWHere.Equals(""))
{
sSQL += sWHere;
}
else if (CurSelectedNote != null)
{
//单个型号的查询
if (CurSelectedNote.Value.Trim().Contains("#@#"))
{
string[] sArray = Regex.Split(CurSelectedNote.Value.Trim(), "#@#", RegexOptions.IgnoreCase);
string sXLXHID = sArray[0].Trim();
if (sArray.Length > 1)
{
string sDYDJID = sArray[1].Trim();
if (!(XLBJDUtils.ExistXSCPML() && string.IsNullOrEmpty(sDYDJID)))
{
sSQL += " and XLXSBJDMX_DYDJID = '" + sDYDJID + "'";
}
}
sSQL += " and XLXSBJDMX_XLXHID = '" + sXLXHID + "'";
}
else if (CurSelectedNote.Value.Trim().Contains("#*#"))
{
string[] sArray = CurSelectedNote.Value.Trim().Split(new string[] { "#*#" }, StringSplitOptions.None);
if (sArray.Length > 1)
{
string sBJCP = sArray[1].Trim();
if (!string.IsNullOrEmpty(sBJCP))
{
sSQL += " and XLXSBJDMX_BJCP = '" + sBJCP.Replace("'", "''") + "' ";
}
}
}
//当前产品结构
else if (!CurSelectedNote.Value.Trim().Equals("root1"))
{
if (CurQueryEntity.FieldByName("XTBJCP").Value.ToUpper().Trim().Equals("TRUE") )
{
string sBJCP = CurSelectedNote.Value.Trim();
if (sBJCP == "<NULL>")
{
sSQL += " and isnull(XLXSBJDMX_BJCP,' ') = ' ' ";
}
else
{
sSQL += " and XLXSBJDMX_BJCP = '" + sBJCP + "' ";
}
}
else if (!XLBJDUtils.ExistXSCPML())
{
string sDYDJFL = "";
string sCPYTXX = CurSelectedNote.Value.Trim();
if (sCPYTXX.Equals("<NULL>"))
{
sSQL += " and isnull(XLXHB_CPYT,' ')=' '";
}
else if (sCPYTXX.EndsWith("|<NULL>"))
{
sSQL += " and isnull(XLXHB_CPYT,' ')=' '";
string[] sCPYTList = sCPYTXX.Trim().Split('|');
sDYDJFL = sCPYTList[0].Trim();
if (!sDYDJFL.Equals(""))
{
sSQL += " and XLDYDJB_DYDJFL= '" + sDYDJFL + "' ";
}
}
else
{
string[] sCPYTList = sCPYTXX.Trim().Split('|');
sDYDJFL = sCPYTList[0].Trim();
string sCPYT = sCPYTList[1].Trim();
sSQL += " and XLXHB_CPYT= '" + sCPYT + "' ";
if (!sDYDJFL.Equals(""))
{
sSQL += " and XLDYDJB_DYDJFL= '" + sDYDJFL + "' ";
}
}
}
else
{
string sCPMLMC = CurSelectedNote.Value.Trim();
if (sCPMLMC == "<NULL>")
{
sSQL += " and (case when isnull(XLXSBJDMX_CPMLMC,' ')=' ' then isnull(XLXSCPML_CPMLMC,' ') else isnull(XLXSBJDMX_CPMLMC,' ') end) =' ' ";
}
else if (sCPMLMC.StartsWith("ZH|"))
{
string sCPMLMCS = string.Empty;
for (int i = 0; i < CurSelectedNote.ChildNodes.Count; i++)
{
sCPMLMCS += "'" + CurSelectedNote.ChildNodes[i].Value.Trim() + "',";
}
sCPMLMCS = sCPMLMCS.TrimEnd(',');
sSQL += "and (case when isnull(XLXSBJDMX_CPMLMC,' ')=' ' then isnull(XLXSCPML_CPMLMC,' ') else isnull(XLXSBJDMX_CPMLMC,' ') end) in (" + sCPMLMCS + ")";
}
else
{
sSQL += "and (case when isnull(XLXSBJDMX_CPMLMC,' ')=' ' then isnull(XLXSCPML_CPMLMC,' ') else isnull(XLXSBJDMX_CPMLMC,' ') end) = '" + sCPMLMC + "'";
}
}
}
}
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("CPYT").Value.Trim()))
{
sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXHB_CPYT", CurQueryEntity.FieldByName("CPYT").Value.Trim());
}
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLJGID").Value.Trim()))
{
sSQL += " and XLGGB_XXJGID = '" + CurQueryEntity.FieldByName("XLJGID").Value.Trim() + "' ";
}
//主芯截面范围
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("ZJMS").Value.Trim()) && !CurQueryEntity.FieldByName("ZJMS").Value.Trim().Equals("0"))
{
sSQL += " and ((charindex('/',XLGGB_DTJMZHID)<=0 ";
sSQL += string.Format("and convert(float,XLGGB_DTJMZHID)>={0} ", CurQueryEntity.FieldByName("ZJMS").Value.Trim());
sSQL += " ) ";
sSQL += " or (charindex('/',XLGGB_DTJMZHID)>0 ";
sSQL += string.Format("and convert(float,substring(XLGGB_DTJMZHID,0,charindex('/',XLGGB_DTJMZHID)))>={0} ", CurQueryEntity.FieldByName("ZJMS").Value.Trim());
sSQL += " ) ";
sSQL += " ) ";
}
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("ZJMZ").Value.Trim()) && !CurQueryEntity.FieldByName("ZJMZ").Value.Trim().Equals("0"))
{
sSQL += " and ((charindex('/',XLGGB_DTJMZHID)<=0 ";
sSQL += string.Format("and convert(float,XLGGB_DTJMZHID)<='{0}' ", CurQueryEntity.FieldByName("ZJMZ").Value.Trim());
sSQL += " ) ";
sSQL += " or (charindex('/',XLGGB_DTJMZHID)>0 ";
sSQL += string.Format("and convert(float,substring(XLGGB_DTJMZHID,0,charindex('/',XLGGB_DTJMZHID)))<='{0}' ", CurQueryEntity.FieldByName("ZJMZ").Value.Trim());
sSQL += " ) ";
sSQL += " ) ";
}
//报价数量
if (XLBJDUtils.GetDefaultBJU003(GetOption("BJU003")).Equals("M"))
{
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("BJSLS").Value.Trim()) && !CurQueryEntity.FieldByName("BJSLS").Value.Trim().Equals("0"))
{
sSQL += " and (case when XLXSBJDMX_JLDW in ('Km','千米') then 1000.0 ";
foreach (string sKey in dicLenJLDWTD.Keys)
{
sSQL += string.Format(" when XLXSBJDMX_JLDW='{0}' then {1} ", sKey, dicLenJLDWTD[sKey]);
}
sSQL += string.Format(" else 1.0 end)*XLXSBJDMX_BJSL >={0} ", CurQueryEntity.FieldByName("BJSLS").Value.Trim());
}
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("BJSLZ").Value.Trim()) && !CurQueryEntity.FieldByName("BJSLZ").Value.Trim().Equals("0"))
{
sSQL += " and (case when XLXSBJDMX_JLDW in ('Km','千米') then 1000.0 ";
foreach (string sKey in dicLenJLDWTD.Keys)
{
sSQL += string.Format(" when XLXSBJDMX_JLDW='{0}' then {1} ", sKey, dicLenJLDWTD[sKey]);
}
sSQL += string.Format(" else 1.0 end)*XLXSBJDMX_BJSL <={0} ", CurQueryEntity.FieldByName("BJSLZ").Value.Trim());
}
}
else
{
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("BJSLS").Value.Trim()) && !CurQueryEntity.FieldByName("BJSLS").Value.Trim().Equals("0"))
{
sSQL += " and (case when XLXSBJDMX_JLDW in ('M','米') then 0.001 ";
foreach (string sKey in dicLenJLDWTD.Keys)
{
sSQL += string.Format(" when XLXSBJDMX_JLDW='{0}' then 0.001*{1} ", sKey, dicLenJLDWTD[sKey]);
}
sSQL += string.Format(" else 1.0 end)*XLXSBJDMX_BJSL >={0} ", CurQueryEntity.FieldByName("BJSLS").Value.Trim());
}
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("BJSLZ").Value.Trim()) && !CurQueryEntity.FieldByName("BJSLZ").Value.Trim().Equals("0"))
{
sSQL += " and (case when XLXSBJDMX_JLDW in ('M','米') then 0.001 ";
foreach (string sKey in dicLenJLDWTD.Keys)
{
sSQL += string.Format(" when XLXSBJDMX_JLDW='{0}' then 0.001*{1} ", sKey, dicLenJLDWTD[sKey]);
}
sSQL += string.Format(" else 1.0 end)*XLXSBJDMX_BJSL <={0} ", CurQueryEntity.FieldByName("BJSLZ").Value.Trim());
}
}
//报价金额
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("BJJES").Value.Trim()) && !CurQueryEntity.FieldByName("BJJES").Value.Trim().Equals("0"))
{
sSQL += string.Format(" and XLXSBJDMX_BJJE >={0} ", CurQueryEntity.FieldByName("BJJES").Value.Trim());
}
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("BJJEZ").Value.Trim()) && !CurQueryEntity.FieldByName("BJJEZ").Value.Trim().Equals("0"))
{
sSQL += string.Format(" and XLXSBJDMX_BJJE <={0} ", CurQueryEntity.FieldByName("BJJEZ").Value.Trim());
}
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("DJS").Value.Trim()) && !CurQueryEntity.FieldByName("DJS").Value.Trim().Equals("0"))
{
sSQL += string.Format(" and XLXSBJDMX_LSJGBBJ >={0} ", CurQueryEntity.FieldByName("DJS").Value.Trim());
}
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("DJZ").Value.Trim()) && !CurQueryEntity.FieldByName("DJZ").Value.Trim().Equals("0"))
{
sSQL += string.Format(" and XLXSBJDMX_LSJGBBJ <={0} ", CurQueryEntity.FieldByName("DJZ").Value.Trim());
}
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JMBGS").Value.Trim()))
{
sSQL += "and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_JMBGS", CurQueryEntity.FieldByName("JMBGS").Value.Trim());
}
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLGGID").Value.Trim()))
{
sSQL += " and XLXSBJDMX_XLGGID like '%"+ CurQueryEntity.FieldByName("XLGGID").Value.Trim()+"%'";
}
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("BH").Value.Trim()))
{
sSQL += "and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_FBH", CurQueryEntity.FieldByName("BH").Value.Trim());
}
if (CurQueryEntity.FieldByName("XJBJCEWF").Value.Trim().ToUpper().Equals("TRUE"))
sSQL += " and (XLXSBJDMX_CPBJXJ-XLXSBJDMX_CPBJ)<0 ";
return sSQL;
}
private void InitGrid(int iXSWS, string sBJDYZText)
{
if (sBJDYZText.Equals(""))
return;
if (grdContentGrid.Columns.Count > 12)//如果列数大于8,说明已经执行过InitGrid,无需重复执行
return;
string sCPBJMRXSWS = PageParam.GetRTrimString("CPBJMRXSWS");
//显示报价单行情料价栏目
if (PageParam.GetRTrimString("XSBJDHQLJ").Equals("Y"))
grdContentGrid.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = true;
else
grdContentGrid.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = false;
//显示价格表行情料价栏目
if (PageParam.GetRTrimString("XSLJ").Equals("Y"))
grdContentGrid.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = true;
else
grdContentGrid.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = false;
//显示价格表基价栏目
if (PageParam.GetRTrimString("XSJJ").Equals("Y"))
grdContentGrid.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = true;
else
grdContentGrid.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = false;
string[] sBJDYZ = sBJDYZText.Split(',');
string sDataField = "";
string sHeaderText = "";
int dWidth = 80;
int dNumberDecimalPlace = iXSWS;
bool fVisible = true;
for (int i = 0; i < sBJDYZ.Length; i++)
{
sDataField = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim();
if (XLBJDUtils.GetYZXXByYZID(sBJDYZ[i].Split('|')[0].Trim()).XLXSTZYZ_TJLX == "1")
sHeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(MD)", "(%)").Replace("(DD)", "(%)").Replace("(XX)", "(不参与调价)").Replace("(MX)", "").Replace("(DX)", "").Replace("(SX)", "(%)").Replace("(MP)", "(%)");
else
sHeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(JJ)", "").Replace("(KD)", "(%)").Replace("(MP)", "(%)");
dWidth = sHeaderText.Length < 8 ? 80 : sHeaderText.Length * 10 + 20;
if (sBJDYZ[i].Trim().EndsWith("(MX)") || sBJDYZ[i].Trim().EndsWith("(DX)"))
{
dNumberDecimalPlace = 4;
}
else
{
dNumberDecimalPlace = 2;
}
fVisible = true;
if (!sBJDYZ[i].Trim().EndsWith("()"))
{
if (sBJDYZ[i].Trim().EndsWith("(XX)"))
{
fVisible = true;
}
else
{
fVisible = true;
}
}
else
{
fVisible = false;
}
AddColumn(0, sDataField, sHeaderText, dNumberDecimalPlace, dWidth, fVisible);
}
sHeaderText = "调整前报价";
sDataField = "XLXSBJDMX_TZQCPBJ";
dWidth = 80;
dNumberDecimalPlace = CMISproConvert.StrToInt(sCPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS;//保留精度高的
fVisible = false;
AddColumn(0, sDataField, sHeaderText, dNumberDecimalPlace, dWidth, fVisible);
sHeaderText = "调整报价(%)";
sDataField = "XLXSBJDMX_TZCPBJ";
dWidth = 80;
dNumberDecimalPlace = 6;
if (PageParam.GetRawString("XSTZJG").Equals("Y"))
fVisible = true;
else
fVisible = false;
AddColumn(0, sDataField, sHeaderText, dNumberDecimalPlace, dWidth, fVisible);
//添加线缆产品报价列
sHeaderText = "报价";
sDataField = "XLXSBJDMX_CPBJ";
dWidth = 80;
dNumberDecimalPlace = CMISproConvert.StrToInt(sCPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS;//保留精度高的
fVisible = true;
AddColumn(0, sDataField, sHeaderText, dNumberDecimalPlace, dWidth, fVisible);
//添加报价金额列
sHeaderText = "报价金额";
sDataField = "XLXSBJDMX_TZQBJJE";
dWidth = 80;
dNumberDecimalPlace = 2;
if (PageParam.GetRawString("XSTZJE").Equals("Y"))
fVisible = true;
else
fVisible = false;
AddColumn(0, sDataField, sHeaderText, dNumberDecimalPlace, dWidth, fVisible);
sHeaderText = "调整金额(元)";
sDataField = "XLXSBJDMX_TZBJJE";
dWidth = 80;
dNumberDecimalPlace = 2;
if (PageParam.GetRawString("XSTZJE").Equals("Y"))
fVisible = true;
else
fVisible = false;
AddColumn(0, sDataField, sHeaderText, dNumberDecimalPlace, dWidth, fVisible);
if (PageParam.GetRawString("XSTZJE").Equals("Y"))
sHeaderText = "调整后报价金额";
else
sHeaderText = "报价金额";
sDataField = "XLXSBJDMX_BJJE";
dWidth = 90;
dNumberDecimalPlace = 2;
fVisible = true;
AddColumn(0, sDataField, sHeaderText, dNumberDecimalPlace, dWidth, fVisible);
sHeaderText = "材料重量";
sDataField = "XLXSBJDMX_CLZL";
dWidth = 80;
dNumberDecimalPlace = 3;
fVisible = true;
AddColumn(0, sDataField, sHeaderText, dNumberDecimalPlace, dWidth, fVisible);
sHeaderText = "料价价差率(%)";
sDataField = "XLXSBJDMX_CLCBJCL";
dWidth = 90;
dNumberDecimalPlace = 2;
if (PageParam.GetRTrimString("XSLJJCL").Equals("Y"))
fVisible = true;
else
fVisible = false;
AddColumn(0, sDataField, sHeaderText, dNumberDecimalPlace, dWidth, fVisible);
//添加利润率%列
sHeaderText = "表价价差率(%)";
sDataField = "XLXSBJDMX_JGBBJJCL";
dWidth = 90;
dNumberDecimalPlace = 2;
if (PageParam.GetRTrimString("XSJCL").Equals("Y"))
fVisible = true;
else
fVisible = false;
AddColumn(0, sDataField, sHeaderText, dNumberDecimalPlace, dWidth, fVisible);
//添加利润额列
sHeaderText = "表价价差额";
sDataField = "XLXSBJDMX_JGBBJJCE";
dWidth = 80;
dNumberDecimalPlace = 2;
fVisible = false;
AddColumn(0, sDataField, sHeaderText, dNumberDecimalPlace, dWidth, fVisible);
if (!PageParam.GetRTrimString("BJFLID").Equals(""))
{
if (XLBJDUtils.GetBJFLXX(PageParam.GetRTrimString("BJFLID")).XSBHChecked())
{
//添加包号
sHeaderText = "包号";
sDataField = "XLXSBJDMX_FBH";
dWidth = 100;
fVisible = true;
AddColumn(0, sDataField, sHeaderText, dWidth, fVisible);
}
if (XLBJDUtils.GetBJFLXX(PageParam.GetRTrimString("BJFLID")).XSCPBJXJChecked())
{
sHeaderText = "产品报价限价";
sDataField = "XLXSBJDMX_CPBJXJ";
dWidth = 80;
dNumberDecimalPlace = CMISproConvert.StrToInt(sCPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS;//保留精度高的
fVisible = true;
AddColumn(0, sDataField, sHeaderText, dNumberDecimalPlace, dWidth, fVisible);
sHeaderText = "报价限价扣点";
sDataField = "XLXSBJDMX_BJXJKD";
dWidth = 80;
dNumberDecimalPlace = 2;
fVisible = true;
AddColumn(0, sDataField, sHeaderText, dNumberDecimalPlace, dWidth, fVisible);
sHeaderText = "报价限价加价";
sDataField = "XLXSBJDMX_BJXJJJ";
dWidth = 80;
dNumberDecimalPlace = 6;
fVisible = true;
AddColumn(0, sDataField, sHeaderText, dNumberDecimalPlace, dWidth, fVisible);
sHeaderText = "限价报价差额";
sDataField = "XJBJCE";
dWidth = 80;
dNumberDecimalPlace = 2;
fVisible = true;
AddColumn(0, sDataField, sHeaderText, dNumberDecimalPlace, dWidth, fVisible);
}
}
//添加备注列
sHeaderText = "备注";
sDataField = "XLXSBJDMX_BZ";
dWidth = 200;
fVisible = true;
AddColumn(0, sDataField, sHeaderText, dWidth, fVisible);
//添加报价锁定列
sHeaderText = "报价锁定";
sDataField = "XLXSBJDMX_BJSDBZ";
dWidth = 80;
fVisible = true;
AddColumn(sDataField, sHeaderText, dWidth, fVisible);
//添加维护人工号列
sHeaderText = "维护人工号";
sDataField = "XLXSBJDMX_WHRID";
dWidth = 70;
fVisible = false;
AddColumn(0, sDataField, sHeaderText, dWidth, fVisible);
//添加维护人列
sHeaderText = "维护人";
sDataField = "XLXSBJDMX_WHR";
dWidth = 72;
fVisible = false;
AddColumn(0, sDataField, sHeaderText, dWidth, fVisible);
//添加维护时间列
sHeaderText = "维护时间";
sDataField = "XLXSBJDMX_WHSJ";
dWidth = 125;
fVisible = false;
AddColumn(0, sDataField, sHeaderText, TDateTimeEditKinds.dtDateTime, fVisible);
//添加报价单序号
sHeaderText = "序号";
sDataField = "XLXSBJDMX_XH";
dWidth = 80;
dNumberDecimalPlace = 0;
fVisible = false;
AddColumn(0, sDataField, sHeaderText, dNumberDecimalPlace, dWidth, fVisible);
sHeaderText = "PX0";
sDataField = "PX0";
dWidth = 10;
dNumberDecimalPlace = 0;
fVisible = false;
AddColumn(0, sDataField, sHeaderText, dNumberDecimalPlace, dWidth, fVisible);
}
private string GetCheckedNodeSQL()
{
string sWhere="";
string sBJFLID = PageParam.GetRTrimString("BJFLID");
gtTreeViewNodeCollection Nodecol = this.CurMaster.LeftTreeView.Nodes;
TraverseNodes(Nodecol,ref sWhere);
if (sWhere.Equals(""))
return sWhere;
return "and (1<>1 "+sWhere+" )";
}
// 新增递归方法遍历所有节点
private void TraverseNodes(gtTreeViewNodeCollection nodes,ref string sWhere)
{
foreach (gtTreeViewNode node in nodes)
{
// 检查是否为叶子节点且被选中
if (node.ChildNodes.Count == 0 && node.Checked)
{
ProcessLeafNode(node,ref sWhere); // 处理叶子节点
}
else
{
TraverseNodes(node.ChildNodes,ref sWhere); // 递归遍历子节点
}
}
}
private void ProcessLeafNode(gtTreeViewNode node,ref string sWhere)
{
//研发自测:王正阳 2026/05/07 20:30:14
if (node.Value.Trim().Contains("#@#"))
{
string[] sArray = Regex.Split(node.Value.Trim(), "#@#", RegexOptions.IgnoreCase);
string sXLXHID = sArray[0].Trim();
sWhere += "or ( ";
if (sArray.Length > 1)
{
string sDYDJID = sArray[1].Trim();
sWhere += " XLXSBJDMX_XLXHID = '" + sXLXHID + "'";
if (!(XLBJDUtils.ExistXSCPML() && string.IsNullOrEmpty(sDYDJID)))
{
sWhere += " and XLXSBJDMX_DYDJID = '" + sDYDJID + "'";
}
}
else
{
sWhere += " XLXSBJDMX_XLXHID = '" + sXLXHID + "'";
}
sWhere += " )";
}
else if (node.Value.Trim().Contains("#*#"))
{
string[] sArray = node.Value.Trim().Split(new string[] { "#*#" }, StringSplitOptions.None);
if (sArray.Length > 1)
{
string sType = sArray[0].Trim();
string sBJCP = sArray[1].Trim();
if (sType == "BJCP")
{
sWhere += " or ( ";
if (sBJCP == "<NULL>")
{
sWhere += " isnull(XLXSBJDMX_BJCP,' ') = ' ' ";
}
else
{
sWhere += " XLXSBJDMX_BJCP = '" + sBJCP.Replace("'", "''") + "' ";
}
sWhere += " ) ";
}
}
}
}
#endregion
#region GridView增加列
/// <summary>
/// 设置etString列的属性
/// </summary>
/// <param name="sDataField"></param>
/// <param name="HeadText"></param>
/// <param name="Width"></param>
private void AddColumn(int index, string sDataField, string HeadText, int Width, bool fVisible)
{
BoundField Column = new BoundField();
Column.DataField = sDataField;
Column.HeaderText = HeadText;
Column.ItemStyle.Width = (Unit)Width;
Column.HeaderStyle.Width = (Unit)Width;
Column.Visible = fVisible;
grdContentGrid.Columns.Add(Column);
gtGridView_Column ColumnEx = new gtGridView_Column();
ColumnEx.DataField = sDataField;
ColumnEx.EditType = TEditType.etString;
ColumnEx.ShowHint = true;
grdContentGrid.ColumnsEx.Insert(index, ColumnEx);
}
/// <summary>
/// 设置etNumber列的属
/// </summary>
/// <param name="sDataField"></param>
/// <param name="HeadText"></param>
/// <param name="NumberDecimalPlace"></param>
/// <param name="Width"></param>
private void AddColumn(int index, string sDataField, string HeadText, int NumberDecimalPlace, int Width, bool IsVisible)
{
BoundField Column = new BoundField();
Column.DataField = sDataField;
Column.HeaderText = HeadText;
Column.ItemStyle.Width = Unit.Pixel(Width);
Column.HeaderStyle.Width = Unit.Pixel(Width);
Column.ItemStyle.HorizontalAlign = HorizontalAlign.Right;
Column.Visible = IsVisible;
grdContentGrid.Columns.Add(Column);
gtGridView_Column ColumnEx = new gtGridView_Column();
ColumnEx.DataField = sDataField;
ColumnEx.EditType = TEditType.etNumber;
//ColumnEx.ShowHint = true;
ColumnEx.NumberDecimalPlace = NumberDecimalPlace;
grdContentGrid.ColumnsEx.Insert(index, ColumnEx);
}
/// <summary>
/// 设置etDateTime列的属性
/// </summary>
/// <param name="sDataField"></param>
/// <param name="HeadText"></param>
/// <param name="DateTimeKind"></param>
/// <param name="Width"></param>
private void AddColumn(int index, string sDataField, string HeadText, TDateTimeEditKinds DateTimeKind, bool fVisible)
{
BoundField Column = new BoundField();
Column.DataField = sDataField;
Column.HeaderText = HeadText;
Column.ItemStyle.Width = (Unit)(DateTimeKind == TDateTimeEditKinds.dtDateTime ? 125 : 72);
Column.HeaderStyle.Width = (Unit)(DateTimeKind == TDateTimeEditKinds.dtDateTime ? 125 : 72);
Column.Visible = fVisible;
grdContentGrid.Columns.Add(Column);
gtGridView_Column ColumnEx = new gtGridView_Column();
ColumnEx.DataField = sDataField;
ColumnEx.EditType = TEditType.etDateTime;
ColumnEx.DateTimeEditKins = DateTimeKind;
grdContentGrid.ColumnsEx.Insert(index, ColumnEx);
}
/// <summary>
/// 设置etCheckBox列的属性
/// </summary>
/// <param name="sDataField"></param>
/// <param name="HeadText"></param>
/// <param name="Width"></param>
/// <param name="CheckBox"></param>
private void AddColumn(string sDataField, string HeadText, int Width, bool bVisible)
{
BoundField Column = new BoundField();
Column.DataField = sDataField;
Column.HeaderText = HeadText;
Column.ItemStyle.Width = (Unit)Width;
Column.HeaderStyle.Width = (Unit)Width;
Column.Visible = bVisible;
grdContentGrid.Columns.Add(Column);
gtGridView_Column ColumnEx = new gtGridView_Column();
ColumnEx.DataField = sDataField;
ColumnEx.EditType = TEditType.etCheckBox;
grdContentGrid.ColumnsEx.Insert(0, ColumnEx);
}
#endregion
#region 控件事件
protected void btnPLSCMX_Click(object sender, EventArgs e)
{
string sBJDID = PageParam.GetRTrimString("BJDID");
string sBJFLID = PageParam.GetRTrimString("BJFLID");
string sJCLLX = PageParam.GetRTrimString("JCLLX");
string sLJJCLLX = PageParam.GetRTrimString("LJJCLLX");
string sCPBJMRXSWS = PageParam.GetRTrimString("CPBJMRXSWS");
string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPBJMRXSWS)).ToString("F9");
string sZDXJJCLLX = PageParam.GetRTrimString("ZDXJJCLLX");
string sJYF = PageParam.GetRTrimString("JYF");
string sYFWLID = PageParam.GetRTrimString("YFWLID");
string sBJHYF = PageParam.GetRTrimString("BJHYF");
bool bSCSC = false;
string sSCFW = "勾选明细";
if (!(grdContentGrid.CheckBox && !String.IsNullOrEmpty(grdContentGrid.CheckedRowIndexs)))
{
sSCFW = "所查明细";
bSCSC = true;
}
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sBJDXHList = "";
int VnewID = 0;
if (bSCSC)
{
#region 创建临时表
DateTime TimeStamp = MISproUtils.GetServerTime();
VnewID = CMISproDataBase.GetMaxXH("DBERP", "V_BJDXH", "V_BJDXH_ID", "") + 1;
base.InitEntityByCondition();
SQL.Clear();
SQL.Add(" insert into V_BJDXH(V_BJDXH_ID,V_BJDXH_TIMESTAMP,V_BJDXH_BJDID,V_BJDXH_BJDXH )");
SQL.Add(" select distinct :pID,:pTime,XLXSBJDMX_BJDID, XLXSBJDMX_XH ");
SQL.Add(" from XLXSBJDMX ");
SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID ");
SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID=XLXSBJDMX_DYDJID ");
SQL.Add(" left join XLGGB on XLGGB_XLGGID=replace(XLXSBJDMX_XLGGID,'*','×') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') ");
if (XLBJDUtils.ExistXSCPML())
{
SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') ");
SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' ");
SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID= (case when XHMLA.XLXSBJXHML_CPMLID is null then XHMLB.XLXSBJXHML_CPMLID else XHMLA.XLXSBJXHML_CPMLID end ) ");
}
SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID ");
SQL.Add(GetCondition());
SQL.ParamByName("pID").Value = VnewID;
SQL.ParamByName("pTime").Value = TimeStamp;
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID");
dberp.ExecSQL(SQL);
#endregion
}
else
{
if (!(grdContentGrid.CheckBox && !String.IsNullOrEmpty(grdContentGrid.CheckedRowIndexs)))
{
return;
}
string[] sTempArr = grdContentGrid.CheckedRowIndexs.Split(new char[] { ',' });
foreach (string sIndex in sTempArr)
{
int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim());
string sBJDXH = grdContentGrid.DataKeys[iRowIndex]["XLXSBJDMX_XH"].ToString().Trim();
if (!sBJDXH.Equals("") && !sBJDXH.Equals("0"))
{
sBJDXHList += sBJDXH + ",";
}
}
sBJDXHList = sBJDXHList.TrimEnd(',');
}
string sWarning = "将删除" + sSCFW + ",是否继续?";
Confirm.Register("IsQD", sWarning);
Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No;
if (Confirm.GetValue("IsQD").Trim().Equals(""))
{
Confirm.Ask("IsQD");
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("N"))
{
//表示进行了提示并选择了取消,直接返回或其他处理
Confirm.Clear();
if (VnewID > 0)
{
#region 删除临时表
SQL.Clear();
SQL.Add("delete from V_BJDXH where V_BJDXH_ID=:pVID and V_BJDXH_BJDID =:pBJDID ");
SQL.ParamByName("pVID").Value = VnewID;
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
#endregion
}
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("Y"))
{
Confirm.Clear();
SQL.Clear();
SQL.Add(" delete from XLXSBJDMX where XLXSBJDMX_BJDID = :pBJDID ");
if (!sBJDXHList.Equals(""))
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList));
if (VnewID > 0)
{
SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) ");
SQL.ParamByName("pID").Value = VnewID;
}
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
SQL.Clear();
SQL.Add(" delete from XLXSBJDYZZ0 where XLXSBJDYZZ0_BJDID = :pBJDID ");
if (!sBJDXHList.Equals(""))
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList));
if (VnewID > 0)
{
SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDYZZ0_BJDID and V_BJDXH_BJDXH = XLXSBJDYZZ0_XH) ");
SQL.ParamByName("pID").Value = VnewID;
}
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
SQL.Clear();
SQL.Add(" delete from XLXSBJDJJYZ where XLXSBJDJJYZ_BJDID = :pBJDID ");
if (!sBJDXHList.Equals(""))
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDJJYZ_XH", sBJDXHList));
if (VnewID > 0)
{
SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDJJYZ_BJDID and V_BJDXH_BJDXH = XLXSBJDJJYZ_XH) ");
SQL.ParamByName("pID").Value = VnewID;
}
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
SQL.Clear();
SQL.Add(" delete from XLXSBJDMXFD where XLXSBJDMXFD_BJDID = :pBJDID ");
if (!sBJDXHList.Equals(""))
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMXFD_BJDXH", sBJDXHList));
if (VnewID > 0)
{
SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMXFD_BJDID and V_BJDXH_BJDXH = XLXSBJDMXFD_BJDXH) ");
SQL.ParamByName("pID").Value = VnewID;
}
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
SQL.Clear();
SQL.Add(" delete from XLXSBJDMXZP where XLXSBJDMXZP_BJDID = :pBJDID ");
if (!sBJDXHList.Equals(""))
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMXZP_BJDXH", sBJDXHList));
if (VnewID > 0)
{
SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMXZP_BJDID and V_BJDXH_BJDXH = XLXSBJDMXZP_BJDXH) ");
SQL.ParamByName("pID").Value = VnewID;
}
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
SQL.Clear();
SQL.Add(" delete from XLXSBJDGYJD where XLXSBJDGYJD_BJDID = :pBJDID ");
if (!sBJDXHList.Equals(""))
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDGYJD_BJDXH", sBJDXHList));
if (VnewID > 0)
{
SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDGYJD_BJDID and V_BJDXH_BJDXH = XLXSBJDGYJD_BJDXH) ");
SQL.ParamByName("pID").Value = VnewID;
}
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
XLBJDUtils.UpdateXLXSBJD(dberp, SQL, sBJDID, sJCLLX, sLJJCLLX, sZDXJJCLLX, sJYF, "", "", sYFWLID, sBJHYF);
if (VnewID > 0)
{
#region 删除临时表
SQL.Clear();
SQL.Add("delete from V_BJDXH where V_BJDXH_ID=:pVID and V_BJDXH_BJDID =:pBJDID ");
SQL.ParamByName("pVID").Value = VnewID;
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
#endregion
}
//刷新
moduleGV_PageIndexChanging(null, null);
FormAreaUpdate();
}
}
protected void btnPLTJ_OnDropDown(object sender, EventArgs e)
{
btnPLTJ.Nodes.Clear();
btnPLTJ.Nodes.Add(new gtTreeNode("BJSD", "报价锁定"));
btnPLTJ.Nodes.Add(new gtTreeNode("BJSD-SD", "锁定", "BJSD"));
btnPLTJ.Nodes.Add(new gtTreeNode("BJSD-JS", "解锁", "BJSD"));
//固定节点===“报价下浮%”、“报价上浮%”
string sPLTJKXX = XLBJDUtils.GetPLTJKXX();
if (sPLTJKXX.Contains(",BJXF,"))
btnPLTJ.Nodes.Add(new gtTreeNode("BJXF", "报价下浮%"));
if (sPLTJKXX.Contains(",BJSF,"))
btnPLTJ.Nodes.Add(new gtTreeNode("BJSF", "报价上浮%"));
string sBJFLID = PageParam.GetRTrimString("BJFLID");
string sYZWPIDList = PageParam.GetRTrimString("YZWPIDList");
string sReadOnlyYZ = PageParam.GetRTrimString("ReadOnlyYZ");
string sZDWPIDList = PageParam.GetRTrimString("ZDWPIDList");
string sWPID = PageParam.GetRTrimString("WPID");
string[] sReadOnly = sReadOnlyYZ.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
string[] sZDWPIDs = sZDWPIDList.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID);
if (!bjflxx.XLXSBJFL_JMBGSYZID.Equals(""))
{
string sJMBGS = "截面比公式";
if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JMBGSBM.Trim()))
sJMBGS = bjflxx.XLXSBJFL_JMBGSBM.Trim();
btnPLTJ.Nodes.Add(new gtTreeNode("JMBGS", sJMBGS));
}
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
DataSet ds = null;
SQL.Clear();
SQL.Add("select XLXSBJFL_LJJCLLX from XLXSBJFL where XLXSBJFL_BJFLID = :pBJFLID and ISNULL(XLXSBJFL_TYBZ,'N') <>'Y' ");
SQL.ParamByName("pBJFLID").Value = sBJFLID;
ds = dberp.OpenDataSet(SQL);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
if (!ds.Tables[0].Rows[0][0].ToString().Trim().Equals(""))
{
btnPLTJ.Nodes.Add(new gtTreeNode("LJJCLLX", "料价价差率%"));
}
}
if (XLBJDUtils.GetBJFLXX(sBJFLID).XSCPBJXJChecked())
btnPLTJ.Nodes.Add(new gtTreeNode("BJXJ", "产品报价限价"));
if (XLBJDUtils.GetBJFLXX(sBJFLID).XLXSBJFL_TZYLBL.Equals("Y"))
{
btnPLTJ.Nodes.Add(new gtTreeNode("CLYLBL", "材料用量比例"));
}
SQL.Clear();
SQL.Add("select XLXSBJFLYZ_YZID,XLXSTZYZ_YZMC,XLXSTZYZ_JJFS,XLXSTZYZ_TJYS, ");
SQL.Add(" case when (XLXSTZYZ_TJYS=' ' or isnull(XLXSTZYZ_BCYTJ,'N') = 'Y' ) then 1 else 2 end as SY");
SQL.Add(" from XLXSBJFLYZ");
SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=XLXSBJFLYZ_YZID");
SQL.Add(" where XLXSBJFLYZ_BJFLID=:pBJFLID");
//SQL.Add(" and (XLXSTZYZ_TJYS=' ' or isnull(XLXSTZYZ_BCYTJ,'N') = 'Y' )");
//and (因子值只读='N' or (因子值只读='Y' and isnull(只读事务,' ')<>' ' and ','||rtrim(只读事务)||',' not like '%,0020,%'))
SQL.Add(" and (isnull(XLXSTZYZ_YZZZD, 'N')='N' or ");
SQL.Add(" ( isnull(XLXSTZYZ_YZZZD, 'N')='Y' and isnull(XLXSTZYZ_ZDWPIDLIST,' ')<>' ' and ','||rtrim(isnull(XLXSTZYZ_ZDWPIDLIST,' '))||',' not like :pCurWPID ) ");
SQL.Add(" ) ");
SQL.Add(" order by SY,XLXSTZYZ_XSXH,XLXSTZYZ_YZID");
SQL.ParamByName("pBJFLID").Value = sBJFLID;
SQL.ParamByName("pCurWPID").Value = "%," + sWPID + ",%";
ds = dberp.OpenDataSet(SQL);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string sYZID = ds.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim();
string sYZMC = ds.Tables[0].Rows[i]["XLXSTZYZ_YZMC"].ToString().Trim();
string sJJFS = ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim();
string sSY = ds.Tables[0].Rows[i]["SY"].ToString().Trim();
string sTJYS = ds.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim();
string sYZIDChild = sYZID;
bool bYFYZ = false;//是否运费因子,“100860071|线缆销售报价单运费”模块适用因子
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSTZYZ where XLXSTZYZ_TJMDID = 100860071 and XLXSTZYZ_YZID = '{0}' and XLXSTZYZ_MXBH='BJD'", sYZID)))
{
bYFYZ = true;
}
if (bYFYZ)
{
continue;
}
bool bPFYZ = false;//是否盘费因子,“100860080|线缆销售报价单盘费”模块适用因子
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSTZYZ where XLXSTZYZ_TJMDID = 100860080 and XLXSTZYZ_YZID = '{0}' and XLXSTZYZ_MXBH='BJD'", sYZID)))
{
bPFYZ = true;
}
if (bPFYZ)
{
continue;
}
bool bKJFYZ = false;//是否开机费因子,“102585000|开机费”模块适用因子
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSTZYZ where XLXSTZYZ_TJMDID = 102585000 and XLXSTZYZ_YZID = '{0}' and XLXSTZYZ_MXBH='BJD'", sYZID)))
{
bKJFYZ = true;
}
if (bKJFYZ)
{
continue;
}
string sText = sYZMC;
if (sJJFS.Equals("JD") || sJJFS.Equals("KD") || sJJFS.Equals("SX")||sJJFS.Equals("DD") || sJJFS.Equals("MD"))
{
sText = sText + "(%)";
}
else if (sJJFS.Equals("JJ"))
{
if (XLBJDUtils.GetYZXXByYZID(sYZID).XLXSTZYZ_TJLX == "1")
sText = sText + "(元)";
}
if (sSY.Equals("2") && !sTJYS.Equals("C"))
{
btnPLTJ.Nodes.Add(new gtTreeNode("Root|" + sYZID, sText));
if (!string.IsNullOrEmpty(sTJYS))
btnPLTJ.Nodes.Add(new gtTreeNode("CZ|" + sYZID + "|" + sText + "|" + sTJYS, "重置", "Root|" + sYZID));
sYZIDChild = "CL" + sYZIDChild;
btnPLTJ.Nodes.Add(new gtTreeNode(sYZIDChild, "清空", "Root|" + sYZID));
}
else if (sTJYS.Equals("C"))
{
if (CheckModule("100860072"))
{
sYZIDChild = "BJD_" + sYZIDChild;
btnPLTJ.Nodes.Add(new gtTreeNode(sYZIDChild, sText));
}
else
{
if (ds.Tables[0].Rows[i]["SY"].ToString().Trim().Equals("2"))
{
btnPLTJ.Nodes.Add(new gtTreeNode("Root|" + sYZID, sText));
if (!string.IsNullOrEmpty(sTJYS))
btnPLTJ.Nodes.Add(new gtTreeNode("CZ|" + sYZID + "|" + sText + "|" + sTJYS, "重置", "Root|" + sYZID));
sYZIDChild = "CL" + sYZIDChild;
btnPLTJ.Nodes.Add(new gtTreeNode(sYZIDChild, "清空", "Root|" + sYZID));
}
}
}
else
{
btnPLTJ.Nodes.Add(new gtTreeNode(sYZID, sText));
}
}
MenuAreaUpdate();
}
protected void btnPLTJ_MenuItemClick(object sender, string ItemIndex)
{
string sYZID = ItemIndex;
if (!(grdContentGrid.CheckBox && !String.IsNullOrEmpty(grdContentGrid.CheckedRowIndexs)))
txtPLSZAll.Value = "C";
else
txtPLSZAll.Value = "N";
txtPLSZYZList.Value = "";
string sBJFLID = PageParam.GetRTrimString("BJFLID");
string sBJDID = PageParam.GetRTrimString("BJDID");
BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID);
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
if (sYZID.Equals("JMBGS"))
{
SQL.Clear();
SQL.Add("select XLXSBJDYZZ_YZZ,XLXSBJDYZZ_MINC,XLXSBJDYZZ_MAXC,XLXSTZYZ_YZMC,XLXSTZYZ_MRTJFW,XLXSTZYZ_JJFS,XLXSTZYZ_TJYS,isnull(XLXSTZYZ_BCYTJ,'N') as XLXSTZYZ_BCYTJ from XLXSTZYZ");
SQL.Add(" left join XLXSBJDYZZ on XLXSBJDYZZ_JGBID=XLXSTZYZ_JGBID and XLXSBJDYZZ_YZID=XLXSTZYZ_YZID");
SQL.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=:pYZID ");
SQL.ParamByName("pYZID").Value = bjflxx.XLXSBJFL_JMBGSYZID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
string sJMBGS = "截面比公式";
if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JMBGSBM.Trim()))
sJMBGS = bjflxx.XLXSBJFL_JMBGSBM.Trim();
string sDefYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_YZZ"].ToString().Trim();
string sMinYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_MINC"].ToString().Trim();
string sMaxYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_MAXC"].ToString().Trim();
string sTJYS = ds.Tables[0].Rows[0]["XLXSTZYZ_TJYS"].ToString().Trim();
string sBCYTJ = ds.Tables[0].Rows[0]["XLXSTZYZ_BCYTJ"].ToString().Trim();
TPageParams pageParams = new TPageParams();
pageParams.UrlPath = "XLBJD_MX_YZInfo.aspx";
pageParams.AddString("JMBGS", "Y");
pageParams.AddString("YZID", bjflxx.XLXSBJFL_JMBGSYZID);
pageParams.AddString("DefYZZ", sDefYZZ);
pageParams.AddString("MinYZZ", sMinYZZ);
pageParams.AddString("MaxYZZ", sMaxYZZ);
pageParams.AddString("YZMC", sJMBGS);
pageParams.AddString("JJFS", ds.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim());
pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM);
pageParams.AddString("MRTJFW", ds.Tables[0].Rows[0]["XLXSTZYZ_MRTJFW"].ToString().Trim());
pageParams.AddString("PLSZAll", txtPLSZAll.Value);
pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID);
pageParams.AddString("txtPLSZJMBGSCID", txtJMBGS.ClientID);
pageParams.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID);
pageParams.AddString("btnRefreshCID", btnRefresh.ClientID);
OpenDialog(pageParams);
}
}
else if (sYZID.Equals("BJXJ") || sYZID.Equals("BJXF") || sYZID.Equals("BJSF") || sYZID.Equals("LJJCLLX"))
{
TPageParams pageParams = new TPageParams();
pageParams.UrlPath = "XLBJD_MX_YZInfo.aspx";
if (sYZID.Equals("BJSF"))
{
pageParams.Title = "报价上浮%";
pageParams.AddString("TZBZ", "BJSF");
pageParams.AddString("PLSZAll", txtPLSZAll.Value);
pageParams.AddString("txtBJSFCID", txtBJSF.ClientID);
pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID);
pageParams.AddString("btnRefreshBJSF", btnRefreshBJSF.ClientID);
}
else if (sYZID.Equals("BJXF"))
{
pageParams.Title = "报价下浮%";
pageParams.AddString("TZBZ", "BJXF");
pageParams.AddString("PLSZAll", txtPLSZAll.Value);
pageParams.AddString("txtBJXFCID", txtBJXF.ClientID);
pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID);
pageParams.AddString("btnRefreshBJXF", btnRefreshBJXF.ClientID);
}
else if (sYZID.Equals("LJJCLLX"))
{
pageParams.Title = "料价价差率%";
pageParams.AddString("TZBZ", "LJJCLLX");
pageParams.AddString("BJFLID", sBJFLID);
pageParams.AddString("PLSZAll", txtPLSZAll.Value);
pageParams.AddString("txtTZZCID", txtTZZ.ClientID);
pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID);
pageParams.AddString("btnRefreshLJJCL", btnRefreshLJJCL.ClientID);
}
else if (sYZID.Equals("BJXJ"))
{
pageParams.Title = "产品报价限价";
pageParams.AddString("TZBZ", "BJXJ");
pageParams.AddString("BJFLID", sBJFLID);
pageParams.AddString("PLSZAll", txtPLSZAll.Value);
pageParams.AddString("txtTZZCID", txtTZZ.ClientID);
pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID);
pageParams.AddString("btnRefreshBJXJ", btnRefreshBJXJ.ClientID);
}
pageParams.AddString("FromXHDYSX","Y");
OpenDialog(pageParams);
}
else if (sYZID.Equals("CLYLBL"))
{
if (grdContentGrid.SelectedIndex < 0 && grdContentGrid.CheckedRowIndexs.Equals(""))
{
ShowMessage("请选择一条需要调整的报价产品!");
return;
}
string[] sTempArr = grdContentGrid.CheckedRowIndexs.Split(new char[] { ',' });
string sBJDXHList = "";
foreach (string sIndex in sTempArr)
{
int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim());
string sBJDXH = grdContentGrid.DataKeys[iRowIndex]["XLXSBJDMX_XH"].ToString().Trim();
if (!sBJDXH.Equals("") && !sBJDXH.Equals("0"))
{
sBJDXHList += sBJDXH + ",";
}
}
sBJDXHList = sBJDXHList.TrimEnd(',');
if (sBJDXHList.Equals(""))
sBJDXHList = grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJDMX_XH"].ToString().Trim();
TPageParams pageParams1 = new TPageParams();
pageParams1.UrlPath = "XLBJD_CLYLBLList.aspx";
pageParams1.AddString("BJFLID", sBJFLID);
pageParams1.AddString("BJDID", sBJDID);
pageParams1.AddString("XH", sBJDXHList);
pageParams1.AddString("btnRefreshCID", btnOnlyRefresh.ClientID);
OpenDialog(pageParams1);
}
else if (sYZID.StartsWith("CLBJ"))
{
SQL.Clear();
sYZID = sYZID.Replace("CL", "");
TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sYZID);
if (!string.IsNullOrEmpty(yzxx.XLXSTZYZ_YZID))
{
string sYZMC = yzxx.XLXSTZYZ_YZMC.Trim();
string sJJFS = yzxx.XLXSTZYZ_JJFS.Trim();
if (sJJFS.Equals("JD") || sJJFS.Equals("KD") || sJJFS.Equals("DD") || sJJFS.Equals("MD"))
sYZMC = sYZMC + "(%)";
else if (sJJFS.Equals("JJ"))
sYZMC = sYZMC + "(元)";
//更新提示
Confirm.Register("IsQD", "即将清空当前记录所有明细的【" + sYZMC + "】是否继续?");
Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No;
if (Confirm.GetValue("IsQD").Trim().Equals(""))
{
Confirm.Ask("IsQD");
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("N"))
{
//表示进行了提示并选择了取消,直接返回或其他处理
Confirm.Clear();
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("Y"))
{
//表示进行了提示并选择了确认
Confirm.Clear();
}
SQL.Clear();
SQL.Add("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ" + sYZID.Replace("BJ", "") + " = 0 where XLXSBJDYZZ0_BJDID =:pBJDID ");
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
string sErrMsg = "";
XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, sBJDID, 1, "", false, false, false, "", DateTime.MinValue, GetOption("BJU002"), GetOption("BJU003"), tSession.UserId, tSession.UserName, ref sErrMsg);
if (sErrMsg.Equals(""))
{
ShowMessage("更新完成!");
}
else
ShowMessage("更新失败!" + sErrMsg);
moduleGV_PageIndexChanging(null, null);
FormAreaUpdate();
}
else
{
ShowMessage("所选调价因子记录已不存在,请关闭页面后重试!");
return;
}
}
else if (sYZID.StartsWith("CZ"))
{
string sWarning = string.Format("即将重置当前记录所有明细的【{0}】,是否继续?", sYZID.Split('|')[2]);
Confirm.Register("IsQD", sWarning);
Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No;
if (Confirm.GetValue("IsQD").Trim().Equals(""))
{
Confirm.Ask("IsQD");
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("N"))
{
//表示进行了提示并选择了取消,直接返回或其他处理
Confirm.Clear();
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("Y"))
{
//表示进行了提示并选择了确认
Confirm.Clear();
}
Dictionary<string, string> dicTJYZList = new Dictionary<string, string>();
dicTJYZList.Add("sTJYSList" + sYZID.Split('|')[3].Trim(), sYZID.Split('|')[1].Trim());
string sErrorMsg = "";
XLBJDUtils.AddXLXSBJDYZZ0(dberp, sBJDID, sBJFLID, GetOption("BJU003"), dicTJYZList, false, "", 0, false, false, false, ref sErrorMsg);
if (!sErrorMsg.Equals(""))
{
ShowMessage(sErrorMsg);
return;
}
XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, sBJDID, 1, "", false, false, false, "", DateTime.MinValue, GetOption("BJU002"), GetOption("BJU003"), tSession.UserId, tSession.UserName, ref sErrorMsg);
if (!sErrorMsg.Equals(""))
{
ShowMessage(sErrorMsg);
return;
}
moduleGV_PageIndexChanging(null, null);
FormAreaUpdate();
}
else
{
if (sYZID.Contains("|"))
sYZID = sYZID.Trim().Split('|')[1];
SQL.Clear();
SQL.Add("select XLXSBJDYZZ_YZZ,XLXSBJDYZZ_MINC,XLXSBJDYZZ_MAXC,XLXSTZYZ_YZMC,XLXSTZYZ_TJMDID,XLXSTZYZ_MRTJFW,XLXSTZYZ_JJFS,XLXSTZYZ_TJYS,isnull(XLXSTZYZ_BCYTJ,'N') as XLXSTZYZ_BCYTJ from XLXSTZYZ");
SQL.Add(" left join XLXSBJDYZZ on XLXSBJDYZZ_JGBID=XLXSTZYZ_JGBID and XLXSBJDYZZ_YZID=XLXSTZYZ_YZID");
SQL.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=:pYZID ");
SQL.ParamByName("pYZID").Value = sYZID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
string sDefYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_YZZ"].ToString().Trim();
string sMinYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_MINC"].ToString().Trim();
string sMaxYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_MAXC"].ToString().Trim();
string sTJYS = ds.Tables[0].Rows[0]["XLXSTZYZ_TJYS"].ToString().Trim();
string sBCYTJ = ds.Tables[0].Rows[0]["XLXSTZYZ_BCYTJ"].ToString().Trim();
//因为下拉框选项已经限制要么调价因素空要么不参与调价此处可以直接使用else
if (sBCYTJ.Equals("N"))
{
TPageParams pageParams = new TPageParams();
pageParams.UrlPath = "XLBJD_MX_YZInfo.aspx";
if (ds.Tables[0].Rows[0]["XLXSTZYZ_TJMDID"].ToString().Trim().Equals("102577028"))
{
//若为中标服务费,打开中标服务费界面
pageParams.UrlPath = "XLBJD_YZ_ZBFWFInfo.aspx";
}
pageParams.AddString("YZID", sYZID);
pageParams.AddString("XMMC", PageParam.GetRTrimString("XMMC"));
pageParams.AddString("BJDJE", PageParam.GetRTrimString("BJDJE"));
pageParams.AddString("DefYZZ", sDefYZZ);
pageParams.AddString("MinYZZ", sMinYZZ);
pageParams.AddString("MaxYZZ", sMaxYZZ);
pageParams.AddString("YZMC", ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim());
pageParams.AddString("JJFS", ds.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim());
pageParams.AddString("MRTJFW", ds.Tables[0].Rows[0]["XLXSTZYZ_MRTJFW"].ToString().Trim());
pageParams.AddString("PLSZAll", txtPLSZAll.Value);
pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID);
pageParams.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID);
pageParams.AddString("btnRefreshCID", btnRefresh.ClientID);
pageParams.AddString("FromXHDYSX", "Y");
OpenDialog(pageParams);
}
else
{
//更新提示
Confirm.Register("IsQD", "即将更新选中记录的因子值,是否继续?");
Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No;
if (Confirm.GetValue("IsQD").Trim().Equals(""))
{
Confirm.Ask("IsQD");
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("N"))
{
//表示进行了提示并选择了取消,直接返回或其他处理
Confirm.Clear();
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("Y"))
{
//表示进行了提示并选择了确认
Confirm.Clear();
}
string sBJDXHList = "";
int VnewID = 0;
if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录
{
string[] sTempArr = grdContentGrid.CheckedRowIndexs.Split(new char[] { ',' });
foreach (string sIndex in sTempArr)
{
int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim());
string sBJDXH = grdContentGrid.DataKeys[iRowIndex]["XLXSBJDMX_XH"].ToString().Trim();
if (!sBJDXH.Equals("") && !sBJDXH.Equals("0"))
{
sBJDXHList += sBJDXH + ",";
}
}
sBJDXHList = sBJDXHList.TrimEnd(',');
}
else if (txtPLSZAll.Value.Trim().Equals("C"))
{
#region 创建临时表
DateTime TimeStamp = MISproUtils.GetServerTime();
VnewID = CMISproDataBase.GetMaxXH("DBERP", "V_BJDXH", "V_BJDXH_ID", "") + 1;
base.InitEntityByCondition();
SQL.Clear();
SQL.Add(" insert into V_BJDXH(V_BJDXH_ID,V_BJDXH_TIMESTAMP,V_BJDXH_BJDID,V_BJDXH_BJDXH )");
SQL.Add(" select distinct :pID,:pTime,XLXSBJDMX_BJDID, XLXSBJDMX_XH ");
SQL.Add(" from XLXSBJDMX ");
SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID ");
SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID=XLXSBJDMX_DYDJID ");
SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID ");
SQL.Add(" left join XLGGB on XLGGB_XLGGID= XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') ");
if (XLBJDUtils.ExistXSCPML())
{
SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') ");
SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' ");
SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID= (case when XHMLA.XLXSBJXHML_CPMLID is null then XHMLB.XLXSBJXHML_CPMLID else XHMLA.XLXSBJXHML_CPMLID end ) ");
}
SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID ");
SQL.Add(GetCondition());
SQL.ParamByName("pID").Value = VnewID;
SQL.ParamByName("pTime").Value = TimeStamp;
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
#endregion
}
//更新因子值
if (ds.Tables[0].Rows[0]["XLXSTZYZ_TJYS"].ToString().Trim().Equals(""))
{
SQL.Clear();
SQL.Add("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ" + sYZID.Replace("BJ", "") + " = :pYZZ where XLXSBJDYZZ0_BJDID =:pBJDID ");
if (!sBJDXHList.Equals(""))
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList));
if (VnewID > 0)
{
SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDYZZ0_BJDID and V_BJDXH_BJDXH = XLXSBJDYZZ0_XH) ");
SQL.ParamByName("pVID").Value = VnewID;
}
SQL.ParamByName("pYZZ").Value = ds.Tables[0].Rows[0]["XLXSBJDYZZ_YZZ"].ToString().Trim();
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
}
else
{
Dictionary<string, string> dicTJYZListBCYTJ = new Dictionary<string, string>();
dicTJYZListBCYTJ.Add("sTJYSList" + ds.Tables[0].Rows[0]["XLXSTZYZ_TJYS"].ToString().Trim(), sYZID);
string sErrorMsg = "";
XLBJDUtils.AddXLXSBJDYZZ0(dberp, sBJDID, sBJFLID, GetOption("BJU003"), dicTJYZListBCYTJ, false, sBJDXHList, 0, VnewID, false, false, false, ref sErrorMsg);
if (!sErrorMsg.Equals(""))
{
ShowMessage(sErrorMsg);
return;
}
}
if (!sBJDXHList.Trim().Equals(""))
ShowMessage("所选明细更新完成!");
else
ShowMessage("所查明细更新完成!");
if (VnewID > 0)
{
#region 删除临时表
SQL.Clear();
SQL.Add("delete from V_BJDXH where V_BJDXH_ID=:pVID and V_BJDXH_BJDID =:pBJDID ");
SQL.ParamByName("pVID").Value = VnewID;
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
#endregion
}
//刷新
moduleGV_PageIndexChanging(null, null);
FormAreaUpdate();
}
}
else if (sYZID.Equals("BJSD-SD") || sYZID.Equals("BJSD-JS") || sYZID.Equals("BJSD"))
{
if (sYZID.Equals("BJSD"))
return;
string sSDBZ = "";
if (sYZID.Equals("BJSD-SD"))
sSDBZ = "Y";
else
sSDBZ = "N";
string sBJDXHList = "";
int VnewID = 0;
if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录
{
if (!(grdContentGrid.CheckBox && !String.IsNullOrEmpty(grdContentGrid.CheckedRowIndexs)))
{
return;
}
string[] sTempArr = grdContentGrid.CheckedRowIndexs.Split(new char[] { ',' });
foreach (string sIndex in sTempArr)
{
int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim());
string sBJDXH = grdContentGrid.DataKeys[iRowIndex]["XLXSBJDMX_XH"].ToString().Trim();
if (!sBJDXH.Equals("") && !sBJDXH.Equals("0"))
{
sBJDXHList += sBJDXH + ",";
}
}
sBJDXHList = sBJDXHList.TrimEnd(',');
}
else
{
#region 创建临时表
DateTime TimeStamp = MISproUtils.GetServerTime();
VnewID = CMISproDataBase.GetMaxXH("DBERP", "V_BJDXH", "V_BJDXH_ID", "") + 1;
base.InitEntityByCondition();
SQL.Clear();
SQL.Add(" insert into V_BJDXH(V_BJDXH_ID,V_BJDXH_TIMESTAMP,V_BJDXH_BJDID,V_BJDXH_BJDXH )");
SQL.Add(" select distinct :pID,:pTime,XLXSBJDMX_BJDID, XLXSBJDMX_XH ");
SQL.Add(" from XLXSBJDMX ");
SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID ");
SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID=XLXSBJDMX_DYDJID ");
SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID ");
SQL.Add(" left join XLGGB on XLGGB_XLGGID= XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') ");
if (XLBJDUtils.ExistXSCPML())
{
SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') ");
SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' ");
SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID= (case when XHMLA.XLXSBJXHML_CPMLID is null then XHMLB.XLXSBJXHML_CPMLID else XHMLA.XLXSBJXHML_CPMLID end ) ");
}
SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID ");
SQL.Add(GetCondition());
SQL.ParamByName("pID").Value = VnewID;
SQL.ParamByName("pTime").Value = TimeStamp;
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
#endregion
}
//更新锁定标志
SQL.Clear();
SQL.Add("update XLXSBJDMX set XLXSBJDMX_BJSDBZ = :pSDBZ where XLXSBJDMX_BJDID =:pBJDID ");
if (!sBJDXHList.Equals(""))
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList));
if (VnewID > 0)
{
SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) ");
SQL.ParamByName("pVID").Value = VnewID;
}
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID");
SQL.ParamByName("pSDBZ").Value = sSDBZ;
dberp.ExecSQL(SQL);
if (txtPLSZAll.Value.Trim().Equals("N"))
{
if (sSDBZ.Equals("Y"))
ShowMessage("已将勾选明细报价锁定标记更新为锁定!");
else
ShowMessage("已将勾选明细报价锁定标记更新为未锁定!");
}
else
{
if (sSDBZ.Equals("Y"))
ShowMessage("已将所查明细报价锁定标记更新为锁定!");
else
ShowMessage("已将所查明细报价锁定标记更新为未锁定!");
}
if (VnewID > 0)
{
#region 删除临时表
SQL.Clear();
SQL.Add("delete from V_BJDXH where V_BJDXH_ID=:pVID and V_BJDXH_BJDID =:pBJDID ");
SQL.ParamByName("pVID").Value = VnewID;
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
#endregion
}
moduleGV_PageIndexChanging(null, null);
FormAreaUpdate();
}
else
{
ShowMessage("所选调价因子记录已不存在,请关闭页面后重试!");
return;
}
}
}
protected void btnOnlyRefresh_Click(object sender, EventArgs e)
{
moduleGV_PageIndexChanging(null, null);
FormAreaUpdate();
}
//同XLBJDInfo.btnRefreshBJDYZ_Click
protected void btnRefresh_Click(object sender, EventArgs e)
{
string sBJDID = PageParam.GetRTrimString("BJDID");
string sBJDXHList = "";
int VnewID = 0;
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录
{
string[] sTempArr = grdContentGrid.CheckedRowIndexs.Split(new char[] { ',' });
foreach (string sIndex in sTempArr)
{
int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim());
string sBJDXH = grdContentGrid.DataKeys[iRowIndex]["XLXSBJDMX_XH"].ToString().Trim();
if (!sBJDXH.Equals("") && !sBJDXH.Equals("0"))
{
sBJDXHList += sBJDXH + ",";
}
}
sBJDXHList = sBJDXHList.TrimEnd(',');
}
else if (txtPLSZAll.Value.Trim().Equals("C"))
{
#region 创建临时表
DateTime TimeStamp = MISproUtils.GetServerTime();
VnewID = CMISproDataBase.GetMaxXH("DBERP", "V_BJDXH", "V_BJDXH_ID", "") + 1;
base.InitEntityByCondition();
SQL.Clear();
SQL.Add(" insert into V_BJDXH(V_BJDXH_ID,V_BJDXH_TIMESTAMP,V_BJDXH_BJDID,V_BJDXH_BJDXH )");
SQL.Add(" select distinct :pID,:pTime,XLXSBJDMX_BJDID, XLXSBJDMX_XH ");
SQL.Add(" from XLXSBJDMX ");
SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID ");
SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID=XLXSBJDMX_DYDJID ");
SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID ");
SQL.Add(" left join XLGGB on XLGGB_XLGGID= XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') ");
if (XLBJDUtils.ExistXSCPML())
{
SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') ");
SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' ");
SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID= (case when XHMLA.XLXSBJXHML_CPMLID is null then XHMLB.XLXSBJXHML_CPMLID else XHMLA.XLXSBJXHML_CPMLID end ) ");
}
SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID ");
SQL.Add(GetCondition());
SQL.ParamByName("pID").Value = VnewID;
SQL.ParamByName("pTime").Value = TimeStamp;
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
#endregion
}
string[] sYZZList = txtPLSZYZList.Value.Trim().Split('|');
string sYZID = sYZZList[0].Trim();
double fYZZ = CMISproConvert.StrToFloat(sYZZList[1]);
//调整范围
string sTJFW = sYZZList[2].Trim();
bool bYBJ = sTJFW.Split(',')[0].Equals("Y") ? true : false;
bool bWG = false;
bool bFWG = false;
if (sTJFW.Split(',').Length > 1)
{
bWG = sTJFW.Split(',')[1].Equals("Y") ? true : false;
bFWG = sTJFW.Split(',')[2].Equals("Y") ? true : false;
}
string sBJFLID = PageParam.GetRTrimString("BJFLID");
string sErrorMsg = "";
BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID);
if (!txtJMBGS.Value.Equals(""))
{
//批量修改截面比公式
XLBJDUtils.UpdateJMBGS(sBJDID, sBJDXHList, txtJMBGS.Value);
XLBJDInfo.PLTJ_BJDYZ(sBJDXHList, VnewID, sBJDID, sYZID, fYZZ, false, "", "", 0, "", 0, bYBJ, bWG, bFWG, "", tSession.UserId, tSession.UserName, GetOption("BJU002"), GetOption("BJU003"), ref sErrorMsg);
}
else
{
XLBJDInfo.PLTJ_BJDYZ(sBJDXHList, VnewID, sBJDID, sYZID, fYZZ, false, "", "", 0, "", 0, bYBJ, bWG, bFWG, bjflxx.XLXSBJFL_JMBGSYZID, tSession.UserId, tSession.UserName, GetOption("BJU002"), GetOption("BJU003"), ref sErrorMsg);
}
if (!sErrorMsg.Equals(""))
{
ShowMessage(sErrorMsg);
}
if (VnewID > 0)
{
#region 删除临时表
SQL.Clear();
SQL.Add("delete from V_BJDXH where V_BJDXH_ID=:pVID and V_BJDXH_BJDID =:pBJDID ");
SQL.ParamByName("pVID").Value = VnewID;
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
#endregion
}
//刷新
moduleGV_PageIndexChanging(null, null);
FormAreaUpdate();
}
//上浮
protected void btnRefreshBJSF_Click(object sender, EventArgs e)
{
string sBJSF = txtBJSF.Value;
string sJCLLX = PageParam.GetRTrimString("JCLLX");
string sLJJCLLX = PageParam.GetRTrimString("LJJCLLX");
string sCPBJMRXSWS = PageParam.GetRTrimString("CPBJMRXSWS");
string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPBJMRXSWS)).ToString("F9");
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sBJDXHList = "";
int VnewID = 0;
if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录
{
if (!(grdContentGrid.CheckBox && !String.IsNullOrEmpty(grdContentGrid.CheckedRowIndexs)))
{
return;
}
string[] sTempArr = grdContentGrid.CheckedRowIndexs.Split(new char[] { ',' });
foreach (string sIndex in sTempArr)
{
int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim());
string sBJDXH = grdContentGrid.DataKeys[iRowIndex]["XLXSBJDMX_XH"].ToString().Trim();
if (!sBJDXH.Equals("") && !sBJDXH.Equals("0"))
{
sBJDXHList += sBJDXH + ",";
}
}
sBJDXHList = sBJDXHList.TrimEnd(',');
}
else if (txtPLSZAll.Value.Trim().Equals("C"))
{
#region 创建临时表
DateTime TimeStamp = MISproUtils.GetServerTime();
VnewID = CMISproDataBase.GetMaxXH("DBERP", "V_BJDXH", "V_BJDXH_ID", "") + 1;
base.InitEntityByCondition();
SQL.Clear();
SQL.Add(" insert into V_BJDXH(V_BJDXH_ID,V_BJDXH_TIMESTAMP,V_BJDXH_BJDID,V_BJDXH_BJDXH )");
SQL.Add(" select distinct :pID,:pTime,XLXSBJDMX_BJDID, XLXSBJDMX_XH ");
SQL.Add(" from XLXSBJDMX ");
SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID ");
SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID=XLXSBJDMX_DYDJID ");
SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID ");
SQL.Add(" left join XLGGB on XLGGB_XLGGID= XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') ");
if (XLBJDUtils.ExistXSCPML())
{
SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') ");
SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' ");
SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID= (case when XHMLA.XLXSBJXHML_CPMLID is null then XHMLB.XLXSBJXHML_CPMLID else XHMLA.XLXSBJXHML_CPMLID end ) ");
}
SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID ");
SQL.Add(GetCondition());
SQL.ParamByName("pID").Value = VnewID;
SQL.ParamByName("pTime").Value = TimeStamp;
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID");
dberp.ExecSQL(SQL);
#endregion
}
int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002"));
if (tmpXSWS < 0)
tmpXSWS = 0;
else if (tmpXSWS > 8)
tmpXSWS = 8;
string sBJSFTJFS = XLBJDUtils.GetBJSFTJFS();
string sqlBJJE = "";
string sqlCPBJ = "";
if (sBJSFTJFS.Equals("UM"))
{
sqlCPBJ = "XLXSBJDMX_CPBJ*(1+:pUpdCPBJ/100.0)";
sqlBJJE = string.Format("RoundFix(XLXSBJDMX_BJSL*RoundFix((XLXSBJDMX_CPBJ*(1+:pUpdCPBJ/100.0))/{0},0)*{0}+XLXSBJDMX_TZBJJE,2)", sCPBJBLXSWS);
}
else
{
sqlCPBJ = "XLXSBJDMX_CPBJ/(1-:pUpdCPBJ/100.0)";
sqlBJJE = string.Format("RoundFix(XLXSBJDMX_BJSL*RoundFix((XLXSBJDMX_CPBJ/(1-:pUpdCPBJ/100.0))/{0},0)*{0}+XLXSBJDMX_TZBJJE,2)", sCPBJBLXSWS);
}
SQL.Clear();
SQL.Add("update XLXSBJDMX set ");
SQL.Add(string.Format("XLXSBJDMX_CPBJ=RoundFix((" + sqlCPBJ + ")/{0},0)*{0},", sCPBJBLXSWS));
SQL.Add(string.Format("XLXSBJDMX_TZCPBJ=RoundFix(case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*(RoundFix((" + sqlCPBJ + ")/{0}, 0)*{0}-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,15),", sCPBJBLXSWS));
SQL.Add(string.Format("XLXSBJDMX_TZQBJJE=RoundFix(XLXSBJDMX_BJSL*(RoundFix((" + sqlCPBJ + ")/{0},0)*{0}),2),", sCPBJBLXSWS));
SQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ",");
if (sJCLLX.Equals("1"))//表价价差率公式
{
SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,");
SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), ");
}
else if (sJCLLX.Equals("2"))
{
SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,");
SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + "," + tmpXSWS + "), ");
}
else if (sJCLLX.Equals("3"))
{
SQL.Add("XLXSBJDMX_JGBBJJCL=case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,");
SQL.Add("XLXSBJDMX_JGBBJJCE=0, ");
}
else if (sJCLLX.Equals("4"))
{
SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,");
SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), ");
}
else
{
SQL.Add("XLXSBJDMX_JGBBJJCL=0,");
SQL.Add("XLXSBJDMX_JGBBJJCE=0,");
}
if (sLJJCLLX.Equals("1"))//料价价差率公式
{
SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_CLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,");
}
else if (sLJJCLLX.Equals("2"))
{
SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,");
}
else if (sLJJCLLX.Equals("3"))
{
SQL.Add("XLXSBJDMX_CLCBJCL =case when XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL),2) end,");
}
else if (sLJJCLLX.Equals("4"))
{
SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,");
}
else
{
SQL.Add("XLXSBJDMX_CLCBJCL=0,");
}
SQL.Add("XLXSBJDMX_CLCBJCLSDBZ='N'");
SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID ");
if (!sBJDXHList.Trim().Equals(""))
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList));
if (VnewID > 0)
{
SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) ");
SQL.ParamByName("pVID").Value = VnewID;
}
SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据
SQL.ParamByName("pUpdCPBJ").Value = CMISproConvert.StrToFloat(sBJSF);
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID");
dberp.ExecSQL(SQL);
if (VnewID > 0)
{
#region 删除临时表
SQL.Clear();
SQL.Add("delete from V_BJDXH where V_BJDXH_ID=:pVID and V_BJDXH_BJDID =:pBJDID ");
SQL.ParamByName("pVID").Value = VnewID;
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID");
dberp.ExecSQL(SQL);
#endregion
}
//刷新
moduleGV_PageIndexChanging(null, null);
FormAreaUpdate();
}
//下浮
protected void btnRefreshBJXF_Click(object sender, EventArgs e)
{
string sBJXF = txtBJXF.Value;
string sJCLLX = PageParam.GetRTrimString("JCLLX");
string sLJJCLLX = PageParam.GetRTrimString("LJJCLLX");
string sCPBJMRXSWS = PageParam.GetRTrimString("CPBJMRXSWS");
string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPBJMRXSWS)).ToString("F9");
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sBJDXHList = "";
int VnewID = 0;
if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录
{
if (!(grdContentGrid.CheckBox && !String.IsNullOrEmpty(grdContentGrid.CheckedRowIndexs)))
{
return;
}
string[] sTempArr = grdContentGrid.CheckedRowIndexs.Split(new char[] { ',' });
foreach (string sIndex in sTempArr)
{
int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim());
string sBJDXH = grdContentGrid.DataKeys[iRowIndex]["XLXSBJDMX_XH"].ToString().Trim();
if (!sBJDXH.Equals("") && !sBJDXH.Equals("0"))
{
sBJDXHList += sBJDXH + ",";
}
}
sBJDXHList = sBJDXHList.TrimEnd(',');
}
else if (txtPLSZAll.Value.Trim().Equals("C"))
{
#region 创建临时表
DateTime TimeStamp = MISproUtils.GetServerTime();
VnewID = CMISproDataBase.GetMaxXH("DBERP", "V_BJDXH", "V_BJDXH_ID", "") + 1;
base.InitEntityByCondition();
SQL.Clear();
SQL.Add(" insert into V_BJDXH(V_BJDXH_ID,V_BJDXH_TIMESTAMP,V_BJDXH_BJDID,V_BJDXH_BJDXH )");
SQL.Add(" select distinct :pID,:pTime,XLXSBJDMX_BJDID, XLXSBJDMX_XH ");
SQL.Add(" from XLXSBJDMX ");
SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID ");
SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID=XLXSBJDMX_DYDJID ");
SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID ");
SQL.Add(" left join XLGGB on XLGGB_XLGGID= XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') ");
if (XLBJDUtils.ExistXSCPML())
{
SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') ");
SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' ");
SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID= (case when XHMLA.XLXSBJXHML_CPMLID is null then XHMLB.XLXSBJXHML_CPMLID else XHMLA.XLXSBJXHML_CPMLID end ) ");
}
SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID ");
SQL.Add(GetCondition());
SQL.ParamByName("pID").Value = VnewID;
SQL.ParamByName("pTime").Value = TimeStamp;
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID");
dberp.ExecSQL(SQL);
#endregion
}
int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002"));
if (tmpXSWS < 0)
tmpXSWS = 0;
else if (tmpXSWS > 8)
tmpXSWS = 8;
string sBJXFTJFS = XLBJDUtils.GetBJXFTJFS();
string sqlBJJE = "";
string sqlCPBJ = "";
if (sBJXFTJFS.Equals("DD"))
{
sqlCPBJ = "XLXSBJDMX_CPBJ/(1+:pUpdCPBJ/100.0)";
sqlBJJE = string.Format("RoundFix(XLXSBJDMX_BJSL*RoundFix((XLXSBJDMX_CPBJ/(1+:pUpdCPBJ/100.0))/{0},0)*{0}+XLXSBJDMX_TZBJJE,2)", sCPBJBLXSWS);
}
else
{
sqlCPBJ = "XLXSBJDMX_CPBJ*(1-:pUpdCPBJ/100.0)";
sqlBJJE = string.Format("RoundFix(XLXSBJDMX_BJSL*RoundFix((XLXSBJDMX_CPBJ*(1-:pUpdCPBJ/100.0))/{0},0)*{0}+XLXSBJDMX_TZBJJE,2)", sCPBJBLXSWS);
}
SQL.Clear();
SQL.Add("update XLXSBJDMX set ");
SQL.Add(string.Format("XLXSBJDMX_CPBJ=RoundFix((" + sqlCPBJ + ")/{0},0)*{0},", sCPBJBLXSWS));
SQL.Add(string.Format("XLXSBJDMX_TZCPBJ=RoundFix(case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*(RoundFix((" + sqlCPBJ + ")/{0},0)*{0}-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,15),", sCPBJBLXSWS));
SQL.Add(string.Format("XLXSBJDMX_TZQBJJE=RoundFix(XLXSBJDMX_BJSL*(RoundFix((" + sqlCPBJ + ")/{0},0)*{0}),2),", sCPBJBLXSWS));
SQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ",");
if (sJCLLX.Equals("1"))//表价价差率公式
{
SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,");
SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), ");
}
else if (sJCLLX.Equals("2"))
{
SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,");
SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + "," + tmpXSWS + "), ");
}
else if (sJCLLX.Equals("3"))
{
SQL.Add("XLXSBJDMX_JGBBJJCL=case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,");
SQL.Add("XLXSBJDMX_JGBBJJCE=0, ");
}
else if (sJCLLX.Equals("4"))
{
SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,");
SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), ");
}
else
{
SQL.Add("XLXSBJDMX_JGBBJJCL=0,");
SQL.Add("XLXSBJDMX_JGBBJJCE=0,");
}
if (sLJJCLLX.Equals("1"))//料价价差率公式
{
SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_CLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,");
}
else if (sLJJCLLX.Equals("2"))
{
SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,");
}
else if (sLJJCLLX.Equals("3"))
{
SQL.Add("XLXSBJDMX_CLCBJCL =case when XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL),2) end,");
}
else if (sLJJCLLX.Equals("4"))
{
SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,");
}
else
{
SQL.Add("XLXSBJDMX_CLCBJCL=0,");
}
SQL.Add("XLXSBJDMX_CLCBJCLSDBZ='N'");
SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID ");
if (!sBJDXHList.Trim().Equals(""))
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList));
if (VnewID > 0)
{
SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) ");
SQL.ParamByName("pVID").Value = VnewID;
}
SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据
SQL.ParamByName("pUpdCPBJ").Value = CMISproConvert.StrToFloat(sBJXF);
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID");
dberp.ExecSQL(SQL);
if (VnewID > 0)
{
#region 删除临时表
SQL.Clear();
SQL.Add("delete from V_BJDXH where V_BJDXH_ID=:pVID and V_BJDXH_BJDID =:pBJDID ");
SQL.ParamByName("pVID").Value = VnewID;
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID");
dberp.ExecSQL(SQL);
#endregion
}
//刷新
moduleGV_PageIndexChanging(null, null);
FormAreaUpdate();
}
//料价价差率
protected void btnRefreshLJJCL_Click(object sender, EventArgs e)
{
string[] sTZZ = txtTZZ.Value.Split('|');
if (sTZZ.Length != 5)
{
return;
}
string sSZFW = sTZZ[0].Trim();//Y整单记录、N勾选记录
string sCZLM = sTZZ[1].Trim();
double dCLCBLR = CMISproConvert.StrToFloat(sTZZ[2]);
string sCLCBLX = sTZZ[3].Trim();//材料成本类型:相对值/固定值
//调整范围
string sTJFW = sTZZ[4].Trim();
bool bWBJ = sTJFW.Split(',')[0].Equals("Y") ? true : false;
bool bFWG = sTJFW.Split(',')[1].Equals("Y") ? true : false;
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sBJDID = PageParam.GetRTrimString("BJDID");
string sJCLLX = PageParam.GetRTrimString("JCLLX");
string sLJJCLLX = PageParam.GetRTrimString("LJJCLLX");
string sBJFLID = PageParam.GetRTrimString("BJFLID");
string sCPBJMRXSWS = PageParam.GetRTrimString("CPBJMRXSWS");
string sZDXJJCLLX = PageParam.GetRTrimString("ZDXJJCLLX");
string sJYF = PageParam.GetRTrimString("JYF");
string sYSJDID = PageParam.GetRTrimString("YSJDID");
string sGYSID = PageParam.GetRTrimString("GYSID");
string sYFWLID = PageParam.GetRTrimString("YFWLID");
string sBJHYF = PageParam.GetRTrimString("BJHYF");
string sBJDXHList = "";
int VnewID = 0;
if (sSZFW.Equals("N"))//调价范围:N|勾选记录
{
if (!(grdContentGrid.CheckBox && !String.IsNullOrEmpty(grdContentGrid.CheckedRowIndexs)))
{
return;
}
string[] sTempArr = grdContentGrid.CheckedRowIndexs.Split(new char[] { ',' });
foreach (string sIndex in sTempArr)
{
int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim());
string sBJDXH = grdContentGrid.DataKeys[iRowIndex]["XLXSBJDMX_XH"].ToString().Trim();
if (!sBJDXH.Equals("") && !sBJDXH.Equals("0"))
{
sBJDXHList += sBJDXH + ",";
}
}
sBJDXHList = sBJDXHList.TrimEnd(',');
}
else if (txtPLSZAll.Value.Trim().Equals("C"))
{
#region 创建临时表
DateTime TimeStamp = MISproUtils.GetServerTime();
VnewID = CMISproDataBase.GetMaxXH("DBERP", "V_BJDXH", "V_BJDXH_ID", "") + 1;
base.InitEntityByCondition();
SQL.Clear();
SQL.Add(" insert into V_BJDXH(V_BJDXH_ID,V_BJDXH_TIMESTAMP,V_BJDXH_BJDID,V_BJDXH_BJDXH )");
SQL.Add(" select distinct :pID,:pTime,XLXSBJDMX_BJDID, XLXSBJDMX_XH ");
SQL.Add(" from XLXSBJDMX ");
SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID ");
SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID=XLXSBJDMX_DYDJID ");
SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID ");
SQL.Add(" left join XLGGB on XLGGB_XLGGID= XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') ");
if (XLBJDUtils.ExistXSCPML())
{
SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') ");
SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' ");
SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID= (case when XHMLA.XLXSBJXHML_CPMLID is null then XHMLB.XLXSBJXHML_CPMLID else XHMLA.XLXSBJXHML_CPMLID end ) ");
}
SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID ");
SQL.Add(GetCondition());
SQL.ParamByName("pID").Value = VnewID;
SQL.ParamByName("pTime").Value = TimeStamp;
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
#endregion
}
int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002"));
if (tmpXSWS < 0)
tmpXSWS = 0;
else if (tmpXSWS > 8)
tmpXSWS = 8;
string sErrorMsg = "";
XLBJDInfo.PLTJ_LJJCL(sBJDXHList, VnewID, sBJDID, sBJFLID, dCLCBLR, sCLCBLX, sCZLM, sJCLLX, sLJJCLLX, sZDXJJCLLX, sJYF, sYFWLID, sBJHYF, sCPBJMRXSWS, tmpXSWS, GetOption("BJU002"), bWBJ, bFWG, ref sErrorMsg);
if (!sErrorMsg.Equals(""))
{
ShowMessage(sErrorMsg);
}
if (VnewID > 0)
{
#region 删除临时表
SQL.Clear();
SQL.Add("delete from V_BJDXH where V_BJDXH_ID=:pVID and V_BJDXH_BJDID =:pBJDID ");
SQL.ParamByName("pVID").Value = VnewID;
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
#endregion
}
//刷新
moduleGV_PageIndexChanging(null, null);
FormAreaUpdate();
}
protected void btnRefreshBJXJ_Click(object sender, EventArgs e)
{
string sBJDID = PageParam.GetRTrimString("BJDID");
string sJCLLX = PageParam.GetRTrimString("JCLLX");
string sLJJCLLX = PageParam.GetRTrimString("LJJCLLX");
string sBJFLID = PageParam.GetRTrimString("BJFLID");
string sCPBJMRXSWS = PageParam.GetRTrimString("CPBJMRXSWS");
string sZDXJJCLLX = PageParam.GetRTrimString("ZDXJJCLLX");
string sJYF = PageParam.GetRTrimString("JYF");
string sYFWLID = PageParam.GetRTrimString("YFWLID");
string sBJHYF = PageParam.GetRTrimString("BJHYF");
string[] sTZZ = txtTZZ.Value.Split('|');
if (sTZZ.Length != 4)
{
return;
}
string sSZFW = sTZZ[0].Trim();//Y整单记录、N勾选记录
double dKDYZ = CMISproConvert.StrToFloat(sTZZ[1].Trim(), 0);
double dJJYZ = CMISproConvert.StrToFloat(sTZZ[2].Trim(), 0);
//调整范围
string sTJFW = sTZZ[3].Trim();
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sBJDXHList = "";
int VnewID = 0;
if (sSZFW.Equals("N"))//调价范围:N|勾选记录
{
if (!(grdContentGrid.CheckBox && !String.IsNullOrEmpty(grdContentGrid.CheckedRowIndexs)))
{
return;
}
string[] sTempArr = grdContentGrid.CheckedRowIndexs.Split(new char[] { ',' });
foreach (string sIndex in sTempArr)
{
int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim());
string sBJDXH = grdContentGrid.DataKeys[iRowIndex]["XLXSBJDMX_XH"].ToString().Trim();
if (!sBJDXH.Equals("") && !sBJDXH.Equals("0"))
{
sBJDXHList += sBJDXH + ",";
}
}
sBJDXHList = sBJDXHList.TrimEnd(',');
}
else if (txtPLSZAll.Value.Trim().Equals("C"))
{
#region 创建临时表
DateTime TimeStamp = MISproUtils.GetServerTime();
VnewID = CMISproDataBase.GetMaxXH("DBERP", "V_BJDXH", "V_BJDXH_ID", "") + 1;
base.InitEntityByCondition();
SQL.Clear();
SQL.Add(" insert into V_BJDXH(V_BJDXH_ID,V_BJDXH_TIMESTAMP,V_BJDXH_BJDID,V_BJDXH_BJDXH )");
SQL.Add(" select distinct :pID,:pTime,XLXSBJDMX_BJDID, XLXSBJDMX_XH ");
SQL.Add(" from XLXSBJDMX ");
SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID ");
SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID=XLXSBJDMX_DYDJID ");
SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID ");
SQL.Add(" left join XLGGB on XLGGB_XLGGID= XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') ");
if (XLBJDUtils.ExistXSCPML())
{
SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') ");
SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' ");
SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID= (case when XHMLA.XLXSBJXHML_CPMLID is null then XHMLB.XLXSBJXHML_CPMLID else XHMLA.XLXSBJXHML_CPMLID end ) ");
}
SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID ");
SQL.Add(GetCondition());
SQL.ParamByName("pID").Value = VnewID;
SQL.ParamByName("pTime").Value = TimeStamp;
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
#endregion
}
string sErrorMsg = "";
XLBJDInfo.PLTJ_BJXJ(sBJDXHList, VnewID, sBJDID, sBJFLID, sJCLLX, sLJJCLLX, sZDXJJCLLX, sJYF, sYFWLID, sBJHYF, sCPBJMRXSWS, GetOption("BJU002"), sTJFW, dKDYZ, dJJYZ, ref sErrorMsg);
if (!sErrorMsg.Equals(""))
{
ShowMessage(sErrorMsg);
}
if (VnewID > 0)
{
#region 删除临时表
SQL.Clear();
SQL.Add("delete from V_BJDXH where V_BJDXH_ID=:pVID and V_BJDXH_BJDID =:pBJDID ");
SQL.ParamByName("pVID").Value = VnewID;
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
#endregion
}
//刷新
moduleGV_PageIndexChanging(null, null);
FormAreaUpdate();
}
//判断模块是否存在并且是否有权限
private bool CheckModule(string sUMID)
{
int iUMID = CMISproConvert.StrToInt(sUMID);
UserRight UR = OpRightUtils.GetUserRight(tSession.UserId, iUMID);
return (DSActiveModule.IsActiveModule(iUMID) && UR.Open);
}
protected void btnGXBJCP_Click(object sender, EventArgs e)
{
string sBJDID = PageParam.GetRTrimString("BJDID");
string sSCFW = "勾选明细";
bool bSCSC = false;
if (!(grdContentGrid.CheckBox && !String.IsNullOrEmpty(grdContentGrid.CheckedRowIndexs)))
{
bSCSC = true;
sSCFW = "所查明细";
}
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sBJDXHList = "";
int VnewID = 0;
if (bSCSC)
{
#region 创建临时表
DateTime TimeStamp = MISproUtils.GetServerTime();
VnewID = CMISproDataBase.GetMaxXH("DBERP", "V_BJDXH", "V_BJDXH_ID", "") + 1;
base.InitEntityByCondition();
SQL.Clear();
SQL.Add(" insert into V_BJDXH(V_BJDXH_ID,V_BJDXH_TIMESTAMP,V_BJDXH_BJDID,V_BJDXH_BJDXH )");
SQL.Add(" select distinct :pID,:pTime,XLXSBJDMX_BJDID, XLXSBJDMX_XH ");
SQL.Add(" from XLXSBJDMX ");
SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID ");
SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID=XLXSBJDMX_DYDJID ");
SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID ");
SQL.Add(" left join XLGGB on XLGGB_XLGGID= XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') ");
if (XLBJDUtils.ExistXSCPML())
{
SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') ");
SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' ");
SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID= (case when XHMLA.XLXSBJXHML_CPMLID is null then XHMLB.XLXSBJXHML_CPMLID else XHMLA.XLXSBJXHML_CPMLID end ) ");
}
SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID ");
SQL.Add(GetCondition());
SQL.ParamByName("pID").Value = VnewID;
SQL.ParamByName("pTime").Value = TimeStamp;
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID");
dberp.ExecSQL(SQL);
#endregion
}
else
{
if (!(grdContentGrid.CheckBox && !String.IsNullOrEmpty(grdContentGrid.CheckedRowIndexs)))
{
return;
}
string[] sTempArr = grdContentGrid.CheckedRowIndexs.Split(new char[] { ',' });
foreach (string sIndex in sTempArr)
{
int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim());
string sBJDXH = grdContentGrid.DataKeys[iRowIndex]["XLXSBJDMX_XH"].ToString().Trim();
if (!sBJDXH.Equals("") && !sBJDXH.Equals("0"))
{
sBJDXHList += sBJDXH + ",";
}
}
sBJDXHList = sBJDXHList.TrimEnd(',');
}
string sWarning = "将更新" + sSCFW + "报价产品,是否继续?";
Confirm.Register("IsQD", sWarning);
Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No;
if (Confirm.GetValue("IsQD").Trim().Equals(""))
{
Confirm.Ask("IsQD");
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("N"))
{
//表示进行了提示并选择了取消,直接返回或其他处理
Confirm.Clear();
if (VnewID > 0)
{
#region 删除临时表
SQL.Clear();
SQL.Add("delete from V_BJDXH where V_BJDXH_ID=:pVID and V_BJDXH_BJDID =:pBJDID ");
SQL.ParamByName("pVID").Value = VnewID;
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
#endregion
}
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("Y"))
{
Confirm.Clear();
SQL.Clear();
SQL.Add(" update XLXSBJDMX set XLXSBJDMX_BJCP=ISNULL(rtrim(XLXSBJDMX_XLXHID), '')+' '+ISNULL(rtrim(XLXSBJDMX_DYDJID), '')+' '+ISNULL(rtrim(XLXSBJDMX_XLGGID), '') ");
SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID ");
if (!sBJDXHList.Equals(""))
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList));
if (VnewID > 0)
{
SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) ");
SQL.ParamByName("pID").Value = VnewID;
}
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
if (VnewID > 0)
{
#region 删除临时表
SQL.Clear();
SQL.Add("delete from V_BJDXH where V_BJDXH_ID=:pVID and V_BJDXH_BJDID =:pBJDID ");
SQL.ParamByName("pVID").Value = VnewID;
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
#endregion
}
//刷新
moduleGV_PageIndexChanging(null, null);
FormAreaUpdate();
}
}
#endregion
}
}