2026821
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user