734 lines
33 KiB
C#
734 lines
33 KiB
C#
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 XSHTKHJGJSService
|
||
{
|
||
/// <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 XSHTKHJGJSData 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;
|
||
XSHTKHJGJSData objOUT = new XSHTKHJGJSData();
|
||
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, XSHTKHJGJSData 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();
|
||
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);
|
||
|
||
}
|
||
|
||
|
||
|
||
SQL.Clear();
|
||
SQL.Add("update XLXSBJDMX set XLXSBJDMX_JGBBJ=HTMX_JGBJG,XLXSBJDMX_CPBJ=HTMX_HSJG,XLXSBJDMX_BJLY='SSJGBBJ',XLXSBJDMX_BJSDBZ='Y'");
|
||
SQL.Add("from XLXSBJDMX");
|
||
SQL.Add("inner join HTMX on HTMX_JJDID=XLXSBJDMX_YWDH and HTMX_XH= XLXSBJDMX_YWXH");
|
||
SQL.Add("where XLXSBJDMX_YWLX='HT' ");
|
||
SQL.Add(" and XLXSBJDMX_YWDH=:pYWDH ");
|
||
SQL.ParamByName("pYWDH").Value = sJJDID;
|
||
dberp.ExecSQL(SQL);
|
||
|
||
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860088);
|
||
|
||
|
||
if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_MDID))
|
||
{
|
||
string TZBLYZID = pzxx.XLXSBJPZ_TZBLYZID;
|
||
string TZBLYZZLX = pzxx.XLXSBJPZ_TZBLYZZLX;
|
||
|
||
string KSDYZID = pzxx.XLXSBJPZ_KSDYZID;
|
||
string KSDYZZLX = pzxx.XLXSBJPZ_KSDYZZLX;
|
||
|
||
|
||
SQL.Clear();
|
||
SQL.Add("update XLXSBJDYZZ0 set ");
|
||
if (!string.IsNullOrEmpty(TZBLYZID))
|
||
{
|
||
if (TZBLYZZLX.Equals("相反数"))
|
||
{
|
||
SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=(-1)*HTMX_TZBL, ", TZBLYZID.Replace("BJ", "")));
|
||
}
|
||
else
|
||
{
|
||
SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=HTMX_TZBL, ", TZBLYZID.Replace("BJ", "")));
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(KSDYZID))
|
||
{
|
||
if (KSDYZZLX.Equals("相反数"))
|
||
{
|
||
SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=(-1)*HTMX_KSD, ", KSDYZID.Replace("BJ", "")));
|
||
}
|
||
else
|
||
{
|
||
SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=HTMX_KSD, ", KSDYZID.Replace("BJ", "")));
|
||
}
|
||
}
|
||
SQL.Add("XLXSBJDYZZ0_BJDID=XLXSBJDYZZ0_BJDID");
|
||
|
||
SQL.Add("from XLXSBJDYZZ0 ");
|
||
SQL.Add(" left join XLXSBJDMX on XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH");
|
||
SQL.Add(" left join HTMX on HTMX_JJDID=XLXSBJDMX_YWDH and HTMX_XH= XLXSBJDMX_YWXH and XLXSBJDMX_YWLX='HT' ");
|
||
SQL.Add(" where XLXSBJDMX_YWDH=:pYWDH ");
|
||
SQL.ParamByName("pYWDH").Value = sJJDID;
|
||
dberp.ExecSQL(SQL);
|
||
|
||
}
|
||
else
|
||
{
|
||
|
||
}
|
||
|
||
|
||
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);
|
||
|
||
SQL.Clear();
|
||
SQL.Add("UPDATE HTMX SET HTMX_KHJG=XLXSBJDMX_ZDXJ,HTMX_KHJE=RoundFix(XLXSBJDMX_ZDXJ*HTMX_XQSL,2) ");
|
||
SQL.Add("FROM HTMX ");
|
||
SQL.Add("LEFT JOIN XLXSBJDMX ON XLXSBJDMX_YWDH=HTMX_JJDID AND XLXSBJDMX_YWXH=HTMX_XH and XLXSBJDMX_YWLX='HT' ");
|
||
SQL.Add("WHERE HTMX_JJDID=:pJJDID");
|
||
SQL.ParamByName("pJJDID").Value = sJJDID;
|
||
dberp.ExecSQL(SQL);
|
||
|
||
|
||
dt7 = DateTime.Now;
|
||
Mac.MacLog.TraceFormat(String.Format("dt7:{0}---------------", dt7.ToString().Trim()));
|
||
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, XSHTKHJGJSData 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()
|
||
{
|
||
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860088);
|
||
if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_BJFLIDS))
|
||
|
||
return pzxx.XLXSBJPZ_BJFLIDS;
|
||
|
||
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 XSHTKHJGJSDel DelteXLXSBJD(string sBJDID)
|
||
{
|
||
XSHTKHJGJSDel objOUT = new XSHTKHJGJSDel();
|
||
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 XSHTKHJGJSData
|
||
{
|
||
/// <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 XSHTKHJGJSDel
|
||
{
|
||
/// <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
|
||
} |