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

393 lines
20 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_MODEL.Page;
using GThinking.N_MISPRO.Data;
using GThinking.N_MISPRO.Utility;
namespace GThinking.N_XLXSBJ
{
public partial class CXBJD_PLBJFKInfo : SingleCardBase
{
CXBJD_BJFK entity = new CXBJD_BJFK();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860046;
this.UMName = "线缆销售报价反馈";
this.CurMaster = Master;
this.CurEntity = entity;
this.PageHeight = 180;
this.PageWidth = 420;
Master.EnableAttachBtn = false;
Master.EnableCancelBtn = false;
Master.EnableCopyBtn = false;
Master.EnableDeleteBtn = false;
Master.EnableEditBtn = false;
Master.EnableInsertBtn = false;
Master.EnablePrintBtn = false;
Master.EnableRefreshBtn = false;
Master.EnableSaveBtn = false;
base.InitPage();
if (!IsPostBack)
{
InitControl();
}
}
protected override void SetControlState()
{
base.SetControlState();
}
#region 自定义事件
private void InitControl()
{
txtBJDID.Value = PageParam.GetRTrimString("BJDID");
txtBJDXHList.Value = PageParam.GetRTrimString("BJDXHList");
if (XLBJDUtils.GetXLXSBJPZXX(100860046).XLXSBJPZ_ZCCF.Trim().Equals("Y"))
{
string[] TmpXHList = txtBJDXHList.Value.Split(',');
string XHList = "";
string CFXHList = "";
string CFMXXHList = "";
for (int i = 0; i < TmpXHList.Length; i++)
{
XHList += TmpXHList[i].Trim().Split('|')[0].Trim() + ",";
if (TmpXHList[i].Trim().Split('|').Length>1)
if (CMISproConvert.StrToInt(TmpXHList[i].Trim().Split('|')[1],0) > 0)
{
CFXHList += TmpXHList[i].Trim().Split('|')[1].Trim() + ",";
CFMXXHList += TmpXHList[i].Trim().Split('|')[0].Trim() + ",";
}
}
XHList = XHList.TrimEnd(',');
CFXHList = CFXHList.TrimEnd(',');
CFMXXHList = CFMXXHList.TrimEnd(',');
txtBJDXHList.Value = XHList;
txtCFXHList.Value = CFXHList;
txtCFMXXHList.Value = CFMXXHList;
}
cbxSZFW.ClearItems();
cbxSZFW.Items.Add(new ListItem("勾选记录", "C"));
cbxSZFW.Items.Add(new ListItem("整单记录", "A"));
if (!txtBJDXHList.Value.Trim().Equals(""))
cbxSZFW.SelectedValue = "C";
else
cbxSZFW.SelectedValue = "A";
cbxSZFW.Enabled = false;
cbxZB.ClearItems();
cbxZB.Items.Add(new ListItem("全部中标", "Y"));
cbxZB.Items.Add(new ListItem("部分中标", "P"));
cbxZB.Items.Add(new ListItem("未中标", "N"));
cbxZB.Items.Add(new ListItem("废标", "F"));
cbxZB.Items.Add(new ListItem("弃标", "Q"));
cbxZB.SelectedValue = "Y";
chkBJWS.Visible = false;
bool IsFKZ3BB = false;
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860046);
if (pzxx.XLXSBJPZ_TBFKZ3BB == "Y")
IsFKZ3BB = true;
if ((!IsFKZ3BB))
{
chkBJWS.Visible = true;
string sBJWS = string.Empty;
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("select top 1 XLXSBJDMX_BJWS,XLXSBJD_JZBJHS from XLXSBJDMX left join XLXSBJD on XLXSBJD_BJDID=XLXSBJDMX_BJDID where XLXSBJDMX_BJDID=:pBJDID ");
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID");
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
sBJWS = ds.Tables[0].Rows[0][0].ToString().Trim();
chkBJWS.Checked = !ds.Tables[0].Rows[0]["XLXSBJD_JZBJHS"].ToString().Trim().Equals("Y");
}
}
private void UpdateBJWS(TDatabase dberp,string sBJDID)
{
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("update XLXSBJDMX set XLXSBJDMX_BJWS=:pBJWS where XLXSBJDMX_BJDID=:pBJDID ");
SQL.ParamByName("pBJWS").Value = chkBJWS.Checked ? "Y" : "N";
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
}
#endregion
protected void btnQR_Click(object sender, EventArgs e)
{
if (cbxZB.SelectedValue.Trim().Equals(""))
{
ShowMessage("中标--不允许为空!");
return;
}
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
try
{
dberp.BeginTrans();
if (XLBJDUtils.GetXLXSBJPZXX(100860046).XLXSBJPZ_ZCCF.Trim().Equals("Y"))
{
if (!txtCFXHList.Value.Trim().Equals(""))
{
//更新勾选拆分明细
SQL.Clear();
SQL.Add(" merge into XLXSBJFKCFMX tar ");
SQL.Add(" using( select ");
if (cbxZB.SelectedValue.Trim().Equals("Y") || cbxZB.SelectedValue.Trim().Equals("P"))
SQL.Add(" XLXSBJFKCFMX_CFSL as ZBSL,roundfix(XLXSBJDMX_CPBJ*XLXSBJFKCFMX_CFSL,2) as ZBJE ,");
else
SQL.Add(" 0 as ZBSL,0 as ZBJE ,");
SQL.Add(" XLXSBJFKCFMX_BJDXH ,XLXSBJFKCFMX_BJDID,XLXSBJFKCFMX_CFSL,XLXSBJFKCFMX_CFXH ");
SQL.Add(" from XLXSBJDMX LEFT JOIN XLXSBJFKCFMX ON XLXSBJFKCFMX_BJDID=XLXSBJDMX_BJDID AND XLXSBJFKCFMX_BJDXH=XLXSBJDMX_XH where XLXSBJDMX_BJDID = :pBJDID ");
if (!txtCFXHList.Value.Trim().Equals(""))
SQL.Add(" and XLXSBJFKCFMX_CFXH in (" + txtCFXHList.Value.Trim() + ") ");
SQL.Add(" ) sor ");
SQL.Add(" on (tar.XLXSBJFKCFMX_BJDID = sor.XLXSBJFKCFMX_BJDID and tar.XLXSBJFKCFMX_BJDXH = sor.XLXSBJFKCFMX_BJDXH AND tar.XLXSBJFKCFMX_CFXH = sor.XLXSBJFKCFMX_CFXH ");
SQL.Add(" and tar.XLXSBJFKCFMX_BJDID = :pBJDID ");
if (!txtCFXHList.Value.Trim().Equals(""))
SQL.Add(" and tar.XLXSBJFKCFMX_CFXH in (" + txtCFXHList.Value.Trim() + ") ");
SQL.Add(" ) ");
SQL.Add(" when matched then update set ");
SQL.Add(" tar.XLXSBJFKCFMX_ZBZT=:pZB, ");
SQL.Add(" tar.XLXSBJFKCFMX_ZBSL = sor.ZBSL ,");
SQL.Add(" tar.XLXSBJFKCFMX_ZBJE = sor.ZBJE ,");
SQL.Add(" tar.XLXSBJFKCFMX_WHR=:XLXSBJFKCFMX_WHR, ");
SQL.Add(" tar.XLXSBJFKCFMX_WHRID=:XLXSBJFKCFMX_WHRID, ");
SQL.Add(" tar.XLXSBJFKCFMX_WHSJ=:XLXSBJFKCFMX_WHSJ ");
SQL.ParamByName("pZB").Value = cbxZB.SelectedValue.Trim();
SQL.ParamByName("XLXSBJFKCFMX_WHR").Value = tSession.UserName;
SQL.ParamByName("XLXSBJFKCFMX_WHRID").Value = tSession.UserId;
SQL.ParamByName("XLXSBJFKCFMX_WHSJ").Value = DateTime.Now;
SQL.ParamByName("pBJDID").Value = txtBJDID.Value;
dberp.ExecSQL(SQL);
//根据拆分明细更新报价单明细
SQL.Clear();
SQL.Add("MERGE INTO XLXSBJDMX tar");
SQL.Add(" using( ");
SQL.Add(" SELECT XLXSBJFKCFMX_BJDID,XLXSBJFKCFMX_BJDXH,SUM(XLXSBJFKCFMX_ZBSL) AS ZBSL,SUM(XLXSBJFKCFMX_ZBJE) AS ZBJE ");
SQL.Add(" FROM XLXSBJFKCFMX ");
SQL.Add(" where XLXSBJFKCFMX_BJDID=:pBJDID ");
if (!txtCFMXXHList.Value.Trim().Equals(""))
SQL.Add(" and XLXSBJFKCFMX_BJDXH in (" + txtCFMXXHList.Value.Trim() + ") ");
else
SQL.Add(" and 1<>1 ");
SQL.Add(" GROUP BY XLXSBJFKCFMX_BJDID,XLXSBJFKCFMX_BJDXH ");
SQL.Add(" ) sor ");
SQL.Add(" on (tar.XLXSBJDMX_BJDID = sor.XLXSBJFKCFMX_BJDID and tar.XLXSBJDMX_XH = sor.XLXSBJFKCFMX_BJDXH ");
SQL.Add(" and tar.XLXSBJDMX_BJDID = :pBJDID ");
if (!txtCFMXXHList.Value.Trim().Equals(""))
SQL.Add(" and XLXSBJDMX_XH in (" + txtCFMXXHList.Value.Trim() + ") ");
else
SQL.Add(" and 1<>1 ");
SQL.Add(" ) ");
SQL.Add(" when matched then update set ");
SQL.Add(" tar.XLXSBJDMX_ZB=:pZB, ");
SQL.Add(" tar.XLXSBJDMX_ZBSL = sor.ZBSL ,");
SQL.Add(" tar.XLXSBJDMX_ZBJE = sor.ZBJE, ");
SQL.Add(" tar.XLXSBJDMX_WHR=:XLXSBJDMX_WHR, ");
SQL.Add(" tar.XLXSBJDMX_WHRID=:XLXSBJDMX_WHRID, ");
SQL.Add(" tar.XLXSBJDMX_WHSJ=:XLXSBJDMX_WHSJ ");
SQL.ParamByName("pZB").Value = cbxZB.SelectedValue.Trim();
SQL.ParamByName("pBJDID").Value = txtBJDID.Value;
SQL.ParamByName("XLXSBJDMX_WHR").Value = tSession.UserName;
SQL.ParamByName("XLXSBJDMX_WHRID").Value = tSession.UserId;
SQL.ParamByName("XLXSBJDMX_WHSJ").Value = DateTime.Now;
dberp.ExecSQL(SQL);
//更新勾选未拆分明细
SQL.Clear();
SQL.Add(" merge into XLXSBJDMX tar ");
SQL.Add(" using( select ");
if (cbxZB.SelectedValue.Trim().Equals("Y") || cbxZB.SelectedValue.Trim().Equals("P"))
SQL.Add(" XLXSBJDMX_BJSL as ZBSL,roundfix(XLXSBJDMX_CPBJ*XLXSBJDMX_BJSL,2) as ZBJE ,");
else
SQL.Add(" 0 as ZBSL,0 as ZBJE ,");
SQL.Add(" XLXSBJDMX_XH ,XLXSBJDMX_BJDID ");
SQL.Add(" from XLXSBJDMX where XLXSBJDMX_BJDID = :pBJDID ");
if (!txtBJDXHList.Value.Trim().Equals(""))
SQL.Add(" and XLXSBJDMX_XH in (" + txtBJDXHList.Value.Trim() + ") ");
if (!txtCFMXXHList.Value.Trim().Equals(""))
SQL.Add(" and XLXSBJDMX_XH not in (" + txtCFMXXHList.Value.Trim() + ") ");
SQL.Add(" ) sor ");
SQL.Add(" on (tar.XLXSBJDMX_XH = sor.XLXSBJDMX_XH and tar.XLXSBJDMX_BJDID = sor.XLXSBJDMX_BJDID ");
SQL.Add(" and tar.XLXSBJDMX_BJDID = :pBJDID ");
if (!txtBJDXHList.Value.Trim().Equals(""))
SQL.Add(" and tar.XLXSBJDMX_XH in (" + txtBJDXHList.Value.Trim() + ") ");
if (!txtCFMXXHList.Value.Trim().Equals(""))
SQL.Add(" and tar.XLXSBJDMX_XH not in (" + txtCFMXXHList.Value.Trim() + ") ");
SQL.Add(" ) ");
SQL.Add(" when matched then update set ");
SQL.Add(" tar.XLXSBJDMX_ZB=:pZB, ");
SQL.Add(" tar.XLXSBJDMX_ZBSL = sor.ZBSL ,");
SQL.Add(" tar.XLXSBJDMX_ZBJE = sor.ZBJE ,");
SQL.Add(" tar.XLXSBJDMX_WHR=:XLXSBJDMX_WHR, ");
SQL.Add(" tar.XLXSBJDMX_WHRID=:XLXSBJDMX_WHRID, ");
SQL.Add(" tar.XLXSBJDMX_WHSJ=:XLXSBJDMX_WHSJ ");
SQL.ParamByName("pZB").Value = cbxZB.SelectedValue.Trim();
SQL.ParamByName("XLXSBJDMX_WHR").Value = tSession.UserName;
SQL.ParamByName("XLXSBJDMX_WHRID").Value = tSession.UserId;
SQL.ParamByName("XLXSBJDMX_WHSJ").Value = DateTime.Now;
SQL.ParamByName("pBJDID").Value = txtBJDID.Value;
dberp.ExecSQL(SQL);
}
else
{
SQL.Clear();
SQL.Add(" merge into XLXSBJFKCFMX tar ");
SQL.Add(" using( select XLXSBJFKCFMX_CFXH,");
if (cbxZB.SelectedValue.Trim().Equals("Y") || cbxZB.SelectedValue.Trim().Equals("P"))
SQL.Add(" XLXSBJFKCFMX_CFSL as ZBSL,roundfix(XLXSBJDMX_CPBJ*XLXSBJFKCFMX_CFSL,2) as ZBJE ,");
else
SQL.Add(" 0 as ZBSL,0 as ZBJE ,");
SQL.Add(" XLXSBJDMX_XH ,XLXSBJDMX_BJDID ");
SQL.Add(" from XLXSBJDMX LEFT JOIN XLXSBJFKCFMX ON XLXSBJFKCFMX_BJDID=XLXSBJDMX_BJDID AND XLXSBJFKCFMX_BJDXH=XLXSBJDMX_XH where XLXSBJDMX_BJDID = :pBJDID ");
SQL.Add(" ) sor ");
SQL.Add(" on (tar.XLXSBJFKCFMX_CFXH = sor.XLXSBJFKCFMX_CFXH and tar.XLXSBJFKCFMX_BJDID = sor.XLXSBJDMX_BJDID AND tar.XLXSBJFKCFMX_BJDXH=sor.XLXSBJDMX_XH ");
SQL.Add(" and tar.XLXSBJFKCFMX_BJDID = :pBJDID ");
SQL.Add(" ) ");
SQL.Add(" when matched then update set ");
SQL.Add(" tar.XLXSBJFKCFMX_ZBZT=:pZB, ");
SQL.Add(" tar.XLXSBJFKCFMX_ZBSL = sor.ZBSL ,");
SQL.Add(" tar.XLXSBJFKCFMX_ZBJE = sor.ZBJE ,");
SQL.Add(" tar.XLXSBJFKCFMX_WHR=:XLXSBJFKCFMX_WHR, ");
SQL.Add(" tar.XLXSBJFKCFMX_WHRID=:XLXSBJFKCFMX_WHRID, ");
SQL.Add(" tar.XLXSBJFKCFMX_WHSJ=:XLXSBJFKCFMX_WHSJ ");
SQL.ParamByName("pZB").Value = cbxZB.SelectedValue.Trim();
SQL.ParamByName("XLXSBJFKCFMX_WHR").Value = tSession.UserName;
SQL.ParamByName("XLXSBJFKCFMX_WHRID").Value = tSession.UserId;
SQL.ParamByName("XLXSBJFKCFMX_WHSJ").Value = DateTime.Now;
SQL.ParamByName("pBJDID").Value = txtBJDID.Value;
dberp.ExecSQL(SQL);
SQL.Clear();
SQL.Add(" merge into XLXSBJDMX tar ");
SQL.Add(" using( select ");
if (cbxZB.SelectedValue.Trim().Equals("Y") || cbxZB.SelectedValue.Trim().Equals("P"))
SQL.Add(" XLXSBJDMX_BJSL as ZBSL,roundfix(XLXSBJDMX_CPBJ*XLXSBJDMX_BJSL,2) as ZBJE ,");
else
SQL.Add(" 0 as ZBSL,0 as ZBJE ,");
SQL.Add(" XLXSBJDMX_XH ,XLXSBJDMX_BJDID ");
SQL.Add(" from XLXSBJDMX where XLXSBJDMX_BJDID = :pBJDID ");
if (!txtBJDXHList.Value.Trim().Equals(""))
SQL.Add(" and XLXSBJDMX_XH in (" + txtBJDXHList.Value.Trim() + ") ");
SQL.Add(" ) sor ");
SQL.Add(" on (tar.XLXSBJDMX_XH = sor.XLXSBJDMX_XH and tar.XLXSBJDMX_BJDID = sor.XLXSBJDMX_BJDID ");
SQL.Add(" and tar.XLXSBJDMX_BJDID = :pBJDID ");
if (!txtBJDXHList.Value.Trim().Equals(""))
SQL.Add(" and tar.XLXSBJDMX_XH in (" + txtBJDXHList.Value.Trim() + ") ");
SQL.Add(" ) ");
SQL.Add(" when matched then update set ");
SQL.Add(" tar.XLXSBJDMX_ZB=:pZB, ");
SQL.Add(" tar.XLXSBJDMX_ZBSL = sor.ZBSL ,");
SQL.Add(" tar.XLXSBJDMX_ZBJE = sor.ZBJE ,");
SQL.Add(" tar.XLXSBJDMX_WHR=:XLXSBJDMX_WHR, ");
SQL.Add(" tar.XLXSBJDMX_WHRID=:XLXSBJDMX_WHRID, ");
SQL.Add(" tar.XLXSBJDMX_WHSJ=:XLXSBJDMX_WHSJ ");
SQL.ParamByName("pZB").Value = cbxZB.SelectedValue.Trim();
SQL.ParamByName("XLXSBJDMX_WHR").Value = tSession.UserName;
SQL.ParamByName("XLXSBJDMX_WHRID").Value = tSession.UserId;
SQL.ParamByName("XLXSBJDMX_WHSJ").Value = DateTime.Now;
SQL.ParamByName("pBJDID").Value = txtBJDID.Value;
dberp.ExecSQL(SQL);
}
}
else
{
SQL.Clear();
SQL.Add(" merge into XLXSBJDMX tar ");
SQL.Add(" using( select ");
if (cbxZB.SelectedValue.Trim().Equals("Y") || cbxZB.SelectedValue.Trim().Equals("P"))
SQL.Add(" XLXSBJDMX_BJSL as ZBSL,roundfix(XLXSBJDMX_CPBJ*XLXSBJDMX_BJSL,2) as ZBJE ,");
else
SQL.Add(" 0 as ZBSL,0 as ZBJE ,");
SQL.Add(" XLXSBJDMX_XH ,XLXSBJDMX_BJDID ");
SQL.Add(" from XLXSBJDMX where XLXSBJDMX_BJDID = :pBJDID ");
if (!txtBJDXHList.Value.Trim().Equals(""))
SQL.Add(" and XLXSBJDMX_XH in (" + txtBJDXHList.Value.Trim() + ") ");
SQL.Add(" ) sor ");
SQL.Add(" on (tar.XLXSBJDMX_XH = sor.XLXSBJDMX_XH and tar.XLXSBJDMX_BJDID = sor.XLXSBJDMX_BJDID ");
SQL.Add(" and tar.XLXSBJDMX_BJDID = :pBJDID ");
if (!txtBJDXHList.Value.Trim().Equals(""))
SQL.Add(" and tar.XLXSBJDMX_XH in (" + txtBJDXHList.Value.Trim() + ") ");
SQL.Add(" ) ");
SQL.Add(" when matched then update set ");
SQL.Add(" tar.XLXSBJDMX_ZB=:pZB, ");
SQL.Add(" tar.XLXSBJDMX_ZBSL = sor.ZBSL ,");
SQL.Add(" tar.XLXSBJDMX_ZBJE = sor.ZBJE ,");
SQL.Add(" tar.XLXSBJDMX_WHR=:XLXSBJDMX_WHR, ");
SQL.Add(" tar.XLXSBJDMX_WHRID=:XLXSBJDMX_WHRID, ");
SQL.Add(" tar.XLXSBJDMX_WHSJ=:XLXSBJDMX_WHSJ ");
SQL.ParamByName("pZB").Value = cbxZB.SelectedValue.Trim();
SQL.ParamByName("XLXSBJDMX_WHR").Value = tSession.UserName;
SQL.ParamByName("XLXSBJDMX_WHRID").Value = tSession.UserId;
SQL.ParamByName("XLXSBJDMX_WHSJ").Value = DateTime.Now;
SQL.ParamByName("pBJDID").Value = txtBJDID.Value;
dberp.ExecSQL(SQL);
}
//更新报价单主表中标状态和中标金额
XLBJDUtils.UpdateBJDZBZT(dberp, txtBJDID.Value);
dberp.CommitTrans();
}
catch (Exception ex)
{
ShowMessage(ex.Message);
dberp.RollbackTrans();
return;
}
if (chkBJWS.Visible)
{
UpdateBJWS(dberp, txtBJDID.Value);
}
DialogOperationScript dos = new DialogOperationScript(this);
if (txtBJDXHList.Value.Trim().Equals(""))//整单操作
{
dos.SetOwnerControlValue(PageParam.GetRTrimString("NeedQRCID"), "Y");
}
else
{
dos.ClickOwnerButton(PageParam.GetRTrimString("RefreshCtrlID"));
}
dos.CloseSelf();
dos.Execute();
}
protected void btnQX_Click(object sender, EventArgs e)
{
DialogOperationScript dos = new DialogOperationScript(this);
if (txtBJDXHList.Value.Trim().Equals(""))//整单操作
{
dos.SetOwnerControlValue(PageParam.GetRTrimString("NeedQRCID"), "N");
}
dos.CloseSelf();
dos.Execute();
}
}
}