This commit is contained in:
2026-08-21 17:03:02 +08:00
commit f065129b20
2292 changed files with 666241 additions and 0 deletions
+473
View File
@@ -0,0 +1,473 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GThinking.N_MISPRO;
using GThinking.N_MISPRO.Data;
using GThinking.N_MODEL.Page;
using GThinking.N_CONTROL;
using GThinking.N_PUBLIC;
using GThinking.N_MISPRO.Caching;
using GThinking.N_MISPRO.Utility;
namespace GThinking.N_XLXSBJ
{
public partial class XLJGB_PLSZList : OperationBase
{
XLJGB_PLSZ entity = new XLJGB_PLSZ();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860001;
this.UMName = "线缆销售报价价格表";
this.CurMaster = Master;
this.Tabs = Tab;
this.PageHeight = 400;
this.PageWidth = 500;
AddListSetMap(new ListSet(pagSHD.ID, null, grdSHD, entity, UPSHD));
this.Master.BtnQueryVisible = false;
this.Master.BtnReportVisible = false;
base.InitPage();
grdSHD.EnabledToolBar = false;
if (!IsPostBack)
{
InitControl();
Master_OnQuery();
GridDataBind();
}
}
#region 模板继承事件
protected override void Master_OnQuery()
{
entity.sJGBID = PageParam.GetRTrimString("XLXSJGBMX_JGBID");
base.Master_OnQuery();
grdSHD.SelectedIndex = -1;
}
protected override void GridDataBind()
{
base.GridDataBind();
}
protected override bool DataLogicValid()
{
if (grdSHD.CheckedRows.Trim().Equals(""))
{
ShowMessage("请勾选需要设置的因子!");
return false;
}
Dictionary<string, string> dicJGBTJYZ = XLBJDInfo.GetJGBBTYZ(PageParam.GetRTrimString("XLXSJGBMX_JGBID"));
string[] sIndexList = grdSHD.CheckedRows.Trim().Split(',');
foreach (string sIndex in sIndexList)
{
string sYZID = grdSHD.GetValueByFieldName("XLXSJGBYZ_YZID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim();
double fYZZ = CMISproConvert.StrToFloat(grdSHD.GetValueByFieldName("YZZ", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]));
if (dicJGBTJYZ.ContainsKey(sYZID)&&fYZZ==0)
{
ShowMessage(string.Format("因子【{0}】的值为必填项,不允许为0!",dicJGBTJYZ[sYZID]));
return false;
}
}
return base.DataLogicValid();
}
protected override bool Master_OnOK()
{
bool bResult = base.Master_OnOK();
if (!bResult) return false;
TPageParams pageParams = new TPageParams();
pageParams.UrlPath = "XLJGB_PLSZXHInfo.aspx";
pageParams.AddString("XLXSJGBMX_JGBID", PageParam.GetRTrimString("XLXSJGBMX_JGBID"));
pageParams.AddString("XLXHIDClientID", txtXLXHID.ClientID);
pageParams.AddString("DYDJIDClientID", txtDYDJID.ClientID);
pageParams.AddString("QRZTClientID", txtQRZT.ClientID);
OpenDialogClickBtn(pageParams, btnRefresh.ClientID);
return false;
}
protected override void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow && Tab.ActiveTabIndex == 1)
{
}
base.Grid_RowDataBound(sender, e);
}
#endregion
#region 自定义函数
private void UpdateJJ(TDatabase dberp)
{
if (grdSHD.CheckedRows.Trim().Equals(""))
return;
string[] sIndexList = grdSHD.CheckedRows.Trim().Split(',');
string sYZIDList = "";
foreach (string sIndex in sIndexList)
{
string sYZID = grdSHD.GetValueByFieldName("XLXSJGBYZ_YZID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim();
if (!sYZID.Equals(""))
{
sYZIDList += sYZID + ",";
}
}
sYZIDList = sYZIDList.TrimEnd(',');
if (sYZIDList.Equals(""))
return;
string sJGBID = PageParam.GetRTrimString("XLXSJGBMX_JGBID");
string sJSBLFS = PageParam.GetRTrimString("JSBLFS");
string sXLXHIDList = txtXLXHID.Value.Trim();
string sDYDJIDList = txtDYDJID.Value.Trim();
int iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002"));
if (iXSWS < 0)
iXSWS = 0;
else if (iXSWS > 8)
iXSWS = 8;
TSQL sSQL = new TSQL(dberp);
//先清空当前价格表选中型号的调价因子值
string[] sYZIDs = sYZIDList.Split(',');
sSQL.Clear();
sSQL.Add("update XLXSJGBYZZ0 set ");
bool bFirstLine = true;
foreach (string sIndex in sIndexList)
{
string sYZID = grdSHD.GetValueByFieldName("XLXSJGBYZ_YZID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim();
double fYZZ = CMISproConvert.StrToFloat(grdSHD.GetValueByFieldName("YZZ", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]));
if (bFirstLine)
sSQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}={1}", sYZID.Replace("JZ", ""), fYZZ));
else
sSQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sYZID.Replace("JZ", ""), fYZZ));
bFirstLine = false;
}
sSQL.Add(" where XLXSJGBYZZ0_JGBID=:pJGBID ");
sSQL.Add(" and XLXSJGBYZZ0_XH in (select XLXSJGBMX_XH from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID ");
if (!sXLXHIDList.Equals(""))
sSQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_XLXHID", sXLXHIDList));
if (!sDYDJIDList.Equals(""))
sSQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_DYDJID", sDYDJIDList));
sSQL.Add(" ) ");
sSQL.ParamByName("pJGBID").Value = sJGBID;
dberp.ExecSQL(sSQL);
//据材料成本及调价因子的值计算无税产品单价、含税产品单价
string sJSGS = XLBJDUtils.GetJGBJSGS(sJGBID);
if (sJSGS.Trim().Equals(""))
{
#region 无公式计算
sSQL.Clear();
sSQL.Add("select XLXSJGBYZ_YZID,XLXSTZYZ_JJFS,XLXSTZYZ_TJYZID,XLXSTZYZ_TJYS");
sSQL.Add(" from XLXSJGBYZ");
sSQL.Add(" left join XLXSTZYZ on XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=XLXSJGBYZ_YZID");
sSQL.Add(" where XLXSJGBYZ_JGBID=:pJGBID");
sSQL.Add(" order by XLXSTZYZ_TJYZID,XLXSTZYZ_XSXH,XLXSJGBYZ_YZID");
sSQL.ParamByName("pJGBID").Value = sJGBID;
DataSet dsJGBYZ = dberp.OpenDataSet(sSQL);
if (dsJGBYZ.Tables[0].Rows.Count > 0)
{
string sJDSQL = "1";
string sKDSQL = "1";
string sJJSQL = "0";
string sSXSQL = "1";
string sTJYZID = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_TJYZID"].ToString().Trim();
string sJJFS = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim();
for (int i = 1; i < dsJGBYZ.Tables[0].Rows.Count; i++)
{
if (!sTJYZID.Equals(dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim()))
{
if (sJJFS.Equals("JD"))
sJDSQL = sJDSQL + "*(1+JDYZZ_" + sTJYZID + "/100.0)";
else if (sJJFS.Equals("KD"))
sKDSQL = sKDSQL + "/(1-KDYZZ_" + sTJYZID + "/100.0)";
else if (sJJFS.Equals("JJ"))
sJJSQL += "+JJYZZ_" + sTJYZID;
else if (sJJFS.Equals("SX"))
sSXSQL = sSXSQL + "*(case when SXYZZ_" + sTJYZID + ">=0 then 1/(1-SXYZZ_" + sTJYZID + "/100.0) else (1+SXYZZ_" + sTJYZID + "/100.0) end)";
sTJYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim();
sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim();
}
}
if (sJJFS.Equals("JD"))
sJDSQL = sJDSQL + "*(1+JDYZZ_" + sTJYZID + "/100.0)";
else if (sJJFS.Equals("KD"))
sKDSQL = sKDSQL + "/(1-KDYZZ_" + sTJYZID + "/100.0)";
else if (sJJFS.Equals("JJ"))
sJJSQL += "+JJYZZ_" + sTJYZID;
else if (sJJFS.Equals("SX"))
sSXSQL = sSXSQL + "*(case when SXYZZ_" + sTJYZID + ">=0 then 1/(1-SXYZZ_" + sTJYZID + "/100.0) else (1+SXYZZ_" + sTJYZID + "/100.0) end)";
sSQL.Clear();
sSQL.Add("merge into XLXSJGBMX tar ");
sSQL.Add("using(");
sSQL.Add(" select XLXSJGBMX_XH,XLXSJGBMX_JGBID,");
if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一)
{
//此处根据序号区分先加价还是先加点/扣点
if (XLBJDUtils.JJFirst_JGBYZ(sJGBID))
{
//先加价
sSQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*{0},8))/{0}", Math.Pow(10.0, iXSWS)));
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) as XLXSJGBMX_WSBJ ,");
sSQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*{0},8))/{0}", Math.Pow(10.0, iXSWS)));
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) as XLXSJGBMX_HSBJ, ");
sSQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6)");
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) as XLXSJGBMX_WSBJM ,");
sSQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6)");
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) as XLXSJGBMX_HSBJM ");
}
else
{
//先加点
sSQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*{0},8))/{0}", Math.Pow(10.0, iXSWS)));
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) as XLXSJGBMX_WSBJ ,");
sSQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*{0},8))/{0}", Math.Pow(10.0, iXSWS)));
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) as XLXSJGBMX_HSBJ ,");
sSQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6)");
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) as XLXSJGBMX_WSBJM ,");
sSQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6)");
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) as XLXSJGBMX_HSBJM ");
}
}
else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位
{
//此处根据序号区分先加价还是先加点/扣点
if (XLBJDUtils.JJFirst_JGBYZ(sJGBID))
{
//先加价
sSQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),{0})/10)*10", iXSWS.ToString().Trim()));
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) as XLXSJGBMX_WSBJ ,");
sSQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),{0})/10)*10", iXSWS.ToString().Trim()));
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) as XLXSJGBMX_HSBJ , ");
sSQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6)");
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) as XLXSJGBMX_WSBJM ,");
sSQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6)");
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) as XLXSJGBMX_HSBJM ");
}
else
{
//先加点
sSQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)),{0})/10)*10", iXSWS.ToString().Trim()));
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) as XLXSJGBMX_WSBJ ,");
sSQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)),{0})/10)*10", iXSWS.ToString().Trim()));
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) as XLXSJGBMX_HSBJ ,");
sSQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6)");
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) as XLXSJGBMX_WSBJM ,");
sSQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6)");
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) as XLXSJGBMX_HSBJM ");
}
}
else
{
//此处根据序号区分先加价还是先加点/扣点
if (XLBJDUtils.JJFirst_JGBYZ(sJGBID))
{
//先加价
sSQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")");
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) as XLXSJGBMX_WSBJ ,");
sSQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")");
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) as XLXSJGBMX_HSBJ ,");
sSQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6)");
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) as XLXSJGBMX_WSBJM ,");
sSQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6)");
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) as XLXSJGBMX_HSBJM ");
}
else
{
//先加点
sSQL.Add("RoundFix(abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)," + iXSWS + ")");
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) as XLXSJGBMX_WSBJ ,");
sSQL.Add("RoundFix(abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)," + iXSWS + ")");
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) as XLXSJGBMX_HSBJ ,");
sSQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6)");
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) as XLXSJGBMX_WSBJM ,");
sSQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6)");
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) as XLXSJGBMX_HSBJM ");
}
}
sSQL.Add(" from XLXSJGBMX ");
sSQL.Add(" left join ");
sSQL.Add("( ");
sSQL.Add("select JGBID,XH," + sJDSQL + " as JDYZZ," + sKDSQL + " as KDYZZ," + sJJSQL + " as JJYZZ," + sSXSQL + " as SXYZZ ");
sSQL.Add(" from ");
sSQL.Add("(");
sSQL.Add(" select XLXSJGBYZZ0_JGBID as JGBID,XLXSJGBYZZ0_XH as XH,");
sSQL.Add(" (");
sSQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}", dsJGBYZ.Tables[0].Rows[0]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", "")));
sTJYZID = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_TJYZID"].ToString().Trim();
sJJFS = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim();
for (int i = 1; i < dsJGBYZ.Tables[0].Rows.Count; i++)
{
if (sTJYZID.Equals(dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim()))
{
sSQL.Add(string.Format("+XLXSJGBYZZ0_YZZ{0}", dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", "")));
}
else
{
if (sJJFS.Equals("JD"))
sSQL.Add(") as " + "JDYZZ_" + sTJYZID);
else if (sJJFS.Equals("KD"))
sSQL.Add(") as " + "KDYZZ_" + sTJYZID);
else if (sJJFS.Equals("JJ"))
sSQL.Add(") as " + "JJYZZ_" + sTJYZID);
else if (sJJFS.Equals("SX"))
sSQL.Add(") as " + "SXYZZ_" + sTJYZID);
sTJYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim();
sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim();
sSQL.Add(",(");
sSQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}", dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", "")));
}
}
if (sJJFS.Equals("JD"))
sSQL.Add(") as " + "JDYZZ_" + sTJYZID);
else if (sJJFS.Equals("KD"))
sSQL.Add(") as " + "KDYZZ_" + sTJYZID);
else if (sJJFS.Equals("JJ"))
sSQL.Add(") as " + "JJYZZ_" + sTJYZID);
else if (sJJFS.Equals("SX"))
sSQL.Add(") as " + "SXYZZ_" + sTJYZID);
sSQL.Add(" from XLXSJGBYZZ0");
sSQL.Add(" where XLXSJGBYZZ0_JGBID=:pJGBID ");
sSQL.Add(" ) a");
sSQL.Add(") b ");
sSQL.Add("on XLXSJGBMX_JGBID=:pJGBID ");
sSQL.Add(" and XLXSJGBMX_JGBID=JGBID ");
sSQL.Add(" and XLXSJGBMX_XH=XH ");
sSQL.Add(" and XLXSJGBMX_SYXH=0 ");
sSQL.Add(" where XLXSJGBMX_JGBID=:pJGBID ");
if (!sXLXHIDList.Equals(""))
sSQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_XLXHID", sXLXHIDList));
if (!sDYDJIDList.Equals(""))
sSQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_DYDJID", sDYDJIDList));
sSQL.Add(" and XLXSJGBMX_SYXH=0 ");
sSQL.Add(" )sor ");
sSQL.Add(" on( tar.XLXSJGBMX_JGBID=sor.XLXSJGBMX_JGBID and tar.XLXSJGBMX_XH=sor.XLXSJGBMX_XH ) ");
sSQL.Add(" when matched then update set tar.XLXSJGBMX_WSBJ=sor.XLXSJGBMX_WSBJ,tar.XLXSJGBMX_HSBJ=sor.XLXSJGBMX_HSBJ,tar.XLXSJGBMX_WSBJM=sor.XLXSJGBMX_WSBJM,tar.XLXSJGBMX_HSBJM=sor.XLXSJGBMX_HSBJM ");
sSQL.ParamByName("pJGBID").Value = sJGBID;
dberp.ExecSQL(sSQL);
}
#endregion
}
else
{
#region 公式计算
Dictionary<string, string> dicJGBYZJJF = XLJGB_CLJGTZList.GetJGBYZJJFS(sJGBID);
string sJSGSKM = sJSGS;
string sJSGSQT = sJSGS;
foreach (string key in dicJGBYZJJF.Keys)
{
if (dicJGBYZJJF[key].Equals("JJ"))
{
sJSGSKM = sJSGSKM.Replace(key, "0.001 * " + key);
sJSGSQT = sJSGSQT.Replace(key, "0 * " + key);
}
}
sSQL.Clear();
sSQL.Add("update XLXSJGBMX set ");
if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一)
{
sSQL.Add(string.Format("XLXSJGBMX_WSBJ=CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), Math.Pow(10.0, iXSWS)));
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,");
sSQL.Add(string.Format("XLXSJGBMX_HSBJ=CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), Math.Pow(10.0, iXSWS)));
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end), ");
sSQL.Add(string.Format("XLXSJGBMX_WSBJM=RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6)", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))")));
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) ,");
sSQL.Add(string.Format("XLXSJGBMX_HSBJM=RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))")));
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) ");
}
else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位
{
sSQL.Add(string.Format("XLXSJGBMX_WSBJ = CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), iXSWS.ToString().Trim()));
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,");
sSQL.Add(string.Format("XLXSJGBMX_HSBJ = CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), iXSWS.ToString().Trim()));
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end), ");
sSQL.Add(string.Format("XLXSJGBMX_WSBJM=RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))")));
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) ,");
sSQL.Add(string.Format("XLXSJGBMX_HSBJM=RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))")));
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) ");
}
else
{
sSQL.Add(string.Format("XLXSJGBMX_WSBJ=RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), iXSWS));
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,");
sSQL.Add(string.Format("XLXSJGBMX_HSBJ=RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), iXSWS));
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,");
sSQL.Add(string.Format("XLXSJGBMX_WSBJM=RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))")));
sSQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) ,");
sSQL.Add(string.Format("XLXSJGBMX_HSBJM=RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))")));
sSQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) ");
}
sSQL.Add("from XLXSJGBYZZ0");
sSQL.Add("where XLXSJGBMX_JGBID=:pJGBID ");
if (!sXLXHIDList.Equals(""))
sSQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_XLXHID", sXLXHIDList));
if (!sDYDJIDList.Equals(""))
sSQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_DYDJID", sDYDJIDList));
sSQL.Add(" and XLXSJGBMX_JGBID=XLXSJGBYZZ0_JGBID ");
sSQL.Add(" and XLXSJGBMX_XH=XLXSJGBYZZ0_XH ");
sSQL.Add(" and XLXSJGBMX_SYXH=0 ");
sSQL.ParamByName("pJGBID").Value = sJGBID;
dberp.ExecSQL(sSQL);
#endregion
}
}
private void InitControl()
{
this.Master.PnlQuery.Visible = false;
this.Master.PnlBill.Visible = false;
//this.Master.PnlBill.GroupingText = "单据信息";
}
#endregion
protected void btnRefresh_Click(object sender, EventArgs e)
{
if (!txtQRZT.Value.Equals("Y"))
return;
TDatabase DBERP = TContextDatabases.GetDatabase("DBERP");
try
{
DBERP.BeginTrans();
//更新当前价格表下对应型号记录的基价调价因子栏目、基准报价
UpdateJJ(DBERP);
DBERP.CommitTrans();
//执行完毕后关闭当前页面
DialogOperationScript dos = new DialogOperationScript(this);
dos.ClickOwnerButton(PageParam.GetRTrimString("btnRefresh1CID"));
dos.CloseSelf();
dos.Execute();
}
catch (Exception ex)
{
ShowMessage(ex.Message);
DBERP.RollbackTrans();
}
}
}
}