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

308 lines
14 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 System.Collections.Generic;
using System.Web.Services;
using System.Web.Script.Services;
using System.Data.SqlClient;
using System.Web.Script.Serialization;
using GThinking.N_MISPRO.Utility;
using GThinking.N_MISPRO.Data;
namespace GThinking.N_XLXSBJ
{
public partial class XLXSBJ_AFZNRDR : HelpBase
{
#region Page 类事件
// 声明与前端对应的控件
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860000;
this.UMName = "按复制内容导入";
if (!IsPostBack)
base.InitPage();
//Ajax脚本注册
/*string misproasAssemblyName = MacInfoUtils.ClassId2AssemblyName("N_MISPROAS");
ScriptManager1.Scripts.Add(new ScriptReference("GThinking.N_MISPROAS.Web.AjaxServices.AjaxServiceProxy.js", misproasAssemblyName));
*/
if (!IsPostBack)
{
InitControls();
}
}
#endregion
#region 自定义事件
private void InitControls()
{
}
#endregion
protected void btnSubmit_Click(object sender, EventArgs e)
{
try
{
// 获取客户端传递的JSON数据
string jsonData = hdnTableData.Value;
if (string.IsNullOrEmpty(jsonData))
{
ShowAlert("没有接收到数据,请先粘贴数据!");
return;
}
// 解析JSON数据
JavaScriptSerializer serializer = new JavaScriptSerializer();
List<QuoteItem> items = serializer.Deserialize<List<QuoteItem>>(jsonData);
// 写入数据库
if (InsertQuoteItems(items))
{
ShowAlert("成功写入 " + items.Count + " 条报价单数据!");
CloseWindow();
}
else
{
ShowAlert("写入报价单时发生错误!");
}
}
catch (Exception ex)
{
ShowAlert("处理数据时发生错误:" + ex.Message);
}
}
private bool InsertQuoteItems(List<QuoteItem> items)
{
string sXLXHID = "";
string sXLGGID = "";
string sDYDJ = "";
string sST = "";
string sBJCP = "";
string sYXJG = "0";
string sYZ = "";
string sYSCP = "";
string sBH = "";
string sCPBJXJ = "0";
string sBJJEXJ = "0";
string sWGCPBZ = "";
string sDQDYDJID = "";
string sBJDID = PageParam.GetRTrimString("BJDID");
string sBJFLID = PageParam.GetRTrimString("BJFLID");
string sBJU003 = PageParam.GetRTrimString("BJU003");
string sBJU002 = PageParam.GetRTrimString("BJU002");
string sBJU018 = PageParam.GetRTrimString("BJU018");
int iXH = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XH", "XLXSBJDMX_BJDID='" + sBJDID + "'") + 1;
int iXSSX = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XSSX", "XLXSBJDMX_BJDID = '" + sBJDID + "'") + 1;
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sSQL = new TSQL(dberp);
BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID);
string sErrorNum = "";
int iStartXH = 0;
if (iStartXH == 0)
{
iStartXH = iXH;
}
try
{
//研发自测:周国强2025/4/25 18:19:20
dberp.BeginTrans();
sSQL.Clear();
sSQL.Add(" insert into XLXSBJDMX( ");
sSQL.Add(" XLXSBJDMX_BJDID, XLXSBJDMX_XH, XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, ");
sSQL.Add(" XLXSBJDMX_XLBZID,XLXSBJDMX_XDXLBZID,XLXSBJDMX_XDXLXHID, XLXSBJDMX_DYDJID, XLXSBJDMX_XLYSID, XLXSBJDMX_BJCP,XLXSBJDMX_BJCPSD,XLXSBJDMX_WGCPBZ, ");
sSQL.Add(" XLXSBJDMX_JLDW, XLXSBJDMX_BJSL, XLXSBJDMX_JGBBJ, XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_BJSDBZ,XLXSBJDMX_TZQBJJE, XLXSBJDMX_BJJE, XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLZL, ");
sSQL.Add(" XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_YXJG,XLXSBJDMX_YZ,XLXSBJDMX_YSCP,XLXSBJDMX_FBH,XLXSBJDMX_CPBJXJ,XLXSBJDMX_BJJEXJ,XLXSBJDMX_BZ, XLXSBJDMX_DZSC,XLXSBJDMX_WHRID, XLXSBJDMX_WHR, XLXSBJDMX_WHSJ)");
sSQL.Add(" values(");
sSQL.Add(" :XLXSBJDMX_BJDID, :XLXSBJDMX_XH, :XLXSBJDMX_XSSX, :XLXSBJDMX_XLXHID, :XLXSBJDMX_XLGGID, ");
sSQL.Add(" :XLXSBJDMX_XLBZID,:XLXSBJDMX_XDXLBZID,:XLXSBJDMX_XDXLXHID, isnull(:XLXSBJDMX_DYDJID,' '), :XLXSBJDMX_XLYSID, :XLXSBJDMX_BJCP,:XLXSBJDMX_BJCPSD,:XLXSBJDMX_WGCPBZ, ");
sSQL.Add(" :XLXSBJDMX_JLDW, :XLXSBJDMX_BJSL, :XLXSBJDMX_JGBBJ, :XLXSBJDMX_TZQCPBJ,:XLXSBJDMX_TZCPBJ,:XLXSBJDMX_CPBJ,:XLXSBJDMX_BJSDBZ,:XLXSBJDMX_TZQBJJE, :XLXSBJDMX_BJJE, :XLXSBJDMX_JGBJJ,:XLXSBJDMX_CLCB,:XLXSBJDMX_JGBBJJCL,:XLXSBJDMX_JGBBJJCE,:XLXSBJDMX_CLZL, ");
sSQL.Add(" :XLXSBJDMX_BJDHQCLCB,:XLXSBJDMX_CLCBJCL,:XLXSBJDMX_JGBBJLJJCL,:XLXSBJDMX_YXJG,:XLXSBJDMX_YZ,:XLXSBJDMX_YSCP,:XLXSBJDMX_FBH,isnull(:XLXSBJDMX_CPBJXJ,0),isnull(:XLXSBJDMX_BJJEXJ,0),:XLXSBJDMX_BZ, :XLXSBJDMX_DZSC,:XLXSBJDMX_WHRID, :XLXSBJDMX_WHR, :XLXSBJDMX_WHSJ)");
sSQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID;
#region 换行时,插入前一行数据
foreach (QuoteItem item in items)
{
string tmpXLXHID = item.XLXHID;
string tmpXLGGID = item.XLGGID;
string tmpXLBZID = "G";
string tmpDYDJID = item.DYDJID;
bool bExistCLQD = XLBJDUtils.ExistCLQD(ref tmpXLXHID, ref tmpXLGGID, ref tmpXLBZID, ref tmpDYDJID);
if (bExistCLQD)
{
sXLXHID = tmpXLXHID;
sXLGGID = tmpXLGGID;
sST = tmpXLBZID;
sDYDJ = tmpDYDJID;
//重新赋值
sSQL.ParamByName("XLXSBJDMX_XLXHID").Value = sXLXHID;
sSQL.ParamByName("XLXSBJDMX_XDXLXHID").Value = sXLXHID;
sSQL.ParamByName("XLXSBJDMX_XLGGID").Value = sXLGGID;
sSQL.ParamByName("XLXSBJDMX_XLBZID").Value = sST;
sSQL.ParamByName("XLXSBJDMX_XDXLBZID").Value = sST;
if (sBJCP.Equals(""))
{
sSQL.ParamByName("XLXSBJDMX_BJCP").Value = sXLXHID + "-" + sDYDJ + " " + sXLGGID;
}
sDQDYDJID = sDYDJ;
}
else
{
sSQL.ParamByName("XLXSBJDMX_XLXHID").Value = tmpXLXHID;
sSQL.ParamByName("XLXSBJDMX_XDXLXHID").Value = tmpXLXHID;
sSQL.ParamByName("XLXSBJDMX_XLGGID").Value = tmpXLGGID;
sSQL.ParamByName("XLXSBJDMX_XLBZID").Value = tmpXLBZID;
sSQL.ParamByName("XLXSBJDMX_XDXLBZID").Value = tmpXLBZID;
if (sBJCP.Equals(""))
{
sSQL.ParamByName("XLXSBJDMX_BJCP").Value = tmpXLXHID + "-" + tmpDYDJID + " " + tmpXLGGID;
}
sDQDYDJID = tmpDYDJID;
}
if (tmpDYDJID.Trim().Equals(""))
{
sSQL.ParamByName("XLXSBJDMX_DYDJID").Value = GetMrDYDJ(tmpXLXHID, tmpXLGGID, tmpXLBZID);
}
else
{
sSQL.ParamByName("XLXSBJDMX_DYDJID").Value = tmpDYDJID;
}
if (!sBJCP.Equals(""))
{
sSQL.ParamByName("XLXSBJDMX_BJCPSD").Value = "Y";
}
else
{
sSQL.ParamByName("XLXSBJDMX_BJCPSD").Value = "N";
}
sSQL.ParamByName("XLXSBJDMX_XH").Value = iXH;
sSQL.ParamByName("XLXSBJDMX_XSSX").Value = iXSSX;
sSQL.ParamByName("XLXSBJDMX_XLYSID").Value = XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID);
sSQL.ParamByName("XLXSBJDMX_JGBBJ").Value = 0.0;
sSQL.ParamByName("XLXSBJDMX_TZQCPBJ").Value = 0.0;
sSQL.ParamByName("XLXSBJDMX_TZCPBJ").Value = 0;
sSQL.ParamByName("XLXSBJDMX_YXJG").Value = CMISproConvert.StrToFloat(sYXJG, 0);
sSQL.ParamByName("XLXSBJDMX_YZ").Value = sYZ;
sSQL.ParamByName("XLXSBJDMX_YSCP").Value = sYSCP;
sSQL.ParamByName("XLXSBJDMX_FBH").Value = sBH;
sSQL.ParamByName("XLXSBJDMX_CPBJ").Value = 0;
sSQL.ParamByName("XLXSBJDMX_CPBJXJ").Value = CMISproConvert.StrToFloat(sCPBJXJ, 0);
sSQL.ParamByName("XLXSBJDMX_BJJEXJ").Value = CMISproConvert.StrToFloat(sBJJEXJ, 0);
sSQL.ParamByName("XLXSBJDMX_BJSDBZ").Value = "N";
sSQL.ParamByName("XLXSBJDMX_JGBJJ").Value = 0.0;
sSQL.ParamByName("XLXSBJDMX_CLCB").Value = 0.0;
sSQL.ParamByName("XLXSBJDMX_BJDHQCLCB").Value = 0.0;
sSQL.ParamByName("XLXSBJDMX_CLZL").Value = 0.0;
sSQL.ParamByName("XLXSBJDMX_BZ").Value = "";
sSQL.ParamByName("XLXSBJDMX_BJJE").Value = 0;
sSQL.ParamByName("XLXSBJDMX_BJSL").Value = string.IsNullOrEmpty(item.BJSL) ? 0 : CMISproConvert.StrToFloat(item.BJSL, 0);
sSQL.ParamByName("XLXSBJDMX_TZQBJJE").Value = 0;
sSQL.ParamByName("XLXSBJDMX_JLDW").Value = sBJU003;
sSQL.ParamByName("XLXSBJDMX_JGBBJJCE").Value = 0;
sSQL.ParamByName("XLXSBJDMX_JGBBJJCL").Value = 0;
sSQL.ParamByName("XLXSBJDMX_CLCBJCL").Value = 0;
sSQL.ParamByName("XLXSBJDMX_JGBBJLJJCL").Value = 0;
sSQL.ParamByName("XLXSBJDMX_WGCPBZ").Value = sWGCPBZ;
if (XLBJDUtils.ISDZBZ(sST))
{
sSQL.ParamByName("XLXSBJDMX_DZSC").Value = "Y";
}
else
{
sSQL.ParamByName("XLXSBJDMX_DZSC").Value = "N";
}
sSQL.ParamByName("XLXSBJDMX_WHR").Value = tSession.UserName;
sSQL.ParamByName("XLXSBJDMX_WHRID").Value = tSession.UserId;
sSQL.ParamByName("XLXSBJDMX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now);
dberp.ExecSQL(sSQL);
iXH++;
iXSSX++;
}
#endregion
XLBJDUtils.UpdateXDXLBZID(dberp, sSQL, sBJDID, "", iStartXH - 1, ref sErrorNum);
XLBJDCalcUtils.CalcBJDMXAfterIns(dberp, sSQL, sBJDID, iStartXH, sBJU002, sBJU003, sBJU018, tSession.UserId, tSession.UserName, ref sErrorNum);
dberp.CommitTrans();
return true;
}
catch (Exception ex)
{
dberp.RollbackTrans();
ShowMessage(ex.Message);
return false;
}
}
private void ShowAlert(string message)
{
ClientScript.RegisterStartupScript(this.GetType(), "alert",
"alert('" + message.Replace("'", "\\'") + "');", true);
}
// 用于反序列化的辅助类
public class QuoteItem
{
private string _XLXHID;
private string _DYDJID;
private string _XLGGID;
private string _BJSL;
public string XLXHID
{
get { return _XLXHID; }
set { _XLXHID = value; }
}
public string DYDJID
{
get { return _DYDJID; }
set { _DYDJID = value; }
}
public string XLGGID
{
get { return _XLGGID; }
set { _XLGGID = value; }
}
public string BJSL
{
get { return _BJSL; }
set { _BJSL = value; }
}
}
public string GetMrDYDJ(string sXLXHID, string sXLGGID, string sXLBZID)
{
//SQL语句自测:周国强 2025/3/30 20:17:00
string sMrDYDJID = "";
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Add("SELECT XLXSCLQD_DYDJID FROM XLXSCLQD WHERE XLXSCLQD_XLXHID=:pXLXHID AND XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID ");
sql.ParamByName("pXLXHID").Value = sXLXHID;
sql.ParamByName("pXLGGID").Value = sXLGGID;
sql.ParamByName("pXLBZID").Value = sXLBZID;
DataSet ds = dberp.OpenDataSet(sql);
if (ds.Tables[0].Rows.Count == 1)
{
sMrDYDJID = ds.Tables[0].Rows[0][0].ToString().Trim();
}
return sMrDYDJID;
}
}
}