This commit is contained in:
2026-08-21 17:03:02 +08:00
commit f065129b20
2292 changed files with 666241 additions and 0 deletions
+692
View File
@@ -0,0 +1,692 @@
using System;
using System.Data;
using System.Configuration;
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_MISPROAS.Web.AjaxServices;
using GThinking.N_MISPRO.Data;
using System.Collections.Generic;
using System.Web.Script.Serialization;
using GThinking.N_MISPRO;
using GThinking.N_MISPRO.Utility;
using GThinking.N_WORKFLOW;
using System.Web.Caching;
using GThinking.N_PUBLIC;
namespace GThinking.N_XLXSBJ
{
public class XSHTSCBJDService
{
/// <summary>
/// 生成报价单,来源模块:100452001|销售合同维护
/// </summary>
/// <param name="sJJDID">交接单ID</param>
/// <param name="fTJ">铜价</param>
/// <param name="fLJ">铝价</param>
/// <param name="sJGLX">价格类型</param>
/// <param name="sUserID">用户</param>
/// <returns></returns>
[AjaxMethod(AuthRequried = false)]
public static XSHTSCBJDData CreateXLXSBJD(string sJJDID,string sRQ,double fTJ, double fLJ, string sUserID)
{
Mac.MacLog.TraceFormat(String.Format("销售合同生成报价单服务-------------------"));
Mac.MacLog.TraceFormat(String.Format("操作人:{0}---------------", sUserID + "|" + TRYXX.GetRYXXByGH(sUserID).XM));
Mac.MacLog.TraceFormat(String.Format("开始时间:{0}---------------", DateTime.Now.ToString().Trim()));
Mac.MacLog.TraceFormat(String.Format("交接单编码:{0}---------------", sJJDID));
Mac.MacLog.TraceFormat(String.Format("日期:{0}---------------", sRQ));
Mac.MacLog.TraceFormat(String.Format("铜价:{0}---------------", fTJ.ToString().Trim()));
Mac.MacLog.TraceFormat(String.Format("铝价:{0}---------------", fLJ.ToString().Trim()));
DateTime dtBeg = DateTime.Now;
XSHTSCBJDData objOUT = new XSHTSCBJDData();
objOUT.Success = true;
objOUT.ErrorMessage = "";
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sBJDID = "";
try
{
if (sJJDID.Equals(""))
{
throw new Exception("交接单编码为空,不允许生成报价单记录!");
}
if (sRQ.Equals(""))
{
throw new Exception("日期为空,不允许生成报价单记录!");
}
SQL.Clear();
SQL.Add("select XLXSBJD_BJDID from XLXSBJD where XLXSBJD_YWLX='HT' and XLXSBJD_YWDH=:sJJDID ");
SQL.ParamByName("sJJDID").Value = sJJDID;
DataSet dsBJD = dberp.OpenDataSet(SQL);
if (dsBJD.Tables[0].Rows.Count > 0)
{
objOUT.Success = false;
objOUT.ErrorMessage = "当前合同已生成比价记录,不允许重复生成!";
}
else
{
GetXSHTToBJD(dberp, SQL, objOUT, sBJDID, sJJDID, sRQ, fTJ, fLJ, sUserID);
}
}
catch (Exception ex)
{
objOUT.Success = false;
objOUT.ErrorMessage = ex.Message.ToString().Trim();
}
DateTime dtEnd = DateTime.Now;
TimeSpan spOm = dtEnd - dtBeg;
double dTotal = spOm.TotalSeconds;
Mac.MacLog.TraceFormat(String.Format("总计耗时:{0}---------------", dTotal.ToString().Trim()));
Mac.MacLog.TraceFormat(String.Format("时间1:{0}---------------", dtBeg.ToString().Trim()));
Mac.MacLog.TraceFormat(String.Format("时间2:{0}---------------", dtEnd.ToString().Trim()));
return objOUT;
}
private static void GetXSHTToBJD(TDatabase dberp, TSQL SQL, XSHTSCBJDData objOUT, string sBJDID, string sJJDID,string sRQ, double fTJ, double fLJ, string sUserGH)
{
DateTime dt1 = DateTime.Now;
DateTime dt2 = DateTime.Now;
DateTime dt3 = DateTime.Now;
DateTime dt4 = DateTime.Now;
DateTime dt5 = DateTime.Now;
DateTime dt6 = DateTime.Now;
DateTime dt7 = DateTime.Now;
DateTime dt8 = DateTime.Now;
dt1 = DateTime.Now;
SQL.Clear();
SQL.Add("select ");
SQL.Add(" HT_KHIDE,KH_MC,HT_XMMC,HT_SYDWID,HT_XZQHID,HT_XSZRR,HT_LXR,HT_LXDH,'HT' as YWLX,HT_JJDID, ");
SQL.Add(" HTMX_XH,HTMX_WLID,HTMX_XQSL,HTMX_JLDW,");
SQL.Add(" case when isnull(XSBJXHTH_BJXLXHID,' ') = ' ' then XLXLB_XLXHID else XSBJXHTH_BJXLXHID end as XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID,XLXLB_XLYSID");
SQL.Add("from HTMX");
SQL.Add("left join HT on HT_JJDID=HTMX_JJDID");
SQL.Add("left join KH on KH_KHID=HT_KHIDE");
SQL.Add("left join XSY on XSY_TXY=HT_XSZRR");
SQL.Add("left join XLXLB on XLXLB_WLID=HTMX_WLID");
SQL.Add("left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID");
SQL.Add("where HT_JJDID=:pJJDID");
SQL.ParamByName("pJJDID").Value = sJJDID;
DataSet dsHT = dberp.OpenDataSet(SQL);
Mac.MacLog.TraceFormat(String.Format("dt1:{0}---------------", dt1.ToString().Trim()));
if (dsHT.Tables[0].Rows.Count > 0)
{
try
{
dberp.BeginTrans();
dt2 = DateTime.Now;
Mac.MacLog.TraceFormat(String.Format("dt2:{0}---------------", dt2.ToString().Trim()));
#region 主表变量初始化
string sYWLX = "HT";
string sYWDH = sJJDID;
double fYWXH = 0;
CMISproSession tSession = null;
string sBJRQ = CMISproConvert.ConvertDate(sRQ);
string sBJFLID = GetBJFLID(dberp, SQL);
string sXSQYID = "";
string sXZQHID=dsHT.Tables[0].Rows[0]["HT_XZQHID"].ToString().Trim();
string sJGBID = "";
string sKH=dsHT.Tables[0].Rows[0]["KH_MC"].ToString().Trim();
string sTXY = dsHT.Tables[0].Rows[0]["HT_XSZRR"].ToString().Trim();
string sXSJLMC = "";
string sXSBMID = "";
GetXSYXX(dberp, SQL, sTXY, ref sXSJLMC, ref sXSBMID);
string sSYDWID = dsHT.Tables[0].Rows[0]["HT_SYDWID"].ToString().Trim();
#region 报价分类校验
if (sBJFLID.Equals(""))
{
throw new Exception("报价分类为空!请至【100860062|销售报价业务配置】模块进行设置!");
}
#endregion
#region 价格表校验 and 获取价格表编码
Dictionary<string, string> dicJGBID = new Dictionary<string, string>();
dicJGBID = XLBJDUtils.GetJGBIDByXSQYID("", sBJFLID, sBJRQ, sXSQYID);
foreach (KeyValuePair<string, string> kvp in dicJGBID)
{
if (sJGBID.Equals(""))
{
sJGBID = kvp.Key;
}
}
if (sJGBID.Equals(""))
{
throw new Exception("价格表为空!请至【100860001|线缆销售报价价格表】模块检查是否存在可用价格表!");
}
#endregion
#region 根据规则生成报价单编码
string sError = string.Empty;
XLBJDUtils.GetBJDID(sXZQHID, sBJFLID, sSYDWID,ref sBJDID, ref sError);
if (!string.IsNullOrEmpty(sError))
{
throw new Exception(sError);
}
#endregion
dt3 = DateTime.Now;
Mac.MacLog.TraceFormat(String.Format("dt3:{0}---------------", dt3.ToString().Trim()));
tSession = getSession();
#region 插入主表信息
SQL.Clear();
SQL.Add("insert into XLXSBJD ");
SQL.Add(" ( ");
SQL.Add(" XLXSBJD_BJDID,XLXSBJD_CLHQJGBID,");
SQL.Add(" XLXSBJD_BJFLID,XLXSBJD_XSQYID,XLXSBJD_XZQHID,");
SQL.Add(" XLXSBJD_SYDWID,XLXSBJD_XSJLMC,XLXSBJD_TXY,XLXSBJD_XSBMID, ");
SQL.Add(" XLXSBJD_KHLXR,XLXSBJD_LXDH,XLXSBJD_JZBJHS,");
SQL.Add(" XLXSBJD_TJ,XLXSBJD_LJ,");
SQL.Add(" XLXSBJD_SQR,XLXSBJD_SQRGH,XLXSBJD_SQRID,XLXSBJD_SQRQ,");
SQL.Add(" XLXSBJD_BJRQ, XLXSBJD_JGBID, ");
SQL.Add(" XLXSBJD_YWLX,XLXSBJD_YWDH,XLXSBJD_WPID, ");
SQL.Add(" XLXSBJD_WHRID,XLXSBJD_WHR,XLXSBJD_WHSJ ,XLXSBJD_XMMC, XLXSBJD_KH");
SQL.Add(" ) ");
SQL.Add(" values ");
SQL.Add(" ( ");
SQL.Add(" :XLXSBJD_BJDID,:XLXSBJD_CLHQJGBID,");
SQL.Add(" :XLXSBJD_BJFLID,:XLXSBJD_XSQYID,:XLXSBJD_XZQHID,");
SQL.Add(" :XLXSBJD_SYDWID,:XLXSBJD_XSJLMC,:XLXSBJD_TXY,:XLXSBJD_XSBMID, ");
SQL.Add(" :XLXSBJD_KHLXR,:XLXSBJD_LXDH,:XLXSBJD_JZBJHS,");
SQL.Add(" :XLXSBJD_TJ,:XLXSBJD_LJ,");
SQL.Add(" :XLXSBJD_SQR,:XLXSBJD_SQRGH,:XLXSBJD_SQRID,:XLXSBJD_SQRQ,");
SQL.Add(" :XLXSBJD_BJRQ, :XLXSBJD_JGBID,");
SQL.Add(" :XLXSBJD_YWLX,:XLXSBJD_YWDH,'ZZZZ', ");
SQL.Add(" :XLXSBJD_WHRID,:XLXSBJD_WHR,:XLXSBJD_WHSJ ,:XLXSBJD_XMMC ,:XLXSBJD_KH");
SQL.Add(" ) ");
SQL.ParamByName("XLXSBJD_BJDID").Value = sBJDID;
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJFLBJRHQCL_BJCLID from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID='{0}'", sJGBID)))
{
SQL.ParamByName("XLXSBJD_CLHQJGBID").Value = "ZZZZZZZZ";
}
else
{
SQL.ParamByName("XLXSBJD_CLHQJGBID").Value = sJGBID;
}
SQL.ParamByName("XLXSBJD_BJFLID").Value = sBJFLID;
SQL.ParamByName("XLXSBJD_XSQYID").Value = sXSQYID;
SQL.ParamByName("XLXSBJD_XZQHID").Value = sXZQHID;
SQL.ParamByName("XLXSBJD_SYDWID").Value = sSYDWID;
SQL.ParamByName("XLXSBJD_XSJLMC").Value = sXSJLMC;
SQL.ParamByName("XLXSBJD_TXY").Value = sTXY;
SQL.ParamByName("XLXSBJD_XSBMID").Value = sXSBMID;
SQL.ParamByName("XLXSBJD_KH").Value = sKH;
SQL.ParamByName("XLXSBJD_KHLXR").Value = "";
SQL.ParamByName("XLXSBJD_LXDH").Value = "";
SQL.ParamByName("XLXSBJD_JZBJHS").Value = "Y";
SQL.ParamByName("XLXSBJD_TJ").Value = fTJ;
SQL.ParamByName("XLXSBJD_LJ").Value = fLJ;
SQL.ParamByName("XLXSBJD_SQR").Value = tSession.UserName;
SQL.ParamByName("XLXSBJD_SQRGH").Value = tSession.UserId;
SQL.ParamByName("XLXSBJD_SQRID").Value = TRYXX.GetRYXXByGH(tSession.UserId).RYID;
SQL.ParamByName("XLXSBJD_SQRQ").Value = sBJRQ;
SQL.ParamByName("XLXSBJD_BJRQ").Value = sBJRQ;
SQL.ParamByName("XLXSBJD_JGBID").Value = sJGBID;
SQL.ParamByName("XLXSBJD_YWLX").Value = sYWLX;
SQL.ParamByName("XLXSBJD_YWDH").Value = sYWDH;
SQL.ParamByName("XLXSBJD_WHRID").Value = tSession.UserId;
SQL.ParamByName("XLXSBJD_WHR").Value = tSession.UserName;
SQL.ParamByName("XLXSBJD_WHSJ").Value = DateTime.Now;
SQL.ParamByName("XLXSBJD_XMMC").Value=dsHT.Tables[0].Rows[0]["HT_XMMC"].ToString().Trim();
dberp.ExecSQL(SQL);
#endregion
dt4 = DateTime.Now;
Mac.MacLog.TraceFormat(String.Format("dt4:{0}---------------", dt4.ToString().Trim()));
#region 处理物料行情
//只加载JGE价格表,外层判断可以去除
XLXSBJFLObj objXLXSBJFL = new XLXSBJFLObj(sBJFLID);
XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ(dberp, SQL, objXLXSBJFL.sBJDHQLY, sBJDID, sBJRQ, true,
objXLXSBJFL.sTBJCLID, objXLXSBJFL.sLBJCLID,
fTJ, fLJ,
tSession.UserName, tSession.UserId, sJGBID);
#endregion
dt5 = DateTime.Now;
Mac.MacLog.TraceFormat(String.Format("dt5:{0}---------------", dt5.ToString().Trim()));
#region 明细变量初始化
string sXLXHID = "";
string sXLGGID = "";
string sXLBZID = "";
string sDYDJID = "";
string sBJDJLDW = "";
double fBJSL = 0;
string sWLID = "";
int iStartXH = 1;
string sErrorNum = "";
string sXLJGU007 = tSession.GetOption(102579000, "XLJGU007");
#endregion
SQL.Clear();
SQL.Add(" insert into XLXSBJDMX( ");
SQL.Add(" XLXSBJDMX_BJDID, XLXSBJDMX_XH, XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, ");
SQL.Add(" XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XLYSID,XLXSBJDMX_BJCP,XLXSBJDMX_BJCPSD,XLXSBJDMX_WGCPBZ, ");
SQL.Add(" XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_BJSDBZ,XLXSBJDMX_XDXLXHID,XLXSBJDMX_XDXLBZID, ");
SQL.Add(" XLXSBJDMX_DZSC,XLXSBJDMX_WHR,XLXSBJDMX_WHRID,XLXSBJDMX_WHSJ,");
SQL.Add(" XLXSBJDMX_YWLX,XLXSBJDMX_YWDH,XLXSBJDMX_YWXH,XLXSBJDMX_WLID, ");
SQL.Add(" XLXSBJDMX_BZ) ");
SQL.Add(" values(");
SQL.Add(" :XLXSBJDMX_BJDID, :XLXSBJDMX_XH, :XLXSBJDMX_XSSX, :XLXSBJDMX_XLXHID, :XLXSBJDMX_XLGGID, ");
SQL.Add(" :XLXSBJDMX_XLBZID, isnull(:XLXSBJDMX_DYDJID,' '), :XLXSBJDMX_XLYSID, :XLXSBJDMX_BJCP, :XLXSBJDMX_BJCPSD,:XLXSBJDMX_WGCPBZ, ");
SQL.Add(" :XLXSBJDMX_JLDW, :XLXSBJDMX_BJSL,:XLXSBJDMX_BJSDBZ,:XLXSBJDMX_XDXLXHID,:XLXSBJDMX_XDXLBZID, ");
SQL.Add(" :XLXSBJDMX_DZSC,:XLXSBJDMX_WHR, :XLXSBJDMX_WHRID, :XLXSBJDMX_WHSJ,");
SQL.Add(" :XLXSBJDMX_YWLX,:XLXSBJDMX_YWDH,:XLXSBJDMX_YWXH,:XLXSBJDMX_WLID, ");
SQL.Add(" :XLXSBJDMX_BZ)");
for (int i = 0; i < dsHT.Tables[0].Rows.Count; i++)
{
sXLXHID = dsHT.Tables[0].Rows[i]["XLXLB_XLXHID"].ToString().Trim();
sXLGGID = XLBJDUtils.GetStaXLGGID(dsHT.Tables[0].Rows[i]["XLXLB_XLGGID"].ToString().Trim(), sXLJGU007);
sXLBZID = dsHT.Tables[0].Rows[i]["XLXLB_XLBZID"].ToString().Trim();
sDYDJID = dsHT.Tables[0].Rows[i]["XLXLB_DYDJID"].ToString().Trim();
sBJDJLDW = dsHT.Tables[0].Rows[i]["HTMX_JLDW"].ToString().Trim();
sWLID = dsHT.Tables[0].Rows[i]["HTMX_WLID"].ToString().Trim();
fBJSL = CMISproConvert.StrToFloat(dsHT.Tables[0].Rows[i]["HTMX_XQSL"].ToString().Trim());
fYWXH = CMISproConvert.StrToFloat(dsHT.Tables[0].Rows[i]["HTMX_XH"].ToString().Trim());
SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID;
SQL.ParamByName("XLXSBJDMX_XH").Value = i + 1;
SQL.ParamByName("XLXSBJDMX_XSSX").Value = i + 1;
if (sXLXHID.Equals(""))
{
SQL.ParamByName("XLXSBJDMX_XLXHID").Value = "/";
}
else
{
SQL.ParamByName("XLXSBJDMX_XLXHID").Value = sXLXHID;
}
if (sXLGGID.Equals(""))
{
SQL.ParamByName("XLXSBJDMX_XLGGID").Value = "/";
}
else
{
SQL.ParamByName("XLXSBJDMX_XLGGID").Value = sXLGGID;
}
if (sXLXHID.Equals("") || sXLGGID.Equals(""))
{
SQL.ParamByName("XLXSBJDMX_BZ").Value = "【" + sYWDH + "|" + fYWXH + "】" + sWLID;
}
SQL.ParamByName("XLXSBJDMX_XDXLXHID").Value = SQL.ParamByName("XLXSBJDMX_XLXHID").Value;
SQL.ParamByName("XLXSBJDMX_XDXLBZID").Value = sXLBZID;
SQL.ParamByName("XLXSBJDMX_XLBZID").Value = sXLBZID;
SQL.ParamByName("XLXSBJDMX_DYDJID").Value = sDYDJID;
SQL.ParamByName("XLXSBJDMX_XLYSID").Value = dsHT.Tables[0].Rows[i]["XLXLB_XLYSID"].ToString().Trim();
SQL.ParamByName("XLXSBJDMX_BJCP").Value = XLBJDUtils.GroupBJCPXX(sXLXHID, sXLGGID, sDYDJID);
SQL.ParamByName("XLXSBJDMX_BJCPSD").Value = "N";
SQL.ParamByName("XLXSBJDMX_WGCPBZ").Value = "N";
SQL.ParamByName("XLXSBJDMX_JLDW").Value = sBJDJLDW;
SQL.ParamByName("XLXSBJDMX_BJSL").Value = fBJSL;
SQL.ParamByName("XLXSBJDMX_BJSDBZ").Value = "N";
if (XLBJDUtils.ISDZBZ(sXLBZID))
{
SQL.ParamByName("XLXSBJDMX_DZSC").Value = "Y";
}
else
{
SQL.ParamByName("XLXSBJDMX_DZSC").Value = "N";
}
SQL.ParamByName("XLXSBJDMX_WHR").Value = tSession.UserName;
SQL.ParamByName("XLXSBJDMX_WHRID").Value = tSession.UserId;
SQL.ParamByName("XLXSBJDMX_WHSJ").Value = DateTime.Now;
SQL.ParamByName("XLXSBJDMX_YWLX").Value = sYWLX;
SQL.ParamByName("XLXSBJDMX_YWDH").Value = sYWDH;
SQL.ParamByName("XLXSBJDMX_YWXH").Value = fYWXH;
SQL.ParamByName("XLXSBJDMX_WLID").Value = sWLID;
dberp.ExecSQL(SQL);
}
dt6 = DateTime.Now;
Mac.MacLog.TraceFormat(String.Format("dt6:{0}---------------", dt6.ToString().Trim()));
XLBJDUtils.UpdateXDXLBZID(dberp, SQL, sBJDID, "", iStartXH - 1, ref sErrorNum);
XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSBJDMX_Batch(dberp, tSession, sBJDID);
XLBJDCalcUtils.CalcBJDMXAfterIns(dberp, SQL, sBJDID, iStartXH, tSession.GetOption(100860000, "BJU002"),
tSession.GetOption(100860000, "BJU003"),tSession.GetOption(100860000, "BJU018"), tSession.UserId, tSession.UserName, ref sErrorNum);
if (!sErrorNum.Equals(""))
{
throw new Exception("计算异常!异常信息:" + sErrorNum);
}
dt7 = DateTime.Now;
Mac.MacLog.TraceFormat(String.Format("dt7:{0}---------------", dt7.ToString().Trim()));
SQL.Clear();
SQL.Add(" merge into XLXSBJDYZZ0 tar ");
SQL.Add(" using ");
SQL.Add(" ( ");
SQL.Add(" select XLXSBJDMX_XH as BJDXH,XLXSBJDYZZ0_YZZ01 as YZZ01,XLXSBJDYZZ0_YZZ02 as YZZ02,XLXSBJDYZZ0_YZZ03 as YZZ03,XLXSBJDYZZ0_YZZ04 as YZZ04, ");
SQL.Add(" XLXSBJDYZZ0_YZZ05 as YZZ05,XLXSBJDYZZ0_YZZ06 as YZZ06,XLXSBJDYZZ0_YZZ07 as YZZ07,XLXSBJDYZZ0_YZZ08 as YZZ08,XLXSBJDYZZ0_YZZ09 as YZZ09,XLXSBJDYZZ0_YZZ10 as YZZ10, ");
SQL.Add(" XLXSBJDYZZ0_YZZ11 as YZZ11,XLXSBJDYZZ0_YZZ12 as YZZ12,XLXSBJDYZZ0_YZZ13 as YZZ13,XLXSBJDYZZ0_YZZ14 as YZZ14, ");
SQL.Add(" XLXSBJDYZZ0_YZZ15 as YZZ15,XLXSBJDYZZ0_YZZ16 as YZZ16,XLXSBJDYZZ0_YZZ17 as YZZ17,XLXSBJDYZZ0_YZZ18 as YZZ18,XLXSBJDYZZ0_YZZ19 as YZZ19,XLXSBJDYZZ0_YZZ20 as YZZ20 ");
SQL.Add(" from HTMX ");
SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID=HTMX_BJDID and XLXSBJDYZZ0_XH=HTMX_BJDXH ");
SQL.Add(" left join XLXSBJDMX on XLXSBJDMX_BJDID=:sBJDID and XLXSBJDMX_YWDH=HTMX_JJDID and XLXSBJDMX_YWXH=HTMX_XH and XLXSBJDMX_YWLX='HT' ");
SQL.Add(" where HTMX_JJDID=:sJJDID and isnull(XLXSBJDYZZ0_BJDID,' ')<>' ' ");
SQL.Add(" ) sor on (XLXSBJDYZZ0_BJDID=:sBJDID and XLXSBJDYZZ0_XH=BJDXH) ");
SQL.Add(" when matched then update set XLXSBJDYZZ0_YZZ01=YZZ01,XLXSBJDYZZ0_YZZ02=YZZ02,XLXSBJDYZZ0_YZZ03=YZZ03,XLXSBJDYZZ0_YZZ04=YZZ04,XLXSBJDYZZ0_YZZ05=YZZ05, ");
SQL.Add(" XLXSBJDYZZ0_YZZ06=YZZ06,XLXSBJDYZZ0_YZZ07=YZZ07,XLXSBJDYZZ0_YZZ08=YZZ08,XLXSBJDYZZ0_YZZ09=YZZ09,XLXSBJDYZZ0_YZZ10=YZZ10, ");
SQL.Add(" XLXSBJDYZZ0_YZZ11=YZZ11,XLXSBJDYZZ0_YZZ12=YZZ12,XLXSBJDYZZ0_YZZ13=YZZ13,XLXSBJDYZZ0_YZZ14=YZZ14,XLXSBJDYZZ0_YZZ15=YZZ15, ");
SQL.Add(" XLXSBJDYZZ0_YZZ16=YZZ16,XLXSBJDYZZ0_YZZ17=YZZ17,XLXSBJDYZZ0_YZZ18=YZZ18,XLXSBJDYZZ0_YZZ19=YZZ19,XLXSBJDYZZ0_YZZ20=YZZ20 ");
SQL.ParamByName("sBJDID").Value = sBJDID;
SQL.ParamByName("sJJDID").Value = sJJDID;
dberp.ExecSQL(SQL);
dt7 = DateTime.Now;
Mac.MacLog.TraceFormat(String.Format("dt7:{0}---------------", dt7.ToString().Trim()));
string sErrorMsg = "";
XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, sBJDID, 1, "", false, false, false, "",
DateTime.MinValue, tSession.GetOption(100860000, "BJU002"),
tSession.GetOption(100860000, "BJU003"), tSession.UserId, tSession.UserName, ref sErrorMsg);
if (!sErrorMsg.Equals(""))
throw new Exception(sErrorMsg);
dberp.CommitTrans();
}
catch (Exception ex)
{
dberp.RollbackTrans();
throw new Exception(ex.Message.ToString().Trim());
}
dt8 = DateTime.Now;
Mac.MacLog.TraceFormat(String.Format("dt8:{0}---------------", dt8.ToString().Trim()));
}
else
{
throw new Exception("未找到对应合同信息:"+sJJDID);
}
TimeSpan sp2 = dt2 - dt1;
TimeSpan sp3 = dt3 - dt2;
TimeSpan sp4 = dt4 - dt3;
TimeSpan sp5 = dt5 - dt4;
TimeSpan sp6 = dt6 - dt5;
TimeSpan sp7 = dt7 - dt6;
TimeSpan sp8 = dt8 - dt7;
double dTotal2 = sp2.TotalSeconds;
double dTotal3 = sp3.TotalSeconds;
double dTotal4 = sp4.TotalSeconds;
double dTotal5 = sp5.TotalSeconds;
double dTotal6 = sp6.TotalSeconds;
double dTotal7 = sp7.TotalSeconds;
double dTotal8 = sp8.TotalSeconds;
Mac.MacLog.TraceFormat(String.Format("dTotal2耗时:{0}---------------", dTotal2.ToString().Trim()));
Mac.MacLog.TraceFormat(String.Format("dTotal3耗时:{0}---------------", dTotal3.ToString().Trim()));
Mac.MacLog.TraceFormat(String.Format("dTotal4耗时:{0}---------------", dTotal4.ToString().Trim()));
Mac.MacLog.TraceFormat(String.Format("dTotal5耗时:{0}---------------", dTotal5.ToString().Trim()));
Mac.MacLog.TraceFormat(String.Format("dTotal6耗时:{0}---------------", dTotal6.ToString().Trim()));
Mac.MacLog.TraceFormat(String.Format("dTotal7耗时:{0}---------------", dTotal7.ToString().Trim()));
Mac.MacLog.TraceFormat(String.Format("dTotal8耗时:{0}---------------", dTotal8.ToString().Trim()));
CheckBJisZoro(dberp, SQL, objOUT, sBJDID);
}
/// <summary>
/// 校验表价是否为0
/// </summary>
/// <param name="dberp"></param>
/// <param name="SQL"></param>
/// <param name="objOUT"></param>
/// <param name="sBJDID"></param>
private static void CheckBJisZoro(TDatabase dberp, TSQL SQL, XSHTSCBJDData objOUT, string sBJDID)
{
#region 校验表价为0或为负
SQL.Clear();
SQL.Add(" select XLXSBJDMX_YWXH,XLXSBJDMX_JGBBJ,XLXSBJDMX_WLID,XLXSBJDMX_JSYCBZ from XLXSBJDMX where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_JGBBJ<=0 ");
SQL.ParamByName("pBJDID").Value = sBJDID;
DataSet dsFBJ = dberp.OpenDataSet(SQL);
if (dsFBJ.Tables[0].Rows.Count > 0)
{
Dictionary<string, string> dicJGBTJYZ = new Dictionary<string, string>();
SQL.Clear();
SQL.Add(" select XLXSTZYZ_YZID,XLXSTZYZ_YZMC from XLXSTZYZ where XLXSTZYZ_MXBH = 'JZJ' ");
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow trow in ds.Tables[0].Rows)
{
dicJGBTJYZ.Add(trow["XLXSTZYZ_YZID"].ToString().Trim(),
trow["XLXSTZYZ_YZMC"].ToString().Trim());
}
}
string sTS = "计算如下物料的价格异常:\n\r";
foreach (DataRow trow in dsFBJ.Tables[0].Rows)
{
string sJTXX = "序号" + trow["XLXSBJDMX_YWXH"].ToString().Trim() + ",【" +
trow["XLXSBJDMX_WLID"].ToString().Trim() + "】";
double dJGBBJ = CMISproConvert.StrToFloat(trow["XLXSBJDMX_JGBBJ"].ToString().Trim());
if (dJGBBJ < 0)
{
string sJSYCBZ = trow["XLXSBJDMX_JSYCBZ"].ToString().Trim();
sJTXX += "\n" + XLBJD_FBJXQList.GetJSYCXQ(sJSYCBZ, dicJGBTJYZ) + "\n\r";
}
else
sJTXX += "价格为0 \n\r";
sTS += sJTXX;
}
Mac.MacLog.TraceFormat(String.Format("报价单:{0}---------------" + sTS, sBJDID));
objOUT.ErrorMessage = sTS;
}
#endregion
}
private static CMISproSession getSession()
{
return CMISproSessionManager.GetCurrentSession();
}
/// <summary>
/// 获取销售报价业务配置模块100452001配置的报价分类
/// </summary>
/// <param name="dberp"></param>
/// <param name="SQL"></param>
/// <returns></returns>
private static string GetBJFLID(TDatabase dberp, TSQL SQL)
{
SQL.Clear();
SQL.Add("select XLXSBJPZ_BJFLIDS ");
SQL.Add(" from XLXSBJPZ ");
SQL.Add(" where 1=1 ");
SQL.Add(" and XLXSBJPZ_MDID = 100860087 ");
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
return ds.Tables[0].Rows[0][0].ToString().Trim();
}
return "";
}
/// <summary>
/// 根据当前用户获取使用单位,如果为空,则获取第一个使用单位
/// </summary>
/// <param name="dberp"></param>
/// <param name="SQL"></param>
/// <param name="sUserGH"></param>
/// <returns></returns>
private static string GetSWDWID(TDatabase dberp, TSQL SQL, string sUserGH)
{
string sSYDWID = "";
SQL.Clear();
SQL.Add("select RSRYJBXX_SYDWID ");
SQL.Add(" from RSRYJBXX ");
SQL.Add(" where 1=1 ");
SQL.Add(" and RSRYJBXX_GH = :pGH ");
SQL.ParamByName("pGH").Value = sUserGH;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
sSYDWID = ds.Tables[0].Rows[0][0].ToString().Trim();
if (sSYDWID.Equals(""))
{
SQL.Clear();
SQL.Add(" select GS_SYDWID,GS_GSMC from GS where 1=1 order by GS_SYDWID ");
ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
sSYDWID = ds.Tables[0].Rows[0][0].ToString().Trim();
}
}
}
return sSYDWID;
}
/// <summary>
/// 获取推销员的经理和部门
/// </summary>
/// <param name="dberp"></param>
/// <param name="SQL"></param>
/// <param name="sTXY"></param>
/// <param name="sXSJLMC"></param>
/// <param name="sXSBMID"></param>
private static void GetXSYXX(TDatabase dberp, TSQL SQL, string sTXY, ref string sXSJLMC, ref string sXSBMID)
{
SQL.Clear();
SQL.Add(" select A.XSY_BMID,A.XSY_XSYBH,B.XSY_TXY from XSY A ");
SQL.Add(" LEFT JOIN XSY B ON B.XSY_XSYBH = A.XSY_SJXSYBH ");
SQL.Add(" WHERE A.XSY_TXY = :pXSY_TXY ");
SQL.ParamByName("pXSY_TXY").Value = sTXY;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
sXSJLMC = ds.Tables[0].Rows[0]["XSY_TXY"].ToString().Trim();
sXSBMID = ds.Tables[0].Rows[0]["XSY_BMID"].ToString().Trim();
}
return;
}
/// <summary>
/// 删除报价单
/// </summary>
/// <param name="sBJDID">报价单号</param>
/// <returns></returns>
[AjaxMethod(AuthRequried = false)]
public static XSHTSCBJDDel DelteXLXSBJD(string sBJDID)
{
XSHTSCBJDDel objOUT = new XSHTSCBJDDel();
objOUT.Success = true;
objOUT.ErrorMessage = "";
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
try
{
dberp.BeginTrans();
SQL.Clear();
SQL.Add("delete from XLXSBJD");
SQL.Add(" where 1=1");
SQL.Add(" and XLXSBJD_BJDID = :pBJDID");
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
XLBJDUtils.AfterDeleteBJD(dberp, SQL, sBJDID);
dberp.CommitTrans();
}
catch (Exception ex)
{
dberp.RollbackTrans();
objOUT.Success = false;
objOUT.ErrorMessage = ex.Message;
}
return objOUT;
}
#endregion
}
#region 插入报价单明细返回类
public class XSHTSCBJDData
{
/// <summary>
/// 调用情况
/// </summary>
private bool _Success = true;
public bool Success
{
get { return _Success; }
set { _Success = value; }
}
/// <summary>
/// 失败信息
/// </summary>
private string _ErrorMessage = string.Empty;
public string ErrorMessage
{
get { return _ErrorMessage; }
set { _ErrorMessage = value; }
}
}
#endregion
#region 删除报价单返回类
public class XSHTSCBJDDel
{
/// <summary>
/// 调用情况
/// </summary>
private bool _Success = true;
public bool Success
{
get { return _Success; }
set { _Success = value; }
}
/// <summary>
/// 失败信息
/// </summary>
private string _ErrorMessage = string.Empty;
public string ErrorMessage
{
get { return _ErrorMessage; }
set { _ErrorMessage = value; }
}
}
#endregion
}