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 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("" + e.Row.Cells[indexBDBZ].Text.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[indexCPBJ].Text = string.Format("" + XLBJDUtils.strPadRight(e.Row.Cells[indexCPBJ].Text.ToString().Trim(), iXSWS) + "", 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("" + XLBJDUtils.strPadRight(e.Row.Cells[indexCLCBLRL].Text.ToString().Trim(),2) + "", 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("" + XLBJDUtils.strPadRight(e.Row.Cells[indexLRL].Text.ToString().Trim(),2) + "", 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("" + XLBJDUtils.strPadRight(e.Row.Cells[indexCPBJ].Text.ToString().Trim(), iXSWS) + "", 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("" + XLBJDUtils.strPadRight(e.Row.Cells[indexCLCBLRL].Text.ToString().Trim(),2) + "", 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("" + XLBJDUtils.strPadRight(e.Row.Cells[indexLRL].Text.ToString().Trim(),2) + "", 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 dicBJDID = new Dictionary(); 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 } }