308 lines
14 KiB
C#
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;
|
|
}
|
|
}
|
|
} |