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

452 lines
23 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.N_XLXSBJ
{
public partial class XLBJD_WLHQTZList : OperationBase
{
XLBJD_WLHQTZ entity = new XLBJD_WLHQTZ();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860000;
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 (!PageParam.GetRTrimString("JGYBJCLID").Equals(""))
{
grdSHD2.FindColumnByFieldName("JGYBJCLXX").Visible = true;
grdSHD2.FindColumnByFieldName("JGYBJCLID_WSJG").Visible = true;
grdSHD2.FindColumnByFieldName("JGYBJCLID_HSJG").Visible = true;
grdSHD2.FindColumnByFieldName("WSJGF").Visible = true;
grdSHD2.FindColumnByFieldName("HSJGF").Visible = true;
grdSHD2.FindColumnByFieldName("WSJG").ReadOnly = true;
grdSHD2.FindColumnByFieldName("HSJG").ReadOnly = true;
}
else
{
grdSHD2.FindColumnByFieldName("JGYBJCLXX").Visible = false;
grdSHD2.FindColumnByFieldName("JGYBJCLID_WSJG").Visible = false;
grdSHD2.FindColumnByFieldName("JGYBJCLID_HSJG").Visible = false;
grdSHD2.FindColumnByFieldName("WSJGF").Visible = false;
grdSHD2.FindColumnByFieldName("HSJGF").Visible = false;
grdSHD2.FindColumnByFieldName("WSJG").ReadOnly = false;
grdSHD2.FindColumnByFieldName("HSJG").ReadOnly = false;
}
*/
/*
//若当前选择的报价材料设置有加工原料,则“更新自采购行情”不可见,因为调整材料行情界面的“更新自采购行情”会按报价材料的采购价格+物料的加工费作为物料的采购价格的
if (!PageParam.GetRTrimString("JGYBJCLID").Equals(""))
{
btnCGHQ.Visible = false;
btnWLHQ.Visible = false;
}
else
{
btnCGHQ.Visible = true;
btnWLHQ.Visible = true;
}
*/
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
}
}