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

2754 lines
147 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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_CONTROL;
using GThinking.N_MISPRO;
using GThinking.N_MISPRO.Data;
using GThinking.N_MISPRO.Utility;
using GThinking.N_MODEL.Dialog;
using GThinking.N_WORKFLOW;
using GThinking.N_MISPRO.TableCache;
using GThinking.N_MISPRO.MISPROAS;
using System.Collections;
using GThinking.N_MODEL.ModelBase;
using System.Collections.Generic;
using GThinking.N_PUBLIC;
using System.Text.RegularExpressions;
using System.Text;
using GThinking.N_MISPROAS.SysData;
namespace GThinking.N_XLXSBJ
{
public class XLBJBJBO : BOBase
{
#region 自定义方法
public List<CPYTInfo> GetCPYTInfoList()
{
string sCPMLIDS = "";
string sAPPCJSXFS = GetAPPCJSXFS(ref sCPMLIDS);
List<CPYTInfo> rEntity = new List<CPYTInfo>();
string sSQL = "";
if (sAPPCJSXFS.Equals("1"))
{
sSQL = " select distinct XLCPYT_XSSX,XLXHB_CPYT as XLCPYT_CPYT,XLCPYT_CPYTMC from XLXHB ";
sSQL += " left join XLCPYT on XLCPYT_CPYT = XLXHB_CPYT ";
sSQL += " where ISNULL(XLCPYT_CPYT,' ') <> ' ' order by XLCPYT_XSSX,XLXHB_CPYT ";
}
else
{
sSQL = " select distinct XLXSBJXHML_CPMLID as XLCPYT_CPYT,XLXSCPML_CPMLMC as XLCPYT_CPYTMC from XLXSBJXHML ";
sSQL += " left join XLXSCPML on XLXSCPML_CPMLID = XLXSBJXHML_CPMLID ";
sSQL += " where ISNULL(XLXSCPML_CPMLID,' ') <> ' ' ";
if (!sCPMLIDS.Trim().Equals(""))
{
sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXSCPML_CPMLID", sCPMLIDS);
}
else
{
sSQL += " and XLXSCPML_BJY = 'Y' ";
}
sSQL += " order by XLXSBJXHML_CPMLID ";
}
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(sSQL);
DataSet ds = dberp.OpenDataSet(SQL);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
CPYTInfo info = new CPYTInfo();
info.GetType().GetProperty("XLCPYT_CPYT").SetValue(info, ds.Tables[0].Rows[i]["XLCPYT_CPYT"].ToString().Trim(), null);
info.GetType().GetProperty("XLCPYT_CPYTMC").SetValue(info, ds.Tables[0].Rows[i]["XLCPYT_CPYTMC"].ToString().Trim(), null);
info.GetType().GetProperty("APPCJSXFS").SetValue(info, sAPPCJSXFS, null);
info.GetType().GetProperty("DJBJ").SetValue(info, "N", null);
rEntity.Add(info);
}
return rEntity;
}
public List<XLXHInfo> GetXLXHInfoList(string sCPYT, string sXLXHID, string isMHCX)
{
string sCPMLIDS = "";
string sAPPCJSXFS = GetAPPCJSXFS(ref sCPMLIDS);
List<XLXHInfo> rEntity = new List<XLXHInfo>();
string sSQL = "";
if (sAPPCJSXFS.Equals("1"))
{
sSQL = "select XLXHB_XLXHID, ' ' as XLXSBJXHML_DYDJID,XLXHB_XLXHID as XLXHB_XLXHMC from XLXHB where 1=1 ";
sSQL += " and XLXHB_CPYT='" + sCPYT + "'";
}
else
{
sSQL = " select XLXHB_XLXHID,XLXSBJXHML_DYDJID, case when ISNULL(XLXSBJXHML_DYDJID,' ') = ' ' then XLXHB_XLXHID else rtrim(XLXHB_XLXHID)||'-'|| XLXSBJXHML_DYDJID end as XLXHB_XLXHMC ";
sSQL += " from XLXHB,XLXSBJXHML where XLXSBJXHML_XLXHID=XLXHB_XLXHID and XLXSBJXHML_CPMLID='" + sCPYT + "' ";
}
if (!sXLXHID.Equals(""))
{
if (isMHCX.Equals("Y"))
{
sSQL += " and XLXHB_XLXHID like '%" + sXLXHID + "%'";
}
else
{
sSQL += " and XLXHB_XLXHID = '" + sXLXHID + "'";
}
}
sSQL += " and isnull(XLXHB_TYBZ,'N') <> 'Y' ";
sSQL += " order by XLXHB_XLXHID ";
if (sAPPCJSXFS.Equals("2"))
sSQL += " ,XLXSBJXHML_DYDJID ";
TWorkflow wf = new TWorkflow(tSession, new System.Web.Caching.Cache());
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(sSQL);
DataSet ds = dberp.OpenDataSet(SQL);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
XLXHInfo info = new XLXHInfo();
info.GetType().GetProperty("XLXHB_XLXHID").SetValue(info, ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim(), null);
info.GetType().GetProperty("XLXSBJXHML_DYDJID").SetValue(info, ds.Tables[0].Rows[i]["XLXSBJXHML_DYDJID"].ToString().Trim(), null);
info.GetType().GetProperty("XLXHB_XLXHMC").SetValue(info, ds.Tables[0].Rows[i]["XLXHB_XLXHMC"].ToString().Trim(), null);
rEntity.Add(info);
}
return rEntity;
}
public List<XLGGInfo> GetXLGGInfoList(int iStart, int iNum, string sXLXHID, string sDYDJID, string sXLGGID, string sJGBID, string isMHCX, string sCPML, string sBJFLID, out int iRowCount)
{
int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002"));
if (tmpXSWS < 0)
tmpXSWS = 0;
else if (tmpXSWS > 8)
tmpXSWS = 8;
if (sJGBID.Trim().Equals("DEFAULT"))
{
string[] dicBJFL = GetBJFLlist();
if (dicBJFL.Length > 0)
{
sBJFLID = dicBJFL[0].Split('|')[0];
Dictionary<string, string> dicJGBID = XLBJDUtils.GetJGBIDByXSQYID("手机端价格表报价", sBJFLID, System.DateTime.Now.ToString(), "");
if (dicJGBID.Count > 0)
{
foreach (KeyValuePair<string, string> kvp in dicJGBID)
{
sJGBID = kvp.Key;
break;
}
}
else
sJGBID = "";
}
else
sJGBID = "";
}
iRowCount = 0;
List<XLGGInfo> rEntity = new List<XLGGInfo>();
if (sJGBID.Trim().Equals(""))
return rEntity;
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sCPMLIDS = "";
string sBJRQ = DateTime.Now.ToShortDateString().Trim();
string sJGFID = XLBJDUtils.GetJGFID(sBJRQ);
string sAPPCJSXFS = GetAPPCJSXFS(ref sCPMLIDS);
string sFields = @"JGBID,XLXHID,DYDJID,XLGGID,CPJJ,XLBZID,XLBZMC,XSTLJ,TBJCLID,LBJCLID,TJ,LJ,WGCP";
string sSQL = "";
int top = iStart + iNum;
string sCunt = "select count(1) ";
string sculom = "select top " + top.ToString().Trim() + " JGBID, XLXHID, DYDJID, XLGGID, CPJJ,XLBZID,XLBZMC,XSTLJ,TBJCLID,LBJCLID,TJ,LJ,WGCP ";
string sOrder = "";
if (!XLBJDUtils.IsJGEJGB(sJGBID))
{
sSQL += " from ( select XLXSJGBMX_JGBID as JGBID, XLXSJGBMX_XLXHID as XLXHID, XLXSJGBMX_DYDJID as DYDJID, XLXSJGBMX_XLGGID as XLGGID, RoundFix(XLXSJGBMX_HSBJ," + tmpXSWS + ") as CPJJ,XLXSJGBMX_XLBZID as XLBZID, XLBZ_XLBZLXMC as XLBZMC,'N' as XSTLJ,' ' as TBJCLID,' ' as LBJCLID,'0' as TJ,'0' as LJ,WGCP,XLXSJGBMX_XSXH,PX,XLGGB_XH as minXH ";
sSQL += " from ( ";
sSQL += " select XLXSJGBMX_JGBID,XLXSJGBMX_XH,XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_JLDW,XLXSJGBMX_XSXH,1 as PX,'Y' as WGCP ";
sSQL += " from XLXSJGBMX left join XLXSBJXLGGTHB XLXSBJXLGGTHB_BJGB on XLXSBJXLGGTHB_BJGB.XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID where 1=1 and XLXSJGBMX_JGBID='" + sJGFID + "' ";
sSQL += " union all ";
sSQL += " select XLXSJGBMX_JGBID,XLXSJGBMX_XH,XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_JLDW,XLXSJGBMX_XSXH,2 as PX,'N' as WGCP ";
sSQL += " from XLXSJGBMX left join XLXSBJXLGGTHB XLXSBJXLGGTHB_CJGB on XLXSBJXLGGTHB_CJGB.XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID where 1=1 ";
SQL.Clear();
SQL.Add("select XLXSCPML_CPMLLX,XLXSJGB_JGCIDS,XLXSJGB_BJLY,XLXSJGB_YXQS,XLXSJGB_YXQZ,XLXSJGB_JGBMC ");
SQL.Add("from XLXSJGB ");
SQL.Add("left join XLXSCPML on XLXSCPML_CPMLID=XLXSJGB_CPMLID ");
SQL.Add("where XLXSJGB_MXBH='JGB' and XLXSJGB_JGBID=:pJGBID ");
SQL.ParamByName("pJGBID").Value = sJGBID;
DataSet dsJGB = dberp.OpenDataSet(SQL);
if (dsJGB.Tables[0].Rows.Count > 0)
{
//Y|组合产品目录、N|单一产品目录
string sCPMLLX = dsJGB.Tables[0].Rows[0]["XLXSCPML_CPMLLX"].ToString().Trim();
string sJGCIDS = dsJGB.Tables[0].Rows[0]["XLXSJGB_JGCIDS"].ToString().Trim();
if (sCPMLLX.Equals("Y"))//组合产品目录价格表
{
sSQL += (" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGCIDS));
}
else
{
sSQL += (" and XLXSJGBMX_JGBID='" + sJGBID + "'");
}
}
sSQL += " and not exists(select 1 from XLXSJGBMX B left join XLXSBJXLGGTHB XLXSBJXLGGTHB_BJGB on XLXSBJXLGGTHB_BJGB.XLXSBJXLGGTHB_XLGGID = B.XLXSJGBMX_XLGGID where B.XLXSJGBMX_JGBID='" + sJGFID + "' ";
sSQL += " and B.XLXSJGBMX_XLXHID = XLXSJGBMX.XLXSJGBMX_XLXHID and XLXSBJXLGGTHB_BJGB.XLXSBJXLGGTHB_XLGGIDCH = XLXSBJXLGGTHB_CJGB.XLXSBJXLGGTHB_XLGGIDCH ";
sSQL += " and B.XLXSJGBMX_XLBZID = XLXSJGBMX.XLXSJGBMX_XLBZID and B.XLXSJGBMX_DYDJID = XLXSJGBMX.XLXSJGBMX_DYDJID ) ";
sSQL += " ) C ";
sSQL += " left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID";
sSQL += " left join XLBZ on XLBZ_XLBZID = XLXSJGBMX_XLBZID ";
sSQL += " left join XLXHB on XLXHB_XLXHID = XLXSCLQD_XLXHID ";
sSQL += " left join XLXSBJXLGGTHB XLXSBJXLGGTHB_CLQD on XLXSBJXLGGTHB_CLQD.XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID ";
sSQL += " left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_CLQD.XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') ";
if (sAPPCJSXFS.Equals("2"))
{
sSQL += " left join XLXSBJXHML a on a.XLXSBJXHML_XLXHID=XLXSJGBMX_XLXHID and isnull(a.XLXSBJXHML_DYDJID,' ')=' ' ";
sSQL += " left join XLXSBJXHML b on b.XLXSBJXHML_XLXHID=XLXSJGBMX_XLXHID and isnull(b.XLXSBJXHML_DYDJID,' ') = isnull(XLXSJGBMX_DYDJID, ' ') ";
}
if (isMHCX.Equals("Y"))
{
sSQL += " where XLXSJGBMX_XLXHID like '%" + sXLXHID + "%' ";
if (!sXLGGID.Equals(""))
{
sSQL += " and (XLXSJGBMX_XLGGID like '%" + sXLGGID + "%' or XLXSJGBMX_XLGGID like '%" + sXLGGID.Replace("*", "×") + "%' or XLXSJGBMX_XLGGID like '%" + sXLGGID.Replace("×", "*") + "%')";
}
}
else
{
sSQL += " where XLXSJGBMX_XLXHID = '" + sXLXHID + "' ";
if (!sXLGGID.Equals(""))
{
sSQL += " and (XLXSJGBMX_XLGGID = '" + sXLGGID + "' or XLXSJGBMX_XLGGID = '" + sXLGGID.Replace("*", "×") + "' or XLXSJGBMX_XLGGID = '" + sXLGGID.Replace("×", "*") + "')";
}
}
if (sAPPCJSXFS.Equals("2"))
{
if (!sDYDJID.Trim().Equals(""))
{
sSQL += " and ISNULL(XLXSJGBMX_DYDJID,' ') = '" + sDYDJID + "' ";
}
if (!sCPML.Trim().Equals(""))
{
sSQL += " and (case when isnull(b.XLXSBJXHML_CPMLID,' ')<>' ' then b.XLXSBJXHML_CPMLID else isnull(a.XLXSBJXHML_CPMLID,' ') end) = '" + sCPML + "' ";
}
if (!sCPMLIDS.Trim().Equals(""))
{
sCPMLIDS = SetStr(sCPMLIDS);
sSQL += " and (case when isnull(b.XLXSBJXHML_CPMLID,' ')<>' ' then b.XLXSBJXHML_CPMLID else isnull(a.XLXSBJXHML_CPMLID,' ') end) in " + sCPMLIDS + " ";
}
}
}
else
{
sSQL += "from ( select '" + sJGBID + "' as JGBID, XLXSCLQD_XLXHID as XLXHID, XLXSCLQD_DYDJID as DYDJID, XLXSCLQD_XLGGID as XLGGID, RoundFix(XLXSCLQD_HSBJ," + tmpXSWS + ") as CPJJ,XLXSCLQD_XLBZID as XLBZID, XLBZ_XLBZLXMC as XLBZMC,'Y' as XSTLJ,' ' as TBJCLID,' ' as LBJCLID,'0' as TJ,'0' as LJ,WGCP,PX,XLGGB_XH as minXH ";
sSQL +=" from ( ";
sSQL +=" select XLXSJGBMX_XH as XLXSCLQD_XH,XLXSJGBMX_XLXHID as XLXSCLQD_XLXHID,XLXSJGBMX_XLGGID as XLXSCLQD_XLGGID, ";
sSQL +=" XLXSJGBMX_XLBZID as XLXSCLQD_XLBZID,XLXSJGBMX_DYDJID as XLXSCLQD_DYDJID, ";
sSQL += " XLXSJGBMX_HSBJ as XLXSCLQD_HSBJ,XLXSJGBMX_WSBJ as XLXSCLQD_WSBJ,1 as PX,'Y' as WGCP ";
sSQL +=" from XLXSJGBMX ";
sSQL += " where 1=1 and XLXSJGBMX_JGBID='" + sJGFID + "' ";
sSQL +=" union all ";
sSQL += " select XLXSCLQD_XH,XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID, 0 as XLXSCLQD_HSBJ, 0 as XLXSCLQD_WSBJ,2 as PX,'N' as WGCP ";
sSQL +=" from XLXSCLQD ";
sSQL += " left join XLXSBJXLGGTHB XLXSBJXLGGTHB_CLQD on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID ";
sSQL +=" where 1=1 and isnull(XLXSCLQD_WPID,'ZZZZ') = 'ZZZZ' ";
sSQL += " and not exists(select 1 from XLXSJGBMX B left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB on XLXSBJXLGGTHB_XLGGID = B.XLXSJGBMX_XLGGID where B.XLXSJGBMX_JGBID='" + sJGFID + "'";
sSQL += " and B.XLXSJGBMX_XLXHID = XLXSCLQD_XLXHID and XLXSBJXLGGTHB_JGB.XLXSBJXLGGTHB_XLGGIDCH = XLXSBJXLGGTHB_CLQD.XLXSBJXLGGTHB_XLGGIDCH ";
sSQL +=" and B.XLXSJGBMX_XLBZID = XLXSCLQD_XLBZID and B.XLXSJGBMX_DYDJID = XLXSCLQD_DYDJID ) ";
sSQL +=" ) C ";
sSQL += " left join XLBZ on XLBZ_XLBZID = XLXSCLQD_XLBZID ";
sSQL += " left join XLXHB on XLXHB_XLXHID = XLXSCLQD_XLXHID ";
sSQL += " left join XLGGB on XLGGB_XLGGID = REPLACE( XLXSCLQD_XLGGID , '*','×') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') ";
if (sAPPCJSXFS.Equals("2"))
{
sSQL += " left join XLXSBJXHML a on a.XLXSBJXHML_XLXHID=XLXSCLQD_XLXHID and isnull(a.XLXSBJXHML_DYDJID,' ')=' ' ";
sSQL += " left join XLXSBJXHML b on b.XLXSBJXHML_XLXHID=XLXSCLQD_XLXHID and isnull(b.XLXSBJXHML_DYDJID,' ') = isnull(XLXSCLQD_DYDJID, ' ') ";
}
sSQL += " where 1=1 ";
if (isMHCX.Equals("Y"))
{
sSQL += " and XLXSCLQD_XLXHID like '%" + sXLXHID + "%' ";
if (!sXLGGID.Equals(""))
{
sSQL += " and (XLXSCLQD_XLGGID like '%" + sXLGGID + "%' or XLXSCLQD_XLGGID like '%" + sXLGGID.Replace("*", "×") + "%' or XLXSCLQD_XLGGID like '%" + sXLGGID.Replace("×", "*") + "%')";
}
}
else
{
sSQL += " and XLXSCLQD_XLXHID = '" + sXLXHID + "' ";
if (!sXLGGID.Equals(""))
{
sSQL += " and (XLXSCLQD_XLGGID = '" + sXLGGID + "' or XLXSCLQD_XLGGID = '" + sXLGGID.Replace("*", "×") + "' or XLXSCLQD_XLGGID = '" + sXLGGID.Replace("×", "*") + "')";
}
}
if (sAPPCJSXFS.Equals("2"))
{
if (!sDYDJID.Trim().Equals(""))
{
sSQL += " and ISNULL(XLXSCLQD_DYDJID,' ') = '" + sDYDJID + "' ";
}
if (!sCPML.Trim().Equals(""))
{
sSQL += " and (case when isnull(b.XLXSBJXHML_CPMLID,' ')<>' ' then b.XLXSBJXHML_CPMLID else isnull(a.XLXSBJXHML_CPMLID,' ') end) = '" + sCPML + "' ";
}
if (!sCPMLIDS.Trim().Equals(""))
{
sCPMLIDS = SetStr(sCPMLIDS);
sSQL += " and (case when isnull(b.XLXSBJXHML_CPMLID,' ')<>' ' then b.XLXSBJXHML_CPMLID else isnull(a.XLXSBJXHML_CPMLID,' ') end) in " + sCPMLIDS + " ";
}
}
}
sSQL += ") D where 1=1 ";
if (!XLBJDUtils.IsJGEJGB(sJGBID))
{
sOrder += " order by PX,XLXSJGBMX_XSXH ";
}
else
{
sOrder += " order by PX,XLXHID,minXH,XLGGID,DYDJID ";
}
SQL.Clear();
SQL.Add(sculom + sSQL + sOrder);
DataSet ds = dberp.OpenDataSet(SQL);
TSQL SQLCOUNT = new TSQL(dberp);
SQLCOUNT.Clear();
SQLCOUNT.Add(sCunt + sSQL);
DataSet dsCount = dberp.OpenDataSet(SQLCOUNT);
if (dsCount.Tables[0].Rows.Count > 0)
{
iRowCount = CMISproConvert.StrToInt(dsCount.Tables[0].Rows[0][0].ToString().Trim());
}
string sXSTLJ = "N";
string sTBJCLID = "";
string sLBJCLID = "";
string sTJ = "0";
string sLJ = "0";
if (XLBJDUtils.IsJGEJGB(sJGBID))
{
BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID);
sTBJCLID = bjflxx.XLXSBJFL_TBJCLID;
sLBJCLID = bjflxx.XLXSBJFL_LBJCLID;
if (!sTBJCLID.Equals("") && !sLBJCLID.Equals(""))
{
sXSTLJ = "Y";
}
else if (!sTBJCLID.Equals(""))
{
sXSTLJ = "T";
}
else if (!sLBJCLID.Equals(""))
{
sXSTLJ = "L";
}
Dictionary<string, string> dicTLJG = XLBJDInfo.GetTLJByRQ(sBJRQ, sBJFLID, true);
sTJ = dicTLJG["TJ"];
sLJ = dicTLJG["LJ"];
}
int iMax = Math.Min(iStart + iNum, iRowCount);
for (int i = iStart; i < iMax; i++)
{
XLGGInfo info = new XLGGInfo();
string[] aField = sFields.Split(',');
foreach (string Field in aField)
{
if (Field.Equals("CPJJ"))
{
double dCPJJ = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i][Field.Trim()].ToString().Trim()), tmpXSWS);
info.GetType().GetProperty(Field.Trim()).SetValue(info, XLBJDUtils.strPadRight(dCPJJ.ToString().Trim(), tmpXSWS), null);
}
else
info.GetType().GetProperty(Field.Trim()).SetValue(info, ds.Tables[0].Rows[i][Field.Trim()].ToString().Trim(), null);
if (XLBJDUtils.IsJGEJGB(sJGBID))
{
if (Field.Equals("XSTLJ"))
{
info.GetType().GetProperty(Field.Trim()).SetValue(info, sXSTLJ, null);
}
if (Field.Equals("TBJCLID"))
{
info.GetType().GetProperty(Field.Trim()).SetValue(info, sTBJCLID, null);
}
if (Field.Equals("LBJCLID"))
{
info.GetType().GetProperty(Field.Trim()).SetValue(info, sLBJCLID, null);
}
if (Field.Equals("TJ"))
{
info.GetType().GetProperty(Field.Trim()).SetValue(info, sTJ, null);
}
if (Field.Equals("LJ"))
{
info.GetType().GetProperty(Field.Trim()).SetValue(info, sLJ, null);
}
}
}
rEntity.Add(info);
}
return rEntity;
}
private string GetAPPCJSXFS(ref string sCPMLIDS)
{
string sRstr = "1";
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860033);
if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_APPCJSXFS))
sRstr = pzxx.XLXSBJPZ_APPCJSXFS;
if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_CPMLIDS))
sCPMLIDS = pzxx.XLXSBJPZ_CPMLIDS;
return sRstr;
}
private string SetStr(string sCPMLIDS)
{
string Rstr = "";
if (!sCPMLIDS.Trim().Equals(""))
{
foreach (string str in sCPMLIDS.Split(','))
{
if (!Rstr.Equals(""))
Rstr += ",";
Rstr += "'" + str.Trim() + "'";
}
Rstr = "(" + Rstr + ")";
}
return Rstr;
}
public List<XLGGInfo> GetLSXLGGInfoList(string sXLXHGGlist, string sXLXHID, string sXLGGID, string sJGBID)
{
int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002"));
if (tmpXSWS < 0)
tmpXSWS = 0;
else if (tmpXSWS > 8)
tmpXSWS = 8;
List<XLGGInfo> rEntity = new List<XLGGInfo>();
string sFields = @"XLXHID, DYDJID, XLGGID, CPJJ, XLBZID, XLBZMC";
string sSQL = "select XLXSJGBMX_XLXHID as XLXHID, XLXSJGBMX_DYDJID as DYDJID, XLXSJGBMX_XLGGID as XLGGID, RoundFix(XLXSJGBMX_HSBJ," + tmpXSWS + ") as CPJJ,XLXSJGBMX_XLBZID as XLBZID, XLBZ_XLBZLXMC as XLBZMC from XLXSJGBMX left join XLBZ on XLBZ_XLBZID = XLXSJGBMX_XLBZID where 1=1 ";
if (!sXLXHGGlist.Equals(""))
{
sSQL += " and (";
string[] XLXHGGlist = sXLXHGGlist.Split(';');
for (int i = 0; i < XLXHGGlist.Length - 1; i++)
{
if (i == 0)
sSQL += " (XLXSJGBMX_XLXHID = '" + XLXHGGlist[i].Split(',')[0]
+ "' and (XLXSJGBMX_XLGGID = '" + XLXHGGlist[i].Split(',')[1]
+ "' or XLXSJGBMX_XLGGID = '" + XLXHGGlist[i].Split(',')[1].Replace("*", "×")
+ "' or XLXSJGBMX_XLGGID = '" + XLXHGGlist[i].Split(',')[1].Replace("×", "*") + "')) ";
else
sSQL += " or (XLXSJGBMX_XLXHID = '" + XLXHGGlist[i].Split(',')[0]
+ "' and (XLXSJGBMX_XLGGID = '" + XLXHGGlist[i].Split(',')[1]
+ "' or XLXSJGBMX_XLGGID = '" + XLXHGGlist[i].Split(',')[1].Replace("*", "×")
+ "' or XLXSJGBMX_XLGGID = '" + XLXHGGlist[i].Split(',')[1].Replace("×", "*") + "')) ";
}
sSQL += " )";
}
if (!sXLXHID.Equals(""))
{
sSQL += " and XLXSJGBMX_XLXHID = '" + sXLXHID + "' ";
}
if (!sXLGGID.Equals(""))
{
sSQL += " and (XLXSJGBMX_XLGGID = '" + sXLGGID + "' or XLXSJGBMX_XLGGID = '" + sXLGGID.Replace("*", "×") + "' or XLXSJGBMX_XLGGID = '" + sXLGGID.Replace("×", "*") + "')";
}
sSQL += " and XLXSJGBMX_JGBID = '" + sJGBID + "'";
sSQL += " order by XLXSJGBMX_XH ";
TWorkflow wf = new TWorkflow(tSession, new System.Web.Caching.Cache());
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(sSQL);
DataSet ds = dberp.OpenDataSet(SQL);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
XLGGInfo info = new XLGGInfo();
string[] aField = sFields.Split(',');
foreach (string Field in aField)
{
info.GetType().GetProperty(Field.Trim()).SetValue(info, ds.Tables[0].Rows[i][Field.Trim()].ToString().Trim(), null);
}
rEntity.Add(info);
}
return rEntity;
}
public List<JGBInfo> GetJGBInfoList(string sBJFLID)
{
List<JGBInfo> rEntity = new List<JGBInfo>();
Dictionary<string, string> dicJGBID = XLBJDUtils.GetJGBIDByXSQYID("手机端价格表报价", sBJFLID, System.DateTime.Now.ToString(), "");
foreach (KeyValuePair<string, string> kvp in dicJGBID)
{
JGBInfo info = new JGBInfo();
info.JGBID = kvp.Key;
info.JGBMC = kvp.Value;
rEntity.Add(info);
}
if (rEntity.Count == 0)
{
JGBInfo info = new JGBInfo();
rEntity.Add(info);
}
return rEntity;
}
public string[] GetBJFLlist()
{
string[] sBJFLlist;
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
DataSet ds = null;
//检查是否经销商报价
sql.Clear();
sql.Add("select JXSXX_KHID,JXSXX_XSQYID from JXSXX where JXSXX_GH=:pGH order by JXSXX_KHID");
sql.ParamByName("pGH").Value = tSession.UserId;
ds = dberp.OpenDataSet(sql);
if (ds.Tables[0].Rows.Count > 0)
{
//根据找到的JXSXX_KHID匹配XLXSBJFL_KHIDS,得到报价分类可选项
sql.Clear();
sql.Add("select XLXSBJFL_BJFLID,XLXSBJFL_BJFLMC from XLXSBJFL where isnull(XLXSBJFL_TYBZ,' ')<>'Y'");
sql.Add(" and ( exists(select 1 from XLXSBJFLKH where XLXSBJFLKH_BJFLID=XLXSBJFL_BJFLID and XLXSBJFLKH_KHID=:pKHID) ");
sql.Add(" or not exists(select 1 from XLXSBJFLKH where XLXSBJFLKH_BJFLID=XLXSBJFL_BJFLID) ) ");
if (!GetOption("BJU012").Equals(""))
sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJFL_BJFLID", GetOption("BJU012")));
sql.Add(" order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID ");
sql.ParamByName("pKHID").Value = ds.Tables[0].Rows[0]["JXSXX_KHID"].ToString().Trim();
ds = null;
ds = dberp.OpenDataSet(sql);
sBJFLlist = new string[ds.Tables[0].Rows.Count];
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
sBJFLlist[i] = ds.Tables[0].Rows[i]["XLXSBJFL_BJFLID"].ToString().Trim() + "|" + ds.Tables[0].Rows[i]["XLXSBJFL_BJFLMC"].ToString().Trim();
}
}
else
{
sql.Clear();
sql.Add("select XLXSBJFL_BJFLID, XLXSBJFL_BJFLMC from XLXSBJFL where isnull(XLXSBJFL_TYBZ,'N')<>'Y' ");
if (!GetOption("BJU012").Equals(""))
sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJFL_BJFLID", GetOption("BJU012")));
sql.Add(" order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID ");
ds = null;
ds = dberp.OpenDataSet(sql);
sBJFLlist = new string[ds.Tables[0].Rows.Count];
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
sBJFLlist[i] = ds.Tables[0].Rows[i]["XLXSBJFL_BJFLID"].ToString().Trim() + "|" + ds.Tables[0].Rows[i]["XLXSBJFL_BJFLMC"].ToString().Trim();
}
}
return sBJFLlist;
}
//数量、型号、规格、电压等级、报价分类、表价
public string GetYZZ(string cs_SL, string cs_XLXHID, string cs_XLGGID, string cs_DYDJID, string cs_XLBZID, string cs_WGCP, string cs_BJFLID, string cs_BJ, string cs_JGBID, string cs_TBJCLID, string cs_TJ, string cs_LBJCLID, string cs_LJ)
{
string result = "";
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sBJU003 = tSession.GetOption(100860000, "BJU003");
//报价分类----------------------------------------------------------------------------------------------------------------------------------------------------------------
string sBJFLID = cs_BJFLID;
int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002"));
if (tmpXSWS < 0)
tmpXSWS = 0;
else if (tmpXSWS > 8)
tmpXSWS = 8;
if (cs_JGBID.Trim().Equals("DEFAULT"))
{
Dictionary<string, string> dicJGBID = XLBJDUtils.GetJGBIDByXSQYID("手机端价格表报价", sBJFLID, System.DateTime.Now.ToString(), "");
if (dicJGBID.Count > 0)
{
foreach (KeyValuePair<string, string> kvp in dicJGBID)
{
cs_JGBID = kvp.Key;
break;
}
}
else
cs_JGBID = "";
}
//数量、型号、规格
double dBJSL = CMISproConvert.StrToFloat(cs_SL);
string sXLXHID = cs_XLXHID;
string sXLGGID = cs_XLGGID;
string sXLBZID = cs_XLBZID;
string sDYDJID = cs_DYDJID;
string sJGBID = cs_JGBID.Trim();
double dCPBJ = CMISproConvert.StrToFloat(cs_BJ, 0);
string sBJRQ = DateTime.Now.ToShortDateString().Trim();
#region 如果是JGE价格表则重新计算表价
if (XLBJDUtils.IsJGEJGB(cs_JGBID))
{
if (XLBJDUtils.IsJGFJGBMX(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID))
{
double dJGFJJ = 0;
double dJGFBJ = 0;
string sJGFJLDW = "";
XLBJDUtils.GetJGBJJ_JGF(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, true, "N", ref dJGFJJ, ref dJGFBJ, ref sJGFJLDW);
cs_BJ = dJGFBJ.ToString().Trim();
}
else
{
if (cs_TJ.Equals(""))
cs_TJ = "0";
if (cs_LJ.Equals(""))
cs_LJ = "0";
Dictionary<string, double> dicJGE = XLBJDUtils.GetCLCB_JGE(DateTime.Now.ToShortDateString().Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID, cs_TBJCLID, cs_LBJCLID, cs_TJ, cs_LJ, true, false, "");
bool JgIsZero = dicJGE["JgIsZero"] == 1 ? true : false;
string sCLCB = dicJGE["CLCB"].ToString();
DataSet dsJGBYZ = new DataSet();
string sJGBTJYSS = "";
//计算公式以及因子的输出
Dictionary<string, string> dicJGBTZYZGS_JGE = new Dictionary<string, string>();
//记录价格表调价因素相关信息-线缆基本信息
Dictionary<string, string> dicXLJBXX_JGE = new Dictionary<string, string>();
XLBJDUtils.GetdsJGBYZ_JGE(sJGBID, ref dsJGBYZ);
sJGBTJYSS = XLBJDUtils.GetJGBTJYSSByBJFLID(sBJFLID);
dicXLJBXX_JGE.Clear();
dicXLJBXX_JGE.Add("XLXHID", sXLXHID);
dicXLJBXX_JGE.Add("XLGGID", sXLGGID);
dicXLJBXX_JGE.Add("XLBZID", sXLBZID);
dicXLJBXX_JGE.Add("DYDJID", sDYDJID);
dicXLJBXX_JGE.Add("BJDJLDWHSBL", "1");//材料清单计量单位与报价单计量单位一致,均为BJU003,所以换算倍率固定为1
dicJGBTZYZGS_JGE = XLBJDUtils.GetJGBTZYZ_JGE(sJGBID, "0", dsJGBYZ, dicXLJBXX_JGE);
sCLCB = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), tmpXSWS).ToString().Trim();
double dZBZ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), tmpXSWS);
if (sJGBTJYSS.Equals("1"))
{
string sTmpGS = "";
string sJSGS = dicJGBTZYZGS_JGE["JSGS"].Trim();
if (sJSGS.Equals(""))
{
if (dicJGBTZYZGS_JGE["JJFirst"].Equals("1"))
{
sTmpGS = "(" + sCLCB + "+" + dicJGBTZYZGS_JGE["JJ"] + ")*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")";
}
else
{
sTmpGS = sCLCB + "*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")+(" + dicJGBTZYZGS_JGE["JJ"] + ")";
}
}
else
{
sTmpGS = sJSGS.Replace("JGBJJ", sCLCB);
}
gtExpression exp = new gtExpression();
try
{
dZBZ = NumberUtils.RoundX(exp.Evaluate(sTmpGS), 15);
}
catch
{
dZBZ = 0;
}
}
if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示
{
cs_BJ = FloatToString(dZBZ * (-1), tmpXSWS);
}
else
{
cs_BJ = FloatToString(dZBZ, tmpXSWS);
}
}
}
dCPBJ = CMISproConvert.StrToFloat(cs_BJ, 0);
#endregion
if (!cs_SL.Equals("") && !cs_SL.Equals("0"))
{
Dictionary<string, string> dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID);
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
string sXSQYID = "";
string fZXJM = dicXLGGB["ZXJM"];
string sXXJGID = dicXLGGB["XXJGID"];
Dictionary<string, string> dicBJDYZ = XLBJDUtils.GetBJDYZ(sBJFLID);
string sTJYSList = dicBJDYZ["TJYSList"];
#region 获取报价单调价因子以及调整过程
//获取调价因素为空的因子值
Dictionary<string, double> dicYZZ0 = XLBJDUtils.GetBJDYZZ0(sBJFLID, cs_WGCP.Equals("Y"), false, sBJU003, sBJU003,sXLXHID,sXLGGID,sXLBZID,sDYDJID);
//重新获取按“1|付款方式”设置的调价因子值
Dictionary<string, double> dicYZZ1 = new Dictionary<string, double>();
if (sTJYSList.Contains(",1,"))
{
dicYZZ1 = XLBJDUtils.InitdicYZZ(sBJFLID, "1");
}
//报价数量变化,重新获取按“2|导体材料&电压区间&报价数量区间”设置的调价因子值
Dictionary<string, double> dicYZZ2 = new Dictionary<string, double>();
if (sTJYSList.Contains(",2,"))
{
dicYZZ2 = XLBJDUtils.GetBJDYZZ2(sBJFLID, sDYDJID, dBJSL, sXLXHID, sBJU003, sBJU003, sXLGGID, sXLBZID);
}
//重新获取按“3|产品用途&电压等级分类&报价数量区间”设置的调价因子值
Dictionary<string, double> dicYZZ3 = new Dictionary<string, double>();
if (sTJYSList.Contains(",3,"))
{
dicYZZ3 = XLBJDUtils.GetBJDYZZ3(sBJFLID, dBJSL, sXLXHID, sXLGGID,sXLBZID, sDYDJID, sBJU003, sBJU003);
}
//重新获取按“E|型号&电压等级&主芯截面范围&报价数量区间”设置的调价因子值
Dictionary<string, double> dicYZZE = new Dictionary<string, double>();
if (sTJYSList.Contains(",E,"))
{
dicYZZE = XLBJDUtils.GetBJDYZZE(sBJFLID, sXLXHID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), dBJSL, sBJU003, sBJU003, sXLGGID, sXLBZID);
}
Dictionary<string, double> dicYZZG = new Dictionary<string, double>();
if (sTJYSList.Contains(",G,"))
{
dicYZZG = XLBJDUtils.GetBJDYZZG(sBJFLID, sXLXHID, sDYDJID,sXXJGID, CMISproConvert.StrToFloat(fZXJM), dBJSL, sBJU003, sBJU003);
}
//重新获取按“F|电压等级&芯线结构&报价数量区间/报价数量”设置的调价因子值
Dictionary<string, double> dicYZZF = new Dictionary<string, double>();
if (sTJYSList.Contains(",F,"))
{
dicYZZF = XLBJDUtils.GetBJDYZZF(sBJFLID, sXLXHID, sDYDJID, sXXJGID, dBJSL, sBJU003, sBJU003);
}
Dictionary<string, double> dicYZZH = new Dictionary<string, double>();
if (sTJYSList.Contains(",H,"))
{
dicYZZH = XLBJDUtils.GetBJDYZZH(sBJFLID, sXLXHID, sDYDJID, XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID), CMISproConvert.StrToFloat(fZXJM), dBJSL, sBJU003, sBJU003);
}
Dictionary<string, double> dicYZZK = new Dictionary<string, double>();
if (sTJYSList.Contains(",K,"))
{
dicYZZK = XLBJDUtils.GetBJDYZZK(sBJFLID, dBJSL, sBJU003, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID);
}
//重新获取按“4|型号”设置的调价因子值
Dictionary<string, double> dicYZZ4 = new Dictionary<string, double>();
if (sTJYSList.Contains(",4,"))
{
dicYZZ4 = XLBJDUtils.GetBJDYZZ4(sBJFLID, sXLXHID, sBJU003, sBJU003, sXLGGID, sXLBZID, sDYDJID);
}
//重新获取按“5|销售区域&型号&标准&电压等级&主芯截面范围”设置的调价因子值
Dictionary<string, double> dicYZZ5 = new Dictionary<string, double>();
if (sTJYSList.Contains(",5,"))
{
dicYZZ5 = XLBJDUtils.GetBJDYZZ5(sBJFLID, sXSQYID, sXLXHID, sXLBZID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), sBJU003, sBJU003, sXLGGID);
}
//重新获取按“6|报价数量区间调价米数/报价数量”设置的调价因子值
Dictionary<string, double> dicYZZ6 = new Dictionary<string, double>();
if (sTJYSList.Contains(",6,"))
{
dicYZZ6 = XLBJDUtils.GetBJDYZZ6(sBJFLID, dBJSL, sBJU003, sBJU003);
}
//重新获取按“7|型号&电压等级&芯线结构&主芯截面范围”设置的调价因子值
Dictionary<string, double> dicYZZ7 = new Dictionary<string, double>();
if (sTJYSList.Contains(",7,"))
{
dicYZZ7 = XLBJDUtils.GetBJDYZZ7(sBJFLID, sXLXHID, sDYDJID, sXXJGID, CMISproConvert.StrToFloat(fZXJM), sBJU003, sBJU003, sXLGGID, sXLBZID);
}
//重新获取按“8|付款期限”设置的调价因子值
Dictionary<string, double> dicYZZ8 = new Dictionary<string, double>();
if (sTJYSList.Contains(",8,"))
{
dicYZZ8 = XLBJDUtils.InitdicYZZ(sBJFLID, "8");
}
//重新获取按“9|导体材料&产品用途&电压等级分类&产品特性”设置的调价因子值
Dictionary<string, double> dicYZZ9 = new Dictionary<string, double>();
if (sTJYSList.Contains(",9,"))
{
dicYZZ9 = XLBJDUtils.GetBJDYZZ9(sBJFLID, sXLXHID, sDYDJID, sBJU003, sBJU003, sXLGGID, sXLBZID);
}
//重新获取按“A|型号&规格&电压&标准”设置的调价因子值
Dictionary<string, double> dicYZZA = new Dictionary<string, double>();
if (sTJYSList.Contains(",A,"))
{
dicYZZA = XLBJDUtils.GetBJDYZZA(sBJFLID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU003);
}
Dictionary<string, double> dicYZZBZPF = new Dictionary<string, double>();
if (sTJYSList.Contains(",BZPF,"))
{
//包装盘费
string sBZPFYZID = XLBJDUtils.GetBJFLSYBZPFYZID(sBJFLID);
if (!sBZPFYZID.Equals(""))
{
sBZPFYZID = sBZPFYZID.Split('|')[0];
dicYZZBZPF = XLBJDUtils.GetBJDBZPFYZZ(sBZPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU003);
}
}
Dictionary<string, double> dicYZZCPWJPF = new Dictionary<string, double>();
if (sTJYSList.Contains(",CPWJPF,"))
{
//产品外径盘费
string sCPWJPFYZID = XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID);
if (!sCPWJPFYZID.Equals(""))
{
sCPWJPFYZID = sCPWJPFYZID.Split('|')[0];
dicYZZCPWJPF = XLBJDUtils.GetBJDCPWJPFYZZ(sCPWJPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU003,dBJSL);
}
}
//重新获取按“B|销售单位”设置的调价因子值
Dictionary<string, double> dicYZZB = new Dictionary<string, double>();
if (sTJYSList.Contains(",B,"))
{
dicYZZB = XLBJDUtils.InitdicYZZ(sBJFLID, "B");
}
//获取按“C|产品目录&主芯截面范围&产品特性”因子值
Dictionary<string, double> dicYZZC = new Dictionary<string, double>();
if (sTJYSList.Contains(",C,"))
{
dicYZZC = XLBJDUtils.GetBJDYZZC(" ", sBJFLID, sXLXHID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), sBJU003, sBJU003, sXLGGID, sXLBZID);
}
//重新获取按“D|颜色”设置的调价因子值
Dictionary<string, double> dicYZZD = new Dictionary<string, double>();
if (sTJYSList.Contains(",D,"))
{
dicYZZD = XLBJDUtils.GetBJDYZZD(sBJFLID, XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID), sBJU003, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID);
}
string result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, resultA, resultB, resultC, resultD, resultE, resultF, resultG, resultH, resultBZPF, resultCPWJPF;
result0 = result1 = result2 = result3 = result4 = result5 = result6 = result7 = result8 = result9 = resultA = resultB = resultC = resultD = resultE = resultF = resultG = resultH = resultBZPF = resultCPWJPF = "";
foreach (string sTJYZID in dicYZZBZPF.Keys)
{
resultBZPF += "TZYZ_" + sTJYZID + "=" + dicYZZBZPF[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZCPWJPF.Keys)
{
resultBZPF += "TZYZ_" + sTJYZID + "=" + dicYZZCPWJPF[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZ0.Keys)
{
if (resultBZPF.Contains("TZYZ_" + sTJYZID))
continue;
if (resultCPWJPF.Contains("TZYZ_" + sTJYZID))
continue;
result1 += "TZYZ_" + sTJYZID + "=" + dicYZZ0[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ0[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZ2.Keys)
{
result2 += "TZYZ_" + sTJYZID + "=" + dicYZZ2[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ2[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZ3.Keys)
{
result3 += "TZYZ_" + sTJYZID + "=" + dicYZZ3[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ3[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZ4.Keys)
{
result4 += "TZYZ_" + sTJYZID + "=" + dicYZZ4[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ4[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZ5.Keys)
{
result5 += "TZYZ_" + sTJYZID + "=" + dicYZZ5[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ5[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZ6.Keys)
{
result6 += "TZYZ_" + sTJYZID + "=" + dicYZZ6[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ6[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZ7.Keys)
{
result7 += "TZYZ_" + sTJYZID + "=" + dicYZZ7[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZ8.Keys)
{
result8 += "TZYZ_" + sTJYZID + "=" + dicYZZ8[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZ9.Keys)
{
result9 += "TZYZ_" + sTJYZID + "=" + dicYZZ9[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZA.Keys)
{
resultA += "TZYZ_" + sTJYZID + "=" + dicYZZA[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZB.Keys)
{
resultB += "TZYZ_" + sTJYZID + "=" + dicYZZB[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZC.Keys)
{
resultC += "TZYZ_" + sTJYZID + "=" + dicYZZC[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZD.Keys)
{
resultD += "TZYZ_" + sTJYZID + "=" + dicYZZD[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZE.Keys)
{
resultE += "TZYZ_" + sTJYZID + "=" + dicYZZE[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZK.Keys)
{
resultE += "TZYZ_" + sTJYZID + "=" + dicYZZK[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZG.Keys)
{
resultG += "TZYZ_" + sTJYZID + "=" + dicYZZG[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZF.Keys)
{
resultF += "TZYZ_" + sTJYZID + "=" + dicYZZF[sTJYZID].ToString() + ";";
//e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString());
}
foreach (string sTJYZID in dicYZZH.Keys)
{
resultH += "TZYZ_" + sTJYZID + "=" + dicYZZH[sTJYZID].ToString() + ";";
}
result += (result0 + result1 + result2 + result3 + result4 + result5 + result6 + result7 + result8
+ result9 + resultA + resultB + resultC + resultD + resultE + resultF + resultG + resultH + resultBZPF + resultCPWJPF);
//获取YZID对应的TJYZID
Dictionary<string, string> dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");
Dictionary<string, double> dicTJYZIDValue = new Dictionary<string, double>();
//获取YZID对应的TYZZYZID
Dictionary<string, string> dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");
Dictionary<string, double> dicTYZZYZIDValue = new Dictionary<string, double>();
string sBJDYZText = dicBJDYZ["BJDYZ"];
string[] sBJDYZ = sBJDYZText.Split(',');
#region 初次将所“2|调因子值”因子纳入dicTYZZYZIDValue
for (int i = 0; i < sBJDYZ.Length; i++)
{
string sFieldName = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim();
if (XLBJDInfo.dicValueContained(dicTYZZYZID, sFieldName.Substring(5)))
{
if (dicYZZBZPF.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZBZPF[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZBZPF[sFieldName.Substring(5)];
}
else if (dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZCPWJPF[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZCPWJPF[sFieldName.Substring(5)];
}
else if (dicYZZ0.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ0[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ0[sFieldName.Substring(5)];
}
else if (dicYZZ1.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ1[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ1[sFieldName.Substring(5)];
}
else if (dicYZZ2.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ2[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ2[sFieldName.Substring(5)];
}
else if (dicYZZ3.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ3[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ3[sFieldName.Substring(5)];
}
else if (dicYZZE.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZE[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZE[sFieldName.Substring(5)];
}
else if (dicYZZK.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZK[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZK[sFieldName.Substring(5)];
}
else if (dicYZZG.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZG[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZG[sFieldName.Substring(5)];
}
else if (dicYZZF.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZF[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZF[sFieldName.Substring(5)];
}
else if (dicYZZH.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZH[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZH[sFieldName.Substring(5)];
}
else if (dicYZZ4.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ4[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ4[sFieldName.Substring(5)];
}
else if (dicYZZ5.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ5[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ5[sFieldName.Substring(5)];
}
else if (dicYZZ6.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ6[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ6[sFieldName.Substring(5)];
}
else if (dicYZZ7.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ7[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ7[sFieldName.Substring(5)];
}
else if (dicYZZ8.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ8[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ8[sFieldName.Substring(5)];
}
else if (dicYZZ9.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ9[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ9[sFieldName.Substring(5)];
}
else if (dicYZZA.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZA[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZA[sFieldName.Substring(5)];
}
else if (dicYZZB.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZB[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZB[sFieldName.Substring(5)];
}
else if (dicYZZC.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZC[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZC[sFieldName.Substring(5)];
}
else if (dicYZZD.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZD[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZD[sFieldName.Substring(5)];
}
}
}
#endregion
#region 初次将所有的因子纳入dicTJYZIDValue
for (int i = 0; i < sBJDYZ.Length; i++)
{
string sFieldName = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim();
//string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", "");
if (dicTJYZID.ContainsKey(sFieldName.Substring(5)))
{
string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)];
if (dicYZZBZPF.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZBZPF[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZCPWJPF[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ0.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ0[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ1.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ1[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ2.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ2[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ3.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ3[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZE.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZE[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZK.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZK[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZG.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZG[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZF.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZF[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZH.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZH[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ4.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ4[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ5.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ5[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ6.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ6[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ7.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ7[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ8.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ8[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ9.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ9[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZA.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZA[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZB.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZB[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZC.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZC[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZD.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZD[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
}
}
#endregion
#endregion
BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID);
string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS;
string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID);
if (!sTZQCPBJGS.Equals(""))
{
sTZQCPBJGS = sTZQCPBJGS.Replace("JGBBJ", dCPBJ.ToString());
sTZQCPBJGS = sTZQCPBJGS.Replace(" ", "").Replace("×", "*");//Replace("100", "100.00")是因为数据库计算时1/100的结果是0需转换为1/100.00结果才是0.01,此处直接计算无需处理
for(int i = 1; i<=20;i++)
{
string BJDYZID = "BJ" + i.ToString().PadLeft(2, '0');
if (dicTJYZIDValue.ContainsKey(BJDYZID))
{
sTZQCPBJGS = sTZQCPBJGS.Replace(BJDYZID,dicTJYZIDValue[BJDYZID].ToString());
}
else
{
sTZQCPBJGS = sTZQCPBJGS.Replace(BJDYZID, "0");
}
}
sTZQCPBJGS = sTZQCPBJGS.Replace("TZZDXJ", "0");
gtExpression exp = new gtExpression();
try
{
dCPBJ = NumberUtils.RoundX(exp.Evaluate(sTZQCPBJGS), 15);
}
catch
{
dCPBJ = 0;
}
}
else
{
if (dCPBJ != 0)
{
bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(sBJFLID);
double dTZYZ_JJ = 0;
for (int i = 0; i < sBJDYZ.Length; i++)
{
string sFieldName = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim();
string sColName = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(DD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(MD)", "(%)").Replace("(MP)", "(%)").Replace("(XX)", "(不参与调价)")
.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", "");
if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)];
}
}
if (JJFirst)
{
dCPBJ = dCPBJ + dTZYZ_JJ;
}
for (int i = 0; i < sBJDYZ.Length; i++)
{
string sFieldName = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim();
string sColName = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(DD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(MD)", "(%)").Replace("(MP)", "(%)").Replace("(XX)", "(不参与调价)")
.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", "");
if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100);
}
else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100);
}
else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100);
}
else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100);
}
else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100);
}
//MX乘以/DX除以-系数
else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]);
}
else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DX)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
{
if (dicTJYZIDValue[sFieldName.Substring(5)] != 0)
{
dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]);
}
else
{
dCPBJ = dCPBJ * 0;
}
}
}
else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(SX)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
{
if (dicTJYZIDValue[sFieldName.Substring(5)] >= 0)
{
dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100);
}
else
{
dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100);
}
}
}
}
if (!JJFirst)
{
dCPBJ = dCPBJ + dTZYZ_JJ;
}
dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS));//保留精度高的
}
}
dCPBJ = XLBJDUtils.RoundSZ(dCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS));
result += "XLXSBJDMX_CPBJ = " + XLBJDUtils.strPadRight(dCPBJ.ToString(), (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS)) + ";";//显示精度高的
double dBJJE = NumberUtils.RoundX(dBJSL * dCPBJ, 2);
result += "XLXSBJDMX_BJJE = " + XLBJDUtils.strPadRight(dBJJE.ToString(), 2) + ";";
result += "XLXSBJDMX_JGBBJ = " + cs_BJ + ";";
//e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString());
}
return result;
}
public String GetYZZbyTJYZ(string cs_XLXHID, string cs_XLGGID, string cs_XLBZID, string cs_DYDJID, string cs_WGCP, string cs_BJDFL, string cs_YZID, string cs_YZZ, string cs_sTJYZChangelist, string cs_BJ, string cs_SL, string cs_JGBID,
string cs_TBJCLID, string cs_TJ, string cs_LBJCLID, string cs_LJ)
{
string result = "";
string sBJU003 = tSession.GetOption(100860000, "BJU003");
//报价分类----------------------------------------------------------------------------------------------------------------------------------------------------------------
string sBJFLID = cs_BJDFL;
int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002"));
if (tmpXSWS < 0)
tmpXSWS = 0;
else if (tmpXSWS > 8)
tmpXSWS = 8;
if (cs_JGBID.Trim().Equals("DEFAULT"))
{
Dictionary<string, string> dicJGBID = XLBJDUtils.GetJGBIDByXSQYID("手机端价格表报价", sBJFLID, System.DateTime.Now.ToString(), "");
if (dicJGBID.Count > 0)
{
foreach (KeyValuePair<string, string> kvp in dicJGBID)
{
cs_JGBID = kvp.Key;
break;
}
}
else
cs_JGBID = "";
}
//数量、型号、规格
double dBJSL = CMISproConvert.StrToFloat(cs_SL);
string sXLXHID = cs_XLXHID;
string sXLGGID = cs_XLGGID;
string sXLBZID = cs_XLBZID;
string sDYDJID = cs_DYDJID;
string sJGBID = cs_JGBID.Trim();
double dCPBJ = CMISproConvert.StrToFloat(cs_BJ, 0);
#region 如果是JGE价格表则重新计算表价
if (XLBJDUtils.IsJGEJGB(cs_JGBID))
{
if (cs_TJ.Equals(""))
cs_TJ = "0";
if (cs_LJ.Equals(""))
cs_LJ = "0";
Dictionary<string, double> dicJGE = XLBJDUtils.GetCLCB_JGE(DateTime.Now.ToShortDateString().Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID, cs_TBJCLID, cs_LBJCLID, cs_TJ, cs_LJ, true, false, "");
bool JgIsZero = dicJGE["JgIsZero"] == 1 ? true : false;
string sCLCB = dicJGE["CLCB"].ToString();
DataSet dsJGBYZ = new DataSet();
string sJGBTJYSS = "";
//计算公式以及因子的输出
Dictionary<string, string> dicJGBTZYZGS_JGE = new Dictionary<string, string>();
//记录价格表调价因素相关信息-线缆基本信息
Dictionary<string, string> dicXLJBXX_JGE = new Dictionary<string, string>();
XLBJDUtils.GetdsJGBYZ_JGE(sJGBID, ref dsJGBYZ);
sJGBTJYSS = XLBJDUtils.GetJGBTJYSSByBJFLID(sBJFLID);
dicXLJBXX_JGE.Clear();
dicXLJBXX_JGE.Add("XLXHID", sXLXHID);
dicXLJBXX_JGE.Add("XLGGID", sXLGGID);
dicXLJBXX_JGE.Add("XLBZID", sXLBZID);
dicXLJBXX_JGE.Add("DYDJID", sDYDJID);
dicXLJBXX_JGE.Add("BJDJLDWHSBL", "1");//材料清单计量单位与报价单计量单位一致,均为BJU003,所以换算倍率固定为1
dicJGBTZYZGS_JGE = XLBJDUtils.GetJGBTZYZ_JGE(sJGBID, "0", dsJGBYZ, dicXLJBXX_JGE);
sCLCB = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), tmpXSWS).ToString().Trim();
double dZBZ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), tmpXSWS);
if (sJGBTJYSS.Equals("1"))
{
string sTmpGS = "";
string sJSGS = dicJGBTZYZGS_JGE["JSGS"].Trim();
if (sJSGS.Equals(""))
{
if (dicJGBTZYZGS_JGE["JJFirst"].Equals("1"))
{
sTmpGS = "(" + sCLCB + "+" + dicJGBTZYZGS_JGE["JJ"] + ")*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")";
}
else
{
sTmpGS = sCLCB + "*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")+(" + dicJGBTZYZGS_JGE["JJ"] + ")";
}
}
else
{
sTmpGS = sJSGS.Replace("JGBJJ", sCLCB);
}
gtExpression exp = new gtExpression();
try
{
dZBZ = NumberUtils.RoundX(exp.Evaluate(sTmpGS), tmpXSWS);
}
catch
{
dZBZ = 0;
}
}
if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示
{
cs_BJ = FloatToString(dZBZ * (-1), tmpXSWS);
}
else
{
cs_BJ = FloatToString(dZBZ, tmpXSWS);
}
}
dCPBJ = CMISproConvert.StrToFloat(cs_BJ, 0);
#endregion
if (!cs_SL.Equals("") && !cs_SL.Equals("0"))
{
Dictionary<string, string> dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID);
string fZXJM = dicXLGGB["ZXJM"];
string sXXJGID = dicXLGGB["XXJGID"];
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
string sXSQYID = "";
Dictionary<string, string> dicBJDYZ = XLBJDUtils.GetBJDYZ(sBJFLID);
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
string sTJYSList = dicBJDYZ["TJYSList"];
#region 获取报价单调价因子以及调整过程
//获取调价因素为空的因子值
Dictionary<string, double> dicYZZ0 = XLBJDUtils.GetBJDYZZ0(sBJFLID, cs_WGCP.Equals("Y"), false, sBJU003, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID);
//重新获取按“1|付款方式”设置的调价因子值
Dictionary<string, double> dicYZZ1 = new Dictionary<string, double>();
if (sTJYSList.Contains(",1,"))
{
dicYZZ1 = XLBJDUtils.InitdicYZZ(sBJFLID, "1");
}
//报价数量变化,重新获取按“2|导体材料&电压区间&报价数量区间”设置的调价因子值
Dictionary<string, double> dicYZZ2 = new Dictionary<string, double>();
if (sTJYSList.Contains(",2,"))
{
dicYZZ2 = XLBJDUtils.GetBJDYZZ2(sBJFLID, sDYDJID, dBJSL, sXLXHID, sBJU003, sBJU003, sXLGGID, sXLBZID);
}
//重新获取按“3|产品用途&电压等级分类&报价数量区间”设置的调价因子值
Dictionary<string, double> dicYZZ3 = new Dictionary<string, double>();
if (sTJYSList.Contains(",3,"))
{
dicYZZ3 = XLBJDUtils.GetBJDYZZ3(sBJFLID, dBJSL, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU003);
}
//重新获取按“E|型号&电压等级&主芯截面范围&报价数量区间”设置的调价因子值
Dictionary<string, double> dicYZZE = new Dictionary<string, double>();
if (sTJYSList.Contains(",E,"))
{
dicYZZE = XLBJDUtils.GetBJDYZZE(sBJFLID, sXLXHID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), dBJSL, sBJU003, sBJU003, sXLGGID, sXLBZID);
}
Dictionary<string, double> dicYZZK = new Dictionary<string, double>();
if (sTJYSList.Contains(",K,"))
{
dicYZZK = XLBJDUtils.GetBJDYZZK(sBJFLID, dBJSL, sBJU003, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID);
}
Dictionary<string, double> dicYZZG = new Dictionary<string, double>();
if (sTJYSList.Contains(",G,"))
{
dicYZZG = XLBJDUtils.GetBJDYZZG(sBJFLID, sXLXHID, sDYDJID,sXXJGID, CMISproConvert.StrToFloat(fZXJM), dBJSL, sBJU003, sBJU003);
}
//重新获取按“F|电压等级&芯线结构&报价数量区间/报价数量”设置的调价因子值
Dictionary<string, double> dicYZZF = new Dictionary<string, double>();
if (sTJYSList.Contains(",F,"))
{
dicYZZF = XLBJDUtils.GetBJDYZZF(sBJFLID, sXLXHID, sDYDJID, sXXJGID, dBJSL, sBJU003, sBJU003);
}
Dictionary<string, double> dicYZZH = new Dictionary<string, double>();
if (sTJYSList.Contains(",H,"))
{
dicYZZH = XLBJDUtils.GetBJDYZZH(sBJFLID, sXLXHID, sDYDJID, XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID), CMISproConvert.StrToFloat(fZXJM), dBJSL, sBJU003, sBJU003);
}
//重新获取按“4|型号”设置的调价因子值
Dictionary<string, double> dicYZZ4 = new Dictionary<string, double>();
if (sTJYSList.Contains(",4,"))
{
dicYZZ4 = XLBJDUtils.GetBJDYZZ4(sBJFLID, sXLXHID, sBJU003, sBJU003, sXLGGID, sXLBZID, sDYDJID);
}
//重新获取按“5|销售区域&型号&标准&电压等级&主芯截面范围”设置的调价因子值
Dictionary<string, double> dicYZZ5 = new Dictionary<string, double>();
if (sTJYSList.Contains(",5,"))
{
dicYZZ5 = XLBJDUtils.GetBJDYZZ5(sBJFLID, sXSQYID, sXLXHID, sXLBZID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), sBJU003, sBJU003, sXLGGID);
}
//重新获取按“6|报价数量区间调价米数/报价数量”设置的调价因子值
Dictionary<string, double> dicYZZ6 = new Dictionary<string, double>();
if (sTJYSList.Contains(",6,"))
{
dicYZZ6 = XLBJDUtils.GetBJDYZZ6(sBJFLID, dBJSL, sBJU003, sBJU003);
}
//重新获取按“7|型号&电压等级&芯线结构&主芯截面范围”设置的调价因子值
Dictionary<string, double> dicYZZ7 = new Dictionary<string, double>();
if (sTJYSList.Contains(",7,"))
{
dicYZZ7 = XLBJDUtils.GetBJDYZZ7(sBJFLID, sXLXHID, sDYDJID, sXXJGID, CMISproConvert.StrToFloat(fZXJM), sBJU003, sBJU003, sXLGGID, sXLBZID);
}
//重新获取按“8|付款期限”设置的调价因子值
Dictionary<string, double> dicYZZ8 = new Dictionary<string, double>();
if (sTJYSList.Contains(",8,"))
{
dicYZZ8 = XLBJDUtils.InitdicYZZ(sBJFLID, "8");
}
//重新获取按“9|导体材料&产品用途&电压等级分类&产品特性”设置的调价因子值
Dictionary<string, double> dicYZZ9 = new Dictionary<string, double>();
if (sTJYSList.Contains(",9,"))
{
dicYZZ9 = XLBJDUtils.GetBJDYZZ9(sBJFLID, sXLXHID, sDYDJID, sBJU003, sBJU003, sXLGGID, sXLBZID);
}
//重新获取按“A|型号&规格&电压&标准”设置的调价因子值
Dictionary<string, double> dicYZZA = new Dictionary<string, double>();
if (sTJYSList.Contains(",A,"))
{
dicYZZA = XLBJDUtils.GetBJDYZZA(sBJFLID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU003);
}
Dictionary<string, double> dicYZZBZPF = new Dictionary<string, double>();
if (sTJYSList.Contains(",BZPF,"))
{
//包装盘费
string sBZPFYZID = XLBJDUtils.GetBJFLSYBZPFYZID(sBJFLID);
if (!sBZPFYZID.Equals(""))
{
sBZPFYZID = sBZPFYZID.Split('|')[0];
dicYZZBZPF = XLBJDUtils.GetBJDBZPFYZZ(sBZPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU003);
}
}
Dictionary<string, double> dicYZZCPWJPF = new Dictionary<string, double>();
if (sTJYSList.Contains(",CPWJPF,"))
{
//产品外径盘费
string sCPWJPFYZID = XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID);
if (!sCPWJPFYZID.Equals(""))
{
sCPWJPFYZID = sCPWJPFYZID.Split('|')[0];
dicYZZCPWJPF = XLBJDUtils.GetBJDCPWJPFYZZ(sCPWJPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU003,dBJSL);
}
}
//重新获取按“B|销售单位”设置的调价因子值
Dictionary<string, double> dicYZZB = new Dictionary<string, double>();
if (sTJYSList.Contains(",B,"))
{
dicYZZB = XLBJDUtils.InitdicYZZ(sBJFLID, "B");
}
//获取按“C|产品目录&主芯截面范围&产品特性”因子值
Dictionary<string, double> dicYZZC = new Dictionary<string, double>();
if (sTJYSList.Contains(",C,"))
{
dicYZZC = XLBJDUtils.GetBJDYZZC(" ", sBJFLID, sXLXHID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), sBJU003, sBJU003, sXLGGID, sXLBZID);
}
//重新获取按“D|颜色”设置的调价因子值
Dictionary<string, double> dicYZZD = new Dictionary<string, double>();
if (sTJYSList.Contains(",D,"))
{
dicYZZD = XLBJDUtils.GetBJDYZZD(sBJFLID, XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID), sBJU003, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID);
}
double dcs_YZZ = 0;//如果是手动变更因子值触发重算,则用手动修改的因子值替换因子值
string ReChangeYZID = "";//维护因子时,是否自动change为其最小值
string sMinYZZ = "";
if (!cs_YZID.Equals(""))
{
string[] sTJYZChangelist = cs_sTJYZChangelist.TrimEnd(';').Split(';');
for (int j = 0; j < sTJYZChangelist.Length; j++)
{
string sChangedYZID = sTJYZChangelist[j].Split('=')[0];
string sChangedYZZ = sTJYZChangelist[j].Split('=')[1];
}
double dHSBL = XLBJDUtils.GetHSBL(sBJU003, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); ;
sMinYZZ = XLBJDUtils.GetMinYZZ(cs_YZID.Replace("TZYZ_", ""), dHSBL);//因子最小值
string sMaxYZZ = XLBJDUtils.GetMaxYZZ(cs_YZID.Replace("TZYZ_", ""), dHSBL);//因子最大值
if (!sMinYZZ.Equals(""))//若设置了最小值
{
//小于最小值按最小值计算
if (CMISproConvert.StrToFloat(cs_YZZ) < CMISproConvert.StrToFloat(sMinYZZ, 0))
{
cs_YZZ = sMinYZZ;
ReChangeYZID = cs_YZID;
sMinYZZ = cs_YZZ;
}
}
if (!sMaxYZZ.Equals(""))//若设置了最值
{
//大于最大值按最大值计算
if (CMISproConvert.StrToFloat(cs_YZZ) > CMISproConvert.StrToFloat(sMaxYZZ, 0))
{
cs_YZZ = sMaxYZZ;
ReChangeYZID = cs_YZID;
sMinYZZ = cs_YZZ;
}
}
}
if (!cs_sTJYZChangelist.Equals(""))
{
string[] sTJYZChangelist = cs_sTJYZChangelist.TrimEnd(';').Split(';');
for (int j = 0; j < sTJYZChangelist.Length; j++)
{
string sChangedYZID = sTJYZChangelist[j].Split('=')[0].Replace("TZYZ_", "");
double dChangedYZZ = CMISproConvert.StrToFloat(sTJYZChangelist[j].Split('=')[1]);
if (dicYZZ0.ContainsKey(sChangedYZID))
{
dicYZZ0[sChangedYZID] = dChangedYZZ;
}
if (dicYZZ1.ContainsKey(sChangedYZID))
{
dicYZZ1[sChangedYZID] = dChangedYZZ;
}
if (dicYZZ2.ContainsKey(sChangedYZID))
{
dicYZZ2[sChangedYZID] = dChangedYZZ;
}
if (dicYZZ3.ContainsKey(sChangedYZID))
{
dicYZZ3[sChangedYZID] = dChangedYZZ;
}
if (dicYZZE.ContainsKey(sChangedYZID))
{
dicYZZE[sChangedYZID] = dChangedYZZ;
}
if (dicYZZK.ContainsKey(sChangedYZID))
{
dicYZZK[sChangedYZID] = dChangedYZZ;
}
if (dicYZZG.ContainsKey(sChangedYZID))
{
dicYZZG[sChangedYZID] = dChangedYZZ;
}
if (dicYZZF.ContainsKey(sChangedYZID))
{
dicYZZF[sChangedYZID] = dChangedYZZ;
}
if (dicYZZH.ContainsKey(sChangedYZID))
{
dicYZZH[sChangedYZID] = dChangedYZZ;
}
if (dicYZZ4.ContainsKey(sChangedYZID))
{
dicYZZ4[sChangedYZID] = dChangedYZZ;
}
if (dicYZZ5.ContainsKey(sChangedYZID))
{
dicYZZ5[sChangedYZID] = dChangedYZZ;
}
if (dicYZZ6.ContainsKey(sChangedYZID))
{
dicYZZ6[sChangedYZID] = dChangedYZZ;
}
if (dicYZZ7.ContainsKey(sChangedYZID))
{
dicYZZ7[sChangedYZID] = dChangedYZZ;
}
if (dicYZZ8.ContainsKey(sChangedYZID))
{
dicYZZ8[sChangedYZID] = dChangedYZZ;
}
if (dicYZZ9.ContainsKey(sChangedYZID))
{
dicYZZ9[sChangedYZID] = dChangedYZZ;
}
if (dicYZZA.ContainsKey(sChangedYZID))
{
dicYZZA[sChangedYZID] = dChangedYZZ;
}
if (dicYZZBZPF.ContainsKey(sChangedYZID))
{
dicYZZBZPF[sChangedYZID] = dChangedYZZ;
}
if (dicYZZCPWJPF.ContainsKey(sChangedYZID))
{
dicYZZCPWJPF[sChangedYZID] = dChangedYZZ;
}
if (dicYZZB.ContainsKey(sChangedYZID))
{
dicYZZB[sChangedYZID] = dChangedYZZ;
}
if (dicYZZC.ContainsKey(sChangedYZID))
{
dicYZZC[sChangedYZID] = dChangedYZZ;
}
if (dicYZZD.ContainsKey(sChangedYZID))
{
dicYZZD[sChangedYZID] = dChangedYZZ;
}
}
}
//获取YZID对应的TJYZID
Dictionary<string, string> dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");
Dictionary<string, double> dicTJYZIDValue = new Dictionary<string, double>();
//获取YZID对应的TYZZYZID
Dictionary<string, string> dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");
Dictionary<string, double> dicTYZZYZIDValue = new Dictionary<string, double>();
string sBJDYZText = dicBJDYZ["BJDYZ"];
string[] sBJDYZ = sBJDYZText.Split(',');
#region 初次将所“2|调因子值”因子纳入dicTYZZYZIDValue
for (int i = 0; i < sBJDYZ.Length; i++)
{
string sFieldName = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim();
if (XLBJDInfo.dicValueContained(dicTYZZYZID, sFieldName.Substring(5)))
{
if (dicYZZBZPF.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZBZPF[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZBZPF[sFieldName.Substring(5)];
}
else if (dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZCPWJPF[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZCPWJPF[sFieldName.Substring(5)];
}
else if (dicYZZ0.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ0[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ0[sFieldName.Substring(5)];
}
else if (dicYZZ1.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ1[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ1[sFieldName.Substring(5)];
}
else if (dicYZZ2.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ2[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ2[sFieldName.Substring(5)];
}
else if (dicYZZ3.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ3[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ3[sFieldName.Substring(5)];
}
else if (dicYZZE.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZE[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZE[sFieldName.Substring(5)];
}
else if (dicYZZK.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZK[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZK[sFieldName.Substring(5)];
}
else if (dicYZZG.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZG[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZG[sFieldName.Substring(5)];
}
else if (dicYZZF.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZF[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZF[sFieldName.Substring(5)];
}
else if (dicYZZH.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZH[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZH[sFieldName.Substring(5)];
}
else if (dicYZZ4.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ4[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ4[sFieldName.Substring(5)];
}
else if (dicYZZ5.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ5[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ5[sFieldName.Substring(5)];
}
else if (dicYZZ6.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ6[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ6[sFieldName.Substring(5)];
}
else if (dicYZZ7.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ7[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ7[sFieldName.Substring(5)];
}
else if (dicYZZ8.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ8[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ8[sFieldName.Substring(5)];
}
else if (dicYZZ9.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ9[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ9[sFieldName.Substring(5)];
}
else if (dicYZZA.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZA[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZA[sFieldName.Substring(5)];
}
else if (dicYZZB.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZB[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZB[sFieldName.Substring(5)];
}
else if (dicYZZC.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZC[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZC[sFieldName.Substring(5)];
}
else if (dicYZZD.ContainsKey(sFieldName.Substring(5)))
{
if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))
dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZD[sFieldName.Substring(5)]);
else
dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZD[sFieldName.Substring(5)];
}
}
}
#endregion
#region 初次将所有的因子纳入dicTJYZIDValue
for (int i = 0; i < sBJDYZ.Length; i++)
{
string sFieldName = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim();
//string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", "");
if (dicTJYZID.ContainsKey(sFieldName.Substring(5)))
{
string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)];
if (dicYZZBZPF.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZBZPF[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZCPWJPF[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ0.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ0[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ1.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ1[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ2.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ2[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ3.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ3[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZE.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZE[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZK.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZK[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZG.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZG[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZF.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZF[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZH.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZH[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ4.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ4[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ5.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ5[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ6.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ6[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ7.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ7[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ8.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ8[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZ9.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZ9[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZA.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZA[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZB.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZB[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZC.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZC[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
else if (dicYZZD.ContainsKey(sFieldName.Substring(5)))
{
double tmpYZZ = dicYZZD[sFieldName.Substring(5)];
string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)];
if (!tmpTYZZYZID.Equals(""))
{
tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue);
}
if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID))
{
if (!dicTJYZIDValue.ContainsKey(tmpTJYZID))
dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ);
else
dicTJYZIDValue[tmpTJYZID] += tmpYZZ;
}
}
}
}
#endregion
#endregion
BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID);
string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS;
string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID);
if (!sTZQCPBJGS.Equals(""))
{
sTZQCPBJGS = sTZQCPBJGS.Replace("JGBBJ", dCPBJ.ToString());
sTZQCPBJGS = sTZQCPBJGS.Replace(" ", "").Replace("×", "*");//Replace("100", "100.00")是因为数据库计算时1/100的结果是0需转换为1/100.00结果才是0.01,此处直接计算无需处理
for (int i = 1; i <= 20; i++)
{
string BJDYZID = "BJ" + i.ToString().PadLeft(2, '0');
if (dicTJYZIDValue.ContainsKey(BJDYZID))
{
sTZQCPBJGS = sTZQCPBJGS.Replace(BJDYZID, dicTJYZIDValue[BJDYZID].ToString());
}
else
{
sTZQCPBJGS = sTZQCPBJGS.Replace(BJDYZID, "0");
}
}
sTZQCPBJGS = sTZQCPBJGS.Replace("TZZDXJ", "0");
gtExpression exp = new gtExpression();
try
{
dCPBJ = NumberUtils.RoundX(exp.Evaluate(sTZQCPBJGS), 15);
}
catch
{
dCPBJ = 0;
}
}
else
{
if (dCPBJ != 0)
{
bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(sBJFLID);
double dTZYZ_JJ = 0;
for (int i = 0; i < sBJDYZ.Length; i++)
{
string sFieldName = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim();
string sColName = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(DD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(MD)", "(%)").Replace("(MP)", "(%)").Replace("(XX)", "(不参与调价)").Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", "");
if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)];
}
}
if (JJFirst)
{
dCPBJ = dCPBJ + dTZYZ_JJ;
}
for (int i = 0; i < sBJDYZ.Length; i++)
{
string sFieldName = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim();
string sColName = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(DD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(MD)", "(%)").Replace("(MP)", "(%)").Replace("(XX)", "(不参与调价)").Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", "");
if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100);
}
else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100);
}
else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100);
}
else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100);
}
else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100);
}
//MX乘以/DX除以-系数
else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]);
}
else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DX)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
{
if (dicTJYZIDValue[sFieldName.Substring(5)] != 0)
{
dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]);
}
else
{
dCPBJ = dCPBJ * 0;
}
}
}
else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(SX)"))
{
if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)))
{
if (dicTJYZIDValue[sFieldName.Substring(5)] >= 0)
{
dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100);
}
else
{
dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100);
}
}
}
}
if (!JJFirst)
{
dCPBJ = dCPBJ + dTZYZ_JJ;
}
dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS));//保留精度高的
}
}
dCPBJ = XLBJDUtils.RoundSZ(dCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS));
result += "XLXSBJDMX_CPBJ = " + XLBJDUtils.strPadRight(dCPBJ.ToString(), (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS)) + ";";//显示精度高的
dBJSL = CMISproConvert.StrToFloat(cs_SL.Trim());
double dBJJE = NumberUtils.RoundX(dBJSL * dCPBJ, 2);
result += "XLXSBJDMX_BJJE = " + dBJJE.ToString() + ";";
result += "XLXSBJDMX_JGBBJ = " + cs_BJ + ";";
if (!ReChangeYZID.Equals(""))
result += "sMinYZZ =" + sMinYZZ.ToString().Trim() + ";";
}
return result.TrimEnd(';');
}
public ArrayList InitGrid(string sBJDFL)
{
ArrayList xsnrlist = new ArrayList();
int iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002"));
if (iXSWS < 0)
iXSWS = 0;
else if (iXSWS > 8)
iXSWS = 8;
Dictionary<string, string> dicBJDYZ = XLBJDUtils.GetBJDYZ(sBJDFL);
string sBJDYZText = dicBJDYZ["BJDYZ"];
if (sBJDYZText.Equals(""))
return xsnrlist;
string[] sBJDYZ = sBJDYZText.Split(',');
for (int i = 0; i < sBJDYZ.Length; i++)
{
string sMC = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(DD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(MD)", "(%)").Replace("(XX)", "(不参与调价)");
string sID = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim();
string sVisible = "Y";
//_gtAjaxGridViewColumnTZYZ.EditType = TEditType.etNumber;
//_gtAjaxGridViewColumnTZYZ.NumberDecimalPlace = 2;
if (!sBJDYZ[i].Trim().EndsWith("()"))
{
sVisible = "Y";
}
else
{
sVisible = "N";
}
string[] xsnr = new string[3];
xsnr[0] = sID;
xsnr[1] = sMC;
xsnr[2] = sVisible;
xsnrlist.Add(xsnr);
}
return xsnrlist;
}
private string FloatToString(double n, int iXSWS)
{
n = NumberUtils.RoundX(n,iXSWS);
string sN = n.ToString().Trim();
string sZSBF = "";
string sXSBF = "";
if (sN.Contains("."))
{
sZSBF = sN.Split('.')[0];
sXSBF = sN.Split('.')[1];
}
else
{
sZSBF = sN;
}
sXSBF = sXSBF.PadRight(iXSWS, '0');
sN = sZSBF + "." + sXSBF;
return sN;
}
#endregion
}
}