Files
U20261363_N_XLXSBJ/XLBJD_WLHQTZList.aspx.cs
T
2026-10-09 10:25:33 +08:00

503 lines
27 KiB
C#

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GThinking.N_MISPRO;
using GThinking.N_MISPRO.Data;
using GThinking.N_MODEL.Page;
using GThinking.N_MISPRO.Utility;
using GThinking.N_CONTROL;
namespace GThinking.U20261363_N_XLXSBJ
{
[EntityType(Db = "DBERP", Table = "XLXSBJDWLHQ", IsWf = false, IsWhr = true, IsAttach = false)]
public class XLBJD_WLHQTZ : EntityObject
{
public string sBJDID = "";
public string sWLVID = "";
public string sCLVID = "";
public string sRYID = "";
public string sBJRQ = "";
public override TSQL SetQuerySql()
{
TSQL SQL = base.SetQuerySql();
SQL.Add("select XLXSBJCLWL_WLID,rtrim(isnull(WL_MC,' ')) || ' ' || rtrim(isnull(WL_GG,' ')) || ' ' || rtrim(isnull(WL_CL,' ')) as WLMC, ");
SQL.Add("case when V_XLXSBJDWLHQ_WLID is null then bjrwlhq.WSJGF else V_XLXSBJDWLHQ_WSJGF end as WSJGF, ");
SQL.Add("case when V_XLXSBJDWLHQ_WLID is null then bjrwlhq.CLJG else V_XLXSBJDWLHQ_WSJG end as WSJG, ");
SQL.Add("a.XLXSBJCL_ZZSL, ");
SQL.Add("case when V_XLXSBJDWLHQ_WLID is null then bjrwlhq.HSJGF else V_XLXSBJDWLHQ_HSJGF end as HSJGF, ");
SQL.Add("case when V_XLXSBJDWLHQ_WLID is null then bjrwlhq.HSJG else V_XLXSBJDWLHQ_HSJG end as HSJG, ");
SQL.Add(" case when isnull(a.XLXSBJCL_JGYBJCLID,' ') = ' ' then ' ' else rtrim(a.XLXSBJCL_JGYBJCLID) ||'|'|| rtrim(b.XLXSBJCL_BJCLMC) end as JGYBJCLXX,");
SQL.Add(" case when isnull(a.XLXSBJCL_JGYBJCLID,' ') = ' ' then 0.0 else V_XLXSBJDCLHQ_WSJG end as JGYBJCLID_WSJG,");
SQL.Add(" case when isnull(a.XLXSBJCL_JGYBJCLID,' ') = ' ' then 0.0 else V_XLXSBJDCLHQ_HSJG end as JGYBJCLID_HSJG,");
SQL.Add("V_XLXSBJDWLHQ_WHR,V_XLXSBJDWLHQ_WHRID,V_XLXSBJDWLHQ_WHSJ ");
SQL.Add("from XLXSBJCLWL ");
//先使用物料与材料关系取到材料
SQL.Add("left join XLXSBJCL a on a.XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID ");
//取到材料后取到报价原材料
SQL.Add("left join XLXSBJCL b on b.XLXSBJCL_BJCLID = a.XLXSBJCL_JGYBJCLID ");
//关联报价单的材料行情----显示的是报价原材料的价格,所以使用报价原材料关联
SQL.Add("left join V_XLXSBJDCLHQ on V_XLXSBJDCLHQ_BJDID=:pBJDID and V_XLXSBJDCLHQ_ID=:pCLVID and V_XLXSBJDCLHQ_TZRYID=:pRYID and V_XLXSBJDCLHQ_BJCLID=isnull( a.XLXSBJCL_JGYBJCLID, ' ') ");
//关联报价单的物料行情----只有报价材料才有物料行情,此处直接关联
SQL.Add("left join V_XLXSBJDWLHQ on V_XLXSBJDWLHQ_BJDID=:pBJDID and V_XLXSBJDWLHQ_ID=:pWLVID and V_XLXSBJDWLHQ_TZRYID=:pRYID and V_XLXSBJDWLHQ_WLID=XLXSBJCLWL_WLID ");
SQL.Add("left join ");
SQL.Add("( ");
/*报价物料之报价日行情*/
SQL.Add("select WLID,XLXSWLHQ_WSJG as CLJG,XLXSWLHQ_HSJG as HSJG, ");
SQL.Add(" XLXSWLHQ_WSJGF as WSJGF,XLXSWLHQ_HSJGF as HSJGF ");
SQL.Add("from XLXSWLHQ, ");
SQL.Add("( ");
SQL.Add("select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS)as maxYXQS ");
SQL.Add("from XLXSWLHQ ");
SQL.Add("where XLXSWLHQ_JGBID=' ' ");
SQL.Add("and XLXSWLHQ_YXQS<=:pBJRQ and(XLXSWLHQ_YXQZ>=:pBJRQ or XLXSWLHQ_YXQZ is null) ");
SQL.Add("group by XLXSWLHQ_WLID ");
SQL.Add(") a ");
SQL.Add("where XLXSWLHQ_JGBID=' ' ");
SQL.Add("and XLXSWLHQ_WLID=WLID ");
SQL.Add("and XLXSWLHQ_YXQS=maxYXQS ");
SQL.Add(") bjrwlhq on bjrwlhq.WLID=XLXSBJCLWL_WLID ");
SQL.Add("left join WL on WL_WLID=XLXSBJCLWL_WLID ");
//SQL.Add("where XLXSBJCLWL_BJCLID=:pBJCLID ");
SQL.Add("where 1 = 1 ");
//只显示报价单明细用到的物料
SQL.Add(" and XLXSBJCLWL_WLID in ");
SQL.Add(" (");
SQL.Add(" select distinct case XLJGCZBLM_CLQDL ");
for (int i = 1; i <= 80; i++)
SQL.Add(string.Format("when '{0}' then XLXSCLQDWL_WLID{1}", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0')));
SQL.Add(" else ' ' end as WLID ");
SQL.Add(" from XLXSBJDMX");
SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ')");
SQL.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID=XLXSCLQD_JGCZBBBID");
SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID");
SQL.Add(" left join XLXSCLQDWL on XLXSCLQDWL_JGCZBID=XLXSCLQD_JGCZBID and XLXSCLQDWL_JGCZBBBID=XLXSCLQD_JGCZBBBID and XLXSCLQDWL_JGCZBXH=XLXSCLQD_JGCZBXH and XLXSCLQDWL_DRHH=XLXSCLQD_DRHH");
SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID");
SQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' '");
SQL.Add(" and XLXSCLQD_WPID='ZZZZ'");
SQL.Add(" and XLXSBJCL_BJHQ='2'");
SQL.Add(" ) ");
SQL.Add("order by XLXSBJCLWL_BJCLID,XLXSBJCLWL_WLID ");
SQL.ParamByName("pBJDID").Value = sBJDID;
SQL.ParamByName("pCLVID").Value = sCLVID;
SQL.ParamByName("pWLVID").Value = sWLVID;
SQL.ParamByName("pRYID").Value = sRYID;
SQL.ParamByName("pBJRQ").Value = sBJRQ;
string ss = SQL.Text;
return SQL;
}
public override bool Querying(TSQL sql)
{
Entites.Columns.Clear();
Entites.Clear();
return base.Querying(sql);
}
}
public partial class XLBJD_WLHQTZList : OperationBase
{
XLBJD_WLHQTZ entity = new XLBJD_WLHQTZ();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860174;
this.UMName = "线缆销售报价单";
this.CurMaster = Master;
this.Tabs = Tab;
this.PageHeight = 600;
this.PageWidth = 850;
CurMaster.BtnQueryVisible = false;
CurMaster.BtnReportVisible = false;
AddListSetMap(new ListSet(pagSHD2.ID, null, grdSHD2, entity, UPSHD2));
base.InitPage();
grdSHD2.EnabledToolBar = false;
CurMaster.PnlBill.Visible = false;
CurMaster.PnlQuery.Visible = false;
if (!IsPostBack)
{
Master_OnQuery();
GridDataBind();
}
grdSHD2.FindColumnByFieldName("JGYBJCLID_WSJG").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal;
grdSHD2.FindColumnByFieldName("JGYBJCLID_HSJG").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal;
grdSHD2.FindColumnByFieldName("WSJGF").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal;
grdSHD2.FindColumnByFieldName("HSJGF").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal;
grdSHD2.FindColumnByFieldName("WSJG").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal;
grdSHD2.FindColumnByFieldName("HSJG").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal;
}
#region 模板继承事件
protected override void Master_OnQuery()
{
entity.sBJDID = PageParam.GetRTrimString("BJDID");
entity.sWLVID = PageParam.GetRTrimString("WLVID");
entity.sCLVID = PageParam.GetRTrimString("CLVID");
entity.sRYID = CurSession.RYID;
entity.sBJRQ = PageParam.GetRTrimString("BJRQ");
base.Master_OnQuery();
grdSHD2.SelectedIndex = -1;
}
protected override bool Master_OnOK()
{
bool bResult = base.Master_OnOK();
if (!bResult) return false;
if (grdSHD2.Rows.Count <= 0)
{
CloseWindow();
return false;//这里返回false是为了解决关闭当前页面会同时关闭“调整材料行情”页面的问题
}
TDatabase DBERP = TContextDatabases.GetDatabase("DBERP");
string sBJDID = PageParam.GetRTrimString("BJDID");
string sVWLID = PageParam.GetRTrimString("WLVID");
string sRYID = CurSession.RYID;
if (!sBJDID.Equals(""))
{
try
{
DBERP.BeginTrans();
//先删物料行情
for (int i = 0; i < grdSHD2.NewRows.Count; i++)
{
DBERP.ExecSQL(string.Format("delete from V_XLXSBJDWLHQ where V_XLXSBJDWLHQ_BJDID='{0}' and V_XLXSBJDWLHQ_WLID='{1}'"
+ " and V_XLXSBJDWLHQ_ID='{2}' and V_XLXSBJDWLHQ_TZRYID='{3}'", sBJDID, grdSHD2.GetValueByFieldName("XLXSBJCLWL_WLID", grdSHD2.NewRows[i]).ToString().Trim(), sVWLID, sRYID));
}
//再据界面输入构造,插入物料行情
TSQL tmpSQL = new TSQL(DBERP);
tmpSQL.Clear();
tmpSQL.Add("insert into V_XLXSBJDWLHQ(V_XLXSBJDWLHQ_BJDID,V_XLXSBJDWLHQ_WLID,V_XLXSBJDWLHQ_WSJG,V_XLXSBJDWLHQ_HSJG,V_XLXSBJDWLHQ_WHRID,V_XLXSBJDWLHQ_WHR,V_XLXSBJDWLHQ_WHSJ,V_XLXSBJDWLHQ_WSJGF,V_XLXSBJDWLHQ_HSJGF,");
tmpSQL.Add("V_XLXSBJDWLHQ_ID,V_XLXSBJDWLHQ_TZRYID,V_XLXSBJDWLHQ_TZRYGH,V_XLXSBJDWLHQ_TZRYMC,V_XLXSBJDWLHQ_TIMESTAMP) ");
for (int i = 0; i < grdSHD2.NewRows.Count; i++)
{
if (i != 0)
{
tmpSQL.Add(" union all ");
}
tmpSQL.Add(string.Format("select '{0}' as BJDID,'{1}' as WLID,{2} as WSJG,{3} as HSJG,'{4}' as WHRID,'{5}' as WHR,'{6}' as WHSJ,{7} as WSJGF,{8} as HSJGF,{9} as ID, "
+ " '{10}' as RYID,'{11}' as RYGH,'{12}' as RYMC,'{13}' as TIMESTAMP ",
sBJDID,
grdSHD2.GetValueByFieldName("XLXSBJCLWL_WLID", grdSHD2.NewRows[i]).ToString().Trim(),
CMISproConvert.StrToFloat(grdSHD2.GetValueByFieldName("WSJG", grdSHD2.NewRows[i]).ToString().Trim()),
CMISproConvert.StrToFloat(grdSHD2.GetValueByFieldName("HSJG", grdSHD2.NewRows[i]).ToString().Trim()),
grdSHD2.GetValueByFieldName("XLXSBJDWLHQ_WHRID", grdSHD2.NewRows[i]).ToString().Trim().Equals("") ? CurSession.UserId : grdSHD2.GetValueByFieldName("XLXSBJDWLHQ_WHRID", grdSHD2.NewRows[i]).ToString().Trim(),
grdSHD2.GetValueByFieldName("XLXSBJDWLHQ_WHR", grdSHD2.NewRows[i]).ToString().Trim().Equals("") ? CurSession.UserName : grdSHD2.GetValueByFieldName("XLXSBJDWLHQ_WHR", grdSHD2.NewRows[i]).ToString().Trim(),
grdSHD2.GetValueByFieldName("XLXSBJDWLHQ_WHSJ", grdSHD2.NewRows[i]).ToString().Trim().Equals("") ? DateTime.Now.ToString().Trim() : grdSHD2.GetValueByFieldName("XLXSBJDWLHQ_WHSJ", grdSHD2.NewRows[i]).ToString().Trim(),
CMISproConvert.StrToFloat(grdSHD2.GetValueByFieldName("WSJGF", grdSHD2.NewRows[i]).ToString().Trim()),
CMISproConvert.StrToFloat(grdSHD2.GetValueByFieldName("HSJGF", grdSHD2.NewRows[i]).ToString().Trim()),
sVWLID, CurSession.RYID, CurSession.UserId, CurSession.UserName, MISproUtils.GetServerTime().ToString().Trim()));
}
DBERP.ExecSQL(tmpSQL);
DBERP.CommitTrans();
CloseWindow();
return false;//这里返回false是为了解决关闭当前页面会同时关闭“调整材料行情”页面的问题
}
catch (Exception ex)
{
ShowMessage(ex.Message);
DBERP.RollbackTrans();
return false;
}
}
return true;
}
protected void grdSHD2_CalculateField(object sender, CalculateFieldEventArgs e)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sBJDID = PageParam.GetRTrimString("BJDID");
string sWLID = e.RowData["XLXSBJCLWL_WLID"].ToString().Trim();
if (e.EventFieldName.Equals("WSJG"))
{
double dHSJG = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.EventFieldValue) * (1 + CMISproConvert.StrToFloat(e.RowData["XLXSBJCL_ZZSL"].ToString().Trim(), 0) / 100), XLBJDUtils.BJCLPriceDecimal);
e.ResultPairs.Add("HSJG", dHSJG.ToString());
e.ResultPairs.Add("V_XLXSBJDWLHQ_WHR", CurSession.UserName);
e.ResultPairs.Add("V_XLXSBJDWLHQ_WHRID", CurSession.UserId);
e.ResultPairs.Add("V_XLXSBJDWLHQ_WHSJ", DateTime.Now.ToString().Trim());
}
else if (e.EventFieldName.Equals("HSJG"))
{
double dWSJG = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.EventFieldValue) / (1 + CMISproConvert.StrToFloat(e.RowData["XLXSBJCL_ZZSL"].ToString().Trim(), 0) / 100), XLBJDUtils.BJCLPriceDecimal);
e.ResultPairs.Add("WSJG", dWSJG.ToString());
e.ResultPairs.Add("V_XLXSBJDWLHQ_WHR", CurSession.UserName);
e.ResultPairs.Add("V_XLXSBJDWLHQ_WHRID", CurSession.UserId);
e.ResultPairs.Add("V_XLXSBJDWLHQ_WHSJ", DateTime.Now.ToString().Trim());
}
else if (e.EventFieldName.Equals("WSJGF"))
{
double dHSJGF = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.EventFieldValue) * (1 + CMISproConvert.StrToFloat(e.RowData["XLXSBJCL_ZZSL"].ToString().Trim(), 0) / 100), XLBJDUtils.BJCLPriceDecimal);
double dWSJG = CMISproConvert.StrToFloat(e.RowData["JGYBJCLID_WSJG"].ToString().Trim(), 0) + CMISproConvert.StrToFloat(e.EventFieldValue);
double dHSJG = CMISproConvert.StrToFloat(e.RowData["JGYBJCLID_HSJG"].ToString().Trim(), 0) + dHSJGF;
e.ResultPairs.Add("HSJGF", dHSJGF.ToString());
e.ResultPairs.Add("WSJG", dWSJG.ToString());
e.ResultPairs.Add("HSJG", dHSJG.ToString());
e.ResultPairs.Add("V_XLXSBJDWLHQ_WHR", CurSession.UserName);
e.ResultPairs.Add("V_XLXSBJDWLHQ_WHRID", CurSession.UserId);
e.ResultPairs.Add("V_XLXSBJDWLHQ_WHSJ", DateTime.Now.ToString().Trim());
}
else if (e.EventFieldName.Equals("HSJGF"))
{
double dWSJGF = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.EventFieldValue) / (1 + CMISproConvert.StrToFloat(e.RowData["XLXSBJCL_ZZSL"].ToString().Trim(), 0) / 100), XLBJDUtils.BJCLPriceDecimal);
double dWSJG = CMISproConvert.StrToFloat(e.RowData["JGYBJCLID_WSJG"].ToString().Trim(), 0) + dWSJGF;
double dHSJG = CMISproConvert.StrToFloat(e.RowData["JGYBJCLID_HSJG"].ToString().Trim(), 0) + CMISproConvert.StrToFloat(e.EventFieldValue);
e.ResultPairs.Add("WSJGF", dWSJGF.ToString());
e.ResultPairs.Add("WSJG", dWSJG.ToString());
e.ResultPairs.Add("HSJG", dHSJG.ToString());
e.ResultPairs.Add("V_XLXSBJDWLHQ_WHR", CurSession.UserName);
e.ResultPairs.Add("V_XLXSBJDWLHQ_WHRID", CurSession.UserId);
e.ResultPairs.Add("V_XLXSBJDWLHQ_WHSJ", DateTime.Now.ToString().Trim());
}
//SQL.Clear();
//SQL.Add(" select 1 from XLXSBJDWLHQ where XLXSBJCLWL_WLID = :pWLID and XLXSBJDWLHQ_BJDID = :pBJDID ");
//SQL.ParamByName("pBJCLID").Value = sWLID;
//SQL.ParamByName("pBJDID").Value = sBJDID;
//DataSet dsBJDWLHQ = dberp.OpenDataSet(SQL);
//if (dsBJDWLHQ.Tables[0].Rows.Count > 0)
//{
// SQL.Clear();
// SQL.Add(" update XLXSBJDWLHQ ");
// SQL.Add(" set XLXSBJDWLHQ_WSJG = :XLXSBJDWLHQ_WSJG,XLXSBJDWLHQ_HSJG=:XLXSBJDWLHQ_HSJG, ");
// SQL.Add(" XLXSBJDWLHQ_WSJGF=:XLXSBJDWLHQ_WSJGF,XLXSBJDWLHQ_HSJGF=:XLXSBJDWLHQ_HSJGF,");
// SQL.Add(" XLXSBJDWLHQ_WHRID = :XLXSBJDWLHQ_WHRID, XLXSBJDWLHQ_WHR = :XLXSBJDWLHQ_WHR, XLXSBJDWLHQ_WHSJ = :XLXSBJDWLHQ_WHSJ");
// SQL.Add(" where XLXSBJDWLHQ_BJDID =:pBJDID and XLXSBJDWLHQ_WLID = :pWLID ");
// SQL.ParamByName("XLXSBJDWLHQ_WSJG").Value = sWSJG;
// SQL.ParamByName("XLXSBJDWLHQ_HSJG").Value = sHSJG;
// SQL.ParamByName("XLXSBJDWLHQ_WSJGF").Value = sWSJGF;
// SQL.ParamByName("XLXSBJDWLHQ_HSJGF").Value = sHSJGF;
// SQL.ParamByName("XLXSBJDWLHQ_WHR").Value = CurSession.UserName;
// SQL.ParamByName("XLXSBJDWLHQ_WHRID").Value = CurSession.UserId;
// SQL.ParamByName("XLXSBJDWLHQ_WHSJ").Value = DateTime.Now;
// SQL.ParamByName("pWLID").Value = sWLID;
// SQL.ParamByName("pBJDID").Value = sBJDID;
// dberp.ExecSQL(SQL);
//}
//else
//{
// //插入
// SQL.Clear();
// SQL.Add(" insert into XLXSBJDWLHQ( ");
// SQL.Add(" XLXSBJDWLHQ_WLID,XLXSBJDWLHQ_BJDID, XLXSBJDWLHQ_WSJG,XLXSBJDWLHQ_HSJG, XLXSBJDWLHQ_WSJGF,XLXSBJDWLHQ_HSJGF, ");
// SQL.Add(" XLXSBJDWLHQ_WHRID, XLXSBJDWLHQ_WHR, XLXSBJDWLHQ_WHSJ )");
// SQL.Add(" values(");
// SQL.Add(" :XLXSBJDWLHQ_WLID, :XLXSBJDWLHQ_BJDID, :XLXSBJDWLHQ_WSJG,:XLXSBJDWLHQ_HSJG, :XLXSBJDWLHQ_WSJGF, :XLXSBJDWLHQ_HSJGF,");
// SQL.Add(" :XLXSBJDWLHQ_WHRID, :XLXSBJDWLHQ_WHR, :XLXSBJDWLHQ_WHSJ )");
// SQL.ParamByName("XLXSBJDWLHQ_WLID").Value = sWLID;
// SQL.ParamByName("XLXSBJDWLHQ_BJDID").Value = sBJDID;
// SQL.ParamByName("XLXSBJDWLHQ_WSJG").Value = sWSJG;
// SQL.ParamByName("XLXSBJDWLHQ_HSJG").Value = sHSJG;
// SQL.ParamByName("XLXSBJDWLHQ_WSJGF").Value = sWSJGF;
// SQL.ParamByName("XLXSBJDWLHQ_HSJGF").Value = sHSJGF;
// SQL.ParamByName("XLXSBJDWLHQ_WHR").Value = CurSession.UserName;
// SQL.ParamByName("XLXSBJDWLHQ_WHRID").Value = CurSession.UserId;
// SQL.ParamByName("XLXSBJDWLHQ_WHSJ").Value = DateTime.Now;
// dberp.ExecSQL(SQL);
//}
}
#endregion
#region 自定义函数
#endregion
#region 控件事件
protected void btnCGHQ_OnClick(object sender, EventArgs e)
{
Confirm.Register("IsQD", "将使用今天最新的物料采购价格进行更新,是否继续?");
if (Confirm.GetValue("IsQD").Trim().Equals(""))
{
Confirm.Ask("IsQD");
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("N"))
{
Confirm.Clear();
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("Y"))
{
Confirm.Clear();
}
string sWLIDList = "";
foreach (GridViewRow row in grdSHD2.NewRows)
{
if (grdSHD2.GetValueByFieldName("JGYBJCLXX", row).Trim().Equals(""))
{
sWLIDList += grdSHD2.GetValueByFieldName("XLXSBJCLWL_WLID", row).Trim() + ",";
}
}
sWLIDList = sWLIDList.TrimEnd(',');
//用物料采购价格进行更新,只更新没有加工关系的物料
//差异#2021030856-两个按钮不用考虑报价单日期,直接取当天最新行情
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("merge into V_XLXSBJDWLHQ ");
SQL.Add("using ");
SQL.Add("( ");
SQL.Add("select :pBJDID as BJDID,XLXSBJCLWL_WLID as WLID, ");
SQL.Add("isnull(XLXSWLHQ_WSCGJG,0) as WSJG, ");
SQL.Add("isnull(XLXSWLHQ_HSCGJG,0) as HSJG ");
SQL.Add("from XLXSBJCLWL ");
SQL.Add("left join ");
SQL.Add(" (select XLXSWLHQ_WLID,XLXSWLHQ_WSCGJG,XLXSWLHQ_HSCGJG");
SQL.Add(" from XLXSWLHQ,");
SQL.Add(" (");
SQL.Add(" select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS) as maxYXQS");
SQL.Add(" from XLXSWLHQ");
SQL.Add(" where XLXSWLHQ_JGBID=' '");
SQL.Add(" and XLXSWLHQ_YXQS<=:pBJRQ and(XLXSWLHQ_YXQZ>=:pBJRQ or XLXSWLHQ_YXQZ is null)");
SQL.Add(" group by XLXSWLHQ_WLID");
SQL.Add(" ) a ");
SQL.Add(" where XLXSWLHQ_JGBID=' ' ");
SQL.Add(" and XLXSWLHQ_WLID=WLID ");
SQL.Add(" and XLXSWLHQ_YXQS=maxYXQS ");
SQL.Add(" ) c on XLXSWLHQ_WLID=XLXSBJCLWL_WLID ");
SQL.Add("where " + CMISproDataBase.GetWhereEqual("XLXSBJCLWL_WLID", sWLIDList));
SQL.Add(") B on (V_XLXSBJDWLHQ_BJDID=B.BJDID and V_XLXSBJDWLHQ_WLID=B.WLID and V_XLXSBJDWLHQ_ID=:pWLVID and V_XLXSBJDWLHQ_TZRYID=:pRYID ) ");
SQL.Add("when matched then ");
SQL.Add("update set V_XLXSBJDWLHQ_WSJG=B.WSJG,V_XLXSBJDWLHQ_HSJG=B.HSJG, ");
SQL.Add(" V_XLXSBJDWLHQ_WHR=:pWHR,V_XLXSBJDWLHQ_WHRID=:pWHRID,V_XLXSBJDWLHQ_WHSJ=:pWHSJ ");
SQL.Add("when not matched then ");
SQL.Add("insert (V_XLXSBJDWLHQ_BJDID,V_XLXSBJDWLHQ_WLID,V_XLXSBJDWLHQ_WSJG,V_XLXSBJDWLHQ_HSJG,V_XLXSBJDWLHQ_WSJGF,V_XLXSBJDWLHQ_HSJGF,");
SQL.Add("V_XLXSBJDWLHQ_ID,V_XLXSBJDWLHQ_TZRYID,V_XLXSBJDWLHQ_TZRYGH,V_XLXSBJDWLHQ_TZRYMC,V_XLXSBJDWLHQ_TIMESTAMP,V_XLXSBJDWLHQ_WHR,V_XLXSBJDWLHQ_WHRID,V_XLXSBJDWLHQ_WHSJ) ");
SQL.Add("values (B.BJDID,B.WLID,B.WSJG,B.HSJG,0,0,:pWLVID,:pRYID,:pRYGH,:pRYMC,:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ) ");
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID");
SQL.ParamByName("pWLVID").Value = PageParam.GetRTrimString("WLVID");
SQL.ParamByName("pRYID").Value = CurSession.RYID;
SQL.ParamByName("pRYGH").Value = CurSession.UserId;
SQL.ParamByName("pRYMC").Value = CurSession.UserName;
SQL.ParamByName("pTIMESTAMP").Value = MISproUtils.GetServerTime();
SQL.ParamByName("pBJRQ").Value = CMISproConvert.ConvertDate(DateTime.Now);
SQL.ParamByName("pWHR").Value = CurSession.UserName;
SQL.ParamByName("pWHRID").Value = CurSession.UserId;
SQL.ParamByName("pWHSJ").Value = DateTime.Now;
dberp.ExecSQL(SQL);
//刷新
Master_OnQuery();
GridDataBind();
FormAreaUpdate();
ShowMessage("更新完成!");
}
protected void btnWLHQ_OnClick(object sender, EventArgs e)
{
Confirm.Register("IsQD", "将使用今天最新的物料价格进行更新,是否继续?");
if (Confirm.GetValue("IsQD").Trim().Equals(""))
{
Confirm.Ask("IsQD");
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("N"))
{
Confirm.Clear();
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("Y"))
{
Confirm.Clear();
}
string sWLIDList = "";
foreach (GridViewRow row in grdSHD2.NewRows)
{
if (grdSHD2.GetValueByFieldName("JGYBJCLXX", row).Trim().Equals(""))
{
sWLIDList += grdSHD2.GetValueByFieldName("XLXSBJCLWL_WLID", row).Trim() + ",";
}
}
sWLIDList = sWLIDList.TrimEnd(',');
//用物料材料价格进行更新,只更新没有加工关系的物料
//差异#2021030856-两个按钮不用考虑报价单日期,直接取当天最新行情
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("merge into V_XLXSBJDWLHQ ");
SQL.Add("using ");
SQL.Add("( ");
SQL.Add("select :pBJDID as BJDID,XLXSBJCLWL_WLID as WLID, ");
SQL.Add("isnull(XLXSWLHQ_WSJG,0) as WSJG, ");
SQL.Add("isnull(XLXSWLHQ_HSJG,0) as HSJG ");
SQL.Add("from XLXSBJCLWL ");
SQL.Add("left join ");
SQL.Add(" (select XLXSWLHQ_WLID,XLXSWLHQ_WSJG,XLXSWLHQ_HSJG");
SQL.Add(" from XLXSWLHQ,");
SQL.Add(" (");
SQL.Add(" select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS) as maxYXQS");
SQL.Add(" from XLXSWLHQ");
SQL.Add(" where XLXSWLHQ_JGBID=' '");
SQL.Add(" and XLXSWLHQ_YXQS<=:pBJRQ and(XLXSWLHQ_YXQZ>=:pBJRQ or XLXSWLHQ_YXQZ is null)");
SQL.Add(" group by XLXSWLHQ_WLID");
SQL.Add(" ) a ");
SQL.Add(" where XLXSWLHQ_JGBID=' ' ");
SQL.Add(" and XLXSWLHQ_WLID=WLID ");
SQL.Add(" and XLXSWLHQ_YXQS=maxYXQS ");
SQL.Add(" ) c on XLXSWLHQ_WLID=XLXSBJCLWL_WLID ");
SQL.Add("where " + CMISproDataBase.GetWhereEqual("XLXSBJCLWL_WLID", sWLIDList));
SQL.Add(") B on (V_XLXSBJDWLHQ_BJDID=B.BJDID and V_XLXSBJDWLHQ_WLID=B.WLID and V_XLXSBJDWLHQ_ID=:pWLVID and V_XLXSBJDWLHQ_TZRYID=:pRYID ) ");
SQL.Add("when matched then ");
SQL.Add("update set V_XLXSBJDWLHQ_WSJG=B.WSJG,V_XLXSBJDWLHQ_HSJG=B.HSJG, ");
SQL.Add(" V_XLXSBJDWLHQ_WHR=:pWHR,V_XLXSBJDWLHQ_WHRID=:pWHRID,V_XLXSBJDWLHQ_WHSJ=:pWHSJ ");
SQL.Add("when not matched then ");
SQL.Add("insert (V_XLXSBJDWLHQ_BJDID,V_XLXSBJDWLHQ_WLID,V_XLXSBJDWLHQ_WSJG,V_XLXSBJDWLHQ_HSJG,V_XLXSBJDWLHQ_WSJGF,V_XLXSBJDWLHQ_HSJGF,");
SQL.Add("V_XLXSBJDWLHQ_ID,V_XLXSBJDWLHQ_TZRYID,V_XLXSBJDWLHQ_TZRYGH,V_XLXSBJDWLHQ_TZRYMC,V_XLXSBJDWLHQ_TIMESTAMP,V_XLXSBJDWLHQ_WHR,V_XLXSBJDWLHQ_WHRID,V_XLXSBJDWLHQ_WHSJ) ");
SQL.Add("values (B.BJDID,B.WLID,B.WSJG,B.HSJG,0,0,:pWLVID,:pRYID,:pRYGH,:pRYMC,:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ) ");
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID");
SQL.ParamByName("pWLVID").Value = PageParam.GetRTrimString("WLVID");
SQL.ParamByName("pRYID").Value = CurSession.RYID;
SQL.ParamByName("pRYGH").Value = CurSession.UserId;
SQL.ParamByName("pRYMC").Value = CurSession.UserName;
SQL.ParamByName("pTIMESTAMP").Value = MISproUtils.GetServerTime();
SQL.ParamByName("pBJRQ").Value = CMISproConvert.ConvertDate(DateTime.Now);
SQL.ParamByName("pWHR").Value = CurSession.UserName;
SQL.ParamByName("pWHRID").Value = CurSession.UserId;
SQL.ParamByName("pWHSJ").Value = DateTime.Now;
dberp.ExecSQL(SQL);
//刷新
Master_OnQuery();
GridDataBind();
FormAreaUpdate();
ShowMessage("更新完成!");
}
#endregion
}
}