1850 lines
97 KiB
C#
1850 lines
97 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_MISPRO.Data;
|
||
using GThinking.N_MISPRO;
|
||
using System.Collections.Generic;
|
||
using GThinking.N_MISPRO.Utility;
|
||
|
||
namespace GThinking.N_XLXSBJ
|
||
{
|
||
public class XLWBBJDUtils
|
||
{
|
||
public static string sTSDYDJIDList = ",AC10KV,";//字母统一大写
|
||
//报价产品解析时,进行电压等级替换
|
||
public static Dictionary<string, string> GetDYDJTH()
|
||
{
|
||
Dictionary<string, string> dic = new Dictionary<string, string>();
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL SQL = new TSQL(dberp);
|
||
SQL.Clear();
|
||
SQL.Add("select XLWBBJDDYDZB_WBDYDJID,XLWBBJDDYDZB_DYDJID from XLWBBJDDYDZB order by LEN(XLWBBJDDYDZB_WBDYDJID) DESC ");
|
||
DataSet dsXLDYDJ = dberp.OpenDataSet(SQL);
|
||
if (dsXLDYDJ.Tables[0].Rows.Count > 0)
|
||
{
|
||
for (int i = 0; i < dsXLDYDJ.Tables[0].Rows.Count; i++)
|
||
{
|
||
dic.Add(dsXLDYDJ.Tables[0].Rows[i]["XLWBBJDDYDZB_WBDYDJID"].ToString().ToUpper().Trim(), dsXLDYDJ.Tables[0].Rows[i]["XLWBBJDDYDZB_DYDJID"].ToString().Trim());
|
||
}
|
||
}
|
||
|
||
return dic;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 统一使用年度+6位流水号编码
|
||
/// </summary>
|
||
/// <param name="sExcel"></param>
|
||
/// <returns></returns>
|
||
public static string GetNewWBBJDID()
|
||
{
|
||
return CMISproDataBase.GetYWBHByN("DBERP", "XLWBBJDML", "XLWBBJDML_WBBJDID", 6);
|
||
}
|
||
|
||
private static string[] GetWBBJDDRYZPZList()
|
||
{
|
||
string sYZList = XLBJDUtils.GetXLXSBJPZXX(100860043).XLXSBJPZ_WBBJDDRYZ.Trim();
|
||
if (sYZList.Equals(""))
|
||
return new string[0];
|
||
return sYZList.Split(',');
|
||
}
|
||
|
||
public static string[] GetWBBJDDRYZList()
|
||
{
|
||
return GetWBBJDDRYZPZList();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 报价单ID为空时不加载因子;不为空时返回配置因子与报价分类因子的交集(保持配置顺序)
|
||
/// </summary>
|
||
public static string[] GetWBBJDDRYZList(string sBJDID)
|
||
{
|
||
if (sBJDID.Trim().Equals(""))
|
||
return new string[0];
|
||
string[] arrPZ = GetWBBJDDRYZPZList();
|
||
if (arrPZ.Length == 0)
|
||
return new string[0];
|
||
string sBJFLID = XLBJDUtils.GetBJFLXXByBJDID(sBJDID).XLXSBJFL_BJFLID.Trim();
|
||
if (sBJFLID.Equals(""))
|
||
return new string[0];
|
||
Dictionary<string, bool> dicBJFLYZ = GetBJFLYZDict(sBJFLID);
|
||
if (dicBJFLYZ.Count == 0)
|
||
return new string[0];
|
||
List<string> arrResult = new List<string>();
|
||
foreach (string sYZ in arrPZ)
|
||
{
|
||
string sYZID = sYZ.Trim();
|
||
if (!sYZID.Equals("") && dicBJFLYZ.ContainsKey(sYZID))
|
||
arrResult.Add(sYZID);
|
||
}
|
||
return arrResult.ToArray();
|
||
}
|
||
|
||
private static Dictionary<string, bool> GetBJFLYZDict(string sBJFLID)
|
||
{
|
||
Dictionary<string, bool> dic = new Dictionary<string, bool>();
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL SQL = new TSQL(dberp);
|
||
SQL.Add("select XLXSBJFLYZ_YZID from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID");
|
||
SQL.ParamByName("pBJFLID").Value = sBJFLID.Trim();
|
||
DataSet ds = dberp.OpenDataSet(SQL);
|
||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||
{
|
||
string sYZID = ds.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim();
|
||
if (!sYZID.Equals("") && !dic.ContainsKey(sYZID))
|
||
dic.Add(sYZID, true);
|
||
}
|
||
return dic;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 因子栏目在XLWBBJDLM_ZDLMLX中的标记,使用小写字母a-z(最多20个)
|
||
/// </summary>
|
||
public static string GetWBBJDYZZLMKey(int iIndex)
|
||
{
|
||
return ((char)('a' + iIndex)).ToString();
|
||
}
|
||
|
||
public static bool IsWBBJDYZZLM(string sKey)
|
||
{
|
||
return sKey.Length == 1 && sKey[0] >= 'a' && sKey[0] <= 'z';
|
||
}
|
||
|
||
public static int GetWBBJDYZZIndexByLMKey(string sKey)
|
||
{
|
||
if (!IsWBBJDYZZLM(sKey))
|
||
return -1;
|
||
return sKey[0] - 'a';
|
||
}
|
||
|
||
public static bool IsWBBJDMXYZZField(string sField)
|
||
{
|
||
if (!sField.StartsWith("XLWBBJDMXYZZ_YZZ") || sField.Length != 18)
|
||
return false;
|
||
int iIdx = 0;
|
||
return int.TryParse(sField.Substring(16), out iIdx) && iIdx >= 1 && iIdx <= 20;
|
||
}
|
||
|
||
public static Dictionary<string, string> GetWBBJDYZZGDLM()
|
||
{
|
||
return GetWBBJDYZZGDLM("");
|
||
}
|
||
|
||
/// <summary>
|
||
/// 报价单ID为空时不加载因子栏目;不为空时加载配置因子与报价分类因子的交集
|
||
/// </summary>
|
||
public static Dictionary<string, string> GetWBBJDYZZGDLM(string sBJDID)
|
||
{
|
||
Dictionary<string, string> dic = new Dictionary<string, string>();
|
||
if (sBJDID.Trim().Equals(""))
|
||
return dic;
|
||
string[] arrPZ = GetWBBJDDRYZPZList();
|
||
if (arrPZ.Length == 0)
|
||
return dic;
|
||
string sBJFLID = XLBJDUtils.GetBJFLXXByBJDID(sBJDID).XLXSBJFL_BJFLID.Trim();
|
||
if (sBJFLID.Equals(""))
|
||
return dic;
|
||
Dictionary<string, bool> dicBJFLYZ = GetBJFLYZDict(sBJFLID);
|
||
if (dicBJFLYZ.Count == 0)
|
||
return dic;
|
||
|
||
List<string> arrIntersect = new List<string>();
|
||
for (int i = 0; i < arrPZ.Length && i < 20; i++)
|
||
{
|
||
string sYZID = arrPZ[i].Trim();
|
||
if (!sYZID.Equals("") && dicBJFLYZ.ContainsKey(sYZID))
|
||
arrIntersect.Add(sYZID);
|
||
}
|
||
if (arrIntersect.Count == 0)
|
||
return dic;
|
||
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL SQL = new TSQL(dberp);
|
||
SQL.Add("select XLXSTZYZ_YZID, XLXSTZYZ_YZMC from XLXSTZYZ ");
|
||
SQL.Add(" where XLXSTZYZ_MXBH='BJD' and " + CMISproDataBase.GetWhereEqual("XLXSTZYZ_YZID", string.Join(",", arrIntersect.ToArray())));
|
||
SQL.Add(" order by XLXSTZYZ_YZID ");
|
||
DataSet ds = dberp.OpenDataSet(SQL);
|
||
Dictionary<string, string> dicYZMC = new Dictionary<string, string>();
|
||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||
{
|
||
dicYZMC.Add(ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSTZYZ_YZMC"].ToString().Trim());
|
||
}
|
||
for (int i = 0; i < arrPZ.Length && i < 20; i++)
|
||
{
|
||
string sYZID = arrPZ[i].Trim();
|
||
if (!sYZID.Equals("") && dicBJFLYZ.ContainsKey(sYZID) && dicYZMC.ContainsKey(sYZID))
|
||
dic.Add(GetWBBJDYZZLMKey(i), dicYZMC[sYZID]);
|
||
}
|
||
return dic;
|
||
}
|
||
|
||
public static void InsXLWBBJDMXYZZ(TDatabase dberp, TSQL SQL, string sWBBJDID, string sXLBJDID)
|
||
{
|
||
string[] arrYZ = GetWBBJDDRYZList();
|
||
if (arrYZ.Length == 0)
|
||
return;
|
||
int iYZCount = arrYZ.Length > 20 ? 20 : arrYZ.Length;
|
||
|
||
Dictionary<int, string> dicLMIndex = new Dictionary<int, string>();
|
||
SQL.Clear();
|
||
SQL.Add("select XLWBBJDLM_ZDLMLX, XLWBBJDLM_LMBH from XLWBBJDLM ");
|
||
SQL.Add(" where XLWBBJDLM_WBBJDID=:pWBBJDID and XLWBBJDLM_BJDID=:pBJDID ");
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pBJDID").Value = sXLBJDID;
|
||
DataSet dsLM = dberp.OpenDataSet(SQL);
|
||
bool bHasYZLM = false;
|
||
for (int i = 0; i < dsLM.Tables[0].Rows.Count; i++)
|
||
{
|
||
string sZDLMLX = dsLM.Tables[0].Rows[i]["XLWBBJDLM_ZDLMLX"].ToString().Trim();
|
||
if (IsWBBJDYZZLM(sZDLMLX))
|
||
{
|
||
int iIdx = GetWBBJDYZZIndexByLMKey(sZDLMLX);
|
||
if (iIdx >= 0 && iIdx < iYZCount)
|
||
{
|
||
dicLMIndex[iIdx] = dsLM.Tables[0].Rows[i]["XLWBBJDLM_LMBH"].ToString().Trim();
|
||
bHasYZLM = true;
|
||
}
|
||
}
|
||
}
|
||
if (!bHasYZLM)
|
||
return;
|
||
|
||
SQL.Clear();
|
||
SQL.Add("delete from XLWBBJDMXYZZ where XLWBBJDMXYZZ_WBBJDID=:pWBBJDID and XLWBBJDMXYZZ_BJDID=:pBJDID");
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pBJDID").Value = sXLBJDID;
|
||
dberp.ExecSQL(SQL);
|
||
|
||
SQL.Clear();
|
||
SQL.Add("select XLWBBJDNR_DRHH");
|
||
for (int i = 0; i < iYZCount; i++)
|
||
{
|
||
if (dicLMIndex.ContainsKey(i))
|
||
SQL.Add(string.Format(",isnull(rtrim(XLWBBJDNR_LMNR{0}),0.0) as YZZ{1}", dicLMIndex[i], (i + 1).ToString().PadLeft(2, '0')));
|
||
else
|
||
SQL.Add(string.Format(",0.0 as YZZ{0}", (i + 1).ToString().PadLeft(2, '0')));
|
||
}
|
||
SQL.Add(" from XLWBBJDNR where XLWBBJDNR_WBBJDID=:pWBBJDID and XLWBBJDNR_BJDID=:pBJDID order by XLWBBJDNR_DRHH");
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pBJDID").Value = sXLBJDID;
|
||
DataSet dsNR = dberp.OpenDataSet(SQL);
|
||
|
||
SQL.Clear();
|
||
SQL.Add("insert into XLWBBJDMXYZZ(XLWBBJDMXYZZ_WBBJDID,XLWBBJDMXYZZ_DRHH,XLWBBJDMXYZZ_BJDID");
|
||
for (int i = 1; i <= 20; i++)
|
||
SQL.Add(string.Format(",XLWBBJDMXYZZ_YZZ{0}", i.ToString().PadLeft(2, '0')));
|
||
SQL.Add(") values(:pWBBJDID,:pDRHH,:pBJDID");
|
||
for (int i = 1; i <= 20; i++)
|
||
SQL.Add(string.Format(",:pYZZ{0}", i.ToString().PadLeft(2, '0')));
|
||
SQL.Add(")");
|
||
|
||
for (int i = 0; i < dsNR.Tables[0].Rows.Count; i++)
|
||
{
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pDRHH").Value = dsNR.Tables[0].Rows[i]["XLWBBJDNR_DRHH"];
|
||
SQL.ParamByName("pBJDID").Value = sXLBJDID;
|
||
for (int j = 1; j <= 20; j++)
|
||
{
|
||
string sCol = "YZZ" + j.ToString().PadLeft(2, '0');
|
||
if (j <= iYZCount && dsNR.Tables[0].Columns.Contains(sCol))
|
||
SQL.ParamByName("pYZZ" + j.ToString().PadLeft(2, '0')).Value = CMISproConvert.StrToFloat(dsNR.Tables[0].Rows[i][sCol].ToString().Trim());
|
||
else
|
||
SQL.ParamByName("pYZZ" + j.ToString().PadLeft(2, '0')).Value = 0.0;
|
||
}
|
||
dberp.ExecSQL(SQL);
|
||
}
|
||
}
|
||
|
||
public static void CopyWBBJDYZZToBJDYZZ0(TDatabase dberp, TSQL SQL, string sBJDID, string sWBBJDID, string sSELBJDID)
|
||
{
|
||
if (sBJDID.Trim().Equals(""))
|
||
return;
|
||
string[] arrPZ = GetWBBJDDRYZPZList();
|
||
if (arrPZ.Length == 0)
|
||
return;
|
||
string[] arrYZ = GetWBBJDDRYZList(sBJDID);
|
||
if (arrYZ.Length == 0)
|
||
return;
|
||
int iYZCount = arrPZ.Length > 20 ? 20 : arrPZ.Length;
|
||
|
||
Dictionary<string, bool> dicIntersect = new Dictionary<string, bool>();
|
||
foreach (string sYZ in arrYZ)
|
||
{
|
||
string sYZID = sYZ.Trim();
|
||
if (!sYZID.Equals("") && !dicIntersect.ContainsKey(sYZID))
|
||
dicIntersect.Add(sYZID, true);
|
||
}
|
||
|
||
SQL.Clear();
|
||
SQL.Add("select XLWBBJDMXYZZ_WBBJDID,XLWBBJDMXYZZ_DRHH,XLWBBJDMXYZZ_BJDID ");
|
||
SQL.Add(" ,XLWBBJDMXYZZ_YZZ01,XLWBBJDMXYZZ_YZZ02,XLWBBJDMXYZZ_YZZ03,XLWBBJDMXYZZ_YZZ04,XLWBBJDMXYZZ_YZZ05 ");
|
||
SQL.Add(" ,XLWBBJDMXYZZ_YZZ06,XLWBBJDMXYZZ_YZZ07,XLWBBJDMXYZZ_YZZ08,XLWBBJDMXYZZ_YZZ09,XLWBBJDMXYZZ_YZZ10 ");
|
||
SQL.Add(" ,XLWBBJDMXYZZ_YZZ11,XLWBBJDMXYZZ_YZZ12,XLWBBJDMXYZZ_YZZ13,XLWBBJDMXYZZ_YZZ14,XLWBBJDMXYZZ_YZZ15 ");
|
||
SQL.Add(" ,XLWBBJDMXYZZ_YZZ16,XLWBBJDMXYZZ_YZZ17,XLWBBJDMXYZZ_YZZ18,XLWBBJDMXYZZ_YZZ19,XLWBBJDMXYZZ_YZZ20 ");
|
||
SQL.Add(" ,XLXSBJDMX_XH as BJMXH from XLWBBJDMXYZZ ");
|
||
SQL.Add(" left join XLXSBJDMX on XLXSBJDMX_WBBJDID=XLWBBJDMXYZZ_WBBJDID ");
|
||
SQL.Add(" and XLXSBJDMX_DRHH=XLWBBJDMXYZZ_DRHH and XLXSBJDMX_BJDID=:pBJDID ");
|
||
SQL.Add(" where XLWBBJDMXYZZ_WBBJDID=:pWBBJDID and XLWBBJDMXYZZ_BJDID=:pSELBJDID ");
|
||
SQL.Add(" order by XLWBBJDMXYZZ_DRHH ");
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pSELBJDID").Value = sSELBJDID;
|
||
SQL.ParamByName("pBJDID").Value = sBJDID;
|
||
DataSet ds = dberp.OpenDataSet(SQL);
|
||
if (ds.Tables[0].Rows.Count == 0)
|
||
return;
|
||
|
||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||
{
|
||
int iXH = CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["BJMXH"].ToString().Trim());
|
||
if (iXH <= 0)
|
||
continue;
|
||
SQL.Clear();
|
||
SQL.Add("update XLXSBJDYZZ0 set ");
|
||
bool bFirst = true;
|
||
for (int j = 0; j < iYZCount; j++)
|
||
{
|
||
string sYZID = arrPZ[j].Trim();
|
||
if (!dicIntersect.ContainsKey(sYZID))
|
||
continue;
|
||
string sCol = string.Format("XLWBBJDMXYZZ_YZZ{0}", (j + 1).ToString().PadLeft(2, '0'));
|
||
string sYZZField = string.Format("XLXSBJDYZZ0_YZZ{0}", sYZID.Replace("BJ", ""));
|
||
double fVal = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i][sCol].ToString().Trim());
|
||
if (bFirst)
|
||
{
|
||
SQL.Add(string.Format("{0}={1}", sYZZField, fVal));
|
||
bFirst = false;
|
||
}
|
||
else
|
||
SQL.Add(string.Format(",{0}={1}", sYZZField, fVal));
|
||
}
|
||
if (bFirst)
|
||
continue;
|
||
SQL.Add(" where XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=:pXH ");
|
||
SQL.ParamByName("pBJDID").Value = sBJDID;
|
||
SQL.ParamByName("pXH").Value = iXH;
|
||
dberp.ExecSQL(SQL);
|
||
}
|
||
}
|
||
|
||
public static bool DeleteXLWBBJD(string sWBBJDID, string sXLBJDID, out string sErrorMsg)
|
||
{
|
||
sErrorMsg = "";
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL SQL = new TSQL(dberp);
|
||
try
|
||
{
|
||
dberp.BeginTrans();
|
||
SQL.Clear();
|
||
SQL.Add("delete from XLWBBJDML ");
|
||
SQL.Add(" where XLWBBJDML_WBBJDID=:pWBBJDID and XLWBBJDML_BJDID=:pBJDID ");
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pBJDID").Value = sXLBJDID;
|
||
dberp.ExecSQL(SQL);
|
||
|
||
SQL.Clear();
|
||
SQL.Add("delete from XLWBBJDLM ");
|
||
SQL.Add(" where XLWBBJDLM_WBBJDID=:pWBBJDID and XLWBBJDLM_BJDID=:pBJDID ");
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pBJDID").Value = sXLBJDID;
|
||
dberp.ExecSQL(SQL);
|
||
|
||
SQL.Clear();
|
||
SQL.Add("delete from XLWBBJDNR ");
|
||
SQL.Add(" where XLWBBJDNR_WBBJDID=:pWBBJDID and XLWBBJDNR_BJDID=:pBJDID ");
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pBJDID").Value = sXLBJDID;
|
||
dberp.ExecSQL(SQL);
|
||
|
||
SQL.Clear();
|
||
SQL.Add("delete from XLWBBJDMX ");
|
||
SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID ");
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pBJDID").Value = sXLBJDID;
|
||
dberp.ExecSQL(SQL);
|
||
|
||
SQL.Clear();
|
||
SQL.Add("delete from XLWBBJDMXYZZ ");
|
||
SQL.Add(" where XLWBBJDMXYZZ_WBBJDID=:pWBBJDID and XLWBBJDMXYZZ_BJDID=:pBJDID ");
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pBJDID").Value = sXLBJDID;
|
||
dberp.ExecSQL(SQL);
|
||
dberp.CommitTrans();
|
||
return true;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
sErrorMsg = "删除失败!" + ex;
|
||
dberp.RollbackTrans();
|
||
return false;
|
||
}
|
||
}
|
||
|
||
public static void InsXLWBBJDMX(TDatabase dberp, TSQL SQL, string sWBBJDID, string sXLBJDID, CMISproSession tSession, ref string sErrMsg)
|
||
{
|
||
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000);
|
||
XLXSBJPZXX pzxx43 = XLBJDUtils.GetXLXSBJPZXX(100860043);
|
||
|
||
string sKHMCPPFS = "";
|
||
if (pzxx.XLXSBJPZ_KHJSLY.Equals("KHXX") && pzxx.XLXSBJPZ_XZKHYQ.Equals("Q"))
|
||
{
|
||
sKHMCPPFS = "1";
|
||
}
|
||
else if (pzxx.XLXSBJPZ_KHJSLY.Equals("KH") && pzxx.XLXSBJPZ_XZKHYQ.Equals("Q"))
|
||
{
|
||
sKHMCPPFS = "2";
|
||
}
|
||
string sBJSJLY = "";
|
||
string sXLJGU007 = tSession.GetOption(102579000, "XLJGU007");
|
||
string sBJU028 = tSession.GetOption(100860043, "BJU028");
|
||
string sDefaultXLBZID = XLBJDUtils.GetDefaultXLBZID();
|
||
if (sDefaultXLBZID.Equals(""))
|
||
sDefaultXLBZID = " ";
|
||
Dictionary<string, string> dicXLBZID = new Dictionary<string, string>();
|
||
dicXLBZID.Clear();
|
||
SQL.Clear();
|
||
SQL.Add("select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ where 1 = 1 ");
|
||
DataSet dsXLBZID = dberp.OpenDataSet(SQL);
|
||
if (dsXLBZID.Tables[0].Rows.Count > 0)
|
||
{
|
||
for (int i = 0; i < dsXLBZID.Tables[0].Rows.Count; i++)
|
||
{
|
||
dicXLBZID.Add(dsXLBZID.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim(), dsXLBZID.Tables[0].Rows[i]["XLBZ_XLBZLXMC"].ToString().Trim());
|
||
}
|
||
}
|
||
|
||
Dictionary<string, string> dicXLYS = new Dictionary<string, string>();
|
||
dicXLYS.Clear();
|
||
SQL.Clear();
|
||
SQL.Add("select XLYSB_XLYSID,XLYSB_XLYSMC from XLYSB where 1=1");
|
||
DataSet dsXLYS = dberp.OpenDataSet(SQL);
|
||
if (dsXLYS.Tables[0].Rows.Count > 0)
|
||
{
|
||
for (int i = 0; i < dsXLYS.Tables[0].Rows.Count; i++)
|
||
{
|
||
dicXLYS.Add(dsXLYS.Tables[0].Rows[i]["XLYSB_XLYSID"].ToString().Trim(), dsXLYS.Tables[0].Rows[i]["XLYSB_XLYSMC"].ToString().Trim());
|
||
}
|
||
}
|
||
|
||
int iNRHHS = 0;
|
||
int iNRHHZ = 0;
|
||
string sKHMC = "";
|
||
Dictionary<string, string> dicLM = new Dictionary<string, string>();
|
||
dicLM.Clear();
|
||
SQL.Clear();
|
||
SQL.Add(" select XLWBBJDLM_ZDLMLX,XLWBBJDLM_LMBH,XLWBBJDML_NRHHS,XLWBBJDML_NRHHZ,XLWBBJDML_SJLY,XLXSBJD_KH ");
|
||
SQL.Add(" from XLWBBJDLM ");
|
||
SQL.Add(" left join XLWBBJDML on XLWBBJDML_WBBJDID = XLWBBJDLM_WBBJDID and XLWBBJDML_BJDID = XLWBBJDLM_BJDID ");
|
||
SQL.Add(" left join XLXSBJD on XLWBBJDLM_BJDID = XLXSBJD_BJDID ");
|
||
SQL.Add(" where 1=1 ");
|
||
SQL.Add(" and XLWBBJDLM_WBBJDID=:pWBBJDID and XLWBBJDLM_BJDID=:pXLBJDID ");
|
||
SQL.Add(" order by XLWBBJDLM_ZDLMLX ");
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pXLBJDID").Value = sXLBJDID;
|
||
DataSet dsLM = dberp.OpenDataSet(SQL);
|
||
if (dsLM.Tables[0].Rows.Count > 0)
|
||
{
|
||
iNRHHS = CMISproConvert.StrToInt(dsLM.Tables[0].Rows[0]["XLWBBJDML_NRHHS"].ToString());
|
||
iNRHHZ = CMISproConvert.StrToInt(dsLM.Tables[0].Rows[0]["XLWBBJDML_NRHHZ"].ToString());
|
||
sBJSJLY = dsLM.Tables[0].Rows[0]["XLWBBJDML_SJLY"].ToString();
|
||
sKHMC = dsLM.Tables[0].Rows[0]["XLXSBJD_KH"].ToString();
|
||
for (int i = 0; i < dsLM.Tables[0].Rows.Count; i++)
|
||
{
|
||
if (!dsLM.Tables[0].Rows[i]["XLWBBJDLM_ZDLMLX"].ToString().Trim().Equals(""))
|
||
{
|
||
dicLM.Add(dsLM.Tables[0].Rows[i]["XLWBBJDLM_ZDLMLX"].ToString().Trim(), dsLM.Tables[0].Rows[i]["XLWBBJDLM_LMBH"].ToString().Trim());
|
||
}
|
||
}
|
||
}
|
||
//查询客户ID
|
||
string sKHID = "";
|
||
SQL.Clear();
|
||
if (sKHMCPPFS.Equals("1"))
|
||
{
|
||
SQL.Add(" select KHXX_YKHID AS KHID ");
|
||
SQL.Add(" from KHXX ");
|
||
SQL.Add(" where KHXX_MC=:pKHMC ");
|
||
SQL.ParamByName("pKHMC").Value = sKHMC;
|
||
}
|
||
else
|
||
{
|
||
SQL.Add(" select KH_KHID AS KHID ");
|
||
SQL.Add(" from KH ");
|
||
SQL.Add(" where KH_MC=:pKHMC ");
|
||
SQL.ParamByName("pKHMC").Value = sKHMC;
|
||
}
|
||
DataSet dsKH = dberp.OpenDataSet(SQL);
|
||
if (dsKH.Tables[0].Rows.Count > 0)
|
||
sKHID = dsKH.Tables[0].Rows[0][0].ToString().Trim();
|
||
if (dicLM.Count == 0)
|
||
{
|
||
sErrMsg = "请先指定报价单栏目!";
|
||
return;
|
||
}
|
||
|
||
try
|
||
{
|
||
SQL.Clear();
|
||
SQL.Add("delete from XLWBBJDMX where 1=1 ");
|
||
SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pXLBJDID ");
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pXLBJDID").Value = sXLBJDID;
|
||
dberp.ExecSQL(SQL);
|
||
|
||
SQL.Clear();
|
||
SQL.Add("delete from XLWBBJDMXYZZ where 1=1 ");
|
||
SQL.Add(" and XLWBBJDMXYZZ_WBBJDID=:pWBBJDID and XLWBBJDMXYZZ_BJDID=:pXLBJDID ");
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pXLBJDID").Value = sXLBJDID;
|
||
dberp.ExecSQL(SQL);
|
||
|
||
SQL.Clear();
|
||
SQL.Add("insert into XLWBBJDMX(XLWBBJDMX_BJDID,XLWBBJDMX_WBBJDID,XLWBBJDMX_DRHH,");
|
||
if (dicLM.ContainsKey("4"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_JLDW, ");
|
||
}
|
||
if (dicLM.ContainsKey("5"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_BJSL, ");
|
||
}
|
||
if (dicLM.ContainsKey("6"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_CPBJ, ");
|
||
}
|
||
if (dicLM.ContainsKey("7"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_BZ, ");
|
||
}
|
||
if (dicLM.ContainsKey("A"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_XLYSID, ");
|
||
}
|
||
if (dicLM.ContainsKey("B"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_YXJG, ");
|
||
}
|
||
if (dicLM.ContainsKey("C"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_YZ, ");
|
||
}
|
||
if (dicLM.ContainsKey("D"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_YSCP, ");
|
||
}
|
||
if (dicLM.ContainsKey("E"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_FBH, ");
|
||
}
|
||
if (dicLM.ContainsKey("F"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_WGCPBZ, ");
|
||
}
|
||
if (dicLM.ContainsKey("G"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_CPBJXJ, ");
|
||
}
|
||
if (dicLM.ContainsKey("H"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_BJJEXJ, ");
|
||
}
|
||
if (dicLM.ContainsKey("I"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_ZHCPMLMC, ");
|
||
}
|
||
if (dicLM.ContainsKey("J"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_CPMLMC, ");
|
||
}
|
||
if (dicLM.ContainsKey("K"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_PWQDID, ");
|
||
}
|
||
if (dicLM.ContainsKey("L"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_PWQDWLMC, ");
|
||
}
|
||
if (dicLM.ContainsKey("M"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_PWQDMS, ");
|
||
}
|
||
if (dicLM.ContainsKey("N"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_GWWLBM, ");
|
||
}
|
||
if (dicLM.ContainsKey("O"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_JMBGS, ");
|
||
}
|
||
if (dicLM.ContainsKey("P"))
|
||
{
|
||
SQL.Add("XLWBBJDMX_LSJGBBJ, ");
|
||
}
|
||
//报价产品、报价图片、销售合同一致
|
||
if (sBJSJLY.Equals("BJCP") || sBJSJLY.Equals("BJTP") || sBJSJLY.Equals("XSHT"))
|
||
{
|
||
SQL.Add(" XLWBBJDMX_DYDJID,XLWBBJDMX_XLBZID,");
|
||
SQL.Add(" XLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID,XLWBBJDMX_BJCP,");
|
||
}
|
||
else if (sBJSJLY.Equals("BJWL"))//BJWL|报价物料
|
||
{
|
||
//必须项
|
||
SQL.Add("XLWBBJDMX_BJCP,XLWBBJDMX_WLID,XLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID,XLWBBJDMX_XLBZID,XLWBBJDMX_DYDJID,XLWBBJDMX_XLYSID, ");
|
||
}
|
||
else if (sBJSJLY.Equals("KHWL"))//KHWL|客户物料
|
||
{
|
||
//必须项
|
||
SQL.Add("XLWBBJDMX_BJCP,XLWBBJDMX_KHWLID,XLWBBJDMX_WLID,XLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID,XLWBBJDMX_XLBZID,XLWBBJDMX_DYDJID,XLWBBJDMX_XLYSID, ");
|
||
}
|
||
|
||
SQL.Add(" XLWBBJDMX_WHR,XLWBBJDMX_WHRID,XLWBBJDMX_WHSJ) ");
|
||
|
||
SQL.Add("select XLWBBJDNR_BJDID,XLWBBJDNR_WBBJDID,XLWBBJDNR_DRHH,");
|
||
if (dicLM.ContainsKey("4"))//4|计量单位
|
||
{
|
||
SQL.Add(string.Format("case when isnull(XLWBBJDNR_LMNR{0},' ')=' ' then ' ' when XLWBBJDNR_LMNR{0} in ('km','KM','Km','kM') then 'Km' when XLWBBJDNR_LMNR{0} in ('m','M') then 'M' when XLWBBJDNR_LMNR{0} in ('kg','KG','Kg','kG') then 'Kg' when XLWBBJDNR_LMNR{0} in ('t','T') then 'T' else XLWBBJDNR_LMNR{0} end as XLWBBJDMX_JLDW,", dicLM["4"]));
|
||
}
|
||
if (dicLM.ContainsKey("5"))//5|报价数量
|
||
{
|
||
SQL.Add(string.Format("isnull(rtrim(XLWBBJDNR_LMNR{0}),0.0) as XLWBBJDMX_BJSL,", dicLM["5"]));
|
||
}
|
||
if (dicLM.ContainsKey("6"))//6|报价
|
||
{
|
||
SQL.Add(string.Format("isnull(rtrim(XLWBBJDNR_LMNR{0}),0.0) as XLWBBJDMX_CPBJ,", dicLM["6"]));
|
||
}
|
||
if (dicLM.ContainsKey("7"))//7|备注
|
||
{
|
||
SQL.Add(string.Format("XLWBBJDNR_LMNR{0} as XLWBBJDMX_BZ,", dicLM["7"]));
|
||
}
|
||
if (dicLM.ContainsKey("A"))//A|颜色
|
||
{
|
||
//SQL.Add("case when isnull(XLYSB_XLYSID,' ')<>' ' then XLYSB_XLYSID else ' ' end as XLWBBJDMX_XLYSID,");
|
||
if (pzxx43.XLXSBJPZ_WBBJDJXYS.Equals("Y"))
|
||
{
|
||
SQL.Add(" case when isnull(d.XLYSB_XLYSID,' ')<>' ' then d.XLYSB_XLYSID when isnull(e.XLYSB_XLYSID,' ')<>' ' then e.XLYSB_XLYSID when isnull(f.XLYSB_XLYSID,' ')<>' ' then f.XLYSB_XLYSID ");
|
||
SQL.Add(" when isnull(g.XLYSB_XLYSID,' ')<>' ' then g.XLYSB_XLYSID when isnull(h.XLYSB_XLYSID,' ')<>' ' then h.XLYSB_XLYSID when isnull(i.XLYSB_XLYSID,' ')<>' ' then i.XLYSB_XLYSID else ' ' end as XLWBBJDMX_XLYSID,");
|
||
}
|
||
else
|
||
SQL.Add("case when isnull(d.XLYSB_XLYSID,' ')<>' ' then d.XLYSB_XLYSID when isnull(e.XLYSB_XLYSID,' ')<>' ' then e.XLYSB_XLYSID when isnull(f.XLYSB_XLYSID,' ')<>' ' then f.XLYSB_XLYSID else ' ' end as XLWBBJDMX_XLYSID,");
|
||
|
||
}
|
||
if (dicLM.ContainsKey("B"))//B|意向价
|
||
{
|
||
SQL.Add(string.Format("isnull(rtrim(XLWBBJDNR_LMNR{0}),0.0) as XLWBBJDMX_YXJG,", dicLM["B"]));
|
||
}
|
||
if (dicLM.ContainsKey("C"))//C|印字
|
||
{
|
||
SQL.Add(string.Format("XLWBBJDNR_LMNR{0} as XLWBBJDMX_YZ,", dicLM["C"]));
|
||
}
|
||
if (dicLM.ContainsKey("D"))//D|原始产品
|
||
{
|
||
SQL.Add(string.Format("XLWBBJDNR_LMNR{0} as XLWBBJDMX_YSCP,", dicLM["D"]));
|
||
}
|
||
if (dicLM.ContainsKey("E"))//E|包号
|
||
{
|
||
SQL.Add(string.Format("XLWBBJDNR_LMNR{0} as XLWBBJDMX_FBH,", dicLM["E"]));
|
||
}
|
||
if (dicLM.ContainsKey("F"))//F|外购
|
||
{
|
||
SQL.Add(string.Format("case XLWBBJDNR_LMNR{0} when '外购' then 'Y' when '是' then 'Y' when 'Y' then 'Y' else 'N' end as XLWBBJDMX_WGCPBZ,", dicLM["F"]));
|
||
}
|
||
if (dicLM.ContainsKey("G"))//G|产品报价限价
|
||
{
|
||
SQL.Add(string.Format("isnull(rtrim(XLWBBJDNR_LMNR{0}),0.0) as XLWBBJDMX_CPBJXJ,", dicLM["G"]));
|
||
}
|
||
if (dicLM.ContainsKey("H"))//H|报价金额限价
|
||
{
|
||
SQL.Add(string.Format("isnull(rtrim(XLWBBJDNR_LMNR{0}),0.0) as XLWBBJDMX_BJJEXJ,", dicLM["H"]));
|
||
}
|
||
if (dicLM.ContainsKey("I"))
|
||
{
|
||
SQL.Add(string.Format("XLWBBJDNR_LMNR{0} as XLWBBJDMX_ZHCPMLMC,", dicLM["I"]));
|
||
}
|
||
if (dicLM.ContainsKey("J"))
|
||
{
|
||
SQL.Add(string.Format("XLWBBJDNR_LMNR{0} as XLWBBJDMX_CPMLMC,", dicLM["J"]));
|
||
}
|
||
if (dicLM.ContainsKey("K"))
|
||
{
|
||
SQL.Add(string.Format("XLWBBJDNR_LMNR{0} as XLWBBJDMX_PWQDID,", dicLM["K"]));
|
||
}
|
||
if (dicLM.ContainsKey("L"))
|
||
{
|
||
SQL.Add(string.Format("XLWBBJDNR_LMNR{0} as XLWBBJDMX_PWQDWLMC,", dicLM["L"]));
|
||
}
|
||
if (dicLM.ContainsKey("M"))
|
||
{
|
||
SQL.Add(string.Format("XLWBBJDNR_LMNR{0} as XLWBBJDMX_PWQDMS,", dicLM["M"]));
|
||
}
|
||
if (dicLM.ContainsKey("N"))
|
||
{
|
||
SQL.Add(string.Format("XLWBBJDNR_LMNR{0} as XLWBBJDMX_GWWLBM,", dicLM["N"]));
|
||
}
|
||
if (dicLM.ContainsKey("O"))
|
||
{
|
||
SQL.Add(string.Format("XLWBBJDNR_LMNR{0} as XLWBBJDMX_JMBGS,", dicLM["O"]));
|
||
}
|
||
if (dicLM.ContainsKey("P"))
|
||
{
|
||
SQL.Add(string.Format("isnull(rtrim(XLWBBJDNR_LMNR{0}),0.0) as XLWBBJDMX_LSJGBBJ,", dicLM["P"]));
|
||
}
|
||
//报价产品、报价图片、销售合同一致
|
||
if (sBJSJLY.Equals("BJCP") || sBJSJLY.Equals("BJTP") || sBJSJLY.Equals("XSHT"))
|
||
{
|
||
if (dicLM.ContainsKey("2"))//2|电压等级
|
||
{
|
||
SQL.Add(string.Format("replace(replace(isnull(XLWBBJDNR_LMNR{0},' '),'K','k'),'v','V') as XLWBBJDMX_DYDJID,", dicLM["2"]));
|
||
}
|
||
else
|
||
{
|
||
SQL.Add("' ' as XLWBBJDMX_DYDJID, ");
|
||
}
|
||
if (dicLM.ContainsKey("3"))//3|标准
|
||
{
|
||
//SQL.Add(string.Format("case when isnull(XLBZ_XLBZID,' ')<>' ' then XLBZ_XLBZID else '{0}' end as XLWBBJDMX_XLBZID,", (sDefaultXLBZID.Equals("FirstBZ") ? "" : sDefaultXLBZID)));
|
||
SQL.Add(string.Format("case when isnull(a.XLBZ_XLBZID,' ')<>' ' then a.XLBZ_XLBZID when isnull(b.XLBZ_XLBZID,' ')<>' ' then b.XLBZ_XLBZID when isnull(c.XLBZ_XLBZID,' ')<>' ' then c.XLBZ_XLBZID else '{0}' end as XLWBBJDMX_XLBZID,", (sDefaultXLBZID.Equals("FirstBZ") ? " " : sDefaultXLBZID)));
|
||
}
|
||
else
|
||
{
|
||
SQL.Add(string.Format("'{0}' as XLWBBJDMX_XLBZID, ", (sDefaultXLBZID.Equals("FirstBZ") ? " " : sDefaultXLBZID)));
|
||
}
|
||
if (dicLM.ContainsKey("8"))//8|型号
|
||
{
|
||
SQL.Add(string.Format("upper(XLWBBJDNR_LMNR{0}) as XLWBBJDMX_XLXHID,", dicLM["8"]));//型号控制大写
|
||
}
|
||
else
|
||
{
|
||
SQL.Add("' ' as XLWBBJDMX_XLXHID, ");
|
||
}
|
||
if (dicLM.ContainsKey("9"))//9|规格
|
||
{
|
||
SQL.Add(string.Format("XLWBBJDNR_LMNR{0} as XLWBBJDMX_XLGGID,", dicLM["9"]));
|
||
}
|
||
else
|
||
{
|
||
SQL.Add("' ' as XLWBBJDMX_XLGGID, ");
|
||
}
|
||
if (dicLM.ContainsKey("1"))//1|报价产品
|
||
{
|
||
SQL.Add(string.Format("XLWBBJDNR_LMNR{0} as XLWBBJDMX_BJCP,", dicLM["1"]));
|
||
}
|
||
else
|
||
{
|
||
SQL.Add("' ' as XLWBBJDMX_BJCP, ");
|
||
}
|
||
}
|
||
else if (sBJSJLY.Equals("BJWL"))//BJWL|报价物料
|
||
{
|
||
SQL.Add(" case when (ISNULL(XLXLB_DYDJID,' ') = ' ' or ISNULL(XLXLB_DYDJID,' ') = '--') then rtrim(case when isnull(XSBJXHTH_BJXLXHID,' ') = ' ' then XLXLB_XLXHID else XSBJXHTH_BJXLXHID end)||' '||rtrim(XLXLB_XLGGID) else rtrim(XLXLB_XLXHID)||'-'||rtrim(XLXLB_DYDJID)||' '||rtrim(XLXLB_XLGGID) end as XLWBBJDMX_BJCP,");
|
||
|
||
SQL.Add("XLWBBJDNR_LMNR01 as XLWBBJDMX_WLID, ");
|
||
SQL.Add("isnull(case when isnull(XSBJXHTH_BJXLXHID,' ') = ' ' then XLXLB_XLXHID else XSBJXHTH_BJXLXHID end,' ') as XLWBBJDMX_XLXHID, ");
|
||
//A|× B|*
|
||
if (sXLJGU007.Equals("B"))
|
||
{
|
||
SQL.Add("replace(isnull(XLXLB_XLGGID,' '),'×','*') as XLWBBJDMX_XLGGID, ");
|
||
}
|
||
else
|
||
{
|
||
SQL.Add("replace(isnull(XLXLB_XLGGID,' '),'*','×') as XLWBBJDMX_XLGGID, ");
|
||
}
|
||
SQL.Add("isnull(XLXLB_XLBZID,' ') as XLWBBJDMX_XLBZID, ");
|
||
SQL.Add("isnull(XLXLB_DYDJID,' ') as XLWBBJDMX_DYDJID, ");
|
||
SQL.Add("XLXLB_XLYSID as XLWBBJDMX_XLYSID, ");
|
||
}
|
||
else if (sBJSJLY.Equals("KHWL"))//KHWL|客户物料
|
||
{
|
||
SQL.Add(" case when (ISNULL(XLXLB_DYDJID,' ') = ' ' or ISNULL(XLXLB_DYDJID,' ') = '--') then rtrim(case when isnull(XSBJXHTH_BJXLXHID,' ') = ' ' then XLXLB_XLXHID else XSBJXHTH_BJXLXHID end)||' '||rtrim(XLXLB_XLGGID) else rtrim(XLXLB_XLXHID)||'-'||rtrim(XLXLB_DYDJID)||' '||rtrim(XLXLB_XLGGID) end as XLWBBJDMX_BJCP,");
|
||
|
||
SQL.Add(string.Format(" XLWBBJDNR_LMNR{0},XLXLB_WLID AS XLWBBJDMX_WLID, ",dicLM["Z"]));
|
||
SQL.Add("isnull(case when isnull(XSBJXHTH_BJXLXHID,' ') = ' ' then XLXLB_XLXHID else XSBJXHTH_BJXLXHID end,' ') as XLWBBJDMX_XLXHID, ");
|
||
//A|× B|*
|
||
if (sXLJGU007.Equals("B"))
|
||
{
|
||
SQL.Add("replace(isnull(XLXLB_XLGGID,' '),'×','*') as XLWBBJDMX_XLGGID, ");
|
||
}
|
||
else
|
||
{
|
||
SQL.Add("replace(isnull(XLXLB_XLGGID,' '),'*','×') as XLWBBJDMX_XLGGID, ");
|
||
}
|
||
SQL.Add("isnull(XLXLB_XLBZID,' ') as XLWBBJDMX_XLBZID, ");
|
||
SQL.Add("isnull(XLXLB_DYDJID,' ') as XLWBBJDMX_DYDJID, ");
|
||
SQL.Add("XLXLB_XLYSID as XLWBBJDMX_XLYSID, ");
|
||
}
|
||
|
||
SQL.Add(" :XLWBBJDMX_WHR,:XLWBBJDMX_WHRID,:XLWBBJDMX_WHSJ ");
|
||
SQL.Add(" from XLWBBJDNR");
|
||
if (dicLM.ContainsKey("3"))
|
||
{
|
||
//SQL.Add(string.Format(" left join XLBZ on (XLBZ_XLBZID=XLWBBJDNR_LMNR{0} or XLBZ_XLBZLXMC=XLWBBJDNR_LMNR{0} or rtrim(XLBZ_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC)=XLWBBJDNR_LMNR{0})", dicLM["3"]));
|
||
SQL.Add(string.Format(" left join XLBZ a on a.XLBZ_XLBZID=XLWBBJDNR_LMNR{0}", dicLM["3"]));
|
||
SQL.Add(string.Format(" left join XLBZ b on b.XLBZ_XLBZLXMC=XLWBBJDNR_LMNR{0}", dicLM["3"]));
|
||
SQL.Add(string.Format(" left join XLBZ c on rtrim(c.XLBZ_XLBZID)||'|'||rtrim(c.XLBZ_XLBZLXMC)=XLWBBJDNR_LMNR{0}", dicLM["3"]));
|
||
}
|
||
if (dicLM.ContainsKey("A"))
|
||
{
|
||
//SQL.Add(string.Format(" left join XLYSB on (XLYSB_XLYSID=XLWBBJDNR_LMNR{0} or XLYSB_XLYSMC=XLWBBJDNR_LMNR{0} or rtrim(XLYSB_XLYSID)||'|'||rtrim(XLYSB_XLYSMC)=XLWBBJDNR_LMNR{0})", dicLM["A"]));
|
||
SQL.Add(string.Format(" left join XLYSB d on d.XLYSB_XLYSID=XLWBBJDNR_LMNR{0}", dicLM["A"]));
|
||
SQL.Add(string.Format(" left join XLYSB e on e.XLYSB_XLYSMC=XLWBBJDNR_LMNR{0}", dicLM["A"]));
|
||
SQL.Add(string.Format(" left join XLYSB f on rtrim(f.XLYSB_XLYSID)||'|'||rtrim(f.XLYSB_XLYSMC)=XLWBBJDNR_LMNR{0}", dicLM["A"]));
|
||
if (pzxx43.XLXSBJPZ_WBBJDJXYS.Equals("Y"))
|
||
{
|
||
SQL.Add(string.Format(" left join (select replace(XLYSB_XLYSMC,'色','') as YSMC,XLYSB_XLYSID from XLYSB where XLYSB_XLYSMC like '%色%') g on g.YSMC=XLWBBJDNR_LMNR{0}", dicLM["A"]));
|
||
SQL.Add(string.Format(" left join (select '双' as YSMC,XLYSB_XLYSID from XLYSB where XLYSB_XLYSMC = '绿黄' ) h on h.YSMC = replace(XLWBBJDNR_LMNR{0},'色','') ", dicLM["A"]));
|
||
SQL.Add(string.Format(" left join (select '双' as YSMC,XLYSB_XLYSID from XLYSB where XLYSB_XLYSMC = '黄绿' ) i on i.YSMC = replace(XLWBBJDNR_LMNR{0},'色','') ", dicLM["A"]));
|
||
}
|
||
}
|
||
if (sBJSJLY.Equals("BJWL"))//BJWL|报价物料
|
||
{
|
||
SQL.Add(" left join XLXLB on XLXLB_WLID=XLWBBJDNR_LMNR01 ");
|
||
SQL.Add(" left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID ");
|
||
}
|
||
else if (sBJSJLY.Equals("KHWL"))//KHWL|客户物料
|
||
{
|
||
SQL.Add(string.Format(" left join KHWL ON KHWL_KHID=:pKHID and KHWL_KHWLID=upper(XLWBBJDNR_LMNR{0}) ",dicLM["Z"]));
|
||
SQL.Add(" left join XLXLB ON XLXLB_WLID=KHWL_WLID ");
|
||
SQL.Add(" left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID ");
|
||
SQL.ParamByName("pKHID").Value = sKHID;
|
||
}
|
||
SQL.Add(" where XLWBBJDNR_WBBJDID=:pWBBJDID and XLWBBJDNR_BJDID=:pXLBJDID ");
|
||
SQL.Add(" and XLWBBJDNR_DRHH>=:pNRHHS and XLWBBJDNR_DRHH<=:pNRHHZ");
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pXLBJDID").Value = sXLBJDID;
|
||
SQL.ParamByName("pNRHHS").Value = iNRHHS;
|
||
SQL.ParamByName("pNRHHZ").Value = iNRHHZ;
|
||
SQL.ParamByName("XLWBBJDMX_WHR").Value = tSession.UserName;
|
||
SQL.ParamByName("XLWBBJDMX_WHRID").Value = tSession.UserId;
|
||
SQL.ParamByName("XLWBBJDMX_WHSJ").Value = DateTime.Now;
|
||
dberp.ExecSQL(SQL);
|
||
|
||
if (sBJU028 == "Y")
|
||
{
|
||
SQL.Clear();
|
||
SQL.Add(" update XLWBBJDMX set XLWBBJDMX_XLBZID='' where 1=1 ");
|
||
SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pXLBJDID ");
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pXLBJDID").Value = sXLBJDID;
|
||
dberp.ExecSQL(SQL);
|
||
}
|
||
|
||
// XLWBBJDMX导入后,统一同步规格替换表
|
||
XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLWBBJDMX_Batch(dberp, tSession, sWBBJDID);
|
||
|
||
|
||
//BJCP|报价产品、BJTP|报价图片
|
||
//BJWL|报价物料、XSHT|销售合同
|
||
//SQL.Clear();
|
||
//SQL.Add("select XLWBBJDNR_WBBJDID,XLWBBJDNR_BJDID,XLWBBJDNR_DRHH, ");
|
||
//foreach (KeyValuePair<string, string> kvp in dicLM)
|
||
//{
|
||
// SQL.Add(String.Format(" XLWBBJDNR_LMNR{0}, ", kvp.Value));
|
||
//}
|
||
//if (sBJSJLY.Equals("BJWL"))
|
||
//{
|
||
// SQL.Add(" XLWBBJDNR_LMNR01,XLXLB_XLXHID,XLXLB_XLGGID, ");
|
||
// SQL.Add(" XLXLB_XLBZID,XLXLB_DYDJID,XLXLB_XLYSID, ");
|
||
//}
|
||
//SQL.Add(" 1 as px from XLWBBJDNR ");
|
||
//if (sBJSJLY.Equals("BJWL"))
|
||
//{
|
||
// SQL.Add(" left join XLXLB on XLXLB_WLID=XLWBBJDNR_LMNR01 ");
|
||
//}
|
||
//SQL.Add(" where XLWBBJDNR_WBBJDID=:pWBBJDID and XLWBBJDNR_BJDID=:pXLBJDID ");
|
||
//SQL.Add(" and XLWBBJDNR_DRHH>=:pNRHHS and XLWBBJDNR_DRHH<=:pNRHHZ");
|
||
//SQL.Add(" order by XLWBBJDNR_DRHH");
|
||
//SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
//SQL.ParamByName("pXLBJDID").Value = sXLBJDID;
|
||
//SQL.ParamByName("pNRHHS").Value = iNRHHS;
|
||
//SQL.ParamByName("pNRHHZ").Value = iNRHHZ;
|
||
//DataSet dsNR = dberp.OpenDataSet(SQL);
|
||
//for (int i = 0; i < dsNR.Tables[0].Rows.Count; i++)
|
||
//{
|
||
// SQL.Clear();
|
||
// SQL.Add("insert into XLWBBJDMX( ");
|
||
// SQL.Add(" XLWBBJDMX_BJDID,XLWBBJDMX_WBBJDID,XLWBBJDMX_DRHH, ");
|
||
// //单独处理字段
|
||
// GetSQLAdd(SQL, dicLM, sBJSJLY);
|
||
// SQL.Add(" XLWBBJDMX_WHR,XLWBBJDMX_WHRID,XLWBBJDMX_WHSJ ");
|
||
// SQL.Add(" ) ");
|
||
// SQL.Add(" values(");
|
||
// SQL.Add(" :XLWBBJDMX_BJDID,:XLWBBJDMX_WBBJDID,:XLWBBJDMX_DRHH, ");
|
||
// //与函数GetSQLAdd相互对应
|
||
// GetParamNameAdd(SQL, dicLM, dsNR, i, sBJSJLY, sDefaultXLBZID, dicXLBZID, dicXLYS, tSession, sXLJGU007);
|
||
// SQL.Add(" :XLWBBJDMX_WHR,:XLWBBJDMX_WHRID,:XLWBBJDMX_WHSJ ");
|
||
// SQL.Add(" ) ");
|
||
// SQL.ParamByName("XLWBBJDMX_BJDID").Value = dsNR.Tables[0].Rows[i]["XLWBBJDNR_BJDID"].ToString().Trim();
|
||
// SQL.ParamByName("XLWBBJDMX_WBBJDID").Value = dsNR.Tables[0].Rows[i]["XLWBBJDNR_WBBJDID"].ToString().Trim();
|
||
// SQL.ParamByName("XLWBBJDMX_DRHH").Value = dsNR.Tables[0].Rows[i]["XLWBBJDNR_DRHH"].ToString().Trim();
|
||
|
||
// SQL.ParamByName("XLWBBJDMX_WHR").Value = tSession.UserName;
|
||
// SQL.ParamByName("XLWBBJDMX_WHRID").Value = tSession.UserId;
|
||
// SQL.ParamByName("XLWBBJDMX_WHSJ").Value = DateTime.Now;
|
||
// string ss = SQL.Text;
|
||
// dberp.ExecSQL(SQL);
|
||
//}
|
||
InsXLWBBJDMXYZZ(dberp, SQL, sWBBJDID, sXLBJDID);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
sErrMsg = ex.ToString().Trim();
|
||
}
|
||
|
||
}
|
||
|
||
public static void UpdateCPMLMC(TDatabase dberp, TSQL SQL, string sWBBJDID, string sXLBJDID, string sDRHHList, int VnewID)
|
||
{
|
||
SQL.Clear();
|
||
SQL.Add(" merge into XLWBBJDMX tar ");
|
||
SQL.Add(" using ( ");
|
||
SQL.Add(" SELECT XLWBBJDMX_WBBJDID,XLWBBJDMX_BJDID, XLWBBJDMX_DRHH,");
|
||
SQL.Add(" isnull(CPMLMC,' ') as CPMLMC,isnull(ZHCPMLMC,' ') as ZHCPMLMC ");
|
||
SQL.Add(" from XLWBBJDMX ");
|
||
SQL.Add(" left join XLXSBJXHML A on A.XLXSBJXHML_XLXHID = XLWBBJDMX_XLXHID and A.XLXSBJXHML_DYDJID = isnull(XLWBBJDMX_DYDJID, ' ') ");
|
||
SQL.Add(" left join XLXSBJXHML B on B.XLXSBJXHML_XLXHID = XLWBBJDMX_XLXHID and B.XLXSBJXHML_DYDJID = ' ' ");
|
||
SQL.Add(@" left join
|
||
(select DY.XLXSCPML_CPMLID as CPMLID ,DY.XLXSCPML_CPMLMC as CPMLMC ,min(ZH.XLXSCPML_CPMLMC) as ZHCPMLMC
|
||
from XLXSCPML DY
|
||
left join XLXSCPML ZH on ','||rtrim(ZH.XLXSCPML_CPMLIDS)||',' like '%,'||rtrim(DY.XLXSCPML_CPMLID)||',%'
|
||
group by DY.XLXSCPML_CPMLID,DY.XLXSCPML_CPMLMC
|
||
) CPML on CPML.CPMLID = case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end ");
|
||
SQL.Add(" where 1=1 ");
|
||
SQL.Add(" and XLWBBJDMX_BJDID = :pBJDID ");
|
||
SQL.Add(" and XLWBBJDMX_WBBJDID = :pWBBJDID ");
|
||
if (!sDRHHList.Equals(""))
|
||
{ //研发自测:王威 2025/11/02 21:35:46
|
||
SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)");
|
||
SQL.ParamByName("pNewID").Value = VnewID;
|
||
}
|
||
SQL.Add(" ) sor ");
|
||
SQL.Add(" on( ");
|
||
SQL.Add(" 1=1 ");
|
||
SQL.Add(" and sor.XLWBBJDMX_BJDID = tar.XLWBBJDMX_BJDID ");
|
||
SQL.Add(" and sor.XLWBBJDMX_WBBJDID = tar.XLWBBJDMX_WBBJDID ");
|
||
SQL.Add(" and sor.XLWBBJDMX_DRHH = tar.XLWBBJDMX_DRHH ");
|
||
SQL.Add(" and (isnull(tar.XLWBBJDMX_CPMLMC, ' ')= ' ' and isnull(tar.XLWBBJDMX_ZHCPMLMC, ' ')= ' ' ) ");
|
||
if (!sDRHHList.Equals(""))
|
||
{ //研发自测:王威 2025/11/02 21:35:46
|
||
SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=sor.XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)");
|
||
SQL.ParamByName("pNewID").Value = VnewID;
|
||
}
|
||
SQL.Add(" ) ");
|
||
SQL.Add(" when matched then update set ");
|
||
SQL.Add(" XLWBBJDMX_CPMLMC = sor.CPMLMC, ");
|
||
SQL.Add(" XLWBBJDMX_ZHCPMLMC = sor.ZHCPMLMC ");
|
||
SQL.ParamByName("pBJDID").Value = sXLBJDID;
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
|
||
dberp.ExecSQL(SQL);
|
||
}
|
||
|
||
//private static void GetSQLAdd(TSQL SQL, Dictionary<string, string> dicLM, string sBJSJLY)
|
||
//{
|
||
// ////1|报价产品、2|电压等级、3|标准、4|计量单位、5|报价数量、6|报价、7|备注、8|型号、9|规格、A|颜色
|
||
// #region 通用格式 与GetParamNameAdd一致
|
||
// SQL.Add("XLWBBJDMX_DYDJID, ");
|
||
// SQL.Add("XLWBBJDMX_XLBZID, ");
|
||
// if (dicLM.ContainsKey("4"))
|
||
// {
|
||
// SQL.Add("XLWBBJDMX_JLDW, ");
|
||
// }
|
||
// if (dicLM.ContainsKey("5"))
|
||
// {
|
||
// SQL.Add("XLWBBJDMX_BJSL, ");
|
||
// }
|
||
// if (dicLM.ContainsKey("6"))
|
||
// {
|
||
// SQL.Add("XLWBBJDMX_CPBJ, ");
|
||
// }
|
||
// if (dicLM.ContainsKey("7"))
|
||
// {
|
||
// SQL.Add("XLWBBJDMX_BZ, ");
|
||
// }
|
||
// if (dicLM.ContainsKey("A"))
|
||
// {
|
||
// SQL.Add("XLWBBJDMX_XLYSID, ");
|
||
// }
|
||
// #endregion
|
||
// if (sBJSJLY.Equals("BJCP")
|
||
// || sBJSJLY.Equals("BJTP")
|
||
// || sBJSJLY.Equals("XSHT"))
|
||
// {
|
||
// SQL.Add("XLWBBJDMX_XLXHID, ");
|
||
// SQL.Add("XLWBBJDMX_XLGGID, ");
|
||
// SQL.Add("XLWBBJDMX_BJCP, ");
|
||
|
||
// }
|
||
// else if (sBJSJLY.Equals("BJWL"))
|
||
// {
|
||
// //必须项
|
||
// SQL.Add("XLWBBJDMX_BJCP, ");
|
||
// SQL.Add("XLWBBJDMX_WLID, ");
|
||
// SQL.Add("XLWBBJDMX_XLXHID, ");
|
||
// SQL.Add("XLWBBJDMX_XLGGID, ");
|
||
// SQL.Add("XLWBBJDMX_XLBZID, ");
|
||
// SQL.Add("XLWBBJDMX_DYDJID, ");
|
||
// SQL.Add("XLWBBJDMX_XLYSID, ");
|
||
|
||
// }
|
||
//}
|
||
|
||
|
||
//private static void GetParamNameAdd(TSQL SQL, Dictionary<string, string> dicLM, DataSet dsNR, int i, string sBJSJLY,
|
||
// string sDefaultXLBZID, Dictionary<string, string> dicXLBZID, Dictionary<string, string> dicXLYS, CMISproSession tSession, string sXLJGU007)
|
||
//{
|
||
// ////1|报价产品、2|电压等级、3|标准、4|计量单位、5|报价数量、6|报价、7|备注、8|型号、9|规格、A|颜色
|
||
// string sXLXHID = "";
|
||
// string sXLGGID = "";
|
||
// string sDYDJID = "";
|
||
// string sXLYSID = "";
|
||
// string sBJCP = "";
|
||
|
||
// #region 通用格式
|
||
// if (dicLM.ContainsKey("2"))
|
||
// {
|
||
// SQL.Add(":XLWBBJDMX_DYDJID, ");
|
||
// if (dsNR.Tables[0].Rows[i][String.Format("XLWBBJDNR_LMNR{0}", dicLM["2"])].ToString().Trim().Equals(""))
|
||
// {
|
||
// SQL.ParamByName("XLWBBJDMX_DYDJID").Value = " ";
|
||
// }
|
||
// else
|
||
// {
|
||
// sDYDJID = XLBJDUtils.GetStaDYDJID(dsNR.Tables[0].Rows[i][String.Format("XLWBBJDNR_LMNR{0}", dicLM["2"])].ToString().Trim());
|
||
// SQL.ParamByName("XLWBBJDMX_DYDJID").Value = sDYDJID;
|
||
// }
|
||
// }
|
||
// else
|
||
// {
|
||
// SQL.Add(":XLWBBJDMX_DYDJID, ");
|
||
// SQL.ParamByName("XLWBBJDMX_DYDJID").Value = " ";
|
||
// }
|
||
|
||
// if (dicLM.ContainsKey("3"))
|
||
// {
|
||
// SQL.Add(":XLWBBJDMX_XLBZID, ");
|
||
// SQL.ParamByName("XLWBBJDMX_XLBZID").Value = XLBJDUtils.GetBZXLZBZID(
|
||
// dsNR.Tables[0].Rows[i][String.Format("XLWBBJDNR_LMNR{0}", dicLM["3"])].ToString().Trim(),
|
||
// sDefaultXLBZID,
|
||
// dicXLBZID);
|
||
// }
|
||
// else
|
||
// {
|
||
// SQL.Add(":XLWBBJDMX_XLBZID, ");
|
||
// SQL.ParamByName("XLWBBJDMX_XLBZID").Value = "";
|
||
// }
|
||
|
||
// if (dicLM.ContainsKey("4"))
|
||
// {
|
||
// SQL.Add(":XLWBBJDMX_JLDW, ");
|
||
// if (dsNR.Tables[0].Rows[i][String.Format("XLWBBJDNR_LMNR{0}", dicLM["4"])].ToString().Trim().Equals(""))
|
||
// {
|
||
// SQL.ParamByName("XLWBBJDMX_JLDW").Value = tSession.GetOption(100860000, "BJU003");
|
||
// }
|
||
// else
|
||
// {
|
||
// SQL.ParamByName("XLWBBJDMX_JLDW").Value = dsNR.Tables[0].Rows[i][String.Format("XLWBBJDNR_LMNR{0}", dicLM["4"])].ToString().Trim();
|
||
// }
|
||
// }
|
||
// if (dicLM.ContainsKey("5"))
|
||
// {
|
||
// SQL.Add(":XLWBBJDMX_BJSL, ");
|
||
// SQL.ParamByName("XLWBBJDMX_BJSL").Value = CMISproConvert.StrToFloat(dsNR.Tables[0].Rows[i][String.Format("XLWBBJDNR_LMNR{0}", dicLM["5"])].ToString().Trim());
|
||
|
||
// }
|
||
// if (dicLM.ContainsKey("6"))
|
||
// {
|
||
// SQL.Add(":XLWBBJDMX_CPBJ, ");
|
||
// SQL.ParamByName("XLWBBJDMX_CPBJ").Value = CMISproConvert.StrToFloat(dsNR.Tables[0].Rows[i][String.Format("XLWBBJDNR_LMNR{0}", dicLM["6"])].ToString().Trim());
|
||
|
||
|
||
// }
|
||
// if (dicLM.ContainsKey("7"))
|
||
// {
|
||
// SQL.Add(":XLWBBJDMX_BZ, ");
|
||
// SQL.ParamByName("XLWBBJDMX_BZ").Value = dsNR.Tables[0].Rows[i][String.Format("XLWBBJDNR_LMNR{0}", dicLM["7"])].ToString().Trim();
|
||
|
||
// }
|
||
// if (dicLM.ContainsKey("A"))
|
||
// {
|
||
// SQL.Add(":XLWBBJDMX_XLYSID, ");
|
||
// if (dsNR.Tables[0].Rows[i][String.Format("XLWBBJDNR_LMNR{0}", dicLM["A"])].ToString().Trim().Equals(""))
|
||
// {
|
||
// SQL.ParamByName("XLWBBJDMX_XLYSID").Value = " ";
|
||
// }
|
||
// else
|
||
// {
|
||
// sXLYSID = XLBJDUtils.GetBZXLYSID(dsNR.Tables[0].Rows[i][String.Format("XLWBBJDNR_LMNR{0}", dicLM["A"])].ToString().Trim(), dicXLYS);
|
||
// SQL.ParamByName("XLWBBJDMX_XLYSID").Value = sXLYSID;
|
||
// }
|
||
|
||
// }
|
||
// #endregion
|
||
// //报价产品、报价图片、销售合同一致
|
||
// if (sBJSJLY.Equals("BJCP")
|
||
// || sBJSJLY.Equals("BJTP")
|
||
// || sBJSJLY.Equals("XSHT"))
|
||
// {
|
||
// if (dicLM.ContainsKey("8"))
|
||
// {
|
||
// sXLXHID = dsNR.Tables[0].Rows[i][String.Format("XLWBBJDNR_LMNR{0}", dicLM["8"])].ToString().Trim();
|
||
// SQL.Add(":XLWBBJDMX_XLXHID, ");
|
||
// SQL.ParamByName("XLWBBJDMX_XLXHID").Value = sXLXHID.ToUpper();//型号控制大写
|
||
// }
|
||
// else
|
||
// {
|
||
// SQL.Add(":XLWBBJDMX_XLXHID, ");
|
||
// SQL.ParamByName("XLWBBJDMX_XLXHID").Value = "";
|
||
// }
|
||
// if (dicLM.ContainsKey("9"))
|
||
// {
|
||
// sXLGGID = dsNR.Tables[0].Rows[i][String.Format("XLWBBJDNR_LMNR{0}", dicLM["9"])].ToString().Trim();
|
||
// SQL.Add(":XLWBBJDMX_XLGGID, ");
|
||
// SQL.ParamByName("XLWBBJDMX_XLGGID").Value = sXLGGID;
|
||
// }
|
||
// else
|
||
// {
|
||
// SQL.Add(":XLWBBJDMX_XLGGID, ");
|
||
// SQL.ParamByName("XLWBBJDMX_XLGGID").Value = "";
|
||
// }
|
||
// if (dicLM.ContainsKey("1"))
|
||
// {
|
||
// SQL.Add(" :XLWBBJDMX_BJCP, ");
|
||
// sBJCP = dsNR.Tables[0].Rows[i][String.Format("XLWBBJDNR_LMNR{0}", dicLM["1"])].ToString().Trim();
|
||
// SQL.ParamByName("XLWBBJDMX_BJCP").Value = sBJCP;
|
||
// }
|
||
// else
|
||
// {
|
||
// SQL.Add(" :XLWBBJDMX_BJCP, ");
|
||
// SQL.ParamByName("XLWBBJDMX_BJCP").Value = "";
|
||
// }
|
||
// }
|
||
// else if (sBJSJLY.Equals("BJWL"))
|
||
// {
|
||
// sXLXHID = dsNR.Tables[0].Rows[i][String.Format("XLXLB_XLXHID")].ToString().Trim();
|
||
// sXLGGID = dsNR.Tables[0].Rows[i][String.Format("XLXLB_XLGGID")].ToString().Trim();
|
||
// sDYDJID = dsNR.Tables[0].Rows[i][String.Format("XLXLB_DYDJID")].ToString().Trim();
|
||
|
||
// SQL.Add(":XLWBBJDMX_BJCP, ");
|
||
// SQL.ParamByName("XLWBBJDMX_BJCP").Value = XLBJDUtils.GroupBJCPXX(sXLXHID, sXLGGID, sDYDJID);
|
||
|
||
// SQL.Add(":XLWBBJDMX_WLID, ");
|
||
// SQL.ParamByName("XLWBBJDMX_WLID").Value = dsNR.Tables[0].Rows[i][String.Format("XLWBBJDNR_LMNR01")].ToString().Trim();
|
||
|
||
|
||
// SQL.Add(":XLWBBJDMX_XLXHID, ");
|
||
// SQL.ParamByName("XLWBBJDMX_XLXHID").Value = sXLXHID.ToUpper();//型号控制大写
|
||
|
||
// SQL.Add(":XLWBBJDMX_XLGGID, ");
|
||
// SQL.ParamByName("XLWBBJDMX_XLGGID").Value = XLBJDUtils.GetStaXLGGID(sXLGGID, sXLJGU007);
|
||
|
||
// SQL.Add(":XLWBBJDMX_XLBZID, ");
|
||
// SQL.ParamByName("XLWBBJDMX_XLBZID").Value = dsNR.Tables[0].Rows[i][String.Format("XLXLB_XLBZID")].ToString().Trim();
|
||
|
||
// SQL.Add(":XLWBBJDMX_DYDJID, ");
|
||
// SQL.ParamByName("XLWBBJDMX_DYDJID").Value = sDYDJID;
|
||
|
||
// SQL.Add(":XLWBBJDMX_XLYSID, ");
|
||
// SQL.ParamByName("XLWBBJDMX_XLYSID").Value = dsNR.Tables[0].Rows[i][String.Format("XLXLB_XLYSID")].ToString().Trim();
|
||
// }
|
||
|
||
//}
|
||
|
||
|
||
//更新标准字段
|
||
public static void ConvertWBBJDMX_XLBZID(TDatabase dberp, TSQL SQL, string sWBBJDID, string sXLBJDID, string sDateTime, string sGH)
|
||
{
|
||
string sDefaultXLBZID = XLBJDUtils.GetDefaultXLBZID();
|
||
|
||
Dictionary<string, string> dicDRMXBZ = new Dictionary<string, string>();
|
||
dicDRMXBZ.Clear();
|
||
SQL.Clear();
|
||
SQL.Add("select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ where 1 = 1 ");
|
||
DataSet dsXLBZ = dberp.OpenDataSet(SQL);
|
||
if (dsXLBZ.Tables[0].Rows.Count > 0)
|
||
{
|
||
for (int i = 0; i < dsXLBZ.Tables[0].Rows.Count; i++)
|
||
{
|
||
dicDRMXBZ.Add(dsXLBZ.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim(), dsXLBZ.Tables[0].Rows[i]["XLBZ_XLBZLXMC"].ToString().Trim());
|
||
}
|
||
}
|
||
|
||
string sTemp = "";
|
||
SQL.Clear();
|
||
SQL.Add(" select XLWBBJDMX_BJDID,XLWBBJDMX_WBBJDID,XLWBBJDMX_DRHH, ");
|
||
SQL.Add(" XLWBBJDMX_BJCP,XLWBBJDMX_DYDJID,XLWBBJDMX_XLBZID,XLWBBJDMX_JLDW,XLWBBJDMX_BJSL,XLWBBJDMX_CPBJ,XLWBBJDMX_BZ,XLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID, ");
|
||
SQL.Add(" XLWBBJDMX_WHR,XLWBBJDMX_WHRID,XLWBBJDMX_WHSJ ");
|
||
SQL.Add(" from XLWBBJDMX ");
|
||
SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID ");
|
||
SQL.Add(" and XLWBBJDMX_WHRID =:pXLWBBJDMX_WHRID and XLWBBJDMX_WHSJ=:pXLWBBJDMX_WHSJ ");
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pBJDID").Value = sXLBJDID;
|
||
SQL.ParamByName("pXLWBBJDMX_WHRID").Value = sGH;
|
||
SQL.ParamByName("pXLWBBJDMX_WHSJ").Value = CMISproConvert.StrToDateTime(sDateTime);
|
||
DataSet ds = dberp.OpenDataSet(SQL);
|
||
if (ds.Tables[0].Rows.Count > 0)
|
||
{
|
||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||
{
|
||
if (!ds.Tables[0].Rows[i]["XLWBBJDMX_XLBZID"].ToString().Trim().Equals(""))
|
||
{
|
||
sTemp = XLBJDUtils.GetBZXLZBZID(ds.Tables[0].Rows[i]["XLWBBJDMX_XLBZID"].ToString().Trim(), sDefaultXLBZID, dicDRMXBZ);
|
||
SQL.Clear();
|
||
SQL.Add("update XLWBBJDMX set XLWBBJDMX_XLBZID = :pXLWBBJDMX_XLBZID ");
|
||
SQL.Add(" where 1= 1 ");
|
||
SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID ");
|
||
SQL.Add(" and XLWBBJDMX_DRHH=:pDRHH ");
|
||
SQL.ParamByName("pXLWBBJDMX_XLBZID").Value = sTemp.Equals("") ? " " : sTemp;
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pBJDID").Value = sXLBJDID;
|
||
SQL.ParamByName("pDRHH").Value = ds.Tables[0].Rows[i]["XLWBBJDMX_DRHH"].ToString().Trim();
|
||
dberp.ExecSQL(SQL);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
public static void Reimport(string sBJU002, string sBJU003,string sBJU018, string sBJLY, string sBJFLID, string sBJDHQLY, string sBJRQ, string sJGBID, string sJGCIDS, string sXSQYID, string sHSBZ,
|
||
string sTBJCLID, string sLBJCLID, string sTJ, string sLJ, string sNeedUpdBJDHQCLCB, string sJCLLX, string sLJJCLLX, string sBJLJJCLLX, string sPJLX, string sFKQXNR, string sSYDWID, string sCPBJMRXSWS,
|
||
string sWBBJDID, string sSELBJDID, string sBJDID, string sBJSJLY, CMISproSession tSession, ref string sMsg)
|
||
{
|
||
int tmpXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002);
|
||
if (tmpXSWS < 0)
|
||
tmpXSWS = 0;
|
||
else if (tmpXSWS > 8)
|
||
tmpXSWS = 8;
|
||
|
||
bool bNeedUp = false;
|
||
double fBJSL = 0.0;
|
||
Dictionary<int, double> dicUpdCPBJ = new Dictionary<int, double>();
|
||
dicUpdCPBJ.Clear();
|
||
string sBJDXHList = string.Empty;
|
||
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL sSQL = new TSQL(dberp);
|
||
sSQL.Clear();
|
||
sSQL.Add(" SELECT XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_WBBJDID, ");
|
||
sSQL.Add(" XLWBBJDMX_WBBJDID,XLWBBJDMX_DRHH,XLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID,XLWBBJDMX_XLBZID,XLWBBJDMX_DYDJID, ");
|
||
sSQL.Add(" XLWBBJDMX_BJCP,XLWBBJDMX_JLDW,XLWBBJDMX_BJSL,XLWBBJDMX_CPBJ,XLWBBJDMX_XLYSID ");
|
||
sSQL.Add(" FROM XLXSBJDMX ");
|
||
sSQL.Add(" LEFT JOIN XLWBBJDMX ON XLWBBJDMX_WBBJDID = XLXSBJDMX_WBBJDID AND XLWBBJDMX_DRHH = XLXSBJDMX_DRHH ");
|
||
sSQL.Add(" where 1 = 1 and exists( select 1 from XLWBBJDMX where 1 = 1 and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pSELBJDID ");
|
||
sSQL.Add(" and XLXSBJDMX_WBBJDID = XLWBBJDMX_WBBJDID AND XLXSBJDMX_DRHH = XLWBBJDMX_DRHH)");
|
||
sSQL.Add(" and XLXSBJDMX_BJDID =:pBJDID");
|
||
sSQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
sSQL.ParamByName("pSELBJDID").Value = sSELBJDID;
|
||
sSQL.ParamByName("pBJDID").Value = sBJDID;
|
||
DataSet ds = dberp.OpenDataSet(sSQL);
|
||
if (ds.Tables[0].Rows.Count > 0)
|
||
{
|
||
try
|
||
{
|
||
string sXLXHID = "", sXLYSID = "", sXLGGID = "", sST = "", sDYDJ = "";
|
||
string sJLDW = "";//计量单位
|
||
string sBJCP = "";
|
||
double sCBPJ = 0.0;
|
||
int iXH = 0;
|
||
dberp.BeginTrans();
|
||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||
{
|
||
sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim();
|
||
sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim();
|
||
sJLDW = ds.Tables[0].Rows[i]["XLWBBJDMX_JLDW"].ToString().Trim();
|
||
if (sJLDW.Equals(""))
|
||
sJLDW = sBJU003;
|
||
if (sXLXHID.Equals("") || sXLGGID.Equals(""))
|
||
continue;
|
||
sSQL.Clear();
|
||
sSQL.Add(" update XLXSBJDMX set ");
|
||
sSQL.Add(" XLXSBJDMX_XLXHID=:XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID=:XLXSBJDMX_XLGGID,XLXSBJDMX_XDXLXHID=:XLXSBJDMX_XLXHID,XLXSBJDMX_XDXLBZID=:XLXSBJDMX_XLBZID, ");
|
||
sSQL.Add(" XLXSBJDMX_XLBZID=:XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID=:XLXSBJDMX_DYDJID,XLXSBJDMX_XLYSID=:XLXSBJDMX_XLYSID,XLXSBJDMX_BJCP=:XLXSBJDMX_BJCP,XLXSBJDMX_WGCPBZ=:XLXSBJDMX_WGCPBZ, ");
|
||
sSQL.Add(" XLXSBJDMX_JLDW=:XLXSBJDMX_JLDW,XLXSBJDMX_BJSL=:XLXSBJDMX_BJSL,XLXSBJDMX_TZQCPBJ=:XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ=:XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ=:XLXSBJDMX_CPBJ, ");
|
||
sSQL.Add(" XLXSBJDMX_JGBJJ=:XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB=:XLXSBJDMX_CLCB, XLXSBJDMX_JGBBJ=:XLXSBJDMX_JGBBJ,XLXSBJDMX_JGBBJGXSJ=:XLXSBJDMX_JGBBJGXSJ,");
|
||
sSQL.Add(" XLXSBJDMX_WHR=:XLXSBJDMX_WHR,XLXSBJDMX_WHRID=:XLXSBJDMX_WHRID,XLXSBJDMX_WHSJ=:XLXSBJDMX_WHSJ,XLXSBJDMX_JGFBZ=:XLXSBJDMX_JGFBZ,");
|
||
sSQL.Add(" XLXSBJDMX_BJJE=:XLXSBJDMX_BJJE,XLXSBJDMX_TZQBJJE=:XLXSBJDMX_TZQBJJE,XLXSBJDMX_JGBBJJCE=:XLXSBJDMX_JGBBJJCE,XLXSBJDMX_JGBBJJCL=:XLXSBJDMX_JGBBJJCL,XLXSBJDMX_CLZL=:XLXSBJDMX_CLZL,");
|
||
sSQL.Add(" XLXSBJDMX_BJDHQCLCB=:XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_BJDHQCLCBTZ='N',XLXSBJDMX_CLCBJCL=:XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL=:XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_BZ=:XLXSBJDMX_BZ ");
|
||
sSQL.Add(" where XLXSBJDMX_BJDID=:XLXSBJDMX_BJDID and XLXSBJDMX_XH=:XLXSBJDMX_XH ");
|
||
|
||
|
||
iXH = CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim());
|
||
sBJDXHList += iXH.ToString() + ",";
|
||
sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim();
|
||
sXLYSID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLYSID"].ToString().Trim();
|
||
sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim();
|
||
sST = ds.Tables[0].Rows[i]["XLWBBJDMX_XLBZID"].ToString().Trim();
|
||
sDYDJ = ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim().Replace('K', 'k').Replace('v', 'V');
|
||
sCBPJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLWBBJDMX_CPBJ"].ToString().Trim());
|
||
if (sCBPJ != 0)
|
||
{
|
||
dicUpdCPBJ.Add(iXH, sCBPJ);
|
||
}
|
||
double bCLZL = 0.0;// NumberUtils.RoundX(CMISproConvert.StrToFloat(ContentGrid.DataKeys[int.Parse(sRowIndexs[i])]["XLXSCLQD_CLZL"].ToString().Trim()), 3);
|
||
double bJJ = 0.0;//基价
|
||
double bCPJJ = 0.0;//表价
|
||
double bCLCB = 0.0;//价格表行情料价
|
||
double bBJDHQCLCB = 0.0;//报价单行情料价
|
||
bool JgIsZero = false;//是否存在有材料用量、无材料价格的情况
|
||
|
||
string sJGBJLDW = XLBJDUtils.GetJGBJLDW(sJGBID, sXLXHID, sXLGGID, sST, sDYDJ, sBJU003, sBJU018);
|
||
string sJGBJSDW = XLBJDUtils.GetsJSDW(sJGBJLDW, sBJU003);
|
||
if (sJGBJLDW.ToUpper().Equals("M") || sJGBJLDW.ToUpper().Equals("KM") || sJGBJLDW.ToUpper().Equals("米") || sJGBJLDW.ToUpper().Equals("千米"))
|
||
sSQL.ParamByName("XLXSBJDMX_JLDW").Value = sJLDW;
|
||
else
|
||
{
|
||
sSQL.ParamByName("XLXSBJDMX_JLDW").Value = sJGBJLDW;
|
||
sJLDW = sJGBJLDW;
|
||
}
|
||
double dBJDJLDWHSBL = 1;
|
||
string sWGCPBZ = "N";
|
||
string sJGFBZ = "N";
|
||
if (XLBJDUtils.IsWGCP(sXLXHID, sXLGGID, sST, sDYDJ))
|
||
sWGCPBZ = "Y";
|
||
if (XLBJDUtils.IsJGFJGBMX(sBJRQ, sXLXHID, sXLGGID, sST, sDYDJ))
|
||
{
|
||
sJGFBZ = "Y";
|
||
double dJGFJJ = 0;
|
||
double dJGFBJ = 0;
|
||
string sJGFJLDW = "";
|
||
XLBJDUtils.GetJGBJJ_JGF(sBJRQ, sXLXHID, sXLGGID, sST, sDYDJ, sHSBZ.Equals("Y"), sBJU018, ref dJGFJJ, ref dJGFBJ, ref sJGFJLDW);
|
||
//M、KM、米、千米、KG、T、千克、公斤、吨
|
||
if (XLBJDUtils.sJCJLDWList.IndexOf(sJGFJLDW.ToUpper()) >= 0
|
||
&& XLBJDUtils.sJCJLDWList.IndexOf(sJLDW.ToUpper()) >= 0)
|
||
{
|
||
dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGFJLDW, sJLDW, sBJU003, sXLXHID, sXLGGID, sST, sDYDJ);
|
||
}
|
||
else
|
||
{
|
||
dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGFJLDW, sJLDW);
|
||
}
|
||
bCPJJ = dJGFBJ;
|
||
bJJ = dJGFJJ;
|
||
bCLCB = dJGFJJ;
|
||
bBJDHQCLCB = dJGFJJ;
|
||
}
|
||
else if (sWGCPBZ.Equals("Y"))
|
||
{
|
||
dBJDJLDWHSBL = 1;
|
||
bCPJJ = 0;
|
||
bJJ = 0;
|
||
bCLCB = 0;
|
||
bBJDHQCLCB = 0;
|
||
}
|
||
else
|
||
{
|
||
if (!XLBJDUtils.IsJGEJGB(sJGBID))//是否表价实时计算价格表
|
||
{
|
||
//M、KM、米、千米、KG、T、千克、公斤、吨
|
||
if (XLBJDUtils.sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0
|
||
&& XLBJDUtils.sJCJLDWList.IndexOf(sJLDW.ToUpper()) >= 0)
|
||
{
|
||
dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGBJSDW, sJLDW, sBJU003, sXLXHID, sXLGGID, sST, sDYDJ);
|
||
}
|
||
else
|
||
{
|
||
dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGBJLDW, sJLDW);
|
||
}
|
||
|
||
string pJGBID = sJGBID;
|
||
string pHSBZ = sHSBZ;
|
||
|
||
string sCPJJ = "";
|
||
string sJJ = "";
|
||
string sCLCB = "";
|
||
if (sBJLY.Equals("D") || sBJLY.Equals("C"))
|
||
{
|
||
XLBJDInfo.GetFromJGB(sXLXHID, sXLGGID, sST, sDYDJ, pJGBID, sJGCIDS, pHSBZ.Equals("Y"), sBJU018, ref sCPJJ, ref sJJ, ref sCLCB);
|
||
if (sJGBJSDW.Equals("Km") || sJGBJSDW.Equals("M"))
|
||
{
|
||
Dictionary<string, double> aryBJHQ = XLBJDUtils.GetCLCB_BJHQ(sBJFLID, pJGBID, sBJRQ, sXLXHID, sXLGGID, sST, sDYDJ, sJGBJLDW, sBJU003);
|
||
JgIsZero = aryBJHQ["JgIsZero"] == 1 ? true : false;
|
||
|
||
if (pHSBZ.Equals("Y"))
|
||
sCLCB = aryBJHQ["CLCB"].ToString();
|
||
else
|
||
sCLCB = aryBJHQ["WSCLCB"].ToString();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (sJGBJSDW.Equals("Km") || sJGBJSDW.Equals("M"))
|
||
{
|
||
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJFLBJRHQCL_BJCLID from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID='{0}'",
|
||
sBJFLID)))
|
||
{
|
||
if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJGBJLDW.ToUpper()))//若BJU018参数值为Y,且为价格表单位为长度单位,则重新计算成本时,成本的小数位数为XLBJDUtils.JQJSXSWS
|
||
{
|
||
XLBJDUtils.GetFromJGB_BJRHQ(sXLXHID, sXLGGID, sST, sDYDJ, pJGBID, sJGCIDS, sBJRQ, pHSBZ.Equals("Y"), XLBJDUtils.JQJSXSWS.ToString(),
|
||
sBJFLID, sJGBJLDW, sBJU003, ref sCPJJ, ref sJJ, ref sCLCB, ref JgIsZero);
|
||
}
|
||
else
|
||
{
|
||
XLBJDUtils.GetFromJGB_BJRHQ(sXLXHID, sXLGGID, sST, sDYDJ, pJGBID, sJGCIDS, sBJRQ, pHSBZ.Equals("Y"), sBJU002,
|
||
sBJFLID, sJGBJLDW, sBJU003, ref sCPJJ, ref sJJ, ref sCLCB, ref JgIsZero);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
XLBJDInfo.GetFromJGB(sXLXHID, sXLGGID, sST, sDYDJ, pJGBID, sJGCIDS, pHSBZ.Equals("Y"), sBJU018, ref sCPJJ, ref sJJ, ref sCLCB);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
XLBJDInfo.GetFromJGB(sXLXHID, sXLGGID, sST, sDYDJ, pJGBID, sJGCIDS, pHSBZ.Equals("Y"), sBJU018, ref sCPJJ, ref sJJ, ref sCLCB);
|
||
}
|
||
}
|
||
bCPJJ = CMISproConvert.StrToFloat(sCPJJ);
|
||
bJJ = CMISproConvert.StrToFloat(sJJ);
|
||
bCLCB = CMISproConvert.StrToFloat(sCLCB);
|
||
|
||
|
||
if (sBJDHQLY.Trim().Equals("1"))
|
||
{
|
||
if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的报价单行情料价改为负数显示
|
||
bBJDHQCLCB = bCLCB * -1;
|
||
else
|
||
bBJDHQCLCB = bCLCB;
|
||
}
|
||
else
|
||
{
|
||
Dictionary<string, double> aryBJRHQ = XLBJDUtils.GetCLCB_BJRHQ(sBJRQ, sXLXHID, sXLGGID, sST, sDYDJ);
|
||
JgIsZero = aryBJRHQ["JgIsZero"] == 1 ? true : false;
|
||
if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的报价单行情料价改为负数显示
|
||
{
|
||
if (pHSBZ.Equals("Y"))
|
||
bBJDHQCLCB = aryBJRHQ["CLCB"] * -1;
|
||
else
|
||
bBJDHQCLCB = aryBJRHQ["WSCLCB"] * -1;
|
||
}
|
||
else
|
||
{
|
||
if (pHSBZ.Equals("Y"))
|
||
bBJDHQCLCB = aryBJRHQ["CLCB"];
|
||
else
|
||
bBJDHQCLCB = aryBJRHQ["WSCLCB"];
|
||
}
|
||
//统一为价格表计量单位的价格
|
||
double dBJU003_JGB_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJGBJLDW);
|
||
bBJDHQCLCB = bBJDHQCLCB * dBJU003_JGB_JLDWHSBL;
|
||
}
|
||
|
||
if (sNeedUpdBJDHQCLCB.Equals("Y"))
|
||
{
|
||
Dictionary<string, double> aryBJDHQCLCB = XLBJDUtils.GetCLCB_BJDHQ(sBJDID, sBJRQ, sXLXHID, sXLGGID, sST, sDYDJ);
|
||
if (pHSBZ.Equals("Y"))
|
||
bBJDHQCLCB = aryBJDHQCLCB["CLCB"];
|
||
else
|
||
bBJDHQCLCB = aryBJDHQCLCB["WSCLCB"];
|
||
|
||
//统一为价格表计量单位的价格
|
||
double dBJU003_JGB_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJGBJLDW);
|
||
bBJDHQCLCB = bBJDHQCLCB * dBJU003_JGB_JLDWHSBL;
|
||
}
|
||
}
|
||
else//表价实时计算价格表
|
||
{
|
||
//M、KM、米、千米、KG、T、千克、公斤、吨
|
||
if (XLBJDUtils.sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0
|
||
&& XLBJDUtils.sJCJLDWList.IndexOf(sJLDW.ToUpper()) >= 0)
|
||
{
|
||
dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW, sBJU003, sXLXHID, sXLGGID, sST, sDYDJ);
|
||
}
|
||
else
|
||
{
|
||
dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW);
|
||
}
|
||
|
||
string pHSBZ = sHSBZ;
|
||
Dictionary<string, double> dicJGE = XLBJDUtils.GetCLCB_JGE(sBJRQ, sXLXHID, sXLGGID, sST, sDYDJ, sTBJCLID, sLBJCLID, sTJ, sLJ, pHSBZ.Equals("Y"),
|
||
sNeedUpdBJDHQCLCB.Equals("Y"), sBJDID);
|
||
JgIsZero = dicJGE["JgIsZero"] == 1 ? true : false;
|
||
|
||
bCLCB = dicJGE["CLCB"];
|
||
bCPJJ = bCLCB;
|
||
bJJ = bCLCB;
|
||
bBJDHQCLCB = bCLCB;
|
||
}
|
||
}
|
||
|
||
int iXSWS = CMISproConvert.StrToInt(sBJU002);
|
||
if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJGBJLDW.ToUpper()))//若BJU018参数值为Y,且为价格表单位为长度单位,则先换算倍率后再保留小数位数。
|
||
{
|
||
bCPJJ = bCPJJ * dBJDJLDWHSBL;
|
||
bJJ = bJJ * dBJDJLDWHSBL;
|
||
bCLCB = bCLCB * dBJDJLDWHSBL;
|
||
bBJDHQCLCB = bBJDHQCLCB * dBJDJLDWHSBL;
|
||
|
||
|
||
bCPJJ = NumberUtils.RoundX(bCPJJ, iXSWS);
|
||
bJJ = NumberUtils.RoundX(bJJ, iXSWS);
|
||
bCLCB = NumberUtils.RoundX(bCLCB, iXSWS);
|
||
bBJDHQCLCB = NumberUtils.RoundX(bBJDHQCLCB, iXSWS);
|
||
}
|
||
else
|
||
{
|
||
bCPJJ = NumberUtils.RoundX(bCPJJ, iXSWS);
|
||
bJJ = NumberUtils.RoundX(bJJ, iXSWS);
|
||
bCLCB = NumberUtils.RoundX(bCLCB, iXSWS);
|
||
bBJDHQCLCB = NumberUtils.RoundX(bBJDHQCLCB, iXSWS);
|
||
|
||
bCPJJ = bCPJJ * dBJDJLDWHSBL;
|
||
bJJ = bJJ * dBJDJLDWHSBL;
|
||
bCLCB = bCLCB * dBJDJLDWHSBL;
|
||
bBJDHQCLCB = bBJDHQCLCB * dBJDJLDWHSBL;
|
||
}
|
||
|
||
double bCPBJ = bCPJJ;
|
||
|
||
//处理基本信息之外的数据
|
||
sBJCP = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim();
|
||
sDYDJ = sDYDJ.Equals("") ? " " : sDYDJ;
|
||
fBJSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLWBBJDMX_BJSL"].ToString().Trim());
|
||
double dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW);
|
||
bCLZL = fBJSL * XLBJDUtils.GetCLZL(sXLXHID, sXLGGID, sST, sDYDJ) * dBJU003_BJD_JLDWHSBL;
|
||
|
||
double jsBJJE = NumberUtils.RoundX(fBJSL * bCPBJ, 2);
|
||
//利润
|
||
double bLRE = 0.0;
|
||
if (sJCLLX.Equals("1"))//表价价差率公式
|
||
{
|
||
bLRE = NumberUtils.RoundX(bCPBJ * fBJSL, 2) - NumberUtils.RoundX(bCPJJ * fBJSL, 2);
|
||
}
|
||
else if (sJCLLX.Equals("2"))
|
||
{
|
||
bLRE = NumberUtils.RoundX(bCPJJ * fBJSL, 2) - NumberUtils.RoundX(bCPBJ * fBJSL, 2);
|
||
}
|
||
else if (sJCLLX.Equals("4"))
|
||
{
|
||
bLRE = NumberUtils.RoundX(bCPBJ * fBJSL, 2) - NumberUtils.RoundX(bCPJJ * fBJSL, 2);
|
||
}
|
||
|
||
//计算价差率
|
||
double btmpLRE = 0;
|
||
if (sJCLLX.Equals("1"))//表价价差率公式
|
||
btmpLRE = bCPBJ * fBJSL - bCPJJ * fBJSL;
|
||
else if (sJCLLX.Equals("2"))
|
||
btmpLRE = bCPJJ * fBJSL - bCPBJ * fBJSL;
|
||
else if (sJCLLX.Equals("4"))
|
||
btmpLRE = bCPBJ * fBJSL - bCPJJ * fBJSL;
|
||
|
||
double bLRL = 0.0;
|
||
if (sJCLLX.Equals("1"))
|
||
{
|
||
if (bCPBJ != 0 && fBJSL != 0)
|
||
bLRL = NumberUtils.RoundX(btmpLRE * 100 / (bCPBJ * fBJSL), 2);
|
||
}
|
||
else if (sJCLLX.Equals("2"))
|
||
{
|
||
if (bCPJJ != 0 && fBJSL != 0)
|
||
bLRL = NumberUtils.RoundX(btmpLRE * 100 / (bCPJJ * fBJSL), 2);
|
||
}
|
||
else if (sJCLLX.Equals("3"))
|
||
{
|
||
if (bCPBJ != 0)
|
||
bLRL = NumberUtils.RoundX(bCPJJ * 100 / bCPBJ, 2);
|
||
}
|
||
else if (sJCLLX.Equals("4"))
|
||
{
|
||
if (bCPJJ != 0 && fBJSL != 0)
|
||
bLRL = NumberUtils.RoundX(btmpLRE * 100 / (bCPJJ * fBJSL), 2);
|
||
}
|
||
|
||
double bCLCBLRL = 0.0;
|
||
|
||
if (sLJJCLLX.Equals("1"))
|
||
{
|
||
double fCLCBLRE = fBJSL * bCPBJ - fBJSL * bCLCB;
|
||
if (bCPBJ != 0 && fBJSL != 0)
|
||
bCLCBLRL = NumberUtils.RoundX(fCLCBLRE * 100 / (bCPBJ * fBJSL), 2);
|
||
}
|
||
else if (sLJJCLLX.Equals("2"))
|
||
{
|
||
double fCLCBLRE = fBJSL * bCPBJ - fBJSL * bBJDHQCLCB;
|
||
if (bCPBJ != 0 && fBJSL != 0)
|
||
bCLCBLRL = NumberUtils.RoundX(fCLCBLRE * 100 / (bCPBJ * fBJSL), 2);
|
||
}
|
||
else if (sLJJCLLX.Equals("3"))
|
||
{
|
||
double fCLCBLRE = fBJSL * bCPBJ -fBJSL * bBJDHQCLCB;
|
||
if (fBJSL * bBJDHQCLCB != 0)
|
||
bCLCBLRL = NumberUtils.RoundX(fCLCBLRE * 100 / (fBJSL * bBJDHQCLCB), 2);
|
||
}
|
||
else if (sLJJCLLX.Equals("4"))
|
||
{
|
||
double fCLCBLRE = fBJSL * bBJDHQCLCB;
|
||
if (bCPBJ != 0 && fBJSL != 0)
|
||
bCLCBLRL = NumberUtils.RoundX(fCLCBLRE * 100 / (bCPBJ * fBJSL), 2);
|
||
}
|
||
|
||
double dBJLJJCL = 0.0;
|
||
|
||
if (sBJLJJCLLX.Equals("1"))
|
||
{
|
||
if(bCPJJ * fBJSL != 0)
|
||
{
|
||
dBJLJJCL = NumberUtils.RoundX((bCPJJ * fBJSL - fBJSL * bBJDHQCLCB) / NumberUtils.RoundX((bCPJJ * fBJSL),2) * 100, 2);
|
||
}
|
||
}
|
||
|
||
sSQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID;
|
||
sSQL.ParamByName("XLXSBJDMX_XH").Value = iXH;
|
||
sSQL.ParamByName("XLXSBJDMX_XLXHID").Value = sXLXHID;
|
||
sSQL.ParamByName("XLXSBJDMX_XLGGID").Value = sXLGGID;
|
||
sSQL.ParamByName("XLXSBJDMX_XLBZID").Value = sST;
|
||
sSQL.ParamByName("XLXSBJDMX_DYDJID").Value = sDYDJ;
|
||
sSQL.ParamByName("XLXSBJDMX_XLYSID").Value = XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID);
|
||
if (sBJSJLY.Equals("BJWL"))
|
||
{
|
||
if (sBJCP.Equals(""))
|
||
{
|
||
if (sDYDJ.Trim().Equals(""))
|
||
sBJCP = sXLXHID.Trim() + " " + sXLGGID;
|
||
else
|
||
sBJCP = sXLXHID.Trim() + "-" + sDYDJ.Trim() + " " + sXLGGID;
|
||
}
|
||
}
|
||
sSQL.ParamByName("XLXSBJDMX_BJCP").Value = sBJCP;
|
||
sSQL.ParamByName("XLXSBJDMX_BJSL").Value = fBJSL;
|
||
|
||
sSQL.ParamByName("XLXSBJDMX_JGBBJ").Value = bCPJJ;
|
||
sSQL.ParamByName("XLXSBJDMX_JGBBJGXSJ").Value = MISproUtils.GetServerTime();
|
||
sSQL.ParamByName("XLXSBJDMX_TZQCPBJ").Value = bCPBJ;
|
||
sSQL.ParamByName("XLXSBJDMX_TZCPBJ").Value = 0;
|
||
sSQL.ParamByName("XLXSBJDMX_CPBJ").Value = bCPBJ;
|
||
sSQL.ParamByName("XLXSBJDMX_JGBJJ").Value = bJJ;
|
||
sSQL.ParamByName("XLXSBJDMX_CLCB").Value = bCLCB;
|
||
sSQL.ParamByName("XLXSBJDMX_CLZL").Value = bCLZL;
|
||
sSQL.ParamByName("XLXSBJDMX_BJDHQCLCB").Value = bBJDHQCLCB;
|
||
|
||
sSQL.ParamByName("XLXSBJDMX_BJJE").Value = NumberUtils.RoundX(fBJSL * bCPBJ, 2).ToString();
|
||
sSQL.ParamByName("XLXSBJDMX_TZQBJJE").Value = NumberUtils.RoundX(fBJSL * bCPBJ, 2).ToString();
|
||
sSQL.ParamByName("XLXSBJDMX_JGBBJJCE").Value = bLRE;
|
||
sSQL.ParamByName("XLXSBJDMX_JGBBJJCL").Value = bLRL;
|
||
sSQL.ParamByName("XLXSBJDMX_CLCBJCL").Value = bCLCBLRL;
|
||
sSQL.ParamByName("XLXSBJDMX_JGBBJLJJCL").Value = dBJLJJCL;
|
||
|
||
sSQL.ParamByName("XLXSBJDMX_WGCPBZ").Value = sWGCPBZ;
|
||
sSQL.ParamByName("XLXSBJDMX_JGFBZ").Value = sJGFBZ;
|
||
sSQL.ParamByName("XLXSBJDMX_BZ").Value = "";
|
||
sSQL.ParamByName("XLXSBJDMX_WHR").Value = tSession.UserName;
|
||
sSQL.ParamByName("XLXSBJDMX_WHRID").Value = tSession.UserId;
|
||
sSQL.ParamByName("XLXSBJDMX_WHSJ").Value = DateTime.Now;
|
||
dberp.ExecSQL(sSQL);
|
||
|
||
if (XLBJDUtils.IsJGEJGB(sJGBID.Trim()))//是否表价实时计算价格表
|
||
{
|
||
if (!sWGCPBZ.Equals("Y"))
|
||
{
|
||
DataSet dsJGBYZ = new DataSet();
|
||
string sJGBTJYSS = "";
|
||
//记录计算公式
|
||
Dictionary<string, string> dicJGBTZYZGS = new Dictionary<string, string>();
|
||
//记录价格表调价因素相关信息-线缆基本信息
|
||
Dictionary<string, string> dicXLJBXX_JGE = new Dictionary<string, string>();
|
||
XLBJDUtils.GetdsJGBYZ_JGE(sJGBID.Trim(), ref dsJGBYZ);
|
||
sJGBTJYSS = XLBJDUtils.GetJGBTJYSSByBJFLID(sBJFLID);
|
||
if (dsJGBYZ.Tables[0].Rows.Count > 0 && sJGBTJYSS.Equals("1"))
|
||
{
|
||
dicXLJBXX_JGE.Clear();
|
||
dicJGBTZYZGS.Clear();
|
||
dicXLJBXX_JGE.Add("XLXHID", sXLXHID);
|
||
dicXLJBXX_JGE.Add("XLGGID", sXLGGID);
|
||
dicXLJBXX_JGE.Add("XLBZID", sST);
|
||
dicXLJBXX_JGE.Add("DYDJID", sDYDJ);
|
||
dicXLJBXX_JGE.Add("XSWS", tmpXSWS.ToString().Trim());
|
||
dicXLJBXX_JGE.Add("XH", iXH.ToString().Trim());
|
||
dicXLJBXX_JGE.Add("BJDID", sBJDID);
|
||
dicXLJBXX_JGE.Add("BJDJLDWHSBL", dBJDJLDWHSBL.ToString().Trim());
|
||
dicJGBTZYZGS = XLBJDUtils.GetJGBTZYZ_JGE(sJGBID.Trim(), "1", dsJGBYZ, dicXLJBXX_JGE);
|
||
XLBJDUtils.InsertXLXSBJDJJYZ_JGE(dberp, sSQL, dsJGBYZ, dicXLJBXX_JGE, dicJGBTZYZGS);
|
||
XLBJDUtils.UpdateXLXSBJDMX_JGBBJ_JGE(dberp, sSQL, dsJGBYZ, dicXLJBXX_JGE, dicJGBTZYZGS);
|
||
}
|
||
else
|
||
{
|
||
XLBJDUtils.InsertXLXSBJDJJYZ_JGEDef(dberp, sSQL, sBJDID, iXH.ToString().Trim());
|
||
}
|
||
if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示
|
||
{
|
||
dberp.ExecSQL(string.Format(@"update XLXSBJDMX set
|
||
XLXSBJDMX_JGBBJ=ABS(XLXSBJDMX_JGBBJ)*(-1),
|
||
XLXSBJDMX_TZQCPBJ=ABS(XLXSBJDMX_TZQCPBJ)*(-1),
|
||
XLXSBJDMX_TZCPBJ=ABS(XLXSBJDMX_TZCPBJ),
|
||
XLXSBJDMX_CPBJ=ABS(XLXSBJDMX_CPBJ)*(-1),
|
||
XLXSBJDMX_JGBJJ=ABS(XLXSBJDMX_JGBJJ)*(-1),
|
||
XLXSBJDMX_CLCB = ABS(XLXSBJDMX_CLCB)*(-1),
|
||
XLXSBJDMX_BJDHQCLCB = ABS(XLXSBJDMX_BJDHQCLCB)*(-1)
|
||
where XLXSBJDMX_BJDID='{0}' and XLXSBJDMX_XH={1}", sBJDID, iXH));
|
||
}
|
||
}
|
||
else
|
||
{
|
||
XLBJDUtils.InsertXLXSBJDJJYZ_JGEDef(dberp, sSQL, sBJDID, iXH.ToString().Trim());
|
||
}
|
||
}
|
||
|
||
bNeedUp = true;
|
||
//给报价单因子赋默认值
|
||
XLBJDUtils.InsertXLXSBJDYZZ0(dberp, sSQL, sBJFLID, sBJDID, iXH, fBJSL,
|
||
sXLXHID, sXLGGID, sST, sDYDJ, sXSQYID, sPJLX,
|
||
sFKQXNR, sSYDWID, sJLDW, sBJU003, sWGCPBZ, sXLYSID);
|
||
}
|
||
CopyWBBJDYZZToBJDYZZ0(dberp, sSQL, sBJDID, sWBBJDID, sSELBJDID);
|
||
|
||
|
||
XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSBJDMX_Batch(dberp, tSession, sBJDID);
|
||
if (!sBJDXHList.Equals(""))
|
||
{
|
||
XLBJDUtils.UpdateXDXLBZID(dberp, sSQL, sBJDID, sBJDXHList.TrimEnd(','), 0, ref sMsg);
|
||
XLBJDUtils.DeleteBJDCLYLBL(dberp, sBJDID, sBJFLID, sBJDXHList);
|
||
}
|
||
if (bNeedUp)
|
||
{
|
||
//同步报价单明细记录插入XLXSBJDCLCB、XLXSBJDJJYZ
|
||
XLBJDInfo.InsertCLCBandJJYZ(TControlState.ctsEdit, sBJDID, sJGBID, tSession.UserId, tSession.UserName, sBJU003, sHSBZ.Equals("Y"));
|
||
|
||
//使用报价单调价因子重算TZQCPBJ、CPBJ、TZQBJJE、BJJE等
|
||
XLBJDUtils.UpdateBJDMX(dberp, sSQL, sBJFLID, sBJDID, tmpXSWS,
|
||
sJCLLX, sLJJCLLX, sCPBJMRXSWS);
|
||
|
||
|
||
//用报价更新计算出来的报价
|
||
foreach (int iKey in dicUpdCPBJ.Keys)
|
||
{
|
||
string sqlBJJE = "RoundFix(:pUpdCPBJ*XLXSBJDMX_BJSL+XLXSBJDMX_TZBJJE,2)";
|
||
sSQL.Clear();
|
||
sSQL.Add("update XLXSBJDMX set ");
|
||
|
||
sSQL.Add("XLXSBJDMX_BJSDBZ='Y',");//更新报价的同时,需将BJSDBZ字段设置为Y
|
||
sSQL.Add("XLXSBJDMX_CPBJ=:pUpdCPBJ,");
|
||
sSQL.Add("XLXSBJDMX_TZCPBJ=case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*(:pUpdCPBJ-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,");
|
||
sSQL.Add("XLXSBJDMX_TZQBJJE=RoundFix(:pUpdCPBJ*XLXSBJDMX_BJSL,2),");
|
||
sSQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ",");
|
||
sSQL.Add("XLXSBJDMX_TZBJJE=" + sqlBJJE + "-RoundFix(:pUpdCPBJ*XLXSBJDMX_BJSL,2), ");
|
||
if (sJCLLX.Equals("1"))//表价价差率公式
|
||
{
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,");
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), ");
|
||
}
|
||
else if (sJCLLX.Equals("2"))
|
||
{
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,");
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + "," + tmpXSWS + "), ");
|
||
}
|
||
else if (sJCLLX.Equals("3"))
|
||
{
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,");
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCE =0, ");
|
||
}
|
||
else if (sJCLLX.Equals("4"))
|
||
{
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,");
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), ");
|
||
}
|
||
else
|
||
{
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCL=0,");
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCE=0,");
|
||
}
|
||
if (sLJJCLLX.Equals("1"))//料价价差率公式
|
||
{
|
||
sSQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_CLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end");
|
||
}
|
||
else if (sLJJCLLX.Equals("2"))
|
||
{
|
||
sSQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end");
|
||
}
|
||
else if (sLJJCLLX.Equals("3"))
|
||
{
|
||
sSQL.Add("XLXSBJDMX_CLCBJCL =case when XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL),2) end");
|
||
}
|
||
else if (sLJJCLLX.Equals("4"))
|
||
{
|
||
sSQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end");
|
||
}
|
||
else
|
||
{
|
||
sSQL.Add("XLXSBJDMX_CLCBJCL=0");
|
||
}
|
||
if (sBJLJJCLLX.Equals("1"))//表价料价价差率公式
|
||
{
|
||
sSQL.Add(",XLXSBJDMX_JGBBJLJJCL =case XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ when 0 then 0 else RoundFix((XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ - XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/ (XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * 100,2) end");
|
||
}
|
||
else
|
||
{
|
||
sSQL.Add(",XLXSBJDMX_JGBBJLJJCL=0");
|
||
}
|
||
sSQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XH=:pXH");
|
||
sSQL.ParamByName("pUpdCPBJ").Value = NumberUtils.RoundX(dicUpdCPBJ[iKey], tmpXSWS);
|
||
sSQL.ParamByName("pBJDID").Value = sBJDID;
|
||
sSQL.ParamByName("pXH").Value = iKey;
|
||
dberp.ExecSQL(sSQL);
|
||
}
|
||
//同步补充插入XLXSCLQD、XLXSJGBMX中没有的记录
|
||
XLBJDInfo.InsertCLQDorJGBMX(sBJDID, sJGBID, sJGCIDS, tSession);
|
||
}
|
||
sMsg = "导入成功!";
|
||
dberp.CommitTrans();
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
dberp.RollbackTrans();
|
||
sMsg = "导入出现异常情况:" + ex.Message;
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
//获取同一个目录分组号下的外部报价单ID
|
||
public static string GetWBBJDListByMLFZH(string sBJDID, string sMLFZH)
|
||
{
|
||
string sWBBJDIDList = string.Empty;
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL SQL = new TSQL(dberp);
|
||
SQL.Clear();
|
||
SQL.Add(" select XLWBBJDML_WBBJDID from XLWBBJDML where XLWBBJDML_BJDID=:pBJDID and XLWBBJDML_MLFZH=:pMLFZH order by XLWBBJDML_WBBJDID ");
|
||
SQL.ParamByName("pBJDID").Value = sBJDID;
|
||
SQL.ParamByName("pMLFZH").Value = sMLFZH;
|
||
DataSet ds = dberp.OpenDataSet(SQL);
|
||
if (ds.Tables[0].Rows.Count > 0)
|
||
{
|
||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||
sWBBJDIDList += ds.Tables[0].Rows[i][0].ToString().Trim() + ",";
|
||
}
|
||
return sWBBJDIDList.TrimEnd(',');
|
||
|
||
}
|
||
|
||
//去除EXCEL导入最后的无效空行
|
||
public static void DeleteInValidEmptyRow(ref DataSet aDataExcel)
|
||
{
|
||
int dsCount = aDataExcel.Tables[0].Rows.Count;
|
||
for (int r = dsCount - 1; r >= 0; r--)
|
||
{
|
||
bool bEmptyRow = true;
|
||
for (int j = 0; j < aDataExcel.Tables[0].Columns.Count; j++)
|
||
{
|
||
if (!aDataExcel.Tables[0].Rows[r][j].ToString().Trim().Equals(""))
|
||
{
|
||
bEmptyRow = false;
|
||
break;
|
||
}
|
||
}
|
||
if (bEmptyRow)
|
||
{
|
||
aDataExcel.Tables[0].Rows.RemoveAt(r);
|
||
}
|
||
else
|
||
{
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
}
|
||
}
|