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

1569 lines
90 KiB
C#

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GThinking.N_MODEL.Page;
using GThinking.N_MISPRO.Data;
using GThinking.N_MISPRO;
using GThinking.N_MISPRO.Utility;
using System.Text;
using System.Collections.Generic;
namespace GThinking.N_XLXSBJ
{
public partial class XLBJD_BDBJList : SingleGridBase
{
XLBJD_BDBJ entity = new XLBJD_BDBJ();
XLBJD_BDBJ_M queryentity = new XLBJD_BDBJ_M();
int iXSWS;
string sJCLLX;
string sLJJCLLX;
string sBJLJJCLLX;
string sBJDID;
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860000;
this.UMName = "线缆销售报价单";
this.CurMaster = Master;
this.ModuleGV = grdGrid;
this.CurEntity = entity;
this.CurQueryEntity = queryentity;
this.sQueryURLTarget = "XLBJD_BDBJQuery.aspx";
this.PageHeight = 600;
this.PageWidth = 750;
base.DataKeyNames = new string[] { "BJDID", "BJDXH", "CPBJ", "CLCBLRL", "LRL", "BDBJDID", "BDBJDXH",
"BDBZ","XLXHID","XLGGID","XLBZID","DYDJID",
"YZZ01","YZZ02","YZZ03","YZZ04","YZZ05","YZZ06","YZZ07","YZZ08","YZZ09","YZZ10",
"YZZ11","YZZ12","YZZ13","YZZ14","YZZ15","YZZ16","YZZ17","YZZ18","YZZ19","YZZ20",
"BJDZFLX"};
Master.EnableNewBtn = false;
Master.EnableCopyBtn = false;
Master.EnableEditBtn = false;
Master.EnableViewBtn = false;
Master.EnableDeleteBtn = false;
if (!IsPostBack)
{
InitQuery();
Dictionary<string, string> dicBJDYZ = XLBJDUtils.GetBJDYZ(PageParam.GetRTrimString("BJFLID"));
txtBJDYZ.Value = dicBJDYZ["BJDYZ"];
}
sJCLLX = PageParam.GetRTrimString("JCLLX");
sLJJCLLX = PageParam.GetRTrimString("LJJCLLX");
sBJLJJCLLX = PageParam.GetRTrimString("BJLJJCLLX");
sBJDID = PageParam.GetRTrimString("BJDID");
iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002"));
if (iXSWS < 0)
iXSWS = 0;
else if (iXSWS > 8)
iXSWS = 8;
if (PageParam.GetRTrimString("CanEdit").Equals("N"))
{
btnCPBJ.Visible = false;
btnCLCBLRL.Visible = false;
btnLRL.Visible = false;
btnPLHF.Visible = false;
}
base.InitPage();
this.ModuleGV.OnClientDblClick = "return false;";
if (!IsPostBack)
{
Master_OnStandardQuery(null, null);
}
TPageParams tpp = new TPageParams();
tpp.AddString("BJDID", PageParam.GetRTrimString("BJDID"));
tpp.AddString("BJFLID", PageParam.GetRTrimString("BJFLID"));
tpp.AddString("XM", PageParam.GetRTrimString("XM"));
tpp.AddString("KH", PageParam.GetRTrimString("KH"));
tpp.AddString("BJRQS", CMISproConvert.StrToDateTime(PageParam.GetRTrimString("BJRQ")).AddDays(-180).ToString().Trim());
tpp.AddString("BJRQZ", PageParam.GetRTrimString("BJRQ"));
QueryPageParam = tpp;
}
#region 模板事件
protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//比对列
int indexBDBZ = grdGrid.Columns.IndexOf(grdGrid.FindColumnByFieldName("BDBZ"));
//型号规格标准电压等级
string sBJCP = "";
int indexBJCPXX = grdGrid.Columns.IndexOf(grdGrid.FindColumnByFieldName("BJCPXX"));
string sXLXHID = grdGrid.DataKeys[e.Row.RowIndex]["XLXHID"].ToString().Trim();
string sXLGGID = grdGrid.DataKeys[e.Row.RowIndex]["XLGGID"].ToString().Trim();
string sXLBZID = grdGrid.DataKeys[e.Row.RowIndex]["XLBZID"].ToString().Trim();
string sDYDJID = grdGrid.DataKeys[e.Row.RowIndex]["DYDJID"].ToString().Trim();
//报价单因子
int indexBJDYZ = grdGrid.Columns.IndexOf(grdGrid.FindColumnByFieldName("BJDYZ"));
string sYZZ01 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ01"].ToString().Trim();
string sYZZ02 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ02"].ToString().Trim();
string sYZZ03 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ03"].ToString().Trim();
string sYZZ04 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ04"].ToString().Trim();
string sYZZ05 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ05"].ToString().Trim();
string sYZZ06 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ06"].ToString().Trim();
string sYZZ07 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ07"].ToString().Trim();
string sYZZ08 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ08"].ToString().Trim();
string sYZZ09 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ09"].ToString().Trim();
string sYZZ10 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ10"].ToString().Trim();
string sYZZ11 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ11"].ToString().Trim();
string sYZZ12 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ12"].ToString().Trim();
string sYZZ13 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ13"].ToString().Trim();
string sYZZ14 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ14"].ToString().Trim();
string sYZZ15 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ15"].ToString().Trim();
string sYZZ16 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ16"].ToString().Trim();
string sYZZ17 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ17"].ToString().Trim();
string sYZZ18 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ18"].ToString().Trim();
string sYZZ19 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ19"].ToString().Trim();
string sYZZ20 = grdGrid.DataKeys[e.Row.RowIndex]["YZZ20"].ToString().Trim();
//报价-料价价差率-表价价差率
int indexCPBJ = grdGrid.Columns.IndexOf(grdGrid.FindColumnByFieldName("CPBJ"));
int indexCLCBLRL = grdGrid.Columns.IndexOf(grdGrid.FindColumnByFieldName("CLCBLRL"));
int indexLRL = grdGrid.Columns.IndexOf(grdGrid.FindColumnByFieldName("LRL"));
//比对报价单的单击操作==报价-料价价差率-表价价差率
//该报价/改材料料价价差率/改表价/原值/异常
if (e.Row.Cells[indexBDBZ].Text.ToString().Trim().Contains("改") || e.Row.Cells[indexBDBZ].Text.ToString().Trim().Contains("原值") || e.Row.Cells[indexBDBZ].Text.ToString().Trim().Equals("异常"))
{
//还原
if (e.Row.Cells[indexBDBZ].Text.ToString().Trim().Contains("改"))
{
e.Row.Cells[indexBDBZ].Text = string.Format("<A href='#' style=\"color:red;\" onclick=\"RecoveryClick('Recovery','{0}','{1}','{2}','{3}') \"><U>" + e.Row.Cells[indexBDBZ].Text.ToString().Trim() + "</U></A>",
grdGrid.DataKeys[e.Row.RowIndex]["BJDID"].ToString().Trim(), grdGrid.DataKeys[e.Row.RowIndex]["BJDXH"].ToString().Trim(),
grdGrid.DataKeys[e.Row.RowIndex]["BDBJDID"].ToString().Trim(), grdGrid.DataKeys[e.Row.RowIndex]["BDBJDXH"].ToString().Trim());
}
e.Row.Cells[indexCPBJ].Text = string.Format("<A href='#' style=\"color:red;\" onclick=\"CellClick('GLTZBJ','{0}','{1}','{2}','{3}','{4}') \"><U>" + XLBJDUtils.strPadRight(e.Row.Cells[indexCPBJ].Text.ToString().Trim(), iXSWS) + "</U></A>", grdGrid.DataKeys[e.Row.RowIndex]["CPBJ"].ToString().Trim(),
grdGrid.DataKeys[e.Row.RowIndex]["BJDID"].ToString().Trim(), grdGrid.DataKeys[e.Row.RowIndex]["BJDXH"].ToString().Trim(),
grdGrid.DataKeys[e.Row.RowIndex]["BDBJDID"].ToString().Trim(), grdGrid.DataKeys[e.Row.RowIndex]["BDBJDXH"].ToString().Trim());
e.Row.Cells[indexCLCBLRL].Text = string.Format("<A href='#' style=\"color:red;\" onclick=\"CellClick('GLTZCLCBLRL','{0}','{1}','{2}','{3}','{4}') \"><U>" + XLBJDUtils.strPadRight(e.Row.Cells[indexCLCBLRL].Text.ToString().Trim(),2) + "</U></A>", grdGrid.DataKeys[e.Row.RowIndex]["CLCBLRL"].ToString().Trim(),
grdGrid.DataKeys[e.Row.RowIndex]["BJDID"].ToString().Trim(), grdGrid.DataKeys[e.Row.RowIndex]["BJDXH"].ToString().Trim(),
grdGrid.DataKeys[e.Row.RowIndex]["BDBJDID"].ToString().Trim(), grdGrid.DataKeys[e.Row.RowIndex]["BDBJDXH"].ToString().Trim());
e.Row.Cells[indexLRL].Text = string.Format("<A href='#' style=\"color:red;\" onclick=\"CellClick('GLTZLRL','{0}','{1}','{2}','{3}','{4}') \"><U>" + XLBJDUtils.strPadRight(e.Row.Cells[indexLRL].Text.ToString().Trim(),2) + "</U></A>", grdGrid.DataKeys[e.Row.RowIndex]["LRL"].ToString().Trim(),
grdGrid.DataKeys[e.Row.RowIndex]["BJDID"].ToString().Trim(), grdGrid.DataKeys[e.Row.RowIndex]["BJDXH"].ToString().Trim(),
grdGrid.DataKeys[e.Row.RowIndex]["BDBJDID"].ToString().Trim(), grdGrid.DataKeys[e.Row.RowIndex]["BDBJDXH"].ToString().Trim());
}
//关联报价单
else
{
e.Row.Cells[indexCPBJ].Text = string.Format("<A href='#' style=\"color:blue;\" onclick=\"CellClick('CPBJ','{0}','{1}','{2}','{3}','{4}') \"><U>" + XLBJDUtils.strPadRight(e.Row.Cells[indexCPBJ].Text.ToString().Trim(), iXSWS) + "</U></A>", grdGrid.DataKeys[e.Row.RowIndex]["CPBJ"].ToString().Trim(),
grdGrid.DataKeys[e.Row.RowIndex]["BJDID"].ToString().Trim(), grdGrid.DataKeys[e.Row.RowIndex]["BJDXH"].ToString().Trim(),
grdGrid.DataKeys[e.Row.RowIndex]["BDBJDID"].ToString().Trim(), grdGrid.DataKeys[e.Row.RowIndex]["BDBJDXH"].ToString().Trim());
e.Row.Cells[indexCLCBLRL].Text = string.Format("<A href='#' style=\"color:blue;\" onclick=\"CellClick('CLCBLRL','{0}','{1}','{2}','{3}','{4}') \"><U>" + XLBJDUtils.strPadRight(e.Row.Cells[indexCLCBLRL].Text.ToString().Trim(),2) + "</U></A>", grdGrid.DataKeys[e.Row.RowIndex]["CLCBLRL"].ToString().Trim(),
grdGrid.DataKeys[e.Row.RowIndex]["BJDID"].ToString().Trim(), grdGrid.DataKeys[e.Row.RowIndex]["BJDXH"].ToString().Trim(),
grdGrid.DataKeys[e.Row.RowIndex]["BDBJDID"].ToString().Trim(), grdGrid.DataKeys[e.Row.RowIndex]["BDBJDXH"].ToString().Trim());
e.Row.Cells[indexLRL].Text = string.Format("<A href='#' style=\"color:blue;\" onclick=\"CellClick('LRL','{0}','{1}','{2}','{3}','{4}') \"><U>" + XLBJDUtils.strPadRight(e.Row.Cells[indexLRL].Text.ToString().Trim(),2) + "</U></A>", grdGrid.DataKeys[e.Row.RowIndex]["LRL"].ToString().Trim(),
grdGrid.DataKeys[e.Row.RowIndex]["BJDID"].ToString().Trim(), grdGrid.DataKeys[e.Row.RowIndex]["BJDXH"].ToString().Trim(),
grdGrid.DataKeys[e.Row.RowIndex]["BDBJDID"].ToString().Trim(), grdGrid.DataKeys[e.Row.RowIndex]["BDBJDXH"].ToString().Trim());
}
//拼接型号规格标准电压等级颜色
try
{
sBJCP = sXLXHID + "|" + sXLGGID + "|" + sXLBZID + "|" + sDYDJID;
e.Row.Cells[indexBJCPXX].Text = sBJCP.Replace("||", "|").TrimEnd('|');
}
catch
{
e.Row.Cells[indexBJCPXX].Text = "";
}
//拼接报价单因子值
try
{
e.Row.Cells[indexBJDYZ].Text = sYZZ01
+ "|" + sYZZ02
+ "|" + sYZZ03
+ "|" + sYZZ04
+ "|" + sYZZ05
+ "|" + sYZZ06
+ "|" + sYZZ07
+ "|" + sYZZ08
+ "|" + sYZZ09
+ "|" + sYZZ10
+ "|" + sYZZ11
+ "|" + sYZZ12
+ "|" + sYZZ13
+ "|" + sYZZ14
+ "|" + sYZZ15
+ "|" + sYZZ16
+ "|" + sYZZ17
+ "|" + sYZZ18
+ "|" + sYZZ19
+ "|" + sYZZ20;
}
catch
{
e.Row.Cells[indexBJDYZ].Text = "";
}
}
base.moduleGV_RowDataBound(sender, e);
}
protected override void Master_OnStandardQuery(object sender, EventArgs e)
{
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = GetSQL();
base.Master_OnStandardQuery(sender, e);
initGrid();
entity.GridDataBind(grdGrid, tSession);
}
protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = GetSQL();
grdGrid.SelectedIndex = -1;
initGrid();
base.moduleGV_PageIndexChanging(sender, e);
}
#endregion
#region 关联修改&&恢复
protected void btnTZJG_Click(object sender, EventArgs e)
{
if (PageParam.GetRTrimString("CanEdit").Equals("N"))
return;
DataSet ds = null;
string flag = txtFLAG.Value.Trim();
string sJCLLX = PageParam.GetRTrimString("JCLLX");
string sLJJCLLX = PageParam.GetRTrimString("LJJCLLX");
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
if (flag == "CPBJ" || flag == "CLCBLRL" || flag == "LRL")
{
ds = entity.GetXLXSBJDMX_ds(txtBJDID.Value.Trim(), txtBJDXH.Value.Trim());
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
string Num = txtVALUE.Value.Trim();
string sBJDID = ds.Tables[0].Rows[0]["XLXSBJDMX_BJDID"].ToString().Trim();
string sBJDXH = ds.Tables[0].Rows[0]["XLXSBJDMX_XH"].ToString().Trim();
string sBDBJDID = txtBDBJDID.Value.Trim();
string sBDBJDXH = txtBDBJDXH.Value.Trim();
SQL.Clear();
SQL.Add(" update XLXSBJDBDMX set ");
SQL.Add(" XLXSBJDBDMX_BDBZ=:XLXSBJDBDMX_BDBZ, ");
SQL.Add(" XLXSBJDBDMX_BDBJDID=:XLXSBJDBDMX_BDBJDID, ");
SQL.Add(" XLXSBJDBDMX_BDXH=:XLXSBJDBDMX_BDXH ");
SQL.Add(" where XLXSBJDBDMX_BJDID=:XLXSBJDMX_BJDID ");
SQL.Add(" and XLXSBJDBDMX_XH=:XLXSBJDMX_XH ");
SQL.ParamByName("XLXSBJDBDMX_BDBZ").Value = flag.Equals("CPBJ") ? "1" : (flag.Equals("CLCBLRL") ? "2" : (flag.Equals("LRL") ? "3" : ""));
SQL.ParamByName("XLXSBJDBDMX_BDBJDID").Value = sBDBJDID;
SQL.ParamByName("XLXSBJDBDMX_BDXH").Value = sBDBJDXH;
SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID;
SQL.ParamByName("XLXSBJDMX_XH").Value = sBJDXH;
dberp.ExecSQL(SQL);
//改报价
if (flag == "CPBJ")
{
//报价发生变化,反算调整报价(%)
double dTZQCPBJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0);
double dCPBJ = CMISproConvert.StrToFloat(Num, 0);
double dBJSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_BJSL"].ToString().Trim(), 0);
double dCPJJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0);
double dCLCB = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_CLCB"].ToString().Trim(), 0);
double dBJDHQCLCB = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0);
double dTZJG = 0;
if (dTZQCPBJ != 0)
dTZJG = 100 * (dCPBJ - dTZQCPBJ) / dTZQCPBJ;
double dTZQBJJE = NumberUtils.RoundX(dBJSL * dCPBJ, 2);
double dTZJE = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0);
double dBJJE = dTZQBJJE + dTZJE;
double dLRE = 0;
if (sJCLLX.Trim().Equals("1"))//表价价差率公式
dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2);
else if (sJCLLX.Trim().Equals("2"))
dLRE = NumberUtils.RoundX(dCPJJ * dBJSL, 2) - dBJJE;
else if (sJCLLX.Trim().Equals("4"))
dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2);
//计算价差率
double dtmpLRE = 0;
if (sJCLLX.Trim().Equals("1"))//表价价差率公式
dtmpLRE = dBJJE - dCPJJ * dBJSL;
else if (sJCLLX.Trim().Equals("2"))
dtmpLRE = dCPJJ * dBJSL - dBJJE;
else if (sJCLLX.Trim().Equals("4"))
dtmpLRE = dBJJE - dCPJJ * dBJSL;
double dtmpCPJE = dCPJJ * dBJSL;
//表价价差率公式
//表价金额
double dCPJE = NumberUtils.RoundX(dCPJJ * dBJSL, 2);
double dLRL = 0.0;
if (sJCLLX.Trim().Equals("1"))
{
if (dBJJE != 0)
dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2);
}
else if (sJCLLX.Trim().Equals("2"))
{
if (dtmpCPJE != 0)
dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2);
}
else if (sJCLLX.Trim().Equals("3"))
{
if (dBJJE != 0)
dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2);
}
else if (sJCLLX.Trim().Equals("4"))
{
if (dtmpCPJE != 0)
dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2);
}
double dCLCBLRL = 0.0;
if (sLJJCLLX.Trim().Equals("1"))
{
double dCLCBLRE = dBJJE - dCLCB * dBJSL;
if (dBJJE != 0)
dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2);
}
else if (sLJJCLLX.Trim().Equals("2"))
{
double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL;
if (dBJJE != 0)
dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2);
}
else if (sLJJCLLX.Trim().Equals("3"))
{
double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL;
if (dBJDHQCLCB * dBJSL != 0)
dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2);
}
else if (sLJJCLLX.Trim().Equals("4"))
{
double dCLCBLRE = dBJDHQCLCB * dBJSL;
if (dBJJE != 0)
dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2);
}
SQL.Clear();
SQL.Add(" update XLXSBJDMX set XLXSBJDMX_TZCPBJ=:XLXSBJDMX_TZCPBJ, XLXSBJDMX_TZQBJJE =:XLXSBJDMX_TZQBJJE, ");
SQL.Add(" XLXSBJDMX_BJJE=:XLXSBJDMX_BJJE, XLXSBJDMX_JGBBJJCL =:XLXSBJDMX_JGBBJJCL, ");
SQL.Add(" XLXSBJDMX_JGBBJJCE=:XLXSBJDMX_JGBBJJCE, XLXSBJDMX_CLCBJCL =:XLXSBJDMX_CLCBJCL,XLXSBJDMX_CPBJ=:XLXSBJDMX_CPBJ ");
SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_XH=:XLXSBJDMX_XH ");
SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID;
SQL.ParamByName("XLXSBJDMX_XH").Value = sBJDXH;
SQL.ParamByName("XLXSBJDMX_TZCPBJ").Value = dTZJG.ToString();
SQL.ParamByName("XLXSBJDMX_TZQBJJE").Value = dTZQBJJE.ToString();
SQL.ParamByName("XLXSBJDMX_BJJE").Value = dBJJE.ToString();
SQL.ParamByName("XLXSBJDMX_JGBBJJCL").Value = dLRL.ToString().Trim();
SQL.ParamByName("XLXSBJDMX_JGBBJJCE").Value = dLRE.ToString().Trim();
SQL.ParamByName("XLXSBJDMX_CLCBJCL").Value = dCLCBLRL.ToString().Trim();
SQL.ParamByName("XLXSBJDMX_CPBJ").Value = dCPBJ.ToString().Trim();
dberp.ExecSQL(SQL);
}
//改材料料价价差率
else if (flag == "CLCBLRL")
{
//CLCBLRL----这里程序做了制约:不变调整金额,变调整报价(%)
double dCLCBLRL = CMISproConvert.StrToFloat(Num, 0);
double dTZJE = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0);
double dBJSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_BJSL"].ToString().Trim(), 0);
double dTZQCPBJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0);
double dCPJJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0);
double dCLCB = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_CLCB"].ToString().Trim(), 0);
double dBJDHQCLCB = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0);
if (dBJSL != 0)
{
double dBJJE = 0;
if (sLJJCLLX.Trim().Equals("1"))//1|(调整后报价金额-价格表行情料价金额)/调整后报价金额*100
{
//double dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0);
if (dCLCBLRL != 100)
dBJJE = NumberUtils.RoundX(dBJSL * dCLCB / (1 - dCLCBLRL / 100), 2);
}
else if (sLJJCLLX.Trim().Equals("2"))//2|(调整后报价金额-报价单行情料价金额)/调整后报价金额*100
{
//double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0);
if (dCLCBLRL != 100)
dBJJE = NumberUtils.RoundX(dBJSL * dBJDHQCLCB / (1 - dCLCBLRL / 100), 2);
}
else if (sLJJCLLX.Trim().Equals("3"))//3|(调整后报价金额-报价单行情料价金额)/报价单行情料价金额*100
{
//double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0);
dBJJE = NumberUtils.RoundX(dBJSL * dBJDHQCLCB * (1 + dCLCBLRL / 100), 2);
}
else if (sLJJCLLX.Trim().Equals("4"))//4|(报价单行情料价金额)/调整后报价金额*100
{
//double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0);
if (dCLCBLRL != 0)
dBJJE = NumberUtils.RoundX(dBJSL * dBJDHQCLCB / (dCLCBLRL / 100), 2);
}
double dTZQBJJE = dBJJE - dTZJE;
double dCPBJ = dTZQBJJE / dBJSL;
double dTZJG = 0;
if (dTZQCPBJ != 0)
dTZJG = 100 * (dCPBJ - dTZQCPBJ) / dTZQCPBJ;
//重算表价价差率
double dLRE = 0;
if (sJCLLX.Trim().Equals("1"))//表价价差率公式
dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2);
else if (sJCLLX.Trim().Equals("2"))
dLRE = NumberUtils.RoundX(dCPJJ * dBJSL, 2) - dBJJE;
else if (sJCLLX.Trim().Equals("4"))
dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2);
//计算价差率
double dtmpLRE = 0;
if (sJCLLX.Trim().Equals("1"))//表价价差率公式
dtmpLRE = dBJJE - dCPJJ * dBJSL;
else if (sJCLLX.Trim().Equals("2"))
dtmpLRE = dCPJJ * dBJSL - dBJJE;
else if (sJCLLX.Trim().Equals("4"))
dtmpLRE = dBJJE - dCPJJ * dBJSL;
double dtmpCPJE = dCPJJ * dBJSL;
//表价价差率公式
//表价金额
double dCPJE = NumberUtils.RoundX(dCPJJ * dBJSL, 2);
double dLRL = 0.0;
if (sJCLLX.Trim().Equals("1"))
{
if (dBJJE != 0)
dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2);
}
else if (sJCLLX.Trim().Equals("2"))
{
if (dtmpCPJE != 0)
dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2);
}
else if (sJCLLX.Trim().Equals("3"))
{
if (dBJJE != 0)
dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2);
}
else if (sJCLLX.Trim().Equals("4"))
{
if (dtmpCPJE != 0)
dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2);
}
SQL.Clear();
SQL.Add(" update XLXSBJDMX set XLXSBJDMX_BJJE=:XLXSBJDMX_BJJE, XLXSBJDMX_TZQBJJE =:XLXSBJDMX_TZQBJJE, ");
SQL.Add(" XLXSBJDMX_CPBJ=:XLXSBJDMX_CPBJ, XLXSBJDMX_TZCPBJ =:XLXSBJDMX_TZCPBJ, ");
SQL.Add(" XLXSBJDMX_JGBBJJCL=:XLXSBJDMX_JGBBJJCL, XLXSBJDMX_JGBBJJCE =:XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLCBJCL=:XLXSBJDMX_CLCBJCL ");
SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_XH=:XLXSBJDMX_XH ");
SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID;
SQL.ParamByName("XLXSBJDMX_XH").Value = sBJDXH;
SQL.ParamByName("XLXSBJDMX_BJJE").Value = dBJJE.ToString();
SQL.ParamByName("XLXSBJDMX_TZQBJJE").Value = dTZQBJJE.ToString();
SQL.ParamByName("XLXSBJDMX_CPBJ").Value = dCPBJ.ToString();
SQL.ParamByName("XLXSBJDMX_TZCPBJ").Value = dTZJG.ToString();
SQL.ParamByName("XLXSBJDMX_JGBBJJCL").Value = dLRL.ToString();
SQL.ParamByName("XLXSBJDMX_JGBBJJCE").Value = dLRE.ToString();
SQL.ParamByName("XLXSBJDMX_CLCBJCL").Value = dCLCBLRL.ToString();
dberp.ExecSQL(SQL);
}
}
//改表价价差率
else if (flag == "LRL")
{
//LRL----这里程序做了制约:不变调整金额,变调整报价(%)
double dLRL = CMISproConvert.StrToFloat(Num, 0);
double dTZJE = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0);
double dBJSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_BJSL"].ToString().Trim(), 0);
double dTZQCPBJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0);
double dCPJJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0);
double dCLCB = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_CLCB"].ToString().Trim(), 0);
double dBJDHQCLCB = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0);
if (dBJSL != 0)
{
//表价价差率公式
double dBJJE = 0;
double dLRE = 0;
if (sJCLLX.Trim().Equals("1"))//1|(调整后报价金额-表价金额)/调整后报价金额*100
{
if (dLRL != 100)
dBJJE = NumberUtils.RoundX(dBJSL * dCPJJ / (1 - dLRL / 100), 2);
dLRE = NumberUtils.RoundX(dLRL * dBJJE /100, 2);
}
else if (sJCLLX.Trim().Equals("2"))//2|(表价金额-调整后报价金额)/表价金额*100
{
if (dLRL != 100)
dBJJE = NumberUtils.RoundX(dBJSL * dCPJJ * (1 - dLRL / 100), 2);
dLRE = NumberUtils.RoundX(dLRL * dBJSL * dCPJJ /100, 2);
}
else if (sJCLLX.Trim().Equals("3"))//3|表价金额/调整后报价金额*100
{
if (dLRL != 0)
dBJJE = NumberUtils.RoundX(dBJSL * dCPJJ / (dLRL / 100), 2);
dLRE = 0;
}
else if (sJCLLX.Trim().Equals("4"))//4|(调整后报价金额-表价金额)/表价金额*100
{
if (dLRL != 100)
dBJJE = NumberUtils.RoundX(dBJSL * dCPJJ * (1 + dLRL / 100), 2);
dLRE = NumberUtils.RoundX(dLRL * dBJSL * dCPJJ / 100, 2);
}
double dTZQBJJE = dBJJE - dTZJE;
double dCPBJ = dTZQBJJE / dBJSL;
double dTZJG = 0;
if (dTZQCPBJ != 0)
dTZJG = 100 * (dCPBJ - dTZQCPBJ) / dTZQCPBJ;
//重算料价价差率
double dCLCBLRL = 0.0;
if (sLJJCLLX.Trim().Equals("1"))
{
double dCLCBLRE = dBJJE - dCLCB * dBJSL;
if (dBJJE != 0)
dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2);
}
else if (sLJJCLLX.Trim().Equals("2"))
{
double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL;
if (dBJJE != 0)
dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2);
}
else if (sLJJCLLX.Trim().Equals("3"))
{
double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL;
if (dBJDHQCLCB * dBJSL != 0)
dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2);
}
else if (sLJJCLLX.Trim().Equals("4"))
{
double dCLCBLRE = dBJDHQCLCB * dBJSL;
if (dBJJE != 0)
dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2);
}
SQL.Clear();
SQL.Add(" update XLXSBJDMX set XLXSBJDMX_BJJE=:XLXSBJDMX_BJJE, XLXSBJDMX_TZQBJJE =:XLXSBJDMX_TZQBJJE, ");
SQL.Add(" XLXSBJDMX_CPBJ=:XLXSBJDMX_CPBJ, XLXSBJDMX_TZCPBJ =:XLXSBJDMX_TZCPBJ, ");
SQL.Add(" XLXSBJDMX_JGBBJJCE=:XLXSBJDMX_JGBBJJCE, XLXSBJDMX_CLCBJCL =:XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJJCL=:XLXSBJDMX_JGBBJJCL ");
SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_XH=:XLXSBJDMX_XH ");
SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID;
SQL.ParamByName("XLXSBJDMX_XH").Value = sBJDXH;
SQL.ParamByName("XLXSBJDMX_BJJE").Value = dBJJE.ToString();
SQL.ParamByName("XLXSBJDMX_TZQBJJE").Value = dTZQBJJE.ToString();
SQL.ParamByName("XLXSBJDMX_CPBJ").Value = dCPBJ.ToString();
SQL.ParamByName("XLXSBJDMX_TZCPBJ").Value = dTZJG.ToString();
SQL.ParamByName("XLXSBJDMX_JGBBJJCE").Value = dLRE.ToString();
SQL.ParamByName("XLXSBJDMX_CLCBJCL").Value = dCLCBLRL.ToString();
SQL.ParamByName("XLXSBJDMX_JGBBJJCL").Value = dLRL.ToString();
dberp.ExecSQL(SQL);
}
}
AjaxRunScript(this, "setValue", "window.setTimeout('GetScrollTop();btnRefreshclick();', 100);");
}
}
//关联直接调整,需弹出页面。
else if (flag == "GLTZBJ" || flag == "GLTZCLCBLRL" || flag == "GLTZLRL")
{
TPageParams tpp = new TPageParams();
tpp.UrlPath = "XLBJD_BDBJInfo.aspx";
tpp.AddString("FLAG", flag);
tpp.AddString("BJDID", txtBJDID.Value);
tpp.AddString("BJDXH", txtBJDXH.Value);
tpp.AddString("JCLLX", sJCLLX);
tpp.AddString("LJJCLLX", sLJJCLLX);
tpp.AddString("iXSWS", iXSWS.ToString().Trim());
tpp.AddString("RefreshCtrlID", btnRefresh.ClientID.Trim());
OpenDialog(tpp);
}
}
//批量恢复
protected void btnPLHF_Click(object sender, EventArgs e)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sJCLLX = PageParam.GetRTrimString("JCLLX");
string sLJJCLLX = PageParam.GetRTrimString("LJJCLLX");
string sBJLJJCLLX = PageParam.GetRTrimString("BJLJJCLLX");
string sBJDID = PageParam.GetRTrimString("BJDID");
try
{
dberp.BeginTrans();
SQL.Clear();
SQL.Add(" update XLXSBJDBDMX set ");
SQL.Add(" XLXSBJDBDMX_BDBZ='0', ");
SQL.Add(" XLXSBJDBDMX_BDBJDID=' ', ");
SQL.Add(" XLXSBJDBDMX_BDXH=0 ");
SQL.Add(" where XLXSBJDBDMX_BJDID=:XLXSBJDBDMX_BJDID ");
SQL.ParamByName("XLXSBJDBDMX_BJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
SQL.Clear();
string sqlBJJE = "RoundFix(a.CPBJ*XLXSBJDMX_BJSL+XLXSBJDMX_TZBJJE,2)";
SQL.Clear();
SQL.Add(" update XLXSBJDMX set ");
SQL.Add(" XLXSBJDMX_CPBJ=a.CPBJ, ");
SQL.Add(" XLXSBJDMX_TZCPBJ=case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*(a.CPBJ-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,");
SQL.Add(" XLXSBJDMX_TZQBJJE=RoundFix(a.CPBJ*XLXSBJDMX_BJSL,2),");
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)," + iXSWS + "), ");
}
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 + "," + iXSWS + "), ");
}
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)," + iXSWS + "), ");
}
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");
}
if (sBJLJJCLLX.Equals("1"))//表价料价价差率公式
{
SQL.Add(",XLXSBJDMX_JGBBJLJJCL =case XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ when 0 then 0 else RoundFix((XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ - XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/ (XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * 100,2) end");
}
else
{
SQL.Add(",XLXSBJDMX_JGBBJLJJCL=0");
}
SQL.Add(" from ");
SQL.Add(" ( ");
SQL.Add(" select XLXSBJDBDMX_XH as XH,XLXSBJDBDMX_BJDID as BDBJDID,XLXSBJDBDMX_CPBJ as CPBJ ");
/*关联报价单号*/
SQL.Add(" from XLXSBJDBDMX where XLXSBJDBDMX_BJDID=:pBJDID ");
/*假设'1'代表改报价*/
SQL.Add(" ) a ");
/*关联报价单号*/
SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_BJDID = a.BDBJDID ");
SQL.Add(" and XLXSBJDMX_XH=a.XH ");
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
ShowMessage("恢复完成!");
dberp.CommitTrans();
AjaxRunScript(this, "setValue", "window.setTimeout('GetScrollTop();btnRefreshclick();', 100);");
}
catch (Exception ex)
{
ShowMessage("恢复出现异常,详细信息:" + ex);
dberp.RollbackTrans();
return;
}
}
//关联报价单恢复--单个恢复
protected void btnRecovery_Click(object sender, EventArgs e)
{
if (PageParam.GetRTrimString("CanEdit").Equals("N"))
return;
string sBJDID = txtBJDID.Value.Trim();
string sBJDXH = txtBJDXH.Value.Trim();
string sJCLLX = PageParam.GetRTrimString("JCLLX");
string sLJJCLLX = PageParam.GetRTrimString("LJJCLLX");
string sBJLJJCLLX = PageParam.GetRTrimString("BJLJJCLLX");
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
try
{
dberp.BeginTrans();
SQL.Clear();
SQL.Add(" update XLXSBJDBDMX set ");
SQL.Add(" XLXSBJDBDMX_BDBZ='0', ");
SQL.Add(" XLXSBJDBDMX_BDBJDID=' ', ");
SQL.Add(" XLXSBJDBDMX_BDXH=0 ");
SQL.Add(" where XLXSBJDBDMX_BJDID=:XLXSBJDBDMX_BJDID ");
SQL.Add(" and XLXSBJDBDMX_XH=:XLXSBJDBDMX_XH ");
SQL.ParamByName("XLXSBJDBDMX_BJDID").Value = sBJDID;
SQL.ParamByName("XLXSBJDBDMX_XH").Value = sBJDXH;
dberp.ExecSQL(SQL);
SQL.Clear();
string sqlBJJE = "RoundFix(a.CPBJ*XLXSBJDMX_BJSL+XLXSBJDMX_TZBJJE,2)";
SQL.Clear();
SQL.Add(" update XLXSBJDMX set ");
SQL.Add(" XLXSBJDMX_CPBJ=a.CPBJ, ");
SQL.Add(" XLXSBJDMX_TZCPBJ=case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*(a.CPBJ-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,");
SQL.Add(" XLXSBJDMX_TZQBJJE=RoundFix(a.CPBJ*XLXSBJDMX_BJSL,2),");
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)," + iXSWS + "), ");
}
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 + "," + iXSWS + "), ");
}
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)," + iXSWS + "), ");
}
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");
}
if (sBJLJJCLLX.Equals("1"))//表价料价价差率公式
{
SQL.Add(",XLXSBJDMX_JGBBJLJJCL =case XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ when 0 then 0 else RoundFix((XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ - XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/ (XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * 100,2) end");
}
else
{
SQL.Add(",XLXSBJDMX_JGBBJLJJCL=0");
}
SQL.Add(" from ");
SQL.Add(" ( ");
SQL.Add(" select XLXSBJDBDMX_XH as XH,XLXSBJDBDMX_BJDID as BDBJDID,XLXSBJDBDMX_CPBJ as CPBJ ");
/*关联报价单号*/
SQL.Add(" from XLXSBJDBDMX where XLXSBJDBDMX_BJDID=:pBJDID ");
SQL.Add(" and XLXSBJDBDMX_XH=:pXH ");
SQL.Add(" ) a ");
/*关联报价单号*/
SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_BJDID = a.BDBJDID ");
SQL.Add(" and XLXSBJDMX_XH=a.XH ");
SQL.ParamByName("pBJDID").Value = sBJDID;
SQL.ParamByName("pXH").Value = sBJDXH;
dberp.ExecSQL(SQL);
dberp.CommitTrans();
AjaxRunScript(this, "setValue", "window.setTimeout('GetScrollTop();btnRefreshclick();', 100);");
}
catch (Exception ex)
{
ShowMessage("恢复出现异常,详细信息:" + ex);
dberp.RollbackTrans();
return;
}
}
protected void btnRefresh_Click(object sender, EventArgs e)
{
int dex = grdGrid.SelectedIndex;
moduleGV_PageIndexChanging(null, null);
grdGrid.SelectedIndex = dex;
AjaxRunScript(this, "setValue", "window.setTimeout('SetScrollTop();', 100);");
}
#endregion
#region 自定义函数
private string GetSQL()
{
//BJDZFLX====报价单----1 比对报价单----0
StringBuilder SQL = new StringBuilder();
string sCXBJDID = CurQueryEntity.FieldByName("BJDHS").Value.Trim()+ "," + CurQueryEntity.FieldByName("ZBBJDID").Value.Trim();
SQL.AppendLine(" select a.XLXSBJDMX_BJDID as BJDID,a.XLXSBJDMX_XH as BJDXH, RTRIM(a.XLXSBJDMX_BJDID) ||'|'|| rtrim(convert(char,a.XLXSBJDMX_XSSX)) as BJDHZXX, a.XLXSBJDMX_XSSX AS XSSX, ");
SQL.AppendLine(" convert(char(20),null) as BDBJDID,convert(float,null) as BDBJDXH, :pBJRQ as BDBJDBJRQ, 1 as px, '1' as BJDZFLX,");
SQL.AppendLine(" ' ' AS BJCPXX, a.XLXSBJDMX_XLXHID as XLXHID,a.XLXSBJDMX_XLGGID as XLGGID,rtrim(a.XLXSBJDMX_XLBZID)|| '|' ||rtrim(XLBZ_XLBZLXMC) as XLBZID,a.XLXSBJDMX_DYDJID as DYDJID,rtrim(a.XLXSBJDMX_XLYSID)||'|'||rtrim(XLYSB_XLYSMC) as XLYSID, ");
SQL.AppendLine(" a.XLXSBJDMX_JLDW as JLDW,a.XLXSBJDMX_BJSL as BJSL, ");
SQL.AppendLine(" case when XLXSBJDBDMX_BDBZ = '0' then '原值' ");
SQL.AppendLine(" when XLXSBJDBDMX_BDBZ = '1' and isnull(XLXSBJDBDMX_BDBJDID,' ') <>' ' then '改报价(' || RTRIM(XLXSBJDBDMX_BDBJDID)||'|'||rtrim(convert(char,b.XLXSBJDMX_XSSX))||')' ");
SQL.AppendLine(" when XLXSBJDBDMX_BDBZ = '1' and isnull(XLXSBJDBDMX_BDBJDID,' ') = ' ' then '改报价' ");
SQL.AppendLine(" when XLXSBJDBDMX_BDBZ = '2' and isnull(XLXSBJDBDMX_BDBJDID,' ') <>' ' then '改材料料价价差率(' || RTRIM(XLXSBJDBDMX_BDBJDID)||'|'||rtrim(convert(char,b.XLXSBJDMX_XSSX))||')' ");
SQL.AppendLine(" when XLXSBJDBDMX_BDBZ = '2' and isnull(XLXSBJDBDMX_BDBJDID,' ') = ' ' then '改材料料价价差率' ");
SQL.AppendLine(" when XLXSBJDBDMX_BDBZ = '3' and isnull(XLXSBJDBDMX_BDBJDID,' ') <>' ' then '改表价价差率(' || RTRIM(XLXSBJDBDMX_BDBJDID)||'|'||rtrim(convert(char,b.XLXSBJDMX_XSSX))||')' ");
SQL.AppendLine(" when XLXSBJDBDMX_BDBZ = '3' and isnull(XLXSBJDBDMX_BDBJDID,' ') = ' ' then '改表价价差率' ");
SQL.AppendLine(" else '异常信息' end as BDBZ, ");
/*报价*/
SQL.AppendLine(" RoundFix(a.XLXSBJDMX_CPBJ," + iXSWS + ") as CPBJ, ");
/*料价价差率*/
SQL.AppendLine(" RoundFix(a.XLXSBJDMX_CLCBJCL,2) as CLCBLRL, ");
/*表价价差率*/
SQL.AppendLine(" RoundFix(a.XLXSBJDMX_JGBBJJCL,2) as LRL, ");
SQL.AppendLine(" a.XLXSBJDMX_JGBBJ as CPJJ, a.XLXSBJDMX_BJDHQCLCB as BJDHQCLCB, a.XLXSBJDMX_TZCPBJ as TZJG, a.XLXSBJDMX_BJJE as BJJE, ");
SQL.AppendLine(" ' ' as BJDYZ, XLXSBJDYZZ0_YZZ01 as YZZ01,XLXSBJDYZZ0_YZZ02 as YZZ02,XLXSBJDYZZ0_YZZ03 as YZZ03,XLXSBJDYZZ0_YZZ04 as YZZ04,XLXSBJDYZZ0_YZZ05 as YZZ05, ");
SQL.AppendLine(" XLXSBJDYZZ0_YZZ06 as YZZ06,XLXSBJDYZZ0_YZZ06 as YZZ07,XLXSBJDYZZ0_YZZ08 as YZZ08,XLXSBJDYZZ0_YZZ09 as YZZ09,XLXSBJDYZZ0_YZZ10 as YZZ10, ");
SQL.AppendLine(" XLXSBJDYZZ0_YZZ11 as YZZ11,XLXSBJDYZZ0_YZZ12 as YZZ12,XLXSBJDYZZ0_YZZ13 as YZZ13,XLXSBJDYZZ0_YZZ14 as YZZ14,XLXSBJDYZZ0_YZZ15 as YZZ15, ");
SQL.AppendLine(" XLXSBJDYZZ0_YZZ16 as YZZ16,XLXSBJDYZZ0_YZZ16 as YZZ17,XLXSBJDYZZ0_YZZ18 as YZZ18,XLXSBJDYZZ0_YZZ19 as YZZ19,XLXSBJDYZZ0_YZZ20 as YZZ20 ");
SQL.AppendLine(" from XLXSBJDMX a ");
/*关联以取得报价单调价因子值*/
SQL.AppendLine(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID = XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH = XLXSBJDMX_XH ");
SQL.AppendLine(" left join XLXSBJDBDMX on XLXSBJDBDMX_BJDID = XLXSBJDMX_BJDID and XLXSBJDBDMX_XH = XLXSBJDMX_XH ");
SQL.AppendLine(" left join XLXSBJDMX b on b.XLXSBJDMX_BJDID = XLXSBJDBDMX_BDBJDID and b.XLXSBJDMX_XH = XLXSBJDBDMX_BDXH ");
SQL.AppendLine(" left join XLBZ on XLBZ_XLBZID = a.XLXSBJDMX_XLBZID ");
SQL.AppendLine(" left join XLYSB on XLYSB_XLYSID = a.XLXSBJDMX_XLYSID ");
/*关联报价单号*/
SQL.AppendLine(" where a.XLXSBJDMX_BJDID=:pBJDID ");
/*******比对报价单*******/
SQL.AppendLine(" union all ");
SQL.AppendLine(" ");
SQL.AppendLine(" select distinct b.XLXSBJDMX_BJDID as BJDID,b.XLXSBJDMX_XH as BJDXH, RTRIM(a.XLXSBJDMX_BJDID) ||'|'|| rtrim(convert(char,a.XLXSBJDMX_XSSX)) ||'|'|| convert(char(4),DATEPART(year,XLXSBJD_BJRQ))||'-'||lpad(rtrim(convert(char(2),DATEPART(month,XLXSBJD_BJRQ))),2,'0')||'-'|| lpad(rtrim(convert(char(2),DATEPART(day,XLXSBJD_BJRQ))),2,'0') as BJDHZXX,a.XLXSBJDMX_XSSX AS XSSX, ");
SQL.AppendLine(" a.XLXSBJDMX_BJDID as BDBJDID,a.XLXSBJDMX_XH as BDBJDXH,XLXSBJD_BJRQ as BDBJDBJRQ, 0 as px, '0' as BJDZFLX,");
SQL.AppendLine(" ' ' AS BJCPXX, a.XLXSBJDMX_XLXHID as XLXHID,a.XLXSBJDMX_XLGGID as XLGGID,rtrim(a.XLXSBJDMX_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLBZID,a.XLXSBJDMX_DYDJID as DYDJID,rtrim(a.XLXSBJDMX_XLYSID)||'|'||rtrim(XLYSB_XLYSMC) as XLYSID, ");
SQL.AppendLine(" a.XLXSBJDMX_JLDW as JLDW,a.XLXSBJDMX_BJSL as BJSL, case when isnull(XLXSBJDBDMX_BDBJDID,' ') <>' ' then '√' else ' ' end as BDBZ, ");
/*报价*/
SQL.AppendLine(" RoundFix(a.XLXSBJDMX_CPBJ, " + iXSWS + ") as CPBJ, ");
/*料价价差率*/
SQL.AppendLine(" RoundFix(a.XLXSBJDMX_CLCBJCL,2) as CLCBLRL, ");
/*表价价差率*/
SQL.AppendLine(" RoundFix(a.XLXSBJDMX_JGBBJJCL,2) as LRL, ");
SQL.AppendLine(" a.XLXSBJDMX_JGBBJ as CPJJ, a.XLXSBJDMX_BJDHQCLCB as BJDHQCLCB, a.XLXSBJDMX_TZCPBJ as TZJG, a.XLXSBJDMX_BJJE as BJJE, ");
SQL.AppendLine(" ' ' as BJDYZ, XLXSBJDYZZ0_YZZ01 as YZZ01,XLXSBJDYZZ0_YZZ02 as YZZ02,XLXSBJDYZZ0_YZZ03 as YZZ03,XLXSBJDYZZ0_YZZ04 as YZZ04,XLXSBJDYZZ0_YZZ05 as YZZ05, ");
SQL.AppendLine(" XLXSBJDYZZ0_YZZ06 as YZZ06,XLXSBJDYZZ0_YZZ06 as YZZ07,XLXSBJDYZZ0_YZZ08 as YZZ08,XLXSBJDYZZ0_YZZ09 as YZZ09,XLXSBJDYZZ0_YZZ10 as YZZ10, ");
SQL.AppendLine(" XLXSBJDYZZ0_YZZ11 as YZZ11,XLXSBJDYZZ0_YZZ12 as YZZ12,XLXSBJDYZZ0_YZZ13 as YZZ13,XLXSBJDYZZ0_YZZ14 as YZZ14,XLXSBJDYZZ0_YZZ15 as YZZ15, ");
SQL.AppendLine(" XLXSBJDYZZ0_YZZ16 as YZZ16,XLXSBJDYZZ0_YZZ16 as YZZ17,XLXSBJDYZZ0_YZZ18 as YZZ18,XLXSBJDYZZ0_YZZ19 as YZZ19,XLXSBJDYZZ0_YZZ20 as YZZ20 ");
SQL.AppendLine(" from XLXSBJD,XLXSBJDMX b,XLXSBJDMX a ");
/*关联新增比对数据表*/
SQL.AppendLine(" left join XLXSBJDBDMX on XLXSBJDBDMX_BDBJDID=a.XLXSBJDMX_BJDID and XLXSBJDBDMX_BDXH=a.XLXSBJDMX_XH and XLXSBJDBDMX_BJDID = :pBJDID ");
/*关联以取得报价单调价因子值*/
SQL.AppendLine(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID=a.XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH=a.XLXSBJDMX_XH ");
SQL.AppendLine(" left join XLBZ on XLBZ_XLBZID = a.XLXSBJDMX_XLBZID ");
SQL.AppendLine(" left join XLYSB on XLYSB_XLYSID = a.XLXSBJDMX_XLYSID ");
/*比对报价单号:来自查询条件*/
//SQL.AppendLine(" where XLXSBJD_BJDID in ( ");
SQL.AppendLine(" where 1=1 ");
SQL.AppendLine(" and " + CMISproDataBase.GetWhereEqual("XLXSBJD_BJDID", sCXBJDID));
SQL.AppendLine(" and a.XLXSBJDMX_BJDID=XLXSBJD_BJDID ");
/*报价单号*/
SQL.AppendLine(" and b.XLXSBJDMX_BJDID=:pBJDID ");
SQL.AppendLine(" and a.XLXSBJDMX_XLXHID=b.XLXSBJDMX_XLXHID ");
SQL.AppendLine(" and a.XLXSBJDMX_XLGGID=b.XLXSBJDMX_XLGGID ");
SQL.AppendLine(" and a.XLXSBJDMX_XLBZID=b.XLXSBJDMX_XLBZID ");
SQL.AppendLine(" and a.XLXSBJDMX_XLYSID=b.XLXSBJDMX_XLYSID ");
SQL.AppendLine(" order by BJDID,BJDXH ,PX desc,BDBJDBJRQ desc,BDBJDID desc,XSSX desc ");
entity.Param.Add("pBJDID", PageParam.GetRTrimString("BJDID"));
entity.Param.Add("pBJRQ", PageParam.GetRTrimString("BJRQ"));
return SQL.ToString();
}
private void InitQuery()
{
CurQueryEntity.FieldByName("XM").Value = PageParam.GetRTrimString("XM");
CurQueryEntity.FieldByName("KH").Value = PageParam.GetRTrimString("KH");
CurQueryEntity.FieldByName("BJRQS").Value = CMISproConvert.StrToDateTime(PageParam.GetRTrimString("BJRQ")).AddDays(-180).ToString().Trim();
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sBJDH = "";
SQL.Clear();
SQL.Add(" select distinct XLXSBJDBDMX_BDBJDID as BJDID,XLXSBJD_BJRQ as BJRQ ");
SQL.Add(" from XLXSBJDBDMX,XLXSBJD ");
SQL.Add(" where XLXSBJDBDMX_BJDID=:pBJDID ");
SQL.Add(" and XLXSBJDBDMX_BDBZ<>'0' ");
SQL.Add(" and isnull(XLXSBJDBDMX_BDBJDID,' ') <> ' ' ");
SQL.Add(" and XLXSBJD_BJDID=XLXSBJDBDMX_BDBJDID ");
SQL.Add(" union all ");
SQL.Add(" select top 10 a.XLXSBJD_BJDID as BJDID,a.XLXSBJD_BJRQ as BJRQ ");
SQL.Add(" from XLXSBJD a,XLXSBJD b ");
/*关联报价单号*/
SQL.Add(" where b.XLXSBJD_BJDID=:pBJDID ");
/*排除掉客户为空报价单*/
//SQL.Add(" and isnull(a.XLXSBJD_KH, ' ')<>' ' ");
/*来自查询条件“客户”*/
SQL.Add(" and a.XLXSBJD_KH=:pKH ");
/*排除掉项目为空报价单*/
//SQL.Add(" and isnull(a.XLXSBJD_XMMC,' ')<>' ' ");
/*来自查询条件“项目”*/
SQL.Add(" and a.XLXSBJD_XMMC=:pXM ");
/*主报价单之报价分类*/
//SQL.Add(" and a.XLXSBJD_BJFLID=:pBJFLID ");
/*关联报价单号*/
SQL.Add(" and a.XLXSBJD_BJDID<>:pBJDID ");
/*来自查询条件“报价日期始”*/
SQL.Add(" and a.XLXSBJD_BJRQ>=:pBJRQS ");
/*限制报价单必须流转结束*/
//SQL.Add(" and a.XLXSBJD_WPID='ZZZZ' ");
/*必须有相同产品的报价单*/
SQL.Add(" and exists ");
SQL.Add(" ( ");
SQL.Add(" select 1 ");
SQL.Add(" from XLXSBJDMX c,XLXSBJDMX d ");
SQL.Add(" where c.XLXSBJDMX_BJDID=a.XLXSBJD_BJDID ");
SQL.Add(" and c.XLXSBJDMX_XLXHID=d.XLXSBJDMX_XLXHID ");
SQL.Add(" and c.XLXSBJDMX_XLGGID=d.XLXSBJDMX_XLGGID ");
SQL.Add(" and c.XLXSBJDMX_XLBZID=d.XLXSBJDMX_XLBZID ");
SQL.Add(" and c.XLXSBJDMX_DYDJID=d.XLXSBJDMX_DYDJID ");
SQL.Add(" and c.XLXSBJDMX_XLYSID=d.XLXSBJDMX_XLYSID ");
/*报价单号*/
SQL.Add(" and d.XLXSBJDMX_BJDID=:pBJDID ");
SQL.Add(" ) ");
SQL.Add(" and not exists ");
SQL.Add(" ( ");
SQL.Add(" select 1 ");
SQL.Add(" from XLXSBJDBDMX ");
SQL.Add(" where XLXSBJDBDMX_BJDID=:pBJDID ");
SQL.Add(" and XLXSBJDBDMX_BDBZ<>'0' ");
SQL.Add(" and isnull(XLXSBJDBDMX_BDBJDID,' ' ) <> ' ' ");
SQL.Add(" and XLXSBJDBDMX_BDBJDID=a.XLXSBJD_BJDID ");
SQL.Add(" ) ");
SQL.Add(" order by BJRQ desc, BJDID desc ");
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID");
SQL.ParamByName("pBJRQS").Value = CMISproConvert.StrToDateTime(PageParam.GetRTrimString("BJRQ")).AddDays(-180);
SQL.ParamByName("pKH").Value = PageParam.GetRTrimString("KH");
SQL.ParamByName("pXM").Value = PageParam.GetRTrimString("XM");
//SQL.ParamByName("pBJFLID").Value = PageParam.GetRTrimString("BJFLID");
DataSet ds = dberp.OpenDataSet(SQL);
string sss = SQL.Text;
if (ds.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
sBJDH = sBJDH + ds.Tables[0].Rows[i]["BJDID"].ToString().Trim() + ",";
}
sBJDH = sBJDH.TrimEnd(',');
}
CurQueryEntity.FieldByName("BJDHS").Value = sBJDH;
}
private void initGrid()
{
//赋值因子01-因子10栏目名
string[] sBJDYZ = txtBJDYZ.Value.Split(',');
for (int i = 0; i < sBJDYZ.Length; i++)
{
if (!sBJDYZ[i].Trim().EndsWith("()"))
{
grdGrid.Columns[grdGrid.Columns.IndexOf(grdGrid.FindColumnByFieldName("YZZ" + sBJDYZ[i].Split('|')[0].Replace("BJ", "").Trim()))].HeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(DD)", "(%)").Replace("(MD)", "(%)").Replace("(XX)", "(不参与调价)").Replace("(MX)", "").Replace("(DX)", "").Replace("(SX)", "(%)").Replace("(MP)", "%");
}
else
{
grdGrid.Columns[grdGrid.Columns.IndexOf(grdGrid.FindColumnByFieldName("YZZ" + sBJDYZ[i].Split('|')[0].Replace("BJ", "").Trim()))].HeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(DD)", "(%)").Replace("(MD)", "(%)").Replace("(MX)", "").Replace("(DX)", "").Replace("(SX)", "(%)").Replace("(MP)", "%");
}
}
}
#endregion
#region 比对修改&按钮事件
protected void btnCPBJ_MenuItemClick(object sender, string ItemIndex)
{
switch (ItemIndex)
{
//报价日期最近
case "0":
btnCPBJ_Click(null, null);
break;
}
}
protected void btnCPBJ_Click(object sender, EventArgs e)
{
base.InitEntityByCondition();
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sCXBJDID = CurQueryEntity.FieldByName("BJDHS").Value.Trim() + "," + CurQueryEntity.FieldByName("ZBBJDID").Value.Trim();
try
{
dberp.BeginTrans();
SQL.Clear();
SQL.Add(" merge into XLXSBJDBDMX tar ");
SQL.Add(" using (");
SQL.Add(" SELECT BJDID,BJDXH,bBJDID,bBJDXH,XLXHID,XLGGID,XLBZID,XLYSID FROM ( ");
SQL.Add(" select ");
SQL.Add(" a.XLXSBJDMX_BJDID as BJDID, ");
SQL.Add(" a.XLXSBJDMX_XH as BJDXH, ");
SQL.Add(" b.XLXSBJDMX_BJDID as bBJDID, ");
SQL.Add(" b.XLXSBJDMX_XH as bBJDXH, ");
SQL.Add(" b.XLXSBJDMX_XLXHID as XLXHID, ");
SQL.Add(" b.XLXSBJDMX_XLGGID as XLGGID,");
SQL.Add(" b.XLXSBJDMX_XLBZID as XLBZID,");
SQL.Add(" b.XLXSBJDMX_XLYSID as XLYSID,");
SQL.Add(" row_number() over(partition by b.XLXSBJDMX_XLXHID,b.XLXSBJDMX_XLGGID,b.XLXSBJDMX_XLBZID, b.XLXSBJDMX_DYDJID, b.XLXSBJDMX_XLYSID order by WFWORK_JSSJ desc) as pXH ");
SQL.Add(" from XLXSBJDMX b,XLXSBJDMX a,XLXSBJD ");
SQL.Add(" left join WFWORK on WFWORK_WFID=XLXSBJD_WFID and WFWORK_WFINST=XLXSBJD_WFINST and WFWORK_WPID=XLXSBJD_WPID ");
SQL.Add(" where 1=1 ");
SQL.Add(" and ( " + CMISproDataBase.GetWhereEqual("XLXSBJD_BJDID", sCXBJDID) + " )");
SQL.Add(" and a.XLXSBJDMX_BJDID=XLXSBJD_BJDID ");
/*报价单号*/
SQL.Add(" and b.XLXSBJDMX_BJDID=:pBJDID ");
SQL.Add(" and a.XLXSBJDMX_XLXHID=b.XLXSBJDMX_XLXHID ");
SQL.Add(" and a.XLXSBJDMX_XLGGID=b.XLXSBJDMX_XLGGID ");
SQL.Add(" and a.XLXSBJDMX_XLBZID=b.XLXSBJDMX_XLBZID ");
SQL.Add(" and a.XLXSBJDMX_DYDJID=b.XLXSBJDMX_DYDJID ");
SQL.Add(" and a.XLXSBJDMX_XLYSID=b.XLXSBJDMX_XLYSID ");
SQL.Add(" ) tmp ");
SQL.Add(" where tmp.pXH = 1 ");
SQL.Add(") sor ");
SQL.Add(" on( ");
SQL.Add(" sor.bBJDID = tar.XLXSBJDBDMX_BJDID ");
SQL.Add(" and sor.bBJDXH = tar.XLXSBJDBDMX_XH ");
SQL.Add(" and tar.XLXSBJDBDMX_BJDID = :pBJDID ");
SQL.Add(" ) ");
SQL.Add(" when matched then update set XLXSBJDBDMX_BDBZ = '1', ");
SQL.Add(" XLXSBJDBDMX_BDBJDID = sor.BJDID,");
SQL.Add(" XLXSBJDBDMX_BDXH = sor.BJDXH ");
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
string sqlBJJE = "RoundFix(a.CPBJ*XLXSBJDMX_BJSL+XLXSBJDMX_TZBJJE,2)";
SQL.Clear();
SQL.Add(" update XLXSBJDMX set ");
SQL.Add(" XLXSBJDMX_CPBJ=a.CPBJ, ");
SQL.Add(" XLXSBJDMX_TZCPBJ=case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*(a.CPBJ-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,");
SQL.Add(" XLXSBJDMX_TZQBJJE=RoundFix(a.CPBJ*XLXSBJDMX_BJSL,2),");
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)," + iXSWS + "), ");
}
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 + "," + iXSWS + "), ");
}
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)," + iXSWS + "), ");
}
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");
}
if (sBJLJJCLLX.Equals("1"))//表价料价价差率公式
{
SQL.Add(",XLXSBJDMX_JGBBJLJJCL =case XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ when 0 then 0 else RoundFix((XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ - XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/ (XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * 100,2) end");
}
else
{
SQL.Add(",XLXSBJDMX_JGBBJLJJCL=0");
}
SQL.Add(" from ");
SQL.Add(" ( ");
SQL.Add(" select XLXSBJDBDMX_XH as XH,XLXSBJDMX_CPBJ as CPBJ ");
SQL.Add(" from XLXSBJDBDMX ");
SQL.Add(" LEFT JOIN XLXSBJDMX ON XLXSBJDMX_BJDID = XLXSBJDBDMX_BDBJDID AND XLXSBJDMX_XH = XLXSBJDBDMX_BDXH ");
SQL.Add(" WHERE 1 = 1 ");
SQL.Add(" and XLXSBJDBDMX_BDBZ = '1' ");
SQL.Add(" and XLXSBJDMX_BJDID=XLXSBJDBDMX_BDBJDID ");
SQL.Add(" and XLXSBJDMX_XH=XLXSBJDBDMX_BDXH ");
SQL.Add(" and XLXSBJDBDMX_BJDID=:pBJDID ");
SQL.Add(" ) a ");
SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID ");
SQL.Add(" and a.XH=XLXSBJDMX_XH ");
SQL.ParamByName("pBJDID").Value = sBJDID;
string SS = SQL.Text;
dberp.ExecSQL(SQL);
dberp.CommitTrans();
AjaxRunScript(this, "setValue", "window.setTimeout('GetScrollTop();btnRefreshclick();', 100);");
}
catch(Exception ex)
{
dberp.RollbackTrans();
ShowMessage("取最近报价日期出现错误(报价),请联系系统管理员!" + ex);
return;
}
}
protected void btnCLCBLRL_MenuItemClick(object sender, string ItemIndex)
{
switch (ItemIndex)
{
//报价日期最近
case "0":
btnCLCBLRL_Click(null, null);
break;
}
}
protected void btnCLCBLRL_Click(object sender, EventArgs e)
{
base.InitEntityByCondition();
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sCXBJDID = CurQueryEntity.FieldByName("BJDHS").Value.Trim() + "," + CurQueryEntity.FieldByName("ZBBJDID").Value.Trim();
try
{
dberp.BeginTrans();
SQL.Add(" merge into XLXSBJDBDMX tar ");
SQL.Add(" using (");
SQL.Add(" SELECT BJDID,BJDXH,bBJDID,bBJDXH,XLXHID,XLGGID,XLBZID,XLYSID FROM ( ");
SQL.Add(" select ");
SQL.Add(" a.XLXSBJDMX_BJDID as BJDID, ");
SQL.Add(" a.XLXSBJDMX_XH as BJDXH, ");
SQL.Add(" b.XLXSBJDMX_BJDID as bBJDID, ");
SQL.Add(" b.XLXSBJDMX_XH as bBJDXH, ");
SQL.Add(" b.XLXSBJDMX_XLXHID as XLXHID, ");
SQL.Add(" b.XLXSBJDMX_XLGGID as XLGGID,");
SQL.Add(" b.XLXSBJDMX_XLBZID as XLBZID,");
SQL.Add(" b.XLXSBJDMX_XLYSID as XLYSID,");
SQL.Add(" row_number() over(partition by b.XLXSBJDMX_XLXHID,b.XLXSBJDMX_XLGGID,b.XLXSBJDMX_XLBZID, b.XLXSBJDMX_DYDJID, b.XLXSBJDMX_XLYSID order by WFWORK_JSSJ desc) as pXH ");
SQL.Add(" from XLXSBJDMX b,XLXSBJDMX a,XLXSBJD ");
SQL.Add(" left join WFWORK on WFWORK_WFID=XLXSBJD_WFID and WFWORK_WFINST=XLXSBJD_WFINST and WFWORK_WPID=XLXSBJD_WPID ");
SQL.Add(" where 1=1 ");
SQL.Add(" and ( " + CMISproDataBase.GetWhereEqual("XLXSBJD_BJDID", sCXBJDID) + " )");
SQL.Add(" and a.XLXSBJDMX_BJDID=XLXSBJD_BJDID ");
/*报价单号*/
SQL.Add(" and b.XLXSBJDMX_BJDID=:pBJDID ");
SQL.Add(" and a.XLXSBJDMX_XLXHID=b.XLXSBJDMX_XLXHID ");
SQL.Add(" and a.XLXSBJDMX_XLGGID=b.XLXSBJDMX_XLGGID ");
SQL.Add(" and a.XLXSBJDMX_XLBZID=b.XLXSBJDMX_XLBZID ");
SQL.Add(" and a.XLXSBJDMX_DYDJID=b.XLXSBJDMX_DYDJID ");
SQL.Add(" and a.XLXSBJDMX_XLYSID=b.XLXSBJDMX_XLYSID ");
SQL.Add(" ) tmp ");
SQL.Add(" where tmp.pXH = 1 ");
SQL.Add(") sor ");
SQL.Add(" on( ");
SQL.Add(" sor.bBJDID = tar.XLXSBJDBDMX_BJDID ");
SQL.Add(" and sor.bBJDXH = tar.XLXSBJDBDMX_XH ");
SQL.Add(" and tar.XLXSBJDBDMX_BJDID = :pBJDID ");
SQL.Add(" ) ");
SQL.Add(" when matched then update set XLXSBJDBDMX_BDBZ = '2', ");
SQL.Add(" XLXSBJDBDMX_BDBJDID = sor.BJDID,");
SQL.Add(" XLXSBJDBDMX_BDXH = sor.BJDXH ");
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
//string sqlBJJE = "RoundFix(a.CPBJ*XLXSBJDMX_BJSL+XLXSBJDMX_TZBJJE,2)";
SQL.Clear();
string sqlBJJE = "0";
if (sLJJCLLX.Equals("1"))//料价价差率公式
{
sqlBJJE = "RoundFix(case WHEN a.CLCBLRL = 100 OR XLXSBJDMX_BJSL=0 THEN 0 else XLXSBJDMX_CLCB*XLXSBJDMX_BJSL/(1-a.CLCBLRL/100) END,2)";
}
else if (sLJJCLLX.Equals("2"))
{
sqlBJJE = "RoundFix(case WHEN a.CLCBLRL = 100 OR XLXSBJDMX_BJSL=0 THEN 0 else XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL/(1-a.CLCBLRL/100) END,2)";
}
else if (sLJJCLLX.Equals("3"))
{
sqlBJJE = "RoundFix(case WHEN XLXSBJDMX_BJSL=0 THEN 0 else XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL*(1+a.CLCBLRL/100) END,2)";
}
else if (sLJJCLLX.Equals("4"))
{
sqlBJJE = "RoundFix(case WHEN a.CLCBLRL = 0 THEN 0 else XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL/(a.CLCBLRL/100) END,2)";
}
else
{
sqlBJJE = "0";
}
SQL.Add(" update XLXSBJDMX set ");
SQL.Add(" XLXSBJDMX_CLCBJCL = a.CLCBLRL,");
SQL.Add(" XLXSBJDMX_TZQBJJE=RoundFix(" + sqlBJJE + " - XLXSBJDMX_TZBJJE,2),");
SQL.Add(" XLXSBJDMX_CPBJ=case when XLXSBJDMX_BJSL = 0 then 0 else RoundFix((" + sqlBJJE + " - XLXSBJDMX_TZBJJE)/XLXSBJDMX_BJSL," + iXSWS + ") end, ");
SQL.Add(" XLXSBJDMX_TZCPBJ=case when XLXSBJDMX_TZQCPBJ=0 or XLXSBJDMX_BJSL = 0 then 0 else 100*((" + sqlBJJE + " - XLXSBJDMX_TZBJJE)/XLXSBJDMX_BJSL-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,");
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)," + iXSWS + ") ");
}
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 + "," + iXSWS + ") ");
}
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)," + iXSWS + ") ");
}
else
{
SQL.Add("XLXSBJDMX_JGBBJJCL=0,");
SQL.Add("XLXSBJDMX_JGBBJJCE=0 ");
}
SQL.Add(" from ");
SQL.Add(" ( ");
SQL.Add(" select XLXSBJDBDMX_XH as XH,XLXSBJDMX_CLCBJCL as CLCBLRL ");
SQL.Add(" from XLXSBJDBDMX ");
SQL.Add(" LEFT JOIN XLXSBJDMX ON XLXSBJDMX_BJDID = XLXSBJDBDMX_BDBJDID AND XLXSBJDMX_XH = XLXSBJDBDMX_BDXH ");
SQL.Add(" WHERE 1 = 1 ");
SQL.Add(" and XLXSBJDBDMX_BDBZ = '2' ");
SQL.Add(" and XLXSBJDMX_BJDID=XLXSBJDBDMX_BDBJDID ");
SQL.Add(" and XLXSBJDMX_XH=XLXSBJDBDMX_BDXH ");
SQL.Add(" and XLXSBJDBDMX_BJDID=:pBJDID ");
SQL.Add(" ) a ");
SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID ");
SQL.Add(" and a.XH=XLXSBJDMX_XH ");
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
dberp.CommitTrans();
AjaxRunScript(this, "setValue", "window.setTimeout('GetScrollTop();btnRefreshclick();', 100);");
}
catch (Exception ex)
{
dberp.RollbackTrans();
ShowMessage("取最近报价日期出现错误(材料料价价差率),请联系系统管理员!" + ex);
return;
}
}
protected void btnLRL_MenuItemClick(object sender, string ItemIndex)
{
switch (ItemIndex)
{
//报价日期最近
case "0":
btnLRL_Click(null, null);
break;
}
}
protected void btnLRL_Click(object sender, EventArgs e)
{
base.InitEntityByCondition();
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sCXBJDID = CurQueryEntity.FieldByName("BJDHS").Value.Trim() + "," + CurQueryEntity.FieldByName("ZBBJDID").Value.Trim();
try
{
dberp.BeginTrans();
SQL.Add(" merge into XLXSBJDBDMX tar ");
SQL.Add(" using (");
SQL.Add(" SELECT BJDID,BJDXH,bBJDID,bBJDXH,XLXHID,XLGGID,XLBZID,XLYSID FROM ( ");
SQL.Add(" select ");
SQL.Add(" a.XLXSBJDMX_BJDID as BJDID, ");
SQL.Add(" a.XLXSBJDMX_XH as BJDXH, ");
SQL.Add(" b.XLXSBJDMX_BJDID as bBJDID, ");
SQL.Add(" b.XLXSBJDMX_XH as bBJDXH, ");
SQL.Add(" b.XLXSBJDMX_XLXHID as XLXHID, ");
SQL.Add(" b.XLXSBJDMX_XLGGID as XLGGID,");
SQL.Add(" b.XLXSBJDMX_XLBZID as XLBZID,");
SQL.Add(" b.XLXSBJDMX_XLYSID as XLYSID,");
SQL.Add(" row_number() over(partition by b.XLXSBJDMX_XLXHID,b.XLXSBJDMX_XLGGID,b.XLXSBJDMX_XLBZID, b.XLXSBJDMX_DYDJID, b.XLXSBJDMX_XLYSID order by WFWORK_JSSJ desc) as pXH ");
SQL.Add(" from XLXSBJDMX b,XLXSBJDMX a,XLXSBJD ");
SQL.Add(" left join WFWORK on WFWORK_WFID=XLXSBJD_WFID and WFWORK_WFINST=XLXSBJD_WFINST and WFWORK_WPID=XLXSBJD_WPID ");
SQL.Add(" where 1=1 ");
SQL.Add(" and ( " + CMISproDataBase.GetWhereEqual("XLXSBJD_BJDID", sCXBJDID) + " )");
SQL.Add(" and a.XLXSBJDMX_BJDID=XLXSBJD_BJDID ");
/*报价单号*/
SQL.Add(" and b.XLXSBJDMX_BJDID=:pBJDID ");
SQL.Add(" and a.XLXSBJDMX_XLXHID=b.XLXSBJDMX_XLXHID ");
SQL.Add(" and a.XLXSBJDMX_XLGGID=b.XLXSBJDMX_XLGGID ");
SQL.Add(" and a.XLXSBJDMX_XLBZID=b.XLXSBJDMX_XLBZID ");
SQL.Add(" and a.XLXSBJDMX_DYDJID=b.XLXSBJDMX_DYDJID ");
SQL.Add(" and a.XLXSBJDMX_XLYSID=b.XLXSBJDMX_XLYSID ");
SQL.Add(" ) tmp ");
SQL.Add(" where tmp.pXH = 1 ");
SQL.Add(") sor ");
SQL.Add(" on( ");
SQL.Add(" sor.bBJDID = tar.XLXSBJDBDMX_BJDID ");
SQL.Add(" and sor.bBJDXH = tar.XLXSBJDBDMX_XH ");
SQL.Add(" and tar.XLXSBJDBDMX_BJDID = :pBJDID ");
SQL.Add(" ) ");
SQL.Add(" when matched then update set XLXSBJDBDMX_BDBZ = '3', ");
SQL.Add(" XLXSBJDBDMX_BDBJDID = sor.BJDID,");
SQL.Add(" XLXSBJDBDMX_BDXH = sor.BJDXH ");
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
//string sqlBJJE = "RoundFix(a.CPBJ*XLXSBJDMX_BJSL+XLXSBJDMX_TZBJJE,2)";
SQL.Clear();
string sqlBJJE = "0";
if (sJCLLX.Equals("1"))//表价价差率公式
{
sqlBJJE = "RoundFix(case WHEN XLXSBJDMX_BJSL=0 or a.LRL = 100 THEN 0 else XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL/(1-a.LRL/100) END,2)";
}
else if (sJCLLX.Equals("2"))
{
sqlBJJE = "RoundFix(case WHEN XLXSBJDMX_BJSL=0 or a.LRL = 100 THEN 0 else XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL*(1-a.LRL/100) END,2)";
}
else if (sJCLLX.Equals("3"))
{
sqlBJJE = "RoundFix(case WHEN a.LRL = 0 THEN 0 else XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL/(a.LRL/100) END,2)";
}
else if (sJCLLX.Equals("4"))
{
sqlBJJE = "RoundFix(case WHEN XLXSBJDMX_BJSL=0 or a.LRL = -100 THEN 0 else XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL*(1+a.LRL/100) END,2)";
}
else
{
sqlBJJE = "0";
}
SQL.Add(" update XLXSBJDMX set ");
SQL.Add(" XLXSBJDMX_JGBBJJCL = a.LRL,");
SQL.Add(" XLXSBJDMX_TZQBJJE=" + sqlBJJE + " - XLXSBJDMX_TZBJJE,");
SQL.Add(" XLXSBJDMX_CPBJ=RoundFix(case when XLXSBJDMX_BJSL = 0 then 0 else (" + sqlBJJE + " - XLXSBJDMX_TZBJJE)/XLXSBJDMX_BJSL end," + iXSWS + "), ");
SQL.Add(" XLXSBJDMX_TZCPBJ=case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*((" + sqlBJJE + " - XLXSBJDMX_TZBJJE)/XLXSBJDMX_BJSL-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,");
SQL.Add(" XLXSBJDMX_BJJE=" + sqlBJJE + ",");
if (sJCLLX.Equals("1"))//表价价差率公式
{
SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(a.LRL* " + sqlBJJE + "/100.0," + iXSWS + "), ");
}
else if (sJCLLX.Equals("2"))
{
SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(a.LRL* XLXSBJDMX_BJSL *XLXSBJDMX_JGBBJ/100.0," + iXSWS + "), ");
}
else if (sJCLLX.Equals("3"))
{
SQL.Add("XLXSBJDMX_JGBBJJCE=0,");
}
else if (sJCLLX.Equals("4"))
{
SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(a.LRL* XLXSBJDMX_BJSL *XLXSBJDMX_JGBBJ/100.0," + iXSWS + "), ");
}
else
{
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 + ")-RoundFix(XLXSBJDMX_CLCB*XLXSBJDMX_BJSL,2))/(" + sqlBJJE + "),2) end");
}
else if (sLJJCLLX.Equals("2"))
{
SQL.Add("XLXSBJDMX_CLCBJCL =case when (" + sqlBJJE + ")=0.0 then 0.0 else RoundFix(100*((" + sqlBJJE + ")-RoundFix(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL,2))/(" + 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 + "-RoundFix(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL,2))/(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*(RoundFix(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL,2))/(" + sqlBJJE + "),2) end");
}
else
{
SQL.Add("XLXSBJDMX_CLCBJCL=0");
}
SQL.Add(" from ");
SQL.Add(" ( ");
SQL.Add(" select XLXSBJDBDMX_XH as XH,XLXSBJDMX_JGBBJJCL as LRL ");
SQL.Add(" from XLXSBJDBDMX ");
SQL.Add(" LEFT JOIN XLXSBJDMX ON XLXSBJDMX_BJDID = XLXSBJDBDMX_BDBJDID AND XLXSBJDMX_XH = XLXSBJDBDMX_BDXH ");
SQL.Add(" WHERE 1 = 1 ");
SQL.Add(" and XLXSBJDBDMX_BDBZ = '3' ");
SQL.Add(" and XLXSBJDMX_BJDID=XLXSBJDBDMX_BDBJDID ");
SQL.Add(" and XLXSBJDMX_XH=XLXSBJDBDMX_BDXH ");
SQL.Add(" and XLXSBJDBDMX_BJDID=:pBJDID ");
SQL.Add(" ) a ");
SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID ");
SQL.Add(" and a.XH=XLXSBJDMX_XH ");
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
dberp.CommitTrans();
AjaxRunScript(this, "setValue", "window.setTimeout('GetScrollTop();btnRefreshclick();', 100);");
}
catch (Exception ex)
{
dberp.RollbackTrans();
ShowMessage("取最近报价日期出现错误(表价价差率),请联系系统管理员!" + ex);
return;
}
}
protected void grdGrid_OnRowDoubleClick(object sender, GThinking.N_CONTROL.RowDoubleClickEventArgs e)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
string sBJDID = "";
string sWFID = "";
string sWFINST = "";
SQL.Add(" SELECT XLXSBJD_BJDID,XLXSBJD_WFID,XLXSBJD_WFINST FROM XLXSBJD WHERE XLXSBJD_BJDID = :pBJDID ");
//报价单----1 比对报价单----0
if (grdGrid.DataKeys[grdGrid.SelectedIndex]["BJDZFLX"].ToString().Trim().Equals("1"))
{
SQL.ParamByName("pBJDID").Value = grdGrid.DataKeys[grdGrid.SelectedIndex]["BJDID"].ToString().Trim();
}
else
{
SQL.ParamByName("pBJDID").Value = grdGrid.DataKeys[grdGrid.SelectedIndex]["BDBJDID"].ToString().Trim();
}
DataSet ds = dberp.OpenDataSet(SQL);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
sBJDID = ds.Tables[0].Rows[0]["XLXSBJD_BJDID"].ToString().Trim();
sWFID = ds.Tables[0].Rows[0]["XLXSBJD_WFID"].ToString().Trim();
sWFINST = ds.Tables[0].Rows[0]["XLXSBJD_WFINST"].ToString().Trim();
}
TPageParams tpp = new TPageParams();
tpp.UrlPath = "XLBJDInfo.aspx";
tpp.AddString("XLXSBJD_BJDID", sBJDID);
tpp.AddString("WFID", sWFID);
tpp.AddString("WFINST", sWFINST);
tpp.CallAction = TPageCallAction.pcaBrowse;
OpenDialog(tpp);
}
#endregion
#region
protected void btnDBFX_Click(object sender, EventArgs e)
{
base.InitEntityByCondition();
//不重复的报价单
string sTmpBJDIDList = "";
//当前比对页面所有查询条件的报价单ID
string sCXBJDID = PageParam.GetRTrimString("BJDID") + "," + CurQueryEntity.FieldByName("BJDHS").Value.Trim() + "," + CurQueryEntity.FieldByName("ZBBJDID").Value.Trim();
string[] sTemp = sCXBJDID.ToString().Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
Dictionary<string, string> dicBJDID = new Dictionary<string, string>();
for (int m = 0; m < sTemp.Length; m++)
{
if (!sTemp[m].ToString().Trim().Equals(""))
{
if (!dicBJDID.ContainsKey(sTemp[m].ToString().Trim()))
{
dicBJDID.Add(sTemp[m].ToString().Trim(), "");
}
}
}
foreach (string skey in dicBJDID.Keys)
{
sTmpBJDIDList += skey + ",";
}
sTmpBJDIDList = sTmpBJDIDList.TrimEnd(',');
if (sTmpBJDIDList.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Length >= 6)
{
ShowMessage("查询条件中参与对比分析的报价单最多支持4份!");
return;
}
TPageParams tpp = new TPageParams();
tpp.UrlPath = "XLBJDDBList.aspx";
tpp.AddString("CXBJDID", sTmpBJDIDList);
OpenFuncModuleDialog(100860042, tpp);
}
#endregion
}
}